专利名称:图像和视频编码的2-d变换的制作方法
相关的申请信息该申请声明了于2002年5月2日提交的美国临时专利申请(序列号是60/377,298)的优点。
未被压缩的数字图像和视频信号会耗费相当大的存储和传送容量。通过将信号的空间域表示转换成频率域(或其他类似的变换域)表示,然后通过降低变换域表示的某些一般不太容易察觉的频率成分的分辨率,变换编码可以减小数字图像和视频的尺寸。与降低空间域中的图像或视频的颜色分辨率或空间分辨率相比较,这通常会使数字信号的退化更加不易被察觉。
尤其是,典型的变换编码技术将未被压缩的数字图像的像素分成尺寸固定的二维块,每个块可能与其他块重叠。对每个块应用执行空间频率分析的线性变换,这将块内分隔的采样值转换成一套频率(或变换)系数,这些系数通常代表闭区间上对应的频带中的数字信号的强度。关于压缩,变换系数可以有选择地被加以量化(即,降低分辨率,例如通过放弃系数值的一些最不重要的位或将较高分辨率数集中的值映射到较低的分辨率),并且还在平均信息量或可变长度方面被编码为一种压缩数据流。在解码的过程中,变换系数将进行逆向的转换,以近乎重建原来的颜色/空间取样的图像/视频信号。
其中许多图像和视频压缩系统(例如,MPEG和“视窗媒体”(Windows Media))利用基于“离散余弦变换”(DCT)的变换。众所周知,DCT具有可产生接近最佳的数据压缩的良好的能量压缩属性。在这些压缩系统中,逆向DCT(IDCT)被用于重建单独的图像块的压缩系统的编码器和解码器内的重建回路中。《8×8逆向离散余弦变换的实现的IEEE标准说明书》(IEEE标准,1180-1990,1990年12月6日)中描述了IDCT的一项示范实施。
IEEE标准1180-1990中所确定的IDCT变换的一个缺点是该变换的计算涉及64位浮点数字的矩阵乘法,这在计算上有相当大的花费。这会限制图像或视频压缩系统的性能,尤其在流媒体和类似的媒体重放应用中更是如此,那时,在实时的基础上或在其他类似的时间限制下对大量被压缩的数据执行IDCT。
出于计算效率考虑,所描述的变换具有基于有关整数的矩阵乘法运算的实施。在典型的通用图形处理器中,有关整数的矩阵乘法运算大大快于有关浮点数字的矩阵乘法运算。此外,在某个时间,一些32位处理器提供有关两个16位整数的乘法运算。在一项示范实施中,所描述的变换用16位整数矩阵乘法来加以执行。具有整数矩阵乘法的所述变换的实施加快了媒体编码/解码系统中的编码和解码性能。
可以经由这里所描述的结构程序来建立所述变换。该结构程序可建立基于选择一套服从某些限制的变换系数的变换种类的变换。这些限制可以包括变换具有被换算的整数实施,提供完美或接近完美的重建,具有类DCT基础,局限于采用n位(例如,n是16个位)的表示的范围内的系数,具有接近范数的基本功能,并为超出该范围提供充分的溢出空间。
使用所描述的结构程序,具有4个和8个点成分的一套一维变换可导致二维的8×8、8×4、4×8和4×4块变换。基于这些变换的压缩系统(允许使用16位矩阵乘法的实施)可以提供在计算上更有效率的编码和解码。
通过以下关于实施例的详细描述并参考附图,本发明的额外的特点和优点将一目了然。
图2是基于所述种类的变换的一种视频解码器的方框图。
图3是展示一种二维变换的方框图。
图4是展示了变换编码的数据流程图,该变换编码使用具有
图1和图2中的视频编码器和解码器的所述种类的变换。
图5是关于所述种类的变换的逆向变换的一项实施例的方框图。
图6是用于构造所述种类的变换之一的一种过程的流程图。
图7是关于所述种类的变换的前向变换的一项实施的方框图。
图8是基于图1和图2中所述种类的变换的视频编码器/解码器的合适的计算环境的方框图。
I.一般化的视频编码器和解码器图1是一种一般化的视频编码器(100)的方框图,图2是一种一般化的视频解码器(200)的方框图。
该编码器与解码器内的各个模块之间的所示关系指出了该编码器和解码器中的主要信息流;为简单起见,没有示出其他关系。尤其是,图1和图2通常不示出表示用于视频序列、帧、宏块、块等的编码器设置、模式、表格等的附带信息。通常在对这类附带信息进行平均信息量编码之后,在输出位流中发送该附带信息。输出位流的格式可以是“视窗媒体视频”格式或另一种格式。
编码器(100)和解码器(200)是基于块的,它们使用420宏块格式,该格式所具有的每个宏块都包括4个亮度8×8亮度块(有时被当作一个16×16宏块)和2个8×8色度块。或者,编码器(100)和解码器(200)是基于目标的,它们使用一种不同的宏块或块格式,或者对尺寸或配置不同于8×8块和16×16宏块的各套像素执行操作。
可以根据实施和所需压缩的类型来增加、省略编码器或解码器的模块,并将它们分成多个模块、与其他模块结合,并且/或者由类似的模块来取代它们。在选择性实施例中,具有不同模块和/或其他模块配置的编码器或解码器执行一种或多种所描述的技术。
A.视频编码器图1是一种一般化的视频编码器系统(100)的方框图。编码器系统(100)接收包括一个当前帧(105)的一个序列的视频帧,并产生被压缩的视频信息(195),作为输出。视频编码器的特殊实施例使用一般化的编码器(100)的一种变体或补充形式。
编码器系统(100)压缩预测帧和关键帧。为呈现起见,图1表现了通过编码器系统(100)的关键帧的一个路径,以及前向预测的帧的一个路径。编码器系统(100)的许多部件被用于压缩关键帧和预测帧。由那些部件执行的精确的操作可以根据正在被压缩的信息类型而改变。
预测帧[也被称作“p帧”、“双向预测的b帧”或“交互编码帧”]按照来自一个或多个其他帧的预测(或差别)来加以表现。预测残余是曾经预测的内容与原来的帧之间的差别。对比而言,关键帧[也被称作“i帧”、“内部编码帧”]的压缩无须参考其他帧。
如果当前帧(105)是前向预测的帧,则运动估计器(110)会估计当前帧(105)的宏块或其他各套像素关于一个参考帧的运动,该参考帧是在帧存储器(120)中被缓冲的前一个重建帧(125)。在选择性实施例中,参考帧是随后的一个帧,或者,当前帧被进行双向预测。运动估计器(110)输出作为附带信息的运动信息(115)(例如,运动矢量)。运动补偿器(130)将运动信息(115)应用于前一个被重建的帧(125),以形成一个运动补偿的当前帧(135)。但是,预测很少能够达到完美,运动补偿的当前帧(135)与原来的当前帧(105)之间的差别是预测残余(145)。或者,运动估计器和运动补偿器可以应用另一种类型的运动估计/补偿。
频率变换器(160)将空间域视频信息转换为频率域(即光谱)数据。关于基于块的视频帧,频率变换器(160)应用以下章节中所描述的一种变换,该变换具有类似于离散余弦变换[“DCT”]的属性。在一些实施例中,频率变换器(160)将频率变换应用于关键帧的空间预测残余的块。频率变换器(160)可以应用8×8、8×4、4×8或其他尺寸的频率变换。
然后,量化器(170)对光谱数据系数进行量化。量化器对光谱数据实行统一的标量量化,该光谱数据所具有的步长在帧对帧的基础或其他基础上变化。或者,量化器对光谱数据系数实行另一种类型的量化(例如,非统一的量化、矢量量化或非适应的量化),或者,直接对不使用频率变换的编码器系统中的空间域数据进行量化。除了适应的量化以外,编码器(100)还可以使用帧放弃、适应性过滤或关于比率控制的其他技术。
当随后的运动估计/补偿需要一个被重建的当前帧时,逆向量化器(176)对被量化的光谱数据系数执行逆向量化。然后。逆向频率变换器(166)执行频率变换器(160)的操作的逆向内容,产生(关于预测帧的)一个被重建的预测残余或一个被重建的关键帧。如果当前帧(105)曾经是一个关键帧,则将被重建的关键帧作为被重建的当前帧(未示出)。如果当前帧(105)曾经是一个预测帧,则将被重建的预测残余加入运动补偿的当前帧(135),以形成被重建的当前帧。帧存储器(120)对被重建的当前帧进行缓冲,供在预测下一个帧的过程中使用。在一些实施例中,编码器将分块滤波器应用于被重建的帧,以便用适应的方法消除该帧的各个块中的间断。
平均信息量编码器(180)压缩量化器(170)的输出以及某些附带信息(例如,运动信息(115)、量化步长)。典型的平均信息量编码技术包括算术编码、微分编码、Huffman编码、扫描宽度编码、LZ编码、词典编码,以及上述内容的组合。平均信息量编码器(180)通常为不同种类的信息(例如,DC系数、AC系数、不同种类的附带信息)采用不同的编码技术,并可以从一种特殊的编码技术内的多张编码表格中进行选择。
平均信息量编码器(180)将被压缩的视频信息(195)放在缓冲器(190)中。按一个恒定的或相对恒定的比特率(bitrate)将被压缩的视频信息(195)从缓冲器(190)中放空,并将其存储,用于随后按那个比特率进行流动。或者,编码器系统(100)在压缩之后立即流出被压缩的视频信息。
在缓冲器(190)之前或之后,可以对被压缩的视频信息(195)进行通道编码,用于网络上的传输。通道编码可以将错误检测和纠正数据应用于被压缩的视频信息(195)。
B.视频解码器图2是一种一般化的视频解码器系统(200)的方框图。解码器系统(200)接收关于一个被压缩序列的视频帧的信息(295),并产生包括一个被重建的帧(205)的输出。视频解码器的特殊实施例通常使用一般化的解码器(200)的一种变体或补充形式。
解码器系统(200)对预测帧和关键帧进行解压。为呈现起见,图2表现了通过解码器系统(200)的关键帧的一个路径,以及前向预测的帧的一个路径。解码器系统(200)的许多部件被用于压缩关键帧和预测帧。由那些部件执行的精确的操作可以根据正在被压缩的信息类型而改变。
缓冲器(290)接收被压缩的视频序列的信息(295),并为平均信息量解码器(280)提供所接收的信息。缓冲器(290)通常按在一段时间内相当恒定的速率来接收该信息,并且包括一个振动缓冲器,以消除带宽或传输中的短期变化。缓冲器(290)可以包括一个重放缓冲器和其他缓冲器。或者,缓冲器(290)按一个变化的速率来接收信息。在缓冲器(290)之前或之后,可以对被压缩的视频信息进行通道解码和处理,用于错误检测和纠正。
平均信息量解码器(280)对平均信息量编码的量化数据以及平均信息量编码的附带信息(例如,运动信息、量化步长)进行平均信息量解码,通常应用在编码器中所执行的平均信息量编码的逆向内容。平均信息量解码技术包括算术解码、微分解码、Huffman解码、扫描宽度解码、LZ解码、词典解码,以及上述内容的组合。平均信息量解码器(280)为不同种类的信息(例如,DC系数、AC系数、不同种类的附带信息)频繁使用不同的解码技术,并能够从一种特殊的解码技术内的多张编码表格中进行选择。
如果将要被重建的帧(205)是一个前向预测的帧,则运动补偿器(230)将运动信息(215)应用于一个参考帧(225),以形成对正在被重建的帧(205)的一项预测(235)。例如,运动补偿器(230)使用一个宏块运动矢量,来发现参考帧(225)中的一个宏块。帧缓冲器(220)存储被重建的前面的帧,用作参考帧。或者,运动补偿器应用另一种类型的运动补偿器。运动补偿器作出的预测很少是完美的,所以,解码器(200)也重建预测残余。
当解码器需要一个被重建的帧来进行随后的运动补偿时,帧存储器(220)对被重建的帧进行缓冲,供在预测下一个帧中使用。在一些实施例中,编码器将一个分块滤波器应用于被重建的帧,以便用适应的方式来消除该帧的各个块中的间断。
逆向量化器(270)对平均信息量解码的数据进行逆向量化。一般而言,逆向量化器对平均信息量解码的数据实行统一的标量逆向量化,该平均信息量解码的数据所具有的步长在帧对帧的基础或其他基础上变化。或者,逆向量化器对该数据实行另一种类型的逆向量化(例如,非统一的量化、矢量量化或非适应的量化),或者,直接对不使用逆向频率变换的解码器系统中的空间域数据进行逆向量化。
逆向频率变换器(260)将被量化的频率域数据转换为空间域视频信息。关于基于块的视频帧,逆向频率变换器(260)应用以下章节中所描述的一种逆向变换。在一些实施例中,逆向频率变换器(260)将逆向频率变换应用于关键帧的空间预测残余的各个块。逆向频率变换器(260)可以应用8×8、8×4、4×8或其他尺寸的逆向频率变换。
II.变换纵览图3展示了二维变换300,以及图1和图2的视频编码器100和解码器200中所用的逆向变换310。如下所述,变换300和逆向变换310来自一种服从某些限制构制而成的变换。
二维变换300将媒体内容的一个二维(n×m)块320(被表示为该媒体内容的有关空间的采样值)转换为一个变换域块。例如,该块可以是数字图像或数字视频帧的一个部分,比如可以被表示为安排在均一间隔的网格位置中的一排颜色采样值(像素)。这被称作媒体内容的空间域表示。变换块也包括n×m个采样值,在这里被称作媒体内容的一种变换域表示。
逆向变换320将来自变换域的一组采样值转换回到原来的域或空间域。
III.基于变换的编码一般而言,媒体内容的基于变换的编码400(例如,在以上所描述的视频编码器和解码器中)利用变换300(图3)和逆向变换310(图3)以及量化来对采取压缩形式的媒体内容进行编码。基于变换的编码首先将处于变换阶段410的变换300应用于媒体内容的一个输入块,供转换到变换域。然后,基于变换的编码在量化阶段420对某些变换域的采样值(例如,它们所产生的媒体内容的退化不太容易察觉)执行量化(即,降低这些基于变换域的采样值的分辨率)。可以使用被量化的变换域采样值来产生媒体内容的压缩形式。
基于变换的编码400也具有逆向量化阶段430和逆向变换阶段440。在逆向量化阶段430中,基于变换的编码将被量化的变换域采样值映射回到其原来的分辨率,以便为逆向变换310做准备。基于变换的编码在逆向变换阶段中对被解除量化的变换域采样值执行逆向变换,以便随后重建媒体内容块。
可以在视频编码器和解码器中的各个不同的点处执行基于变换的编码400。例如,视频编码器也可以包括一个具有逆向量化和逆向变换阶段的重建回路,可用于微分编码和帧间编码技术中。
III.有计算效率的逆向变换的实现现在参考图5,变换300和逆向变换310(图3)的执行较佳地作为先乘法变换矩阵(T)进行的二维数据块(关于变换300,是空间域采样值的数据块;关于逆向变换,是变换域采样值的数据块)的先乘法510,以及后乘法变换矩阵(T’)进行的后乘法530。先乘法变换矩阵(T)的各行代表变换的基础函数,这些基础函数被应用于先乘法510中的数据块的各列。同样,后乘法矩阵(T’)的各列是变换基础函数,这些基础函数被应用于后乘法530中的数据块的各行。
关于计算效率,变换矩阵(T和T’)和数据块包括范围内的整数,这些范围允许使用计算机或图形处理器的整数乘法运算来执行矩阵乘法。例如,利用提供16位整数乘法运算的许多当前的处理器,矩阵较佳地包括一个范围内的整数,该范围允许使用16位整数乘法运算来执行矩阵乘法。或者,矩阵可以包括处理器的较小或较大范围中的整数,这些处理器提供对其他大小的整数进行整数乘法运算。
由包括整数的变换基本函数执行的数据块的先乘法和后乘法产生较大范围内所得到的数据块值。通过在先乘法和后乘法之后分别使用换算运算520、540的基础函数乘法,实施500对此项扩大进行补偿。关于计算效率,换算运算520、540较佳地是移位运算(有效地进行2的幂的除法),它们分别移动值——许多比特位置S1和S2。
在所展示的实施500中,数据块中的值是整数,这些整数分别在先乘法510、换算520、后乘法530、换算540的输入处以及被表示为A-E的输出处具有位尺寸。例如,先乘法阶段510的输入处的数据块的值是尺寸属于A位的整数。
设计这种变换的根本原则是其作为前向和逆向变换对的实施500,后者在精确度有限的整数运算中加以执行,其中,保证逆向变换产生一个对于输入数据有意义的结果,该输入数据已由对应的前向变换程序(经历有效的量化和解除量化)生成。
IV.变换构造通过选择服从某些限制的变换基础函数的系数值(即先乘法矩阵T和后乘法矩阵T’中的值),来构造有计算效率的变换,这在下文中加以描述。这种构造技术可以产生范围限定的正交或双边正交变换。
限制被换算的整数实施。变换系数是可进行2的幂的换算的整数。这促进了标准计算机上的实施。
完美的重建。在没有量化(例如,图4中的量化和逆向量化阶段420、430)的条件下,逆向变换可以利用由变换产生的变换域数据来完美地重建原来的空间域数据。被用于压缩数据的变换的首要要求是在没有量化和舍入的条件下,前向和逆向变换可形成一个完美的重建对。这一点可以通过正交归一性或双边正交归一性而得到保证。在前一种情况中,前向变换和逆向变换相同;而在后一种情况中,它们不同。
类DCT基础。变换和逆向变换具有类似于DCT的属性。众所周知,DCT具有可导致接近最佳的数据压缩的良好的能量压缩属性。DCT的DC基础函数是一个恒定的值。这将“零的”基础的变换系数限制为具有恒定的值。
范围。数据值和变换系数的范围允许在目标计算机或图形处理器上进行使用有计算效率的整数乘法运算的实施(例如,在16位整数运算中)。在一项较佳实施中,值被限制到一个范围,该范围允许进行逆向变换的16位实施。在这项实施中,16位整数运算是一种关于整数的算术运算,可以利用16位累加器和有符号的模数或计算转滚到基数216(即具有[-32768...32767]的数据范围的累加器)来加以执行。两个16位数字的乘法只产生正在被保存的乘积的较低的16个位。或者,范围可以根据支持另一种位尺寸的整数运算的其他目标平台而变化。
变换基础函数所执行的数据块中的采样值的乘法会使范围扩大,这在变换基础函数中的采样值(点)数量方面有变化。在视频压缩系统中,通常使用8×8、4×8、8×4和4×4点的二维(N×M个点)变换。在4点变换与8点变换之间,8点变换更加严格地限制了整数变换系数的范围。这是因为,当N>M时,有关N点变换的扩展大于有关M点变换的扩展。DC值扩展为N点变换的√N。相应地,由于8点变换表现了更加严格的限制,因此,我们首先考虑它。
例如,视频压缩系统中的空间域数据块采样值的普通范围是[-255...255],这是9位分辨率。关于对应于范围[-255...255]的这种9位输入,8×8变换可以呈现范围[-2047 2047]中的值,要求12位精确度。实际上,每个8点变换都会导致1.5位的扩展。关于二维8×8变换,可以两次应用8点变换——具有处于先乘法阶段510的行变换(图5)和处于后乘法阶段530的列变换(图5),以便所产生的变换域采样值扩展3个位(到12位分辨率)。
尤其参考图5,在一项示范实施中,用于逆向变换的输入A处的输入变换域数据块具有12个位的范围,而输出E处的被重建的空间域数据块具有9个位的范围。两个逆向变换运算(先乘法510和后乘法530)可引起|T|2的换算或范围扩展,这分别由两个移位s1和s2来进行补偿。这要求这些变换所引起的范围扩展近似地等同于补偿性换算或|T|2≈2(s1+s2)。假设变换矩阵(T)是一种标准化矩阵(其中,T1=T/|T|),则先乘法之后所产生的数据块(B=T·A)的动态范围大约是10.5个位。所以,所产生的数据块(B)的范围是10.5+log2(|T|)个位。同样,后乘法数据块(D=C·T’)的范围是9+2·log2(|T|)-s1个位。关于使用16位整数运算的逆向变换的有计算效率的实施,要求以下的关系(用L表示log2(|T|))10.5+L<=16 (1)9+2L-s1<=16 (2)2L=s1+s2(3)所以,可以得到(9+m<=16),即m=6;以及,L<=5.5或|T|<=2048。
此外,用[d d d d d d d d]提供逆向变换的DC基础函数,范围限制要求8 d2<=2048或d<=16。
基础函数的标准。变换的基础函数非常接近范数。
在一般的正交和双边正交整数变换中,允许对应于不同基础函数的变换矩阵T的不同的行具有不同的范数。此灵活性的背后之意是在量化和逆向量化期间,为前向和逆向变换取消各个范数之间失配的效果。在实践中,标准化表现出两个困难(1)它尤其给解码器这方增加了复杂性,以及(2)除非标准化乘数是小整数,否则无法实行短的整数(16位)实施。
如果要求所有基础函数的范数都相同,那么,额外的重新标准化是不必要的。可以将任何标准化项因子分解入逆向量化。量化值的效果在这个过程中可以改变一些(即,某个量化点(QP)的比率-失真点可以移走,但要沿来自所计算的其原来的值的比率-失真(R-D)曲线,也就是说,使用一种标准化的完全精确变换)。
当来到4点变换和8点变换时,可以应用相同的逻辑。可以要求(无论是4点还是8点)所有基础函数的范数都相同,以便可以离开标准化。在实践中,对于合理的小整数基数而言,不可能发现服从“基础函数的所有范数都相同”这个限制的一套变换系数。这里,该限制通过只允许使用非常接近范数的基础函数而虑及了较小程度的灵活性。
溢出空间。虽然有效输入(空间域数据块)到前向变换的范围在一项实施中是9个位,但是,量化之后被重建的数据块(图4中的阶段420)可能有机会向上超出+255、向下超出-255。要求短的整数实施通过为这类情况留出充分的溢出空间,来将这一点考虑进去。
总之,这里所描述的构造技术产生了服从一些限制的变换(1)被换算的整数实施,(2)正交归一性或完美的重建,(3)能量压缩的类DCT基础,以及(4)基于整数的实施的有限的范围(例如,在16位整数运算中)。关于一种给定的范围限制,很难符合以上所有的限制。举一个特殊的例子,不可能构制一种既符合这些限制中的前三个限制又局限于16“位范围”的变换。以下所描述的结构程序通过稍微减少其中的一个或多个限制(例如,在所展示的变换的实现中,减少正交限制),来产生有效率的、范围被加以限定的变换。在所展示的变换的实现中,只要求变换对是正交的,而各个范数可以略有不同。增加的这项灵活性扩大的变换的搜索空间,这样,构造符合其他限制的有效率的、范围被加以限定的变换就变得可行了。下文将进一步讨论,在量化阶段期间,可以通过重新标准化来取消各个范数略微失配的效果。利用量化阶段中所执行的重新标准化,只在编码器处出现复杂性提高。这大大降低了总系统的复杂性,同时保持压缩效率。
构造现在参考图6,构造服从这些限制的一种有计算效率的变换的程序600产生先乘法和后乘法变换矩阵(T和T’)的一套正交变换系数,用于图5中的变换的实现500。产生这项示范的有计算效率的变换的实现的这个结构程序中所用的一些公差门限是任意的,并可以被进一步放宽,以达到其他的解决方案。虽然由于这些门限很放松,但是,这种选择性变换的实现可能会具有较差的编码性能。
使用这个程序600而被构造的一套示范的有计算效率的变换包括使用4点基础函数和8点基础函数的二维变换。根据4点基础函数和8点基础函数来产生8×8、4×8、8×4和4×4变换的变换矩阵。但是,结构程序可以选择性地加以改变,以产生具有基础函数的变换,这些基础函数具有其他数量的点或外形尺度。
结构程序600中的第一个步骤610是发现DC基础函数的恒定乘数。关于4点和8点基础函数,这些恒定乘数分别被表示为d4和d8。按照以上所讨论的范数限制,这些恒定乘数被表示为d4≈2d8]]>,以便d8≤16。只有符合大约1%内的这个范数限制的整数对{d4,d8}是{7,5}、{10,7}、{17,12}和{20,14}。关于8点变换,DC基础的平方范数是8d28。所以,具有这些整数对的DC基础的可允许的8点平方范数是200、392、1152和1568。
结构程序600中的第二个步骤620是确定变换的奇数基础函数(也被称作奇数“频率”)。根据以上所讨论的“类DCT基础”限制,变换应该具有类似于DCT变换的属性,对于8点DCT变换而言,这具有以下的奇数基础函数0.49040.41570.27780.0975-0.0975-0.2778-0.4157-0.49040.4157-0.0975-0.4904-0.27780.27780.49040.0975-0.41570.2778-0.49040.09750.4157-0.4157-0.09750.4904-0.27780.0975-0.27780.4157-0.49040.4904-0.41570.2778-0.0975]]>四个恒定值确定8点DCT的这些奇数基础函数。由于基数的结构,可以用常数C1、C2、C3和C4来取代独特的绝对系数,所提供的基础是C1C2C3C4-C4-C3-C2-C1C2-C4-C1-C3C3C1C4-C2C3-C1C4C2-C2-C4C1-C3C4-C3C2-C1C1-C2C3-C4]]>
构造继续进行,在具有以下条件的空间{C1,C2,C3,C4}上搜索。
1.基础的正交归一性。绝对为具有偶数频率项的奇数项的正交归一性提供偶数频率的补充结构。所以,这个条件减少到奇数基础函数的正交归一性。
2.类DCT基础。矢量[C1C2C3C4]与对应的DCT系数矢量
“密切”关联。由各个矢量之间的角度的余弦来测度关联,并且,需要关联尽可能接近1。也可以使用关联的其他测度。
3.奇数基数的范数密切配合DC范数。这可以被表示为C12+C22+C32+C42≈oneof{100,196,576,784}]]>在范数的5%的公差(条件3)和0.99的可允许的关联“余弦”(条件2)内,只有一套符合8点奇数基础函数的限制的整数系数。这套整数系数是[16 15 94],具有范数578,该范数无疑十分接近所需的576。关联是一个相当大的0.9984。
结构程序600的第三个步骤630是确定变换的偶数基础函数或偶数频率。再次按照类DCT基础限制,这些偶数基础函数应该与DCT变换的偶数基础函数有密切的关联。关于8点DCT变换,偶数基础函数如下所示1212121212121212C5C6-C6-C5-C5-C6C6C512-12-121212-12-1212C6-C5C5-C6-C6C5-C5C6]]>C25+C26≈288提供了关于频率2和6的范数限制。整数对{16,6}在符合这个范数限制到近似1%以内。
所产生的8点变换矩阵(使用在步骤2和3中所确定的整数系数)是 结构程序600的第四个步骤640生成四点变换。关于如以上讨论所生成的8点变换(步骤610-630),DC基础函数的恒定乘数是d8=12。所以,4点变换的恒定乘数是d4=17。关于类DCT基础,这在以下将要生成的基础函数中留下系数D1和D217171717D1D2-D2-D117-17-1717D2-D1D1-D2]]>对于D1和D2的任何选择而言,具有以上基础函数的矩阵本质上是正交的。但是,根据类DCT变换限制,系数由等于 的DCT波状线因数(即比率D1/D2)来表示。此外,系数服从范数限制D12+D22≈578。整数对{22,10}是符合正交归一性、类DCT基础和到近似1%以内的范数限制的一对整数。这产生四点变换的以下基础函数T4=171717172210-10-2217-17-171710-2222-10]]>V.变换的实现(续)返回到图5,使用以上结构程序600的变换矩阵实质上对变换下了定义。关于二维变换,基础函数在每个尺度内被应用于采样值数据块。在所展示的变换的实现500中,基础函数被应用于先乘法510中的采样值数据块的各行,然后被应用于后乘法530中的采样值数据块的各列。由于变换被构造成正交,因此,前向300和逆向310变换使用相同的变换矩阵。利用具有非单一范数的变换基础函数,所展示的实施也包括逆向变换时的换算阶段520和540,以补偿由这些变换引入的范围扩展。这种范围有限的实施也可以被用于前向变换,但在视频编码的上下文中,关于前向变换的范围限制经常是多余的。由于编码程序比解码程序慢,编码器处可用的计算资源的数量经常大于解码器处可用的计算资源的数量,因此,可以在精确度更高(例如,32位)的整数或偶数双倍精确度浮点中执行编码器。相应地,下文首先考虑使用上述变换矩阵的逆向变换的一项示范实施。
逆向变换的实现在如前所述的变换的实现500中,通过利用尺寸合适的变换矩阵(例如,8×8数据块的以上矩阵T8)来执行矩阵乘法,可以在先乘法阶段510中对变换域数据块(在下文中,我们将其表示为D)的各行进行逆向变换。通过也利用该变换矩阵来进行矩阵乘法,可以在后乘法阶段530中对变换域数据块的各列进行逆向变换。可以保存该处理,但可能会导致失配。先乘法阶段和后乘法阶段的变换矩阵是按以上所描述的内容而构造的变换矩阵。
关于换算阶段520和540,根据上述被换算的整数实施限制(即,采用2的幂进行换算,以促进标准系统和图形处理器上的计算)来确定示范的变换的实现中的换算。相应地,换算被选为2的幂,它最接近变换矩阵的基础函数的平方范数。
尤其是,逆向变换的正规公式可如下所示R=(T8′·D·T8)s]]>其中,D表示在到逆向变换的输入(A)处的变换域数据块。在下文中,D1代表来自变换的实现500的第一个乘法阶段510的数据块,R代表在行和列-方式的逆向变换之后被重建的输出。分母s是换算因数。D、D1和R是同构的8×8、8×4或4×8矩阵。在滥用符号的情况下,涉及一个矩阵和一个标量的运算是有关矩阵的项-方式运算。同样,具有一个矩阵幅角的标量运算是有关矩阵的项-方式标量运算。
分母s被选为2的幂,它最接近基础函数的平方范数。关于8×8逆向变换,一维8点基础函数的平方范数的值是{1152,1156,1168}。所以,分母被选为1024,它是最接近这些平方范数值的2的幂。由于实际范数与这个分母之间的比率(即,范数/s≈1.12)接近1,因此,用于标准IDCT的量化参数与用于所示变换的实现的量化参数之间有紧密的对应。由于在以下所描述的前向变换程序中执行所有剩余的标准化(实质上利用基础函数的1024/平方范数),因此,这里没有引入额外的错误。
按照对以上范围限制的讨论,逆向变换的输入处的变换域数据块D具有所示实施中的12个位的范围。(由于标准化,从前向变换中产生的变换域数据块的范围实际上被减小到±2048/1.12。)(一维的逆向变换之后的)正规的中间矩阵是D1=(D·T8)32]]>并且具有略低于10.5个位的范围。
在一项逆向变换的实现500中,换算阶段520和540中的每个换算阶段可以下舍入或将数据块值移动5个比特位置(实际上是除以32的除法),这一共移动10个比特位置(关于除以1024的除法)。这将乘法阶段510和530处的范围限制保持在16“位范围”内。
通过减少换算数量或在第一个换算阶段520处进行舍入,一项选择性实施为第二个后乘法阶段保持计算精确度。由于结果数据块D在第一个乘法阶段之后使用10.5个位的范围,并且,8点变换扩大该范围4个位,因此,在第一个换算阶段至多可以允许1个位的换算,以便在两个乘法阶段处保留在16“位范围”限制内。所以,该选择性实施在第一个换算阶段520处可以移动4个位,在第二个换算阶段540处可以移动6个位。现在,变换的正规表达式是D1=(D·T8)16]]>R=(T8′·D1)64]]>这项选择性实施允许在D1处额外保留一个位的精确度。4点变换可以使用同一种换算,因为4点变换矩阵中最大的乘数仍然在可用的溢出空间(4.5个位)内,虽然很少出现这种情况。
为了在中间数据块D1处额外保留第二个位的精确度,另一项选择性实施将变换矩阵分解为T8=2·T8e+T8o]]>T4=2·T4e+T4o]]>这里,只允许奇数成分矩阵To8和To4具有0、1和-1作为项目。由于T8的大多数项目是偶数,因此To8是一个稀疏矩阵。同样,To4所具有的结构与Te4紧密关联。现在,这又一项选择性逆向变换的实现的正规表达式被定义为D1=(D·T8)8]]>R=(T8′e·D1+T8′o·D12)64]]>现在,第一个换算阶段520只向下移动3个位,为第二个乘法阶段530保留了额外的精确度。由于偶数成分所具有的范围是T8的范围的一半,并且,由于将奇数成分To8限制为具有项目0、1和-1,因此,变换的第二个阶段中所产生的分子在范围上被局限于16个位。对于D1处额外一个位的精确度,有一个较小的计算处罚。然而,变换矩阵的这种分解可用微不足道的代价获得被改进的计算精确度。
在其他选择性实施中,变换T通常可以被分解成成分变换矩阵Ta和Tb,它们与变换基础T的关系是T=2x·Ta+Tb。该变换的计算是D1=D·T2y]]>然后,可以将该计算定义为R=(D·Ta+D·Tb2x)2y-x]]>可以使用矩阵乘法和移位运算来执行这项计算,如下所示(D·Ta+((D·Tb)>>x))>>(y-x)回到变换T8的特殊的选择性实施,8点变换的奇数成分和偶数成分如下所示 注意,To8只具有两个独立的非零列。乘以To8的后乘法仅仅相当于两次加法(和求反)W·T8o=W1W2W2W1-W1-W2-W2-W1]]>其中,[W1W2]=W·0001001000100001]]>4点逆向变换的偶数成分和奇数成分是T4e=8888115-5-118-8-885-1111-5]]>T4o=111100001-1-110000]]>在这又一项选择性实施中,8×8逆向变换的行-方式或先乘法阶段510和第一个换算阶段520执行以下运算D1=(D·T8+4)>>3首先通过观察T8的奇数成分以便计算8个元素的两个共同的行,来定义这项逆向变换的实现中的列-方式或后乘法阶段530和换算阶段540。在结果被下舍入6个位之前,将这些右移一个位,然后加入偶数成分乘积(或从偶数成分乘积中减去)。所以,这些阶段中所执行的运算被表示如下[D1aD1b]=D1′·0001001000100001]]>D2a=D1a>>1D2b=D1b>>1 关于另一项选择性实施中的4×8逆向变换(根据这里所用的转换,来参考具有4个列和8个行的一个阵列),行-方式或先乘法阶段510和换算阶段520执行一种4点运算,该运算被定义为D1=(D·T4+4)>>3关于该变换的第二个部分,列-方式或后乘法阶段530和换算阶段540等同于刚刚描述的8×8逆向变换。
关于8×4逆向变换,另一项选择性实施根据以下公式对行-方式阶段510和换算阶段540的4行/8列变换域数据进行操作,该公式是D1=(D·T8+4)>>3列-方式阶段530和换算阶段540的4点逆向变换被定义为以下公式[D1aD1b]=D1′·11001-100]]>D2a=D1a>>1D2b=D1b>>1R=(T4′e·D1+D2aD2b-D2b-D2a+32)>>6]]>关于4×4逆向变换,分别为4×8逆向变换的行-方式阶段510和8×4逆向变换的列-方式阶段530按以上描述来执行4×4逆向变换的阶段510、530。
前向变换的实现范围被限制的实施(例如,图5中所示的,包括换算阶段)也可以被应用于前向变换,但是,这种程序在视频编码的上下文中经常是多余的。由于编码程序比解码程序慢,并且,编码器处可用的计算资源的数量经常大于解码器处可用的计算资源的数量,因此,可以在较高的精确度(例如,32位)整数或偶数双倍精确度浮点中执行编码器。换言之,可以省略前向变换的实现中的换算阶段520、540。
在图8所示的一项较佳的前向变换的实现中,(在行-方式乘法710和列-方式乘法730之后,)对前向变换这方执行重新标准化阶段740,以确保变换本身在重建过程中引入的错误数量最少。这补偿了基础函数的范数中的少量差别,并减轻了解码器(那里可用的计算资源很少)处的负担。或者,关于具有在解码器处所提供的充分的计算资源的系统,可以在解码器处执行补偿(变换数据的换算)。
在下文中,符号表示尺寸相等的矩阵的成分类乘积。原来的2-D信号(采样值数据块)被表示为X,它的变换是Y(X1表示行-方式变换之后的中间块)。矩阵X和Y的尺寸相同,包括8×8、8×4和4×8这几种情况。使用以下的换算因数f0=64288×288]]>f1=64288×289]]>f2=64289×289]]>f3=64288×292]]>f4=64289×292]]>f5=64292×292]]>关于8×8前向变换,阶段710、730和740中的处理被描述如下 关于4×8前向变换,这些阶段执行以下公式 另一方面,8×4前向变换是以上4×8前向变换的转置。
4×4前向变换所执行的换算如下所示Y=(Y4·X·T4′)⊗f2f4f2f4f4f5f4f5f2f4f2f4f4f5f4f5]]>VI.合适的计算环境可以对其中执行图像和视频信号处理的各种设备中的任何设备(在其他例子中包括计算机;图像与视频记录设备,传输与接收设备;便携式视频播放机;电视会议等)执行以上所描述的变换。图像和视频编码技术可以在硬件电路中加以执行,也可以在图像和视频处理软件(在计算机或其他计算环境内执行)中加以执行(如图8中所示)。
图8展示了一种合适的计算环境(800)的一个一般化的例子,其中,可以执行所描述的实施例。该计算环境(800)不意在对本发明的运用或功能性的范围进行任何限制,因为本发明可以在各种不同的通用或具有特殊用途的计算环境中加以执行。
参考图8,计算环境(800)至少包括一个处理部件(810)和存储器(820)。在图8中,这个最基本的配置(830)被包括在一条虚线内。处理部件(810)执行计算机可执行的指令,并且可能是真实处理器或虚拟处理器。在多处理系统中,多处理部件执行计算机可执行的指令,以提高处理能力。存储器(820)可能是易失存储器(例如,寄存器、高速缓冲存储器、RAM)、非易失存储器(例如,ROM、EEPROM、快闪存储器等)或两者的某种组合。存储器(820)存储执行所述图像和/或视频编码器/解码器以及变换的软件(880)。
计算环境可以具有额外的特点。例如,计算环境(800)包括存储器(840)、一个或多个输入设备(850)、一个或多个输出设备(860),以及一个或多个通信连接(870)。互连机制(未示出)(例如,总线、控制器或网络)对计算环境(800)的各个部件进行互连。通常,操作系统软件(未示出)为在计算环境(800)中执行的其他软件提供一个操作环境,并且协调计算环境(800)的各个部件的活动。
存储器(840)可以是可移动的,也可以是不可移动的,它包括磁盘、磁带或盒式磁带、CD-ROMs、CD-RWs、DVDs或可以用于存储信息并可以在计算环境(800)内被存取的任何其他的介质。存储器(840)存储软件(880)的指令,该软件执行生成并压缩量化矩阵的音频编码器。
输入设备(850)可以是触摸输入设备(例如,键盘、鼠标、钢笔或跟踪球)、语音输入设备、扫描设备或将输入提供给计算环境(800)的另一种设备。在音频方面,输入设备(850)可以是声卡或接受采取模拟或数字形式的音频输入的类似设备,也可以是将声音采样值提供给计算环境的CD-ROM阅读器。输出设备(860)可以是显示器、打印机、扬声器、CD复写器或提供来自计算环境(800)的输出的另一种设备。
利用通信连接(870),可以在一种通信介质上与另一个计算实体进行通信。该通信介质传达诸如计算机可执行指令、被压缩的音频或视频信息或一个被调制的数据信号中的其他数据的信息。被调制的数据信号按一种方式对它的一个或多个特征进行设置或改变,以便对该信号中的信息实行编码。举例来讲(而不作限制),通信介质包括利用电载体、光载体、RF载体、红外线载体、声音载体或其他载体加以执行的有线或无线技术。
可以在计算机可读介质的一般上下文中描述这里的变换和编码/解码技术。计算机可读介质是可以在计算环境内被存取的任何可用的介质。举例来讲(而不作限制),利用计算环境(800),计算机可读介质包括存储器(820)、存储器(840)、通信介质,以及上述任何内容的组合。
可以在计算机可执行指令(例如,程序模块中所包括的指令、正在目标真实或虚拟处理器上的计算环境中被加以执行的指令)的一般上下文中描述这里的变换和编码/解码技术。通常,程序模块包括例行程序、程序、库、对象、种类、成分、数据结构等,它们执行特定的任务或执行特定的抽象数据类型。在各种实施例中,可以按需要在各个程序模块之间组合或分裂这些程序模块的功能性。可以在本地或分布式计算环境内执行程序模块的计算机可执行指令。
为呈现起见,详细的描述使用“确定”、“生成”、“调节”和“应用”之类的术语来描述计算环境中的计算机操作。这些术语是计算机所执行的操作的高级抽象概念,不应该与人所执行的动作相混淆。对应于这些术语的实际的计算机操作根据实施而变化。
VII.延伸上述变换及其实施可以用各种方式得到延伸,包括以下内容变换的实现的变量可以包括交替的舍入、“蝶式”实施和双边正交公式。
此外,可以服从不同的“位范围”限制来遵循以上所描述的结构程序,以生成具有不同系数范围的变换变量。
结构程序中所用的限制的门限参数可以发生变化,以产生一套更大的控诉变换。
变换集可以被延伸,以包括其他的块尺寸(例如,4×4和其他块尺寸变换)。同样,所生成的变换集可能不一定要包括上述实施中的各种尺寸(即8×8、8×4和4×8变换)。变换可以被延伸到其他尺寸的块和更大(>2)的尺度。
位深度的选择是一个可变参数,可以为所示的例子(具有未加工像素值的8位分辨率和中间结果的16个位)而任意改变。
例如,通过使用所描述的用于对逆向变换的实现进行范围限制的程序,也可以在范围上限制前向变换的实施。
可以遵循以上所描述的结构程序,以生成近似其他非DCT基础函数的变换。例如,结构程序可以生成近似FFT、微波或其他重叠变换的变换,同时符合被换算的整数、完美的构造和范围限定方面的限制。
已参考所述实施例描述并展示了我们的发明的原则,将会认识到在不脱离这些原则的前提下,可以在布置和细节方面对所描述的实施例进行修改。应该理解,除非另有指示,这里所描述的程序、过程或方法与任何特殊类型的计算环境无关,也不局限于任何特殊类型的计算环境。各种类型的通用或专用计算环境可以根据这里所描述的教导来加以运用或执行运算。可以在硬件中执行软件中所示的所述实施例的元素,反之亦然。
变换编码技术在这里被适当地描述为单一综合系统的一部分,但是,这些技术也可以被分开地、以潜在的方式与其他技术结合应用。在选择性实施例中,信号处理工具(而不是编码器或解码器)执行这些技术中的一项或多项技术。
所描述的变换和变换编码实施例执行各种不同的技术。虽然这些技术的操作通常为呈现起见而按一种特殊的连续顺序来加以描述,但是,不言而喻,除非要求特定的处理,这种描述方式包括对操作顺序进行较小的重新安排。例如,在一些情况下,连续描述的操作可以同时被重新安排或执行。而且,为简单起见,流程图通常不示出可以结合其他技术来使用特殊技术的各种方法。
鉴于可以应用我们的发明的原则的许多可能的实施例,我们声明在以下权利要求书及其同等物的范围和精神内的所有这类实施例都属于我们的发明。
权利要求
1.一种对媒体数据进行编码的方法,其特征在于,包括关于媒体数据的一个二维块,执行该块的前向变换,以便将该块转换为一个变换域;对变换域块进行量化;为变换域块解除量化;以及,执行变换域块的逆向变换,以产生一个被重建的块,逆向变换由包括整数的一个变换矩阵来执行,作为一个序列的矩阵乘法,这些整数在一个预定公差内符合某些限制,这些限制包括被换算的整数限制、完美重建的限制、类DCT基础限制和整数范围限定限制。
2.如权利要求1所述的方法,其特征在于,还包括前向变换也由包括整数的一个变换矩阵来执行,作为一个序列的矩阵乘法,这些整数也在该预定公差内符合某些限制。
3.如权利要求1所述的方法,其特征在于限制也包括变换的基础函数在范数上接近的一个限制,以及有充分的溢出空间的一个限制。
4.如权利要求3所述的方法,其特征在于还包括对量化时的基础函数范数中的任何失配进行补偿。
5.如权利要求3所述的方法,其特征在于还包括对解除量化时的基础函数范数中的任何失配进行补偿。
6.如权利要求3所述的方法,其特征在于还包括对部分在量化时、部分在解除量化时的基础函数范数中的任何失配进行补偿。
7.一种提供媒体数据的变换编码的媒体系统,其特征在于,包括前向变换阶段,关于媒体数据的一个二维块,该阶段进行操作,以执行该块的前向变换,从而将该块转换为一个变换域;量化阶段,用于进行操作,以便对变换域块进行量化;解除量化阶段,用于进行操作,以便为变换域块解除量化;以及,逆向变换阶段,用于执行变换域块的逆向变换,以产生一个被重建的块,逆向变换由包括整数的一个变换矩阵来执行,作为一个序列的矩阵乘法,这些整数在一个预定公差内符合某些限制,这些限制包括被换算的整数限制、完美重建的限制、类DCT基础限制和整数范围限定限制。
8.一种计算机可读存储介质,其上存储有计算机可执行程序指令,可在计算机系统上加以执行,以执行一种对媒体数据进行编码的方法,其特征在于包括关于媒体数据的一个二维块,执行该块的前向变换,以便将该块转换为一个变换域;对变换域块进行量化;为变换域块解除量化;以及,执行变换域块的逆向变换,以产生一个被重建的块,逆向变换由包括整数的一个变换矩阵来执行,作为一个序列的矩阵乘法,这些整数在一个预定公差内符合某些限制,这些限制包括被换算的整数限制、完美重建的限制、类DCT基础限制和整数范围限定限制。
9.对被编码为一组被量化的变换域值的媒体数据进行解码的一种方法,其特征在于,包括为变换域块解除量化;以及,执行变换域块的逆向变换,以产生一个被重建的块,逆向变换由包括整数的一个变换矩阵来执行,作为一个序列的矩阵乘法,这些整数在一个预定公差内符合某些限制,这些限制包括被换算的整数限制、完美重建的限制、类DCT基础限制和整数范围限定限制。
10.如权利要求9所述的方法,其特征在于限制也包括一个接近的范数限制和一个充分的溢出空间限制。
11.如权利要求10所述的方法,其特征在于被编码的媒体数据块是在量化时被加以补偿的范数失配。
12.如权利要求10所述的方法,其特征在于还包括对解除量化时的变换的基础函数范数中的任何失配进行补偿。
13.如权利要求10所述的方法,其特征在于还包括对部分在量化时、部分在解除量化时的变换的基础函数范数中的任何失配进行补偿。
14.对被编码为一组被量化的变换域值的数据进行解码的一种媒体解码器,其特征在于,包括解除量化阶段,用于为变换域块解除量化;以及,逆向变换阶段,用于执行变换域块的逆向变换,以产生一个被重建的块,逆向变换由包括整数的一个变换矩阵来执行,作为一个序列的矩阵乘法,这些整数在一个预定公差内符合某些限制,这些限制包括被换算的整数限制、完美重建的限制、类DCT基础限制和整数范围限定限制。
15.一种计算机可读存储介质,其上存储有计算机可执行程序指令,可在计算机系统上加以执行,以执行对被编码为一组被量化的变换域值的媒体数据进行解码的一种方法,其特征在于,包括为变换域块解除量化;以及,执行变换域块的逆向变换,以产生一个被重建的块,该逆向变换由包括整数的一个变换矩阵来执行,作为一个序列的矩阵乘法,这些整数在一个预定公差内符合某些限制,这些限制包括被换算的整数限制、完美重建的限制、类DCT基础限制和整数范围限定限制。
16.一种转换空间域表示与变换域表示之间的图像数据的一个二维块的方法,其中,该块的至少一个尺度是8个点,其特征在于,包括利用一个变换矩阵来执行图像数据块的至少一个矩阵乘法,该变换矩阵包括采取以下形式的整数变换系数, 以及对得到的矩阵乘积进行换算,以保留在一个“位范围”的限制内。
17.如权利要求16所述的方法,其特征在于图像数据块是8×8块,至少执行一个矩阵乘法包括利用变换矩阵来执行图像数据块的行-方式和列-方式矩阵乘法。
18.如权利要求17所述的方法,其特征在于换算包括行-方式和列-方式矩阵乘法中的每个乘法之后的一项项-方式移位运算,以实现除以2的幂的除法。
19.如权利要求18所述的方法,其特征在于矩阵乘法中的第一个乘法之后的项-方式移位运算是移动少于矩阵乘法中的第二个矩阵乘法之后的比特位置。
20.如权利要求18所述的方法,其特征在于项-方式移位运算是移动每个这些矩阵乘法之后的相等数量的比特位置。
21.一种计算机可读存储介质,其上存储有计算机可执行程序指令,用于在计算机上加以执行,以执行转换空间域表示与变换域表示之间的图像数据的一个二维块的一种方法,其中,该块的至少一个尺度是8个点,其特征在于包括利用一个变换矩阵来执行图像数据块的至少一个矩阵乘法,该变换矩阵包括采取以下形式的整数变换系数, 以及对得到的矩阵乘积进行换算,以保留在一个“位范围”的限制内。
22.转换空间域表示与变换域表示之间的图像数据的一个二维块的一种方法,其中,该块的至少一个尺度是4个点,其特征在于,包括利用一个变换矩阵来执行图像数据块的至少一个矩阵乘法,该变换矩阵包括采取以下形式的整数变换系数,T4=171717172210-10-2217-17-171710-2222-10]]>以及对得到的矩阵乘积进行换算,以保留在一个“位范围”的限制内。
23.如权利要求22所述的方法,其特征在于图像数据块是4×4块,至少执行一个矩阵乘法包括利用变换矩阵来执行图像数据块的行-方式和列-方式矩阵乘法。
24.如权利要求23所述的方法,其特征在于换算包括行-方式和列-方式矩阵乘法中的每个乘法之后的一项项-方式移位运算,以实现除以2的幂的除法。
25.如权利要求23所述的方法,其特征在于矩阵乘法中的第一个乘法之后的项-方式移位运算是移动少于矩阵乘法中的第二个矩阵乘法之后的比特位置。
26.如权利要求23所述的方法,其特征在于项-方式移位运算是移动每个这些矩阵乘法之后的相等数量的比特位置。
27.一种计算机可读存储介质,其上存储有计算机可执行程序指令,用于在计算机系统上加以执行,以执行转换空间域表示与变换域表示之间的图像数据的一个二维块的一种方法,其中,该块的至少一个尺度是4个点,其特征在于包括利用一个变换矩阵来执行图像数据块的至少一个矩阵乘法,该变换矩阵包括采取以下形式的整数变换系数,T4=171717172210-10-2217-17-171710-2222-10]]>以及对得到的矩阵乘积进行换算,以保留在一个“位范围”的限制内。
28.转换空间域表示与变换域表示之间的图像数据的一个二维块的一种方法,其中,该块的尺度是4个点和8个点,其特征在于,包括利用一些变换矩阵来执行图像数据块的行-方式和列-方式矩阵乘法,这些变换矩阵包括采取以下形式的整数变换系数, 和T4=171717172210-10-2217-17-171710-2222-10]]>以及对得到的矩阵乘积进行换算,以保留在一个“位范围”的限制内。
29.如权利要求28所述的方法,其特征在于数据块具有4×8个点的尺度,并根据关系Y=(T8·X·T’4)来执行矩阵乘法,其中,X代表数据块,Y是得到的矩阵乘积。
30.如权利要求28所述的方法,其特征在于数据块具有8×4个点的尺度,并根据关系Y=(T4·X·T’8)来执行矩阵乘法,其中,X代表数据块,Y是得到的矩阵乘积。
31.一种计算机可读存储介质,其上存储有计算机可执行程序指令,用于在计算机系统上加以执行,以执行转换空间域表示与变换域表示之间的图像数据的一个二维块的一种方法,其中,该块的尺度是4个点和8个点,该方法的特征在于包括利用一些变换矩阵来执行图像数据块的行-方式和列-方式矩阵乘法,这些变换矩阵包括采取以下形式的整数变换系数, 和T4=171717172210-10-2217-17-171710-2222-10]]>以及对得到的矩阵乘积进行换算,以保留在一个“位范围”的限制内。
32.一种二维媒体数据的变换编码器,它使用一种变换,该变换利用一个变换矩阵来执行,作为整数值的一个数据块的矩阵乘法,该变换矩阵包括整数系数,这些整数系数近似具有非整数系数基础函数的第二种变换,该数据块具有尺度n和m,该变换矩阵根据一种结构程序来加以构造,其特征在于包括确定在一个公差内服从一些限制的n和m点DC基础函数的一个恒定乘数,这些限制是n和m点DC基础函数的范数相匹配,基础函数在整数值的被限制的范围内产生变换域数据;确定在该公差内服从一些限制的较大的n或m个点的奇数基础函数的一套恒定乘数,这些限制是这类奇数基础函数是正交的,与第二种变换的对应的基础函数恒定乘数有密切的关联,并在范数方面与DC基础函数相匹配;确定在该公差内服从一些限制的较大的n或m个点的偶数基础函数的一套恒定乘数,这些限制是这类偶数基础函数是正交的,与第二种变换的对应的基础函数恒定乘数有密切的关联,并在范数方面与DC及奇数基础函数相匹配;以及,确定也在该公差内服从一些限制的较小的n或m个点的基础函数的一套乘数,这些限制是这类基础函数是正交的,与第二种变换的对应的基础函数恒定乘数有密切的关联,并在范数方面与较大的n和m点基础函数相匹配。
33.如权利要求32的变换编码器,其特征在于第二种变换是DCT变换。
34.如权利要求32的变换编码器,其特征在于第二种变换是DCT、FFT、微波或重叠变换之一。
35.如权利要求32的变换编码器,其特征在于尺度n和m相等。
36.如权利要求32的变换编码器,其特征在于尺度n是4,尺度m是8。
37.一种二维媒体数据的变换解码器,它使用一种变换,该变换利用一个变换矩阵来执行,作为整数值的一个数据块的矩阵乘法,该变换矩阵包括整数系数,该数据块具有尺度n和m,该变换矩阵根据一种结构程序来加以构造,其特征在于包括确定在一个公差内服从一些限制的n和m点DC基础函数的一个恒定乘数,这些限制是n和m点DC基础函数的范数相匹配,基础函数在整数值的被限制的范围内产生变换域数据;确定在该公差内服从一些限制的较大的n或m个点的奇数基础函数的一套恒定乘数,这些限制是这类奇数基础函数是正交的,与对应的DCT基础函数恒定乘数有密切的关联,并在范数方面与DC基础函数相匹配;确定在该公差内服从一些限制的较大的n或m个点的偶数基础函数的一套恒定乘数,这些限制是这类偶数基础函数是正交的,与对应的DCT基础函数恒定乘数有密切的关联,并在范数方面与DC及奇数基础函数相匹配;以及,确定也在该公差内服从一些限制的较小的n或m个点的基础函数的一套乘数,这些限制是这类基础函数是正交的,与对应的DCT基础函数恒定乘数有密切的关联,并在范数方面与较大的n和m点基础函数相匹配。
38.如权利要求37的变换解码器,其特征在于尺度n和m相等。
39.如权利要求37的变换编码器,其特征在于尺度n是4,尺度m是8。
40.一种对代表媒体内容的数据块进行变换编码所述的方法,其特征在于包括将变换应用于数据块,以产生代表媒体内容的一个变换域数据块,该变换包括一套具有失配的但近似相等的范数的变换基础函数;根据各个变换基础函数的换算因数来对变换域数据块中的值进行换算,以补偿失配的范数。
41.如权利要求40所述的方法,其特征在于在编码时执行补偿失配的范数的换算,以减少解码时的计算负载。
42.如权利要求40所述的方法,其特征在于在解码时执行补偿失配的范数的换算,以减少编码时的计算负载。
43.如权利要求40所述的方法,其特征在于应用变换包括使用一个矩阵的一项矩阵乘法, 和其中,换算包括使用一个矩阵来执行一个成分类乘积, 其中,f0=64288×288]]>f1=64288×289]]>f2=64289×289]]>f3=64288×292]]>f4=64289×292]]>f5=64292×292]]>
44.如权利要求40所述的方法,其特征在于应用变换包括使用一个矩阵的一项矩阵乘法, 和T4=171717172210-10-2217-17-171710-2222-10;]]>以及其中,换算包括使用一个矩阵来计算一个成分类乘积, 其中,f0=64288×288]]>f1=64288×289]]>f2=64289×289]]>f3=64288×292]]>f4=64289×292]]>f5=64292×292]]>
45.如权利要求40所述的方法,其特征在于应用变换包括使用一些矩阵的矩阵乘法,T4=171717172210-10-2217-17-171710-2222-10;]]>以及其中,换算包括使用一个矩阵来计算一个成分类乘积,f2f4f2f4f4f5f4f5f2f4f2f4f4f5f4f5]]>其中,f2=64289×289]]>f4=64289×292.]]>f5=64292×292]]>
46.一种计算机可读存储介质,其上存储有计算机可执行程序指令,用于在计算机系统上加以执行,以执行一种对代表媒体内容的数据块进行变换编码的方法,其特征在于包括将变换应用于数据块,以产生代表媒体内容的一个变换域数据块,该变换包括一套具有失配的但近似相等的范数的变换基础函数;根据各个变换基础函数的换算因数来对变换域数据块中的值进行换算,以补偿失配的范数。
47.一种对代表媒体内容的数据块D进行变换编码的方法,其特征在于,包括计算数据块的变换,用于在媒体块的空间域表示与变换域表示之间进行转换,其中,变换的结果R与数据块D的关系是R=D·T2y]]>,其中,T是变换基础函数的一个矩阵,该计算的特征在于包括利用第一个和第二个变换子成分矩阵中的每个矩阵来执行数据块的矩阵乘法,其中,变换子成分矩阵(Ta和Tb)与变换基础函数矩阵的关系是T=2x·Ta+Tb;将数据块和第二个子成分矩阵的乘积移动x个比特位置;将数据块和第一个子成分矩阵的乘积跟数据块和第二个子成分矩阵的移动乘积进行合计;以及,将这些乘积的总和移动y个比特位置,以产生结果R,由此延伸变换的溢出空间。
48.如权利要求47所述的方法,其特征在于其中,变换基础函数矩阵是 以及,其中,变换子成分矩阵是
49.如权利要求47所述的方法,其特征在于其中变换基础函数矩阵是T4=171717172210-10-2217-17-171710-2222-10;]]>以及其中,变换子成分矩阵是T4e=8888115-5-118-8-885-1111-5]]>T4o=111100001-1-110000]]>
50.一种计算机可读存储介质,其上存储有计算机可执行程序指令,用于在计算机系统上加以执行,以执行一种对代表媒体内容的数据块D进行变换编码的方法,其特征在于,包括计算数据块的变换,用于在媒体块的空间域表示与变换域表示之间进行转换,其中,变换的结果R与数据块D的关系是R=D·T2y,]]>其中,T是变换基础函数的一个矩阵,该计算的特征在于包括利用第一个和第二个变换子成分矩阵中的每个矩阵来执行数据块的矩阵乘法,其中,变换子成分矩阵(Ta和Tb)与变换基础函数矩阵的关系是T=2x·Ta+Tb;将数据块和第二个子成分矩阵的乘积移动x个比特位置;将数据块和第一个子成分矩阵的乘积跟数据块和第二个子成分矩阵的移动乘积进行合计;以及,将这些乘积的总和移动y个比特位置,以产生结果R,由此延伸变换的溢出空间。
全文摘要
服从某些范围被限定的限制来构造一套一维和二维变换,以提供有计算效率的变换的实现,例如用于图像和视频编码中。这些限制可以包括变换具有被换算的整数实施,提供完美的或接近完美的重建,具有类DCT基础,被局限于采用n位(例如,n是16个位)的表示的范围内的系数,具有接近范数的基础函数,并为超出该范围提供充分的溢出空间。利用这个程序来构造一套变换,该程序的实施在16位整数范围内,用于使用整数矩阵乘法运算来进行有效率的计算。
文档编号G06T9/00GK1455599SQ0312416
公开日2003年11月12日 申请日期2003年4月30日 优先权日2002年5月2日
发明者S·斯里尼瓦桑, S·雷古纳塔恩 申请人:微软公司