一种低复杂度整数4×4离散余弦变换量化装置及其实现方法

文档序号:6418330阅读:156来源:国知局
专利名称:一种低复杂度整数4×4离散余弦变换量化装置及其实现方法
技术领域
本发明属于数字电视图像处理中数字视频的编解码技术和芯上系统(SOC,System on Chip)技术领域,尤其是涉及一种低复杂度整数4×4离散余弦变换量化装置及其实现方法。
背景技术
高效的视频编解码技术是实现多媒体数据存储与传输的关键,先进的视频编解码技术通常以标准的形式进行规定。目前,典型的视频压缩标准有国际标准化组织(ISO)下设的运动图像专家组(MPEG,Moving Picture Expert Group)推出的系列国际标准,国际电信联盟(ITU)提出的国际电信联盟最新视频编解码标准H.26x系列视频压缩标准,以及ISO和ITU建立的联合视频工作组JVT(Joint VideoTeam)正在制定的JVT视频编码标准等。JVT标准采用的是一种新型的编码技术,它比现存的任何一种编码标准的压缩效率都高的多。JVT标准在ISO中的正式名称是MPEG-4标准的第十部分,在ITU中的正式名称是H.264标准。
变换和量化是实现视频编、解码的关键技术,如果没有变换和量化,任何视频编、解码标准的应用都几乎是不可能的。引入变换的根本原因就是提高压缩效率,(上述标准和相关的现有技术中关于技术变换和量化技术的出处、技术状况和存在的主要问题是什么?)由于离散余弦变换(DCT)最接近卡文罗夫(Karhunen-Loeve)变换,所以目前国际通用的图像和视频压缩编解码标准几乎都采用了这种变换方法,但这种传统的DCT变换方法中存在数据飘移问题,造成编、解码端的不匹配,从算法上看,采用乘法,使得硬件实现和应用复杂和困难,复杂度较高。
在最新H.264/AVC建议/标准中则采用了类似于DCT的整数4×4变换,但是,H.264/AVC中所采用的整数4×4变换阵,它的每行的绝对值的和不相等,而且每行的模相差很大,这就不利于将解码端的缩放放到编码端进行,不能减少解码端的运算复杂度和解码的时间开销;另外,在H.264/AVC中所采用的量化方法,量化和反量化分别使用了6个2维4×4表,读取量化表和反量化表的时间开销以及数据的存储开销都较大。

