位平面编码方法及实现该方法的电路的制作方法

文档序号:6573037阅读:275来源:国知局
专利名称:位平面编码方法及实现该方法的电路的制作方法
技术领域
本发明属于图像数据压缩领域,特别涉及一种位平面编码方法及实现该方法的电路,用于JPEG 2000的位平面编码的软件和硬件实现。
背景技术
嵌入式优化截断块编码(Embedded Block Coding Optimal Truncation)是一种已被新的静止图像编码标准JPEG2000采用的最新编码技术,其实现主要包含位平面编码(Bit Plane Coding)和自适应二元算术编码(BinaryArithmetic Coding)两部分。其位平面编码为一种基于分数位平面的多通道编码技术,以产生待编码样本的上下文环境和判决数据对,进一步用于后级的自适应二元算术编码。
在EBCOT编码算法的位平面编码部分,采用四种不同的编码原语的之一或之二来形成系数样本的上下文环境与对判决数据对(CXD)(1)零编码原语,利用当前编码样本的在水平方向邻域的重要性贡献σh、垂直方向邻域的重要性贡献σv和对角方向邻域的重要性贡献σd,产生待编码系数幅度样本的上下文环境,JPEG2000使用的待编码样本的上下文环境和与判决数据与其邻域的重要性状态的关系如表1所示,表中的x可以为任意的0或1值,D表示编码样本的幅度值;(2)符号编码原语,利用当前编码系数的在平方向邻域系数的符号重要性贡献σhx、垂直方向邻域的符号重要性贡献σvx,产生当前编码系数符号位样本的上下文,JPEG2000使用的待编码系数符号样本的上下文环境和判决数据与其邻域系数的符号重要性贡献的关系如表2所示,表中的S代表编码系数的符号值,S代表编码系数的符号值的反码;(3)幅度细化编码原语,利用当前编码样本的在平方向邻域的重要性贡献σh、垂直方向邻域的重要性贡献σv和对角方向邻域样本的重要性贡献σd的和σ∑,以及与当前编码样本的幅度细化状态信息σ,产生待编码系数幅度样本的上下文环境和判决数据,JPEG2000使用的待编码样本的上下文环境和判决数据与其邻域的重要性贡献的关系如表3所示,表中的x可以为可取的任意值,D表示编码样本的幅度值;(4)游程编码原语,在检测到当前编码条带列满足执行游程编码的条件下,进一步依据游程的长度形成1~3对上下文环境和判决数据,JPEG2000使用的待编码条带列执行游程编码产生的上下文如表4示。
表1零编码产生样本的上下文与其邻域的重要性状态的关系

表2符号编码产生样本的上下文环境和判决数据

表3幅度细化编码产生样本的上下文环境和判决数据

表4游程编码产生样本的上下文环境及判决数据

基于传统的分数位平面编码算法的实现需要对原始数据进行全部共3n-2通道编码(n为样本幅度值的最高位),因此需要对原始数据进行全部共3n-2次扫描,其软硬件实现具有很大的扫描冗余和很高的计算复杂度。根据JPEG 2000标准,每个样本的上下文形成需要已知该样本及其8邻域的5个状态变量的值,因此需要较大规模的存储器,缓存状态变量的中间值,从而要求系统具有较高的硬件实现成本和具有较大的功率消耗。针对上述问题,C.J.Lian等人在文献“Analysis and architecture design ofblock-coding engine for ebcot in JPEG2000,”IEEE Trans.on Circuits andSystems for Video Technology,vol.13,pp.219-230,2003提出了一种采用跳样本、跳列等优化串行编码(optimal serial coding)的技术减少通道扫描的冗余性,从而减少扫描时间。J.S.Chiang等人在文献“Efficient pass parallelarchitecture for EBCOT in JPEG2000,”Proceeding of IEEE ISCAS-2002,May 2002提出了采用通道并行编码(pass-parallel coding)的技术减少对存储器的访问和增加编码速度。朱悦心等人提出了一种采用多级查询表的位平面扫描技术减少通道扫描的冗余性和增加通道扫描和状态变量的并行性。刘凯等人在文献“Bit plane parallel coder for EBCOT and its VLSIarchitecture,”Chinese Journal of Computers,vol.27,no.7,pp.928-935,2004提出了一种基于位平面并行的编码技术,实现位平面编码的并行完成。Fang等人在文献“Novel word-level algorithm of embedded block coding inJPEG2000,”Proceeding of IEEE ICME2003,vol.1,pp.123-139,2003提出了一种基于字级的位平面编码技术,但是其实现需要经过两次扫描,因此需要较大规模的存储器需求而只适合于软件实现。Xu等人在文献“Bit-plane and pass dual parallel architecture for coefficient bit modeling inJPEG2000,”Proceeding of IEEE ICASSP’2004,vol.5,pp.85-88,2004提出了一种通道和位平面编码双并行的编码思想以进一步加速了位平面建模的速度和减少存储器需求。上述方法在一定程度上减少了冗余扫描时间,增加了数据处理能力,但他们的实现仍具有较低的数据处理能力,并具有较高的硬件实现成本和控制复杂度。

