离散余弦逆变换方法及其装置的制作方法

文档序号:7963003阅读:234来源:国知局
专利名称:离散余弦逆变换方法及其装置的制作方法
技术领域
本发明涉及通信技术领域的离散余弦变换(DCT,Discrete CosineTransform)技术和离散余弦逆变换(IDCT,Inverse Discrete Cosine Transform)技术,尤其是涉及一种离散余弦逆变换方法及其装置。
背景技术
自从Ahmed和Rao于1974年提出了离散余弦变换(DCT,Discrete CosineTransform)定义以来,离散余弦变换和离散余弦逆变换(IDCT,Inverse DiscreteCosine Transform)就成为广泛应用于通信领域中的信号处理、图像处理、特别是用于语音压缩和图像压缩编解码处理的重要技术,因此DCT技术和IDCT技术一直以来都是国际学术界和高科技产业界的研究热点。
由于实时性通信特性的需求,在用于静止图像压缩编解码处理的静止图像专家小组(JPEG,Joint Picture Expert Group)标准中,及在用于动态图像压缩编解码处理的动态图像专家小组(MPEG,Motion Pictures Expert Group)标准中均采用了DCT处理和IDCT处理,由此使得对DCT快速算法和IDCT快速算法的研究愈发显得意义重大。
由于常规的DCT算法和IDCT算法都用到了较多的乘法运算和加法运算,而众所周知乘法运算在运算过程中是非常消耗系统资源的,如对计算机软硬件资源的消耗等,同时乘法运算也比较耗时,因此就使得常规的DCT运算过程和IDCT运算过程稍显缓慢。由于上述原因后续提出的DCT快速算法和IDCT快速算法都是以减少运算过程中的乘法运算次数和加法运算次数作为主要目的,尤其是指减少乘法的运算次数。近年来,各种各样的DCT快速算法和IDCT快速算法都层出不穷,但大都是基于碟形计算方法的,以充分利用三角函数的周期性来减少计算过程中的冗余度,从而达到快速计算的目的。
在1988年由Arai等人提出了用于DCT变换和IDCT变换的AAN算法,已被JPEG标准组织推荐使用。基于标准的AAN算法对一维8点图像进行IDCT变换处理时需要执行13次乘法运算和29次加法运算,但是其中的8次乘法运算是在对输入信号进行IDCT处理前预先同步进行的,这样便于对输入信号进行统一的截位处理和时序控制处理,从而有利于硬件实现IDCT变换。基于该基础,AAN算法要首先对每个输入信号的IDCT系数分别乘以对应的系数缩放因子,然后将处理后的数据送入AAN处理流程图进行IDCT变换处理,从而得到对一维8点图像进行IDCT变换处理的中间变换数据。有利于硬件实现是AAN算法相对于其他的IDCT快速算法的优越性。同时在AAN算法中,系数缩放因子的乘法预处理可与输入信号的反量化处理相结合,因而可以进一步减少AAN算法的计算量。
一种标准的IDCTAAN处理流程图如图1所示,由该图可见,在AAN处理流程图中对一维8点图像进行IDCT变换处理时只需进行5次浮点乘法运算,而Duhamel已证明了使用一般的IDCT快速算法对一维8点图像进行IDCT处理时需要进行的浮点乘法运算次数下限值是11次,这就说明AAN算法相对于其他的IDCT快速算法具有一定的优越性。在图1所示的IDCTAAN处理流程图中,a1乘法运算过程中出现的乘法常数项是C4,a2乘法运算过程中出现的乘法常数项是C2-C6,a3乘法运算过程中出现的乘法常数项是C4,a4乘法运算过程中出现的乘法常数项是C2+C6,a5乘法运算过程中出现的常数项是C6;其中系数缩放因子A0=1/(2),Ai=1/(4Ci),i=1,……7,该式中的Ci=cos(π16i).]]>另一种标准的IDCTAAN处理流程图如图2所示,在该图所示的AAN处理流程图中对一维8点图像进行IDCT变换处理时也同样需要进行5次浮点乘法运算。图中的系数缩放因子A0=122,A1=14C5,A2=cos(π/8)2,A3=14C1,A4=122,]]>
A5=14C7,A6=cos(3π/8)2,A7=14C3,Ci=cosiπ16.]]>综上可见,AAN算法虽然属于IDCT快速算法技术,但是基于AAN算法对一维8点图像信号进行IDCT变换处理时,仍然需要作5次余弦函数值浮点乘法运算,由于对二维8×8点的图像信号进行DCT和IDCT变换编解码处理时,通常是将二维图像信号分解为行一维和列一维的情形来分别处理,这样使用AAN算法对一幅8×8点的二维图像信号进行DCT和IDCT变换处理时就需要进行80次浮点乘法运算,由于浮点乘法运算过程是非常消耗系统处理资源的,其中消耗的资源包括对运算时间的消耗和对系统软硬件资源的消耗等,因此就还需要对基于AAN算法的IDCT变换处理过程进行更进一步的优化处理,以加快IDCT的变换处理速度,更好的满足现代实时通信业务的需求。

