具体实施方式
本原理针对用于视频编码和解码中色度分量的预测像素的自适应滤波的方法和装置。
本描述说明了本原理。因此本领域技术人员应理解将能够设计出虽然未在此被明确描述或示出、但是体现本原理并且被包括在其范围内的各种布置。
在此所叙述的所有示例和条件性语言意在教导性的目的,以帮助读者理解本原理和由(多个)发明人为促进本领域技术而贡献的构思,并且要被解释为不限于这种具体叙述的示例和条件。
另外,在此叙述的本原理的原理、方面、以及实施例,以及本原理的具体示例的所有陈述,意在包含本原理的结构和功能两者的等效物。此外,这种等效物意在包括当前已知的等效物以及将来开发的等效物这两者,即,所开发的无论结构如何、执行相同功能的任何元件。
因此,例如,本领域技术人员应理解:在此呈现的框图表示体现本原理的例示性的电路的概念性视图。类似地,应理解:任何流程图示、流程图、状态转换图、伪代码等等表示实质上可以在计算机可读介质中表示的、并通过计算机或处理器这样执行的各种处理,无论这种计算机或处理器是否被明确示出。
可以通过使用专用的硬件与适合的软件相关联而执行软件的硬件来提供附图中所示的各种元件的功能。当由处理器提供时,可以由单个专用处理器、单个共享处理器、或其中一些可以被共享的多个独立处理器提供所述功能。另外,术语“处理器”或“控制器”的明确使用不应被解释为排他性地指代能够执行软件的硬件,其可以隐含地包括、而不限于数字信号处理器(“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)的选择。如本领域和相关领域普通技术人员容易认识到的,这可以被扩展用于很多列出的条目。
此外,如这里所使用的,词语“画面”和“图像”被可互换地使用,并且指代静止图像或来自视频序列的画面。如已知的,画面可以是帧或场。
另外,如在此使用的,当在引用依据本原理的自适应滤波时使用词语“旁路”意味着根本不执行自适应滤波(例如基于某些准则)或者尽管获得了自适应滤波的结果、但是优先使用诸如例如未滤波的数据之类的其它数据而没有使用该结果。因此,使用术语“自适应滤波”来指代是应用该滤波还是旁路该滤波。即,该滤波是自适应的,这是由于其被选择性地应用或者不应用(后者对应于旁路情况),并且因此术语“自适应滤波”用于描述依据本原理的这种滤波。另外,在一个或多个实施例中,使用术语“自适应滤波”来指代使得滤波器参数适配于例如正在被编码或者解码的局部视频内容。因此,可以基于正在被编码或者解码的局部视频内容来适配例如滤波器长度、滤波器强度等等。
此外,如在此使用的,“画面数据”指代代表原始画面或者输入画面或者其一部分的数据。因此,这种数据可以指代例如画面中的原始块和参考块之间的差,其中也被称为“残差”的这种差然后被变换、量化,以及熵编码用于例如在比特流中输出。当然,画面数据还可以包括诸如在编码/解码当前块时涉及到的代表编码模式等等的一个或多个语法元素之类的其它支持性数据。
另外,如在此使用的,“预测数据”指代同位置(即,相同位置但是在不同画面中的)块和/或一个或多个邻近块(相同画面中),或者这些块的一部分。此外,如在此使用的,“预测数据的预测值”指代来自两个或者更多个候选值的最终用于预测数据的实际值。例如,当可以从诸如滤波后的预测数据和未滤波的预测数据之类的若干候选数据集内选择预测数据时,预测数据的预测值代表从候选值中选择的并且最终使用的实际值。
另外,如在此使用的,“重构的数据”指代已经被变换和量化并且然后被逆量化和逆变换的残差数据。由于帧内预测采用要预测的块的邻近像素来执行空间预测,所以邻近像素来自重构的数据以便编码器和解码器使用相同的数据来导出预测。因此,在对于本领域和相关领域的普通技术人员显然的一些情况下,措词“预测数据”和“重构的数据”是等效的,并且因此在此可互换地使用。
此外,如在此使用的,“邻域”指代在处理数据列时、该列之上和之下的像素,在处理数据行时、该行左边和右边的像素。在此处的一个或多个实施例中,在一维中进行处理,并且因此,应用邻域的之前的定义。然而,应理解,“邻域”还更通常地指代当前像素周围的一组像素。
如上注意的,公开了用于有效的帧内色度编码的方法和装置。出于说明和描述的目的,此处在MPEG-4AVC标准上进行改进的上下文中,使用MPEG-4AVC标准作为描述的基准并且解释了超出MPEG-4AVC标准的改进和扩展,来描述示例。然而,要理解,本原理不仅仅限于MPEG-4AVC标准和/或其扩展。给出此处的提供的本原理的教导,本领域和相关领域的技术人员将容易地理解本原理可等效地应用并且在应用到其它标准的扩展或者当应用到和/或被并入到还未被开发的标准内时,将提供至少类似的益处。还应理解,本原理还可以应用到不符合标准、但是所有权定义(proprietarydefinition)认可的视频编码器和视频解码器。而且,出于简要性的缘由,使用4:2:0格式来描述本原理。然而,本领域和相关领域的普通技术人员将容易地理解,本原理可以容易地应用到其它格式(例如,4:2:2格式、4:4:4格式等等)。
转到图1,通过参考标号100总地指示可以应用本原理的示例性的视频编码器。视频编码器100包括帧排序缓冲器110,帧排序缓冲器110具有与组合器185的非反相输入端进行信号通信的输出端。组合器185的输出端与变换器和量化器125的第一输入端信号通信地连接。变换器和量化器125的输出端与熵编码器145的第一输入端和逆变换器和逆量化器150的第一输入端信号通信地连接。熵编码器145的输出端与组合器190的第一非反相输入端信号通信地连接。组合器190的输出端与输出缓冲器135的第一输入端信号通信地连接。
编码器控制器105的第一输出端被信号通信地连接到帧排序缓冲器110的第二输入端、逆变换器和逆量化器150的第二输入端、画面类型判定模块115的输入端、宏块类型(MB-类型)判定模块120的第一输入端、具有自适应色度分量滤波的帧内预测模块160的第二输入端、去块滤波器165的第二输入端、运动补偿器170的第一输入端、运动估计器175的第一输入端,以及参考画面缓冲器180的第二输入端。
编码器控制器105的第二输出端被信号通信地连接到补充增强信息(SEI)***器130的第一输入端、变换器和量化器125的第二输入端、熵编码器145的第二输入端、输出缓冲器135的第二输入端,序列参数集(SPS)和画面参数集(PPS)***器140的输入端。
SEI***器130的输出端与组合器190的第二非反相输入端信号通信地连接。
画面类型判定模块115的第一输出端与帧排序缓冲器110的第三输入端信号通信地连接。画面类型判定模块115的第二输出端与宏块类型判定模块120的第二输入端信号通信地连接。
序列参数集(SPS)和画面参数集(PPS)***器140的输出端与组合器190的第三非反相输入端信号通信地连接。
逆量化器和逆变换器150的输出端与组合器119的第一非反相输入端信号通信地连接。组合器119的输出端与具有自适应色度分量滤波的帧内预测模块160的第一输出端和去块滤波器165的第一输入端信号通信地连接。去块滤波器165的输出端与参考画面缓冲器180的第一输入端信号通信地连接。参考画面缓冲器180的输出端与运动估计器175的第二输入端和运动补偿器170的第三输入端信号通信地连接。运动估计器175的第一输出端与运动补偿器170的第二输入端信号通信地连接。运动估计器175的第二输出端与熵编码器145的第三输入端信号通信地连接。
运动补偿器170的输出端与开关197的第一输入端信号通信地连接。具有自适应色度分量滤波的帧内预测模块160的输出端与开关197的第二输入端信号通信地连接。宏块判定模块120的输出端与开关197的第三输入端信号通信地连接。开关197的第三输入端确定开关的“数据”输入端(与控制输入端,即第三输入端相比)是由运动补偿器170还是由具有自适应色度分量滤波的帧内预测模块160提供。开关197的输出端与组合器119的第二非反相输入端和组合器185的反相输入端信号通信地连接。
帧排序缓冲器110的第一输入端和编码器控制器105的输入端可用作编码器100的输入端,用于接收输入画面。此外,补充增强信息(SEI)***器130的第二输入端可用作编码器100的输入端,用于接收元数据。输出缓冲器135的输出端可用作编码器100的输出端,用于输出比特流。
转到图2,通过参考标号200总地指示可以应用本原理的示例性的视频解码器。视频解码器200包括输入缓冲器210,输入缓冲器210具有与熵解码器245的第一输入端信号通信地连接的输出端。熵解码器245的第一输出端与逆变换器和逆量化器250的第一输入端信号通信地连接。逆变换器和逆量化器250的输出端与组合器225的第二非反相输入端信号通信地连接。组合器225的输出端与去块滤波器265的第二输入端和具有自适应色度分量滤波的帧内预测模块260的第一输入端信号通信地连接。去块滤波器265的第二输出端与参考画面缓冲器280的第一输入端信号通信地连接。参考画面缓冲器280的输出端与运动补偿器270的第二输入端信号通信地连接。
熵解码器245的第二输出端被信号通信地连接到运动补偿器270的第三输入端、去块滤波器265的第一输入端、具有自适应色度分量滤波的帧内预测器260的第三输入端。熵解码器245的第三输出端与解码器控制器205的输入端信号通信地连接。解码器控制器205的第一输出端与熵解码器245的第二输入端信号通信地连接。解码器控制器205的第二输出端与逆变换器和逆量化器250的第二输入端信号通信地连接。解码器控制器205的第三输出端与去块滤波器265的第三输入端信号通信地连接。解码器控制器205的第四输出端与具有自适应色度分量滤波的帧内预测模块260的第二输入端、运动补偿器270的第一输入端、参考画面缓冲器280的第二输入端信号通信地连接。
运动补偿器270的输出端与开关297的第一输入端信号通信地连接。具有自适应色度分量滤波的帧内预测模块260的输出端与开关297的第二输入端信号通信地连接。开关297的输出端与组合器225的第一非反相输入端信号通信地连接。
输入缓冲器210的输入端可用作解码器200的输入端,用于接收输入的比特流。去块滤波器265的第一输出端可用作解码器200的输出端,用于对输出画面进行输出。
关于图1和图2,图1的帧内预测模块160和图2的帧内预测模块260中的每一个包括依据本原理执行色度分量的自适应滤波的一个或多个滤波器。
如上注意的,本原理针对用于视频编码和解码中色度分量的预测像素的自适应滤波的方法和装置。具体地,公开了通过利用自适应滤波处理对色度样本进行滤波而提供改进的色度帧内预测的方法和装置。
通常,帧内预测采用要预测的块的邻近像素来执行空间预测。这些像素来自于重构的数据,因此编码器和解码器使用相同的数据来导出预测。
具体地,关于上面描述的现有技术,针对大的块(例如具有至少8×8或者更大的块尺寸的块)的帧内预测所采用的数据经历非自适应的滤波处理以便对信号进行平滑,由此避免可能损害预测的大的值同时消除一部分噪声。迄今已经使用的现有技术的滤波器是简单的3抽头[121]/4低通滤波器。
已经观察到,该现有技术的滤波器不对色度分量提供PSNR增益。另外,主观质量看上去更差,即,滤波器引用了色度伪像。这种现有技术滤波是无价值(unproductive)的原因在于色度分量在多数区域是非常平滑的,而且包括一些边缘。滤波器使得边缘模糊,因此一个区域的色彩至少部分地迁移(migrate)和/或以其它方式进入相邻区域。这产生了观看者可注意到的令人讨厌的并且是不自然的伪像。提出使用能够处理平滑区域以及其中的边缘的、用于色度分量的自适应滤波器。要理解,依据本原理,一个或多个滤波器可以用于滤波特定的色度块。
在一个实施例中,提出了使用边缘检测器来确定是否对邻近(即,预测)数据进行自适应滤波。当在当前正在被处理的(例如编码或者解码)的特定色度块或者区域中没有检测到边缘时,利用低通滤波器对邻近数据进行滤波。如果检测到边缘,则不对邻近数据进行滤波(即,不应用滤波器)。
在另一实施例中,使用边缘检测器来确定要使用的特定滤波器。在实施例中,依赖于边缘的强度和距离,滤波器长度和滤波器强度是变化的以便适配于边缘。如在此使用的,“边缘的强度”是指边缘有多大,其可以例如通过检查在边缘的两侧处的两个像素之间的差的绝对值来确定。边缘越靠近,则滤波越短/越弱。当边缘不靠近并且其不是非常强时,将更强且更长的低通滤波应用到该区域。注意到在该实施例中,滤波器基于按像素方式(pixel-wise)进行适配和变化,而在前面的实施例中,滤波器基于按块方式进行适配和变化。
在另一实施例中,首先将线性低通滤波器应用到邻近的重构的像素。然后,对于每个像素,计算滤波后的值和未滤波的值之间的差的绝对值。如果该差的绝对值低于阈值,则保存滤波后的值(即,滤波后的值用于预测)。否则,保持未滤波的值(即,未滤波的值用于预测)。以此方式,对平滑区域进行滤波并且对具有边缘或者具有许多纹理的区域大多不进行滤波,这是由于在该实施例中,滤波后的值和未滤波的值之间的差较高。在一实施例中,阈值可能依赖于量化步长大小。
类似地,在另一实施例中,将线性低通滤波器应用到邻近的重构的像素。然后,对于每个像素,计算滤波后的值和未滤波的值之间的差的绝对值。如果该差的绝对值低于阈值,则保存滤波后的值(即,滤波后的值用于预测)。否则,最终的值是未滤波的值加上依赖于阈值以及滤波后的值的量。例如,最终的值可以是未滤波的值加上阈值,即,滤波处理在由阈值标记的值处饱和。此外,最终的值可以是未滤波的值加上阈值与未滤波的值加上阈值与滤波后的值之间的差的一半。
转到图3,通过参考标号300总地指示在视频编码器中执行色度帧内预测的示例性的方法。方法300包括开始块305,其将控制传递到功能块310。功能块310执行编码设置,并且将控制传递到循环限制块315。循环限制块315开始对要处理的当前画面中的块(例如色度块和亮度块)进行循环,并且将控制传递到功能块320。功能块320利用自适应滤波器对当前色度块的预测数据进行滤波,并且将控制传递到功能块325。功能块325执行当前色度块的帧内预测,并且将控制传递到功能块330。功能块330选择最佳的色度模式,并且将控制传递到功能块335。功能块335编码当前画面的分区、亮度和色度模式和块,并且将控制传递到循环限制块340。循环限制块340结束对块的循环,并且将控制传递到结束块399。
转到图4,通过参考标号400总地指示在视频解码器中执行帧内色度预测的示例性的方法。方法400包括开始块405,其将控制传递到循环限制块410。循环限制块410开始对要处理的当前画面中的块进行循环,并且将控制传递到功能块415。功能块415解析分区、亮度模式和色度模式,并且将控制传递到功能块420。功能块420利用自适应滤波器对当前色度块的预测数据进行滤波,并且将控制传递到功能块425。功能块425执行当前色度块的帧内预测,并且将控制传递到功能块430。功能块430解码当前的色度块,并且将控制传递到循环限制块435。循环限制块435结束对块的循环,并且将控制传递到结束块499。
转到图5,通过参考标号500总地指示在视频编码器中执行色度帧内预测的另一示例性的方法。方法500包括开始块505,其将控制传递到功能块510。功能块510执行编码设置,并且将控制传递到循环限制块515。循环限制块515开始对当前画面中的块进行循环,并且将控制传递到功能块520。功能块520利用滤波器对预测数据进行滤波,并且将控制传递到功能块525,所述滤波器将滤波器长度按像素方式适配于连续像素的差的绝对值和量化步长。功能块525计算滤波后的数据和未滤波的数据之间的差的绝对值,并且将控制传递到功能块530。如果所述差的绝对值(如功能块525计算的)小于阈值T,则功能块530使用滤波后的值作为预测数据,否则使用被阈值限定后的滤波后的值(使得所使用的值与未滤波的数据的差是T),并且将控制传递到功能块535。功能块535执行色度块的帧内预测,并且将控制传递到功能块540。功能块540选择最佳的色度模式,并且将控制传递到功能块545。功能块545编码分区、亮度和色度模式、和块,并且将控制传递到循环限制块550。循环限制块550结束对块的循环,并且将控制传递到结束块599。
转到图6,通过参考标号600总地指示在视频解码器中执行帧内色度预测的示例性的方法。方法600包括开始块605,其将控制传递到循环限制块610。循环限制块610开始对当前画面中的块进行循环,并且将控制传递到功能块615。功能块615解析分区、亮度和色度模式,并且将控制传递到功能块620。功能块620利用滤波器对预测数据进行滤波,并且将控制传递到功能块625,所述滤波器将滤波器长度按像素方式适配于连续像素的差的绝对值和量化步长。功能块625计算滤波后的数据和未滤波的数据之间的差的绝对值,并且将控制传递到功能块630。如果所述差的绝对值(如功能块625计算的)小于阈值T,则功能块630使用滤波后的值作为预测数据,否则使用被阈值限定后的滤波后的值(使得所使用的值与未滤波的数据的差是T),并且将控制传递到功能块635。功能块635执行色度块的帧内预测,并且将控制传递到功能块640。功能块640解码块,并且将控制传递到循环限制块645。循环限制块645结束对块的循环,并且将控制传递到结束块699。
现在将给出对本发明的许多伴随优点/特征中的一些的描述,它们中的一些已经在以上提到过。例如,一个优点/特征是一种具有编码画面的至少一部分的画面数据的视频编码器的装置。所述视频编码器包括自适应滤波器,对用于生成画面的该部分的色度分量的帧内预测的预测数据进行滤波。该滤波关于用于滤波的至少一个滤波器参数和是否使用滤波或者旁路滤波是自适应的。
另一优点/特征是具有如上所述的视频编码器的装置,其中自适应处理用于确定被应用到色度分量的每个像素的滤波器长度和滤波器强度中的至少一个。
又一优点/特征是具有如上所述的视频编码器的装置,其中自适应处理用于确定是使用还是旁路自适应滤波来生成用于画面的该部分的色度分量的帧内预测,自适应处理的结果依赖于预测数据。
又一优点/特征是具有视频编码器的装置,如上所述,其中自适应处理用于确定是使用还是旁路自适应滤波来生成用于画面的该部分的色度分量的帧内预测,自适应处理的结果依赖于预测数据,其中使用预测数据的局部统计来确定被应用于色度分量的每个像素的滤波器类型、滤波器长度和滤波器强度中的至少一个。
此外,另一优点/特征是具有视频编码器的装置,如上所述,其中使用预测数据的局部统计来确定被应用于色度分量的每个像素的滤波器类型、滤波器长度和滤波器强度中的至少一个,其中,局部统计包括画面的该部分中的一个或多个边缘的方差、平均值和参数中的至少一个。
另外,另一优点/特征是具有视频编码器的装置,如上所述,其中使用预测数据的局部统计来确定被应用于色度分量的每个像素的滤波器类型、滤波器长度和滤波器强度中的至少一个,其中在当前像素和至少一个邻近像素之间的差的绝对值大于或者等于阈值时,自适应处理旁路对当前像素的滤波。
此外,另一优点/特征是具有如上所述的视频编码器的装置,其中自适应处理用于确定是使用还是旁路滤波来生成画面的该部分的色度分量的帧内预测,自适应处理的结果依赖于被应用于预测数据的像素的量化步长的大小。
另外,另一优点/特征是具有如上所述的视频编码器的装置,其中对预测数据进行滤波以获得滤波后的预测数据,并且用于生成画面的该部分的色度分量的帧内预测的预测数据的预测值是预测数据和滤波后的预测数据的函数。
此外,另一优点/特征是具有视频编码器的装置,如上所述,其中对预测数据进行滤波以获得滤波后的预测数据,并且用于生成画面的该部分的色度分量的帧内预测的预测数据的预测值是预测数据和滤波后的预测数据的函数,其中该函数选择预测数据或者滤波后的预测数据中的一个作为预测值。
另外,另一优点/特征是具有视频编码器的装置,如上所述,其中对预测数据进行滤波以获得滤波后的预测数据,并且用于生成画面的该部分的色度分量的帧内预测的预测数据的预测值是预测数据和滤波后的预测数据的函数,其中预测数据和滤波后的预测数据之间的差的绝对值确定预测值。
此外,另一优点/特征是具有视频编码器的装置,如上所述,其中对预测数据进行滤波以获得滤波后的预测数据,并且用于生成画面的该部分的色度分量的帧内预测的预测数据的预测值是预测数据和滤波后的预测数据的函数,其中该函数依赖于被应用到预测数据的像素的量化步长。
相关领域的普通技术人员基于在此的教导可以很容易地获得本原理的这些和其它特征以及优点。要理解,可以以各种形式的硬件、软件、固件、专用处理器或其组合来实现本原理的教导。
最优选地,将本原理的教导实现为硬件和软件的组合。而且,可以将该软件实现为在程序存储单元上有形体现的应用程序。可以将该应用程序上载到包括任何合适架构的机器,并由其执行。优选地,在具有诸如一个或多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)、以及输入/输出(“I/O”)接口之类的硬件的计算机平台上实现该机器。该计算机平台还可以包括操作***和微指令代码。在此描述的各种处理和功能可以是由CPU可以执行的微指令代码的一部分、或者应用程序的一部分、或者是其的任何组合。此外,诸如附加数据存储单元和打印单元之类的各种其它的外设单元可与该计算机平台连接。
还要理解,因为优选地以软件实现附图中描绘的一些组成***组件和方法,所以取决于对本原理进行编程的方式,该***组件或处理功能块之间的实际连接可能有所不同。给出在此的教导,相关领域的普通技术人员将能够设想到本原理的这些和类似的实现或配置。
虽然参照附图已经在此描述了说明性的实施例,但应当理解,本原理不限于这些精确的实施例,并且相关领域的普通技术人员可以在其中实施各种改变和修改而不脱离本原理的范围或精神。所有这种改变和修改旨在被包括在所附的权利要求中所阐述的本原理的范围内。