摘要:提出一种基于ADV202的MJPEG2000的标清格式编解码系统。介绍了系统的总体设计方案,实用证明,系统能很好地完成标清电视信号的实时编码和解码。
关键词:JPEG2000 MJPEG2000 ADV202
JPEG2000基于小波变换,具有的图像压缩性能,支持更高的比特位深,支持质量渐进模式、适当的编码和码流设计,从而具有更强的误码鲁棒性。而基于JPEG2000[1]的MOTION MJPEG2000[2]用于运动图像的压缩,继承了JPEG2000的优点,同时由于没有采用帧间预测和补偿,其硬件实现的复杂度要比MPEG2小得多,因此MJPEG2000能广泛应用于数码相机、高误码率环境、视频采集、广播和胶片转灵的高质量数据视频录像、高分辨率医学图像或卫星遥感图像等方面。
1 JPEG2000简介
JPEG2000的编码框图如。
JPEG2000基于小波变换,放弃了离散余弦变换的区块编码方式,采用以小波转换为主的多分辨率的编码方式,将图像分解成不同分辨率。每种分辨包括四种子带:水平和垂直方向都低通的LL子带、水平高通垂直直低通的HL子带、水平低通垂直高速的LH子带、水平和垂直方向都是高速的HH子带。每种分辨率与子带对图像的重构贡献不一样。根据小波分解后小波系数的特点。JPEG2000采用了截断嵌入式码块编码EBCOT对小波系数进行编码,EBCOT将小波分解后的子带分成互不重叠的编码块(例如块的大小64x64),然后对每个编码块的系数进行独立的比特层编码,对每个比特层都用重要性传播过程扫描、幅度过程扫描和精理过程扫描三种方式;接着对每种扫描的结果采用四种编码方式:重要要性编码、符号编码、幅度精练编码和精理编码。这些编码都采用基于上下文的MQ算术编码,因此每个编码块都独立生成一个编码流,然后根据后压缩率失真优化PCRT-opt算法将每个编码流分成若干段,每段码流长度失真长度斜率从大到小排列,可以将大于某个失真长度斜率的所有编码块的编码流组合在一起形成一个质量层。EBCOT的特点就是钭位流的生成和组合分开进行,这样可根据需要灵活处理码流的生成。
运动JPEG2000标准是在JPEG2000标准的第三部分定义的,称为MJPEG2000,其文件格式如所示。MJP2可以在一个文件里包含一系列JPEG2000图像和时序,还可以容纳背景声音和元数据。用户可以编辑、显示、交换和流媒体化图像序列。Motion JPEGL2000是一种针对图像序列的标准,在一个单独编解码器中同时支持无损和有损压缩。它允许一个或多个JPEG2000压缩图像序列,与声音、元数据同步后,存储为MJ2的文件格式。
JPEG2000标志主要说明这个编码流符合JPEG2000标准,“文件类型”用来更具体说明这个码流的文件格式,如JP2格式、MJP2格式等。MJ2 moov box主要包含MJ2中的视频、音频的一些解码所需的描述信息。而mdata box则包含实际的视频、音频压缩数据和一些元数据。JPEG2000编码流就是视频预序列中的每帧的JPEG2000码流。
2 ADV202结构
通过JPEG2000的编码过程知道,小波变换、EBCOT截断嵌入式块编码(上下文的MQ算术编码、后压缩率失真优化和码流打包)是JPEG2000的主要编码步骤ADV202采用小波编码模块处理小波变换、三个熵编码模块处理MQ算术编码,另外用RISC处理器实现了JPEG2000码流的打包。这样的分工模式极大地提高了JPEG2000的编码速度。ADV202支持9/7和5/3小波变换,支持6级变换,三分量4:2:2隔行模式支持2048像素,单分量模式支持4096像素;图像高度是4096像素。对于不可逆模式,ADV202的处理能力为65M样本/秒,可逆模式为40M样本/秒,因此对于标清的PAL和NTSC格式的视频,一片ADV202即能够处理。如果用多片ADV202,则ADV202也能支持HDTV的高清视频图像处理。
ADV202有两种输入接口,像素接口和主机接口。当视频序列人像素接口输入时,表示输入数据的时钟确定,能直接将数据送入小波变换模块,进行小波变换,例如从标清视频解码器输出数字视频数据;如果从主机接口输入,则输入数据的速率与系统时钟不匹配,需先送入像素FIFO,系统通过FIFO的读写来匹配系统时钟,将FIFO读出的数据送入小波变换模块进行小波变换。然后进行EBCOT量化编码,由RISC将编码流打包成JPEG2000编码流或者JPEG2000的JP2文件格式,打包的码流送入编码流FIFO。外部设备通过主机接口访问编码流FIFO得到JPEG2000压缩码流。
ADV202作为解码器时,则像素接口和像素FIFO作为输出,编码流FIFO接收JPEG2000编码流,是ADV202的内容模块。
3 总体设计方案
3.1 MJPEG2000编码系统
本方案采用芯片ADV202来作MJPEG2000的编解码处理,模拟标清电视信号输入通过视频解码器连接到像素接口,ADV202将JPEG2000编码流从主机接口输出,PC机通过PCI接口芯片将JPEG2000编码流以DMA方式取出,并存入PC机硬盘。然后由PC软件JPEG2000码流打包成标准的MJPEG2000文件格式。同时ADV202接收PC机传送的编码参数,如有损无损压缩选择、编码块大小选择、小波分解级数、量化步长、MQ算术编码模式选择、JPEG2000码率的渐进模式选择、CSF参数、压缩选择等。如果将ADV202的RISC程序改为JPEG2000的解码程序,则ADV202可以从编码功能转变为解码功能。因为ADV202支持丰富的参数选项,因此本系统采用基于PC机的设计,以更好地发挥ADV202的灵活性和MJPEG2000压缩流的存储。
MJPEG2000编码系统如所示,ADV202的像素接口和主机接口都是通过ispGDX(即I/O的连接器)再与其它芯片相连。因为在这个系统中,ADV202即可做编码器,也可做解码器,其像素接口即要连着视频解码器的输出口,也要连着视频编码器的输入口。使用ispCPLD则能轻松解决这个问题,同时ADV202支持分量样本位深为12位,可以支持视频解码器分量样本位深8、10、12比特和双输入8、10或12比特分量等,通过ispCPLD增加了系统的灵活性。
PCI接口芯片连接PCI总线和CPLD,负责ADV202的压缩输出码流与PC机之间的连接,将压缩流通过PCI总线存入PC机的硬盘,或将压缩流通过PCI接口芯片送入ADV202的编码流FIFO解骊。
CPLD的主要功能:
·模拟I2C的模拟总线,配置视频编码器和解码器的寄存器,PC机软件将寄存器数据通过PCI接口芯片传送到CPLD,CPLD将接收到的数据通过模拟I2C,总线来配置视频编码器和解码器的寄存器;
·接收PC机命令,控制ADV202的像素接口与视频解码器和视频编码器的连接状态;
·接收PC机命令,配置ADV202的寄存器值;
·接收PC机命令,修改ADV202的编码/解码参数值;
·接收PC机的程序,将编码/解码程序存入ADV202的内存中;
·配置ispGDX,更改ADV202的像素接口与视频编码器/视频解码器的连接。
3.2 MJPEG2000解码系统
只需将JPEG2000解码软件给ADV202,则整个系统将转变为解码器。MJPEG2000码流可以通过软件在PC机上解码播放;或者将MJPEG2000码流解析成JPEG2000编码流,通过PCI接口芯片送入主机接口的编码流FIFO,由ADV202解码后从像素接口输出到视频编码器,然后在监视器上显示,也可以将ADV202解码后的像素送入像素FIFO,通过PCI存入PC机硬盘。同样解码参数也可通过PCI接口将参数写入ADV202的寄存器,也可通过CPLD的I2C模拟程序配置视频编码器的寄存器值,将系统转变为MJPEG2000解码器。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。