优化的去块滤波器的制作方法

文档序号:7885332阅读:242来源:国知局
专利名称:优化的去块滤波器的制作方法
技术领域
本发明涉及视频编码,以及更具体地涉及使用内插滤波器作为运动补偿编码一部分的视频编码系统。
背景技术
视频编解码器通常使用离散余弦变换(“DCT”)对像素的块(这里称为“像素块”)进行处理来对视频帧进行编码,非常类似于用于静态图像的原始JPEG编码器。初始帧(称作“内”帧)被编码并作为独立帧被发送。被建模为随着场景中对象的小运动而缓慢改变的后续中贞使用被称作运动补偿(“MC”)的技术以巾贞间模式(inter mode)被高效编码,在运动补偿中,将像素块相对于其在先前编码帧中的位置的位移作为运动向量,与预测的像素块和来自源图像的像素块之间的差的编码表示一起被发送。下面提供了运动补偿的简单概述。图1和2示出了运动补偿图像编码器/解码器系统的方块图。该系统将变换编码(像素的像素块的DCT形式)与预测编码(差分脉冲编码调制(“PCM”)形式)结合,从而降低压缩图像的存储和计算,同时给出高的压缩度和自适应度。因为运动补偿难以在变换域中执行,所以帧间编码器的第一步是创建运动补偿预测误差。该计算要求一个或多个帧存储在编码器和解码器二者中。得到的误差信号使用DCT被变换,由自适应量化器进行量化,使用可变长度编码器(“VLC”)进行熵编码,以及被缓存以用于通过信道传输。运动评估器如图3中所示工作。在其最简单的形式中,当前帧被划分为运动补偿块,在此被称作“me块”,其具有恒定大小,例如16X16或8X8。然而,常常也使用可变大小me块,尤其是在较新的编解码器中,诸如H.264.1TU-T建议H.264、高级视频编码。事实上,非矩形的me块也已经被研究和提出。me块的大小通常大于或等于像素块的大小。同样,在运动补偿的最简单形式中,先前解码帧被用作参考帧,如图3中所示。然而,许多可能的参考帧之一也可以被使用,尤其是在诸如H.264的较新编解码器中。事实上,使用适当的信令,每个me块可以使用不同的参考帧。将当前帧中的每个me块与参考帧中的一组位移的me块进行比较,来确定哪一个me块最好地预测了当前me块。当找到最佳匹配的me块时,规定参考me块的位移的运动向
量被确定。
_7]利用空间冗余因为视频是一系列静态图像,所以可以使用类似于JPEG的技术实现一定压缩。这样的压缩方法被称作帧内编码技术,其中视频的每一帧被单独且独立地压缩或编码。帧内编码利用了存在于帧的相邻像素之间的空间冗余。仅使用帧内编码来编码的帧被称作“1-帧”。利用时间冗金在上述的单向运动估计(被称作“前向估计”)中,将要编码的帧中的目标me块与被称作“参考帧”的过去帧中的一组具有相同大小的me块进行匹配。参考帧中“最匹配”目标me块的me块被用作参考me块。然后计算目标me块和参考me块之间的差作为预测误差。预测me块通常不与参考帧中的编码me块边界对准。该最匹配参考me块的位置由描述其与目标mc块之间的位移的运动向量来表示。该运动向量信息也被编码并连同预测误差一起被发送。使用前向预测来编码的帧被称作“P-帧”。预测误差本身使用上面总结的基于DCT的帧内编码技术来发送。双向时间预测丨双向时间预测,也称作“运动补偿内插”,是现代视频编解码器的关键特征。用双向预测来编码的帧使用两个参考帧,通常一个是过去的,一个是未来的。然而,许多可能的参考帧中的两个也可以被使用,尤其在诸如H.264的较新编解码器中。事实上,使用适当的信令,每个me块可以使用不同的参考帧。双向编码帧中的目标me块可以由来自过去参考帧的me块(前向预测)、或来自未来参考帧的me块(后向预测)、或两个me块(各来自一个参考帧)的平均值(内插)来预测。在每种情况下,来自参考帧的预测me块与运动向量相关联,以使得每个me块最多两个运动向量可以被双向预测使用。对于双向预测帧中的me块的运动补偿内插如图4中所示。使用双向预测编码的帧被称作“B-帧”。双向预测提供了许多优点。主要的一个是所获得的压缩通常高于单独由前向(单向)预测获得的压缩。为了获得相同图片质量,双向预测帧可以使用比仅使用前向预测的帧更少的比特来编码。然而,双向预测在编码处理中引入了额外的延迟,因为帧必须不按顺序地编码。此夕卜,其必须承担额外的编码复杂性,因为me块匹配(计算上最密集的编码过程)对于每个目标me块必须执行两次,一次使用过去参考巾贞,一次使用未来参考中贞。双向预测的典型编码器架构图5示出了典型的双向视频编码器。假设帧重排序发生在编码前,即,用于B-帧预测的1-帧或P-帧必须在任何相应的B-帧之前被编码和发送。在该编解码器中,B-帧不被用作参考帧。如果改变架构,它们也可以用作参考帧,如在H.264中那样。输入视频被提供至运动补偿估计器/预测器,其将预测提供至减法器的负输入端。对于每个me块,帧间/帧内分类器然后将输入像素与减法器的预测误差输出进行比较。通常,如果均方预测误差超过均方像素值,则判定为帧内me块。涉及像素和预测误差二者的DCT的更复杂的比较会产生稍微更好的性能,但是通常被认为不值成本。对于帧内me块,预测被设置为零。否则,其如上所述来自预测器。预测误差然后在被编码之前通过DCT和量化器,被多路复用并被发送至缓冲器。量化后的等级被逆量化器转换为重建的DCT系数,然后由逆DCT单元(“IDCT”)对该逆值进行变换以产生编码的预测误差。加法器将预测与预测误差相加并将结果修剪至例如O至255的范围,来产生经编码的像素值。对于B-帧,运动补偿估计器/预测器使用图片存储器中的先前帧和未来帧二者。对于1-帧和P-帧,由加法器输出的编码像素被写入下一图片存储器,同时旧像素被从下一图片存储器拷贝到前一图片存储器。实践中,这通常是通过简单地改变存储地址来实现的。同样,在实践中,编码像素可以在进入图片存储器之前被自适应去块(deblocking)滤波器滤波。这改进了运动补偿预测,尤其是对于编码伪影可能可见的低比特率情况。编码统计处理器与量化器适配器一起控制输出比特率,并尽可能地优化图片质量。双向预测的典型解码器架构图6示出了典型双向视频解码器。其具有与使用逆处理的编码器的像素重建部分相对应的结构。假设帧重排序发生在解码和视频输出之后。内插滤波器可以位于运动补偿预测器的输出端,如在编码器中一样。分数运动向暈位移图3和图4示出了参考帧中相对于在当前帧中被解码的当前me块的位置具有垂直和水平位移的参考me块。位移量由二维向量[dx, dy]表示,称作运动向量。运动向量可以被编码和发送,或者它们可以从已经在解码器中的信息估计出,在这一情况下它们不被发送。对于双向预测,每个发送的me块需要两个运动向量。以最简单的形式,dx和dy是有符号的整数,表示偏离参考me块的水平方向像素数量和垂直方向行数量。在这种情况下,参考me块仅通过从参考存储器中读取适当像素来获得。然而,在较新的视频编解码器中,已经发现允许dx和dy为分数值是有利的。典型地,它们允许位移精度下至四分之一像素,即整数H■— 0.25,0.5或0.75。分数运动向量比简单从参考存储器读取像素具有更多要求。为了获得参考存储像素之间的位置的参考me块值,有必要在它们之间内插。简单双线性内插可以很好地工作。然而,在实践中,已经发现使用特别为该目的设计的二维内插滤波器是有利的。事实上,为了性能和实用性,滤波器往往不是移位不变滤波器(shift-1nvariant filter)。相反,分数运动向量的不同值可以使用不同内插滤波器。使用自适应内插滤波器的运动补偿最佳的运动补偿内插滤波器取决于许多因素。例如,在纯平移时,场景中的对象可能不在移动。可能有既在二维也在三维的对象旋转。其他因素包括缩放、相机运动和由阴影或改变照明引起的光照改变。相机特性可能由于其传感器的特有性质而不同。例如,许多消费类相机固有是隔行的,它们的输出可能被去隔行并且被过滤来提供没有隔行伪影(artifact)的看起来舒服的图片。低光照条件可能导致增加每帧的曝光时间,导致移动物体的运动依赖型模糊。像素可能不是正方形的。因此,在许多情况下,如果运动补偿内插滤波器可以适应这些和其他外部因素,则可以具有改进的性能。在这样的系统中,内插滤波器可以通过在每一帧上最小化当前me块与其相应参考me块之间的均方误差来设计。这些被称作维纳滤波器。滤波器系数然后可以在每帧的开始处被量化和发送,以用在实际运动补偿编码中。在H.264和类似编解码器中,仅允许周期性调节少数几个去块 参数。此外,由于滤波器操作是如此的非线性,所以普通的维纳过滤器设计不能被应用。因此,在本领域中,需要用于在编码过程中选择去块滤波器的参数的高效机制。


