基于adv212的jpeg2000静态图像压缩系统设计

电子说

1.3w人已加入

描述

  本文主要是关于jpeg的相关介绍,并着重对基于adv212的jpeg2000静态图像压缩系统设计进行了详尽的阐述。

  jpeg

  JPEG 是Joint Photographic Experts Group(联合图像专家小组)的缩写,是第一个国际图像压缩标准。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。人们日常碰到的“.jpeg”、‘’.jpg“等指代的是图像数据经压缩编码后在媒体上的封存形式,不能与JPEG压缩标准混为一谈。

  JPEG(Joint Photographic Experts Group)是在国际标准化组织(ISO)领导之下制定静态图像压缩标准的委员会,第一套国际静态图像压缩标准ISO 10918-1(JPEG)就是该委员会制定的。由于JPEG优良的品质,使他在短短几年内获得了成功,被广泛应用于互联网和数码相机领域,网站上80%的图像都采用了JPEG压缩标准。

  JPEG本身只有描述如何将一个影像转换为字节的数据串流(streaming),但并没有说明这些字节如何在任何特定的储存媒体上被封存起来。.jpeg/.jpg是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,品质就越高。比如可以把1.37Mb的BMP位图文件压缩至20.3KB。当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。

  详细介绍

  JPEG(Joint Photographic Experts Group)是在国际标准化组织(ISO)领导之下制定静态图像压缩标准的委员会,第一套国际静态图像压缩标准ISO 10918-1(JPEG)就是该委员会制定的。由于JPEG优良的品质,使他在短短几年内获得了成功,被广泛应用于互联网和数码相机领域,网站上80%的图像都采用了JPEG压缩标准。

  JPEG本身只有描述如何将一个影像转换为字节的数据串流(streaming),但并没有说明这些字节如何在任何特定的储存媒体上被封存起来。.jpeg/.jpg是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,品质就越高。比如可以把1.37Mb的BMP位图文件压缩至20.3KB。当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。

  详细介绍

  JPEG是第一个国际图像压缩标准,用于连续色调静态图像(即包括灰度图像和彩色图像) [1] 。JPEG是联合图像专家组(Joint Photographic Experts Group)的缩写,这个图像压缩标准是国际电信联盟(International Telecommunication Union,ITU)、国际标准化组织(International Organization for Standardization,ISO)和国际电工委员会(International Electrotechnical Commission,IEC)合作努力的成果。JPEG标准正式地称为ISO/IEC IS(国际标准)10918-1:连续色调静态图像数字压缩和编码(Digital Compression and Coding of Continuous-tone Still Images)和ITU-T建议T.81。这个标准目的在于支持用于大多数连续色调静态图像压缩的各种各样的应用,这些图像可以是任何一个色彩空间,用户可以调整压缩比,并能达到或者接近技术领域中领先的压缩性能,且具有良好的重建质量。这个标准的另一个目标是对普遍实际的应用提供易处理的计算复杂度。 [2]

  在 Photoshop软件中以JPEG格式储存时,提供11级压缩级别,以0—10级表示。其中0级压缩比最高,图像品质最差。即使采用细节几乎无损的10 级质量保存时,压缩比也可达 5:1。以BMP格式保存时得到4.28MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到24:1。经过多次比较,采用第8级压缩为存储空间与图像质量兼得的最佳比例。

  然而,JPEG静止图像压缩标准,中端和高端比特速率上的良好的速率畸变特性,但在低比特率范围内,将会出现很明显的方块效应,其质量变得不可接受。JPEG不能在单一码流中提供有损和无损压缩,并且不能支持大于64×64 K的图像压缩。同时,尽管当前的JPEG标准具有重新启动间隔的规定,但当碰到比特差错时图像质量将受到严重的损坏。

  针对这些问题,自1997年3月起,JPEG图像压缩标准委员会开始着手制定新一代的图像压缩标准以解决上述问题。2000年3月的东京会议,确定了彩色静态图像的新一代编码方式JPEG2000图像压缩标准的编码算法。

  JPEG2000作为JPEG的升级版,其压缩率比JPEG高约30%左右,同时支持有损和无损压缩。JPEG2000格式有一个极其重要的特征在于它能实现渐进传输,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示。此外,JPEG2000还支持所谓的“感兴趣区域” 特性,可以任意指定影像上感兴趣区域的压缩质量,还可以选择指定的部分先解压缩。在有些情况下,图像中只有一小块区域对用户是有用的,对这些区域,采用低压缩比,而感兴趣区 域之外采用高压缩比,在保证不丢失重要信息的同时,又能有效地压缩数据量,这就是基于感兴趣区域的编码方案所采取的压缩策略。其优点在于它结合了接收方对压缩的主观需求,实现了交互式压缩。而接收方随着观察,常常会有新的要求,可能对新的区域感兴趣,也可能希望某一区域更清晰些。

  JPEG2000和JPEG相比优势明显,从无损压缩到有损压缩可以兼容,而JPEG不行,JPEG的有损压缩和无损压缩是完全不同的两种方法。JPEG2000即可应用于传统的JPEG市场,如扫描仪、数码相机等,又可应用于新兴领域,如网路传输、无线通讯等等。

  注意:JPEG标准不指定任何固有的文件格式。它只定义压缩比特流的语法。这就产生了一定数量的文件格式来存储JPEG压缩后的图像,例如JPEG文件交换格式(JPEG File Interchange Format,JFIF),JPEG推广到TIFF6.0、FlashPix等。但它们中的每一个都不能认为是由国际标准委员会支持的正式定义的国际标准。 [2]

  部分JPEG标准

  ⑴核心图像编码系统 [3] ,为JPEG2000指定了基本的特征集合和码流语法;

  ⑵扩充(给⑴的核心定义添加更多的特征和完善度);

  ⑶运动JPEG2000指定了文件格式(MJ2),它包含用于动态视频的具有JPEG2000核心编码算法的图像序列编码;

  ⑷ISO/IEC15444-4:2002。它指定了使用第一部分的JPEG2000用于编码/解码一致性测试;

  ⑸参考软件 (包含Java和C实现)。在这一部分中,提供了两个软件源包(使用Java和C编程语言)用于测试和开发商对于JPEG2000系统实现的有效性检验;

  ⑹复合图像文件格式(用于文件扫描和传真应用程序)指定了其他文件格式(JPM)用于存储复合图像。ITU-TT.441ISO 16485多层混合光栅内容(mixed raster content,MRC)模型用于表示在第6部分的JPEG2000复合图像;

  ⑺对⑴的最小支持(技术报告)【已摒弃】。

  ⑻安全JPEG2000(JPSEC)。这一部分设计了用于JPEG2000应用的安全方面,例如加密、数字水印等;

  ⑼交互工具、API和协议(JPIP)。这一部分定义了一个交互式网络协议,并且它指定了用于JPEG2000图像和相关元数据高效的交换工具;

  ⑽3D和浮点数据(JP3D)。这一部分开发与三维数据有关的内容,以3D医疗图像重建作为例子;

  ⑾无线(JPWL)。这一部分开发了用于无线多媒体的应用。主要涉及用JPEG2000在易出错的无线网环境中JPWL的差错保护、检测和修正;

  ⑿对MPEG-4,ISO基本媒介文件格式(media file format)具有共同的文本ISO/IEC 14496-12

  截止于2007年,⑴为完全被认可的ISO标准,定义了核心压缩技术和最小文件格式,⑵~⑹定义压缩和文件格式的扩充。其中,⑺已摒弃。⑻~仍在发展之中

  基于adv212的jpeg2000静态图像压缩系统设计

  在早期的压缩技术,如JPEG标准,已不能满足对压缩图像质量进一步提高的要求背景下,研究硬件实现最新压缩标准JPEG2000(ISO/IEC15444-1图像压缩标准)变得意义重大。ADV212是目前市场上用于硬件实现静态图像压缩最新算法标准JPEG2000的图像压缩编解码芯片,适用于多种视频和静止图像格式的数据压缩处理。

  ADV212的编解码原理及工作过程

  目前,通过专用图像压缩芯片构建压缩系统一般有两种做法:一种是DSP+专用芯片+CPLD,其中,CPLD用于完成逻辑控制,DSP用于辅助数据处理;另外一种是FPGA+专用芯片,FPGA用于逻辑控制和辅助数据转换。比较而言,后者在灵活性方面更有优势。这里采用后一种做法。

  ADV212主要由像素接口、小波变换引擎、熵编解码器、嵌入式处理器、存储器系统、内部DMA引擎和外部DMA引擎等组成。图像和像素数据输入像素接口,采样值则经过隔行扫描传输到小波变换引擎中。在小波变换引擎中,每个图块或帧将通过5/3或9/7滤波器分解成许多频率不同的子带,对应的小波系数写入内部存储器中。熵编解码器将小波变换后的系数通过算术编码为符合JPEG2000标准的数据。内部DMA引擎用来完成存储器之间以及各模块和存储器之间的高带宽、高性能传输。

  依据JPEG2000的编码流程,结合数据流可将ADV212的压缩编码过程划分为小波分解、熵编码、码流存储、码流输出四个过程。

  小波分解

  像素或视频数据通过VDATA总线输入,或者像素数据通过HDATA总线进入芯片。在这两种情况下,视频数据/像素数据都要通过像素接口,然后在对视频图像数据解交错后送往小波变换引擎。进入小波变换引擎的数据被分块或分帧,再用5/3定点运算或9/7浮点运算滤波器将其分解到不同的子带上。低频子带是对原图像的近似,高频子带则反映图像的细节。滤波器对每一块或帧图像数据可执行高达6级的小波分解,分解后的小波系数被写入内部存储器。

  数据压缩

  小波变换后的系数通过3个熵编码器后被分解成码块单元,对这些码块单元进行独立编码产生基本码流,再按照率失真进行基本码流长度截取后按不同要求组织成数据流。对码流的处理是在码块的基础上进行的。对数据的压缩主要通过以下手段实现:

  量化:在有损压缩情况下,码块的位流被截断;在无损压缩情况下,码块的位流不用截断。

  率失真最优化:量化的数量依赖于对输出率或输出质量的要求,三个熵编码器将进行失真计算以找到最佳的率失真性能。

  上下文建模:这个过程是根据每个系数的重要性来构造成上下文模型,然后进行数据打包和分层,形成JPEG2000标准的数据码流。

  码流存储

  熵编码形成的JPEG2000标准的数据码流被存入内部存储器中。JP2格式的文件由一种被称作“压缩信息盒”(box)的二进制数据结构单元组成。这种信息单元在物理连接上有点类似列车,车厢中压进的是所要传递的信息。而且,一个压缩信息盒中可包含有其他压缩信息盒。每个压缩信息盒长度可变,但都具有如图1所示的结构形式。

  其中,LBox部分用来说明该压缩信息盒的长度,其表现形式是32位的无符号二进制整数;TBox部分用来说明信息盒中DBox部分信息数据的类型,包括3大类:标准定义类、添加知识产权信息类、添加开发商指定信息类。其表现形式也是32位无符号二进制数;XLBox用来说明延伸了的信息盒长度,即信息盒实际的长度,该部分包含了LBox和TBox在内的所有信息;DBox部分存放目标数据,数据格式与前面的TBox中指定的信息数据的类型有关,不同的类型对应不同的数据格式。 码流输出

  JPEG2000码流通过高速总线进入编码FIFO,以缓冲内部高速总线和低速主机接口。码流数据可通过共用的读写存取协议(CS,RD,WR,ACK,ADDR)从主机接口输出,或者通过DREQ/DACK协议由外部DMA控制器协调下的外部DMA引擎输出。

  FIFO主要用于缓冲内部高速总线和低速主机接口。像素FIFO专用于存储像素或分量数据。它用在未压缩像素数据从HDATA总线输出的情形下,此时,像素数据从HDATA总线经像素接口到达像素FIFO。

  编码FIFO用于缓冲压缩数据。特征FIFO用于缓冲压缩特征数据,例如失真、失真范围,或字长;辅助FIFO可用于缓冲压缩其他的各种数据。

  压缩系统的总体考虑

  ADV212芯片接口灵活,在数据处理量大的场合,可进行多片组合同步处理。构建压缩系统首先考虑所需ADV212的数量,这也是系统的总体考虑因素。

  数据吞吐率

  数据吞吐率=有效垂直分辨率×有效水平分辨率×像素分量数×场率(单位:MSPS)。对VDATA总线,在150MHz主频下,最大输入吞吐率为65MSPS。

  每幅图像的采样数

  单片ADV212每幅图像的采样点数限于1.048M个采样点。图像采样点数=有效垂直分辨率×有效水平分辨率×像素分量数(单位:MSPS)。例如,在PAL视频格式下,YCbCr在4:2:2格式下每个像素点采样两次。则标准精度NTSC每场含有720×288×2=414720个采样点,小于1.048M个采样点,故只需一片ADV212即可。

  对静态图像压缩,ADV212单分量图像支持最大长宽为4096个像素点的图像,更大的图像必须先分块再处理。

  图像压缩系统结构

  图2是图像压缩系统的结构图,本系统中使用的FPGA为Virtex II Pro系列中的XC2VP40,它实现系统的主要控制。其利用IP植入技术,无缝嵌入了32位的IBM PowerPC 405 RISC处理器内核和Rocket IO多路吉比特串行收发器MGT(Multi-Gigabit Transceiver)。

  PROM采用XQ17V16存储FPGA的配置程序,6片SDRAM用来存储编码过程中的数据。ADV212专门负责编码FPGA递交的图像数据。参照数据手册推荐,将ADV212入口数据宽度和出口数据宽度都设置为10bit。

  系统与外部数据交换采用CompactPCI(简称CPCI)总线,它读写速度快、性能稳定,支持热插拔并易于扩展,可同时支持多达256个的标准CPCI总线设备。

  本系统中图像数据经CPCI总线读入并经FPGA缓冲后,交给ADV212进行压缩编码,编码后的码流数据经FPGA缓冲后从CPCI输出。FPGA除了完成对ADV212的输入/输出数据进行控制外,还完成CPCI总线的控制协议。

  ADV212的工作模式是在初始化固件中通过写寄存器的状态字来设定的,大小约为32KB的固件程序以后缀为*.sea的格式存在,在本系统中通过USB接口下载到ADV212的间接存储器中,其地址段为0x00050000-0x0005EFF,数据宽度32bit。采用C语言的ADV212程序编码流程如图3所示。

  系统开始工作前,要确保ADV212加载了正确的固件,在FPGA主控程序中通过四个步骤来实现:第一步是向外部中断使能寄存器中写入0X0400来屏蔽软件中断0位;第二步等待到中断引脚IRQ被拉低,第三步检查外部中断标记寄存器的EIRQFLG[10]位是否被设置,第四步从软件标记寄存器中读应用标识,如果读到的是0XFF82,则说明固件加载正确,系统可以开始工作。

  干涉图在压缩后,如果丢失信息过多,或是丢失了部分重要信息,则无法复原出真实的光谱。利用干涉成像则是利用目标的特征光谱信息进行目标识别和反伪装。一般认为直接干涉图压缩很难实现较大的压缩比,故该系统的一个任务就是探讨JPEG2000用于直接干涉图压缩的可能压缩比大小。

  测试试验结果

  用该系统对国际标准图片lena进行压缩的测试,在压缩比为4:1和8:1下生成了jp2格式的图像文件,验证了硬件系统的可用性和正确性。其次,对大量的干涉图进行压缩和比对,对比对结果的分析认为,系统在保留足够干涉信息的前提下,干涉图像的数据量得到了一定程度的压缩,表明该系统可用于干涉图压缩。

  系统之所以能对普通图像实现比干涉图大的压缩比可以做到比干涉图高,主要有两方面的原因:其一是ADV212所实现的JPEG2000压缩主要针对的是二维空间图像,所以能在对普通二维图像的压缩上表现出其优越性,而干涉图是包含有光谱维信息的准三维图像(另一维是光谱信息),直接将二维图像压缩方法应用到干涉图,没有利用另外一维的相关性,其二是干涉图要保留光谱维信息,不允许压缩时损失过多细节信息,也即干涉图的直接压缩倾向于无损或近无损压缩。

  结语

  基于FPGA+ADV212结构的图像系统具有可靠性高、调整灵活、压缩信号易恢复等优点,可以应用于非线性编辑系统、图像采集处理系统等。随着JPEG2000的广泛应用,专用图像压缩芯片ADV212必将被越来越多地应用到视频和图像压缩方面的各种编解码系统中。

相关阅读推荐:JPEG2000的近距离无线视频传输系统设计

相关阅读推荐:基于LM9627的JPEG2000压缩与传输系统

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

全部0条评论

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

×
20
完善资料,
赚取积分