适用于jpeg2000标准的高速低功耗mq编码器的制作方法

文档序号:7913720阅读:290来源:国知局
专利名称:适用于jpeg2000标准的高速低功耗mq编码器的制作方法
技术领域
本发明涉及一种符合JPEG2000标准的高速低功耗自适应二进制算术编码器(MQ编码器)。
传统的二进制算术编码是把被编码的信息表示成实数0和1之间的一个间隔。信息越长,间隔越小,位数越多。信息源中连续的符号根据某一模式生成概率的大小来减少间隔。可能出现的符号要比不太容易出现的符号减少的范围少,因此只增加较少的比特位。在传输任何信息之前的完整范围是
。当一个符号被处理时,这一范围就依据分配给这一符号的那部分变窄。反之,用比较大小的方法可以从编码的逆过程从代码串恢复到数据串。
近年来,二进制算术编码又有了新的发展,其改进主要集中在“自适应概率估计模型”和“定长区间的重整”的优化以及算法复杂度的降低等方面。IBM的ABIC(自适应双层图像压缩)采用了Q编码器进行自适应二进制算术编码,它的模板包括7个周边像素,共128个上下文(context)。JBIG标准采用了QM编码器,其模板包括10个周边像素,共1024个上下文。关于ABIC和JBIG的详细内容参见J.L.Mitchell and W.B.Pennebaker,“Optimal hardware and software arithmetic codingprocedures for the Q-coder,”IBM J.Res.Develop.,vol.32,no.6,pp.727-736,Nov.1988.和W.B.Pennebaker,J.L.Mitchell,G.G.Langdon,Jr.,and R.B.Arps,″An Overview of the Basic Principles of theQ-Coder Adaptive Binary Arithmetic Coder,″IBM J.Res.Develop.32,717-726(1988).。
MQ编码器是JPEG2000标准所采用的另一种改进的Q编码器,它也被JBIG2标准所采用。与Q编码器相比,MQ编码器继承了无乘法的近似、定长区间自动调整和位缓存的策略,增加了条件交换和概率估计状态机中的贝叶斯学习过程。MQ编码器的概率估计模板包括8个周边像素,共19个上下文(context),47个概率状态。


