首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
JPEG 2000标准中MQ编码器的VLSI结构设计
来源:本站整理  作者:佚名  2009-08-26 12:33:24



 引 言
    JPEG 2000是为了弥补JPEG的不足而提出的新一代静止图像压缩国际标准。其目标是对多种类型的静止图像实现高效压缩,并要求压缩码流具有较好的抗误码性能,用户可对图像进行多种形式的累进传输,还可以对压缩码流进行随机访问和处理。
    JPEG 2000用基于上下文的自适应算术编码取代JPEG系统中的赫夫曼编码,对量化后小波变换系数的二进制位平面进行算术编码。算术编码对每一小波子带分块独立进行位平面编码,并将每个位平面分在3个子位平面通道内进行编码。虽然现有算术编码在算法上做了很多改进,但算法的复杂性和大量的编码数据导致MQ编码器的实际工作效率仍然很低。为了提高MQ编码器的编码速度,对编码流程进行优化,提出一种基于三级流水线的MQ编码器的VLSI结构。

1 MQ编码器原理
    JPEG 2000的编码系统流程如图1所示。

    在JPEG中,作为无损压缩DCT系数的熵编码方法,采用了霍夫曼编码(算术编码为选项)。霍夫曼编码因按DCT系数大小来分配可变码长,所以查表处理形成主体,能够简单实现霍夫曼编码。但是,由于预先调查了解符号系列的统计性质后制表,所以此后一旦有与其性质相违背的符号输入进来,就难免使压缩特性恶化,这个不足限制了其应用范围。
    补救霍夫曼编码这一缺点的就是JPEG 2000中被采用的自适应算术编码。算术编码的构思是作为Elias编码,依据为人们所熟悉的划分递归概率区间的设想,在Elias编码中,对于具有 “0”或“1”值的二进制符号系列,以各自概率值比率将当前概率区间划分成两个子区间,被分配给实际产生符号的概率值区间下限值构成代码串。即代码串按二进制符号系列的输入逐次被递归地修正下去。
    JPEG 2000中采用算术编码,其基本规则像Elias编码那样,不是以符号“0”和“1”的实际值来区别,而是分别作为MPS(大概率符号)或LPS(小概率符号)中一个子区间来区别的。而且,将当前概率区间划分成两个子区间时的顺序是MPS子区间可配置到LPS子区间的上面。因此,若符号是MPS,就在给代码串附加LPS子区间的同时,设概率区间宽度为MPS子区间;若符号是LPS,就不改变代码串,设概率区间宽度为LPS子区间。按判决输入将此处理递归地重复下去。MQ编码器的输入/输出框图如图2所示。其中,D是二进制判决;CX是上下文索引;D和CX二者均事先由算术编码之前进行的系数位建模确定。 CD是输出的压缩数据。

    在MQ算术编码器中,用寄存器A表示当前子区间的宽度,寄存器C表示子区间的起始位置。它们均具有16 b有效长度,在发生重新归一化时,为了避免16 b的C寄存器溢出,而采用28 b表示。通过采用重新归一化方案,使A的取值范围保持在[0.75,1.5]。当编码器接收到一个新的待压缩码,编码器从概率估值表查找相应的概率Qe。根据接受的待压缩码类型,寄存器A的值和寄存器C的值被进行更新,从而区间更新可近似为:当编码MPS时,A=A-Qe,C=C+Qe;当编码LPS时, A=Qe,C=C,避免了乘法运算。
    同时,由于MQ算法在进行区间计算时省略了乘法的近似,使得可能发生LPS子区间大于MPS子区间的情况。为了避免这种情况,采用区间条件交换,即将 MPS与LPS互换。MQ编码器通过重归一化方法解决计算的有限精度问题:当A<O.75时,对A进行左移直至不小于0.75为止,同时C也左移同样位数,并按一定间隔将不再变化的高位移入存储区。
    MQ编码器所使用的概率估值表是一个可以对原始数据快速适应的复杂概率自动估计模型。该模型是一个具有47个状态的有限状态机。每个状态包含小概率符号 LPS的概率Qe、下一个状态的索引NMPS和NLPS。是否需要交换MPS和LPS所代表符号的标志SWITCH。
    MQ编码器中设置了一个专用计数器CT作为已压缩字节输出控制。当A左移1位时,CT也同时减1;当CT=0时,输出1个字节。为避免区间更新过程中产生的进位向前传播,在MQ编码器中,采用位填充技术来处理进位问题。根据字节缓冲B及C进位位的值,编码器选择是否进行位填充。

[1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:196,832.00000 毫秒