背景技术
很多混合视频编码技术采用运动补偿和基于块的变换(例如,离散余弦变换(DCT))以减小空间域和时间域的相关性。在基于率失真(RD)的优化中变换系数的粗糙量化和缺少视觉质量约束可能引起视觉伪像。
在国际标准化组织/国际电工委员会(ISO/IEC)运动图像专家组-4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟电信分部(ITU-T)H.264建议(在下文中为“MPEG-4AVC标准”)中,采用环内去块滤波器以减少沿着编码的块边界引起的块伪像。这样的伪像由变换(DCT)系数的粗糙量化以及运动补偿的预测造成。通过将低通滤波器应用于块边缘,去块滤波器可以改善客观和主观这两者的视频质量。
转向图1,由参考标号100一般地指示能够根据MPEG-4AVC标准执行视频编码的视频编码器。
视频编码器100包括帧排序缓冲器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一般地指示能够根据MPEG-4AVC标准执行视频解码的视频解码器。
视频解码器200包括输入缓冲器210,其具有与熵解码器245的第一输入端信号通信地连接的输出端。熵解码器245的第一输出端与逆变换器和逆量化器250的第一输入端信号通信地连接。逆变换器和逆量化器250的输出端与组合器225的第二非反相输入端信号通信地连接。组合器225的输出端与去块滤波器265的第二输入端和帧内预测模块260的第一输入端信号通信地连接。去块滤波器265的第二输出端与参考画面缓冲器280的第一输入端信号通信地连接。参考画面缓冲器280的输出端与运动补偿器270的第二输入端信号通信地连接。
熵解码器245的第二输出端与运动补偿器270的第三输入端以及去块滤波器265的第一输入端信号通信地连接。熵解码器245的第三输出端与解码器控制器205的输入端信号通信地连接。解码器控制器205的第一输出端与熵解码器245的第二输入端信号通信地连接。解码器控制器205的第二输出端与逆变换器和逆量化器250的第二输入端信号通信地连接。解码器控制器205的第三输出端与去块滤波器265的第三输入端信号通信地连接。解码器控制器205的第四输出端与帧内预测模块260的第二输入端、运动补偿器270的第一输入端、以及参考画面缓冲器280的第二输入端信号通信地连接。
运动补偿器270的输出端与切换器297的第一输入端信号通信地连接。帧内预测模块260的输出端与切换器297的第二输入端信号通信地连接。切换器297的输出端与组合器225的第一非反相输入端信号通信地连接。
输入缓冲器210的输入端可用作解码器200的输入端用于接收输入比特流。去块滤波器265的第一输出端可用作解码器200的输出端用于对输出画面进行输出。
通过执行块边缘周围的样本的分析和适配滤波强度以衰减归因于块伪像的小的强度差异、同时保持与实际图像内容有关的一般较大的强度差异而操作上述去块滤波器。若干块编码模式和条件还用来指示滤波器所应用的强度。这些包括帧间/帧内预测判定和相邻块之间的编码残差以及运动差异的存在。除了块级上的自适应性之外,去块滤波器在码片级上和样本级(sample-level)上也是自适应的。在码片级,可以将滤波强度调节至视频序列的个体特性。在样本级上,依赖于样本值和基于量化器的阈值可以对每个个体样本关闭滤波。
然而,由MPEG-4AVC标准去块滤波器去除的块伪像不是在压缩视频中仅有的伪像。粗糙量化也是造成诸如振铃、边缘失真和纹理毁坏的其他伪像的原因。去块滤波器不能减小由出现在块内部的量化误差引起的伪像。此外,在去块中采用的低通滤波技术假设平滑的图像模型并且不适合于处理诸如边缘或纹理的图像奇点(singularity)。
最近,已经进行关于将基于稀疏性的去噪声方法应用于图像和视频的研究。这些方法中的一些已经包含稀疏矩阵。稀疏矩阵是主要由零占据的矩阵。
关于前述研究,特别是基于神经元科学和图像处理的发现,已经确定自然图像或视频共用将它们与随机噪声信号区分的稀疏特性。该图像和视频去噪声的稀疏特性意味着通过一些基(base)可以稀疏地分解图像和视频信号。因此,基于前述的稀疏性特性已经开发了很多算法。很多基于稀疏性的去噪声方法典型地假设真实信号可以通过少许的基本元素的线性组合被良好地近似。也就是,在变换域中稀疏地代表该信号。因此通过保留具有传送真实信号能量的高概率的少许高量值变换系数而丢弃其余的(在很大程度上由于噪声,后者具有高百分比和高可能性),可以有效地估算真实信号。
基于稀疏性的去噪声操作典型地包含以下三个基本步骤:变换;收缩(或阈值化);以及逆变换。一种利用稀疏图像模型的常用方法是使用线性变换的过完备集(over-complete set)和阈值化操作。例如,称为“k-SVD方法”的第一种现有技术方法涉及基追踪方法,其中,变换基是基于图像或视频数据库通过最小化能量函数被训练的。
与该基追踪方法不同,其他现有技术方法替代追踪适合于信号的基而将信号适配于标准基。例如,在第二种现有技术方法中,提出了滑动窗口变换域去噪声方法,其中基本思想是在通过诸如快速傅立叶变换(FFT)或离散余弦变换(DCT)的标准变换获得的局部的(窗口化的)变换域中应用收缩。连续窗口之间的重叠导致过完备。在第三种和第四种现有技术方法中,提出基于kNN(k个最近的邻居)分片(patch)的去噪声方法。替代如在第一种现有技术方法中使用重叠的空间邻居,第三和第四种现有技术方法以非局部自适应的方式搜索类似的d维区域(分片或区(area))并且然后在“分组的”区域(分片或区)上应用d+1维变换,之后是类似的收缩(阈值化)和逆变换。最终的去噪声像素是该像素的所有估算的加权平均。
在不失一般性的情况下,除了k-SVD之外,上述所有的方法均可以被认为是基于kNN区域的去噪声方法,其中对于二维(2D)情形,空间相邻分片可以被视为进行kNN的专门方法(adhoc method)。
转到图3,由参考标号300一般地指示基于kNN区域的稀疏性去噪声方法的一般框架。基于类似的标准或度量在区域簇305上执行区域(分片或区)聚类(clustering),以便“打包”310区域簇305并且获得“打包的”区域簇代表315。区域维数和大小可以是2D或3D。然后,将所选择的变换320(例如,FFT或DCT)应用于打包的区域簇代表315以为之获得稀疏代表325。变换的维数依赖于区域和区域簇维数。在变换域中,为噪声去除,经常将收缩或阈值化操作330应用于稀疏代表325,以便获得代表收缩后的结果的处理的(变换域)信号335。然后,应用逆变换340,以使处理后的(变换域)信号335回到强度域,由此提供处理后的(强度域)信号345。最后,将区域簇“解包”350,并且将内部的每个区域(分片或区)从处理后的(强度域)信号345恢复到其原始位置以便获得解包的区域簇355。在所有处理像素位置上执行循环,并且因为分片的重叠,每个像素可能具有多个估算。然后,可以将这些多个估算融合(组合,有时使用加权算法)以获得最终的去噪声的像素。对于最佳的去噪声效果,阈值的判定很重要。
受到基于稀疏性的去噪声技术的启发,在压缩去伪像的文献中已经提出一种非线性环内滤波器。该技术使用变换的过完备集合提供的去噪声估算集合。特别地,第二种现有技术方法的实施使用给定的2D正交变换H的所有可能变换Hi,诸如小波或DCT,来生成变换的过完备集合。由此,给定图像I,通过应用各种变换Hi来建立图像I的一系列不同变换版本Yi。然后每个变换的版本Yi经受典型地包括阈值化操作的去噪声过程,以产生系列的Y’i。变换的和阈值化的系数Y’i随后被逆变换回空间域,产生去噪声的估算I’i。在过完备设置中,预期一些去噪声的估算将提供比其他去噪声的估算更好的性能以及最终滤波后的版本I’将得益于经由平均化这样的去噪声的估算的组合。第二种现有技术方法的去噪声滤波器使用去噪声的估算I’i的加权平均,其中权重被最优化以强调最佳的去噪声的估算。为了更有效地处理去伪像并且去除由第二种现有技术方法造成的约束,第五种现有技术方法提出利用要滤波的画面的不同的子格(sub-lattice)采样,以便扩展超出垂直和水平分量的分析方向。此外,方向自适应去伪像滤波器从加权组合中排除源自变换的去噪声估算,这些变换类似于或紧密地对准(align)于在编码残差中使用的变换。
对于去伪像,滤波阈值的选取非常重要。应用的阈值在控制滤波器的去噪声能力以及在计算强调更好的去噪声估算中使用的平均权重中起到关键性部分的作用。不恰当的阈值选择可能导致过平滑的重构画面或者可能使得伪像的存留(persistence)。在第六种现有技术方法中提出的方法通过自适应地选择与量化噪声统计、局部编码条件、压缩需求和原始信号一致的滤波阈值而相对于第五种现有技术方法改善了性能。阈值在空间上和时间上被适配,以便最优化视频质量和/或编码成本。特别地,滤波图被建立以处理不同的阈值类。每个类选择的阈值被编码并且作为辅助信息(side information)被传送到解码器。然而,在实践中,这样的阈值的最优选择是不容易的。例如,在第六种现有技术方法中,使用穷举搜索以找到提供最高峰值信噪比(PSNR)的最佳阈值。
最后,在视频压缩中使用空间Wiener(维纳)滤波以改进编码质量。例如,在第七种现有技术方法中,基于局部空间方差在编码器被训练的Wiener滤波器用作后滤波器,以便去除量化噪声。然而,在第七种现有技术方法中,滤波器系数在比特流中作为开销(overhead)被明确地发送,由此增加了传送开销。
具体实施方式
本原理关注用于对视频编码和解码进行基于稀疏性的滤波的方法和装置。
本描述例示了本原理。由此应当理解,本领域技术人员将能够设计出虽然未在这里被显式地描述或示出的、但体现了本原理并被包括在本原理的精神和范围内的各种布置。
在这里所叙述的所有示例和条件性语言意图在于辅助读者理解本原理和由(多个)发明人为发展本领域而贡献的构思的教导的目的,并且应当被理解为不受这样的具体叙述的示例和条件的限制。
此外,在这里叙述本原理的原理、方面和实施例的所有陈述,以及其具体示例,意图包括其结构性和功能性等效物两者。另外,这样的等效物意图包括当前已知的等效物以及在将来开发的等效物二者,即所开发的无论结构如何都执行相同的功能的任何元件。
由此,例如,本领域技术人员将理解,在这里所呈现的框图代表体现本原理的例示性电路的概念视图。类似地,将理解,任何流程表、流程图、状态转换图、伪码等代表可以在计算机可读介质中被实质性地代表、并且由计算机或处理器如此执行的各种处理,而无论这样的计算机或处理器是否被显式地示出。
可以通过使用专用硬件以及能够与恰当的软件相关联而执行软件的硬件来提供图中所示的各种元件的功能。在由处理器提供时,可以由单个专用处理器、由单个共享处理器、或由多个单独的处理器(其中的一些可以被共享)来提供所述功能。此外,术语“处理器”或“控制器”的显式使用不应被理解为排他性地指代能够执行软件的硬件,而可以隐式地包括但不限于数字信号处理器(“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标准的扩展的其他视频编码标准、建议和其扩展而利用本原理,同时保持本原理的精神。
进一步,如在这里所使用的,“高级语法”指代分层级驻留在宏块层之上的比特流中呈现的语法。例如,如在这里所使用的,高级语法可以指代、但不限于在码片首标级、补充增强信息(SEI)级、画面参数集(PPS)级、序列参数集(SPS)级和网络抽象层(NAL)单元首标级处的语法。
此外,如在这里所使用的,词语“画面”和“图像”可互换地使用并且指代静止画面或来自视频序列的画面。如已知的,画面可以是帧或场。
另外,如在这里所使用的,“环外”指代:即,由于元件将在编码环的外部,所以这样的元件的输出将不影响随后的特定画面的编码或解码。此外,如在这里所使用的,“环内”指代:即,由于元件将在编码环内,所以这样的元件的输出将影响随后的特定画面的编码或解码,。
如上所述,本原理关注对于视频编码和解码进行基于稀疏性的去伪像滤波的方法和装置。
在实施例中,根据本原理的去伪像滤波器可以被配置以替换编码器和/或解码器中现有的去块滤波器。
转向图4,由参考标号400一般地指示具有代替去块滤波器的去伪像滤波器的示例视频编码器。
视频编码器400包括帧排序缓冲器410,其具有与组合器485的非反相输入端进行信号通信的输出端。组合器485的输出端与变换器和量化器425的第一输入端信号通信地连接。变换器和量化器425的输出端与熵编码器445的第一输入端、以及逆变换器和逆量化器450的第一输入端信号通信地连接。熵编码器445的输出端与组合器490的第一非反相输入端信号通信地连接。组合器490的输出端与输出缓冲器435的第一输入端信号通信地连接。
编码器控制器405的第一输出端与帧排序缓冲器410的第二输入端、逆变换器和逆量化器450的第二输入端、画面类型判定模块415的输入端、宏块类型(MB类型)判定模块420的第一输入端、帧内预测模块460的第二输入端、去伪像滤波器465的第二输入端、运动补偿器470的第一输入端、运动估算器475的第一输入端,以及参考画面缓冲器480的第二输入端信号通信地连接。
编码器控制器405的第二输出端与补充增强信息(SEI)插入器430的第一输入端、变换器和量化器425的第二输入端、熵编码器445的第二输入端、输出缓冲器435的第二输入端、以及序列参数集(SPS)和画面参数集(PPS)插入器440的输入端信号通信地连接。
SEI插入器430的输出端与组合器490的第二非反相输入端信号通信地连接。
画面类型判定模块415的第一输出端与帧排序缓冲器410的第三输入端信号通信地连接。画面类型判定模块415的第二输出端与宏块类型判定模块420的第二输入端信号通信地连接。
序列参数集(SPS)和画面参数集(PPS)插入器440的输出端与组合器490的第三非反相输入端信号通信地连接。
逆量化器和逆变换器450的输出端与组合器419的第一非反相输入端信号通信地连接。组合器419的输出端与帧内预测模块460的第一输入端以及去伪像滤波器465的第一输入端信号通信地连接。去伪像滤波器465的输出端与参考画面缓冲器480的第一输入端信号通信地连接。参考画面缓冲器480的输出端与运动估算器475的第二输入端以及运动补偿器470的第三输入端信号通信地连接。运动估算器475的第一输出端与运动补偿器470的第二输入端信号通信地连接。运动估算器475的第二输出端与熵编码器445的第三输入端信号通信地连接。
运动补偿器470的输出端与切换器497的第一输入端信号通信地连接。帧内预测模块460的输出端与切换器497的第二输入端信号通信地连接。宏块类型判定模块420的输出端与切换器497的第三输入端信号通信地连接。切换器497的第三输入端确定该切换器的“数据”输入端(与控制输入端,即第三输入端作比较)是由运动补偿器470提供还是由帧内预测模块460提供。切换器497的输出端与组合器419的第二非反相输入端以及组合器485的反相输入端信号通信地连接。
帧排序缓冲器410的第一输入端以及编码器控制器405的输入端可用作编码器400的输入端用于接收输入画面。此外,补充增强信息(SEI)插入器430的第二输入端可用作编码器400的输入端用于接收元数据。输出缓冲器435的输出端可用作编码器400的输出端用于输出比特流。
转向图5,由参考标号500一般地指示具有替代去块滤波器的去伪像滤波器的示例视频解码器。
视频解码器500包括输入缓冲器510,其具有与熵解码器545的第一输入端信号通信地连接的输出端。熵解码器545的第一输出端与逆变换器和逆量化器550的第一输入端信号通信地连接。逆变换器和逆量化器550的输出端与组合器525的第二非反相输入端信号通信地连接。组合器525的输出端与去伪像滤波器565的第二输入端以及帧内预测模块560的第一输入端信号通信地连接。去伪像滤波器565的第二输出端与参考画面缓冲器580的第一输入端信号通信地连接。参考画面缓冲器580的输出端与运动补偿器570的第二输入端信号通信地连接。
熵解码器545的第二输出端与运动补偿器570的第三输入端以及去伪像滤波器565的第一输入端信号通信地连接。熵解码器545的第三输出端与解码器控制器505的输入端信号通信地连接。解码器控制器505的第一输出端与熵解码器545的第二输入端信号通信地连接。解码器控制器505的第二输出端与逆变换器和逆量化器550的第二输入端信号通信地连接。解码器控制器505的第三输出端与去伪像滤波器565的第三输入端信号通信地连接。解码器控制器505的第四输出端与帧内预测模块560的第二输入端、运动补偿器570的第一输入端以及参考画面缓冲器580的第二输入端信号通信地连接。
运动补偿器570的输出端与切换器597的第一输入端信号通信地连接。帧内预测模块560的输出端与切换器597的第二输入端信号通信地连接。切换器597的输出端与组合器525的第一非反相输入端信号通信地连接。
输入缓冲器510的输入端可用作解码器500的输入端用于接收输入比特流。去伪像滤波器565的第一输出端可用作解码器500的输出端用于对输出画面进行输出。
在实施例中,根据本原理的去伪像滤波器可以被配置为编码器和/或解码器中现有的去块滤波器之后。
转向图6,由参考标号600一般地指示具有被配置在去块滤波器之后的去伪像滤波器的示例视频编码器。
视频编码器600包括帧排序缓冲器610,其具有与组合器685的非反相输入端信号通信地连接的输出端。组合器685的输出端与变换器和量化器625的第一输入端信号通信地连接。变换器和量化器625的输出端与熵编码器645的第一输入端以及逆变换器和逆量化器650的第一输入端信号通信地连接。熵编码器645的输出端与组合器690的第一非反相输入端信号通信地连接。组合器690的输出端与输出缓冲器635的第一输入端信号通信地连接。
编码器控制器605的第一输出端与帧排序缓冲器610的第二输入端、逆变换器和逆量化器650的第二输入端、画面类型判定模块615的输入端、宏块类型(MB类型)判定模块620的第一输入端、帧内预测模块660的第二输入端、去块滤波器665的第二输入端、去伪像滤波器613的第二输入端、运动补偿器670的第一输入端、运动估算器675的第一输入端以及参考画面缓冲器680的第二输入端信号通信地连接。
编码器控制器605的第二输出端与补充增强信息(SEI)插入器630的第一输入端、变换器和量化器625的第二输入端、熵编码器645的第二输入端、输出缓冲器635的第二输入端以及序列参数集(SPS)和画面参数集(PPS)插入器640的输入端信号通信地连接。
SEI插入器630的输出端与组合器690的第二非反相输入端信号通信地连接。
画面类型判定模块615的第一输出端与帧排序缓冲器610的第三输入端信号通信地连接。画面类型判定模块615的第二输出端与宏块类型判定模块620的第二输入端信号通信地连接。
序列参数集(SPS)和画面参数集(PPS)插入器640的输出端与组合器690的第三非反相输入端信号通信地连接。
逆量化器和逆变换器650的输出端与组合器619的第一非反相输入端信号通信地连接。组合器619的输出端与帧内预测模块660的第一输入端以及去块滤波器665的第一输入端信号通信地连接。去块滤波器665的输出端与去伪像滤波器613的第一输入端信号通信地连接。去伪像滤波器613的输出端与参考画面缓冲器680的第一输入端信号通信地连接。参考画面缓冲器680的输出端与运动估算器675的第二输入端以及运动补偿器670的第三输入端信号通信地连接。运动估算器675的第一输出端与运动补偿器670的第二输入端信号通信地连接。运动估算器675的第二输出端与熵编码器645的第三输入端信号通信地连接。
运动补偿器670的输出端与切换器697的第一输入端信号通信地连接。帧内预测模块660的输出端与切换器697的第二输入端信号通信地连接。宏块类型判定模块620的输出端与切换器697的第三输入端信号通信地连接。切换器697的第三输入端确定该切换器的“数据”输入端(与控制输入端,即第三输入端作比较)是由运动补偿器670提供还是由帧内预测模块660提供。切换器697的输出端与组合器619的第二非反相输入端以及组合器685的反相输入端信号通信地连接。
帧排序缓冲器610的第一输入端以及编码器控制器605的输入端可用作编码器600的输入端用于接收输入画面。此外,补充增强信息(SEI)插入器630的第二输入端可用作编码器600的输入端用于接收元数据。输出缓冲器635的输出端可用作编码器600的输出端用于输出比特流。
转向图7,由参考标号700一般地指示具有被配置在去块滤波器之后的去伪像滤波器的示例视频解码器。
视频解码器700包括输入缓冲器710,其具有与熵解码器745的第一输入端信号通信地连接的输出端。熵解码器745的第一输出端与逆变换器和逆量化器750的第一输入端信号通信地连接。逆变换器和逆量化器750的输出端与组合器725的第二非反相输入端信号通信地连接。组合器725的输出端与去块滤波器765的第二输入端以及帧内预测模块760的第一输入端信号通信地连接。去块滤波器765的第二输出端与去伪像滤波器713的第二输入端信号通信地连接。去伪像滤波器713的输出端与参考画面缓冲器780的第一输入端信号通信地连接。参考画面缓冲器780的输出端与运动补偿器770的第二输入端信号通信地连接。
熵解码器745的第二输出端与运动补偿器770的第三输入端以及去块滤波器765的第一输入端信号通信地连接。熵解码器745的第三输出端与解码器控制器705的输入端信号通信地连接。解码器控制器705的第一输出端与熵解码器745的第二输入端信号通信地连接。解码器控制器705的第二输出端与逆变换器和逆量化器750的第二输入端信号通信地连接。解码器控制器705的第三输出端与去块滤波器765的第三输入端以及去伪像滤波器713的第一输入端信号通信地连接。解码器控制器705的第四输出端与帧内预测模块760的第二输入端、运动补偿器770的第一输入端、以及参考画面缓冲器的第二输入端信号通信地连接。
运动补偿器770的输出端与切换器797的第一输入端信号通信地连接。帧内预测模块760的输出端与切换器797的第二输入端信号通信地连接。切换器797的输出端与组合器725的第一非反相输入端信号通信地连接。
输入缓冲器710的输入端可用作解码器700的输入端用于接收输入比特流。去块滤波器765的第一输出端可用作解码器700的输出端用于对输出画面进行输出。
在实施例中,根据本原理的去伪像滤波器可以被配置为编码器和/或解码器中的后处理滤波器。
转向图8,由参考标号800一般地指示具有被配置为后处理滤波器的去伪像滤波器的示例视频编码器。
视频编码器800包括帧排序缓冲器810,其具有与组合器885的非反相输入端信号通信地连接的输出端。组合器885的输出端与变换器和量化器845的第一输入端信号通信地连接。变换器和量化器825的输出端与熵编码器845的第一输入端以及逆变换器和逆量化器850的第一输入端信号通信地连接。熵编码器845的输出端与组合器890的第一非反相输入端信号通信地连接。组合器890的输出端与输出缓冲器835的第一输入端信号通信地连接。
编码器控制器805的第一输出端与帧排序缓冲器810的第二输入端、逆变换器和逆量化器850的第二输入端、画面类型判定模块815的输入端、宏块类型(MB类型)判定模块820的第一输入端、帧内预测模块860的第二输入端、去块滤波器865的第二输入端、去伪像滤波器813的第二输入端、运动补偿器870的第一输入端、运动估算器875的第一输入端以及参考画面缓冲器880的第二输入端信号通信地连接。
编码器控制器805的第二输出端与补充增强信息(SEI)插入器830的第一输入端、变换器和量化器825的第二输入端、熵编码器845的第二输入端、输出缓冲器835的第二输入端以及序列参数集(SPS)和画面参数集(PPS)插入器840的输入端信号通信地连接。
SEI插入器830的输出端与组合器890的第二非反相输入端信号通信地连接。
画面类型判定模块815的第一输出端与帧排序缓冲器810的第三输入端信号通信地连接。画面类型判定模块815的第二输出端与宏块类型判定模块820的第二输入端信号通信地连接。
序列参数集(SPS)和画面参数集(PPS)插入器840的输出端与组合器890的第三非反相输入端信号通信地连接。
逆量化器和逆变换器850的输出端与组合器819的第一非反相输入端信号通信地连接。组合器819的输出端与帧内预测模块860的第一输入端以及去块滤波器865的第一输入端信号通信地连接。去块滤波器865的第一输出端与去伪像滤波器813的第一输入端信号通信地连接。去块滤波器865的第二输出端与参考画面缓冲器880的第一输入端信号通信地连接。参考画面缓冲器880的输出端与运动估算器875的第二输入端以及运动补偿器870的第三输入端信号通信地连接。运动估算器875的第一输出端与运动补偿器870的第二输入端信号通信地连接。运动估算器875的第二输出端与熵编码器845的第三输入端信号通信地连接。
运动补偿器870的输出端与切换器897的第一输入端信号通信地连接。帧内预测模块860的输出端与切换器897的第二输入端信号通信地连接。宏块类型判定模块820的输出端与切换器897的第三输入端信号通信地连接。切换器897的第三输入端确定该切换器的“数据”输入端(与控制输入端,即第三输入端比较)是由运动补偿器870提供还是由帧内预测模块860提供。切换器897的输出端与组合器819的第二非反相输入端和组合器885的反相输入端信号通信地连接。
帧排序缓冲器810的第一输入端和编码器控制器805的输入端可用作编码器800的输入端用于接收输入画面。此外,补充增强信息(SEI)插入器830的第二输入端可用作编码器800的输入端用于接收元数据。输出缓冲器835的输出端和去伪像滤波器813的输出端每个可用作编码器800的输出端用于输出比特流。
转到图9,由参考标号900一般地指示具有被配置为后处理滤波器的去伪像滤波器的另一示例视频解码器。
视频解码器900包括输入缓冲器910,其具有与熵解码器945的第一输入端信号通信地连接的输出端。熵解码器945的第一输出端与逆变换器和逆量化器950的第一输入端信号通信地连接。逆变换器和逆量化器950的输出端与组合器925的第二非反相输入端信号通信地连接。组合器925的输出端与去块滤波器965的第二输入端以及帧内预测模块960的第一输入端信号通信地连接。去块滤波器965的第二输出端与去伪像滤波器913的第二输入端信号通信地连接。去块滤波器965的第一输出端与参考画面缓冲器980的第一输入端信号通信地连接。参考画面缓冲器980的输出端与运动补偿器970的第二输入端信号通信地连接。
熵解码器945的第二输出端与运动补偿器970的第三输入端以及去块滤波器965的第一输入端信号通信地连接。熵解码器945的第三输出端与解码器控制器905的输入端信号通信地连接。解码器控制器905的第一输出端与熵解码器945的第二输入端信号通信地连接。解码器控制器905的第二输出端与逆变换器和逆量化器950的第二输入端信号通信地连接。解码器控制器905的第三输出端与去块滤波器965的第三输入端以及去伪像滤波器913的第一输入端信号通信地连接。解码器控制器905的第四输出端与帧内预测模块960的第二输入端、运动补偿器970的第一输入端以及参考画面缓冲器980的第二输入端信号通信地连接。
运动补偿器970的输出端与切换器997的第一输入端信号通信地连接。帧内预测模块960的输出端与切换器997的第二输入端信号通信地连接。切换器997的输出端与组合器925的第一非反相输入端信号通信地连接。
输入缓冲器910的输入端可用作解码器900的输入端用于接收输入比特流。去块滤波器965的第一输出端可用作解码器900的输出端用于对输出画面进行输出。
由此,根据本原理,在此关于利用了基于稀疏性的去噪声方法的新的去伪像框架描述了实施例。在各种实施例中,去伪像可能涉及替换现有的去块滤波器的去伪像滤波器(图4和图5)、被配置在现有的去块滤波器之后的去伪像滤波器(图6和图7)、以及被配置为后处理滤波器的去伪像滤波器(图8和图9)。
在实施例中,在变换域中实施新的去伪像框架,其中自适应地选择和应用去伪像滤波。在一优选实施例中,使用变换域Wiener滤波器。将该方法论称作在变换域中使用自适应滤波的基于区域的稀疏性去伪像框架。本原理的一个明显优点是所需的开销很小。与以前的方法比较,不需要搜索阈值(如第六种现有技术方法所需的),并且此外,不需要发送Wiener滤波器系数(如第七种现有技术方法所需的)。例示并描述了各种实施例,例如,它们由变换维数区分。本原理针对减小视频压缩中呈现的量化伪像以及改进视频压缩编码器和解码器中客观和主观这两者的性能。
在实施例中,提出一种基于区域(或分片或区)的稀疏性去伪像框架,其具有在变换域利用的自适应滤波。该框架被分为两阶段。在第一阶段中,通过基于区域维数的变换(诸如2D、3D或4D变换)将视频信号的重叠的区域(分片、区)分解(变换)为频域。在优选实施例中,变换域Wiener滤波器然后被应用于噪声变换系数,之后是逆变换。其后,所有处理后的区域恢复到它们的原始位置。在另一实施例中,由于区域重叠获得相同像素的多个估算。在第二阶段中,对于每个像素,使用自适应基于稀疏性的滤波以从信号的冗余代表融合(fuse)(或另外地组合或加权)多个估算。去伪像框架也需要考虑视频编码(或量化)统计。
在一个实施例中,通过滑动窗口实现重叠的分片。在另一个实施例中,通过kNN非局部搜索实现重叠的分片。该搜索可以在当前画面或空间-时间相邻的画面中。分片的维数可以是2D或3D等等。如在视频压缩领域众所周知的,2D指代画面、帧、码片等等的空间维数。3D额外地添加考虑多于一个的时间画面、码片或帧之间的时间元素。基于区域、分片或区的维数以及区域、分片或区的特性,应用的(多个)变换可以是2D、3D、4D等等。由于添加的区域、分片或区的分组的维数,出现第四维元素。在一个实施例中,可以使用2D/3D/4D DCT。在另一个实施例中,可以使用2D/3D/4D FFT。此外,应理解本原理不限于任何特定变换,例如FFT或DCT,由此,也可以应用任何其他变换,诸如小波变换,同时保持本原理的精神。
对于利用Wiener滤波器的实施例,其按照下面的方程式在变换域中实施为逐元素相乘,其中λ是变换域中的系数并且
是重构像素的估算的噪声,Λ(λ)是λ的滤波系数:
在上面的公式中,仅
是未知元素。将
计算为原始信号和重构信号之差的标准偏差。在一个实施例中,使用平均绝对差(MAD)计算
可以被编码为高/宏块级语法并被发送到解码器。在一个实施例中,例如在网络抽象层(NAL)单元首标、序列参数集(SPS)、画面参数集(PPS)、视图参数集(VPS)、码片首标等等中,
作为高级语法被发送。在另一个实施例中,
在宏块级被编码为开销。应理解的是虽然在此描述的一个或多个实施例使用Wiener滤波器,但是本原理并不仅仅限于Wiener滤波器,并由此可以根据本原理使用基于一些性能度量或参数可以以自适应的方式应用的任何其他滤波器,同时保持本原理的精神。
对于第二阶段的融合,在一个实施例中,权重被近似为变换中非零系数的数目或其他与稀疏性相关的值。在另一个实施例中,可以使用简单的平均化。当然,本原理并不限于关于第二状态的前述的方法,并由此也可以在第二阶段中使用其它方法,同时保持本原理的精神。
去伪像滤波器需要考虑量化噪声统计、编码模式和运动信息、局部编码条件、压缩需求以及原始信号的特性。滤波器在空间和时间两者上被适配,以最优化视频质量和/或编码成本。在一个实施例中,为了避免过平滑效果,在某些条件下不对像素进行滤波,诸如,在SKIP(跳过)模式或DIRECT(直接)模式下,或对于具有关于相邻块小的运动差的、不具有残差的块。在另一个实施例中,如果上面的滤波器不足够强大以去除所有伪像,那么在去伪像滤波器之前或之后实施二次滤波器。二次滤波器可以是例如,但不限于低通滤波器或第二轮(second round)去伪像滤波器。此外,在一实施例中,二次滤波器可以在去伪像滤波之后应用于帧内宏块。
如上所述,根据本原理的去伪像滤波器可以用于不同类型的编码图。在一个实施例中,其可以用作环外滤波器(即,如图8和图9所示的后滤波器)。在另一个实施例中,其可以用作环内滤波器,或者替换MPEG-4AVC编码器和/或解码器的去块滤波器(如图4和图5所示),或可以与去块滤波一起被应用(如图6和图7所示)。
如表1示出对应于本原理的一个或多个实施例的示例码片首标语法。
表1
Slice_header(){ |
C |
描述符 |
... |
|
|
Deart_filter_present_flag |
2 |
u(1) |
if(deart_filter_present_flag){ |
|
|
filter_selection_type |
2 |
u(2) |
noise_power |
2 |
u(10) |
} |
|
|
... |
|
|
} |
|
|
表1中一些语法元素的语义如下:
deart_filter_present_flag等于1指定在码片首标中存在控制去伪像滤波器的特性的语法元素集合。deart_filter_present_flag等于0指定在码片首标中不存在控制去伪像滤波器的特性的语法元素集合并且它们所推断的值无效。
filter_selection_type指定去伪像中使用的滤波器配置。filter_selection_type等于0指定方向自适应去伪像滤波将被禁用。filter_selection_type等于1指定使用环外去伪像滤波。filter_selection_type等于2指定使用没有去块滤波器的环内去伪像滤波。filter_selection_type等于3指定使用具有去块滤波的环内去伪像滤波。
noise_power指定用于Wiener滤波器的噪声功率的值。
转向图10,由参考标号1000一般地指示用于在编码器执行基于稀疏性的去伪像滤波的示例方法。方法1000包括开始块1005,其向功能块1010传递控制。功能块1010执行初始化(在一实施例中,其包含估算滤波参数)并且向循环限制块1015传递控制。循环限制块在所有处理像素上开始循环并且向功能块1020传递控制。功能块1020对于每个处理像素执行kNN分片聚类并且向功能块1025传递控制。功能块1025实施稀疏性约束,并且向循环限制块1030传递控制。循环限制块1030结束所有处理像素上的循环,并且向循环限制块1035传递控制。循环限制块1035开始所有处理像素的循环并且向功能块1040传递控制。功能块1040为每个像素生成多个假定融合,并向循环限制块1045传递控制。循环限制块1045结束所有像素的循环,并且向功能块1050传递控制。功能块1050编码语法并且向结束块1099传递控制。
功能块1025包含功能块1025A、1025B以及1025C。功能块1025A执行变换并向功能块1025B传递控制。功能块1025B执行滤波并且向功能块1025C传递控制。功能块1025C执行逆变换。
由于不是所有的像素需要被处理,以减小视频中通常存在的重叠区域的给定复杂性,所以关于方法1000至少参考的处理像素可以少于画面、区域、块等等的所有像素。
转向图11,由参考标号1100一般地指示用于在解码器执行基于稀疏性的去伪像滤波的示例方法。方法1100包括开始块1105,其向功能块1110传递控制。功能块1110分析语法(以例如收集滤波参数),并且向循环限制块1115传递控制。循环限制块1115开始所有处理像素的循环,并且向功能块1120传递控制。功能块1120为每个处理像素执行kNN分片聚类,并且向功能块1125传递控制。功能块1125实施稀疏性约束,并且向循环限制块1130传递控制。循环限制块1130结束所有处理像素的循环,并且向循环限制块1135传递控制。循环限制块1135开始所有像素的循环,并且向功能块1140传递控制。功能块1140为每个像素执行多个假定融合,并向循环限制块1145传递控制。循环限制块1145结束所有像素的循环,并且向结束块1150传递控制。
功能块1125包含功能块1125A、1125B和1125C。功能块1125A执行变换,并且向功能块1125B传递控制。功能块1125B执行滤波,并且向功能块1125C传递控制。功能块1125C执行逆变换。
现在将给出对本发明的许多伴随的优点/特征中的一些的描述,所述优点/特征中的一些已经在上面被提及。例如,一个优点/特征是一种具有编码器的装置,该编码器通过以下操作来编码图像的至少一部分:基于分组度量对所述部分内的区域进行分组、变换分组后的区域、使用编码器中包括的去伪像滤波器对变换的区域自适应地执行去伪像滤波、逆变换去伪像的区域以建立替换区域,以及将替换区域恢复到分组之前取得该区域的图像的位置。
另一优点/特征为如上所述的具有编码器的装置,其中,去伪像滤波器可配置用于环内配置和环外配置中的任一个。
又一优点/特征是具有编码器的装置,其中,如上所述,去伪像滤波器可配置用于环内配置和环外配置中的任一个,其中当去伪像滤波器应用于环内配置时,该去伪像滤波器替换去块滤波器。
又一优点/特征是具有编码器的装置,其中如上所述,去伪像滤波器可配置用于环内配置和环外配置中的任一个,其中编码器包括去块滤波器,并且去伪像滤波器被配置为在去块滤波器之后使用。
此外,另一优点/特征是如上所述的具有编码器的装置,其中图像的区域对应于两维或更多维。
进一步,另一优点/特征是如上所述的具有编码器的装置,其中使用能够在两维或更多维操作的变换来变换分组的区域。
另外,另一优点/特征是如上所述的具有编码器的装置,其中去伪像滤波器是Wiener滤波器。
此外,另一优点/特征是如上所述具有编码器的装置,其中在恢复之前使用权重来组合替换区域。
此外,另一优点/特征是具有编码器的装置,其中如上所述,在恢复之前使用权重来组合替换区域,其中变换分组的区域以为之获得变换稀疏性值,以及响应于该变换稀疏性值确定权重。
进一步,另一优点/特征是如上所述的具有编码器的装置,其中响应于量化噪声度量、编码模式度量、运动信息度量、局部编码条件度量以及压缩需求度量中的至少一个,自适应地选择去伪像滤波的类型和强度中的至少一个。
另外,另一优点/特征是如上所述的具有编码器的装置,其中在去伪像滤波器之前或之后应用二次滤波器。
可以由相关领域中的普通技术人员基于这里的教导容易地确定本原理的这些和其他特征和优点。应当理解,可以以各种形式的硬件、软件、固件、专用处理器或其组合来实施本原理的教导。
最优选地,作为硬件和软件的组合来实施本原理的教导。此外,将所述软件作为在程序存储单元上被有形体现的应用程序来实施。所述应用程序可以被上载至包括任何合适的架构的机器,并且由所述机器执行。优选地,在具有诸如一个或多个的中央处理单元(“CPU”)、随机存取存储器(“RAM”)和输入/输出(“I/O”)接口之类的硬件的计算机平台上实施所述机器。所述计算机平台还可以包括操作系统和微指令代码。在这里所描述的各种处理和功能可以是由CPU执行的微指令代码的一部分、或应用程序的一部分、或其任何组合。另外,诸如附加的数据存储单元和打印单元之类的各种其他外设单元可以与该计算机平台连接。
应当进一步理解,因为优选地以软件来实施在附图中所描绘的系统构成组件和方法中的一些,所以依赖于本原理被编程的方式,系统组件或处理功能块之间的实际连接可能是不同的。给定这里的教导,相关领域普通技术人员将能够设想到本原理的这些和类似的实施方案或配置。
虽然在这里已经参考附图描述了例示性的实施例,但应当理解,本原理不限于这些精确的实施例,而相关领域普通技术人员可以在其中实现各种改变和修改,而不脱离本原理的范围或精神。意图将所有这样的改变和修改包括在如在所附权利要求中所提出的本原理的范围内。