发明内容
本发明提出一种离散余弦逆变换方法及其装置,以进一步加快基于AAN算法的IDCT变换处理速度,更好的满足现代实时通信业务的需求。
为解决上述问题,本发明提出的技术方案如下一种离散余弦逆变换方法,包括步骤在对数字信号进行基于AAN算法的离散余弦逆变换处理过程中,分别对初始输入的各变换系数进行放大修正取整处理;对于各变换系数经过放大修正取整处理的变换过程,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算;对基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算的各个最终离散余弦逆变换结果数据分别进行对应的缩小处理。
较佳地,所述数字信号指图像编码中二维8×8系数块各元素数据值。
较佳地,所述对初始输入的各变换系数进行放大修正取整处理具体是指基于第一放大修正取整矩阵中的对应位置元素和第二放大修正取整矩阵中的对应位置元素分别对二维8×8点系数矩阵中的相同位置系数元素进行放大修正取整处理。
较佳地,对二维8×8点系数矩阵中的每个系数元素执行如下放大修正取整处理Block[i][j]=Block[i][j]×Coef0[i][j]+((Block[i][j]×Coef1[i][j])>>P2);并对系数矩阵中的系数元素Block
执行下述放大处理Block
=Block
+(1<<(P1-1));其中Block[i][j]指二维8×8点系数矩阵中的系数元素,i,j=0,1,…,7;P1和P2为预设的两个放大参数;Coef0指第一放大修正取整矩阵,Coef1指第二放大修正取整矩阵。
较佳地,第一放大修正取整矩阵Coef0按照如下处理过程确定预设一个取整修正参数Δτ;基于Coef[i][j]表示8×8点浮点参数矩阵中的各元素,i,j=0,1,…,7;分别对所述浮点参数矩阵中的各元素Coef[i][j]进行下述放大处理Coef[i][j]=Coef[i][j]×(1<<P1);继而分别对放大处理后的各元素Coef[i][j]进行下述取整处理Coef0[i][j]=(int)(Coef[i][j]+Δτ),得到第一放大修正取整矩阵Coef0。
较佳地,第二放大修正取整矩阵Coef1按照如下处理过程确定预设一个取整修正参数Δτ;基于Coef[i][j]表示8×8点浮点参数矩阵中的各元素,i,j=0,1,…,7;分别对所述浮点参数矩阵中的各元素Coef[i][j]进行下述放大处理Coef[i][j]=Coef[i][j]×(1<<P1);继而分别对放大处理后的各元素Coef[i][j]进行下述取整处理Coef0[i][j]=(int)(Coef[i][j]+Δτ),得到第一放大修正取整矩阵Coef0;分别计算所述放大处理后的浮点参数矩阵中的相应位置元素Coef[i][j]与所述第一放大修正取整矩阵中的相应位置元素Coef0[i][j]的差值Coef[i][j]=Coef[i][j]-Coef0[i][j],得到对应的差值矩阵;
分别对所述差值矩阵中的各元素Coef[i][j]进行下述处理Coef1[i][j]=(int)(Coef[i][j]×(1<<P2)+Δτ),得到第二放大修正取整矩阵Coef1。
较佳地,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,A1=14C5,A2=cos(π/8)2,A3=14C1,A4=122,A5=14C7,A6=cos(3π/8)2,A7=14C3]]>Ci=cosiπ16;]]>所述P1=18,P2=3,Δτ=0.5;所述确定的第一放大修正取整矩阵Coef0为Coef0=32768417066054723624327681187682508027867417065308177062300684170615116331920354686054777062111877436526054721945546341514912362430068436521703223624856271808120091327684170660547236243276811887682508027867118768151163219455856271187684304769090110100425080319204634118081250809090119195213282786735468514912009127867010042132823699.]]>较佳地,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,A1=14C5,A2=cos(π/8)2,A3=14C1,A4=122,A5=14C7,A6=cos(3π/8)2,A7=14C3,]]>Ci=cosiπ16;]]>所述P1=12,P2=3,Δτ=0.5;所述确定的第一放大修正取整矩阵Coef0为Coef0=512652946369512185639243565282912044706522362499554946120417486829463429724805369470682266369133828331451265294636951218563924351856236234291338185667261420157839249972428339214203003334355548053144351578333370.]]>
较佳地,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,A1=14C5,A2=cos(π/8)2,A3=14C1,A4=122,A5=14C7,A6=cos(3π/8)2,A7=14C3,]]>Ci=cosiπ16;]]>所述P1=18,P2=3,Δτ=0.5;所述确定的第二放大修正取整矩阵Coef1为Coef1=0-23300-4-1-2322-202-23202300232223-12-10-23300-4-1000-10000-4202-4013-1-22-1-103-2.]]>较佳地,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,A1=14C5,A2=cos(π/8)2,A3=14C1,A4=122,A5=14C7,A6=cos(3π/8)2,A7=14C3,]]>Ci=cosiπ16;]]>所述P1=12,P2=3,Δτ=0.5;所述确定的第二放大修正取整矩阵Coef1为Coef1=0-2010-1-13-230-1-20-110000000-31-10110-300-2010-1-13-1000-1121-1-10-3-120231-303122.]]>较佳地,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算的过程具体包括针对变换过程中基于不同输入值a、b利用aw1+bw2运算求取输出值的各变的过程具体包括针对变换过程中基于不同输入值a、b利用aw1+bw2运算求取输出值的各变换子过程,通过将常数值w1和w2化解为二进制形式,将aw1+bw2运算转换为Σi=0t(ami+bni)2-i]]>运算,其中mi、ni分别取值为0或1;并基于定点移位累加运算计算各转换出的Σi=0t(ami+bni)2-i]]>的结果值,并将计算结果值作为对应变换子过程的输出值。
较佳地,基于24位的移位寄存器和累加器进行定点移位累加运算。
较佳地,基于32位的移位寄存器和累加器进行定点移位累加运算。
较佳地,在计算Σi=0t(ami+bni)2-i]]>的结果值之前还包括预先计算不同输入值a、b之和a+b的步骤。
较佳地,所述输入值a、b分别为对数字信号进行离散余弦逆变换处理时的数字信号变换值;或为离散余弦逆变换处理过程中的中间值。
较佳地,所述输入值a、b分别为在压缩图像解码过程中进行离散余弦逆变换处理时的图像系数块元素值;或为离散余弦逆变换处理过程中的中间值。
较佳地,分别对各最终离散余弦逆变换结果数据Block1[i][j],i,j=0,1,…,7执行的缩小处理为Block1[i][j]=(Block1[i][j])>>P1。
一种离散余弦逆变换装置,包括变换系数处理单元,用于在对数字信号进行基于AAN算法的离散余弦逆变换处理过程中,分别对初始输入的各变换系数进行放大修正取整处理;移位累加单元,用于对各变换系数经过变换系数处理单元放大修正取整处理后的变换过程,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算;结果数据处理单元,用于对移位累加单元基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算的各个最终离散余弦逆变换结果数据分别进行对应的缩小处理。
较佳地,所述变换系数处理单元具体包括矩阵放大子单元,用于基于第一放大系数对数字信号的浮点参数矩阵进行放大处理,得到对应的放大浮点参数矩阵;第一矩阵确定子单元,用于基于取整修正参数对矩阵放大子单元放大处理后的放大浮点参数矩阵进行修正取整处理,得到对应的第一放大修正取整矩阵;差值矩阵求取子单元,用于计算矩阵放大子单元放大处理后的放大浮点参数矩阵与第一矩阵确定子单元得到的第一放大修正取整矩阵之间的差值,得到对应的差值矩阵;第二矩阵确定子单元,用于基于第二放大系数和取整修正参数对差值矩阵求取子单元得到的差值矩阵进行放大修正取整处理,得到对应的第二放大修正取整矩阵;变换系数矩阵放大子单元,用于基于第一矩阵确定子单元得到的第一放大修正取整矩阵和第二矩阵确定子单元得到的第二放大修正取整矩阵对数字信号的初始输入变换系数矩阵执行放大处理。
较佳地,所述移位累加单元具体包括转换子单元,用于针对变换过程中基于不同输入值a、b利用aw1+bw2运算求取输出值的各变换子过程,通过将常数值w1和w2化解为二进制形式,将aw1+bw2运算转换为Σi=0t(ami+bni)2-i]]>运算,其中mi、ni分别取值为0或1;移位累加输出结果子单元,用于基于定点移位累加运算计算转换子单元转换出的Σi=0t(ami+bni)2-i]]>的结果值,并将计算结果值作为对应变换子过程的输出值。
较佳地,所述移位累加单元具体还包括输入值加法子单元,用于在所述移位累加输出结果子单元计算Σi=0t(ami+bni)2-i]]>的结果值之前,计算所述Σi=0t(ami+bni)2-i]]>中的不同输入值a、b之和a+b。
较佳地,所述移位累加单元为24位的移位累加处理器。
较佳地,所述移位累加单元为32位的移位累加处理器。
本发明能够达到的有益效果如下本发明技术方案在进行基于AAN的IDCT变换处理过程中,将初始输入的各个变换系数分别进行放大修正取整处理,并在IDCT变换过程中将浮点乘法运算使用定点移位累加运算来替代,从而使得在基于AAN算法的IDCT变换处理过程中完全避免了浮点乘法运算,进而实现了在保证IDCT变换结果精度的前提下,大大加快了IDCT的变换处理速度,并减少了对系统软硬件资源的过多消耗,尤其是在基于24位移位寄存器和累加器分别进行定点移位处理和定点累加处理时,可以较好的节省硬件实现时的芯片面积和能耗;因此本发明方案更好的满足了现代实时通信业务的需求,同理本发明技术方案原理同样适用于基于AAN算法的DCT快速变换处理过程。