发明内容
本发明提出一种位平面编码方法及实现该方法的电路,针对现有技术存在的缺陷,提出基于字级顺序扫描和多字并行编码的技术,目的在于有效地减少扫描冗余和控制复杂度,有效地增强算法实现的并行性,进一步有效地提高系统的数据处理能力。
本发明的一种位平面编码方法,对每一子块编码包括下述步骤(1)初始化步骤,初始化表示编码子块大小的变量,读入并存储子块内第1条带列的4个系数;(2)并行执行步骤,并行同步执行读入子步骤、编码通道预测子步骤和形成上下文子步骤,(2.1)读入子步骤(2.1.1)按扫描顺序同时读入一列4个新系数;(2.1.2)判定子块内所有列的样本系数是否读入完毕,是则进行步骤(3.1),否则返回步骤(2.1);(2.2)编码通道预测子步骤(2.2.1)预测前一列样本的编码通道值;(2.2.2)判定子块内的所有列的编码通道预测是否进行完毕,是则进行步骤(3.2),否则返回步骤(2.2);(2.3)形成上下文子步骤(2.3.1)形成更前一列样本的上下文;(2.3.2)判定子块内所有样本的上下文是否形成完毕,是则进行步骤(3.3),否则返回步骤(2.3);(3)结束步骤,包括(3.1)结束读取当前子块的系数;(3.2)结束预测样本的编码通道;(3.3)结束当前子块的上下文形成。
所述的位平面编码方法,其特征在于所述并行执行步骤的编码通道预测子步骤中预测前一列样本的编码通道时,过程为(1)计算当前列样本及其邻域的初始重要性状态;编码块中第i个系数在第p位样本被编码之前的初始重要性状态σip+1σip+1=vip+1|viP+2|···|viM-1,p=0,1,...,M-2σiM=0]]>式中,vip表示编码块中第i个系数第p位的幅度值,符号“|”表示逻辑或运算,M为幅度位平面的总数目,M-1为系数幅度值的最高位;(2)计算编码通道预测阶段的邻域样本的重要性贡献;定义Pzp为第z系数的第p位样本的编码通道值,Pzp=2]]>表示该样本应该进入幅度细化通道编码,Pzp=1]]>表示该样本应该进入重要性传播通道编码,Pzp=3]]>表示该样本应该进入清扫通道编码;第p位平面的第i样本的第j邻域对第i样本的重要性贡献σjip计算如下(2.1)如果邻域样本是在第i样本之前被扫描,则对第i样本的重要性贡献 定义mj为邻域系数j的最高非零幅度位,Pjmj为系数j最高非零幅度位的编码通道值,则上式又等价为 式中“&”表示“与”运算,“|”表示逻辑或运算,Pjmj用1位二进制数表示,当Pjmj=1]]>时最高非零幅度位的编码通道为1,否则编码通道为3,第i系数的最高非零幅度位样本的编码通道值 “∑”在这里也表示逻辑或运算;(2.2)如果邻域样本是在第i样本之后被扫描,则对第i样本的重要性贡献σjip=σjp+1,]]>而当邻域样本位于当前被编码条带之后且编码模式选为“verticalcausal mode”时,σjip=0;]]>(3)生成样本的编码通道值,采用二进制数cppi=b1b0表示当前位样本的编码通道预测值,b1=σip+1,b0=σ1ip|σ2ip|σ3ip|σ4ip|σ5ip|σ6ip|σ7ip|σ8ip,]]>(3.1)如果b1=1,则编码块中第i系数的第p位样本进入幅度细化通道编码,记为Pip=2;]]>(3.2)如果cppi=00,则编码块中第i系数的第p位样本进入清扫通道编码,记为Pip=3;]]>(3.3)如果cppi=01,编码块中第i系数的第p位样本进入重要性传播通道编码,记为Pip=1.]]>所述的位平面编码方法,其特征在于所述并行执行步骤的形成上下文子步骤中,形成更前一列系数位的上下文时,过程为(1)在上下文形成阶段,在线并行计算一列4个系数的所有位样本的邻域的重要性贡献,(1.1)如果当前被编码的样本c已被预测进入重要性通道编码,则分别不同情况计算其邻域j的重要性贡献σjcpA.如果邻域样本是在第c样本之前被扫描,则对第c样本的重要性贡献 定义mj为邻域系数j的最高非零幅度位,Pjmj为系数j最高非零幅度位的编码通道值,则上式又等价为 Pjmj用1位二进制数表示,当Pjmj=1]]>时最高非零幅度位的编码通道为1,否则为编码通道3,第i系数的最高非零幅度位样本编码通道值
B.如果邻域样本是在第c样本之后被扫描,则对第c样本的重要性贡献σjcp=σjp+1,]]>C.而当邻域样本位于当前被编码条带之后且编码模式选为“verticalcausal mode”时,σjcp=0;]]>(1.2)如果当前被编码的样本c已被预测进入幅度细化通道编码,则其邻域的重要性贡献 但是,当邻域样本位于当前被编码条带之后且编码模式选为“verticalcausal mode”时,σjcp=0;]]>(1.3)如果被编码的当前样本已被预测进入清扫通道,则对于位于当前被编码样本前的样本,其邻域的重要性贡献σjcp=vjp,]]>对于位于当前被编码样本后的样本,其邻域的重要性贡献 对于位于当前被编码样本后且在下一条带的样本,编码模式选为“vertical causal mode”时其邻域的重要性贡献σjcp=0;]]>(1.4)在符号编码原语中需要的邻域j的符号对当前编码样本c进行符号编码时的重要性贡献 上式中的符号“∑”代表求逻辑或运算;(2)并行计算1列4个样本的上下文环境和判决数据(2.1)对一列标号分别为0、1、2和3号的4个系数的位样本并行进行零编码ZC、符号编码SC和幅度细化编码MRC,以及对当前的一列系数执行对应幅度位平面的游程编码RLC,产生相应的上下文环境和判决数据对,包括CXD01、CXD02、CXD03、CXD11、CXD12、CXD13、CXD21、CXD22、CXD23、CXD31、CXD32、CXD33、CXD4、CXD5、CXD6;(2.2)样本的上下文输出,步骤为
(2.2.1)判断游程编码的条件是否满足,满足则进入(2.2.3),否则进行(2.2.2);(2.2.2)判断0号样本的编码通道预测值是否为2,是则输出CXD03后进行(2.2.5),否则,输出CXD01后进行(2.2.4);(2.2.3)判断游程的长度是否等于4,否则输出CXD4、CXD5和CXD6后进行(2.2.11),是则输出CXD4后进行(2.2.14);(2.2.4)判断0号样本的幅度值是否为1,是则输出CXD02后进行(2.2.5),否则直接进行(2.2.5);(2.2.5)判断1号样本的编码通道预测值是否为2,是则输出CXD13后进行(2.2.7),否则输出CXD11后进行(2.2.6);(2.2.6)判断1号样本的幅度值是否为1,是则输出CXD12后进行(2.2.7),否则直接进行(2.2.7);(2.2.7)判断2号样本的编码通道预测值是否为2,是则输出CXD23后进行(2.2.9),否则输出CXD21后进行(2.2.8);(2.2.8)判断2号样本的幅度值是否为1,是则输出CXD22后进行(2.2.9),否则直接进行(2.2.9);(2.2.9)判断3号样本的编码通道预测值是否为2,是则输出CXD33后进行(2.2.14),否则输出CXD31后进行(2.2.10);(2.2.10)判断3号样本的幅度值是否为1,是则输出CXD32后进行(2.2.14),否则,直接进行(2.2.14);(2.2.11)判断游程长度是否等于0,是则进行(2.2.4),否则进行(2.2.12);(2.2.12)判断游程长度是否等于1,是则进行(2.2.6),否则进行(2.2.13);(2.2.13)判断游程长度是否等于2,是则进行(2.2.8),否则进行(2.2.10);
(2.2.14)结束样本的上下文输出。
本发明的一种位平面编码电路,包括输入数据缓冲寄存器单元、编码通道预测逻辑电路、编码通道状态寄存器单元、邻域重要性贡献生成电路和上下文形成逻辑电路单元;(1)输入数据缓冲寄存器单元按照规定的扫描方式存放最近输入的当前条带的4行×4列个系数,以及前一条带第4行的有用系数值和当前条带第4行移出的系数值;(2)编码通道预测逻辑电路按照所述并行执行步骤的编码通道预测子步骤中预测前一列样本的编码通道方法产生相应列系数的编码通道值;(3)编码通道状态寄存器单元用来存储当前条带的当前上下文形成列及其前一列共8个系数的编码通道预测值,以及前一条带第4行的有用系数和当前条带第4行移出的系数的最高非零幅度位的编码通道预测值;(4)邻域重要性贡献生成电路根据所述形成上下文子步骤中,形成更前一列样本的上下文时所述的方法,在每个时钟周期并行产生4个系数的用以形成上下文的邻域重要性贡献;(5)上下文形成逻辑电路单元根据所述形成上下文子步骤中,形成更前一列样本的上下文时的上下文形成方法,在每个时钟周期并行产生4个系数的上下文环境和判决数据对。
所述的位平面编码电路,其特征在于所述输入数据缓冲寄存器单元包括4个4单位延时移位寄存器组和一个N单位延时移位寄存器组,每个4单位延时移位寄存器组由4个寄存器串联构成,用来存储输入的当前条带的1行×4列系数;N单位延时移位寄存器组由N个寄存器串联构成,用来存储前一条带第4行的有用系数与当前条带的第4行移出的系数。
所述的位平面编码电路,其特征在于所述编码通道预测逻辑电路包括并行工作的4个处理器单元,每个处理器单元输入当前被预测编码通道的系数及其8邻域系数、8邻域系数中已预测的编码通道值,产生被预测编码通道系数的编码通道预测值,4个处理器单元在单时钟周期并行产生一列4个系数除最高非零位平面位外的所有幅度位的编码通道预测值。
所述的位平面编码电路,其特征在于所述编码通道状态寄存器单元包括4组2单位延时寄存器组和一个N+2单位延时移位寄存器组;每组2单位延时寄存器组由2个寄存器串联构成,用来存储当前被编码条带列与其前一列条带列的1行2个系数除最高非零位平面位外的所有幅度位的编码通道值;N+2单位延时移位寄存器组由N+2个寄存器串联构成,分别用来存储当前被编码条带列的第4系数、其前一列条带列的第4系数以及缓存在数据缓冲寄存器单元N单位延时移位寄存器的N个系数的最高非零位的编码通道值。
所述的位平面编码电路,其特征在于所述邻域重要性贡献生成电路包括并行工作的4个处理器单元,每个处理器单元输入当前被编码系数及其8邻域系数、以及它们的编码通道值,产生被编码系数的8邻域重要性贡献,4个处理器单元在单时钟周期内并行地生成当前被编码条带列4个系数的所有位样本的上下文形成时需要的邻域重要性贡献。
所述的位平面编码电路,其特征在于所述上下文形成逻辑电路单元包括4组单字编码模块、1个游程编码原语模块、输出端口以及控制电路,每组单字编码模块由零编码原语模块、幅度细化编码原语模块和符号编码原语模块组成;(1)单字编码模块中零编码原语模块和幅度细化编码原语模块的输入为当前被编码系数的幅度值、及当前被编码系数邻域样本在水平方向、垂直方向和对角线方向的重要性贡献,产生幅度位的上下文环境和判决数据对;符号编码原语模块的输入为当前被编码系数的符号和邻域系数的符号在水平方向、垂直方向的重要性贡献,产生当前被编码系数符号位的上下文环境和判决数据对;(2)游程编码原语模块的输入为当前被编码条带列4个系数的幅度值和游程编码标志信号,产生一个条带列的上下文环境和判决数据对;(3)4组单字编码模块和游程编码原语模块在每个内部时钟周期,并行产生每个位平面同一条带列4个系数每个幅度位平面样本的15个上下文环境和判决数据对到输出端口,输出端口输出其中1到10个有效的上下文环境和判决数据对;(4)控制电路判定对应条带列是否进行游程编码并产生游程编码标志信号到游程编码原语模块,同时产生相应的输出控制信号到输出端口,控制输出端口选择有效的上下文环境和判决数据对的输出。
本发明实现了仅通过一次扫描过程即可完成对子块内所有系数的位样本的上下文形成,实现了对编码样本扫描的真正无冗余;实现了在单时钟周期对一个条带列4个系数的所有位样本的上下文形成并行执行;比较同类最好设计,本发明的数据处理能力提高了4倍,以及具有更高的数据吞吐能力比硬件成本的性能。


