JPEG2000中位平面编码的存储优化方案设计和实现
1.引言
JPEG2000具有许多不同于JPEG的新特性,如按图像质量或分辨率渐进传输、感兴趣区域的提取,因此能够被应用于许多场合,如图像监控,数码相机,网络图书馆等。但是对于这些实时系统,要求编码器的处理速度相当高,而JPEG2000的两大核心模块(见图1),小波变换和EBCOT[2](基于优化截断点的嵌入式块编码)其运算开销很大,占据了整个编码器处理时间的一半以上。因此,有必要研究合理的实现方式,一般来说采取软件实现方式相对比较简单,比如JPEG2000的参考代码jasper[3],但实时处理的能力较差,即使采用嵌入式系统的方案,如使用DSP或ARM等通用处理器,基本上也是通过软件的方式来实现,速度提升不大,必须针对块编码本身的特点设计高效的硬件结构单元。只有这样,才能使JPEG2000在实时处理的应用中发挥其作用。
2.存储优化的实现方案
JPEG2000的嵌入式块编码是基于位平面的编码,其对象是小波变换后频域系数组成的相对较小的码块,大小一般是32×32或64×64。码块中的系数包含符号信息和许多个不同权值的幅度信息。位平面编码的思想就是将最重要的信息先进行编码,也就是权值较大的幅度信息先编码,这样配合后续的码流组织(见图1)即可使最终的码流获得渐进传输的特性。
根据标准[1],编码过程中除了用到符号和幅度信息外,还需要每个比特位的显著信息,细化信息和访问信息。因此,对于一个32×32的码块,编码一个位平面时,总共需要存储5×1024位的信息。另外,由于编码是以一列中的4位为单位,所以通常将每块编码信息存储为256×4的形式(见表1)。
但是事实上这种存储结构是低效的,因为根据标准[1],编码一个比特位包括两个步骤,即判断通道归属和编码原操作。在这两个步骤中,需要访问的信息包括当前位的显著、符号、幅度、细化和访问信息,以及当前位的周围8个比特位的显著和符号信息。对于基于列的编码方式,如果按照上面的方案存储信息,即将符号和显著信息以字长为4存储,则实际上每次编码一列,需要读入前一编码带(通常将每4行称为一个编码带)、当前编码带和后一编码带的共12位显著和符号信息,但是事实上只有其中的6位是有用的,其余6位是冗余信息。由于编码是基于比特位的操作,因此会频繁地访问存储区域,每次编码一列必须读出相应的各信息位,编码完成一列数据还要将相应的编码信息再次写回存储区域,以达到更新编码信息的目的。可见,采取上述4位字长的方案是非常低效的。
所以,本文设计了一种相对合理的存储方案,即在码块的最上面一行和最下面一行各添加一行全0数据(这是对显著和符号平面而言),构成34×32的块,然后以两行为一组,并按交错存储的方式,即A,B,C,B,A,。。。,C,B,A,将信息分配至三块存储区域MEMA,MEMB和MEMC(见表2)。
相关文章
- 2023-03-26基于SolidWorks的摆动式生物反应器三维建模与仿真
- 2023-04-16电脑压力补偿式水位计的应用
- 2023-08-31轧机振动及非线性分析
- 2024-01-20光谱辐射度测量中杂散辐射屏蔽材料的选择
- 2022-08-30超声手术手柄振动系统的有限元与实验分析
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。