发明内容
为了克服上述现有技术的不足,本发明的目的在于提供一种低复杂度整数4×4离散余弦变换量化装置及其实现方法,使DCT变换中浮点运算编码端和解码端相匹配。
本发明的另一个目的在于提供一种低复杂度整数4×4离散余弦变换量化装置及其实现方法,降低变换的运算复杂度。
为了完成上述发明任务,本发明采用的总体技术方案是一种低复杂度整数4×4离散余弦变换量化装置,包括帧内预测模块、熵编码模块、环形滤波电路、帧缓存,还包括正变换模块,用于对帧内预测或帧间预测模块产生的残差系数矩阵进行4×4行列变换,其输入端连接运动补偿预测或帧内预测模块的输出端,输出端连接缩放模块;缩放模块,用于对正变换模块输出的变换矩阵进行统一归一化处理;
量化模块,用于将缩放后得到的中间结果矩阵进行量化,其输出端连接缩放模块的输入端和熵编码模块;反量化模块,用于将量化后矩阵反量化,反量化模块输入端与缩放模块缩放输出端连接,其反量化矩阵输出端与反变换模块的输入端连接;反变换模块,用于对反量化输出的图像参数矩阵反变换,反变换模块输出端连接到环形滤波和帧缓存。
一种低复杂度整数4×4离散余弦变换量化实现方法,包括以下步骤步骤1正变换模块对帧内预测或帧间预测残差矩阵做水平方向整数4×4离散余弦行变换,并做竖直方向列变换;步骤2缩放模块对正变换模块变换后的矩阵的模进行归一化处理;步骤3缩放模块将经归一化处理后得到的结果矩阵的运算位右移,并将运算位限制在一定位数之内;步骤4量化模块在编码端和解码端用一个一维数组对经过缩放的变换矩阵进行量化,并向熵编码模块输出量化后的结果矩阵;步骤5反量化模块在编码端和解码端用一个一维数组对量化后的变换矩阵进行反量化;步骤6反变换模块对反量化后的矩阵的列和行进行反变换。
所述步骤1进一步包括步骤11、正变换模块接收帧内预测和帧间预测模块残差系数矩阵;步骤12、正变换模块将核心变换矩阵分解为相乘的两个矩阵,用第一个矩阵左乘图像参数残差矩阵,再用第二个矩阵左乘第一个矩阵左乘图像预测残差系数矩阵后的矩阵,得到中间结果矩阵;步骤13、正变换模块将得到的中间结果矩阵右乘第一个矩阵的转秩矩阵,再将右乘得到的矩阵右乘第二个矩阵;步骤14、正变换模块将正变换结果矩阵输出到缩放模块。
所述步骤11中的核心变换矩阵为222231-1-32-2-2-21-33-1]]>所述步骤12中的第一个矩阵和第二个矩阵为第一个矩阵220000132-20000-31]]>第二个矩阵1001011001-10100-1]]>所述步骤1中的水平方向整数4×4变换后的每一行运算位为12位,它包括变换矩阵的行位数3位和残差位数9位。
所述步骤1中竖直方向列变换后运算位为15位。
所述步骤2中对变化后的矩阵的模进行统一的归一化处理具体为将组成矩阵的各元素分别去除它所在的行或列的各个元素经平方再开方的值,使每一行或列的模都等于1。
所述步骤3中的运算位限制位数为16位。
所述步骤4中的量化具体包括步骤41、针对某一量化步长,根据公式Q(i)=32768/2i/8确定其相对应的量化参数,并保存在一个一维的量化表中;
步骤42、将经过缩放处理后所得到的中间结果矩阵Y’乘以相对应的量化参数;步骤43、再将上述结果矩阵的运算位右移,使得最终的结果矩阵运算位保持在16位以下。
所述步骤5中的反量化的步骤具体包括步骤51、针对量化时所采用的某一量化步长,根据公式IQ_TAB[64]=32768×2qp/8确定其相对应的反量化参数,并保存在一个一维的反量化表中;步骤52、将经过熵解码处理后所得到的量化矩阵Y”乘以相对应的反量化参数;步骤53、再将上述结果矩阵运算位右移,使得最终的结果矩阵的运算位保持在16位以下。
所述步骤6中的反变换具体包括以下步骤步骤61、反变换模块将核心变换矩阵的转秩矩阵分解为两个相乘的第一矩阵转秩矩阵和第二矩阵转秩矩阵,用第二矩阵转秩矩阵左乘反量化后的矩阵,再用第一矩阵转秩矩阵左乘得到的矩阵,得到乘积矩阵;步骤62、反变换模块将得到的上述乘积矩阵的转秩矩阵再右乘第二矩阵和第一矩阵,得到最后的结果矩阵。
本发明有显著的优点和积极效果,本发明采用不同于现有技术的的核心变换矩阵,对变换矩阵中每行的模作了归一化处理,采用整数4×4离散余弦变换阵,每行的绝对值的和都等于8,第一、三行的模为 第二、四行的模等于 相差很小,有利于将解码端的缩放放到编码端进行,减少了解码端的运算复杂度和解码的时间开销,因此,在量化端和反量化端分别只需要一个一维数组即可完成不同级别的量化、反量化,这就使得量化和反量化所需的存储空间大大降低,大大减少了时间开销和存储开销。本发明在性能上克服了传统的DCT变换方法中存在的数据飘移的缺陷,避免了编、解码端不匹配的问题,在方法,本发明用3以内的系数矩阵实现低复杂度、低存储开销的整数变换,使得软件与硬件的实现复杂度均较低。完全取消了乘法,只采用加法和移位,使得硬件实现和应用更加方便和容易,并将计算结果限制在16Bit之内,降低了运算复杂度,尤其适合低端处理器。


