用于执行反向离散余弦变换的方法和装置 本申请要求以申请日为2002年11月20日、申请号为02-72388的韩国专利申请为优先权,其所公开的全部内容在此结合作为参考。
【技术领域】
本发明涉及一种用于执行快速离散余弦变换(DCT)的方法和装置。
背景技术
数字型数据压缩,尤其是,视频信号的压缩是各种多媒体应用环境的一个主要组成部分。然而,由于一个视频信号包含大量必须处理的信息,所以在有效传输、存储或处理数据方面都有很多限制。为了解决这些限制,例如运动图像专家组(MPEG)-2、MPEG-4、H.263、H.26L等的国际标准制定了压缩流语法和解码处理。
压缩方法可以分为无损压缩方法和有损压缩方法。如果将无损压缩用于字符、图表以及普通数据,则可以完全再现,但是该压缩比平均为2∶1。同时,如果通过允许人类的眼睛和耳朵所不易察觉的少量损失来压缩例如视频、语音和声音之类的数据,就能很容易地获得10∶1或更高的压缩比。变换编码技术是用于有效压缩视频数据地应用最广泛的有损编码技术中的一种。在这种方法的一个基本框架(basic frame)中,被安排成具有高空间关联性的数据被变换为频率分量,范围为从低频率分量至高频率分量。对每个频率分量进行量化。每个频率分量之间的空间相关性几乎都消失了,并且该信号的能量都集中在了低频部分。在通过正交变换所得到的频域数据中,分配了更多的位,用于其中集中了更多能量(即,其中分布值更大)的频率分量,以便能够连续地表示该频率分量。无论何时分布值增加四倍(即,无论何时该幅值加一倍),那么就会向具有该分布值的频率分量再分配一位,以便所有的频率分量都具有相同的量化误差特征。在多种正交变换中,Karhunen-Loeve变换(KLT)具有最高的能量集中特性并且理论上可以提供最有效的压缩。然而,由于在这种方法中对不同的图像应当重新定义所述变换功能,所以实际上这种KLT变换是不能用的。一种具有近似该KLT的特性并且能够实际运用的方法就是离散余弦变换(DCT)。在作为多种国际标准的核心的DCT变换中,多个8×8图像元素组成一个块并且以块为单元来执行变换。该压缩比相对于一个块的大小有所增加,但该变换的实现随着该块的大小的增加而变困难了。根据实验,按照性能和实现的难易程度之间的一个折中选择了8×8的图像元素规模。
通常,在现有技术的压缩技术中,为了在压缩图像时消除空间冗余,使用了DCT变换。为了消除时间冗余,使用了运动预测(ME)和运动补偿(MC)。
图1是示出了现有技术中2-维(D)-反向离散余弦变换(IDCT)的方向的框图。
在一种通过减少IDCT处理中的运算量来执行快速IDCT的现有技术中,分别在水平方向和垂直方向上执行1D-IDCT,如图1所示。这被称作是2D-IDCT。尤其是,图1示出了一种采用利用N个水平IDCT、代入以及N个垂直IDCT的行列算法(RCA)的2D-IDCT变换。也就是说,在行方向上执行1D IDCT,代入结果值以计算多个列,然后在列方向上执行1D-IDCT。
图2是一个比较现有技术IDCT算法中计算量的表。
用于实现图1中的2D-IDCT的IDCT算法包括都是基于稀疏矩阵因式分解的陈氏(Chen)算法和王氏(Wang)算法以及都是基于离散傅立叶变换的李氏(Lee)算法和AAN算法。图2示出了在执行这些算法时所需的乘法和加法运算的数量。
图3示出了王氏算法,这是一种传统的快速IDCT算法。基于输入信号x(0)至x(7),输出输出信号X(0)至X(7)。在这个处理中,在前接触点的计算结果应当传送给每个接触点。常数C0至C7置于该接触点之间。每个常数是在下一个接触点计算时前一接触点应当与之相乘的值。例如,C0可以按照C0=x(1)+x(7)来计算。如果以这种方式执行所有的运算,那么就会发现需要用16个乘法器和26个加法器。尽管实施这种处理的方式中可能存在些许不同,但大多快速算法都采用类似的结构。
传统的快速IDCT算法可以充分地减少IDCT运算的复杂度。然而,在执行解压缩的还原中,该IDCT处理就要求巨大的运算量。在当前提供了多种多媒体服务的移动通信环境中,对编码器的大小和功耗没有太大的限制,其中,这些编码器置于服务提供商的服务系统中。与此同时,由于解码器通常置于移动通信设备例如移动电话和个人数字助理(PDA)中而使得解码器在其大小和功耗上都有所限制。因此,应当减少在解码器中所执行的IDCT的运算量。
【发明内容】
本发明提供了一种装置和方法,通过这种装置和方法,通过利用IDCT公式的对称性来对一个DCT矩阵中的每个元素都执行2D-IDCT而使得在IDCT处理中的运算量极大地减少。
按照本发明的一个方面,提供了一种快速反向离散余弦变换方法,包括:(a)以一种预定顺序搜索与非0(0)元素相关的一个离散余弦变换(DCT)矩阵中的所有元素,以及(b)通过利用一种IDCT公式的对称性来对一个DCT矩阵中的非0元素执行2维-反向DCT(2D-IDCT)变换从而计算该还原矩阵的每个元素的还原值。
按照本发明的另一方面,提供了一种快速反向离散余弦变换(IDCT)装置,包括:一个元素搜索单元,以一种预定顺序搜索与非0(0)元素相关的一个离散余弦变换(DCT)矩阵中的所有元素;以及一个个体元素2维(2D)-IDCT单元,通过利用一种IDCT公式的对称性来对元素搜索单元找到的DCT矩阵中的非0元素执行2D-IDCT变换从而计算一个还原矩阵的每个元素的还原值。
附图简述
通过参照其附图详细描述示例性实施例,将使本发明的上述目的和优点变得更加明显,其中:
图1是示出了一种传统的2维(D)-反向离散余弦变换(IDCT)的方向的框图;
图2是比较现有技术中的IDCT算法的运算量的表;
图3是示出了王氏算法,一种传统的快速IDCT算法,的框图;
图4是示出了针对不同量化参数的DCT矩阵的元素值的分布的框图;
图5是示出了针对不同量化参数的该DCT矩阵中不同的非0元素值的出现概率的图表;
图6是按照本发明的一种快速IDCT装置的结构的框图;
图7是一种二进制8×8DCT矩阵的一个例子的框图;
图8是示出了包含在一个IDCT公式中的余弦因子的值的表;
图9是示出了有关需要执行IDCT变换的一个DCT矩阵的每个元素位置的乘法次数的格栅图;
图10是图6中的一个参考值计算存储单元的结构的详细框图;
图11是示出了通过对一个DCT矩阵进行IDCT变换而获得的一个还原矩阵的对称性的框图;
图12是示出了有关一个DCT矩阵的元素位置的各种类型的对称性的表;
图13是图6中的一个参考值迭代加法单元的结构的详细框图;
图14是用于说明图6中的参考值迭代加法单元所使用的多种相加方法的框图;
图15是用于说明对各个元素进行DCT变换的整个过程的框图;
图16是示出了有关量化参数的乘法次数的实验结果的图表;
图17是示出了有关量化参数的加法次数的实验结果的图表;
图18是按照本发明的一种快速DCT方法所执行的步骤的流程图;
图19是对图18中的每个元素进行2D-DCT变换的一个步骤中所执行的子步骤的详细流程图;
图20是图19中用于计算和存储参考值的一个步骤中所执行的子步骤的详细流程图;以及
图21是按照这种对称性用于对参考值进行迭代相加的一个步骤中所执行的子步骤的详细流程图。
【具体实施方式】
图4示出了当在一个IDCT步骤之前对使用不同的量化参数(Qp)对MPEG4测试运动图像(Akiyo、Foreman和Mobile)进行编码所获得的MPEG4流进行解码时所出现的DCT矩阵中的“DCT系数”的分布。在此,该Qp越小,压缩比就越低,也就能以更高的传输率进行编码。已经证明,DCT矩阵中大约30%的元素值都集中分布在一个DCT矩阵的某个区域(2×2、4×4)中。这是由于在DCT矩阵元素值的一般分布中,这些值都集中在一个低频带上。然而,该Qp越小,即图像质量越好,该DCT矩阵元素值的分布就越宽,这些值是从低频带至高频带上。
图5示出了通过利用不同量化参数所获得的DCT矩阵中的不同数量的非0元素值的出现概率的曲线图。
图5用于分析来自与图4中相同的输入的该DCT矩阵中的不同数量的非0元素值的出现概率。该分析是关于该Qp来执行的。从图5中可以看出,当一个编码的MPEG4流被解码时一个DCT矩阵中的有效的非0元素值的数量小于等于10的概率大约为90%。与图4相比,这就表示甚至当DCT矩阵元素值的块结束值(EOB,在一个块中要计算的系数的数量)大时该概率也是高的,0元素值也包含在这种情况中。
由此,不管一个块中DCT矩阵元素值的位置在何处,当元素值的数量小于等于10时,就需要一种算法来减少运算。然而,系数的位置并不规律并且现有技术中的快速算法也不能使这种特性最佳化。
图6是按照本发明的一种快速IDCT装置的结构的框图。
该快速IDCT装置包括一个元素搜索单元61和一个个体元素2D-IDCT单元62。
在用于压缩视频数据的一般过程中,首先执行一个DCT变换,在该变换中,一个时域视频信号被分为从高频到低频分布信号功率的多个频域。由于该视频信号的功率集中在低频带上,所以如果在适当分配了一些比特之后执行量化,数据就会以更小的总比特数来进行压缩。然后,执行量化来减少整个数据量。在该量化中,该频率被分为量化值,并且较小的值就变成0以便减少整个数据量。然而,由于该值变成了0并且消失了,所以就丢失了一些信息。接着,执行游程长度编码,这是一种压缩算法,它将重复字符(在此为0)的序列(“游程”)置换为单个字符和该游程的长度。该游程越长频率越频繁,所获得的压缩比就越高。接下来,执行霍夫曼编码,通过这种编码,通过折线扫描所产生的一个整数串就被变换为一个二进制数。在上述步骤之后,该8×8矩阵就减少为0和1的组合。为了解压缩这种压缩视频数据,就要反向执行上述压缩过程。
如上所述,如果视频数据执行DCT变换然后进行量化,那么大部分压缩信息就都集中在了该低频带上,而该高频带就几乎变为了0。该量化比例越高,值就越频繁地变为0,因此,在该DCT矩阵中非0元素值的数量就得以减少。该量化比例越低,非0元素的数量就越大。通常,一个运动图像中的一个DCT矩阵的大多数元素值都是0并且只有一些元素值具有有效值。因此,如果仅在具有有效值的元素上执行IDCT变换,那么就可以减少运算量。此外,当仅对具有有效值的元素执行IDCT变换时,如果利用该IDCT公式的对称性,那么就可以进一步减少运算量。也就是说,该元素搜索单元61以一个预定顺序经由该DCT矩阵的元素来搜索非0元素值。该个体元素2D-IDCT单元62通过利用该IDCT公式的对称性来对该元素搜索单元61所发现的非0元素进行IDCT变换,以便计算该还原矩阵的每个元素的还原值。通常,2D-IDCT变换使用下面的等式1:
V(x,y)=Σi=0N-1Σj=0N-1C(i,j)T(i,j)cos((2x+1)iπ2N)cos((2y+1)jπ2N).......(1)]]>
此处,如果i≠0且j≠0,则C(i,j)=2/N,并且,如果i=0或j=0,则C(i,j)=1/N
在等式1中,T(i,j)表示DCT矩阵T的坐标i+1、j+1处的一个元素的值,而且,V(x,y)表示执行了IDCT变换并且从该DCT矩阵还原来的矩阵V的坐标x+1、y+1处的元素的值。如果该DCT矩阵T是一个8×8矩阵,这是通常使用的大小,那么每个i、j、x和y都具有从0至7的一个值并且N为8。
为了只处理DCT矩阵中的非0元素而使用了一种叠加原理。也就是说,根据该叠加原理,该DCT矩阵中的元素值的一个块被划分为部分元素或个体元素,在每个单元上都执行IDCT变换,并且然后计算这些结果的和以便使这个和值与整个矩阵的该IDCT变换的结果相同。本发明中,一个DCT矩阵的元素值的块值一个个地单独进行搜索,而只有具有有效值的部分进行IDCT变换。接着,最后计算这些结果的和以便获得一个还原矩阵。为了对各个元素进行2D-IDCT变换,该DCT矩阵中的每个非0元素都按照下面的等式2来进行计算:
IDCT(T)=IDCT(T(0,0))+IDCT(T(0,1))+IDCT(r(0,2))+...+IDCT(T(0,7))
+IDCT(T(1,0))+IDCT(T(1,1))+IDCT(T(1,2))+...+IDCT(T(1,7))
+IDCT(T(2,0))+IDCT(T(2,1))+IDCT(T(2,2))+...+IDCT(T(2,7))
+...+
+IDCT(T(7,0))+IDCT(T(7,1))+IDCT(T(7,2))+...+IDCT(T(7,7))
...............(2)
此处,IDCT(T)表示对一个8×8DCT矩阵T进行IDCT变换所获得的还原的8×8矩阵V。IDCT(T(0,0))是一个8×8矩阵,其中当将T(0,0),即该DCT矩阵的第一行和第一列的元素值,与该坐标值i=0、j=0都代入等式1,然后,代入该还原矩阵V的各个坐标值x=0-7、y=0-7的时候,结果值就是坐标x、y的元素值。IDCT(T(0,0))是该还原的8×8矩阵V的一个局部值。也就是说,如果对于该DCT矩阵T中的所有非0元素,获得所有作为该还原矩阵V的局部值的矩阵并计算其和,就可以得到所期望的还原矩阵的值。当实际实施本发明时,作为该还原矩阵V的一个局部值的矩阵以表格的形式存储在存储器中,然后,对置于按照所有存储的表格的存储器地址中的值计算其和以便获得该还原矩阵值。
如果一个DCT矩阵中的非0元素的数量在一个DCT变换中为10,则一个个体元素2D-IDCT变换就基于下面的等式3来执行:
IDCT(T)=IDCT(T(0,0))+IDCT(T(0,1))+IDCT(T(0,2))+IDCT(T(0,3))
+IDCT(T(1,0))+IDCT(T(1,1))+IDCT(T(1,2))
+IDCT(T(2,0))+IDCT(T(2,1))
+IDCT(T(3,0)) ......................(3)
该个体元素2D-IDCT单元62包括一个参考值计算存储单元621和一个参考值迭代加法单元622。
该IDCT变换公式中,也就是在等式1中,其中代入由该元素搜索单元61所发现的一个非0元素的一个值T(i,j),该参考值计算存储单元621将该非0元素的坐标i、j与由该IDCT公式的对称性所确定的参考值的坐标值x、y代入。如此一来,对于非0元素的该还原矩阵的各个元素的参考值都得以计算和存储。由于包含在等式1的IDCT公式中的余弦的周期性,该IDCT公式具有对称性。因此,如果该非0元素的值T(i,j)及其坐标值i、j都代入该IDCT公式中,并且代入该还原矩阵的所有元素的坐标值x=0-7、y=0-7,就得到对称的局部值。如果利用这种对称性,该IDCT中所需的运算量就会大大减少。在本发明中,在所存储的矩阵中具有该对称的局部值的一个元素确定为一个参考元素,并且仅获得该参考元素的局部值。然后,通过将该参考值的局部值向左或向右旋转、向上和向下旋转或者使该符号相反,就可获得其它元素的局部值。在此,该参考元素的局部值是指该参考元素的参考值。
通过按照这种有关该参考元素的坐标的对称性来将该参考值计算存储单元621中所存储的该参考值与该还原矩阵的每个元素的值进行迭代相加,该参考值迭代加法单元622计算该还原矩阵的每个元素的还原值。如上所述,如果对于该DCT矩阵中的所有非0元素,获得所有作为该还原矩阵的局部值的矩阵然后计算其和,就可以通过该叠加原理而得到所期望的还原矩阵的值。因此,如果为了该DCT矩阵中的所有非0元素而获得作为参考元素的局部值的参考值然后计算其和,那么就可以获得该参考值的IDCT值。通过将每个参考值的局部值向左或向右旋转、向上和向下旋转或者使该符号相反,然后计算其和,就可以获得元素的IDCT值而不是该参考元素的值。也就是说,不必获得作为该还原矩阵的局部值的矩阵的所有元素。
图7是示出了一个普通的8×8DCT矩阵的一个例子的框图。
包含在一个元素中的视频信息越多,用于表示该元素的阴影就越黑。其中包含的视频信息最多的一个元素A1,也就是位于该最低频带上的一个元素,用最黑的阴影来表示。A1的值称为一个DC(低频)值,而剩余的63个元素的值称为AC(高频)值。该DC值和相邻元素值,也就是该矩阵的左上角的元素,包含用于确定整个图像的亮度的非常重要的信息。
该元素搜索单元61可以在水平方向和垂直方向上搜索该DCT矩阵中的非0元素。然而,因为非0元素集中在该矩阵的左上角,所以从该元素A1开始以一种折线顺序搜索该非0元素。也就是说,以A1、A2、A3......的顺序来对元素进行搜索,就可以以最少的处理量搜索到最多的非0元素。
图8是示出了包括在一个IDCT公式中的余弦因子的值的表。
对于一个8×8DCT矩阵,如果T(i,j),即该DCT矩阵的一个元素的值,不包括在等式1中,其中该等式1是该IDCT公式,那么该公式就可以简化为下面的等式4:
sign×C×cos(kπ16)×cos(pπ16)......(4)]]>
此处,k=(2x+1)i,p=(2y+1)j,且C=C(i,j)。
如果该等式的结果值与该DCT矩阵的一个元素的值相乘,则它就变成一个局部值。由此,等式3的结果值就可成为一个标准值。图8是一个余弦因子值表,其中,包含在等式3中的余弦函数的因子值k、p是按照该8×8DCT矩阵的一个元素的坐标m、n来确定的。此处,m、n是该8×8DCT矩阵中的一个元素的实际坐标值,因此m、n就比代入等式1中的元素的坐标值大1。也就是i=m-1、j=n-1。
例如,如果一个DCT矩阵的元素值的坐标是m=6、n=4(也就是,i=5,j=3),则就应当产生16个常数(4×4=16)来作为cos(5π16),-cos(1π16),cos(7π16),cos(3π16)]]>与cos(3π16),-cos(7π16),-cos(1π16),-cos(5π16)]]>的组合产物。然而,因为有重叠值,所以应当把重叠值去掉。此处,重叠值的数量为pC2。该p表示按照行坐标值的余弦因子值和按照图8的表中具有相同值的列坐标值的余弦因子值的数量。在上述i=6和j=4的情况下,p=1,3,5,7。由此,去掉这些重叠的4C2个值,即6个重叠值,就产生了10个常数。对该DCT矩阵的所有元素,以下的说明都是适用的。
首先,如果该DCT矩阵的行和列都是偶数,k=1,3,5,7且p=1,3,5,7,那么就应当产生16(=4×4)个常数。但是,如果去掉这些重叠的4C2个值,即6个重叠值,就一共产生10个常数。
其次,如果该DCT矩阵的行和列都是奇数,k=2,6且p=2,6,那么就应当产生4(=2×2)个常数。但是,如果去掉这些重叠的2C2个值,即1个重叠值,就一共产生3个常数。
第三,在其它没有重叠的情况下,就分别产生8(=4×2)个、4(=4×1)个、2(=2×1)个以及1(=1×1)个常数。
图9是示出了有关IDCT变换所需的一个DCT矩阵的元素的位置的乘法次数的框图。
如图8所示,如果去掉重叠值来产生常数,则根据该DCT矩阵的一个元素的值的位置就需要图9中所示的相同数量的常数。如上所述,因为该常数是通过对该DCT矩阵的一个元素的值进行标准化而获得的一个DCT值,所以如果将该常数与该DCT矩阵的每个元素的值相乘,则可以获得该DCT矩阵的元素的IDCT值。由此,图9中示出了计算该DCT矩阵的每个元素的该IDCT值所需的乘法次数。
图10是图6中的参考值计算存储单元的结构的详细框图。
图6中的该参考值计算存储单元621包括一个第一参考值计算存储单元101、一个第二参考值列计算存储单元102、一个第三参考值行计算存储单元103、一个第四参考值矩阵计算存储单元104、一个第五参考值矩阵计算存储单元105、一个第六参考值矩阵计算存储单元106以及一个第七参考值矩阵计算存储单元107。
如果一个非0元素的坐标值是第一行和第一列,也就是i=0、j=0,则该第一参考值计算存储单元101就输入一个参考元素的坐标值(x=0,y=0)按照等式1的该IDCT公式来确定作为该第一行和第一列的元素,如此一来,计算并存储了该第一参考值。
如果一个非0元素的坐标值是任意一行和第一列,去掉该第一行和第一列,也就是(i=1,j=0)、(i=2,j=0)......(i=5,j=0)或(i=7,j=0),则该第二参考值列计算存储单元1 02就输入参考元素的坐标值,也就是(x=0,y=0)......(x=6,y=0)和(x=7,y=0),按照等式1的该IDCT公式来确定作为该任意一行和第一列的元素,如此一来,计算并存储了该第二参考值列。
如果一个非0元素的坐标值是第一行和任意一列,去掉该第一行和第一列,也就是(i=0,j=1)、(i=0,j=2)......(i=0,j=6)或(i=0,j=7),则该第三参考值行计算存储单元103就输入参考元素的坐标值,也就是(x=0,y=0)、(x=0,y=1)......(x=6,y=0)和(x=7,y=0),按照等式1的该IDCT公式来确定作为该第一行和任意一列的元素,如此一来,计算并存储了该第三参考值行。
如果一个非0元素的坐标值是具有A-型对称性的元素的坐标值中的一个,也就是(i=2,j=2)等,则该第四参考值矩阵计算存储单元104就在等式1的IDCT公式中输入被确定为第一象限元素的输入参考元素的坐标值,也就是(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一来,计算并存储了该第四参考值矩阵。
如果一个非0元素的坐标值是具有B-型对称性的元素的坐标值中的一个,也就是(i=2,j=1)等,则该第五参考值矩阵计算存储单元105就在等式1的IDCT公式中输入被确定为第一象限元素的参考元素的坐标值,也就是(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一来,计算并存储了该第五参考值矩阵。
如果一个非0元素的坐标值是具有C-型对称性的元素的坐标值中的一个,也就是(i=1,j=2)等,则该第六参考值矩阵计算存储单元106就在等式1的IDCT公式中输入被确定为第一象限元素的参考元素的坐标值,也就是(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一来,计算并存储了该第六参考值矩阵。
[75]如果一个非0元素的坐标值是具有D一型对称性的元素的坐标值中的一个,也就是(i=1,j=1)等,则该第七参考值矩阵计算存储单元105就在等式1的IDCT公式中输入被确定为第一象限元素的参考元素的坐标值,也就是(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3),如此一来,计算并存储了该第七参考值矩阵。
图11是示出了通过对一个DCT矩阵进行IDCT变换所获得的一个还原矩阵的对称性的框图。
由于包含在等式1的该DCT公式中的余弦的周期性,所以该IDCT公式具有对称性。由此,如果对该DCT矩阵进行IDCT变换,则作为该还原矩阵的局部值的矩阵就具有所示出的(如上所述,通过该叠加原理,如果获得所有的作为该还原矩阵的局部值的矩阵并计算其和,那么该结果就是该整个还原矩阵)对称性值。假设作为该还原矩阵的局部值的所有矩阵都被分为4个象限,并且左上部分、右上部分、左下部分以及右下部分就分别是指第一象限、第二象限、第三象限以及第四象限。如果对应该第一象限的一个小的4×4矩阵是R,如图11所示,那么第二象限与R关于该垂直线对称,第四象限与R关于该水平线对称,以及该第三象限与R关于中心对称。
还有,至于该还原矩阵的元素的位置,上述象限的正负变换示出了不同的模式,这些模式可以分为4种,也就是A型、B型、C型和D型。如图11所示,所有象限在A型中都具有正号,该第二和第三象限在B型中都具有正号而该第一和第四象限在B型中都具有负号,第一和第二象限在C型中都具有正号而第三和第四象限在C型中都具有负号,并且第一和第四象限都具有正号而第二和第三象限都具有负号。
图12是示出了有关一个DCT矩阵的元素的位置的对称性的类型的表。
图12是示出了有关一个8×8DCT矩阵的元素的位置的对称性的不同类型,也就是A、B、C和D型的表。在第一行和第一列上的元素具有一个DC值。因为在第一列中的元素的值,去掉在第一行和第一列上的元素,可以看作每一行中的该DC值,所以通过在水平方向上对这些值进行IDCT变换所获得的结果值都是相同的。也就是说,对8列进行DCT变换所获得的结果值都是相同的。因为在第一行中的元素的值,去掉在第一行和第一列上的元素,可以看作每一列中的该DC值,所以通过在垂直方向上对这些值进行IDCT变换所获得的结果值都是相同的。也就是说,对8行进行DCT变换所获得的结果值都是相同的。其余元素都是A型至D型中的任何一种。
图13是图6中的该参考值迭代加法单元622的结构的详细框图。
图6中的该参考值迭代加法单元622包括一个第一参考值初始化单元131、一个第二参考值列加法单元132、一个第三参考值行加法单元133、一个第四参考值矩阵加法单元134、一个第五参考值矩阵加法单元135、一个第六参考值矩阵加法单元136以及一个第七参考值矩阵加法单元137。
该第一参考值初始化单元131将一个还原矩阵的每个元素的值初始化为该第一参考值计算存储单元101中所存储的该第一参考值。该第二参考值列加法单元132将该第二参考值列计算存储单元102中所存储的该第二参考值列与该还原矩阵的每一列的元素相加。该第三参考值行加法单元133将该第三参考值行计算存储单元103中所存储的该第三参考值行与该还原矩阵的每一行的元素相加。按照A型的对称性,该第四参考值矩阵加法单元134将该第四参考值矩阵计算存储单元104中所存储的该第四参考值矩阵与没有改变的该还原矩阵的第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了旋转之后的该第四象限的元素进行相加。按照B型的对称性,该第五参考值矩阵加法单元135将该第五参考值矩阵计算存储单元105中所存储的该第五参考值矩阵与没有改变的该还原矩阵的第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转并进行符号相反之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加。按照C型的对称性,该第六参考值矩阵加法单元136将该第六参考值矩阵计算存储单元106中所存储的该第六参考值矩阵与没有改变的该还原矩阵的第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转并进行符号相反之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加。按照D型的对称性,该第七参考值矩阵加法单元137将该第七参考值矩阵计算存储单元107中所存储的该第七参考值矩阵与没有改变的该还原矩阵的第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转并进行符号相反之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转并进行符号相反之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了反转之后的该第四象限的元素进行相加。
如图12所示,在对该DCT矩阵进行IDCT变换所获得的该还原矩阵的元素中,去掉该还原矩阵的该第一行或第一列,包含在偶数行中的元素的对称性在D型对称性和C型对称性之间进行交替(也就是D,C,D,C,...),而,包含在奇数行中的元素的对称性在B型对称性和A型对称性之间进行交替(也就是B,A,B,A,...)。
图14是用于说明图6中的该参考值迭代加法单元所使用的多种相加方法的框图。
如上所述,该参考值迭代加法单元622相对于该输入的DCT矩阵的一个元素的位置执行不同的加法。如图12所示,按照该DCT矩阵的该元素的位置,该矩阵被划分为DC、第一列、第一行、A、B、C以及D,然后该矩阵由以下3种相加方法来处理。
首先,如果该DCT矩阵的一个元素的位置位于该第一列或第一行中,则只有作为一个参考元素的一个局部值的一个第一参考值,也就是DC值,可以从该DCT公式中得到,并且存储在图10的第一参考值计算存储单元101和图14的第一参考值计算存储单元141中。该还原矩阵的一个参考元素的坐标是(x=0,y=0),并且该第一参考值计算存储单元101、141的存储容量是1(也就是一个相对大小)。图13中的该第一参考值初始化单元131将该还原矩阵的每个元素的值都初始化为存储在该第一参考值计算存储单元101、141中的该第一参考值。也就是,该还原矩阵的所有元素都记录为该DC值。因为其余元素,也就是63(=64-1)个元素的坐标值,不必代入该DCT公式并计算,所以极大地减少了运算量。
其次,如果该DCT矩阵的一个元素的位置是在该第一行或第一列中(此处,去掉了上述具有该DC值的位于该第一行和第一列上的元素),那么就可以从该DCT公式中获得8个值,并且将它们都存储在图10的第二参考值列计算存储单元102和图14的第二参考值列计算存储单元142中,或者存储在图10的第三参考值行计算存储单元103和图14的第三参考值行计算存储单元143中。该第二参考值列计算存储单元102、142或该第三参考值行计算存储单元103、143的存储容量为8。在此,如果该DCT矩阵的一个元素位于该第一列中,则来自DCT的结果值就具有一个在水平方向上的相同的值,如上所述。也就是说,从该第一列至第八列的8个值都是相同的。因此,如该图中所示,该还原矩阵的参考元素的坐标值为(x=0,y=0)、(x=1,y=1)、......、(x=0,y=7),并且该坐标数为8。同样,如果该DCT矩阵的一个元素置于该第一行中,则来自DCT的结果值就具有一个在垂直方向上的相同的值,如上所述。也就是说,从该第一列至第八列的8个值都是相同的。因此,如该图中所示,该还原矩阵的参考元素的坐标值为(x=0,y=0)、(x=0,y=1)、......、(x=0,y=7),并且该坐标数为8。图13中的该第二参考值列加法单元132将存储在该第二参考值列计算存储单元102、104中的该第二参考值列与该还原矩阵的每列的元素相加。例如,如果该DCT矩阵中的一个非0元素的坐标为(i=1,j=0),则该还原矩阵的参考元素的坐标就是(x=0,y=0)、(x=0,y=1)、......、(x=0,y=7),因此,从DCT中所得到的结果值的数量为8,并将这些值存储起来作为该第二参考值列计算存储单元102、104中的一列,如该图中所示。如果存储起来作为一列的这些值从第一列至第八列迭代相加8次,则该水平方向上的其它元素的坐标值,也就是56(=64-8)个坐标值不需要进行代入和计算。因此,极大地减少了运算量。同样地,图13中的该第三参考值加法单元133将存储在该第三参考值行计算存储单元103、143中的该第三参考值行与该还原矩阵的每行的元素相加。例如,如果该DCT矩阵中的一个非0元素的坐标为(i=0,j=1),则该还原矩阵的参考元素的坐标就是(x=0,y=0)、(x=1,y=0)、......、(x=7,y=0),因此,从DCT中所得到的结果值的数量为8,并将这些值存储起来作为该第二参考值列计算存储单元102、104中的一行,如该图中所示。如果存储起来作为一列的这些值从第一行至第八行迭代相加8次,则该垂直方向上的其它元素的坐标值,也就是56(=64-8)个坐标值不需要进行代入和计算。因此,极大地减少了运算量。
第三,如果该DCT矩阵的一个元素不在该第一列或第一行上,则从该DCT公式中就获得了16个值,并且将这16个值存储在该第四参考值矩阵计算存储单元104(图10)与144(图14)、该第五参考值矩阵计算存储单元105(图10)与145(图14)、该第六参考值矩阵计算存储单元106(图10)与146(图14)或该第七参考值矩阵计算存储单元107(图10)与147(图14)中。该第四参考值矩阵计算存储单元104与144、该第五参考值矩阵计算存储单元105与145、该第六参考值矩阵计算存储单元106与146或该第七参考值矩阵计算存储单元107与147的存储容量都是16。然而,与以一种相同的方式执行加法的该第一和第二种情况不同的是,要通过利用如图14所示的这四种模式的对称性来执行加法。也就是说,按照该各个模式,只有16个值,这只是整个结果的1/4,存储在该第四参考值矩阵计算存储单元104与144、该第五参考值矩阵计算存储单元105与145、该第六参考值矩阵计算存储单元106与146或该第七参考值矩阵计算存储单元107与147中,这些计算存储单元是不同的临时存储区。因为以这种方式存储的参考值是根据其对称性来相加的,所以当所有元素都一个个进行了IDCT变换时运算量也就减少到了1/4。
如果该DCT矩阵中的一个元素的位置包含在图12中的A中,则按照该A型的对称性,图13中的该第四参考值矩阵加法单元134就将该第四参考值矩阵,也就是存储在该第四参考值矩阵计算存储单元104、144中的16个值,与没有改变的该还原矩阵的该第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了旋转之后的该第四象限的元素进行相加。例如,如果该DCT矩阵中的一个非0元素的坐标为(i=2,j=2),则该还原矩阵的该参考元素的坐标为(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,从DCT得到的结果值的数量为16并且将这些值作为一个4×4矩阵存储在该第四参考值矩阵计算存储单元104、144中,如该图中所示。如果将该矩阵与没有改变的该第一象限的元素、与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素、与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素以及与该参考值矩阵以180度进行了旋转之后的该第四象限的元素进行相加,那么其它象限中的其它元素的坐标值,也就是48(=64-16)个坐标值,就不必进行代入和计算。因此,极大地减少了运算量。
如果该DCT矩阵中的一个元素的位置包含在图12中的B中,则按照该B型的对称性,图13中的该第五参考值矩阵加法单元135就将该第五参考值矩阵,也就是存储在该第五参考值矩阵计算存储单元105中的16个值,与没有改变的该还原矩阵的该第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转并进行符号相反之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加。例如,如果该DCT矩阵中的一个非0元素的坐标为(i=2,j=1),则该还原矩阵的该参考元素的坐标为(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,从DCT得到的结果值的数量为16并且将这些值作为一个4×4矩阵存储在该第五参考值矩阵计算存储单元105、145中,如该图中所示。如果将该矩阵与没有改变的该第一象限的元素、与该参考值矩阵在水平方向进行了反转并进行符号相反之后的该第二象限的元素、与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加,那么其它象限中的其它元素的坐标值,也就是48(=64-16)个坐标值,就不必进行代入和计算。因此,极大地减少了运算量。
如果该DCT矩阵中的一个元素的位置包含在图12中的C中,则按照该C型的对称性,图13中的该第六参考值矩阵加法单元136就将该第六参考值矩阵,也就是存储在该第六参考值矩阵计算存储单元106、146中的16个值,与没有改变的该还原矩阵的该第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转并进行符号相反之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加。例如,如果该DCT矩阵中的一个非0元素的坐标为(i=1,j=2),则该还原矩阵的该参考元素的坐标为(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,从DCT得到的结果值的数量为16并且将这些值作为一个4×4矩阵存储在该第六参考值矩阵计算存储单元106、146中,如该图中所示。如果将该矩阵与没有改变的该第一象限的元素、与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素、与该参考值矩阵在垂直方向进行了反转并进行符号相反之后的该第三象限的元素以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加,那么其它象限中的其它元素的坐标值,也就是48(=64-16)个坐标值,就不必进行代入和计算。因此,极大地减少了运算量。
如果该DCT矩阵中的一个元素的位置包含在图12中的D中,按照该D型的对称性,则图13中的该第七参考值矩阵加法单元137就将该第七参考值矩阵,也就是存储在该第七参考值矩阵计算存储单元107、147中的16个值,与没有改变的该还原矩阵的该第一象限的元素进行相加;与该参考值矩阵在水平方向进行了反转并进行符号相反之后的该第二象限的元素进行相加;与该参考值矩阵在垂直方向进行了反转并进行符号相反之后的该第三象限的元素进行相加;以及与该参考值矩阵以180度进行了旋转之后的该第四象限的元素进行相加。例如,如果该DCT矩阵中的一个非0元素的坐标为(i=1,j=1),则该还原矩阵的该参考元素的坐标为(x=0,y=0)、(x=0,y=1)、(x=0,y=2)、(x=0,y=3)、(x=1,y=0)、(x=1,y=1)、(x=1,y=2)、(x=1,y=3)、(x=2,y=0)、(x=2,y=1)、(x=2,y=2)、(x=2,y=3)、(x=3,y=0)、(x=3,y=1)、(x=3,y=2)、(x=3,y=3)。由此,来自DCT的结果值的数量为16并且这些值存储来作为该第七参考值矩阵计算存储单元107、147中的一个4×4矩阵,如该图中所示。如果将该矩阵与没有改变的该第一象限的元素、与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素、与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素以及与该参考值矩阵以180度进行了旋转之后的该第四象限的元素进行相加,那么其它象限中的其它元素的坐标值,也就是48(=64-16)个坐标值,就不必进行代入和计算。因此,极大地减少了运算量。
此处,如图12所示,在作为将该DCT矩阵进行IDCT变换的结果的并且去掉了该还原矩阵的该第一行或第一列的该还原矩阵的元素中,包含在该偶数行的元素的对称性在D型对称性和C型对称性之间交替(也就是D,C,D,C,...),而且,饱含在该奇数行的元素的对称性在B型对称性和A型对称性之间交替(也就是B,A,B,A,...)。
图15是用于说明对各个元素进行DCT变换的整个处理的框图。
七个参考值计算存储单元151至157代入非0元素的坐标值和参考元素的该IDCT公式中的坐标值,其中在参考元素的该IDCT公式中的坐标值是基于该还原矩阵的元素中的该IDCT公式的对称性来确定的,在IDCT中,代入由该元素搜索单元所发现的非0元素的值,如此一来,就为该非0元素得到了该还原矩阵的各个元素的参考值并将所获得的值进行存储。
按照相对于该DCT矩阵的一个元素的坐标的对称性的类型,存储在这七个参考值计算存储单元151至157中的参考值都与该还原矩阵的各个元素的值进行迭代相加,以便计算该还原矩阵的每个元素的值。
图16是示出了对有关量化参数的乘法次数的实验的结果的图表。
为了这些实验,本发明用C语言来实现并且在一个具有512M字节存储器的P III 866的计算机上运行。通过输入三个典型的视频测试文件,也就是Akiyo、Foreman和Mobile(Akiyo精度最低,Mobile精度最高,而Foreman精度居中),来测定其性能。在每个测试文件中,4∶2∶0格式的数据的每200帧都利用MPEG4单一标准CODEC(MS编码器V6.0)来进行模拟。在该GOP结构中,I∶P=1∶30,帧频为30帧/秒。乘法和加法的次数都作为该比较标准被采用。该比较算法为Z.Wang 2D-DCT算法。在所比较的Z.Wang DCT码中,量化参数Qp的大小在该DCT矩阵中被调整,乘法次数可通过利用一种旋转技术来减少,并且通过利用稀疏(rarity)执行该变换,以便,当必要时,只对1、2、4坐标进行IDCT变换。
图16示出了Qp=5,12,20的乘法次数。与现有技术的快速算法相比,按照该输入,也就是在该DCT矩阵中具有的有效值的元素的稀疏,本发明只执行必要的计算,并且如此一来,本发明示出了具有多种复杂度和平均的输入图像的图像质量的极佳的性能。尤其是,当Qp很大时,也就是当该传输率很低时,本发明示出了比现有技术的快速算法更高的性能。此外,为了以高的复杂度来移动图像,也就是对于Mobile的高质量输入,本发明的乘法次数能减少35%。
图17是示出了对有关量化参数的加法次数的实验的结果的图表。
类似于平均乘法次数,本发明还示出了具有多种复杂度和平均的输入图像的图形质量的极佳的性能。尤其是,当Qp很大时,也就是当该传输率很低时,本发明示出了比现有技术的快速算法更高的性能。此外,为了以高的复杂度来移动图像,也就是对于Mobile的高质量输入,本发明的加法次数能减少5%。
图18是按照本发明的由一个快速DCT方法来执行的步骤的流程图。
在该DCT矩阵的所有元素中,在步骤181中以一个预定的顺序来搜索非0元素。该顺序是遵循一种从一个位于该DCT矩阵的第一行和第一列的元素开始的折线线路。接着,在步骤182中,找出非0元素并且通过利用该IDCT公式的对称性来对这些非0元素进行2D-IDCT变换,并且如此一来,就计算出了该还原矩阵的每个元素的还原值。
图19是对图18中的每个元素进行2D-IDCT变换的步骤181的详细流程图。在该IDCT公式中,其中非0元素的值被找出并且被代入,代入非0元素的坐标值,并且代入按照该还原矩阵的元素中的IDCT公式的对称性所确定的参考元素的坐标值,以便在步骤191中为非0元素获得该还原矩阵的各个元素的参考值并将其存储。接着,按照有关该参考元素的坐标的对称性类型来将所存储的参考值与该还原矩阵的各个元素的值进行迭代相加,并且如此一来,就在步骤192中获得了该还原矩阵的每个元素的还原值。
图20是用于计算和存储图19中的参考值的步骤191的详细流程图。
如果一个非0元素的坐标值为第一行和第一列,则输入确定为该IDCT公式中的该第一行和第一列的元素的参考元素的坐标以便在步骤201中计算并存储该第一参考值。接下来,如果一个非0元素的坐标值为任意一行和第一列,去掉第一行和第一列,则输入确定为该IDCT公式中的该任意一行和第一列的元素的参考元素的坐标以便在步骤202中计算并存储该第二参考值列。接下来,如果一个非0元素的坐标值为第一行和任意一列,去掉第一行和第一列,则输入确定为该IDCT公式中的该第一行和任意一列的元素的参考元素的坐标以便在步骤203中计算并存储该第三参考值行。接下来,如果一个非0元素的坐标值为具有A型对称性的元素的坐标,则输入确定为该IDCT公式中的该第一象限的元素的参考元素的坐标值以便在步骤204中计算并存储该第四参考值矩阵。接下来,如果一个非0元素的坐标值为具有B型对称性的元素的坐标,则输入确定为该IDCT公式中的该第一象限的元素的参考元素的坐标值以便在步骤205中计算并存储该第五参考值矩阵。接下来,如果一个非0元素的坐标值为具有C型对称性的元素的坐标,则输入确定为该IDCT公式中的该第一象限的元素的参考元素的坐标值以便在步骤206中计算并存储该第六参考值矩阵。接下来,如果一个非0元素的坐标值为具有D型对称性的元素的坐标,则输入确定为该IDCT公式中的该第一象限的元素的参考元素的坐标值以便在步骤207中计算并存储该第七参考值矩阵。
图21是按照对称类型来将参考值进行迭代相加的步骤191的详细流程图。
在步骤211中,该还原矩阵的每个元素的值都用所存储的第一参考值来进行初始化。接着,在步骤212中,将所存储的第二参考值列与该还原矩阵的每一列的元素相加。接着,在步骤213中,将所存储的第三参考值行与该还原矩阵的每一行的元素相加。接着,在步骤214中,按照该A型对称性,将所存储的第四参考值矩阵与没有改变的该还原矩阵的第一象限的元素相加、与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素进行相加、与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素进行相加、以及与该参考值矩阵以180度进行了旋转之后的该第四象限的元素进行相加。接着,在步骤215中,按照该B型对称性,将所存储的第五参考值矩阵与没有改变的该还原矩阵的该第一象限的元素进行相加、与该参考值矩阵在水平方向进行了反转并进行符号相反之后的该第二象限的元素进行相加、与该参考值矩阵在垂直方向进行了反转之后的该第三象限的元素进行相加、以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加。接着,在步骤216中,按照该C型对称性,将所存储的第六参考值矩阵与没有改变的该还原矩阵的该第一象限的元素进行相加、与该参考值矩阵在水平方向进行了反转之后的该第二象限的元素进行相加、与该参考值矩阵在垂直方向进行了反转并进行符号相反之后的该第三象限的元素进行相加、以及与该参考值矩阵以180度进行了旋转并进行符号相反之后的该第四象限的元素进行相加。接着,在步骤217中,按照该D型对称性,将所存储的第七参考值矩阵与没有改变的该还原矩阵的该第一象限的元素进行相加、与该参考值矩阵在水平方向进行了反转并进行符号相反之后的该第二象限的元素进行相加、与该参考值矩阵在垂直方向进行了反转并进行符号相反之后的该第三象限的元素进行相加、以及与该参考值矩阵以180度进行了旋转之后的该第四象限的元素进行相加。
如图12所示,在作为对该DCT矩阵进行IDCT变换的结果的该还原矩阵的元素中,去掉该还原矩阵的第一行或第一列,包含在该偶数行的元素的对称性在D型对称性和C型对称性之间交替(也就是D,C,D,C,...),包含在该奇数行的元素的对称性在B型对称性和A型对称性之间交替(也就是B,A,B,A,...)。
本发明可以具体化为一个位于一个计算机可读记录介质上的一个计算机可读的码。该计算机可读记录介质包括所有类型的其上可以存储计算机可读数据的记录装置。
该计算机可读记录介质包括例如磁存储器介质(例如,ROM、软盘、硬盘等)、光可读介质(例如,CD-ROM、DVD等)以及载波(例如,因特网上的传输)之类的存储介质。
以上已经说明并示出了最佳实施例。然而,本发明并不限于上述示例性实施例,显然,本领域技术人员可以在后附的权利要求中所限定的本发明的精神和范围内进行改变和修改。因此,本发明的范围并不是由上述说明来确定的,而是由后附权利要求来限定的。
按照本发明,对于构成一个DCT矩阵中的元素的大部分的0的不必要的计算,可以在执行该IDCT变换中减小到最小值。因为一个DCT矩阵中具有有效值的元素的数量少于10-15的概率为大于或等于90%,所以本发明的运算量与现有技术中的快速DCT算法的运算量相比极大地减少了。此外,按照本发明,即使当一个DCT矩阵中具有有效值的元素的数量很大时,通过利用DCT公式的对称性来将运算量极大地减少,也使该方法示出了统计上比传统的快速DCT算法更好的性能。而且,通过由该IDCT模块极大地减少该运算量,该运算量相当于一个视频解码器的整个运算量的25-30%,可以设计一种更稳定的改进的视频解码器,并且功耗的减少使得设计出用于移动用途的一种更小的视频解码器成为可能。
此外,当涉及一种块结束(EOB)的执行计算的其它快速DCT算法应当使用依赖于扫描方法的不同方法时,不考虑扫描方法也就是不考虑折线扫描、水平方向先扫描还是垂直方向先扫描的扫描方法就可以使用本发明。还有,有效数字在该计算处理中最大限度地进行了使用。也就是说,因为舍入成整数的数量只有一个,所以本发明的峰值信号-噪音比(PSNR)比现有技术的IDCT方法的信号-噪音比极大地优化了。