具体实施方式
本发明的原理涉及一种针对视频编码和解码的自适应耦合预处理和后处理滤波器的方法和设备。
本说明书示意了本发明原理。因此将理解的是,尽管这里没有明确描述或示出,本领域的技术人员将能够设想体现本发明原理并包括在本发明精神和范围内的各种布置。
这里所引述的所有示例和条件性语言均为了教导的目的,以帮助读者理解本发明原理以及发明人对现有技术做出贡献的构思,应看作不会被限制为这里具体引述的示例和条件。
此外,这里对本发明的原理、方面、实施例及其特定示例做出引述的所有声明意在包括本发明的结构和功能上的等同物。另外,该等同物将包括当前已知的等同物以及将来开发出的等同物,即所开发出来的执行相同功能的任何组件,而与结构无关。
因此,本领域的技术人员可以理解,例如这里所表示的框图展示出体现本发明的示意性电路的概念图。类似地,将理解,任何流程、流程图、状态转移图、伪代码等表现出实质上可以在计算机可读介质上表现的、并且由计算机或处理器执行的各个过程,无论是否明确示出该计算机或处理器。
可以通过使用专用硬件和能够执行适合的软件的关联软件的硬件而实现图中所示各个组件的功能。当由处理器来提供时,这些功能可以由单个的专用处理器、单个的共享处理器、或多个单独的处理器来提供,其中一些可以是共享的。此外,术语“处理器”或“控制器”的显式使用不应被解释为排他性地是指能够执行软件的硬件,而且可以隐式地包括(不限为)数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)以及非易失性存储器。
还可以包括常规和/或定制的其它硬件。类似地,图中所示的任何开关仅是概念上的。其功能可以通过程序逻辑的操作、专用逻辑、程序控制和专用逻辑的交互、或甚至是手动地实现,实施者可以选择的具体技术可以从上下文中得到明确的理解。
在权利要求书中,表示为用于执行指定功能的装置的任何组件意在包括执行该功能的任何方式,例如包括:a)执行该功能的电路元件的组合,或b)任意形式的软件,包括固件、微代码等,并与用于执行该软件以执行该功能的适合的电路进行组合。由权利要求所限定的本发明原理在于如下事实:将各个引述的装置所提供的功能以权利要求所要求的方式组合在一起。因此,可以把能够提供这些功能的任意装置看作与这里所示的装置相等同。
在说明书中涉及本发明原理的“一个实施例”或“实施例”是指:结合实施例描述的特定特征、结构、特性等包括在本发明的至少一个实施例中。因此,贯穿说明书在不同地方出现的短语“在一个实施例中”或“在实施例中”不必均指相同的实施例。此外短语“在另一实施例中”不排除与另一实施例全部或部分组合的所描述实施例的主题。
应当理解的是,以下“/”、“和/或”和“至少一个”中任意的使用,例如在“A/B”、“A和/或B”和“A和B中的至少一个”的情况下,意在包括只选择第一所列项目(A)、或只选择第二所列项目(B)、或选择两个项目(A和B)。作为另一示例,在“A、B和/或C”以及“A、B和C中的至少一个”的情况下,这样的表示意在包括只选择第一所列项目(A)、只选择第二所列项目(B)、只选择第三所列项目(C)、选择第一和第二所列项目(A和B)、选择第一和第三所列项目(A和C)、选择第二和第三所列项目(B和C)、或选择所有三个项目(A和B和C)。对于本领域和相关领域的普通技术人员来说显而易见的是,对于所列的许多项目,上述是可以扩展的。
同样,如这里所使用的,词语“画面”和“图像”可交换使用,并且是指来自视频序列的静止图像或画面。如已知,画面可以是帧或场。
此外,如这里所使用的,术语“预滤波器”和“预滤波处理”可交换使用。类似地,术语“后滤波器”和“后处理滤波器”在这里可交换使用。还应认识到本发明原理可应用在编码器和解码器处。
此外,如这里所使用的,短语“正好相逆(exact inverse)”在用于描述预滤波器与后滤波器之间关系时是指选择预滤波器和后滤波器的滤波器系数和滤波器参数,使得从后滤波器获得的滤波器结果与从预滤波器获得的滤波器结果相逆。换言之“正好相逆”描述预滤波器与后滤波器之间的关系,使得在存在任何其他处理(例如,量化)的情况下,被预滤波器处理然后被后滤波器处理的预滤波器的输入与后滤波器的输出相同。
此外,如这里所使用的,短语“实质上相逆”在用于描述预滤波器与后滤波器之间关系时是指选择预滤波器和后滤波器的滤波器系数和滤波器参数,使得从后滤波器获得的滤波器结果与从预滤波器获得滤波器结果实质上相逆。类似地,当短语“实质上相逆”用于描述预滤波器与后滤波器(当后滤波器是自适应时)之间的关系时,是指选择后滤波器的自适应参数,使得“小”的扰动不会显著影响自适应。这种定义涉及数学上的稳定性概念。即,在给出小输入变化的情况下,那么输出变化也较小。例如,在数学上可以通过指定输出标准差比输出标准差小特定常数倍来表示。该事实的典型示例是线性系统,由于输入的变化(例如,对数据进行量化)暗示着输出以相同量级变化。“实质上相逆”意味着相同构思,“实质上相逆”不能保证“正好相逆”,但是实质上接近,其中例如“实质上”表示为对于系统中可接受的任何输入涉及输入和输出的标准差的常数。
为了示意和描述的目的,这里在对MEPG-4 AVC标准改进的上下文中使用MEPG-4AVC标准作为本发明描述的基线,并且说明超过MEPG-4AVC标准的改进和扩展来描述示例。然而,应当认识到,本发明原理不仅限于MEPG-4 AVC标准和/或其扩展。在给出这里提供的本发明原理的教导的情况下,本领域及相关领域技术人员应当容易理解本发明原理同样可适用并且应当在适应于其他标准的扩展时或者当应用和/或合并在还没有开发的标准内时提供至少类似的利益。还应当认识到本发明原理还应用于不符合标准的但是符合专有定义的视频编码器和视频解码器。
如上所述,在MEPG-4 AVC标准中使用的基于块的编码方法不能高效地利用变换间块边界处存在的相关性。清楚地,如这里所使用的,“变换间块(inter-transform block)”是指不同变换所处理的数据块。通过变换来去除块内的空间相关性,即,通过变换对变换内数据进行去相关。然而,由于MEPG-4 AVC中的变换不交叠,因此不能正确地去除属于不同变换块的数据之间的相关性。根据本发明原理,本发明公开了一种方法和设备,定义一组耦合的自适应预处理滤波器和后处理滤波器的,利用变换间块相关性,并且减少视频编码中观察到的块伪像。例如,耦合的滤波器集合包括与一个或多个后处理滤波器耦合的一个或多个预处理滤波器。
在实施例中,例如,滤波器自适应可以基于针对输入数据而计算的“梯度”和/或“量化器步长”和/或诸如“方差”之类的局部数据统计。公开了与将预处理滤波器和后处理滤波器设计和优化为“与预测(空间预测或时间预测)机制协同工作”有关的至少一个实施例。这种联合设计和优化有助于更好地实现总体速率失真性能。此外,预处理滤波器和后处理滤波器有助于保护边缘,获得更好的感知质量。本发明原理还概括如何修改现有视频架构,例如,速率失真优化器以及最可能模式预测器,以便实现更好的性能增益。
预处理滤波器和后处理滤波器的目的是利用这种变换间块相关性,并因此实现更高的编码效率。此外,由于在变换块边界上实现预处理滤波器和后处理滤波器,因此有助于减少在基于块的视频编码中通常看到的块伪像。
典型地,预滤波器应用于使用预测来去除冗余之前的原始帧。如果将影响较大的预滤波器应用于原始帧,则预滤波器会严重地干扰就是用于预测的像素。不良的预测质量因此降低了预测编码的压缩效率。因此,还降低了总体编码器和解码器压缩效率。为了考虑和补偿预滤波对预测编码的影响,本发明公开了抑制新的预测滤波器设计方法。在实施例中,预滤波器适合于针对输入数据而计算的“梯度”和/或“量化器步长”和/或诸如“方差”之类的局部数据统计。耦合的“自适应”后滤波器被设计为反转编码器处预滤波器所执行的操作。还通过修改速率失真优化器和最可能模式预测器来改进系统的性能,以与预处理滤波器和后处理滤波器协同工作。
转向图2,具有预处理滤波器和后处理滤波器的示例性视频编码器总体上由附图标记200来指示。视频编码器200包括预滤波器205,预滤波器205具有与组合器210的第一输入信号通信连接的第一输出。组合器的输出与变换器(T)215的输入信号通信连接。变换器(T)215的输出与量化器(Q)220的输入信号通信连接。量化器(Q)220的输出与熵编码器225的输入以及逆量化器(IQ)230的输入信号通信连接。逆量化器(IQ)230的输出与逆变换器(IT)235的输入信号通信连接。逆变换器(IT)235的输出与组合器240的第一非反相输入信号通信连接。组合器240的输出与后滤波器245的第一输入和帧内预测器280的输入信号通信连接。后滤波器245的输出与去块滤波器250的输入和回路滤波器255的输入信号通信连接。回路滤波器255的输出与参考存储器260的输入信号通信连接。参考存储器260的第一输出与运动/帧内补偿器265的第一输入信号通信连接。参考存储器260的第二输出与运动估计器270的第二输入信号通信连接。运动估计器270的输出与运动/帧内补偿器265的第二输入信号通信连接。运动/帧内补偿器265的输出与预滤波器275的第一输入信号通信连接。预滤波器275的输出与帧内/帧间选择器285的第一输入信号通信连接。帧内/帧间解码器285的输出与组合器210的第二非反相输入和组合器240的第二非反相输入信号通信连接。帧内预测器280的输出与帧内/帧间选择器285的第二输入信号通信连接。熵编码器225的输出可用作视频编码器200的输出,以用于输出比特流。去块滤波器250的输出可用作视频编码器200的输出,以用于输出重构。预滤波器205的输入可用作视频编码器的输入,以用于接收视频源和/或与视频源相关的内容。相对于等同逆交叠变换277,预滤波器205、组合器210以及变换器(T)215形成等同的前向交叠变换266,等同逆交叠变换277由逆变换器(IT)235、组合器240和后滤波器245形成有关。
转向图3,具有预处理滤波器和后处理滤波器的示例性视频解码器总体上由附图标记300来指示。视频解码器300包括输入缓冲器305,输入缓冲器305具有与熵解码器310的输入信号通信连接的输出。熵解码器310的输出与逆量化器315的输入信号通信连接。逆量化器320的输出与组合器325的第一非反相输入的输入信号通信连接。组合器325的输出与后滤波器330的输入和帧内预测器365的输入信号通信连接。后滤波器330的输出与回路滤波器340的输入信号通信连接。回路滤波器340的输出与参考存储器345的输入信号通信连接。参考存储器345的输出与运动/帧内补偿器350的输入信号通信连接。运动/帧内补偿器350的输出与预滤波器355的输入信号通信连接。预滤波器355的输出与帧内/帧间选择器360的第一输入信号通信连接。帧内/帧间选择器360的输出与组合器325的第二非反相输入信号通信连接。帧内预测器365的输出与帧内/帧间选择器360的第二输入信号通信连接。输入缓冲器305的输入可用作视频解码器300的输出,以用于接收输入比特流。去块滤波器335的输出可用作视频解码器300的输出,以用于输出与比特流相对应的一个或多个画面。逆变换器(IT)320、组合器325和后滤波器330形成等同的逆交叠变换377。
因此,图2示出了对原始视频源进行预滤波的视频编码器实施例。耦合的后处理滤波器245置于用于帧内编码的编码回路外,但是在用于帧间编码的编码回路内。图3示出了对应的解码器,其中针对亮度和色度分量分别离线导出预处理滤波器355和后处理滤波器330及其自适应参数。也针对不同序列分辨率获得分离参数。
注意到尽管预滤波器(例如,205和275)在物理上不与后滤波器245耦合,但是预滤波器205、275和后滤波器245耦合在于它们具有以下关系:使得后滤波器245进行操作,以便提供与至预滤波器205的输入(预滤波的输入)相同或尽可能接近的输出。即,选择针对后滤波器245的滤波器系数和参数,使得后滤波器245所执行的滤波操作实质上与预滤波器205、275所执行的滤波操作相逆。
转向图4,涉及分离亮度和色度预滤波的图像数据编码的示例性方法总体上由附图标记400来指示。方法400包括开始框405,开始框405将控制传给功能块407。功能框407输入数据(源/重构数据),并且将控制传给判定框410。判定框410确定要滤波的当前分量是否是亮度分量,如果是,则将控制传给功能框415和功能框435。否则将控制传给功能框440和功能框460。功能框415设置亮度自适应参数,并且将控制传给功能框435。功能框435执行亮度预滤波(使用功能框415设置的亮度自适应参数),并且将控制传给功能框465。功能框465输出预滤波的数据,并且将控制传给结束框499。功能框440设置色度自适应参数,并且将控制传给功能框460。功能框460执行色度预滤波(使用功能框440所设置的色度自适应参数,并且将控制传给功能框465。关于功能框415,功能框415基于编码器设置420、预测器模式425、以及变换尺寸和类型430来设置亮度自适应参数。关于功能框440,功能框440基于编码器设置445、预测器模式450和变换尺寸和类型455来设置色度自适应参数。
转向图5,涉及分离亮度和色度后滤波的图像数据解码的示例性方法总体上由附图标记500来指示。方法500包括开始框505,开始框505将控制传给功能块507。功能框507输入重构数据,并且将控制传给判定框510。判定框510确定要滤波的当前分量是否是亮度分量,如果是,则将控制传给功能框515和功能框535。否则将控制传给功能框540和功能框560。功能框515设置亮度自适应参数,并且将控制传给功能框535。功能框535执行亮度后滤波(使用功能框515设置的亮度自适应参数),并且将控制传给功能框565。功能框565输出后滤波的数据,并且将控制传给结束框599。功能框540设置色度自适应参数,并且将控制传给功能框560。功能框560执行色度后滤波(使用功能框540所设置的色度自适应参数,并且将控制传给功能框565。关于功能框515,功能框515基于编码器设置520、预测器模式525、以及变换尺寸和类型530来设置亮度自适应参数。关于功能框540,功能框540基于编码器设置545、预测器模式550和变换尺寸和类型555来设置色度自适应参数
参数导出以预滤波器的设计开始。如下重写预滤波器输出的时域表示:
y=D[Shift(I(Px,Prev(x)))] (3)
其中,D是块变换(例如,离散余弦变换(DCT)、Karhunen Loeve变换(KLT)、和/或模式相关方向变换(MDDT)),Prev(x)是在预测x中使用的数据。对函数I(.,.)建模,以捕获用于考虑下的编码方案的预测器的行为。可以选择不同的模型来表示不同预测器。转向图4A-4D,用于对预测编码(帧内/帧间)的函数I(.,.)的四种可能选择总体上分别由附图标记610、620、630和640来指示。具体地,图6A示出了选择610,选择610针对通过先前像素子集来拟合并且外推得到使均方差最小化的线以获得对当前像素的预测的函数。图6B示出了选择620,选择620针对拷贝先前像素作为对当前像素的预测的函数。图6C示出了选择630,选择630针对拷贝先前块作为对当前块的预测的函数。图6D示出了选择640,选择640针对通过先前像素子集来拟合并且外推出得到均方差最小化的线以获得对当前块的预测的函数。可以递归地应用选择610和620以获得对考虑中的整个x的预测。
对于MEPG-4 AVC标准中预滤波方法,方差计算如下:
现在如下指定总体MEPG-4AVC标准预滤波器设计问题:
通过以下(对应于假定:由于“逆DCT”和“预测重构”导致在重构中失真增加固定倍数)近似上述问题:
这样,在至少一个实施例中,根据本发明原理的设计滤波器的方法合并了预滤波对预测编码效率的影响。通过求解等式(6)获得的解还可以通过使用这些解作为发展优化算法的种子来进一步得以改进。
对诸如速率失真优化器(执行编码模式选择)之类的下个系统块和最可能模式预测器进行修改和训练来与设计预处理滤波器和后处理滤波器协同工作。对速率失真优化器的修改仅是编码器修改。
通过最大化目标函数(例如,编码增益、能量压缩、频率响应、基的正则性、或者一些或所有上述目标的线性组合)来获得预处理滤波器参数和后处理滤波器参数、自适应参数和系统参数。对代表序列子集离线执行参数的训练和确定。一旦训练完成,则这些参数可以用于所有视频序列。
转向图7,用于滤波器、自适应和增强参数的离线训练的示例性方法总体上由附图标记700来指示。方法700包括开始框705,开始框705将控制传给功能框710。功能框710输入训练数据,并且将控制传给功能框715。功能框715基于训练数据确立滤波器、自适应和增强参数,并且将控制传给功能框720。功能框720存储参数,并且将控制传给结束框799。
后滤波器可以与预滤波器耦合,以逆向预滤波器所执行的处理。对于非自适应固定滤波器,后滤波器与预滤波器正好相逆。固定滤波给出超过无滤波的性能提高,但是这种性能提高还可以通过滤波器自适应来增强。
现在讨论针对预滤波器自适应和后滤波器自适应的可能变型和实施例。
自适应:
如果预滤波器的自适应基于原始数据,则后滤波器不能理想相逆,这是由于原始数据(例如,在解码器侧处)的非可用性。在这样的情况下,后滤波器基于输入至后滤波器的数据来估计自适应。如下两种新颖的后滤波实施例是可能的。
在第一实施例中,本发明估计原始数据向量,原始数据向量在被自适应预滤波时提供最接近当前观察的输出向量。这种估计可以使用凸优化或非凸优化来执行。
转向图8,通过最小化预滤波后估计到观察数据的距离来执行后滤波的示例性方法总体上由附图标记800来指示。方法800包括开始框805,开始框805将控制传给功能框810。功能框810接收输入观察,并且将控制传给功能框815。功能框815进行猜测x,并且将控制传给功能框820。功能框820执行自适应滤波,并且将控制传给功能框825。功能框825测量从猜测到观察的距离,并且将控制传给判定框845。判定框845根据先前猜测(如根据距离确定的)确定是否存在改进。如果存在,则将控制返回至功能框815。否则,将控制传给功能框850。功能框850输出与观察最接近的猜测,并且将控制传给结束框899。关于功能框820,功能框820基于编码器设置835、预测器模式830、和变换尺寸和类型840来执行自适应滤波。
在第二实施例中,基于观察到的数据向量来估计“使用的自适应预滤波器”,并且计算与后滤波器变换相对应的逆矩阵。该逆矩阵然后用于执行后滤波。预滤波器的选择自适应地取决于输入数据(并且可能地其他数据,例如预测器模式或编码设置)。因此,必须推导选定的预滤波器,以便应用正确的后滤波器以逆向预滤波器过程,即,必须执行对使用的预滤波器的估计。为了推导或估计使用的预滤波器以便应用正确的后滤波器,解码器具有可用滤波的量化数据,即,解码器可以观察和分析上述数据(例如,包括输入数据、其他数据(例如预测器模式、编码设置等)、和滤波的量化数据),来执行对采用的预滤波器的估计,并且然后计算与后滤波器相对应的逆矩阵。
后滤波的上述方法使得后滤波器与预滤波器近似相逆。
转向图9,利用预处理滤波和后处理滤波器来编码视频数据的示例性方法总体上由附图标记900来指示。方法900包括开始框905,开始框905将控制传给功能框910。功能框910输入视频源数据,并且将控制传给功能框915、功能框965和功能框960。功能框915对视频源数据进行预滤波,并且将控制传给功能框920。功能框920计算视频源数据的残差(例如,来自视频源数据的原始画面与参考画面之间的差,参考画面也被称作预测),并且将控制传给功能框925。功能框925对残差应用变换,以获得变换的系数,并且将控制传给功能框930和功能框965。功能框930对系数进行量化,以获得量化的系数,并且将控制传给功能框935和功能框965。功能框935对量化系数进行逆量化,以获得逆量化系数,并且将控制传给功能框940、功能框975和功能框980。功能框940对逆量化系数进行逆变换,以获得重构的残差,并且将控制传给功能框945、功能框975和功能框980。功能框945将重构的残差添加至预测,以获得重构的画面,并将控制传给功能框950、功能框975和功能框970。功能框950关于重构的画面执行后滤波,以获得重构且后滤波的画面并且将控制传给功能框955。功能框955对重构和后滤波的画面执行预滤波,并且将控制传给功能框960。功能框960执行帧间预测,并且将控制返回至功能框920、功能框945、功能框975、功能框965和功能框980。功能框965执行涉及到预滤波器选择的编码器自适应,并且将控制返回至功能框915。功能框970执行帧内预测,并且将控制返回至功能框980、功能框945、功能框975、功能框920和功能框965。功能框985执行去块滤波,并且将控制传给功能框990。功能框990输出重构,并且将控制传给结束框999。功能框975模仿解码器自适应,并且将控制传给功能框950。功能框980模仿解码器自适应,并且将控制传给功能框955。
转向图10,利用预处理滤波和后处理滤波来解码视频数据的示例性方法总体上由附图标记1000来指示。方法1000包括开始框1005,开始框1005将控制传给功能框1010。功能框1010输入比特流,并且将控制传给功能框1015。功能框1015对比特流中的量化残差进行逆量化以获得残差的系数,并且将控制传给功能框1020、功能框1055和功能框1060。功能框1020对系数进行逆变换,以获得残差(例如,针对比特流中的画面),并且将控制传给功能框1025、功能框1055和功能框1060。功能框1025将残差添加至预测,以获得重构画面,并且将控制传给功能框1030、功能框1055和功能框1045。功能框1030关于重构画面执行后滤波,以获得重构且后滤波的画面,并且将控制传给功能框1035、功能框1060和功能框1050。功能框1035对对重构且后滤波的画面执行预滤波,并且将控制传给功能框1040。功能框1040对执行帧间预测,并且将控制返回至功能框1060、功能框1055和功能框1025。功能框1045执行帧内预测,并将控制传给功能框1025、功能框1060和功能框1055。功能框1050执行去块滤波,并且将控制传给功能框1065。功能框1065提供解码输出,并且将控制传给结束框1099。
在另一实施例中,如果使用提升方案来实现预滤波器和后滤波器,则可以将自适应嵌入在提升机制中。在这样的情况下,可以在后滤波器处理想地反转预滤波器处的自适应。
转向图11,利用提升方案的涉及分离亮度和色度预滤波的图像数据编码的示例性方法总体上由附图标记1100来指示。方法1100包括开始框1105,开始框1105将控制传给功能框1107。功能框1107输入数据(源/重构数据),并且将控制传给判定框1110。判定框1110确定要滤波的当前分量是否是亮度分量,如果是,则将控制传给功能框1115。否则将控制传给功能框1140。功能框1115利用提升实现方式来执行亮度预滤波,并且将控制传给功能框1165。功能框1165输出预滤波的数据,并且将控制传给结束框1199。功能框1140利用提升实现方式来执行色度预滤波,并且将控制传给功能框1165。关于功能框1115,功能框1115基于编码器设置1120、预测器模式1125、以及变换尺寸和类型1130,利用提升实现方式和自适应来执行亮度预滤波。关于功能框1140,功能框1140基于编码器设置1145、预测器模式1150和变换尺寸和类型1155,利用提升实现方式来执行色度预滤波。
转向图12,涉及分离亮度和色度后滤波的图像数据解码的示例性方法总体上由附图标记1200来指示。方法1200包括开始框1205,开始框1205将控制传给功能块1207。功能框1207输入重构数据,并且将控制传给判定框1210。判定框1210确定要滤波的当前分量是否是亮度分量,如果是,则将控制传给功能框1215。否则将控制传给功能框1260。功能框1215利用提升实现方式来执行亮度后滤波,并且将控制传给功能框1265。功能框1265输出后滤波的数据,并且将控制传给结束框1299。功能框1260利用提升实现方式来执行色度后滤波,并且将控制传给功能框1265。关于功能框1215,功能框1215基于编码器设置1220、预测器模式1225、以及变换尺寸和类型1230,利用提升实现方式和自适应来执行亮度后滤波。关于功能框1260,功能框1260基于编码器设置1245、预测器模式1250和变换尺寸和类型1255,利用提升实现方式和自适应来执行色度后滤波。
可以使用奇异值分解通过首先对固定预滤波器变换矩阵进行分解来执行提升实现方式。奇异值分解获得三个矩阵的乘积。第一和第三矩阵式正交矩阵。如已知的,每个正交矩阵可以被分解成一系列给定平面旋转(这种旋转的数目与矩阵的维数有关,其中优选地采用数学运算“N选2”,即,如果n是矩阵的维数,则旋转的数目是n*(n-1)/2)。每个平面旋转继而可以使用如下三个提升步骤来实现:预测-更新-预测。根据奇异值分解获得的第二矩阵式对角矩阵,并且对应于缩放。可以在提升实现方式中使用的新颖自适应技术是改变对角矩阵的值。改变值,使得可以在解码器处正好或近似反转这样的值。通过反转预滤波器所执行的单独提升步骤来获得后滤波器提升实现方式。
转向图13,在提升实现方式中使用奇异值分解(SVD)来执行自适应预滤波和后滤波的示例性方法总体上由附图标记1300来指示。方法1300包括开始框1305,开始框1305将控制传给功能框1310。功能框1310输入基本预滤波器变换矩阵,并且将控制传给功能框1315。功能框1315执行奇异值分解(SVD),并且将控制传给功能框1320、功能框1325和功能框1330。功能框1320接收第一正交矩阵作为SVD的第一输出(由功能框1315执行),并且将控制传给功能框1335。功能框1335接收第二对角矩阵作为SVD的第二输出(由功能框1315执行),并且将控制传给功能框1345。功能框1330接收第三正交矩阵作为SVD的第三输出(由功能框1315执行),并且将控制传给功能框1365。功能框1335将第一正交矩阵分解成给定平面旋转,并且将控制传给功能框1340。功能框1340实现每个旋转作为预测-更新-预测提升步骤,并且将控制传给功能框1345。功能框1345确定对角矩阵的元素的自适应,并且将控制传给功能框1350。功能框1350对1340的提升步骤、1345的具有自适应元素的缩放矩阵以及1370的提升步骤进行拼接,以获得预滤波器的完整提升实现方式,并且将控制传给功能框1355。功能框1355反转单独提升步骤和自适应,以获得后滤波器提升实现方式,并且将控制传给功能框1360。功能框1360存储滤波器的提升实现方式,并且将控制传给结束框1399。功能框1365将第三正交矩阵分解成给定平面旋转,并且将控制传给功能框1370。功能框1370实现这样的旋转作为预测-更新-预测提升步骤,并且将控制传给功能框1345。
确定固定预滤波器和后滤波器的提升实现方式的其他新颖方式涉及矩阵分解,例如,QR分解、PLUS分解。使用高斯消除(仅利用行变换),可以将预滤波器变换矩阵缩减至单位矩阵。每个行变换是提升步骤。这些提升步骤在被拼接时得到后滤波器提升实现方式。反转后滤波器中的步骤给出预滤波器实现方式。
转向图14,使用矩阵分解和高斯消除来导出滤波器的提升实现方式的示例性方法总体上由附图标记1400来指示。方法1400包括开始框1405,开始框1405将控制传给功能框1410。功能框1410输入基本预滤波器变换矩阵,并且将控制传给功能框1415和功能框1425。功能框1415根据(功能框1410输入的基本预滤波器变换矩阵的)矩阵分解获得预滤波器的提升实现方式,并且将控制传给功能框1420。功能框1425使用高斯消除来获得后滤波器的提升实现方式(相对于功能框1410输入的基本预滤波器变换矩阵的行变换),并且将控制传给功能框1430。功能框1420反转单独提升步骤和自适应,以获得后滤波器提升实现方式,并且将控制传给功能框1435。功能框1430反转单独提升步骤和自适应,以获得预滤波器提升实现方式,并且将控制传给功能框1435。功能框13435存储滤波器的提升实现方式,并且将控制传给结束框1499。因此,关于方法1400,然后在一个或多个提升步骤中执行自适应(以理想地可反转或近似可反转方式)
根据输入数据导出的滤波器自适应基于诸如数据梯度强度和/或数据梯度方向和/或数据方差之类的特性。可以通过将梯度强度和/或梯度方向和/或梯度方差划分到不相交范围中,并且针对不同范围应用固定滤波器,来离散地进行这种新颖自适应。这可以被视为基于查找表的自适应。在另一实施例中,这种自适应是梯度强度和/或梯度方向和/或数据方差的连续函数。提供良好性能的梯度自适应函数的选择时随着梯度增加而以指数方式减小的函数。可以计算梯度作为进行预滤波的像素之间的差值。对于更精确的梯度测量,像素差值可以包括预滤波器边界之外的像素并且可以适当地进行加权。由于本发明关注于仅考虑梯度的幅度使用梯度来检测边缘,因此本发明可以获得更好的检测边缘能力。
自适应过程还通过以下来增强:
-针对水平和垂直方向选择不同的自适应预滤波器和后滤波器。
-选择性地向以下应用自适应预滤波器和后滤波器:
■仅应用于变换块边界;
■应用于变换块边界和变换块内;和/或
■关闭预滤波器和后滤波器。
自适应预滤波器和后滤波器的一个新颖特征是利用不同变换(离散余弦变换(DCT)、Karhunen Loeve变换(KLT)、和/或模式相关方向变换(MDDT))和不同变换尺寸来工作的能力。先前工作限制了预滤波器和后滤波器组合,以利用单个变换和变换尺寸来工作。上述图4和5示意了与上述自适应有关的实施例。例如,参照图4和5,可以看出预处理滤波器和后处理滤波器根据包括编码器设置、预测模式、变换类型/尺寸和输入数据在内的若干输入来改变它们的行为。
系统增强:
可以通过修改特定编码器和解码器功能,并且使这样的功能与滤波器过程和谐工作来改进预滤波器和后滤波器的性能。针对亮度和色度分量选择不同的预滤波器和后滤波器以不同方式改变了两个通道的编码效率。这种编码效率的改变暗示了需要修改速率失真优化器,以便反映新编码效率并且实现更好的模式判定。反映这种编码效率改变的一个简单方式是改变编码和/或解码中针对亮度和色度的拉格朗日参数。将拉格朗日参数变为精确反映编码效率的函数显著提高了总压缩效率。
转向图15,用于训练速率失真优化器的示例性方法总体上由附图标记1500来指示。方法1500包括开始框1505,开始框1505将控制传给功能框1510。功能框1510执行基于预/后滤波器的编码,并且迭代地调谐速率失真优化器,以获得最佳性能(例如,基于速率失真成本),并且将控制传给功能框1520。功能框1520保存速率失真参数,并且将控制传给结束框1599。应当认识到方法1500仅干扰编码器侧,而不会影响解码器。
在MEPG-4 AVC标准视频编码器或解码器中使用的编码模式预测器基于过去编码的块来对针对当前块的最可能编码模式进行猜测。通常预测所基于的块是在空间或时间上邻近当前块。如果预测器对当前块的最佳编码模式进行精确猜测,则使用最少比特数目来编码该模式。精确预测器可以得到显著的比特率节省。预滤波过程和后滤波过程影响预测过程,使预测过程不精确。使用用于训练的序列子集,本发明可以重新设计模式预测器,以在滤波情况下更精确。
转向图16,用于训练最可能模式预测器的示例性方法总体上由附图标记1600来指示。方法1600包括开始框1605,开始框1605将控制传给功能框1610。功能框1610执行基于预/后滤波器的编码并且收集对针对当前和先前块选择的预测模式的统计,并且将控制传给功能框1620。功能框1620基于收集的统计来确定新的最可能模式预测器,并且将控制传给功能框1625。功能框1625存储最可能模式预测器配置参数,并且将控制传给结束框1699。应当认识到,可以基于最大似然估计器、最大后验估计器、或任何其他适合的估计器来重新设计最可能模式预测器。
加速后滤波器硬件实现方式:
通常预滤波器中的自适应过程简单到通过浮点值(例如,s)来缩放预滤波器参数。如下示出了针对4×4预滤波器的示例:
反转自适应预滤波器的后滤波器的硬件实现方式必须基于该自适应来改变其反逻辑电路。上述表达式的直接“矩阵取逆”得到4×4矩阵,在矩阵中,需要基于缩放参数来改变矩阵中每一项。更好的方式是将缩放参数隔离为尽可能少的矩阵元素。为此,提出以下新颖的后滤波器:
P(s)-1=I4×4+Q(s) (8)
可以使用奇异值分解将Q(s=常数)分解成三个矩阵,其中典型地选择常数为1。第一矩阵(Ui)和第三矩阵(Vi)是正交矩阵。现在可以如下将缩放参数s的任何变化吸收到奇异值分级的第二矩阵中:
参数m22,m23,m32,m33和c22,c23,c32,c33是针对如下给定滤波器参数集合唯一确定的常数:p00,p01,p10,p11。该后滤波器的硬件实现方式的优点在于以下事实:将变化部分仅限制于四个元素,其余元素是常数。
转向图17,高效地在硬件中实现后滤波器的示例性方法总体上由附图标记1700来指示。方法1700包括开始框1705,开始框将控制传给功能框1710。功能框1710输入重构数据,并且将控制传给判定框1715。判定框1715确定要滤波的当前分量是否是亮度分量,如果是,则将控制传给功能框1720、功能框1725和功能框1740。否则将控制传给功能框1745、功能框1750和功能框1767。功能框1720获得与SVD的第三矩阵(亮度)相对应的固定变换,并且将控制传给功能框1730。功能框1745获得与SVD的第三矩阵(色度)相对应的固定变换,并且将控制传给功能框1755。功能框1730获得SVD的第二矩阵(亮度),并且将控制传给功能框1735。功能框1735获得与SVD的第一矩阵(亮度)相对应的固定变换,并且将控制传给功能框1740。功能框1740执行将重构的亮度数据添加至功能框1735的变换数据的添加操作,并且将控制传给功能框1797。功能框1755获得SVD的第二矩阵(色度),并且将控制传给功能框1760。功能框1760获得与SVD的第一矩阵(色度)相对应的固定变换,并且将控制传给功能框1767。功能框1767执行将重构的色度数据添加至功能框1760的变换数据的添加操作,并且将控制传给功能框1797。功能框1797输出后滤波的数据,并且将控制传给功能框1799。功能框1725设置亮度自适应参数,并且将功能传给功能框1730。功能框1750设置色度自适应参数,并且将控制传给功能框1755。关于功能框1725,功能框1725基于编码器设置1770、预测器模式1775、以及变换尺寸和类型1780,来设置亮度自适应参数。关于功能框1750,功能框1750基于编码器设置1785、预测器模式1790和变换尺寸和类型1795,来设置色度自适应参数。
加速滤波器实现方式的软件方法是使用整数实现方式来近似自适应滤波器。在实施例中,在整数实现方式下,将预滤波和后滤波期间执行的所有浮点运算转换成整数乘法和比特位移。比特位移将整数除法限制于被2的幂除。可以通过将滤波器参数矩阵转换成最后后面由比特位移的整数乘法来实现等式(7)的自适应预滤波器。在将获得的数据与原始数据相加之前可以将缩放参数s与获得的数据相乘。对于自适应后滤波器等式,本发明确定解决整数滤波器的逆并且同时接近原始浮点P(s)-1的整数实现方式。
转向图18,用于确定原始自适应滤波器的整数实现方式的示例性方法总体上由附图标记1800来指示。方法1800包括开始框1805,开始框1805输入浮点自适应滤波器,并且将控制传给功能框1810。功能框1810输入浮点自适应滤波器,并将控制传给功能框1815。功能框1815确定矩阵乘法的整数实现方式,使得浮点变换矩阵和整数变换矩阵尽可能接近,附加地确保整数后滤波器尽可能接近整数预滤波器的逆,并且将控制传给功能框1825。功能框1825存储自适应滤波器的整数实现方式,并且将控制传给结束框1899。功能框1820设置允许的最大整数精度,并且将控制传给功能框1815。
各种革新和新颖点
-编码回路(和解码器)中原始数据的预滤波器以及耦合的后滤波器
-“耦合的滤波器”:
ο后滤波器与预滤波器正好(理想)相逆
ο自适应后滤波器与自适应预滤波器“实质上相逆”
■“实质上相逆”:选择自适应参数,使得小干扰不会显著影响自适应性
■在没有量化和自适应的情况下,不能获得正好相逆,这是因为自适应基于在解码器处不可用的原始数据
■后滤波器不是正好相逆:使观察与滤波的原始数据之间的差值最小化
-2-D滤波器的方向取决于局部梯度方向
-对于亮度分量和色度分量使用不同的滤波器
-使用1-D滤波器
ο对于垂直和水平方向使用不同滤波器
-耦合滤波器设计中可预测的预测效率
-耦合滤波器对局部数据(边缘、梯度和/或方差)的自适应性
ο滤波器的连续自适应
ο离散耦合滤波器集合的使用,每个耦合滤波器应用于局部统计数据的子集
·3个预滤波器和3个后滤波器取决于局部梯度
-适合于滤波器机制的最可能模式预测器
-针对滤波机制的修改的速率失真(RD)(仅优化编码器)
-如下可以自适应地应用滤波器:仅在变换边界单元(unit)处;在变换边界处和变换单元内;以及根本不应用于变换单元。例如,变换单元例如可以是块或宏块。
ο在上述3个模式之间实现比较和选择的方法如下:创建3个单元,并且执行RD成本比较,以确定当前单元的最佳编码选项。应当认识到针对单元进行的判定会影响要在未来编码的单元。
-耦合滤波器的提升方案实现方式
ο高斯消除和给定旋转实现方式
-自适应预滤波器和后滤波器利用不同变换(DCT、KLT、MDDT)和不同的变换维度来工作。
现在将给出对于本发明的许多附加优势/特征的一些的描述,其中的一些在前面已经描述。例如,一个优点/特征是一种具有视频编码器的设备,视频编码器将画面的输入数据编码成结果比特流。视频编码器包括预滤波器和耦合至所述预滤波器的后滤波器。预滤波器对画面的输入数据进行滤波,并且后滤波器对画面的回路内重构数据进行滤波。
另一优点/特征是一种具有上述视频编码器的设备,其中选择后滤波器的滤波器系数和滤波器参数,使得后滤波器与预滤波器正好相逆。
又一优点/特征是一种具有上述视频编码器的设备,其中预滤波器和后滤波器中的至少一个包括不同的滤波器,在所述不同的滤波器中,使用与画面的亮度分量不同的滤波器对画面的色度分量进行滤波。
又一优势/特征是一种具有上述视频编码器的设备,其中响应于分辨率、量化级别、局部梯度、预测模式和梯度方向中的至少一个,选择针对预滤波器和后滤波器中的至少一个的滤波器系数和滤波器参数中的至少一个。
又一优势/特征是一种具有上述视频编码器的设备,其中将后滤波器滤波重构数据所使用的后滤波变换矩阵分解成两个被加数,两个被加数之一是单位矩阵,两个被加数中的另一个是对第一矩阵、第二矩阵和第三矩阵的乘积加以表示的矩阵,第一矩阵和第三矩阵是固定的,第二矩阵是可变的,以便反转预滤波器的自适应性。
另外,另一个优势/特征是一种具有如上所述的视频编码器的设备,其中选择后滤波器的滤波器系数和滤波器参数,使得后滤波器与预滤波器实质上相逆。
此外,另一个优势/特征是一种具有视频编码器的设备,其中选择后滤波器的滤波器系数和滤波器参数,使得后滤波器与如上所述的预滤波器实质上相逆,其中后滤波器被配置为通过最小化观察与预滤波的估计之间的差,实质上从中提供与提供给预滤波器的输入数据相同的输出数据,所述观察与提供给后滤波器的输入数据有关,并且预滤波的估计与由预滤波器滤波之前对画面的输入数据的估计有关。
同样,另一个优势/特征是一种具有如上所述视频编码器的设备,其中预滤波器和后滤波器是整数实现方式,被确定为使得与预滤波器与后滤波器之间的正好可逆性有关的距离最小化。
此外,另一个优势/特征是一种具有如上所述视频编码器的设备,其中预滤波器和后滤波器的滤波器尺寸与应用于残差数据的变换的尺寸相同,残差数据表示画面的输入数据与如上所述至少一个参考画面的参考数据之间的差,其中预滤波器和后滤波器包括多个滤波器,并且将多个滤波器中的至少一个应用于被应用于残差数据的变换的所有变换尺寸。
另外,另一个优势/特征是具有如上所述视频编码器的设备,其中在预滤波器和后滤波器中的至少一个的滤波器尺寸与应用于输入数据的变换的尺寸不同。
同样,另一个优势/特征是具有如上所述视频编码器的设备,其中将预滤波器和后滤波器应用于输入数据的仅一部分。
此外,另一个优势/特征是具有视频编码器的设备,其中将预滤波器和后滤波器应用于如上所述输入数据的仅一部分,其中输入数据的一部分是从块边界和块内中的至少一项中选择的。
基于这里的教导,本领域的普通技术人员可以容易地确定本发明的这些以及其它特征和优点。应理解的是,本发明的教导可以以硬件、软件、固件、专用处理器或其组合的各种形式来实现。
最优选地,将本发明的教导实现为硬件和软件的组合。此外,可以将软件实现为在程序存储单元上具体体现的应用程序。可将该应用程序上载到包括任何适合架构在内的机器并由该机器执行。优选地,在具有硬件(如,一个或多个中央处理单元(“CPU”)、随机访问存储器(“RAM”)以及输入/输出(“I/O”)接口)的计算机平台上实现该机器。该计算机平台还可以包括操作系统和微指令代码。这里描述的各种处理和功能可以是可由CPU执行的微指令代码的一部分或应用程序的一部分或其组合。此外,可将其它各种外围单元连接到计算机平台,如附加的数据存储单元和打印单元。
还应理解的是,由于在附图中描述的一些构成系统组件和方法优选地以软件来实现,系统组件或处理功能块之间的实际连接可以根据对本发明原理编程的方式而有所不同。在这里给出教导的情况下,本领域的普通技术人员将能够想到本发明的这些以及类似的实现方式或配置。
虽然这里参考附图描述了示意性的实施例,但是应理解的是,本发明并不限于这些确定的实施例,在不背离本发明的范围或精神的情况下,本领域的普通技术人员可以实现各种变化和修改。所有这些变化和修改旨在包括在如所附权利要求中所阐述的本发明的范围内。