图1是本发明的主要功能模块图;图2是本发明的方法流程图;图3是正变换快速DCT计算示意图;图4是反变换快速DCT计算示意图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步详细的说明。
请参阅图1,本发明的一种低复杂度整数离散余弦变换量化装置,包括帧内预测模块;熵编码模块;环形滤波电路;帧缓存;用于对帧内预测或帧间预测模块产生的残差数据块进行行、列整数4×4变换的正变换模块,其输入端连接帧内预测或帧间预测模块的残差系数矩阵输出端,输出端连接缩放模块;用于对正变换模块输出的变换矩阵进行统一归一化处理的缩放模块;用于将缩放后得到的中间结果矩阵进行量化的量化模块,其输出端连接缩放模块的输入端和熵编码模块;用于将量化后矩阵反量化的反量化模块,反量化模块输入端与缩放模块缩放输出端连接,其反量化矩阵输出端与反变换模块的输入端连接;用于对反量化输出的图像参数矩阵反变换的反变换模块,反变换模块输出端连接到环形滤波和帧缓存。
编码时,对于帧内预测或帧间预测残差,进行如下的4×4变换Y=CfXCfT⊗Ef=(222231-1-32-2-221-33-1×232121-2-32-1-232-32-1)⊗a2aba2ababb2abb2a2aba2ababb2abb2]]>CfXCfT是二维变换的核心部分,Ef是缩放系数矩阵。运算符表示每一个变换后的系数分别与矩阵Ef中相同位置的缩放因子相乘,它是标量乘法而不是矩阵乘法。这里a,b分别为Cf第一行与第二行系数的模的倒数。
对于Y、U、V信号采用8位精度表示,因为输入矩阵是预测误差,因此需要9位来表示,变换矩阵每一行绝对值之和的最大值为8,因此,对于变换后的矩阵元素需要9+log28×8=15位来表示。在进行了二维核心变换CfXCfT后,缩放过程是和量化相结合的,这样就减少了运算量,降低了运算复杂度。
请参阅图2本发明的方法流程图。本发明的一种整数4×4离散余弦变换量化实现方法,主要包下述步骤第一步、正变换模块对帧内预测或帧间预测后残差数据块做水平方向整数4×4离散余弦行变换,并做竖直方向列变换;正向行变换时首先对帧内预测或帧间预测后残差系数矩阵做水平方向的整数4×4离散余弦变换。从上述矩阵公式可以知道,核心变换矩阵[A]的每行的绝对值最大和为8,由于核心变换阵每行的模不为1,这样完成一次完整的行变换,就相当于用原始的DCT变换阵做一次完整的行变换后,再左移log28=3Bit,再加上原来存储残差的9Bit,就会需要9+3=12Bit的运算位。做完行变换后,紧接着开始做竖直方向的列变换,方法同正向行变换。因此,列变换完成后,运算位会增加到15Bit。
如下面公式所示,其中,Y为变换后的阵,X为输入的残差阵,A为核心变换阵,B、E为A的分解阵。
Y=AXAT=(222231-1-32-2-221-33-1×232121-2-32-1-232-32-1)⊗a2aba2ababb2abb2a2aba2ababb2abb2]]>[A]=[B]×[E]其中,A,B,E定义如下所示[A]=222231-1-32-2-221-33-1,]]>[B]=220000132-20000-31,]]>[C]=1001011001-10100-1,]]>[B]T=202020-20010-30301,]]>[C]T=1001011001-10100-1]]>[A]=[B]×[C]=222231-1-32-2-221-33-1=220000132-20000-31×1001011001-10100-1]]>1、首先设接收帧内预测或运动矢量预测模块输出的图像参数为[X]=[x1,x2,x3,x4]T;2、再将核心变换矩阵[A]分解[B]×[C],并用[C]、[B]先后左乘[X]。先计算[C]×[X],设得到的中间结果为[G]=[g1,g2,g3,g4]T,这是用加法实现的。其中,g1=x1+x4,g2=x2+x3,g3=x2-x3,g4=x1-x4。接着,再计算[B]×[G],设得到的结果为[V]=[v1,v2,v3,v4]T,这是用加法和移位实现的,先将g1,g2左移1位,再相加,得到v1、v3其中,v1=2×(g1+g2);v3=2×(g1-g2);再将g3、g4作如下处理
先计算v2,将g4左移一位,得到2×g4,再加上g4、g3,得到v2,即v2=2×g4+g4+g3。再计算v3,将g3左移一位,得到2×g3,然后取反,再加上-g3,g4,得到v4,即v4=g4-2×g3-g3;3、将得到的中间结果矩阵[V]=[v1,v2,v3,v4]T再右乘[C]T、[B]T,得到最后的变换结果矩阵[Y]=[y1,y2,y3,y4]。具体算法如下先计算[V]×[C]T,设得到的中间结果为[H]=[h1,h2,h3,h4],这一步完全是用加法实现的。此时,设[V]=[v1’,v2’,v3’,v4’],这样就将[V]的表现形式,由第一、第二步的行向量的表现形式改为列向量表现形式。
这样得到[H]h1=v1’+v4’;h2=v2’+v3’;h3=v2’-v3’;h4=v1’-v4’。
然后,再计算[H]×[B]T,这一步是用加法和移位实现的。先将h1、h2各左移一位,然后相加,得到y1、y3y1=2×(h1+h2)y3=2×(h1-h3)然后再将h4左移一位后,与h3相加,得到y2;将h3左移一位后,与h4相加,得到y4y2=2×h4+h4+h3y4=-2×h3-h3+h4正变换的快速DCT算法如图3所示。
第二步、缩放模块对将解码端反变换的缩放归到编码端的正变换处进行归一化处理,处理完成后,即可进行量化。
针对变换完成后的矩阵Y,在量化之前首先会有一个缩放的过程。目的是将所有行的模都作了归一化的处理,使得将来量化时,只需要一个一维数组即可完成不同级别的量化。缩放完成后,运算位会恢复到11Bit。缩放的公式如下所示Scale2(i,j)=norm(A(1,))×norm(A(1,))×norm(A(1,))×norm(A(1,))×32768/(norm(A(i,))×norm(A(j,))×norm(A(j,))×norm(A(i,)))Y’(i,j)=abs(Y(i,j))×Scale2(i,j)>>19其中Scale2(i,j)为变换当前块所需的缩放因子,(i,j)表示4×4阵中相应的位置,i=1,2,3,4;j=1,2,3,4;norm(A(i,))和norm(A(j,))表示第i行或第j行的模。在量化之前,对Y中各位置的元素按公式③进行归一化处理,归一化处理具体是指将组成矩阵的各元素分别去除它所在的行或列的各个元素平方之和再开方的值,这样,使每一行或列的模都等于1,从而达到了模的归一化。Y,为进行缩放处理后所得到的中间结果。
第三步、由于在缩放中的放大处理,使得运算位超出了16Bit,因此,必须做出相应处理,将运算位限制在16Bit之内。右移后,运算结果保持11Bit。
第四步、量化模块在编码端和解码端用一个一维数组对经过缩放的变换矩阵进行量化。量化的具体步骤是首先针对某一量化步长,根据公式Q(i)=32768/2i/8确定其相对应的量化参数,并保存在一个一维的量化表中,然后将经过缩放处理后所得到的中间结果矩阵Y’乘以相对应的量化参数;最后,再将上述结果运算位右移,使得最终的结果的运算位保持在16位以下。
本发明采用的是0~63的量化机制,并且在量化前都已经做了归一化处理,因此,量化时,只需要一个一维数组即可完成不同级别的量化。
其中,向量化步长为2i/8,i=0,...,63;所以量化表可以用下式表示Q(i)=32768/2i/8;i=0,...,63;这样,量化就采用下式进行
Y”=Y’×Q(i)>>15。
第五步、反量化模块在编码端和解码端用一个一维数组对量化后的变换矩阵进行反量化。反量化的步骤是首先针对量化时所采用的某一量化步长,根据公式IQ_TAB[64]=32768×2qp/8,确定其相对应的反量化参数,并保存在一个一维的反量化表中,然后将经过熵解码处理后所得到的量化矩阵Y”乘以相对应的反量化参数,最后,再将上述结果矩阵的运算位右移,使得最终的结果矩阵的运算位保持在16位以下。
反量化按如下公式进行Y=(Y”×IQ_TAB[qp])>>IQ_SHIFT[qp];其中,IQ_TAB[64]=32768×2qp/8,qp=0,...,63;IQ_SHIFT[64]={14,14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,9, 9, 9, 9, 9, 9, 9,9, 8, 8, 8, 8, 8, 8, 8,7, 7, 7, 7, 7, 7, 7, 7};其中,IQ_TAB[qp]是反量化表,IQ_SHIFT[64]是移位表。
第六步、反变换模块对反量化后的矩阵的列和行进行反变换。反量化模块的输出,就是反变换模块的输入。反变换过程和变换过程相反,也是分别针对行和列进行处理。具体方法如下1、设反量化模块输出的图像参数[Y]=[y1,y2,y3,y4]T,反变换的输出图像参数为[X]=[x1,x2,x3,x4];这样,[X]=[A]TY[A];
2、将变换矩阵[A]T分解[C]T×[B]T,然后用[B]T,[C]T先后左乘[Y]。
(1)首先计算[B]T×[Y],设得到的中间结果为[M]=[m1,m2,m3,m4]T,这是用加法和移位实现的。先将y1,y2左移1位,再相加,得到m1、m2其中,m1=2×(y1+y3);m2=2×(y1-y3);再将y2,、y4作如下处理先计算m3,将y4左移一位,得到2×y4,再加上g4、g3,得到m3,即m3=y2-2×y4-y4。再计算m4,将y2左移一位,得到2×y2,再加上y2、y4,得到m4,即m4=2×y2+y2+y4。
(2)接着,再计算[C]T×[M],设得到的结果为[U]=[u1,u2,u3,u4]T,这是用加法实现的u1=m1+m4,u2=m2+m3,u3=m2-m3,u4=m1-m4。
3、将得到的中间结果矩阵[M]=[m1,m2,m3,m4]T再右乘[B],[C],得到最后的结果矩阵[X]=[x1,x2,x3,x4]。具体方法如下(1)、先计算[M]×[B],设得到的中间结果为[z]=[z1,z2,z3,z4],这一步是用加法和移位实现的。此时,设[M]=[m1’,m2’,m3’,m4’],这样就将[M]的表现形式由第二步的行向量的表现形式改为列向量表现形式。
首先,将m1’,m3’左移一位,这样得到z1=2(m1’+m3’);z2=2(m1’-m3’);然后,将m4’左移一位,再与m2相加,得到z3z3=m2’-2*m3’-m3’最后,将m2’左移一位,再与m4’相加,得到z4z4=2*m2’+m2’+m4’(2)、再计算[Z]×[C],这样可以得到最终的结果[X],这一步是完全是用加法实现的,其中x1=z1+z4x2=z2+z3x3=z2-z3x4=z1-z4由于在变换时每次行变换都左移了3Bit,因此在反变换中要右移3Bit。反变换中的列变换也作相应的处理。这样,完成一次完整的反变换,要右移6Bit,此时,运算位达到6Bit。但由于在作一致性量化处理时,每行的模被作了缩小的处理,因此,在这里要针对不同位置的元素给予相应的放大恢复。在公式Y=CfXCfT⊗Ef=(222231-1-32-2-221-33-1×232121-2-32-1-232-32-1)⊗a2aba2ababb2abb2a2aba2ababb2abb2]]>中分三种情况给予放大处理1、如果是针对a2位置的元素,那么应该放大16×16倍,这样,运算位达到log2256+6=14Bit,接着再进行右移5位的处理,最后将数据恢复到14-5=9Bit;2、如果是针对ab位置的元素,那么应该放大16×20倍,这样,运算位达到log2320+6=14.32Bit,接着再进行右移5位的处理,最后将数据恢复到14.32-5=9.32Bit;3、如果是针对b2位置的元素,那么应该放大20×20倍,这样,运算位达到log2400+6=14.644Bit,接着再进行右移5位的处理,最后将数据恢复到14.644-5=9.644Bit。
反变换的快速DCT蝶形算法如图4所示。
表1是各个步骤运算时和运算后的运算位的跟踪和统计表,该表显示了不同操作时,数据位的动态变化和最终的运算位。
表1数据位变化表