图1显示了MQ编码器的输入输出数据流。根据JPEG2000标准,原始图像经小波变换产生小波系数,这些小波系数经过位平面编码后生成的上下文CX(ConteXt)和待压缩数据D送入MQ编码器,最后输出压缩过的码流CD。
整个编码过程可分为概率估计、间隔计算、区间重整和交换、字节输出等四个主要步骤,以及初始化和结尾(FLUSH),其中区间重整和交换和字节输出两步只有当条件合适时才执行(如图2所示)。详细软件流程图可参见JPEG2000标准ISO/IEC 15444-1JPEG 2000 image coding system,2000,(FinalCommittee Draft Version 1.0)。
在MQ编码中,以LPS代表小概率符号,其概率为Qe;以MPS代表大概率符号,其概率为1-Qe。编码时设置两个专用寄存器A和C,A寄存器中的数值为子区间的宽度,C寄存器中的数值为子区间的起始位置。
在传统的二进制算术编码中,C和A按以下规律不断修正当低概率符号LPS到来时 当高概率符号MPS到来时 C+A为子区间的右端点,算术编码的结果落在[C,C+A]子区间内。
由于A≈1,MQ编码器为了提高运算速度,对乘法运算进行了近似处理当低概率符号LPS到来时 当高概率符号MPS到来时 由C和A的修正过程可知,C和A的绝对值不断减小,小数点后的位数越来越长,这不利于硬件的实现。区间重整是在A<0.75时,将C和A都乘以2,直至0.75≤A<1.5(见图3)。
当低概率符号LPS很频繁地到来时,Qe的值会逐渐增大到0.5以上,这时低概率符号LPS的区间将大于高概率符号MPS的区间。为了避免这种情况,可以将MPS与LPS互换(见图4)。
MQ编码器采用一个可以对原始数据快速适应的复杂的概率自动估计模型,它具有47个状态的有限状态机,每一个状态对应于一个概率估计Qe、下一个状态(NMPS或NLPS)和条件交换信号(SWITCH)。这些状态以自适应的层次来组织排序(见图5),每一个上下文(CX)都对应一套这样的概率自动估计模型。
开始编码时,编码器并不包含图像的先验信息,所以采用0状态来代表假设为近似相等的初始概率分布。当一个像素被编码后,该模型被指定的新的像素内容的索引所更新。当每个大概率符号(MPS)的到达之后,自动状态机就跳转到位于同一行右侧的下一个状态,它具有较小的LPS概率。当每个小概率符号(LPS)的到达之后,自动状态机就跳转到位于下一层的适当的位置(当此状态是迁移状态时),或同一行的前一个状态(当此状态是非迁移状态时),它具有较大的LPS概率。因此,迁移状态仅仅在学习阶段可以被访问,指针最后会稳定于稳定状态。如果后来概率统计又发生了变化,为了进行局部适应,也可以从稳定状态重新回到迁移状态。
虽然省略了乘法运算,但繁琐的区间判断、频繁的区间重整和复杂的字节输出仍然使得MQ编码器的软件执行速度较低。因此,高速MQ编码器的VLSI实现对于实时图像压缩系统来说十分必要。近年来,不少专家对二进制算术编码器(包括Q编码器和QM编码器)的硬件实现进行了研究,但对于MQ编码器,由于算法较新,其VLSI实现在国内外都属于前沿,不大成熟。例如M.Boo,JDBruguera and T.Lang“A Vlsi Architecture For Arithmetic Coding Of Multi-Level Images”IEEETransactions on Circuits and Systems-II,vol.45,NO.1,January 1998;以及台湾的H.H.Chen,C.J.Lian,K.F.Chen,L.G.Chen,“Contextbased Adaptive Arithmetic Encoder Design for JPEG 2000”,inProceedings ofTaiwan VLSI Design/CAD Symposium 2001,section C1-10,August 2001。这些设计无论在芯片的速度、面积和功耗上都不能满足许多高端的移动设备(如数码相机)的需要,因此对MQ编码器的VLSI实现仍需进一步研究。
本发明提出的适用于JPEG2000标准的高速低功耗MQ编码器,首先在保证与JPEG2000标准的压缩结果完全一致的前提下,对JPEG2000标准中MQ编码算法进行了相应的改进和化简,以适应硬件的高效率低功耗实现;然后基于改进算法,采用三级的流水线的并行电路结构设计MQ编码器,以进一步提高编码速度。
本发明提出的MQ编码器的编码过程可分为概率估计、间隔计算、区间重整和交换、字节输出4个主要步骤,以及初始化和结尾(FLUSH)。本发明在不改变JPEG2000标准的压缩结果的前提下,将JPEG2000标准中相当繁琐的间隔计算和判别流程(包括CODE0/CODE1、CODELPS/CODEMPS等共五个子程序,详见JPEG2000标准ISO/IEC 15444-1JPEG 2000 image coding system,2000,FinalCommittee Draft Version 1.0)进行了改进,化简为一个判别/执行步骤(见图6)。即若待压缩数据D是小概率符号,且间隔A大于等于两倍的小概率符号的概率Qe;或者待压缩数据D是大概率符号,且间隔A小于两倍的小概率符号的概率Qe,则间隔A为Qe,起点C不变。否则,间隔A为原来的间隔A减去Qe,起点C为原来的起点C加上Qe。这样就降低了硬件的复杂度,减小了功耗。
本发明为了提高MQ编码器的处理速度,对“区间重整”和“字节输出”过程进行了加速。JPEG2000标准中的“区间重整”和“字节输出”是一个循环执行的流程(见图7)。每次A和C左移一位(乘以2),直到A大于等于0.75为止。每当移了8位时(CT=0),从C中输出一个字节。由此可见,如果A中的值很小(最小可能为0.0000000000000001),则需要很多次循环才可能大于等于0.75(最多循环15次),这样的运算速度太低了。因此,本发明采用了一种区间重整的加速算法,如图8所示,首先判断出A为了达到“大于等于0.75且小于1.5”所需左移的位数L,然后将A和C都一次性左移L位。这样无需循环,一次就可以完成区间重整和最多两个字节的输出,大大提高了MQ编码器的处理速度,进一步降低了功耗。
本发明根据以上对MQ编码算法进行的改进和化简,提出了相应的三级流水线的并行电路结构,以进一步提高了编码速度。该结构将整个MQ编码器分为三个部分“概率估计与条件交换”模块91、“区间计算与重整”模块92和“字节输出”模块93(详见图9)。
“概率估计与条件交换”模块91包含一个既可读又可写的寄存器文件(RegisterFile)911,一个只可读的Qe表912,以及一个Qe寄存器913和一个SMB寄存器914。寄存器文件911每行为1bit的MPS(CX)和6bit的Index(cx),共19个CX,所以寄存器文件911大小为19×7bit。Qe表每行为16bit的Qe、6bit的NMPS、6bit的NLPS和1bit的SWITCH,共有47个状态,所以Qe表912大小为47×29bit。外部输入的CX从寄存器文件中选出I(CX)和MPS(CX),然后I(CX)有从Qe表中选出Qe、NMPS、NLPS和SWITCH。外部输入的D和MPS(CX)异或后表示D是大概率还是小概率。当有效时钟沿到来时,I(CX)、MPS(CX)以及Qe寄存器913和SMB寄存器914得到更新。
“区间计算与重整”模块92包括一个“零个数译码器”921、两个可编程移位器922、一个起始位置寄存器C923、高8位缓冲器BH924、低八位缓冲器BL925、CT寄存器926、间隔寄存器A927和输入数据属性寄存器928。“区间计算与重整”模块92根据低码数据D的概率Qe和D是大概率符号还是小概率符号来进行区间计算,并将A的计算结果通过“零个数译码器”921来计算从左端起一直到第一个1为止共有多少个连续0,即通过 算出使0.75≤A<1.5所需左移的位数;然后通过“可编程移位器”922将间隔寄存器A927和起始位置寄存器C923一次性移到位,得到新的A和C;若有数据输出,则存入两个8位的缓冲BH924和BL925中,BL是用来确保输出码流中不会出现FF90h~FFFF之间的码字,因为这是JPEG2000标准所定义的标志符的范围;同时,CT寄存器926由原来的减法记数改为加法记数,CT为6位补码表示,初始值为-4(111100);当CT为正时,CT的高三位表示现在缓冲器中的BYTE数(0/1/2),CT的低三位(范围是0~7)表示了C寄存器中移出的BIT数。
“字节输出”模块93包括两个8位的数据寄存器DL931和DH932以及表示有几个byte输出的2位的寄存器number933。若“区间计算与重整”模块92有新的数据产生,则将缓冲BH924和BL925中的数据输入数据寄存器DL931和DH932,并且将CT[43]表示的输出数据的位数(可能为0位、1位、2位)输入寄存器number933。
本发明的数据输入为待编码数据D、表示D的上下文的CX,以及表示输入数据属性的两位的prop信号,表示4个输入数据的状态。若输入的D、CX为有效数据,则相应的输入数据的状态为normal;否则为invalid。当MQ编码结束时,需要加上两个时钟周期的终止状态over1和over2,执行了MQ编码流程中所必需的结尾过程flush。而MQ编码流程中所必需的起始过程initial是在电路系统复位或over2时执行。
图2显示MQ编码流程。
图3显示MQ编码流程中的区间重整示意图。
图4显示MQ编码流程中的MPS/LPS条件交换示意图。
图5显示概率自动估计有限状态机的组织和迁移示意图。
图6显示化简后的间隔计算流程。
图7显示JPEG2000标准中的循环执行的区间重整和单字节输出流程图。
图8显示采用改进算法的区间加速重整和多字节输出示意图。
图9显示MQ编码器的三级流水线并行结构电路图。其中,91为“概率估计与条件交换”模块,92为“区间计算与重整”模块,93为“字节输出”模块。在“概率估计与条件交换”模块91中,911为寄存器文件(RegisterFile),912为一个只可读的Qe表,913为一个Qe寄存器,914为一个SMB寄存器;在“区间计算与重整”模块92中,921为“零个数译码器”,922为两个可编程移位器,923为起始位置寄存器C,924为高8缓冲器BH,925为低八位缓冲器BL,926为CT寄存器,927为间隔寄存器A,928为输入数据属性寄存器;在“字节输出”模块93中,931、932为两个8位的数据寄存器DL和DH,933为表示有几个byte输出的2位的寄存器number。
图10显示MQ编码器在基于JPEG2000的数字图像压缩编码系统中的运用。
图11显示MQ编码器在JPEG2000编码系统中的时序图。
下面结合JPEG2000数字图像压缩编码系统进一步详细描述本发明。
JPEG2000编码器的结构框图如图10所示,首先对源图像数据进行预处理,包括色空间转换、图像分割(tiling)和减去直流成分(DC-shift)三个过程;然后对每个“图像片”(tiling)进行离散小波变换DWT,目的是将能量大部分集中到低频子带,而高频子带的广大区域可以出现很多0或绝对值很小,这样便于后面的EBCOT编码器进一步的压缩图像。再对变换后的小波系数按码块(code-block)进行EBCOT编码,目的是为了让小波系数按“重要性”逐层量化,提供相应的截断点,并将小波系数按可能成为“重要性”的概率分类,以提高后面MQ编码器的压缩效率。接着对“位平面”经过EBCOT编码所得的符号D依据EBCOT提供的上下文(CX)分类进行MQ编码,以消除或减少图像的信息熵冗余,进一步提高压缩率。最后经过优化组织后形成标准的输出码流。
本发明的改进算法通过MATLAB验证,相应的电路用Verilog语言进行RTL级的描述,并在Verilog-XL中仿真。
本发明在JPEG2000编码系统中的时序如图11所示。
本发明采用了SMIC 0.18u CMOS1P4M工艺标准单元库,通过DESIGN-COMPILER综合后,由APOLLO工具完成布局布线。
用STAR-RC对该版图提取RC参数至.spef文件,再转换为.sdf文件,反标入综合后的网表进行版图后仿真,然后分别用PRIME-TIME和PRIME-POWER进行时序分析和功耗分析,结果如下(1)本发明的处理速度本发明的时钟主频最高可达200MHz,处理能力为1Data/Cycle,即200M Data/Sec;而文献H.H.Chen,C.J.Lian,K.F.Chen,L.G.Chen,“Contextbased Adaptive Arithmetic Encoder Design for JPEG2000”,in Proceedings of Taiwan VLSI Design/CAD Symposium 2001,section C1-10,August 2001.中的MQ编码器的处理能力仅为100M Data/Sec。(2)本发明的芯片面积本发明的随机逻辑为8663门,芯片面积约为0.1mm2;文献H.H.Chen,C.J.Lian,K.F.Chen,L.G.Chen,“Contextbased Adaptive Arithmetic Encoder Design for JPEG 2000”,in Proceedings of Taiwan VLSIDesign/CAD Symposium 2001,section C1-10,August 2001.中的MQ编码器的随机逻辑为11000门。(3)本发明的功耗本发明在电源电压为1.8v,主频为100MHz的情况下的平均功耗约为7.3mW。
权利要求
1.一种适用于JPEG2000标准的高速、低功耗MQ编码器,其特征在于在保证与JPEG2000标准的压缩结果完全一致的前提下,对JPEG2000标准中MQ编码算法进行了相应的改进和化简,以适应硬件的高效率低功耗实现;然后基于改进算法,采用三级的流水线的并行电路结构设计MQ编码器,以进一步提高编码速度。
2.根据权利要求1所述的MQ编码器,其特征在于将JPEG2000标准中的“间隔计算”进行化简若待压缩数据D是小概率符号,且间隔A大于等于两倍的小概率符号的概率Qe;或者待压缩数据D是大概率符号,且间隔A小于两倍的小概率符号的概率Qe,则间隔A为Qe,起点C不变;否则,间隔A为原来的间隔A减去Qe,起点C为原来的起点C加上Qe。
3.根据权利要求1所述的MQ编码器,其特征在于将JPEG2000标准中的“区间重整”和“字节输出”过程进行加速首先判断出A为了达到“大于等于0.75且小于1.5”所需左移的位数L,然后将A和C都一次性左移L位。
4.根据权利要求1所述的MQ编码器,其特征在于基于所述的改进算法,采用三级流水的并行电路结构,具体包括三个部分“概率估计与条件交换”模块(91)、“区间计算与重整”模块(92)和“字节输出”模块(93)。
5.根据权利要求4所述的MQ编码器,其特征在于所述的“概率估计与条件交换”模块(91)包含一个既可读又可写的寄存器文件(911),一个只可读的Qe表(912),以及一个Qe寄存器(913)和一个SMB寄存器(914)。
6.根据权利要求4所述的MQ编码器,其特征在于基于所述的“区间计算与重整”模块(92)包括一个“零个数译码器”(921)、两个可编程移位器(922)、一个起始位置寄存器C(923)、高8位缓冲器BH(924)、低八位缓冲器BL(925)、CT寄存器(926)、间隔寄存器A(927)和输入数据属性寄存器(928);“区间计算与重整”模块(92)根据低码数据D的概率Qe和D是大概率符号还是小概率符号来进行区间计算,并将A的计算结果通过“零个数译码器”(921)来计算从左端起一直到第一个1为止共有多少个连续0,即通过 算出使0.75≤A<1.5所需左移的位数;然后通过“可编程移位器”(922)将间隔寄存器A(927)和起始位置寄存器C(923)一次性移到位,得到新的A和C;若有数据输出,则存入两个8位的缓冲BH(924)和BL(925)中,同时,CT寄存器(926)由原来的减法记数改为加法记数,CT为6位补码表示,初始值为-4(111100);当CT为正时,CT的高三位表示现在缓冲器中的BYTE数,CT的低三位表示了C寄存器中移出的BIT数。
7.根据权利要求4所述的MQ编码器,其特征在于基于所述的“字节输出”模块(93)包括两个8位的数据寄存器DL(931)和DH(932)以及表示有几个byte输出的2位的寄存器number(933);若“区间计算与重整”模块(92)有新的数据产生,则将缓冲BH(924)和BL(925)中的数据输入数据寄存器DL(931)和DH(932),并且将CT[43]表示的输出数据的位数输入寄存器number(933)。
全文摘要
本发明为一种适用于JPEG2000标准的高速低功耗MQ编码器。本发明在保证与JPEG2000标准压缩结果完全一致的前提下,对MQ编码算法中的“间隔计算”、“区间重整”和“字节输出”部分提出了改进,并采用三级流水的并行电路结构设计MQ编码器。本发明在处理速度、芯片面积和功耗等方面均有较大的改进,可以满足许多高端移动多媒体设备的需要。
文档编号H04N7/26GK1477879SQ03129690
公开日2004年2月25日 申请日期2003年7月3日 优先权日2003年7月3日
发明者华林, 朱珂, 周晓方, 章倩苓, 华 林 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1