基于ADV202芯片和PCI接口芯片实现MJPEG2000编码系统的设计

描述

  作者:易峰;何剑辉;全子一

JPEG2000基于小波变换,具有优秀的图像压缩性能,支持更高的比特位深,支持质量渐进模式、适当的编码和码流设计,从而具有更强的误码鲁棒性。而基于JPEG2000的MOTION MJPEG2000用于运动图像的压缩,继承了JPEG2000的优点,同时由于没有采用帧间预测和补偿,其硬件实现的复杂度要比MPEG2小得多,因此MJPEG2000能广泛应用于数码相机、高误码率环境、视频采集、专业广播和胶片转灵的高质量数据视频录像、高分辨率医学图像或卫星遥感图像等方面。

1 JPEG2000简介

JPEG2000的编码框图如图1。

芯片

JPEG2000基于小波变换,放弃了离散余弦变换的区块编码方式,采用以小波转换为主的多分辨率的编码方式,将图像分解成不同分辨率。每种分辨包括四种子带:水平和垂直方向都低通的LL子带、水平高通垂直直低通的HL子带、水平低通垂直高速的LH子带、水平和垂直方向都是高速的HH子带。每种分辨率与子带对图像的重构贡献不一样。根据小波分解后小波系数的特点。JPEG2000采用了

最佳截断嵌入式码块编码EBCOT对小波系数进行编码,EBCOT将小波分解后的子带分成互不重叠的编码块(例如块的大小64x64),然后对每个编码块的系数进行独立的比特层编码,对每个比特层都用重要性传播过程扫描、幅度精确过程扫描和精理过程扫描三种方式;接着对每种扫描的结果采用四种编码方式:重要要性编码、符号编码、幅度精练编码和精理编码。这些编码都采用基于上下文的MQ算术编码,因此每个编码块都独立生成一个编码流,然后根据后压缩率失真优化PCRT-opt算法将每个编码流分成若干段,每段码流长度失真长度斜率从大到小排列,可以将大于某个失真长度斜率的所有编码块的编码流组合在一起形成一个质量层。EBCOT的最大特点就是钭位流的生成和组合分开进行,这样可根据需要灵活处理码流的生成。

运动JPEG2000标准是在JPEG2000标准的第三部分定义的,称为MJPEG2000,其文件格式如图2所示。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编码流,图3是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编码系统如图4所示,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解码器。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分