论文部分内容阅读
摘 要:提出了基于AT89S51的视频压缩系统的软硬件实现方案,该系统可完成对模拟视频信号的压缩和存储,并可在上位机上显示出解压后的图像。该方案实现简单,成本低廉,具有较好的实际应用前景。
关键词:视频压缩;i2c总线;JPEG编解码
中图分类号:TP13文献标识码:A
The Design of Video Compression Board Based on AT89S51
XIONG Bin
(Engineering and Technical College of Chengdu University of Technology,Sichuan Leshan 614007)
Key words: video compression;i2c bus;JPEG Codec
近年来,随着社会经济的飞速发展和人民群众生活水平的日益提高,人们对生命财产安全的重视程度也越来越高,视频监控系统因此拥有了广阔的市场前景,并取得了广泛的应用。由于图像信息的数据量十分庞大,给视频信号存储及传输带来了很大的困难,对模拟视频信号的压缩显得及其重要。本文全面介绍了基于ZR36060的视频压缩监控系统的软硬件实现。
1 问题的提出
图像信息的数据量十分巨大,大数据量的图像信息会给存储器的存储容量,通信干线信道的带宽,以及计算机的处理速度增加极大的压力。单纯靠增加存储器容量,提高信道带宽以及计算机的处理速度等方法来解决这个问题是不现实的,因此必须对视频信号进行压缩。
压缩就是对要处理的图像源数据用一定的规则进行变换和组合,从而达到以尽可能少的代码来表示尽可能多的数据信息的目的。有关图像压缩编码的国际标准很多, JPEG是目前静态图像中压缩比最高图像质量最好的,因此获得了最广泛的应用,本系统正是采用基于JPEG压缩算法的芯片ZR36060。
JPEG是联合图像专家组的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图像的压缩编码标准。[1][2]JPEG的压缩原理简介:8×8的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。[3][4]由于该低频分量包含了图像的主要信息(如亮度),而高频就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的。如何将高频分量去掉,这就要用到量化,它是产生信息损失的根源。这里的量化操作,就是将某一个值除以量化表中对应的值。由于量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高频分量的目的。为了进一步提高压缩比,需要对其再进行熵编码,即分别对DC分量和AC分量进行Huffman编码,最终产生JPEG编码数据。JPEG编码过程较为烦琐,由于篇幅限制,本文对其算法不做过多介绍,将重点放在该系统的软硬件实现上。
2 系统总体结构框图
系统功能描述:视频解码芯片SAA7111选择四路模拟视频信号的一路或多路进行视频采集及A/D转换,对SAA7111的控制是单片机通过I2C总线实现的。ZR36060接收SAA7111产生的数字视频信号并进行压缩处理,压缩后ZR36060输出JPEG压缩代码到SRAM中,其读写地址由CPLD产生,ZR36060的CWE信号作为计数器的计数脉冲,它同时还作为SRAM的写信号将CODE[7:0]的压缩数据写入到SRAM中去。当ZR36060压缩完一帧并存于SRAM后,通过END通知单片机。由单片机顺序读出通过RS232口发送出去。
3 硬件设计
3.1视频解码模块
视频解码芯片SAA7111A工作原理:
四路模拟信号输入到模拟信号处理模块进行A/D转换, 由此产生数字亮度信号和数字色度信号,分别进行色度信号处理和亮度信号处理。亮度信号处理的结果一路送到色度信号处理器,进行综合处理,产生Y和UV信号,经格式化后从VPO(16位)输出;另一路进入同步分离器,经数字PLL产生相应的行和场同步信号HS和VS,同时PLL驱动时钟发生器,产生与HS锁定的时钟信号LLC和LLC2。所有这些功能均是在I2C总线控制下完成的,其中SCL为串行时钟信号,SDA为串行数据信号。SAA7111A开始工作后,将输出的场同步信号VSYN、行同步信号HSYN、奇偶场信号RTS0、像素时钟信号LLC2均送往压缩编码芯片ZR36060,再由ZR36060对SAA7111A输出的数字信号进行压缩处理。
SAA7111A的初始化配置:
SAA7111A共有32个内部寄存器(01H~1FH),06H~17H主要用于设置解码方式,通过配置这些寄存器可以设置行同步信号的开始和结束位置,并可确定亮度、色度、饱和度的大小以及输出图像数据信号的格式。在本系统中将SAA7111A初始化设定为:一路模拟视频信号输入(AI11)、自动增益控制、625行50HZ,PAL制式、YUV 4:2:2的8位数字视频信号输出、设置默认的图象对比度、亮度及饱和度。主要寄存器功能及初值设置如下表1:
3.2视频压缩模块
ZR36060系统模块:
视频编解码芯片ZR36060是ZORAN公司专为视频采集与编辑应用而设计的,可以方便地实现对视频信号的实时压缩/解压缩。ZR36060与视频信号的同步方式可以设置为主动或被动方式,与视频信号的总线接口可以为8位或16位。它所提供的像素流控制机制可以方便地实现对非实时视频信号(诸如静止图像)的压缩。ZR36060的代码接口有8bit主动方式、8bit被动方式及16bit被动方式三种操作方式。其中在被动方式下,代码传输是通过主机接口完成的。
视频接口是和视频编解码器的接口,主要包括场同步信号VSYNC,行同步信号HSYNC,以及奇偶场指示信号FI等。压缩时,Y[7:O]和UV[7:0]为数字视频信号输入口;解压缩时.Y[7:O]和UV[7:0]为数字视频信号输出口(工作于16bit视频模式时,Y[7:O]为亮度信号,UV[7:0]为色度信号;工作于8bit视频模式时,Y[7:0]为亮度/色度复用信号,UV[7:0]不用)。代码接口和主控器接口是ZR36060与外部存储器和主控制器的接口。代码接口是ZR36060输出(压缩时)和输入(解压缩时)JPEG码流的接口。ACK是ZR36060和主控制器的握手信号,JIRQ是ZR36060向主控制器发出的中断请求信号, 用来指示Code FIFO是否忙。主控制器通过主控接口对ZR36060的内部1K字节寄存器读写选定其工作模式和工作参数。控制部分用来给出ZR36060工作顺序的控制信号以及ZR36060发出的指示信号。包括:压缩/解压缩启动信号START,复位信号RESET,操作结束指示信号END等等。
本系统中设置ZR36060为被动同步方式时,同步信号由SAA7111A产生,即行同步信号HSYNC接到SAA7111A的HREF引脚,场同步信号VSYNC接到SAA7111A的VREF引脚,奇偶场指示信号Fl与SAA7111A的RTSO引脚相连。
ZR36060命令和状态寄存器通过主机接口访问,在主动方式下JPEG码流通过代码接口输入/输出(在被动方式下,代码传输是通过主机接口完成的),在本系统中,选择8位代码主模式,在压缩状态下,已压缩数据经CODE[7:0]输出到RAM。在空闲状态下,单片机的数据总线通过CPLD内部的数据选择器接到CODE[7:0],读RAM中的压缩数据。ZR36060的控制信号START,SLEEP由单片机提供,空闲状态信号END,经由CPLD后送到单片机。
3.3 主控模块
单片机是系统的核心,控制图像处理,图像数据的存储及发送,选择通用性很好的MCS51系列单片机,可以实现这些控制。本设计中拟采用的是AT89C51/AT89S51单片机。具体程序参看软件部分。
4 软件设计
本系统的软件部分主要包括:单片机的控制代码以及解码芯片和压缩芯片的初始化。
主要程序流程图如下:
5 结束语
本文介绍的方案主要采用集成电路设计,体积小,成本低,外围模拟器件少,全部控制均可通过软件实施,初始化和等待时间极短,可适用于板卡或小型手持终端等数字化多媒体应用场合。随着压缩技术的不断完善和成熟,系统的功能将会不断的改进和升级。视频图像压缩系统的应用将会越来越广泛。
参考文献:
[1]陈晓敏,王学进,王志华,张利.JPEG编解码芯片ZR36060在远程视频监视系统中的应用[J].电子技术应用,2000,1(12):22-40.
[2]王学进,孟鸿鹰.JPEG编解码芯片ZR36060及其应用[J].电子技术,2000,2(12):30-50.
[3]王汇源.数字图像原理与技术[M].北京:国防工业出版社,2000.
[4]吴乐南.数据压缩的原理与应用[M].北京:电子工业出版社,1995.
关键词:视频压缩;i2c总线;JPEG编解码
中图分类号:TP13文献标识码:A
The Design of Video Compression Board Based on AT89S51
XIONG Bin
(Engineering and Technical College of Chengdu University of Technology,Sichuan Leshan 614007)
Key words: video compression;i2c bus;JPEG Codec
近年来,随着社会经济的飞速发展和人民群众生活水平的日益提高,人们对生命财产安全的重视程度也越来越高,视频监控系统因此拥有了广阔的市场前景,并取得了广泛的应用。由于图像信息的数据量十分庞大,给视频信号存储及传输带来了很大的困难,对模拟视频信号的压缩显得及其重要。本文全面介绍了基于ZR36060的视频压缩监控系统的软硬件实现。
1 问题的提出
图像信息的数据量十分巨大,大数据量的图像信息会给存储器的存储容量,通信干线信道的带宽,以及计算机的处理速度增加极大的压力。单纯靠增加存储器容量,提高信道带宽以及计算机的处理速度等方法来解决这个问题是不现实的,因此必须对视频信号进行压缩。
压缩就是对要处理的图像源数据用一定的规则进行变换和组合,从而达到以尽可能少的代码来表示尽可能多的数据信息的目的。有关图像压缩编码的国际标准很多, JPEG是目前静态图像中压缩比最高图像质量最好的,因此获得了最广泛的应用,本系统正是采用基于JPEG压缩算法的芯片ZR36060。
JPEG是联合图像专家组的英文缩写,是国际标准化组织(ISO)和CCITT联合制定的静态图像的压缩编码标准。[1][2]JPEG的压缩原理简介:8×8的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。[3][4]由于该低频分量包含了图像的主要信息(如亮度),而高频就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的。如何将高频分量去掉,这就要用到量化,它是产生信息损失的根源。这里的量化操作,就是将某一个值除以量化表中对应的值。由于量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高频分量的目的。为了进一步提高压缩比,需要对其再进行熵编码,即分别对DC分量和AC分量进行Huffman编码,最终产生JPEG编码数据。JPEG编码过程较为烦琐,由于篇幅限制,本文对其算法不做过多介绍,将重点放在该系统的软硬件实现上。
2 系统总体结构框图
系统功能描述:视频解码芯片SAA7111选择四路模拟视频信号的一路或多路进行视频采集及A/D转换,对SAA7111的控制是单片机通过I2C总线实现的。ZR36060接收SAA7111产生的数字视频信号并进行压缩处理,压缩后ZR36060输出JPEG压缩代码到SRAM中,其读写地址由CPLD产生,ZR36060的CWE信号作为计数器的计数脉冲,它同时还作为SRAM的写信号将CODE[7:0]的压缩数据写入到SRAM中去。当ZR36060压缩完一帧并存于SRAM后,通过END通知单片机。由单片机顺序读出通过RS232口发送出去。
3 硬件设计
3.1视频解码模块
视频解码芯片SAA7111A工作原理:
四路模拟信号输入到模拟信号处理模块进行A/D转换, 由此产生数字亮度信号和数字色度信号,分别进行色度信号处理和亮度信号处理。亮度信号处理的结果一路送到色度信号处理器,进行综合处理,产生Y和UV信号,经格式化后从VPO(16位)输出;另一路进入同步分离器,经数字PLL产生相应的行和场同步信号HS和VS,同时PLL驱动时钟发生器,产生与HS锁定的时钟信号LLC和LLC2。所有这些功能均是在I2C总线控制下完成的,其中SCL为串行时钟信号,SDA为串行数据信号。SAA7111A开始工作后,将输出的场同步信号VSYN、行同步信号HSYN、奇偶场信号RTS0、像素时钟信号LLC2均送往压缩编码芯片ZR36060,再由ZR36060对SAA7111A输出的数字信号进行压缩处理。
SAA7111A的初始化配置:
SAA7111A共有32个内部寄存器(01H~1FH),06H~17H主要用于设置解码方式,通过配置这些寄存器可以设置行同步信号的开始和结束位置,并可确定亮度、色度、饱和度的大小以及输出图像数据信号的格式。在本系统中将SAA7111A初始化设定为:一路模拟视频信号输入(AI11)、自动增益控制、625行50HZ,PAL制式、YUV 4:2:2的8位数字视频信号输出、设置默认的图象对比度、亮度及饱和度。主要寄存器功能及初值设置如下表1:
3.2视频压缩模块
ZR36060系统模块:
视频编解码芯片ZR36060是ZORAN公司专为视频采集与编辑应用而设计的,可以方便地实现对视频信号的实时压缩/解压缩。ZR36060与视频信号的同步方式可以设置为主动或被动方式,与视频信号的总线接口可以为8位或16位。它所提供的像素流控制机制可以方便地实现对非实时视频信号(诸如静止图像)的压缩。ZR36060的代码接口有8bit主动方式、8bit被动方式及16bit被动方式三种操作方式。其中在被动方式下,代码传输是通过主机接口完成的。
视频接口是和视频编解码器的接口,主要包括场同步信号VSYNC,行同步信号HSYNC,以及奇偶场指示信号FI等。压缩时,Y[7:O]和UV[7:0]为数字视频信号输入口;解压缩时.Y[7:O]和UV[7:0]为数字视频信号输出口(工作于16bit视频模式时,Y[7:O]为亮度信号,UV[7:0]为色度信号;工作于8bit视频模式时,Y[7:0]为亮度/色度复用信号,UV[7:0]不用)。代码接口和主控器接口是ZR36060与外部存储器和主控制器的接口。代码接口是ZR36060输出(压缩时)和输入(解压缩时)JPEG码流的接口。ACK是ZR36060和主控制器的握手信号,JIRQ是ZR36060向主控制器发出的中断请求信号, 用来指示Code FIFO是否忙。主控制器通过主控接口对ZR36060的内部1K字节寄存器读写选定其工作模式和工作参数。控制部分用来给出ZR36060工作顺序的控制信号以及ZR36060发出的指示信号。包括:压缩/解压缩启动信号START,复位信号RESET,操作结束指示信号END等等。
本系统中设置ZR36060为被动同步方式时,同步信号由SAA7111A产生,即行同步信号HSYNC接到SAA7111A的HREF引脚,场同步信号VSYNC接到SAA7111A的VREF引脚,奇偶场指示信号Fl与SAA7111A的RTSO引脚相连。
ZR36060命令和状态寄存器通过主机接口访问,在主动方式下JPEG码流通过代码接口输入/输出(在被动方式下,代码传输是通过主机接口完成的),在本系统中,选择8位代码主模式,在压缩状态下,已压缩数据经CODE[7:0]输出到RAM。在空闲状态下,单片机的数据总线通过CPLD内部的数据选择器接到CODE[7:0],读RAM中的压缩数据。ZR36060的控制信号START,SLEEP由单片机提供,空闲状态信号END,经由CPLD后送到单片机。
3.3 主控模块
单片机是系统的核心,控制图像处理,图像数据的存储及发送,选择通用性很好的MCS51系列单片机,可以实现这些控制。本设计中拟采用的是AT89C51/AT89S51单片机。具体程序参看软件部分。
4 软件设计
本系统的软件部分主要包括:单片机的控制代码以及解码芯片和压缩芯片的初始化。
主要程序流程图如下:
5 结束语
本文介绍的方案主要采用集成电路设计,体积小,成本低,外围模拟器件少,全部控制均可通过软件实施,初始化和等待时间极短,可适用于板卡或小型手持终端等数字化多媒体应用场合。随着压缩技术的不断完善和成熟,系统的功能将会不断的改进和升级。视频图像压缩系统的应用将会越来越广泛。
参考文献:
[1]陈晓敏,王学进,王志华,张利.JPEG编解码芯片ZR36060在远程视频监视系统中的应用[J].电子技术应用,2000,1(12):22-40.
[2]王学进,孟鸿鹰.JPEG编解码芯片ZR36060及其应用[J].电子技术,2000,2(12):30-50.
[3]王汇源.数字图像原理与技术[M].北京:国防工业出版社,2000.
[4]吴乐南.数据压缩的原理与应用[M].北京:电子工业出版社,1995.