对有损及无损的2-D数据压缩的可逆转换转让专利

申请号 : CN200510127137.4

文献号 : CN1791222B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·斯里尼瓦杉

申请人 : 微软公司

摘要 :

2D转换及其逆具有作为一系列为了减少计算复杂性(即减少非一般操作的数目)安排的提升步骤的实现。此转换对具有类似于离散余弦转换(DCT)的能量紧致特性,且还是无损和与比例无关的。与作为分别应用到2D数据块的行和列的1D DCT转换实现的可分离的DCT转换相比较,该转换操作被重新安排成包括2×2Hadamard转换和加入提升旋转的2×2转换的基本转换的串联。这些基本转换具有作为提升操作的序列的实现。

权利要求 :

1.一种处理用于数据压缩编码的2维数字媒体数据的方法,所述方法包括:

接收2维数字媒体数据的输入;

使用可逆的2维块转换来执行数字媒体数据的基于块转换的数据压缩编码,所述2维块转换被定义成在数字媒体数据的2维块上水平和垂直地应用1维转换,通过在二个或更多阶段的每一个中交替水平的和垂直的1维转换的操作并将在各个阶段中被重新安排成作为提升步骤实现的一组转换的所述操作应用于2维块中的值的独立4值子集来实现数字媒体数据的所述2维块转换;以及输出经编码的数字媒体数据。

2.如权利要求1所述的方法,其特征在于,所述二个或更多阶段的第一阶段中还包括将2×2 Hadamard转换应用于2维块中的值的独立4值子集。

3.如权利要求1所述的方法,其特征在于,所述4值子集包括:

在2维块的各角处的4值的组;

在2维块的中心的4值的组;

在2维块的上下水平边中心的4值的组;和

在2维块的左右垂直边中心的4值的组。

4.如权利要求1所述的方法,其特征在于,还在所述二个或更多阶段的第二阶段中包括将一组转换应用于2维块中的值的独立4值子集,所述转换组包括:2×2 Hadamard转换、作为2点Hadamard转换和2点旋转矩阵的Kronecher积导出的2×2 odd旋转转换、和作为2点旋转矩阵的Kronecher积导出的2×2 odd-odd旋转转换。

5.如权利要求1的方法,其特征在于,所述方法还包括以下步骤以便减少舍入误差偏差:对包括除法或右比特移位的蝶形运算,在相应的蝶形运算之前添加变化因素到被除的或被右比特移位的操作数。

6.如权利要求1的方法,其特征在于,所述方法还包括以下步骤以便减少有损压缩的舍入误差偏差:在转换前通过乘一因子来缩放2维块;

执行所述转换;和

通过一量化器量化得到的转换系数,所述量化器等于希望的量化器乘以所述因子。

7.一种执行处理2维数字媒体数据的逆处理的方法,所述方法包括:

接收编码的数字媒体数据的输入;

使用可逆的2维逆块转换来执行编码的数字媒体数据的基于逆块转换的数据解压缩,所述2维逆块转换被定义成在编码的数字媒体数据的2维块上水平和垂直地应用1维逆转换,其中所述编码的数字媒体数据的2维块的所述逆转换通过下述处理实现:在2个或更多阶段的每一个中交替水平的和垂直的1维逆转换的操作并将在各个阶段中被重新安排成作为提升步骤实现的一组转换的所述操作应用于在2维块中的值的独立4值子集;以及输出解压缩的2维数字媒体数据。

8.如权利要求7所述的方法,其特征在于,还包括:在所述2个或更多阶段的第一阶段,将一组转换应用于2维块中的值的独立4值子集,所述转换组包括:2×2 Hadamard转换、作为2点Hadamard转换和2点旋转矩阵的Kronecher积导出的2×2 odd旋转转换、作为各2点旋转矩阵的Kronecher积导出的2×2 odd-odd旋转转换。

9.如权利要求8所述的方法,其特征在于,所述4值子集包括2维块的左上、右上、左下、右下处的4个值的组。

10.如权利要求8所述的方法,其特征在于,通过下列精确到4位小数的等式给出2×2 Hadamard转换、2×2 odd旋转转换、和2×2 odd-odd旋转转换:和

11.如权利要求7所述的方法,其特征在于,还包括在所述2个或更多阶段的第二阶段将2×2 Hadamard转换应用于2维块中的值的独立4值子集。

12.一种用基于块转换编码对2维数字媒体数据执行有损/无损压缩的有损/无损压缩系统中的编码器,所述编码器包括:用于缓存要编码的2维数字媒体数据的缓存存储器;

用于将可逆的2维转换应用到数字媒体数据的2维块的处理器,所述可逆的2维转换应用被定位为垂直和水平地应用的4点转换,所述应用包括:在2个或更多阶段的每一个中交替水平的和垂直的1维4点转换的操作并将在各个阶段中被重新安排成作为提升步骤实现的一组2×2的转换的所述操作应用于在2维块中的独立4值子集;

所述处理器进一步用于对由所述2维块转换所产生的转换系数进行熵编码。

13.如权利要求12所述的编码器,其特征在于,所述基本转换包括:2×2 Hadamard转换、作为2点Hadamard转换和2点旋转矩阵的Kronecher积导出的2×2 odd旋转转换、作为各2点旋转矩阵的Kronecher积导出的2×2 odd-odd旋转转换。

14.如权利要求12所述的编码器,其特征在于,所述处理器在所述2个或更多阶段的第一阶段将2×2 Hadamard转换应用于相应数字媒体块的4值子集,所述相应数字媒体块的