图1为一种标准的IDCT AAN处理流程图;图2为另一种标准的IDCT AAN处理流程图;图3为本发明离散余弦逆变换方法的主要实现原理流程图;图4为应用本发明方法原理后,上述现有技术图2中的基于AAN的IDCT变换处理更新流程图;图5为应用本发明方法原理后,上述现有技术图1中的基于AAN的IDCT变换处理更新流程图;图6为本发明提出的离散余弦逆变换装置的主要组成结构框图;
图7为本发明装置中变换系数处理单元的具体组成结构框图;图8为本发明装置中移位累加单元的具体组成结构框图。
具体实施例方式
本发明技术方案这里通过对现有技术中的基于AAN算法的IDCT快速计算原理进行分析,提出对基于AAN算法的IDCT变换过程中的初始输入系数进行放大修正取整处理,并对变换过程中需要做浮点乘法运算的部分使用定点移位和定点累加的方式来处理,以使整个基于AAN的IDCT快速计算过程避免了浮点乘法运算,从而实现了在保证IDCT变换结果精度的前提下,大大加快了IDCT的变换速度,并减少了对系统软硬件资源的过多消耗,以此更好的满足了现代实时通信业务的需求,同理本发明技术方案原理同样适用于基于AAN算法的DCT快速变换处理。
下面将结合各个附图对本发明技术方案的主要实现原理具体实施方式
及其对应能够达到的有益效果进行详细的阐述。
请参照图3,该图是本发明离散余弦逆变换方法的主要实现原理流程图,其主要实现原理如下步骤S10,在对数字信号进行基于AAN算法的IDCT变换处理过程中,分别对初始输入的各变换系数进行放大修正取整处理;其中这里的数字信号可以指图像编码中二维8×8系数块各元素数据值,较佳地对初始输入的各变换系数进行放大修正取整处理具体可以指基于第一放大修正取整矩阵中的相应位置元素和第二放大修正取整矩阵中的相应位置元素对二维8×8点系数矩阵中的相同位置系数元素进行放大修正取整处理;步骤S20,对于各变换系数经过上述放大修正取整处理后的变换过程,基于定点移位累加运算来替代变换过程中出现的对应浮点乘法运算;步骤S30,最后对各个最终IDCT变换结果数据分别进行对应的缩小处理。
由于目前DCT变换技术和IDCT变换技术被广泛地应用于数字信号处理技术领域,特别是应用于数字压缩技术领域,由于一个2D-IDCT变换可分别通过行和列的一维IDCT(1D-IDCT)变换来实现,所以基于本发明方法原理下述在实施方式中重点讨论1D-IDCT变换的快速计算过程。
下面将以本发明上述方法的发明原理应用在对8×8点图像信号进行基于AAN的IDCT变换处理为例,对本发明方法的具体实施过程进行详细的阐述。
第一实施例如图4所示,为应用本发明方法原理后,上述现有技术图2中的基于AAN的IDCT变换处理更新流程图,这里假设在基于AAN的IDCT变换处理过程中,使用32位的移位寄存器和累加器进行移位累加运算处理。
(一)其中在图4中最左端表示输入的8个图像信号值与对应系数缩放因子的乘积,最右端是输出的完成IDCT变换的8个图像信号输出值,应用本发明方法原理对二维8×8点图像信号进行AAN IDCT变换处理时,首先要对二维8×8点图像信号的64个变换矩阵系数进行预处理,其预处理的原理过程如下1.预先设定两个放大参数分别为P1=18和P2=3,并设定一个取整修正参数Δτ=0.5;2.假设8×8点浮点参数矩阵中各元素基于Coef[i][j]表示,i,j=0,1,…,7;则矩阵Coef中各元素的取值分别为Coef[i][j]=Ai×Aj,其中A0=122,A1=14C5,]]>A2=cos(π/8)2,A3=14C1,A4=122,A5=14C7,A6=cos(3π/8)2,A7=14C3,Ci=cosiπ16;]]>3.对上述浮点参数矩阵Coef中的各元素Coef[i][j]分别执行下述放大处理Coef[i][j]=Coef[i][j]×(1<<P1)=Coef[i][j]×(1<<18);4.继而对上述放大处理后的各元素Coef[i][j]执行下述取整处理,从而得到对应的第一放大修正取整矩阵Coef0Coef0[i][j]=(int)(Coef[i][j]+0.5),这样可以得到基于8×8点图像信号的第一个放大修正取整处理后的8×8整数常数矩阵Coef0,具体如下
Coef0=32768417066054723624327681187682508027867417065308177062300684170615116331920354686054777062111877436526054721945546341514912362430068436521703223624856271808120091327684170660547236243276811876825080278671187681511632194558562711876843047690901101004250803192046341180812508090901191952132827867354685114912009127867010042132823699;]]>5.进而分别计算上述放大处理后的浮点参数矩阵Coef中相应位置元素与上述第一放大修正取整矩阵Coef0中相应位置元素之间的差值Coef[i][j]=Coef[i][j]-Coef0[i][j],从而得到对应的差值矩阵;6.进而对上述计算得到的差值矩阵中各元素分别执行下述放大修正取整处理Coef1[i][j]=(int)(Coef[i][j]×(1<<P2)+0.5)=(int)(Coef[i][j]×(1<<3)+0.5),从而得到对应的第二放大修正取整矩阵Coef1;这样可以得到基于8×8点图像信号的第二个放大修正取整处理后的8×8整数常数矩阵,具体如下Coef1=0-23300-4-1-2322-202-23202300232223-12-10-23300-4-1000-10000-4202-4013-1-22-1-103-2;]]>7.假设8×8点图像信号的初始输入变换系数矩阵中的各系数元素分别为Block[i][j],则对该变换系数矩阵中的各系数元素Block[i][j]分别执行下述放大处理Block[i][j]=Block[i][j]×Coef0[i][j]+((Block[i][j]×Coef1[i][j])>>P2)=Block[i][j]=Block[i][j]×Coef0[i][j]+((Block[i][j]×Coef1[i][j])>>3);
然后再对变换系数矩阵中的系数元素Block
执行下述放大处理Block
=Block
+(1<<(P1-1))=Block
+(1<<17)。
(二)基于上述放大修正取整预处理后的64个初始输入的变换系数,进而对二维8×8点的图像信号的行一维和列一维分别按照图4所示的处理流程图进行变换处理,首先进行行一维方向的运算处理,再进行列一维方向的运算处理。
这里以图4中的T1运算过程为例进行说明,按照如下计算公式计算变换子过程T1的输出值T1=a×cos(π/8)-b×cos(3π/8)从而根据上式可以得到下述一般表达式T1=aw1+bw2上式中a,b分别是输入的图像系数块元素值,当然也可能是IDCT变换处理过程中的图像信号中间值。此外这里的输入值a、b还可以为对数字信号进行IDCT变换处理时的数字信号变换值,或为IDCT变换处理过程中的中间值等。
下面将具体说明怎样基于定点移位和定点累加处理来计算上述一般表达式T1=aw1+bw2的结果值这里不失一般性,分别将两个常数值w1,w2分解为二进制表达形式w1=m0+m12-1+…+mt-12-t+1+mt2-t(mi=0或1,i=0,1,…t)w2=n0+n12-1+…+nt-12-t+1+nt2-t(ni=0或1,i=0,1,…t)这样基于上述将常数值w1,w2分解为二进制表达形式的基础,则T1=aw1+bw2表达式就可以基于下述表达式进行表示T=aw1+bw2=(am0+bn0)+(am1+bn1)2-1+...+(bmt+bnt)2-t=Σi=0t(ami+bni)2-i]]>分别将上式中的每一项ami+bni,i=0,1,…,t计算出,就可以分别通过对各项计算结果向右移位累加来计算T值了,由于mi,ni分别取值为0或1,所以每一项ami+bni共有4种可能的取值分别为0,a,b,a+b,为了进一步加快处理速度可以在基于定点移位累加处理计算T=Σi=0t(ami+bni)2-i]]>的结果值之前,预先计算出a+b的值,从而在计算每一项ami+bni时就可以根据mi、ni的取值情况来有效的避免乘法了。
根据上述对T1运算过程的计算原理,下表给出了基于本发明方法原理的IDCTAAN处理流程图中相应乘法运算处使用定点移位累加处理后,相应需要的移位次数和累加次数,其中该表中的B1和B2分别代表w1,w2的二进制小数

