前言
视频图像监控技术已经得到了广泛应用,但是在一些特殊场合,比如远程车辆、船舶、机车等移动目标的图像监控,由于受到无线通信网络数据传输速率以及通信费用等问题的限制,实时图像监控难以实现。采用静态图像采集压缩技术通过控制命令来获取图像信息,生成JPEG图片,可实现对移动目标的随机图像监控,甚至在有些场合,根本不需要实时图像监控。由此看来,研究和设计满足工业级要求的静态图像压缩模块对于特殊场合的视频图像监控有非常重要的意义。
静态图像压缩技术及模块功能分析
JPEG (联合图像专家组)是一个由ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比对文件进行压缩,支持多种压缩级别。
由于JPEG格式图像数据量小,设计以JPEG压缩为核心的嵌入式视频图像压缩模块将能够满足目前窄带无线信道图像监控的需求。通过对目前市场的研究和分析,该图像压缩模块主要实现以下基本功能:四路视频通道(输入信号为PAL制式);压缩格式为JPEG;图像压缩格式可调;图像压缩比可调;接口通信速率可调;对比度可调;亮度可调;饱和度可调。
嵌入式视频图像压缩模块设计
嵌入式视频图像压缩模块主要实现对模拟视频信号的A/D转换、JPEG压缩编码、接口协议处理、芯片工作状态自检。基本框图如图1所示。
图1 嵌入式视频图像压缩模块框图
SAA7111与ATmega8515的接口电路及工作模式设置
SAA7111是Philips(现NXP)公司的视频图像处理芯片,它可以对PAL制式、NTSC制式的复合视频信号(CVBS)或S-Video方式的Y/C分量信号和复合全电视信号进行采集编码,输出数据格式可以是8位的CCIR-656、12位的411 YUV、16位的422 YUV。ATmega8515通过I2C总线来获取SAA7111内部的状态信息以及设置SAA7111的工作模式。在SAA7111初始化时,对前16个寄存器采用如下的配置参数:
const uchar SAA7111_Init[] ={0x00, 0x00, 0xc0, 0x33, 0x00, 0x00, 0xEB, 0xE0, 0x00, 0x41, 0x80, 0x47, 0x40, 0x00, 0x01, 0x00, 0xC8, 0x0C, 0x00}
使输出数据为8位的CCIR-656格式。在正常工作过程中,可以对其0x02、0x0A、0x0B、0x0C寄存器设置来选择输入通道、亮度、对比度、饱和度。
ZR36060接口电路
ZR36060是ZORAN公司的视频信号实时压缩/解压缩芯片。在进行压缩时,ZR36060将接收CCIR-656数字视频信号编码为JPEG码流输出;在解压缩时,它将接收到的JPEG码流解码为CCIR-656数字视频信号输出。作为嵌入式视频图像压缩模块的核心芯片,ZR36060要和SAA7111、ATmega8515、CPLD、SRAM相连,由于ZR36060是专用的数字视频处理芯片,其接口数据速率比较高,因此在设计时,要充分考虑到连线间的干扰问题以及器件的相关特性。接口电路连接示意图如图2所示。
图2 ZR36060接口电路示意图
ZR26060的接口分三个部分,分别为视频接口、代码与主机接口和控制接口。视频接口的功能是完成输入/输出视频信号;代码与主机接口的功能是通过主机完成对芯片的控制字的初始化,并且在主动方式下JPEG压缩码流也经过CODE[7:0]输入/输出;控制接口则完成一系列简单的工作顺序控制操作。
两种视频同步方式:同步主模式和同步从模式。同步主模式指芯片内部产生所有的控制和定时信号;同步从模式则是芯片作为从机同步于一个外部的视频源。ZR26060的视频接口与SAA7111可以通过编程配置实现ZR36060和多种视频编解码器的连接,当在同步主模式下输出视频同步信号,在同步从模式下输入视频同步信号。同步信号有行同步信号HSYNC、场同步信号VSYNC 和奇偶场指示信号FI。视频接口还输出或输入的数字视频信号。本设计将ZR36060初始化为同步从模式,因此视频同步信号必须依赖与SAA7111。由于本方案涉及到数据总线共享问题,所以在ZR36060、ATmega8515与SRAM相连接时,还需要74HC245芯片及相应的片选控制信号。
图像存储及控制接口的CPLD设计
ZR36060被设置为主编码模式,采用8位并行数据线CODE[7..0],将压缩后的JPEG图片数据送给SRAM,同时在CWE引脚送出写信号。由于ZR36060和MCU都要对SRAM进行操作,并且图片数据超过1K,因此要采用EPM7032S CPLD构造16位地址发生器。EPM7032S根据MCU送来的ZR_SEL选择信号,确定地址触发信号是来自MCU的读写信号线还是来自ZR36060的写信号线,并在清零信号线MCU_CLR无效的情况下开始产生地址信号,其仿真时序如图3所示。
图3 基于EPM7032S图像存储及控制接口的仿真波形图
嵌入式视频图像压缩模块影响因素分析
SAA7111的晶体振荡器对图像压缩效果的影响
SAA7111采用24.576MHz晶体振荡器,要求频率稳定度在50ppm内,频率的温度漂移不能超过20ppm,负载电容至少为8pF。由于SAA7111本身工作状态及输出信号频率完全依赖于外部晶体振荡器的振荡频率,因此,晶体振荡器的性能及相关连接电路对SAA7111的工作状态起着决定性作用。
在具体设计过程中,可以采用无源晶体振荡器,也可以采用有源晶体振荡器,无源晶体振荡器需要相应的辅助电路来消除一些谐波和干扰,因此电路比较复杂,而且要经过具体调试才能确定外围元器件的最终参数。采用有源晶体振荡器可以简化外围电路,而且稳定度比较高,调试方便。
当晶体振荡器工作频率漂移比较大或带有一些谐波时,将会导致压缩后的JPEG图片颜色发生变化,比如彩色图片变为黑白图片,或者图片的整个背景颜色发生变化。因此在应用SAA7111芯片进行模拟视频信号采集和编码时,要确保晶体的各项指标符合相应的规格要求。
电源设计对图像压缩过程的影响
ZR36060图像压缩芯片对经过SAA7111采集编码的视频信号进行压缩,形成JPEG图片并保存到SRAM中。由于在整个图像压缩过程中,ZR36060需要超过200mA的工作电流,因此,和ZR36060相关电源电路的设计直接影响压缩是否成功。
在设计过程中,对ZR36060电源引脚要接100μF/16V的电解电容和100nF的去耦电容,并且要确保电源能够快速提供超过200mA的电流。如果电源设计不当,会造成图像压缩失败或在压缩小图片时成功,大图片时失败。其主要原因就是由于图像压缩过程中ZR36060需要吸收大电流。
ZR36060参数设置及问题分析
ZR36060参数设置包括两个过程:参数写入内部寄存器和参数加载到内部电路。只有参数正确写入到内部寄存器后,才能加载成功,否则芯片一直会处于忙状态。
ZR36060内部寄存器设置包括以下几项:const uchar zr36060_COM[];const uchar zr36060_APP[];const uchar zr36060_DHT[];const uchar zr36060_DQT[];const uchar zr36060_DRI[];const uchar zr36060_SOS[];const uchar zr36060_SOF[];const uchar zr36060_GCR[];const uchar DQT_SEL[];const uchar Picture_format[]。其中对图像格式的设置有两部分寄存器,一部分起始地址为:0x42,共八个寄存器,用来确定图像的活动区域,另一部分起始地址为:0x65,共四个寄存器,用来确定图像像素。如果这两个区域的设置数值不满足相关的计算关系式,那么所有参数加载将会失败,此时检测0x01寄存器的busy位,会发现芯片一直处于忙状态。
结语
嵌入式视频图像压缩模块操作方便,协议简洁,可直接嵌入到大多数无线视频图像监控系统中,解决了无线视频监控系统中对视频图像信息处理的难题。采用本设计方案的视频图像压缩模块已广泛应用于GPS车载导航监控、电力设备监控、基站设备监控、环境监控等众多监控行业。
该文观点仅代表作者,本站仅提供信息存储空间服务,转载请注明出处。若需了解详细的安防行业方案,或有其它建议反馈,欢迎联系我们。