4值子集包括:在该数字媒体块的各角处的4值的组、在该数字媒体块的中心的4值的组、在该数字媒体块的上下水平边中心的4值的组、以及在该数字媒体块的左右垂直边中心的

4值的组。

15.如权利要求12所述的编码器,其特征在于,所述处理器在所述2个或更多阶段的第二阶段将2×2 Hadamard转换应用到在相应数字媒体块的左上方的4值子集;将2×2 Hadamard转换、作为2×2 Hadamard转换和2点旋转矩阵的Kronecher积导出的2×2 odd旋转转换应用到在所述相应数字媒体块的右上方及左下方的4值子集;和将作为所述2点旋转矩阵与其本身的Kronecher积导出的2×2 odd-odd旋转转换应用到在所述相应数字媒体块的右下方的4值子集。

16.一种用基于逆块转换解码对已压缩的2维数字媒体数据执行有损/无损解压缩的有损/无损压缩系统中的解码器,所述解码器包括:用于缓存所述压缩的2维数字媒体数据的块的转换系数的缓存存储器;以及处理器,用于熵解码所述块的转换系数,并用于通过在两个或更多阶段的每一个中交替水平的和垂直的1维4点逆转换的操作并将在各个阶段中被重新安排成作为提升步骤实现的一组2×2的转换的所述操作应用于在2维块中的独立4值子集,来将可逆2维转换的逆应用于数字媒体数据的2维块中。

17.如权利要求16所述的解码器,其特征在于,所述转换包括:2×2Hadamard转换、作为2点Hadamard转换和2点旋转矩阵的Kronecher积导出的2×2 odd旋转转换、作为各

2点旋转矩阵的Kronecher积导出的2×2 odd-odd旋转转换。

18.如权利要求17所述的解码器,其特征在于,所述处理器在两个或更多阶段的的第一阶段将2×2 Hadamard转换应用到在相应数字媒体块的左上方的4值子集;将2×2 Hadamard转换、作为2点Hadamard转换和2点旋转矩阵的Kronecher积导出的2×2 odd旋转转换应用到在所述相应数字媒体块的右上方及左下方的4值子集;和将作为所述各2点旋转矩阵的Kronecher积导出的2×2 odd-odd旋转转换应用到所述相应数字媒体块的右下方的4值子集。

19.如权利要求17所述的解码器,其特征在于,所述处理器在两个或更多阶段的的第二阶段将2×2 Hadamard转换应用于所述相应数字媒体块的4值子集,所述相应数字媒体块的4值子集包括:在该数字媒体块的各角处的4值的组、在该数字媒体块的中心的4值的组、在该数字媒体块的上下水平边中心的4值的组、以及在该数字媒体块的左右垂直边中心的4值的组。

说明书 :

对有损及无损的2-D数据压缩的可逆转换

技术领域

[0001] 本发明一般涉及基于块转换的数字媒体(如视频和图像)压缩。

背景技术