以上实施例仅用以说明而非限制本发明的技术方案,本领域的普通技术人员应当理解可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1一种低复杂度整数4×4离散余弦变换量化装置,包括帧内预测模块、熵编码模块、环形滤波电路、帧缓存,其特征在于,该装置还包括正变换模块,用于对帧内预测或帧间预测模块产生的残差系数矩阵进行4×4行列变换,其输入端连接运动补偿预测或帧内预测模块存储残差的残差数据矩阵输出端,输出端连接缩放模块;缩放模块,用于对正变换模块输出的变换矩阵进行统一归一化处理;量化模块,用于将缩放后得到的中间结果矩阵进行量化,其输出端连接缩放模块的输入端和熵编码模块;反量化模块,用于将量化后矩阵反量化,反量化模块输入端与缩放模块缩放输出端连接,其反量化矩阵输出端与反变换模块的输入端连接;反变换模块,用于对反量化输出的图像参数矩阵反变换,反变换模块输出端连接到环形滤波和帧缓存。
2.一种低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,包括以下步骤步骤1正变换模块对帧内预测或帧间预测残差数据块做水平方向整数4×4离散余弦行变换,并做竖直方向列变换;步骤2缩放模块对正变换模块变换后的矩阵的模进行归一化处理;步骤3缩放模块将经归一化处理后得到的结果矩阵的运算位右移,并将运算位限制在一定位数之内;步骤4量化模块在编码端和解码端用一个一维数组对经过缩放的变换矩阵进行量化,并向熵编码模块输出量化后的结果矩阵;步骤5反量化模块在编码端和解码端用一个一维数组对量化后的变换矩阵进行反量化;步骤6反变换模块对反量化后的矩阵的列和行进行反变换。
3.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤1进一步包括步骤11、正变换模块接收帧内预测或帧间预测模块残差系数矩阵;步骤12、正变换模块将核心变换矩阵分解为相乘的两个矩阵,用第一个矩阵左乘图像参数残差矩阵,再用第二个矩阵左乘第一个矩阵左乘图像参数残差矩阵后的矩阵,得到中间结果矩阵;步骤13、正变换模块将得到的中间结果矩阵右乘第一个矩阵的转秩矩阵,再将右乘得到的矩阵右乘第二个矩阵;步骤14、正变换模块将正变换结果矩阵输出到缩放模块。
4.根据权利要求3所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤11中的核心变换矩阵为222231-1-32-2-221-33-1]]>
5.根据权利要求3所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤12中的第一个矩阵和第二个矩阵为第一个矩阵220000132-20000-31]]>第二个矩阵1001011001-10100-1]]>
6.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤1中的水平方向整数4×4变换后的每一行运算位为12位,它包括变换矩阵的行位数3位和残差位数9位。
7.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤1中竖直方向列变换后运算位为15位。
8.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤2中对变化后的矩阵的模进行统一的归一化处理具体为将组成矩阵的各元素分别去除它所在的行或列的各个元素经平方后相加再开方的值,使每一行或列的模都等于1。
9.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤3中的运算位限制位数为16位。
10.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤4中的量化具体包括步骤41、针对某一量化步长,根据公式Q(i)=32768/2i/8确定其相对应的量化参数,并保存在一个一维的量化表中;步骤42、将经过缩放处理后所得到的中间结果矩阵Y乘以相对应的量化参数;步骤43、再将上述结果矩阵的运算位右移,使得最终的结果矩阵运算位保持在16位以下。
11.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤5中的反量化的步骤具体包括步骤51、针对量化时所采用的某一量化步长,根据公式IQ_TAB[64]=32768×2qp/8确定其相对应的反量化参数,并保存在一个一维的反量化表中;步骤52、将经过熵解码处理后所得到的量化矩阵Y”乘以相对应的反量化参数;步骤53、再将上述结果矩阵运算位右移,使得最终的结果矩阵的运算位保持在16位以下。
12.根据权利要求2所述的低复杂度整数4×4离散余弦变换量化实现方法,其特征在于,所述步骤6中的反变换具体包括以下步骤步骤61、反变换模块将核心变换矩阵的转秩矩阵分解为两个相乘的第一矩阵转秩矩阵和第二矩阵转秩矩阵,用第二矩阵转秩矩阵左乘反量化后的矩阵,再用第一矩阵转秩矩阵左乘得到的矩阵,得到乘积矩阵;步骤62、反变换模块将得到的上述乘积矩阵的转秩矩阵再右乘第二矩阵和第一矩阵,得到最后的结果矩阵。
全文摘要
本发明是一种低复杂度整数4×4离散余弦变换量化装置及其实现方法,包括帧内预测模块、熵编码模块、环形滤波电路、帧缓存、用于进行行列变换的正变换模块、用于对正变换模块输出的变换矩阵进行归一化处理的缩放模块、量化模块、反量化模块、反变换模块。正变换模块对帧内或帧间预测的图像块残差系数矩阵做整数4×4离散余弦变换;缩放模块对正变换后的矩阵的模进行归一化处理;右移变换矩阵运算位,将运算位限制在一定位数之内;量化模块用一个一维数组对经过缩放的变换矩阵进行量化;反量化模块对量化后的变换矩阵进行反量化;反变换模块对反量化后的矩阵的列和行进行反变换。本发明克服了数据漂移、编解码端不匹配等问题,降低了运算复杂度。
文档编号G06F17/10GK1589017SQ200410062700
公开日2005年3月2日 申请日期2004年8月6日 优先权日2004年8月6日
发明者高文, 赵德斌, 马思伟, 郑玉 申请人:联合信源数字音视频技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1