图1是传统视频编码器的框图。图2是传统视频解码器的框图。图3示出了运动补偿预测的原理。图4示出了双向时间预测的原理。图5是传统双向视频编码器的框图。图6是传统双向视频解码器的框图。图7示出了适于与本发明的实施例一起使用的编码器/解码器系统。图8是根据本发明的一个实施例的视频编码器的简化框图。图9示出了根据本发明的一个实施例的方法。图10示出了根据本发明的一个实施例的梯度搜索方法的示例操作。图11示出了根据本发明的另一实施例的方法。图12示出了根据本发明的另一实施例的梯度搜索方法的示例操作。图13是根据本发明的实施例的视频解码器的简化框图。
具体实施例方式本发明的实施例提供了用于为编码视频选择去块参数的迭代方法。根据该方法,解码图片可以根据与多维去块向量相关联的参数被去块,并且可以由此估计被称作“去块误差”的误差。如果估计的误差超过预定阈值,则可以创建替换去块向量,每个替换去块向量在相应维度上从当前去块向量前进。该方法可以根据每个前进的向量对编码图片进行去块,并且可以从每个前进的向量的每次去块估计误差。最终,去块向量可以根据从各个向量维度的估计的去块误差得出的梯度而被修改,以用于下一迭代。该基于梯度的搜索方法可以以高效方式收敛到一组最终的去块参数。图7示出了适用与本发明一起使用的编码器/解码器系统100。在此,编码器110通过网络130与解码器120通信。解码器110可以对源视频的数据流进行编码操作,源视频可以经由相机设备在编码器处本地捕捉,或从存储设备(未示出)获取。编码操作降低源视频数据的带宽,从其产生编码视频。编码器110可以通过网络130将编码视频发送至解码器120。解码器120可以逆向执行由编码器110执行的编码操作,来从编码视频数据产生恢复的视频数据流。由编码器110执行的编码操作通常是有损处理,因此,恢复的视频数据可能是源视频数据的不精确复制。解码器120可以在显示设备上呈现恢复的视频数据,或其可以存储恢复的视频数据用于以后使用。如上所述,网络130可以将来自编码器110的编码视频数据传输至解码器120。网络130可以作为各种有线或无线通信网络、计算机网络或其组合被提供。此外,网络130可以作为存储单元被提供,例如电、光或磁存储设备。图8是适于与本发明一起使用的编码器的简化框图。编码器200可以包括基于块的编码链210和预测单元220。基于块的编码链210可以包括减法器212、变换单元214、量化器216和可变长度编码器218。减法器212可以接收来自源图像的输入me块,以及来自预测单元220的预测me块。其可以从输入me块减去预测me块,产生像素残差块。变换单元214可以根据空间变换(典型地为离散余弦变换(“DCT”)或小波变换)来将me块的残差数据转换为变换系数阵列。量化器216可以根据量化参数(“QP”)截断每个块的变换系数。用于截断的QP值可以在信道中被发送至解码器。可变长度编码器218可以根据熵编码算法(例如可变长度编码算法)来对经量化的系数编码。可变长度编码之后,每个me块的编码数据可以存储在缓冲器240中以等待通过信道发送至解码器。预测单元220可以包括:逆量化单元222、逆变换单元224、加法器226、去块滤波器228、参考图片高速缓存230、运动补偿预测器232和运动估计器234。逆量化单元222可以根据量化器216使用的QP来量化编码视频数据。逆变换单元224可以将重新量化的系数变换到像素域。加法器226可以将从逆变换单元224输出的像素残差与来自运动补偿预测器232的预测运动数据相加。去块滤波器228可以在恢复的me块和同一帧的其他恢复的me块之间的接缝处对恢复的图像数据进行滤波。参考图片高速缓存230可以存储恢复的帧,用于在编码后续接收的me块的过程中作为参考帧使用。运动补偿预测器232可以产生预测me块以供块编码器210使用。运动估计器234可以估计被编码的源图像与存储在参考图片高速缓存230中的参考帧(一个或多个)之间的图像运动。其可以选择将被使用的预测模式(例如,单向P-编码或双向B-编码),并产生用于在这样的预测编码中使用的运动向量。该运动向量可以被输出至运动补偿预测器232和信道。作为响应,运动补偿预测器232可以从参考图片高速缓存230获取预测的me块,并且可以将该预测块输出至块编码器210。可选地,运动补偿预测器232可以在将所获取的me块输出至块编码器210之前对其执行内插滤波(未示出)。去块过滤器228的操作可以基于控制参数而改变。在编码器处,控制逻辑器(未示出)可以检查由预测单元产生的编码图像数据,并且可以将编码图像数据与源图像的数据进行比较来确定哪些参数使得编码误差最小。在一个实施例中,该选择处理可以通过对候选参数值进行梯度搜索处理而被增强,以便快速收敛至一组适当参数。一旦适当参数被选择,参数标识符可以被发送至解码器供解码使用。例如,用于图片中的每个me块或用于较大实体(例如宏块或片段)的去块参数可以被发送。去块参数可以与编码me块的其他数据(例如,运动向量、量化参数和编码残差)一起被发送。图9示出了根据本发明的一个实施例的方法300。该方法300可以开始于编码和解码源图片(框310),然后使用与当前去块向量相关联的去块参数对图片执行去块(框320)。在方法300的第一次迭代中,该向量可以被设置为默认值。方法300可以计算与经去块的图片相关联的误差(框330),并将该误差与预定阈值进行比较(框340)。如果误差小于预定阈值,则方法300可以发送编码图片数据和当前去块向量至解码器(框350),并且方法300可以终止于当前图片。去块参数可以被认为代表具有多个值的N维向量。例如,H.264定义了两个参数,其可以被图像编码中的编码器定义:slice_alpha_c0_offset_div2和slice_beta_offset_div2 (在此称作“ α ”和“ β ”)。在应用至H.264实施方式时,去块参数可以被认为是二维向量。未来的编码协议可能定义附加类型的去块参数,当在图9的方法300的上下文中考虑时,其可以被表示为3维、4维或更大维度的空间。当框340的比较确定误差超过阈值时,方法300可以执行针对新的去块向量的多维搜索。具体地,方法300可以在每个维度i上分别增加当前向量(框360)。方法300使用与每个增加后的向量相关联的参数执行已解码图片的去块(框370),并计算原始图片和去块图片之间的误差(框380)。在N维向量空间中,可以存在N个去块图片和从其获得的N个误差值。方法300可以通过将在框330获得的误差值与在框380从每个维度计算获得的误差进行比较来计算梯度值(框390)。方法300可以从梯度产生新的向量(框400)并且执行另一迭代分析,从而返回至框320。梯度向量可以是N维向量,其中每个维度i的分量可以通过将来自框330的去块误差和从框380获得的维度误差进行比较来获得。例如,对于梯度向量的每个分量Gi,梯度向量G可以如下计算:G=LG1, G2,…,Gn],其中Gi=erri-errDBLX方法300还可以如下产生新的去块向量V:
权利要求
1.一种为编码视频确定去块参数的方法,迭代地包括: 根据去块向量执行解码图片的去块; 从已去块的解码图片估计去块误差; 对于多个向量维度中的每一个,如果所估计的误差超过预定阈值,则: 在相应维度上使去块向量前进; 根据前进后的维度对解码图片进行去块;以及 从根据前进后的维度去块的解码图片估计去块误差; 根据从所述多个向量维度的所估计的去块误差得出的梯度,修改用于下一次迭代的去块向量。
2.根据权利要求1所述的方法,还包括:如果所估计的误差不超过所述阈值,则将编码图片数据和去块向量的标识符发送至解码器。
3.根据权利要求1所述的方法,还包括:重复所述方法直到去块误差小于预定阈值。
4.根据权利要求1所述的方法,在所述方法的第二次迭代中还包括: 估计第一次迭代和第二次迭代之间所估计的误差的变化率; 如果变化率小于第二阈值,则将编码图片数据和去块向量的标识符发送至解码器。
5.根据权利要求1所述的方法,还包括:如果所述梯度的幅值小于第二阈值,则将编码图片数据和去块向量的标识符发送至解码器。
6.根据权利要求1所述的方法,在所述方法的后续迭代中还包括: 确定修改后的去块向量是否与在所述方法的先前迭代中使用的去块向量匹配, 如果匹配,则将编码图片数据和去块向量的标识符发送至解码器。
7.根据权利要求1所述的方法,其中所述前进包括在相应维度上增加去块向量。
8.根据权利要求1所述的方法,其中所述前进包括:在由先前迭代的梯度确定的方向上在相应维度上调节去块向量。
9.根据权利要求1所述的方法,其中第一次迭代的去块向量被设置为默认值。
10.根据权利要求1所述的方法,其中第一次迭代的去块向量被设置为通过对先前图片执行所述方法获得的最终去块向量值。
11.根据权利要求1所述的方法,其中第一次迭代的去块向量被设置为通过对与当前图片具有共同编码分配的先前图片执行所述方法获得的最终去块向量值。
12.根据权利要求1所述的方法,其中第一次迭代的去块向量被设置为通过对与当前图片具有类似运动特性的先前图片执行所述方法获得的最终去块向量值。
13.根据权利要求1所述的方法,其中已去块图片的所估计的误差由已去块的解码图片与未滤波的源图片数据的比较来确定。
14.根据权利要求1所述的方法,其中已去块图片的所估计的误差由已去块的解码图片与已滤波的源图片数据的比较来确定。
15.一种视频编码方法,包括: 通过运动补偿对源图片的块进行编码; 解码参考图片的块,所述解码包括: 通过迭代的基于梯度的搜索处理,估计去块滤波操作的参数;以及 根据最终估计的去块参数, 对已解码的参考图片进行去块滤波;在参考图片存储器中存储已去块的图片;以及 发送编码图片的数据和最终估计的去块参数至信道。
16.根据权利要求15所述的方法,其中所述搜索处理迭代地包括: 根据去块向量执行解码图片的去块; 从已去块的解码图片估计去块误差; 对于多个向量维度中的每一个,如果所估计的误差超过预定阈值,则: 在相应维度上使去块向量前进; 根据前进后的维度对解码图片进行去块;以及 从根据前进后的维度去块的解码图片估计去块误差; 根据从所述多个向量维度的所估计的去块误差得出的梯度,修改用于下一次迭代的去块向量。
17.根据权利要求16所述的方法,还包括:如果所估计的误差不超过所述阈值,则将编码图片数据和去块向量的标识符发送至解码器。
18.根据权利要求16所述的方法,还包括:重复所述方法直到去块误差小于预定阈值。
19.根据权利要求16所述的方法,在所述方法的第二次迭代中还包括: 估计第一次迭代和第二次迭代之间所估计的误差的变化率; 如果变化率小于第二阈值,则将编码图片数据和去块向量的标识符发送至解码器。
20.根据权利要求16所述的方法,还包括:如果所述梯度的幅值小于第二阈值,则将编码图片数据和去块向量的标识符发送至解码器。
21.根据权利要求16所述的方法,在所述方法的后续迭代中还包括: 确定修改后的去块向量是否与在所述方法的先前迭代中使用的去块向量匹配, 如果匹配,则将编码图片数据和去块向量的标识符发送至解码器。
22.根据权利要求16所述的方法,其中所述前进包括在相应维度上增加去块向量。
23.根据权利要求16所述的方法,其中所述前进包括:在由先前迭代的梯度确定的方向上在相应维度上调节去块向量。
24.根据权利要求16所述的方法,其中第一次迭代的去块向量被设置为默认值。
25.根据权利要求16所述的方法,其中第一次迭代的去块向量被设置为通过对先前图片执行所述方法获得的最终去块向量值。
26.根据权利要求16所述的方法,其中第一次迭代的去块向量被设置为通过对与当前图片具有共同编码分配的先前图片执行所述方法获得的最终去块向量值。
27.根据权利要求16所述的方法,其中第一次迭代的去块向量被设置为通过对与当前图片具有类似运动特性的先前图片执行所述方法获得的最终去块向量值。
28.根据权利要求16所述的方法,其中已去块图片的所估计的误差由已去块的解码图片与未滤波的源图片数据的比较来确定。
29.根据权利要求16所述的方法,其中已去块图片的所估计的误差由已去块的解码图片与已滤波的源图片数据的比较来确定。
30.一种视频编码器,包括: 基于块的编码器,具有用于源图片和预测块的输入端; 预测单元,耦接至基于块的编码器,包括:基于块的解码器,用于对参考图片的编码块进行解码,所述基于块的解码器包括去块滤波器和用于通过迭代的基于梯度的搜索处理来估计去块参数的控制逻辑器;以及用于已去块图片的参考图片存储器;以及发送缓冲器,用于存储编码图片的数据和最终估计的去块参数。
31.根据权利要求30所述的编码器,其中控制逻辑器迭代地进行以下操作: 根据去块向量执行解码图片的去块; 从已去块的解码图片估计去块误差; 对于多个向量维度中的每一个,如果所估计的误差超过预定阈值,则: 在相应维度上使去块向量前进; 根据前进后的维度对解码图片进行去块;以及 从根据前进后的维度去块的解码图片估计去块误差; 根据从所述多个向量维度的所估计的去块误差得出的梯度,修改用于下一次迭代的去块向量。
32.—种视频解码器,包括: 基于块的解码器,具有用于编码的图片数据和预测的块数据的输入端; 预测单元,耦接至基于块的解码器,以响应于在信道中接收的运动向量数据来预测块数据;以及 去块滤波器,接收来自所述基于块的解码器的恢复的块数据,并且响应于在所述信道中接收的去块向量,使用由所述去块向量识别的参数来执行去块,所述去块向量已经通过迭代的基于梯度的搜索处理而产生。
全文摘要
解码器执行用于为编码视频选择去块参数的迭代搜索方法。根据该方法,解码图片可以根据与多维去块向量相关联的参数来去块,并且可以由此估计被称作“去块误差”的误差。如果估计的误差超过预定阈值,则可以创建替换去块向量,每个替换去块向量在相应维度上从当前去块向量前进。该方法可以根据每个前进后的向量对编码图片进行去块,并且可以从每个前进后的向量的每次去块估计误差。最终,去块向量可以根据从各个向量维度的估计的去块误差得出的梯度而被修改,以用于下一迭代。该基于梯度的搜索方法可以以高效方式收敛到一组最终的去块参数。
文档编号H04N7/50GK103141097SQ201180047120
公开日2013年6月5日 申请日期2011年8月10日 优先权日2010年9月30日
发明者B·G·哈斯克尔 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1