图1是JPEG2000标准中采用的位平面编码的扫描模式示意图;图2是JPEG2000标准中定义的当前被编码样本X及其8邻域示意图;图3是本发明的编码通道预测及上下文形成的时间关系示意图;图4是本发明方法的流程示意图;图5是本发明中并行执行步骤的形成上下文子步骤中,并行计算1列4个样本的上下文环境和实现流程图;图6是本发明图5中的样本的上下文输出的方法实现流程图;
图7是本发明的位平面编码电路示意图;图8是图7中输入数据缓冲寄存器单元电路示意图;图9是图7中编码通道预测逻辑电路示意图;图10是图7中编码通道状态寄存器单元示意图;图11是图7中邻域重要性贡献生成电路示意图;图12是图7中上下文形成逻辑电路单元示意图。
具体实施例方式
下面结合附图和实施例对本发明进行详细说明。
图1给出了JPEG2000标准中采用的位平面编码数据扫描示意图。对于每个子块的位平面编码按照每4行样本定义为一个条带(stripe),一个条带的一列4个样本称为一个条带列(stripe column)。对样本进行扫描的顺序是首先依次从上往下扫描最高位平面的第一个条带的最左边一个条带列的元素,然后依次从上往下扫描最高位平面的第一个条带的左边第二个条带列的元素,直到该条带的所有样本被全部扫描;接下来将按照上面的方式扫描最高位平面的第二个条带,一直到最高位平面的所有条带的元素被扫描完成。接下来以同样的方式进行对次高位平面和更低位平面的扫描。除了最高位平面只需进行清扫通道的扫描和编码外,其它低位的每个位平面要求进行三个通道(重要性传播通道、幅度细化通道、清扫通道)的扫描和编码。根据此编码规则,对于低位的每个位平面将要求进行3次扫描。所以,对于最大幅度值为M位表示的子块,完成位平面编码将需要对原始数据进行3M-2次扫描。
图2给出了JPEG2000标准中定义的当前样本与其8邻域的示意图。图中X表示的是当前样本,V0和V1为X的垂直方向邻域,H0和H1为X的水平方向邻域,D0~D4为X的对角方向邻域。当X处在一个条带列的第一个元素时,其邻域D0、D1和V0位于当前编码条带的上一条带。而当X处在一个条带列的第四个元素时,其邻域D2、D3和V1位于当前编码条带的下一条带。
图3给出了本发明方法的编码通道预测及上下文形成的时间关系示意图,图3中的P00~P33代表依次读入某条带的4列数据样本,当读入一个条带列的数据P30~P33后,根据上面介绍的编码通道预测方法先进行对于样本P20~P23的编码通道的预测,然后根据上面介绍的顺序形成样本上下文的方法形成样本P10~P13的上下文。图3结构说明本发明的位平面编码过程分为两个阶段样本的编码通道预测阶段和样本的上下文形成阶段,两个阶段的实现可并行流水线完成,前一列样本编码通道的预测和后一列样本的上下文形成流水线并行完成,此过程重复执行,直到对所有样本的位平面编码的完成。本实施例对于在垂直因果模式(vertical causal mode)下的位平面编码流程进行详细说明,但是,其方法可推广适用于在JPEG 2000缺省模式(regular mode)的位平面编码。
图4具体表示了本发明的方法实现流程图。对每一子块编码的开始首先进行表示编码子块大小的变量的初始化,并预先读入和存储子块内第1条带列的4个系数。接下来一次并行读入一个条带列的4个系数,同时预测前一列4个系数的所有幅度样本的编码通道值,以及形成更前一列4个系数的所有位样本的上下文。不断重复上面的过程,直到完成对子块内的所有系数的位样本的上下文形成。
图5给出了本发明中并行执行步骤的形成上下文子步骤中,并行计算1列4个样本的上下文环境和判决数据的实现流程;并行形成一列4个样本的上下文的实现流程包括两个阶段首先并行地对一列分别标号为0号、1号、2号和3号的4个样本进行零编码、符号编码和幅度细化编码,以及对一列样本执行游程编码,产生相应样本的上下文环境和判决数据对,分别表示为CXD01、CXD02、CXD03、CXD11、CXD12、CXD13、CXD21、CXD22、CXD23、CXD31、CXD32、CXD33、CXD4、CXD5、CXD6,然后对产生样本的有效上下文环境和判决数据对进行输出。对输入系数的每一个幅度位平面并行地进行相同的操作。
图6给出图5中的执行对样本的上下文输出实现流程图。定义rlc=1表示一列4个样本满足游程编码的条件,定义RL表示游程的长度,定义pp0、pp1、pp2和pp3分别代表同一列中的第0号、第1号、第2号和第3号样本的编码通道预测值,F0、F1、F2和F3分别代表同一列中的第0号、第1号、第2号和第3号样本的幅度值。输出过程顺序包括以下步骤(1)如果满足rlc=1,进行(3),否则进行(2);(2)如果pp0=2,则输出CXD03后进行(5),否则输出CXD01后进行(4);(3)如果RL≠4,输出CXD4、CXD5和CXD6后进行(11),否则输出CXD4后进行(14);(4)如果F0=1,输出CXD02后进行(5),否则直接进行(5);(5)如果pp1=2,输出CXD13后进行(7),否则输出CXD11后进行(6);(6)如果F1=1,输出CXD12后进行(7),否则直接进行(7);(7)如果pp2=2,输出CXD23后进行(9),否则输出CXD21后进行(8);(8)如果F2=1,输出CXD22后进行(9),否则直接进行(9);(9)如果pp3=2,输出CXD33后进行(14),否则输出CXD31后进行(10);(10)如果F3=1,输出CXD32后进行(14),否则直接进行(14);(11)如果RL=0,进行(4),否则进行(12);(12)如果RL=1,进行(6),否则进行(13);(13)如果RL=2,进行(8),否则进行(10);
(14)结束样本的上下文输出。
图7给出了本发明的位平面编码电路。按照图1给出的扫描方式在每个时钟周期并行输入小波系数一个条带列的4个字到输入数据缓冲寄存器单元,输入数据缓冲寄存器单元用来存放当前条带当前输入的如图3所示的4行×4列个系数以及前一条带第4行和当前条带第4行移出的系数值,每个时钟周期并行输入4个新系数。编码通道预测逻辑电路按照上面介绍的预测编码通道的方法产生相应列系数的编码通道值。编码通道状态寄存器单元用来存储当前条带的当前上下文形成列及其前一列共8个系数的编码通道值,以及前一条带第4行的系数和当前条带第4行移出的系数的最高非零幅度位的编码通道值。邻域重要性贡献生成电路根据前面介绍的方法,在每个时钟周期并行产生当前被编码的4个系数上下文所需要的邻域重要性贡献。
图8给出了图7中输入数据缓冲寄存器单元的内部电路,包括4个4单位延时移位寄存器组和一个N单位延时移位寄存器组,每个4单位延时移位寄存器组由4个寄存器串联构成,N单位延时移位寄存器组由N个寄存器串联构成,分别用来存储输入的当前条带的4行×4列系数和前一条带第4行的有用系数与当前条带的第4行移出的系数;输入In1连接到第一4单位延时移位寄存器组的寄存器R11的输入端,R11的输出x11连接到寄存器R12的输入端,R12的输出x12连接到寄存器R13的输入端,R13的输出x13连接到寄存器R14的输入端,R14的输出为x14;输入In2连接到第二4单位延时移位寄存器组的寄存器R21的输入端,R21的输出x21连接到寄存器R22的输入端,R22的输出x22连接到寄存器R23的输入端,R23的输出x23连接到寄存器R24的输入端,R24的输出为x24;输入In3连接到第三4单位延时移位寄存器组的寄存器R31的输入端,R31的输出x31连接到寄存器R32的输入端,R32的输出x32连接到寄存器R33的输入端,R33的输出x33连接到寄存器R34的输入端,R34的输出为x34;输入In4连接到第四4单位延时移位寄存器组的寄存器R41的输入端,R41的输出x41连接到寄存器R42的输入端,R42的输出x42连接到寄存器R43的输入端,R43的输出x43连接到寄存器R44的输入端,R44的输出x44连接到N单位延时移位寄存器组中由N-3个寄存器串联组成的移位寄存器组DR01(N表示编码子块的宽度),DR01的输出x01连接到寄存器R02,R02的输出x02连接到寄存器R03,R03的输出x03连接到寄存器R04,R04的输出为x04。
图9给出了图7中编码通道预测逻辑电路,包括并行工作的4个处理器单元PE0、PE1、PE2、PE3,每个处理器单元输入当前被预测编码通道的系数及其8邻域系数、8邻域系数中已预测的编码通道值,产生被预测编码通道系数的编码通道预测值,4个处理器单元在单时钟周期并行产生一列4个系数除最高非零位平面位外的所有幅度位的编码通道预测值。当前被预测编码通道的系数x12及其8邻域系数x01、x02、x03、x11、x13、x21、x22、x23以及系数x01、x02、x03已预测的最高非零幅度位的编码通道值p1m、p2m、p3m和系数x13、x23已预测的编码通道值cpp12、cpp22分别连接到PE0的输入端,PE0的输出为系数x12的所有幅度位(最高非零位平面位除外)样本的编码通道预测值cpp11。当前被预测编码通道的系数x22及其8邻域系数x11、x12、x13、x21、x23、x31、x32、x33以及x12、x13、x23、x33已预测的编码通道值cpp11、cpp12、cpp22、cpp32分别连接到PE1的输入端,PE1的输出为系数x22的所有幅度位(最高非零位平面位除外)样本的编码通道预测值cpp21。当前被预测编码通道的系数x32及其8邻域系数x21、x22、x23、x31、x33、x41、x42、x43以及x22、x23、x33、x43已预测的编码通道值cpp21、cpp22、cpp32、cpp42分别连接到PE2的输入端,PE2的输出为系数x32的所有幅度位(最高非零位平面位除外)样本的编码通道预测值cpp31。当前被预测编码通道的系数x42及其8邻域系数x31、x32、x33、x41、x43以及x32、x33、x43已预测的编码通道值cpp31、cpp32、cpp42分别连接到PE3的输入端,PE3的输出为系数x32的所有幅度位(最高非零位平面位除外)样本的编码通道预测值cpp41。
图10给出了图7中编码通道状态寄存器单元的内部电路,包括4组2单位延时寄存器组和一个N+2单位延时移位寄存器组;每组2单位延时寄存器组由2个寄存器串联构成,用来存储当前被编码条带列与其前一列条带列的1行2个系数所有幅度位(最高非零位平面位除外)的编码通道值;N+2单位延时移位寄存器组由N+2个寄存器串联构成,分别用来存储当前被编码条带列的第4系数与其前一列条带列的第4系数以及缓存在数据缓冲寄存器单元的N单位延时移位寄存器的N+2个系数的最高非零幅度位的编码通道值。cpp11连接到第一组2单位延时寄存器组的寄存器R1的输入端,R1的输出cpp12连接到寄存器R5的输入端,R5的输出为cpp13;cpp21连接到第二组2单位延时寄存器组的寄存器R2的输入端,R2的输出cpp22连接到寄存器R6的输入端,R6的输出为cpp23;cpp31连接到第三组2单位延时寄存器组的寄存器R3的输入端,R3的输出cpp32连接到寄存器R7的输入端,R7的输出为cpp33;cpp41连接到第四组2单位延时寄存器组的寄存器R4的输入端,R4的输出cpp42连接到寄存器R8的输入端,R8的输出为cpp43;cpp4m连接到N+2单位延时移位寄存器组中由N-1个寄存器串联组成的移位寄存器组PR01的输入端(N表示编码子块的宽度),PR01的输出p1m连接到寄存器R51的输入端,R51的输出p2m连接到寄存器R52,R52的输出p3m连接到寄存器R53,R53的输出为p4m。
图11给出了本发明图7中邻域重要性贡献生成电路,包括并行工作的处理器单元PE5、PE6、PE7、PE8,每个处理器单元输入当前被编码系数及其8邻域系数、以及它们的编码通道值,产生被编码系数的8邻域重要性贡献,4个处理器单元在单时钟周期内并行地生成当前被编码条带列4个系数的所有位样本的上下文形成时需要的邻域重要性贡献。当前被编码系数x13、其8邻域系数x02、x03、x04、x12、x14、x22、x23、x24和x02、x03、x04的最高非零幅度位的编码通道值p2m、p3m、p4m,以及x12、x14、x22、x23、x24的编码通道值cpp11、cpp12、cpp13、cpp21、cpp22、cpp23连接到处理器PE5的输入端,PE5输出当前被编码系数x13在水平方向邻域的幅度重要性贡献σ0h、在垂直方向邻域的幅度重要性贡献σ0v、在对角方向邻域的幅度重要性贡献σ0d、在水平方向邻域符号的重要性贡献σ0hx以及在垂直方向邻域符号的重要性贡献σ0vx。当前被编码系数x23及其8邻域系数x12、x13、x14、x22、x24、x32、x33、x34以及它们的编码通道值cpp11、cpp12、cpp13、cpp21、cpp22、cpp23、cpp31、cpp32、cpp33连接到处理器PE6的输入端,PE6输出当前被编码系数x23在水平方向邻域的幅度重要性贡献σ1h、在垂直方向邻域的幅度重要性贡献σ1v、在对角方向邻域的幅度重要性贡献σ1d、在水平方向邻域符号的重要性贡献σ1hx以及在垂直方向邻域符号的重要性贡献σ1vx。当前被编码系数x33、其8邻域系数x22、x23、x24、x32、x34、x42、x43、x44以及它们的编码通道值cpp21、cpp22、cpp23、cpp31、cpp32、cpp33、cpp41、cpp42、cpp43连接到处理器PE7的输入端,PE7输出当前被编码系数x33在水平方向邻域的幅度重要性贡献σ2h、在垂直方向邻域的幅度重要性贡献σ2v、在对角方向邻域的幅度重要性贡献σ2d、在水平方向邻域符号的重要性贡献σ2hx以及在垂直方向邻域符号的重要性贡献σ2vx。当前被编码系数x43、其5邻域系数x32、x33、x34、x42、x44以及它们的编码通道值cpp31、cpp32、cpp33、cpp41、cpp42、cpp43连接到处理器PE8的输入端,PE8输出当前被编码系数x43在水平方向邻域的幅度重要性贡献σ3h在垂直方向邻域的幅度重要性贡献σ3v、在对角方向邻域的幅度重要性贡献σ3d、在水平方向邻域符号的重要性贡献σ3hx以及在垂直方向邻域符号的重要性贡献σ3vx。
上下文形成逻辑电路单元的内部电路如图12,包括4组单字编码模块、1个游程编码原语模块、输出端口以及控制电路,每组单字编码模块由零编码原语模块、幅度细化编码原语模块和符号编码原语模块组成;用来根据上面介绍的上下文形成方法,在每个时钟周期并行产生4个当前被编码系数x13、x23、x33、x43的在每个幅度位平面的所有可能的15个上下文环境和判决数据对CXD01、CXD02、CXD03、CXD11、CXD12、CXD13、CXD21、CXD22、CXD23、CXD31、CXD32、CXD33、CXD4、CXD5、CXD6,通过输出端口从15个上下文环境和判决数据对中选择输出1到10个有效的上下文环境和判决数据对CXD。在第一组单字编码模块,被编码系数x13的幅度值以及x13的邻域在水平方向、垂直方向和对角线方向的重要性贡献σ0h、σ0V和σ0d输入到零编码原语模块ZC0,ZC0输出对系数x13执行零编码产生的上下文环境判决数据对CXD01到输出端口。被编码系数x13的幅度值以及x13的邻域在水平方向、垂直方向和对角线方向的重要性贡献σ0h、σ0V和σ0d输入到幅度细化编码原语模块MRC0,MRC0输出对系数x13执行幅度细化编码产生的上下文环境和判决数据对CXD03到输出端口。被编码系数x13的符号位以及x13的邻域符号的重要性贡献σ0hx和σ0vx输入到符号编码原语模块SC0,SC0输出对系数x13执行符号编码产生的上下文环境和判决数据对CXD02到输出端口。在第二组单字编码模块,被编码系数x23的幅度值以及x23的邻域的重要性贡献σ1h、σ1V和σ1d输入到零编码原语模块ZC1,ZC1输出对系数x23执行零编码产生的上下文环境和判决数据对CXD11到输出端口。被编码系数x23的幅度值以及x23的邻域的重要性贡献σ1h、σ1V和σ1d输入到幅度细化编码原语模块MRC1,MRC1输出对系数x23执行幅度细化编码产生的上下文环境和判决数据对CXD13到输出端口。被编码系数x23的符号位以及x23的邻域符号的重要性贡献σ1hx和σ1vx输入到符号编码原语模块SC1,SC1输出对系数x23执行符号编码产生的上下文环境和判决数据对CXD12到输出端口。在第三组单字编码模块,被编码系数x33的幅度值以及x33的邻域的重要性贡献σ2h、σ2V和σ2d输入到零编码原语模块ZC2,ZC2输出对系数x33执行零编码产生的上下文环境和判决数据对CXD21到输出端口。被编码系数x33的幅度值以及x33的邻域的重要性贡献σ2h、σ2V和σ2d输入到幅度细化编码原语模块MRC2,MRC2输出对系数x33执行幅度细化编码产生的上下文环境和判决数据对CXD23到输出端口。被编码系数x33的符号位以及x33的邻域符号的重要性贡献σ2hx和σ2vx输入到符号编码原语模块SC2,SC2输出对系数x33执行符号编码产生的上下文环境判决数据对CXD22到输出端口。在第四组单字编码模块,被编码系数x43的幅度值以及x43的邻域的重要性贡献σ3h、σ3V和σ3d输入到零编码原语模块ZC3,ZC3输出对系数x43执行零编码产生的上下文环境和判决数据对CXD31到输出端口。被编码系数x43的幅度值以及x43的邻域的重要性贡献σ3h、σ3V和σ3d输入到幅度细化编码原语模块MRC3,MRC3输出对系数x43执行幅度细化编码产生的上下文环境和判决数据对CXD33到输出端口。被编码系数x43的符号位以及x43的邻域符号的重要性贡献σ3hx和σ3vx输入到符号编码原语模块SC3,SC3输出对系数x43执行符号编码产生的上下文环境和判决数据对CXD32到输出端口。游程编码原语模块RLC的输入为被编码系数x13、x23、x33、x43的幅度值和游程编码标志信号rlc,输出当前条带列执行游程编码生成的上下文环境和判决数据对CXD4、CXD5和CXD6到输出端口。控制电路的输入为当前被编码系数x13、x23、x33、x43,被编码系数的编码通道值cpp12、cpp22、cpp32、cpp42以及每个被编码系数的邻域重要性贡献σih(i=0,1,2,3)、σiv(i=0,1,2,3)、σid(i=0,1,2,3),控制电路判定对应条带列是否进行游程编码并产生游程编码标志信号rlc,同时产生相应的一组输出控制信号ctrl到输出端口,控制输出端口选择输出有效的上下文环境和判决数据对CXD。
权利要求
1.一种位平面编码方法,对每一子块编码包括下述步骤(1)初始化步骤,初始化表示编码子块大小的变量,读入并存储子块内第1条带列的4个系数;(2)并行执行步骤,并行同步执行读入子步骤、编码通道预测子步骤和形成上下文子步骤,(2.1)读入子步骤(2.1.1)按扫描顺序同时读入一列4个新系数;(2.1.2)判定子块内所有列的样本系数是否读入完毕,是则进行步骤(3.1),否则返回步骤(2.1);(2.2)编码通道预测子步骤(2.2.1)预测前一列样本的编码通道值;(2.2.2)判定子块内的所有列的编码通道预测是否进行完毕,是则进行步骤(3.2),否则返回步骤(2.2);(2.3)形成上下文子步骤(2.3.1)形成更前一列样本的上下文;(2.3.2)判定子块内所有样本的上下文是否形成完毕,是则进行步骤(3.3),否则返回步骤(2.3);(3)结束步骤,包括(3.1)结束读取当前子块的系数;(3.2)结束预测样本的编码通道;(3.3)结束当前子块的上下文形成。
2.如权利要求1所述的位平面编码方法,其特征在于所述并行执行步骤的编码通道预测子步骤中预测前一列样本的编码通道时,过程为(1)计算当前列样本及其邻域的初始重要性状态;编码块中第i个系数在第p位样本被编码之前的初始重要性状态σip+1σip+1=vip+1|viP+2|···|viM-1,p=0,1,...,M-2σiM=0]]>式中,vip表示编码块中第i个系数第p位的幅度值,符号“|”表示逻辑或运算,M为幅度位平面的总数目,M-1为系数幅度值的最高位;(2)计算编码通道预测阶段的邻域样本的重要性贡献;定义Pzp为第z系数的第p位样本的编码通道值,Pzp=2表示该样本应该进入幅度细化通道编码,Pzp=1表示该样本应该进入重要性传播通道编码,Pzp=3表示该样本应该进入清扫通道编码;第p位平面的第i样本的第j邻域对第i样本的重要性贡献σjip计算如下(2.1)如果邻域样本是在第i样本之前被扫描,则对第i样本的重要性贡献 定义mj为邻域系数j的最高非零幅度位,Pjmj为系数j最高非零幅度位的编码通道值,则上式又等价为 式中“&”表示“与”运算,“|”表示逻辑或运算, Pjmj用1位二进制数表示,当Pjmj=1]]>时最高非零幅度位的编码通道为1,否则最高非零幅度位的编码通道为3,第i系数的最高非零幅度位样本的编码通道值 “∑”在这里也表示逻辑或运算;(2.2)如果邻域样本是在第i样本之后被扫描,则对第i样本的重要性贡献σjip=σjp+1,]]>而当邻域样本位于当前被编码条带之后且编码模式选为“verticalcausal mode”时,σjip=0;]]>(3)生成样本的编码通道值,采用二进制数cppi=b1b0表示当前位样本的编码通道预测值,b1=σip+1,]]>b0=σ1ip|σ2ip|σ3ip|σ4ip|σ5ip|σ6ip|σ7ip|σ8ip,]]>(3.1)如果b1=1,则编码块中第i系数的第p位样本进入幅度细化通道编码,记为Pip=2;(3.2)如果cppi=00,则编码块中第i系数的第p位样本进入清扫通道编码,记为Pip=3(3.3)如果cppi=01,编码块中第i系数的第p位样本进入重要性传播通道编码,记为Pip=1。
3.如权利要求1所述的位平面编码方法,其特征在于所述并行执行步骤的形成上下文子步骤中,形成更前一列系数位的上下文时,过程为(1)在上下文形成阶段,在线并行计算一列4个系数的所有位样本的邻域的重要性贡献,(1.1)如果被编码的当前样本c已被预测进入重要性通道编码,则分别不同情况计算其邻域j的重要性贡献σjcpA.如果邻域样本是在当前被编码的第c样本之前被扫描,则对第c样本的重要性贡献 定义mj为邻域系数j的最高非零幅度位,Pjmj为系数j最高非零幅度位的编码通道值,则上式又等价为 Pjmj用1位二进制数表示,当Pjmj=1]]>时最高非零幅度位的编码通道为1,否则最高非零幅度位的编码通道为3,第i系数的最高非零幅度位样本编码通道值 B.如果邻域样本是在第c样本之后被扫描,则对第c样本的重要性贡献σjcp=σjp+1,]]>C.而当邻域样本位于当前被编码条带之后且编码模式选为“verticalcausal mode”时,σjcp=0;]]>(1.2)如果当前被编码的第c样本已被预测进入幅度细化通道编码,则其邻域的重要性贡献 但是,当邻域样本位于当前被编码条带之后且编码模式选为“Verrticalcausal mode”时,σjcp=0;]]>(1.3)如果当前被编码的第c样本已被预测进入清扫通道,则对于位于当前被编码样本前的样本,其邻域的重要性贡献σjcp=vjp,]]>对于位于当前被编码样本后的样本,其邻域的重要性贡献 对于位于当前被编码样本后且在下一条带的样本,编码模式选为“vertical causal mode”时其邻域的重要性贡献σjcp=0;]]>(1.4)在符号编码原语中需要的邻域j的符号对当前编码样本c进行符号编码时的重要性贡献 上式中的符号“∑”代表求逻辑或运算;(2)并行计算1列4个样本的上下文环境和判决数据(2.1)对一列标号分别为0、1、2和3号的4个系数的位样本并行进行零编码ZC、符号编码SC和幅度细化编码MRC,以及对当前的一列系数执行对应幅度位平面的游程编码RLC,产生相应的上下文环境和判决数据对,包括CXD01、CXD02、CXD03、CXD11、CXD12、CXD13、CXD21、CXD22、CXD23、CXD31、CXD32、CXD33、CXD4、CXD5、CXD6;(2.2)样本的上下文输出,步骤为(2.2.1)判断游程编码的条件是否满足,满足则进入(2.2.3),否则进行(2.2.2);(2.2.2)判断0号样本的编码通道预测值是否为2,是则输出CXD03后进行(2.2.5),否则,输出CXD01后进行(2.2.4);(2.2.3)判断游程的长度是否等于4,否则输出CXD4、CXD5和CXD6后进行(2.2.11),是则输出CXD4后进行(2.2.14);(2.2.4)判断0号样本的幅度值是否为1,是则输出CXD02后进行(2.2.5),否则直接进行(2.2.5);(2.2.5)判断1号样本的编码通道预测值是否为2,是则输出CXD13后进行(2.2.7),否则输出CXD11后进行(2.2.6);(2.2.6)判断1号样本的幅度值是否为1,是则输出CXD12后进行(2.2.7),否则直接进行(2.2.7);(2.2.7)判断2号样本的编码通道预测值是否为2,是则输出CXD23后进行(2.2.9),否则输出CXD21后进行(2.2.8);(2.2.8)判断2号样本的幅度值是否为1,是则输出CXD22后进行(2.2.9),否则直接进行(2.2.9);(2.2.9)判断3号样本的编码通道预测值是否为2,是则输出CXD33后进行(2.2.14),否则输出CXD31后进行(2.2.10);(2.2.10)判断3号样本的幅度值是否为1,是则输出CXD32后进行(2.2.14),否则,直接进行(2.2.14);(2.2.11)判断游程长度是否等于0,是则进行(2.2.4),否则进行(2.2.12);(2.2.12)判断游程长度是否等于1,是则进行(2.2.6),否则进行(2.2.13);(2.2.13)判断游程长度是否等于2,是则进行(2.2.8),否则进行(2.2.10);(2.2.14)结束样本的上下文输出。
4.一种实现位平面编码方法的位平面编码电路,包括输入数据缓冲寄存器单元、编码通道预测逻辑电路、编码通道状态寄存器单元、邻域重要性贡献生成电路和上下文形成逻辑电路单元;(1)输入数据缓冲寄存器单元按照规定的扫描方式存放最近输入的当前条带的4行×4列个系数,以及前一条带第4行的有用系数值和当前条带第4行移出的系数值;(2)编码通道预测逻辑电路按照所述并行执行步骤的编码通道预测子步骤中预测前一列样本的编码通道方法产生相应列系数的编码通道值;(3)编码通道状态寄存器单元用来存储当前条带的当前上下文形成列及其前一列共8个系数的编码通道预测值,以及前一条带第4行的有用系数和当前条带第4行移出的系数的最高非零幅度位的编码通道预测值;(4)邻域重要性贡献生成电路根据所述形成上下文子步骤中,形成更前一列样本的上下文时所述的方法,在每个时钟周期并行产生4个系数的用以形成上下文的邻域重要性贡献;(5)上下文形成逻辑电路单元根据所述形成上下文子步骤中,形成更前一列样本的上下文时的上下文形成方法,在每个时钟周期并行产生4个系数的上下文环境和判决数据对。
5.如权利要求4所述的位平面编码电路,其特征在于所述输入数据缓冲寄存器单元包括4个4单位延时移位寄存器组和一个N单位延时移位寄存器组,每个4单位延时移位寄存器组由4个寄存器串联构成,用来存储输入的当前条带的1行×4列系数;N单位延时移位寄存器组由N个寄存器串联构成,用来存储前一条带第4行的有用系数与当前条带的第4行移出的系数。
6.如权利要求4所述的位平面编码电路,其特征在于所述编码通道预测逻辑电路包括并行工作的4个处理器单元,每个处理器单元输入当前被预测编码通道的系数及其8邻域系数、8邻域系数中已预测的编码通道值,产生被预测编码通道系数的编码通道预测值,4个处理器单元在单时钟周期并行产生一列4个系数除最高非零位平面位外的所有幅度位的编码通道预测值。
7.如权利要求4所述的位平面编码电路,其特征在于所述编码通道状态寄存器单元包括4组2单位延时寄存器组和一个N+2单位延时移位寄存器组;每组2单位延时寄存器组由2个寄存器串联构成,用来存储当前被编码条带列与其前一列条带列的1行2个系数除最高非零位平面位外的所有幅度位的编码通道值;N+2单位延时移位寄存器组由N+2个寄存器串联构成,分别用来存储当前被编码条带列的第4系数、其前一列条带列的第4系数以及缓存在数据缓冲寄存器单元N单位延时移位寄存器的N个系数的最高非零幅度位的编码通道值。
8.如权利要求4所述的位平面编码电路,其特征在于所述邻域重要性贡献生成电路包括并行工作的4个处理器单元,每个处理器单元输入当前被编码系数及其8邻域系数、以及它们的编码通道值,产生被编码系数的8邻域重要性贡献,4个处理器单元在单时钟周期内并行地生成当前被编码条带列4个系数的所有位样本的上下文形成时需要的邻域重要性贡献。
全文摘要
位平面编码方法及实现该方法的电路,属于图像数据压缩领域,用于JPEG 2000的位平面编码的软件和硬件实现,目的在于减少扫描冗余和复杂度,增强算法的并行性,提高系统数据处理能力。本发明的方法,对每一子块编码包括(1)初始化步骤,(2)并行执行步骤,并行执行读入、编码通道预测和形成上下文子步骤,(3)结束步骤。本发明的电路包括输入数据缓冲寄存器单元、编码通道预测逻辑电路、编码通道状态寄存器单元、邻域重要性贡献生成电路和上下文形成逻辑电路单元;本发明一次扫描形成子块内所有系数位样本上下文,实现无冗余扫描、在单时钟周期并行形成一个条带列4个系数所有位样本的上下文;数据处理能力比同类设计提高4倍,性价比更优。
文档编号G06T9/00GK101056399SQ20071005192
公开日2007年10月17日 申请日期2007年4月19日 优先权日2007年4月19日
发明者熊承义, 田金文, 柳健 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1