摘 要: 针对无人机在航拍和对地侦察中对视频图像分辨力的要求,采用ADV202实现了一款基于帧内编码的M-JPEG2000实时数字视频压缩卡,支持无损/有损两种压缩方式,数据传输通过PC104 plus总线存储到IDE硬盘,提高了无人机数字视频记录设备的整体性能。
关键词: 视频压缩;M-JPEG2000;ADV202;PLX9054
无人机作为一种低成本的先进飞行侦察平台,在危险物搜寻、灾难救援和军事行动上得到大量使用。利用无人机进行作战侦察和地形航拍是非常重要的应用,载有低成本侦察系统的无人机将在未来信息化对抗中发挥重要作用。
无人机航拍原始视频数据量庞大,在飞行高度和速度的影响下,需观测目标像素小且图像帧内相关性较差。因此视频图像的编码必须采用高分辨率且能抑制误码的算法,以满足较低比特率下高质量的视频压缩和传输。由于帧内编码在M-JPEG2000中的应用,使得压缩后的视频有较高的分辨率和抗误码率,大容量IDE硬盘为数字视频数据提供了存储介质,PC104 plus总线的应用也为机载数据的本地存储提供了较高的带宽和可靠性。
1 Motion JPEG2000编码简述
JPEG2000采用了离散小波变换(DWT)和基于优化截断的嵌入式块编码(EBOOT)等技术,因此它生成的压缩码流同时具有分辨率可分级性和质量可分级性,支持图像的渐进传输,且具有较好的抗误码性能。由于Motion-JPEG2000对每帧视频均采用JPEG2000编码,因此以JPEG2000编码系统为例,简单介绍其编码过程。
JPEG2000压缩过程如图1所示,如果是多颜色分量的输入图像,则首先进行颜色分量间去相关变换,然后将图像/图像成分分割成大小相等(边缘除外)、相互不重叠的矩形图像片(Tile),在进行DWT变换前要进行直流电平位移操作去除图像的直流分量。JPEG2000的DWT变换中,浮点数9/7滤波器主要用于高压缩率有损压缩,短整数5/3滤波器用于实现可逆的无损压缩。对小波变换产生的系数进行量化,小波子带b的每一个变换系数通过式(1)进行标量量化:
其中,Δb为量化步长,量化会使系数的精度降低。若采用整数5/3小波变换进行无损压缩,量化步长Δb应为1。量化后的系数被分割成码块(code-blocks)进行第一层编码(Tier1),主要包括产生上下文(context)和待压缩的位数据(decision),以及用二进制算术编码器MQ-Coder进行算术编码;产生的数据流又进入第二层编码(Tier2),主要用于进行率失真优化和使用Tag Tree对压缩码流进行打包;码率控制模块则用于对编码过程产生预期码率。
2 视频采集压缩卡的硬件设计
视频采集压缩系统的硬件结构如图2所示。视频解码和压缩芯片分别使用了ADI公司的ADV7189和ADV202,压缩后的数据通过PLX9054传输到本地计算机内存,并使用IDE硬盘存储。双片FIFO组成乒乓无缝缓存,避免了传输中数据丢失问题,FPGA用来配置各个芯片的寄存器设置、管理采集压缩模块和双片FIFO芯片的轮换时序并解析PLX9054本地端的控制信号。
2.1 视频解码模块
上电或复位之后,ADV7189通过CBVS接口获得标准PAL制式视频输入,转换时需要通过主控制器的I2C接口进行初始化配置。ADV7189内部共有196个寄存器可供访问,配置时在总线上发送的第一个字节为器件地址,第二个字节为内部子地址,之后才是读写数据。写入一次后子地址可以自增,因此允许主机从起始子地址开始连续读写数据,也可以独立访问任何子地址寄存器。对于标准的PAL制式视频,ADV7189芯片资料给出了推荐的寄存器值[3]。
2.2 视频压缩模块
ADV202是针对视频和高带宽图像压缩应用的一款JPEG2000编解码芯片。它提供了一个基于专利空间高效滤波SURF(Spatial Ultra-efficient Recursive Filtering)技术的专用小波变换器,支持多达6级的9/7和5/3小波变换。在三分量4:2:2隔行模式,能够处理的图像/片(tile)宽度最大为2 048像素。工作于可逆模式时,它的处理速率达到40 Mb/s,不可逆模式下可达65 Mb/s。
ADV202芯片共有16个直接寄存器、28个可设置间接寄存器[4]。对ADV202寄存器访问是通过ADDR[3:0]、HDATA[31:0]、CS、RD、WE和ACK管脚实现。间接寄存器起始地址为0xFFFF0000,在特定模式如用户自定义模式下,需要通过IADDR、IDATA寄存器访问设置间接寄存器,ADV202初始化流程如图3所示。
2.3 数据存储模块
PC104 plus是专为PCI总线设计的,可外接高速设备。PC104 plus在硬件上通过一个3×40孔插座堆栈连接,包括PCI v2.1规定的所有信号、并向下兼容PC104的所有特性。由于其紧凑型结构、易于维护和高带宽等性能,特别适合机载嵌入式系统应用。
PC104 plus总线接口控制芯片选用PLX9054,完成本地数据采集端与嵌入式计算机的桥接。PLX9054集成了2个互相独立的DMA通道,均支持Block DMA和Scatter/Gather DMA模式。本地总线有3种工作模式,按照实际需要设置本地总线为最常用的C模式。上电后通过EEPROM芯片93LC56对PLX9054进行初始化,主要实现68个字节的配置信息[5]:设备识别字、供应商代码、本地总线3个空间的基地址以及3个空间的大小。
为保证速率匹配和数据传输的连续性,PLX9054本地端采用32 bit字宽接口与2片FIFO芯片IDT72V36共享本地数据总线,采用Block DMA方式传输。2片IDT72V36组成乒乓缓存操作,在IDT72V36与ADV202、 PLX9054连接端分别使用与之匹配的时钟频率。压缩后的视频数据根据FPGA的控制时序依次轮换进入2片FIFO缓存,根据EF/FF标志位判断FIFO内数据为空或全满,然后给定PLX9054本地端控制信号,使之从读FIFO中把数据读入内存中,最后通过应用程序把内存中的数据存储到IDE硬盘。
2.4 逻辑与时序控制
整个硬件系统选用了Xilinx公司的Spartan-3A系列XC3S50A芯片完成对各个芯片的初始化配置和管理接口之间的通信。上电后,首先Platform Flash对FPGA加载程序,加载成功后开始初始化ADV7189与ADV202。初始化完成后,在读取ADV202寄存器SWFLAG内部值为0xff82时,开始对10位的YUV(4:2:2)数字视频数据进行压缩。当FIFO芯片半满或全满标志位有效后,FPGA对PCI总线产生中断请求,同时产生相关的本地端控制信号,引发PLX9054本地端DMA读操作。图4为PLX9054本地端DMA读操作时序设计。
3 记录格式与载体
3.1 ADV202压缩数据格式
ADV202压缩数据组织形式如图5所示,其中ADV202数据头包含以下信息:
(1)场标记(Field identification);(2)场数;(3)文件格式;(4)视频格式;(5)数据头版本信息(Header version);(6)压缩数据字数;(7)属性数据字数。
JPEG2000数据头包含整幅图像主文件头和图像块对应的头标记(Head makers),例如:
SOC:码流开始0xFF4F
EOC:码流结尾0xFFD9
COD:编码方式0xFF52
PLM:包长度,整幅图像的数据头0xFF57
PTL:包长度,每个图像块的头0xFF58
PPM:打包数据的头,整幅图像的数据头0xFF60
PPT:打包数据的头,每个图像块的头0xFF61
包数据(packet data)即打包的数据流。
码流结尾(EOC):每个码块由0x00来填补,以达到32 bit长的队列。
3.2 记录载体
数据存储介质为IDE接口硬盘,IDE接口也被称为并行ATA接口,目前通用标准为Ultra ATA66和ATA100,采用40针80芯接口电缆,传输速率分别可达到66 MB/s和100 MB/s,具有容量较大、选择范围广和通用性强等优点。但IDE接口硬盘不能直接用于机载设备,其抗震性能和温度指标不能满足机载环境要求,故需采取特殊的减震、恒温处理,使其在7 G以上震动,-55 ℃~+70 ℃温度范围内能正常工作。
在无人机机载视频记录设备与高空航拍图像压缩中,M-JPEG2000的无损视频压缩算法显示出优越性。ADV202不仅支持标准的PAL和NTSC制式,也为1080i高清视频标准提供了完善的解决方案,有利于机载视频系统在未来超高分辨率图像压缩应用中的扩展。
参考文献
[1] 侯俊.Motion JPEG2000视频编码技术研究[E].上海:上海交通大学,2007.
[2] 易峰,何剑辉,全子一.标清电视信号的MJPEG2000实时编解码系统[J].电子技术应用,2005(4).
[3] Analog Deviees.ADV7189 Datasheet.2006.
[4] Analog Deviees.ADV202 Datasheet.2006.
[5] PLX Technology.PLX9054 Data Book v2.1.2000.