[0002] 基于块转换的编码
[0003] 转换编码是用于许多音频、图像和视频压缩系统中的压缩技术。未压缩的数字图像和视频通常表示成在安排成二维(2-D)网格中的图像或视频帧的位置处的图形元素的或颜色的样本,并按此形式捕捉。这称为图像或视频的空间域表示。例如,图像的通常格式包括安排成网格的24比特的彩色图形元素样本的流。每个样本是一个数,表示在如RGB、或YIQ等颜色空间内网格中象素位置处的颜色成分。各种图像和视频系统可使用采样的各种不同的颜色、空间和时间分辨率。类似地,数字音频通常表示成按时间采样的音频信号流。例如,通常的音频格式包括以规则的时间间隔采集的音频信号的16比特幅值样本的流。
[0004] 未压缩的数字音频、图像和视频信号会消耗大量的存储和传输容量。转换编码通过将信号的空间域表示转换成频率域(或其他类似的转换域)表示,并随后降低该转换域表示的某些通常较少可感知的频率分量从而减少了数字音频、图像和视频的大小。与减少图像或视频在空间域中颜色或空间分辨率或减少音域在时间域的分辨率相比,这通常产生数字信号少得多的可感知的质量降低。
[0005] 更具体说,图1中示出的典型的基于块转换的编解码器100将未压缩的数字图像的象素划分成固定大小的二维块(X1…Xn),每块可能与其他块交叠。进行空间一频率分析的线性转换120-121被应用到每一块,将块中的空间样本转换成通常表示在该块间隔上对应频带内数字信号的强度的一组频率(或转换)系数。为了压缩,转换系数可以有选择地量化130(即如通过丢弃系数值的低有效位比特或将较高分辨率数据集的值设成低分辨率来降低分辨率),并熵编码(entropy)或变长度编码130成压缩的数据流。在解码时,转换系统逆向地转换170-171,以近似地重建原始的颜色/空间采样的图像/视频信号(重建块[0006] 块转换120-121可定义成在大小为N的矢量x上的数学运算。最常用的运算是线性乘法,产生转换域输出y=Mx,M是转换矩阵。当输入数据任意长时,它被分段成N大小的矢量,且对每一段应用块转换。为了数据压缩的目的,选择可逆的块转换。换言之,矩阵M是可逆的。在多维情况(如图像和视频),块转换通常作为可分离的操作实现。沿着数据的每个维度(即行或列)可分别地应用矩阵乘法。
[0007] 为了压缩,转换系数(矢量y的分量)可以有选择地量化(即如通过丢弃系数值的低有效位比特或将较高分辨率数据集中的值映射成低分辨率来降低分辨率),并还熵编码或变长度编码成压缩的数据流。
[0008] 在解码器150中的解码时,如图1所示在解码器150方应用这些操作的逆(解量-1化/熵解码160和逆块转换170-171)。在重建数据时,应用逆矩阵M (逆转换170-171),作为转换域数据的乘子。在应用到转换域数据时,逆转换近似地重建原始的时间域或空间域数字媒体。
[0009] 在许多基于块转换的编码应用中,转换希望是可逆的,以根据量化因子同时支持有损和无损压缩。例如,对于无量的情况(通常表示成量化因子为1),利用可逆转换的编解码器能在解码时精确地再现输入数据。然而在这些应用中的可逆性要求限制了在设计编解码器方面的转换的挑选。
[0010] 诸如MPEG和Windows Media等的许多图像和视频压缩系统使用基于离散余弦转换(DCT)的转换。众所周知,DCT具有导致几乎最优数据压缩的令人满意的能量紧致特性。在这些压缩系统中,在压缩系统的编码器和解码器内的重建环路中采用逆DCT(IDCT)来重建各个图像块。DCT由N.Ahmed,T.Nalarajan和K.R.Rao,“Discrete Cosine Transforme”,IEEE Transaction on Computers,C-23(January 1974),pp 90-93 描 述。 在“IEEE Standard Specification forthe Implementations of 8×8 Inverse Discrete osine Trnform”,IEEEStd,1180-1990,December 6,1990中描述IDCT的示例实施。
[0011] 用于实现可逆2D数据压缩器的传统数据转换通常受到一个或多个下列主要缺点的困扰,
[0012] 1.在需要复杂的熵编码方案的各转换系数之间不相等的范数;
[0013] 2.对如DCT那样最优转换的不良近似;和
[0014] 3.高计算复杂性。
[0015] 2D转换的常规实现
[0016] 可分离的2D转换通常通过对数据的各行完成1D转换,随后对数据的列的1D转换来实现(反之亦然)。见A.K.Jain,Fundamentals of Digital ImagePrecessing,Prentice Hall,1989。在矩阵表示中,令T表示转换矩阵而X是2D数据。用T的可分离2D转换由下式中的Y定义:
[0017] Y=TXT’ (1)
[0018] 确实,行方向和列方向转换可以是不同的,例如,数据矩阵可以是非方形的(如大小为4×8),或行方向和列方向转换可分别是DCT和离散的正弦(DCT)转换。在此情况,前乘子和后乘子是不同的(T1和T2),且转换由下式给出。
[0019] Y=T1×T’2 (2)
[0020] 例如图2示出以两阶段实现的2D 4×4DCT。第一阶段中,使用4点1D DCT转换数据矩阵的诸列。在第二阶段,沿着行应用4点1D DCT。带着无限的算术精度,此次序可交换而不改变输出。
[0021] 4点1D DCT能作为在4个输入数据值上的乘法和加法运算的序列实现,如图3所示的信号流图表示。在此示意图中的值c和s分别是π/8的余弦和正弦。对有损编解码器此可分离的转换方法效果很好。无损编解码器更难以实现。即使用单位量化,上述结合其可分离的逆DCT或IDCT描述的可分离的2D DCT也不保证产生与原始输入的精确到比特的匹配。这是由于图3中的除数引起在编码器和解码器之间不能抵消的舍入误差。
[0022] 提升
[0023] 为了用基于块转换的编解码器实现无损压缩,必须用无损转换代替上述4×42D DCT。仅当每个1D转换是无损或可逆的,才可使用可分离的转换。虽然对可逆1D转换存在多种选择,但基于“提升(lifting)”的选择是最希望的。提升是使用逐次“剪切(share)”进行矩阵-矢量乘法的过程。剪切定义成操作数向量与矩阵的乘法,该矩阵是一个单位矩阵加上一个非零的非对角元素。在此过程期间的任何处可发生一个或多个矢量系统的符号逆转而不失一般性。
[0024] 过去,提升通过阶梯或格栅过滤器结构实现。提升或基于逐次剪切的技术已在图解法中使用。见A.Tanaka,M.Kameyame,S.Kazama,和O.Watanabe,“Arotation method for raster image using skew tramformation”,Proc.IEEEConf.On Computer Vision和Pattern Recognition,pages 272-277,June 1986;和A.W.Paeth,“A fast algorithm for general raster rotation,”Proceedings of Graphics Interface’86,pages 77-81,May1986。事实上可认为Gauss-Jordan消元法是提升的表现形式。
[0025] 一个简单的2点运算是由转换矩阵 给出的Hadamard转换。为实现基于提升(可逆的)1D Hadamard转换通常采用两种方法。第一个是如图4所示在提升步骤中实现归一化的或与比例无关的Hadamard转换。第二方法是如图5所示允许比例在两个转换系数之间不同。
[0026] 使用提升的问题
[0027] 提升不是没有问题。在图4所示的第一Hadamard转换方法中,两个转换系数被归一化。对实现诸如4或8点DCT的多级转换这是希望的。然而,此实现方法受到两个主要缺点的困扰一首先,每个2点Hadamard转换需要三个非一般的(即大计算量的)提升步骤,而其次,在诸提升步骤的舍入误差会导致低通能量“泄漏”到高频项,引起压缩效率的降低。在此第一方法中,使用近似 和 导致AC基本函数[0.75-0.7188]。虽然与要求的[0.70710.7071]的差异看来不是过分大,幅值64的DC信号产生泄漏到编码更花费时间的高频带的2单位的AC响应。
[0028] 第二方法(图5)使用普通的提升步骤。然而,低通项用 因子放大,而高通项用因子缩小(或相反)。两个系数的分辨率有1比特的不同。在两维中,与低-低项相比高-高项在分辨率中低2比特。串联的转换阶段只会增加差异。由于系数的不同范围熵编码更难以实现。
[0029] 总之,用基于提升的无损转换的问题是:
[0030] 1.在各转换系数之间可能的不相等比例,使得熵编码机制更复杂。
[0031] 2.对希望的转换基本函数的不良近似,这会引起如DC泄漏到AC带的不希望的效果。
[0032] 3.潜在的高计算复杂性,尤其是若基于提升的实现设计成很好近似于希望的转换。

发明内容

[0033] 数字媒体编码/解码系统基于可分离的2D块转换,它具有涉及现有技术转换的所述问题和缺陷的在此描述的各种实现。尤其是,可分离的2D转换及其逆的对的所述实现具有一系列为减少计算的复杂度(即减少非一般的运算的数目)安排的提升步骤。此转换对具有类似于DCT的能量紧致特性,并还是无损及与比例无关的。术语“无损”意为对转换的原始整个输入能被恢复而若假设无量化因素没有由于从其整体转换系数的逆转换产生的误差。“与比例无关”指的是转换对的基本函数被相等地确定比例,它也意味着最终的转换矩阵是正交的。
[0034] 此转换对的一个所述实现是4×4转换,但也能扩展到其他大小(如8×8)。此外,可使用转换对的串联来实现分级的金字塔结构和更大的转换。例如,一个所述实现使用转换的两级串联。在第二转换阶段,转换被应用到在宏功能块中产生的16个DC系数。因为转换类似于DCT,它可用于实现带有极好的速率一失真性能和压缩效率的无损到有损的数字媒体编解码器(即其量化参数能从无损设置到有损设置变化的编解码器)。
[0035] 本发明的另外特征和优点将从下面参考附图进行的实施例的详细描述明白。

附图说明

[0036] 图1是现有技术传统的基于块转换的编解码器的方框图。
[0037] 图2是现有技术中在两阶段实现的2D 4×4 DCT的方框图。
[0038] 图3是现有技术中ID 4×4 DCT的信号流图。
[0039] 图4是现有技术中使用提升的归一化的2-点Hadamard转换的信号流图。
[0040] 图5是现有技术中普通的2-点Hadamard转换转换的信号流图。
[0041] 图6是基于改善的可逆2D转换的编码器的流程图。
[0042] 图7是基于改善的可逆2D转换的解码器的流程图。
[0043] 图8是可逆2×2Hadamard转换的归一化的基于提升的实现的信号流图。
[0044] 图9是以C编程语言写的用于实现图8的归一化的可逆2×2Hadamard转换的程序表。
[0045] 图10是图8的归一化可逆2×2Hadamard转换之逆的信号流图。
[0046] 图11是Jodd转换的归一化的基于提升的实现的信号流图。
[0047] 图12是用于实现图11的归一化Jodd转换的以C编程语言写的程序表。
[0048] 图13是图11的Jodd转换之逆的归一化的基于提升的版本的信号流图。
[0049] 图14是Jodd-odd转换的归一化的基于提升的实现的信号流图。
[0050] 图15是用于实现图14的归一化Jodd-odd转换的以C编程语言写的程序表。
[0051] 图16是图14的Jodd-odd之逆的归一化的基于提升的版本的信号流图。
[0052] 图17是示出转换和逆转换运算的图中2×2数据的排序的示意图。
[0053] 图18是示出当1D垂直DCT和1D水平DCT分别应用到4×4数据输入的列和行时分别实现的2D DCT的信号流图。
[0054] 图19是示出通过在两个阶段交替水平和垂直转换操作实现的可逆的与比例无关的2D转换的信号流图。
[0055] 图20是示出在图6的编码器中实现改善的可逆2D转换的第一阶段中对其应用图8的2×2Hadamard转换的4×4的数据块的点的示意图。
[0056] 图21是示出在图6的编码器中实现改善的可逆2D转换的第二阶段中对其应用图8的2×2Hadamard转换、图11的Jodd转换、和图14的Jodd-odd转换的4×4转换系数块的点的示意图。
[0057] 图22是示出在图7的解码器中实现逆2D转换的第一阶段中对其应用图8的2×2Hadamard转换、图11的Jodd转换、和图14的Jodd-odd转换的4×4转换系数块的点的示意图。
[0058] 图23是示出用于图6的编码器和图7的解码器中的正和逆2D转换的转换系数的排序的示意图。
[0059] 图24是用于实现带有图6和图7的改善的空间—域交叠的转换的基于块转换的编解码器的合适计算环境的方框图。
[0060] 图25是用于图11和14中示出的可逆2×2转换的归一化基于提升的实现的结构的信号流图。

具体实施方式

[0061] 下面描述涉及到利用改善的可逆的与比例无关的2D转换的数字媒体压缩系统或编解码器。为说明起见,结合改善的转换的压缩系统的实施例是图像或视频压缩系统。另外,改善的转换也能加入到其他2D数据的压缩系统或编解码器,转换不要求数字媒体压缩系统以特定编码格式编码经压缩的数字媒体数据。
[0062] 1.编码器/解码器
[0063] 图6和7是在基于下面详述的改善的可逆的与比例无关的2D转换650的代表性2维(2D)数据编码器600和解码器700中采用的过程的普遍的示图。该图给出在加入2D数据编码器和解码器的压缩系统中使用和应用此转换的普通的和简化的图示。在基于此转换的可选编码器中,对2D数据压缩可使用比在此代表性编码器的解码器中示出的过程有附加的或更少的过程。例如,某些编码器/解码器也可包括颜色转换、颜色格式、比例编码、无损编码、宏功能块模式等。改善的2D转换允许压缩系统(编码器和解码器)根据基于量化参数从无损到有损变化的量化提供2D数据的有损和/无损的压缩。
[0064] 2D数据编码器600产生压缩的比特流620,它是作为该编码器的输入给出的2D数据610的更紧致表示(对典型输入而言)。例如,2D数据输入可以是图像、视频序列的帧,或其他具有二维的数据。2D数据编码器将输入数据铺垫(630)成宏块,在此代表性编码器中它们是16×16象素大小。2D数据编码器还将每一宏块铺垫成4×4块(632)。“正向交叠”操作符(640)被应用到在块之间的每条边界,此后使用可逆的与比例无关的转换(650)转换每个4×4的块。接着每个4×4转换块的DC系数660经过类似的处理链(铺垫、正向交叠、随后4×4的块转换)。最终的DC转换系数和AC转换系数被量化(670)、熵编码(680)并包装化(690)。
[0065] 解码器执行逆过程。在解码器方,从它们的相应包提取(710)转换系数比特,从中系数本身被解码(720)和解量化(730)。通过应用逆转换重新生成DC系数(740),而DC系数的平面(plane)使用穿过DC块边界应用的合适的平滑算符被“逆交叠”。接着,通过将4×4逆转换(750)应用到从该比特流解码的DC系数和AC系数(742)重新生成整个数据。
最后,在最终图像平面中的块边界是经过滤的逆向交叠(760)。这就产生重新构造的2D数据输出。
[0066] 2.改善的可逆的与比例无关转换的实现
[0067] 如 由 A.K.Jain,Fundamentals of Digital Image Processing,PrenticeHall.1989中所述,可分离的2D转换可作为在1D中排序的数据上操作的1D转换实现,产生类似的排序的矢量结果。由在可分离情况中使用的前乘子和后乘子的Kronecker乘积产生等价的转换矩阵。若x和y标记从在(2)中的它们的2D表示重新排离的数据和转换向量,它们的关系由下式给出:
[0068] y=Jx (3)
[0069] 其中J=Kron(T1,T2)。
[0070] 虽然等式(2)中示出的2D转换的可分离实现在计算上比等式(3)中的更有效(在渐近的意义上)存在某些情况,后者的表示导出希望的特性。例如,由于单级矩阵乘法(它本意上是在若干数字信号处理器(DSD)上支持的操作)基于等式(3)的实现比等式(2)具有较低的等待时间。对于这里描述的改善的可逆的与比例无关的转换,2×2步骤的1D表示导致与比例无关的可逆结构。
[0071] 此外,可分离的2D转换能作为较简单的1D转换的串联实现。假设转换矩阵T1和T2能如下分解
[0072] T1=T1A T1B
[0073] (4)
[0074] T2=T2A T2B
[0075] 矩阵乘法运算的关联性可如下用于重新排序2D转换(2)
[0076] Y=T1×T2′
[0077] =(T1A T1B)×(T2B′ T2A′)
[0078] =T1A(T1B×T2B′)T2A′ (5)导致串联的1D实现。
[0079] y=Kron(T1A,T2A)·Kron(T1B,T2B)·x (6)
[0080] 诸如DCT的转换可被公式化成基本的2点转动运算的串联。能使用(6)的结构公式化2D DCT,使具有某些希望的特性,这将在下面详述。
[0081] A.2D Hadamard转换
[0082] 作为1D运算实现的2D Hadamard转换通过Kronecker乘积产生,
[0083]
[0084] 有趣的是可能只使用普通的提升步骤实现对应等式(7)的与比例无关的可逆转换。此方式的实现示作在图8中的信号流图800。在图9中示出消除某些多余运算的相应C++代码。在此代码表900中,“swap(x,y)”是交换其自变量值的函数。
[0085] 从上述可见,能只使用普通的提升步骤公式化归一的可逆2D Hadamard转换,虽然对可争议的“更简单的”1D Hadamard情况这是不可能的!虽然转换矩阵本身是对合的(好JH是其本身的逆),无损重建要求提升步骤被小心地求逆使能精确地再现任何舍入影响。在图10中给出图8中结构800的逆1000-在此情况结构1000等同于正转换。注意,转换系数B和C在信号流图中被置换。
[0086] 在图6的编码器600中的可逆的与比例无关的2D转换650使用对4×4DCT的近似。下面描述证明了转换650的整个转换过程能作为三个基本2×2转换运算的串联实现,它们是2×2Hadamard转换和:
[0087] Odd rotate:Y=TR×TH′
[0088] Odd-odd rotate:Y=TR×TR′ (8)
[0089] 其中二点旋转矩阵TR如下给出
[0090]
[0091] 通过计算前转换和后转换矩阵的Kronecker乘积(近似到4位小数)获得等式(8)的1D实现
[0092]
[0093] 和
[0094]
[0095] 记号^表示希望的转换矩阵。从实际实现得出的近似不带此记号。对2×2Hadamard转换,希望的转换矩阵和它的近似是等同的。因而,JH用于标记在1D中实现的2×2Hadamard转换而没有任何二义性。接着,我们注意Jodd和Jodd-odd的提升实现。
[0096] B.Jodd的实现
[0097] Jodd转换1100的与比例无关的基于提升的实现示作图11中的信号流图和图12中的C++代码程序表1200。可以看到,第一和最后的提升阶段等同于Hadamard转换情况,除了普通的剪切处,在中间阶段应用两个非一般的提升旋转。每个非一般的旋转以三个步骤实现,乘3和移位3或4个比特。因而通过使用6个非一般的提升步骤,Jodd能以可逆的与比例无关的方式实现。
[0098] 得出的ID转换矩阵Jodd示于下面等式(12),它与(10)中 的原始公式近似一致。可以看到得到的矩阵的第二和第四行之和为零,这意味着没有DC泄漏到AC带。虽然需要的2D旋转只是在结构中的近似,但达到了希望的特性。
[0099]
[0100] 虽然旋转矩阵Jodd是对合的(即它是本身的逆),在信号流图或代码的两次顺序的应用中舍入误差不会消除。在信号流图或C++代码中通过提升步骤求逆导出Jodd的无损逆,以复制正转换方面的舍入误差。在图13中示出Jodd的逆1300的信号流图一代码能类似地导出。
[0101] C.Jodd-odd的实现
[0102] Jodd-odd转换1400是两次旋转构成的,它们均不是Hadamard转换。有趣的是Jodd-odd能用比Jodd更少的非一般提升步骤实现。这是由于TR与其本身的Kronecker乘积的对称属性。在图14和15中分别示出Jodd-odd转换1400的信号流图及其C++代码的程序表1500。
[0103] 可以看到,为实现Jodd-odd只借助三个非一般提升步骤实现的一个非一般的旋转是需要的。此旋转对应于与比例无关的lD 2一点Hadamard转换。
[0104]
[0105] 关于这里考虑的其他转换,在等式(13)中表示的Jodd-odd是对合的,虽然不是其本身的精确到比特的逆。如图16所示,通过对用于正转换的信号流图的求逆获得Jodd-odd的无损的逆1600。
[0106] D.上述2×2转换实现的标记法和推导
[0107] 在这里使用这些三个可逆的与比例无关的转换的可逆的与比例无关的2D转换的描述中应用下列要点。首先,在图17中示出导致上面信号流图和C++代码的2×2数据的排序1700。在左边示出空间域点,在右边示出对应的频率域点。这里引入使用4个灰度级表示4个数据点的颜色编码,以便于下面对可逆的与比例无关的2D转换的描述。
[0108] 2点转换或旋转常常定义成下述运算
[0109]
[0110] 而不是对合形式
[0111]
[0112] 这两个公式基本上等同,因为它们仅在第二转换系数的符号上有差别。这里使用后一个表示(15),虽然本文档中的整个推导同样可应用到前一公式(14)。
[0113] 上面定义的基本2×2转换JH、Jodd和Jodd-odd的结构通过注意到每个2点转换是旋转而被构造。此外,二个2点旋转的Kronecker乘积如下给出:
[0114]
[0115] 然后我们定义算符H如下:
[0116]
[0117] H代表非归一化双蝶形运算,并能使用提升有效地实现。
[0118] 下面的分解有:
[0119]
[0120] 基于此,类型T的Kronecker乘积能作为3个阶段的串联实现:
[0121] A.通过使用提升步骤的H定义的双蝶形运算。
[0122] B.在第一对组件之间及在第二对组件之间的2点旋转,和
[0123] C.在步骤A中执行的双蝶运算的逆。
[0124] 对专门的情况JH,甚至存在更简单的分解,它在图8中示作信号流图800,并如上描述。对其他情况(如Jodd和Jodd-odd),最终结构能归纳为如图25所示的流图2500。
[0125] 注意上述转换(还有它们的逆)的信号流图,观察在它们结构中的基本相似性。转换的第一阶段是在a-d和b-c系数之间的提升运算。类似地,最后阶段是逆提升过程(忽视符号和系数交换)。相应地,逆转换的第一阶段是在A和D之间和在B和C之间的提升运算,在最后阶段是逆运算。在对角元素之间的提升步骤是这里给出的组合的2D 2×2转换的显著特征。
[0126] 下一节讨论近似4×4DCT/IDCT的无损的与比例无关的转换的结构。虽然在此详细的技术讨论中给出转换的一个示例实施例,使能用带有其他2×2的基本可逆的基于提升的转换的附加定义的同样过程,以产生带有希望特性的更高难数的可逆转换的实施例。
[0127] E.无损的,与比例无关的转换
[0128] 如图3的信号流图中所示,4点DCT能缩减成4个蝶形运算的序列。第一阶段包括在输入数据上执行2点Hadamard运算(即输入数据索引号0和3的一个2点Hadamard运算;和输入索引号1和2的第二个Hadamard运算)的两个蝶形运算。第二阶段包括产生偶数频率分量(索引号0和2)的第一阶段的低通结果的一个2点Hadamard运算和产生奇数频率分量(索引号1和3)的一个2点旋转π/8。
[0129] 在两个维度中,DCT能分别地实现:每个4×4输入数据的列的垂直1D 4点DCT;随后是各行的水平1D 4点DCT(或相反)。在图18中这画成可分离的DCT实现1800。另外,如图19的交叉DCT实现1900所示,使用等式(5)的原理,上述两个1D DCT阶段可在水平和垂直方向之间交替。
[0130] 此外,在遵循上述方法时可进一步组合相应的垂直和水平阶段。例如,第一阶段是在“内部”和“外部”输入元素上的2点Hadamard转换。水平和垂直阶段能合并成在16个输入数据元素上的4次应用2×2 2D Hadamard转换,每次转换被应用到输入点的对称组。同样地,第二阶段的水平和垂直步骤可合并成一个2×2Hadamard转换和三个2×2转换,其中两个是移项。应看到,后三个2×2转换实际上是以前定义的Jodd和Jodd-odd转换的2D再映射。
[0131] 更具体说,通过重新安排各转换运算成2×2Hadamard、Jodd和Jodd-odd转换的排列实现可逆的与比例无关的2D转换650(图6)。此转换650的两个阶段分别如图20和图21中所示那样完成。每个阶段包括4个2×2转换,它们可在阶段中以任何次序、或同时执行。
[0132] 对逆2D转换750(图7),诸阶段次序上相反,且在每个转换阶段内的步骤使用在正转换过程中的步骤的逆。如前指出,可逆2×2Hadamard转换JH在精确到比特或无损的意义上是其自己的逆。因而,逆光子(Photon)转换的第二阶段仅是正光子转换的第一阶段,如图20所示。在图22中画出逆光子转换的第一阶段2200。在此阶段的4个步骤(对于正转换情况,这能以任意次序或同时执行)应用如前定义的JH、Jodd和Jodd-odd的逆,并重映射回到2D 2×2空间。
[0133] 在遵循图20和图21中示出的改善的正2D转换的步骤之后,得到的转换系数如图23所示那样排序。在那个次序中,对于使用图22和20中的步骤逆转换的系数采取同样的排序2300。
[0134] 正2D转换650的上述改善实现包括对每个4×4块的JH的5次应用、Jodd的2次应用和Jodd-odd的1次应用。在逆2D转换750的实现中包括这些转换同样数目的应用。因此,对每一块非一般提升步骤步骤的总数是5×0+2×6+1×3=15,以实现无损的正或逆2D转换。这是约每个象素1个非一般步骤。非一般步骤是公式(3×x+r)>>k的运算,其中x是运算数,r和k是确定舍入和比特移位的常数。k是2、3或4。类似地,每个块存在17个单位置的右移位(即x>>1)。加、减和非操作不计在此总计之中。
[0135] 在比较中,考虑在图18中示出的2D DCT的可分离的实现1800。假设,每个4点DCT使用3个如图3所示的2点归一化Hadamard运算实现,且使用3个非一般提升步骤实现旋转π/8。对正或逆转换每个4×4块的非一般提升运算的总数是2×4×3=24。单个位置右移的总数也是24。这些数目比改善的正转换650和逆转换750的实现高约50%,不考虑最终的转换产生带范围在1/4到2的(或若避免无理数范围的基本函数,到4)范数的基本函数的事实。相反,改善的转换650的所有基本函数是单位范数。
[0136] F.对4:2:0颜色空间的改善的转换
[0137] 在编码器600(图6)和解码器700(图7)的一个示例实施例中,使用YUV4:2:0颜色空间来表示在图像(或视频帧)中象素的颜色。在此示例的编解码器中,在YUV 4:2:0颜色空间中的宏功能块被定义成亮度(Y)通道中象素的16×16铺垫块,和在色度(U和V)通道中的8×8铺垫块。这些被进一步分成4×4块,它们使用上述转换650被编码转换。4×4转换650被应用到亮度通道的DC系数。然而,在一个宏功能块中只可得到2×2色度样本。然后,示例的编解码器将JH应用于每个宏功能块中DC色度值应用,如上所述,JH是可逆的与比例无关的2×2Hadamard转换。因此,保持示例编解码器格式的宏功能块结构,且为了处理4:2:0格式在编解码器中无需引入另外的转换。
[0138] G.最小化舍入误差
[0139] 在包括右比特移位的JH、Jodd和Jodd-odd转换的提升步骤中引入舍入误差。这些舍入误差具有已知的偏差,并能在转换过程中建立。例如,已知,公式x+=(y>>1)的步骤与其数学等价x=x+y/2相比导致x的值中-1/4的偏差。这是因为(y>>1)是下舍入的除以2,若y是偶数它是精确的,若y是奇数差1/2。因而概率上看,它偏差-1/4。在包括提升的整数到整数转换中舍入误差是不可避免的,但希望在整个系统中使偏差极小化。
[0140] 前面示作C++编码片断的JH、Jodd和Jodd-odd的公式对被除或右比特移位的操作数增加了变化的因素。选择这些因素使偏差最小化。尤其是,在使用图9中C++代码表900的JH的(到无偏差输入的)第一阶段运算之后在4个转换系数中的偏差可示作[1/4-1/4-1/4-1/4]。在改善的2D转换650(图6)中的JH的第二阶段在第一阶段的DC值上运算,即在已经偏差1/4的系数上运算。第二阶段运算的结果产生[3/4-1/4-1/4-1/4]的偏差。因为第一系数是DC的DC,可预期是大的,且3/4的相对较高的偏差不影响编码性能。
[0141] 为了最小化转换偏差,在Jodd和Jodd-odd中的非一般提升步骤提供选择舍入因素的自由度。对Jodd-odd的C++编码表1500(图15)示出,有时候偏离中心的舍入规则(如a+=(3b+5)>>3)导致更小的整体偏差,尤其是当输入数据本身偏差时。对改善的2D转换步骤Jodd和Jodd-odd,所有输入偏差到-1/4。
[0142] 通常,编解码器的定义限于位流解码器的定义。此规则的一个例外是对无损编解码器作出的,因为为了无损重建的输入数据编码器和解码器必须完全匹配。在有损到无损的编解码器的情况中,这在编码器和解码器双方定义。然而,当编码器以纯有损方式操作时,某些截断或增强是可能的,它给出比在编解码技术规范中定义的基线性能更好的性能(在速率一失真,或计算周期计算方面)。
[0143] 改善编码器性能的一个方法关系到转换系数偏差。在编码器600/解码器700的某些实施例中通过对每个4×4的块完成下列过程有可能减少偏差的影响:
[0144] 1.通过乘m=2k(通常m=4效果很好)放大4×4块。
[0145] 2.在该块上完成改善的2D转换650。
[0146] 3.使用量化器量化该块,量化器是最初希望的量化参数的m倍(例如若在步骤1希望的QP是8且m=4,则使用量化因子(QP)32)。
[0147] 在解码器700方没有改变,在同一比特速率下可能有更好的PSNR数。当然,对无损编码它不能用。
[0148] 3.计算环境
[0149] 上述带有改善的可逆的与比例无关的2D转换的编解码器可以在各种执行数字媒体信号处理的设备的任一个上执行,包括:计算机;图像和视频记录、传输和接收设备;便携式视频播放器;视频会议等。数字媒体编码技术能在硬件线路中和在如图24所示的计算机或其他计算环境中执行的数字媒体处理软件中实现。
[0150] 图24示出在其中实现描述的实施例的合适的计算环境2400的一般例子。计算环境(2400)对本发明的使用或功能范围不试图提出任何限制,因为本发明能在各种通用或专用计算中实现。
[0151] 参考图24,计算环境(2400)至少包括一个处理单元(2410)和存储器(2420)。在图24中,此大部分基本配置(2430)包括在虚线内。处理单元(2410)执行计算机可执行指令并可以是真实的或虚拟的处理器。在多处理系统中,多处理单元执行计算机可执行指令以增加处理能力。存储器(2420)可以是易失存储器(如寄存器、高速缓冲器、RAM)、非易失存储器(如ROM、EEPROM、闪存等)或两者的某种组合。存储器(2420)存储实现所述编码器/解码器和转换的软件(2480)。
[0152] 计算机环境可具有另外特征。例如,计算环境(2400)包括存储装置(2440)、一个或多个输入设备(2450)、一个或多个输出设备(2460)、和一个或多个通信连接(2470)。诸如总线、控制器、或网络的互连机制(未示出)互连计算环境(2400)的诸组件。通常,操作系统软件(未示出)为其他在计算环境(2400)中执行的软件提供操作环境,并协调计算环境(2400)的诸组件的活动。
[0153] 存储装置(2440)能是可移除的或不可移除的,并包括磁盘、磁带或盒式磁带、CD-ROM、CD-RW、DVD、或任何其他介质,它们有用于存储信息并能在计算环境(2400)中被访问。存储装置(2440)存储用改善的SDLT实现编解码器的软件(2480)指令。
[0154] 输入设备(2450)能是接触输入设备,如键盘、鼠标、输入笔或轨迹球;语音输入设备;扫描设备;或其他提供输入到计算环境(2400)的设备。对声频,输入设备(2450)可以是声卡或以模拟或数字方式接收音频输入的类似设备、或提供音频样本给计算环境的CD-ROM阅读器。输出设备(2460)能是显示器、打印机、扩音器、CD-写入器或从计算设备(2400)提供输出的其他设备。
[0155] 通信连接(2470)使能通过通信媒体通信到另外计算实体。通信媒体传递诸如计算机可执行指令、存储的音频或视频信息、或其他调制数据信号的数据等信息。调制数字信号是具有以在信号中编码信息的方式设置或改变的一个或多个特征的信号。例如且不作限止,通信媒体包括用电、光、RF、红外、声音、或其它载体实现的有线或无线技术。
[0156] 这里的数字介质处理技术能在计算机可读介质的一般情况中描述。计算机可读介质是在计算环境中能被访问的任何可用介质。例如而非限止,对计算环境(2400),计算机可读介质包括存储器(2420)、存储装置(2440)、通信媒体、和上述的任何组合。
[0157] 这里的数字介质处理技术能以诸如包括在程序模块中在真实或虚拟的目标处理器上的计算环境中执行的计算机可执行指令的一般环境中描述。通常,程序模块包括例程、程序、库、对象、类、组件、数据结构等,它们执行特定任务或实现特定的抽象数据类型。如在各种实施例希望那样,程序模块的功能可在程序模块之间组合或分割。程序模块的计算机可执行指令可在本地或分布式计算环境中执行。
[0158] 为表示的原因,详细描述使用如“确定”、“生成”、“调节”、和“应用”等术语以描述在计算环境中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类执行的动作混淆。对应这些术语的实际计算机操作按其实现而改变。
[0159] 考虑可应用本发明原理的许多可能的实施例,我们要求,可能落入下面权利要求及其等价物的范围和精神的所有那些实施例为我们的发明。