其中上表中每出现一次“>>”代表需要进行一次定点移位处理,每出现一次“+”或“-”代表需要进行一次定点累加处理,则从上表可以看出,基于本发明方法原理的IDCTAAN处理流程图,对一维8点图像信号进行IDCT变换处理时,需要总共进行的定点累加(Adds)次数和定点移位(Shifts)次数如下表所示


从上述计算分析过程可以看出,基于本发明方法来完成一维8点图像信号的IDCT变换处理最多需要50次定点加法运算和26次定点移位运算,并完全避免了浮点乘法运算;这样扩展到二维情形,完成二维8×8点图像信号的IDCT变换处理最多需要801次定点加法运算和416次定点移位运算,并完全避免了浮点乘法运算。由此可见本发明方法可以使得整个基于AAN算法的IDCT变换处理过程没有了浮点乘法运算,从而得到了一种全新的无浮点乘法运算过程的IDCT快速变换方案,该IDCT快速变换方案可以在保证IDCT变换运算精度的前提下,大大提高了IDCT变换的运算速度,并减少了对系统软硬件资源的过多消耗,因此较好的满足了现代实时通信业务的需求。
(三)最后相应的还要对图4中所示的IDCTAAN处理流程图变换处理完成的64个输出结果信号(记为Block1[i][j],i,j=0,1,…,7)分别执行下述的缩小后处理Block1[i][j]=(Block1[i][j])>>P1=(Block1[i][j])>>18;从而最终得到应用本发明方法原理后的二维8×8点图像信号的IDCT变换处理输出结果值。
上述第一实施例中是假设在基于AAN的IDCT变换处理过程中,使用32位的移位寄存器和累加器分别进行定点移位处理和定点累加处理的,当然这里还可以使用24位的移位寄存器和累加器分别进行定点移位处理和定点累加处理,以减小基于硬件实现本发明方法原理时对芯片面积的占用以及能耗。在选用24位的移位寄存器和累加器分别进行定点移位处理和定点累加处理时,上述第一实施例处理过程中预设的第一放大系数P1较佳地采用12,从而得到对8×8点图像信号初始输入的64个变换系数进行放大修正取整处理的两个整数常数矩阵分别如下Coef0=512652946369512185639243565282912044706522362499554946120417486829463429724805369470682266369133828331451265294636951218563924351856236234291338185667261420157839249972428339214203003334355548053144351578333370;]]>Coef1=0-2010-1-13-230-1-20-110000000-31-10110-300-2010-1-13-1000-1121-1-10-3-120231-303122;]]>其他实现过程同第一实施例,这里不再赘述。
第二实施例如图5所示,为应用本发明方法原理后,上述现有技术图1中的基于AAN的IDCT变换处理更新流程图,其中在该第二实施例中,无论在基于AAN的IDCT变换处理过程中,使用32位的移位寄存器和累加器进行移位累加运算处理,还是使用24位的移位寄存器和累加器进行移位累加运算处理,其对8×8点图像信号进行IDCT变换处理的过程与上述第一实施例中叙述的实现过程都分别相类似,其具体实施过程请参照上述第一实施例中的相关描述。
相应于本发明上述提出的方法原理,本发明这里还对应的提出了一种离散余弦逆变换装置,如图6所示,为本发明提出的离散余弦逆变换装置的主要组成结构框图,其主要包括变换系数处理单元10、移位累加单元20和结果数据处理单元30,其中各个组成单元的具体作用如下变换系数处理单元10,主要用于在对数字信号进行基于AAN算法的IDCT变换处理过程中,分别对初始输入的各变换系数进行放大修正取整处理;移位累加单元20,主要用于对各变换系数经过上述变换系数处理单元10放大修正取整处理后的IDCT变换过程,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算;结果数据处理单元30,主要用于对上述移位累加单元20基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算的各个最终的IDCT变换结果数据分别进行对应的缩小处理。
进一步请参照图7,该图是本发明装置中变换系数处理单元的具体组成结构框图,其中变换系数处理单元10具体包括矩阵放大子单元110、第一矩阵确定子单元120、差值矩阵求取子单元130、第二矩阵确定子单元140和变换系数矩阵放大子单元150,其中各个组成子单元的具体作用如下矩阵放大子单元110,用于基于第一放大系数对数字信号的浮点参数矩阵中各元素分别进行放大处理,得到对应的放大浮点参数矩阵;第一矩阵确定子单元120,用于基于取整修正参数对上述矩阵放大子单元110放大处理后的放大浮点参数矩阵中各元素分别进行修正取整处理,得到对应的第一放大修正取整矩阵;差值矩阵求取子单元130,用于分别计算上述矩阵放大子单元110放大处理后的放大浮点参数矩阵中相应位置元素与上述第一矩阵确定子单元120得到的第一放大修正取整矩阵中相应位置元素之间的差值,得到对应的差值矩阵;第二矩阵确定子单元140,用于基于第二放大系数和上述取整修正参数对上述差值矩阵求取子单元130得到的差值矩阵中各元素分别进行放大修正取整处理,得到对应的第二放大修正取整矩阵;变换系数矩阵放大子单元150,用于基于上述第一矩阵确定子单元120得到的第一放大修正取整矩阵中相应位置的元素和第二矩阵确定子单元140得到的第二放大修正取整矩阵中相应位置的元素分别对数字信号的初始输入变换系数矩阵中相同位置的元素执行相应放大处理,从而达到对初始输入的各个变换系数执行放大修正取整处理的目的。
进一步请参照图8,该图是本发明装置中移位累加单元的具体组成结构框图,其中移位累加单元20具体包括转换子单元210、移位累加输出结果子单元220和输入值加法子单元230,其中各个组成子单元的具体作用如下转换子单元210,用于针对IDCT变换过程中基于不同输入值a、b利用aw1+bw2运算求取输出值的各个变换子过程,通过将其中的常数值w1和w2化解为二进制形式,以将aw1+bw2运算转换为Σi=0t(ami+bni)2-i]]>运算,其中mi、ni分别取值为0或1;输入值加法子单元230,用于在移位累加输出结果子单元220计算Σi=0t(ami+bni)2-i]]>的结果值之前,预先计算出Σi=0t(ami+bni)2-i]]>中的不同输入值a、b之和a+b;移位累加输出结果子单元220,用于根据上述输入值加法子单元230的计算结果,基于定点移位累加运算计算上述转换子单元210转换出的Σi=0t(ami+bni)2-i]]>的结果值,并将计算结果值作为对应变换子过程的输出值。
其中上述移位累加单元20可以采用24位的移位累加处理器来实现,也可以采用32位的移位累加处理器来实现。
其中上述装置中提及的输入值a、b可以但不限于分别为对数字信号进行IDCT变换处理时的数字信号变换值,或为IDCT变换处理过程中的中间值;还可以分别为在压缩图像解码过程中进行IDCT变换处理时的图像系数块元素值,或分别为IDCT变换处理过程中的中间值。
对于本发明离散余弦逆变换装置中的其他具体技术实现细节可以参照本发明上述离散余弦逆变换方法中的相关技术实现细节的描述,这里不再给以过多赘述。
此外,由于DCT变换和IDCT变换的算法结构相类似,所以有关基于AAN算法的DCT变换处理同样可参考本发明基于AAN算法的IDCT变换处理过程,这里就不再给以过多赘述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种离散余弦逆变换方法,其特征在于,包括步骤在对数字信号进行基于AAN算法的离散余弦逆变换处理过程中,分别对初始输入的各变换系数进行放大修正取整处理;对于各变换系数经过放大修正取整处理后的变换过程,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算;对基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算的各个最终离散余弦逆变换结果数据分别进行对应的缩小处理。
2.如权利要求1所述的方法,其特征在于,所述数字信号指图像编码中二维8×8系数块各元素数据值。
3.如权利要求2所述的方法,其特征在于,所述对初始输入的各变换系数进行放大修正取整处理具体是指基于第一放大修正取整矩阵中的对应位置元素和第二放大修正取整矩阵中的对应位置元素分别对二维8×8点系数矩阵中的相同位置系数元素进行放大修正取整处理。
4.如权利要求3所述的方法,其特征在于,对二维8×8点系数矩阵中的每个系数元素执行如下放大修正取整处理Block[i][j]=Block[i][j]×Coef0[i][j]+((Block[i][j]×Coef1[i][j])>>P2);并对系数矩阵中的系数元素Block
执行下述放大处理Block
=Block
+(1<<(P1-1));其中Block[i][j]指二维8×8点系数矩阵中的系数元素,i,j=0,1,...,7;P1和P2为预设的两个放大参数;Coef0指第一放大修正取整矩阵,Coef1指第二放大修正取整矩阵。
5.如权利要求4所述的方法,其特征在于,所述第一放大修正取整矩阵Coef0按照如下处理过程确定预设一个取整修正参数Δτ;基于Coef[i][j]表示8×8点浮点参数矩阵中的各元素,i,j=0,1,...,7;分别对所述浮点参数矩阵中的各元素Coef[i][j]进行下述放大处理Coef[i][j]=Coef[i][j]×(1<<P1);继而分别对放大处理后的各元素Coef[i][j]进行下述取整处理Coef0[i][j]=(int)(Coef[i][j]+Δτ),得到第一放大修正取整矩阵Coef0。
6.如权利要求4所述的方法,其特征在于,所述第二放大修正取整矩阵Coef1按照如下处理过程确定预设一个取整修正参数Δτ;基于Coef[i][j]表示8×8点浮点参数矩阵中的各元素,i,j=0,1,...,7;分别对所述浮点参数矩阵中的各元素Coef[i][j]进行下述放大处理Coef[i][j]=Coef[i][j]×(1<<P1);继而分别对放大处理后的各元素Coef[i][j]进行下述取整处理Coef0[i][j]=(int)(Coef[i][j]+Δτ),得到第一放大修正取整矩阵Coef0;分别计算所述放大处理后的浮点参数矩阵中的相应位置元素Coef[i][j]与所述第一放大修正取整矩阵中的相应位置元素Coef0[i][j]的差值Coef[i][j]=Coef[i][j]-Coef0[i][j],得到对应的差值矩阵;分别对所述差值矩阵中的各元素Coef[i][j]进行下述处理Coef1[i][j]=(int)(Coef[i][j]×(1<<P2)+Δτ),得到第二放大修正取整矩阵Coef1。
7.如权利要求5所述的方法,其特征在于,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,]]>A1=14C5,]]>A2=cos(π/8)2,]]>A3=14C1,]]>A4=122,]]>A5=14C7,]]>A6=cos(3π/8)2,]]>A7=14C3,]]>Ci=cosiπ16;]]>所述P1=18,P2=3,Δτ=0.5;所述确定的第一放大修正取整矩阵Coef0为Coef0=3276841706605472362432768118768250822786741706530817706230068417061511633192035468605477706211187743652605472194554634151491236243006843652170322362485627180812009132768417066054723624327681187682508027867118768151163219455856271187684304769090110100425080319204634118081250809090119195213282786735468514912009127867010042132823699.]]>
8.如权利要求5所述的方法,其特征在于,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,]]>A1=14C5,]]>A2=cos(π/8)2,]]>A3=14C1,]]>A4=122,]]>A5=14C7,]]>A6=cos(3π/8)2,]]>A7=14C3,]]>Ci=cosiπ16;]]>所述P1=12,P2=3,Δτ=0.5;所述确定的第一放大修正取整矩阵Coef0为Coef0=512652946369512185639243565282912044706522362499554946120417486829463429724805369470680266369133828331451265294636951218563924351856236234291338185667261420157839249972428339214203003334355548053144351578333370.]]>
9.如权利要求6所述的方法,其特征在于,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,]]>A1=14C5,]]>A2=cos(π/8)2,]]>A3=14C1,]]>A4=122,]]>A5=14C7,]]>A6=cos(3π/8)2,]]>A7=14C3,]]>Ci=cosiπ16;]]>所述P1=18,P2=3,Δτ=0.5;所述确定的第二放大修正取整矩阵Coef1为Coef1=0-23300-4-1-2322-202-23202300232223-12-10-23300-4-1000-10000-4202-4013-1-22-1-103-2.]]>
10.如权利要求6所述的方法,其特征在于,所述8×8点浮点参数矩阵中的各元素Coef[i][j]=Ai×Aj,其中A0=122,]]>A1=14C5,]]>A2=cos(π/8)2,]]>A3=14C1,]]>A4=122,]]>A5=14C7,]]>A6=cos(3π/8)2,]]>A7=14C3,]]>Ci=cosiπ16;]]>所述P1=12,P2=3,Δτ=0.5;所述确定的第二放大修正取整矩阵Coef1为Coef1=0-2010-1-13-230-1-20-110000000-31-10110-300-2010-1-13-1000-1121-1-10-3-120231-303122.]]>
11.如权利要求1所述的方法,其特征在于,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算的过程具体包括针对变换过程中基于不同输入值a、b利用aw1+bw2运算求取输出值的各变换子过程,通过将常数值w1和w2化解为二进制形式,将aw1+bw2运算转换为 运算,其中mi、ni分别取值为0或1;并基于定点移位累加运算计算各转换出的 的结果值,并将计算结果值作为对应变换子过程的输出值。
12.如权利要求1或11所述的方法,其特征在于,基于24位的移位寄存器和累加器进行定点移位累加运算。
13.如权利要求1或11所述的方法,其特征在于,基于32位的移位寄存器和累加器进行定点移位累加运算。
14.如权利要求11所述的方法,其特征在于,在计算 的结果值之前还包括预先计算不同输入值a、b之和a+b的步骤。
15.如权利要求11或14所述的方法,其特征在于,所述输入值a、b分别为对数字信号进行离散余弦逆变换处理时的数字信号变换值;或为离散余弦逆变换处理过程中的中间值。
16.如权利要求11或14所述的方法,其特征在于,所述输入值a、b分别为在压缩图像解码过程中进行离散余弦逆变换处理时的图像系数块元素值;或为离散余弦逆变换处理过程中的中间值。
17.如权利要求4所述的方法,其特征在于,分别对各最终离散余弦逆变换结果数据Block1[i][j],i,j=0,1,...,7执行的缩小处理为Block1[i][j]=(Block1[i][j])>>P1。
18.一种离散余弦逆变换装置,其特征在于,包括变换系数处理单元,用于在对数字信号进行基于AAN算法的离散余弦逆变换处理过程中,分别对初始输入的各变换系数进行放大修正取整处理;移位累加单元,用于对各变换系数经过变换系数处理单元放大修正取整处理后的变换过程,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算;结果数据处理单元,用于对移位累加单元基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算的各个最终离散余弦逆变换结果数据分别进行对应的缩小处理。
19.如权利要求18所述的装置,其特征在于,所述变换系数处理单元具体包括矩阵放大子单元,用于基于第一放大系数分别对数字信号的浮点参数矩阵中各元素进行放大处理,得到对应的放大浮点参数矩阵;第一矩阵确定子单元,用于基于取整修正参数对矩阵放大子单元放大处理后的放大浮点参数矩阵中的各元素进行修正取整处理,得到对应的第一放大修正取整矩阵;差值矩阵求取子单元,用于分别计算矩阵放大子单元放大处理后的放大浮点参数矩阵中相应位置的元素与第一矩阵确定子单元得到的第一放大修正取整矩阵中相应位置的元素之间的差值,得到对应的差值矩阵;第二矩阵确定子单元,用于基于第二放大系数和取整修正参数分别对差值矩阵求取子单元得到的差值矩阵中各元素进行放大修正取整处理,得到对应的第二放大修正取整矩阵;变换系数矩阵放大子单元,用于基于第一矩阵确定子单元得到的第一放大修正取整矩阵中相应位置的元素和第二矩阵确定子单元得到的第二放大修正取整矩阵中相应位置的元素分别对数字信号的初始输入变换系数矩阵中相同位置的元素执行放大处理。
20.如权利要求18所述的装置,其特征在于,所述移位累加单元具体包括转换子单元,用于针对变换过程中基于不同输入值a、b利用aw1+bw2运算求取输出值的各变换子过程,通过将常数值w1和w2化解为二进制形式,将aw1+bw2运算转换为 运算,其中mi、ni分别取值为0或1;移位累加输出结果子单元,用于基于定点移位累加运算计算转换子单元转换出的 的结果值,并将计算结果值作为对应变换子过程的输出值。
21.如权利要求20所述的装置,其特征在于,所述移位累加单元具体还包括输入值加法子单元,用于在所述移位累加输出结果子单元计算 的结果值之前,计算所述 中的不同输入值a、b之和a+b。
22.如权利要求18、20或21所述的装置,其特征在于,所述移位累加单元为24位的移位累加处理器。
23.如权利要求18、20或21所述的装置,其特征在于,所述移位累加单元为32位的移位累加处理器。
全文摘要
本发明公开了一种离散余弦逆变换方法,包括在对数字信号进行基于AAN算法的离散余弦逆变换处理过程中,分别对初始输入的各变换系数进行放大修正取整处理;对于各变换系数经过放大修正取整处理的变换过程,基于定点移位累加运算替代变换过程中出现的对应浮点乘法运算;对各个最终离散余弦逆变换结果数据分别进行对应的缩小处理。相应的本发明还公开了一种离散余弦逆变换装置。本发明可以进一步加快基于AAN算法的IDCT变换处理速度,更好的满足现代实时通信业务的需求。
文档编号H04N7/24GK101047849SQ200610090250
公开日2007年10月3日 申请日期2006年7月7日 优先权日2006年3月28日
发明者刘建国, 汪国有, 戴声奎, 叶登攀, 祝平平, 孟新建, 郑建铧 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1