首页 / 专利库 / 视听技术与设备 / / 使用基于图案的块滤波进行视频编码和解码的方法和装置

使用基于图案的滤波进行视频编码和解码的方法和装置

阅读:1088发布:2020-05-08

专利汇可以提供使用基于图案的滤波进行视频编码和解码的方法和装置专利检索,专利查询,专利分析的服务。并且提供了用于 视频编码 和解码的方法(1100,1300)和装置(600,1200)。视频编码的方法包括: 访问 (1110)与视频的图片中的 块 相对应的重构块,基于所述块的属性确定(1120)至少一个 滤波器 图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波(1130)。视频解码的方法包括:访问(1310)与编码视频的图片中的块相对应的重构块,基于所述块的属性确定(1320)至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波(1330)。还描述了被格式化为包含编码数据的比特流、计算机可读存储介质和 计算机程序 产品。,下面是使用基于图案的滤波进行视频编码和解码的方法和装置专利的具体信息内容。

1.一种视频编码的方法(1100),包括:
访问(1110)与视频的图片中的相对应的重构块;
确定(1120)与所述重构块所属的块类别相关联的若干个滤波器图案的当前集合,所述块类别由块形状和块尺寸中的至少一个来定义;
响应于为所述重构块的至少一个样本计算的局部梯度,在所述若干个滤波器图案的当前集合之中为所述至少一个样本确定(1120)至少一个滤波器图案,所述滤波器图案定义双边滤波器的支持;以及
使用其支持由所述至少一个滤波器图案定义的所述双边滤波器对所述至少一个样本进行滤波(1130)。
2.一种用于视频编码的装置,包括:
用于访问与视频的图片中的块相对应的重构块的部件;
用于确定与所述重构块所属的块类别相关联的若干个滤波器图案的当前集合的部件,所述块类别由块形状和块尺寸中的至少一个来定义;
用于响应于为所述重构块的至少一个样本计算的局部梯度,在所述若干个滤波器图案的当前集合之中为所述至少一个样本确定至少一个滤波器图案的部件,所述滤波器图案定义双边滤波器的支持;以及
用于使用其支持由所述至少一个滤波器图案定义的所述双边滤波器对所述至少一个样本进行滤波的部件。
3.一种视频解码的方法(1300),包括:
访问(1310)与编码视频的图片中的块相对应的重构块;
确定(1320)与所述重构块所属的块类别相关联的若干个滤波器图案的当前集合,所述块类别由块形状和块尺寸中的至少一个来定义;
响应于为所述重构块的至少一个样本计算的局部梯度,在所述若干个滤波器图案的当前集合之中为所述至少一个样本确定(1320)至少一个滤波器图案,所述滤波器图案基于所述块的属性定义双边滤波器的支持;以及
使用其支持由所述至少一个滤波器图案定义的、根据所述至少一个滤波器图案的所述双边滤波器对所述重构块至少一个样本进行滤波(1330)。
4.一种用于视频解码的装置,包括:
用于访问与编码视频的图片中的块相对应的重构块的部件;
用于确定与所述重构块所属的块类别相关联的若干个滤波器图案的当前集合的部件,所述块类别由块形状和块尺寸中的至少一个来定义;
用于响应于为所述重构块的至少一个样本计算的局部梯度,在所述若干个滤波器图案的当前集合之中为所述至少一个样本确定至少一个滤波器图案的部件,所述滤波器图案基于所述块的属性定义双边滤波器的支持;以及
用于使用其支持由所述至少一个滤波器图案定义的、根据所述至少一个滤波器图案的所述双边滤波器对所述重构块至少一个样本进行滤波的部件。
5.根据权利要求1或3所述的方法,或者根据权利要求2或4所述的装置,其中,在平和垂直梯度之和低于对梯度的加权和的情况下,所述至少一个滤波器图案是十字形图案,否则,所述至少一个滤波器图案是对角线图案。
6.根据权利要求3所述的方法或者根据权利要求4所述的装置,其中,所述块的所述属性包括视频编码器处的所述块的对应重构块的至少一个局部梯度的函数。
7.根据权利要求1和6中任一项所述的方法或者根据权利要求2和6中任一项所述的装置,其中,在所编码的视频中包括指示所述滤波器图案的至少一个语法元素。
8.根据权利要求7所述的方法或者根据权利要求7所述的装置,其中,所述至少一个语法元素在以下中的一种之中被共享:所述块中的多个像素、所述图片中的多个块、所述图片中的多个切片以及所述视频中的多个图片。
9.根据权利要求7-8中任一项所述的方法或者根据权利要求7-8中任一项所述的装置,其中,通过从所编码的视频中取得所述至少一个语法元素在视频解码器处确定所述至少一个滤波器图案。
10.根据权利要求5-9中任一项所述的方法或者根据权利要求5-9中任一项所述的装置,其中,还响应于所述重构块的形状和尺寸中的至少一个来确定所述至少一个滤波器图案。
11.根据权利要求10所述的方法或装置,其中,滤波器图案集合与由块形状和块尺寸中的至少一个定义的每个块类别相关联,还响应于所述重构块的形状和尺寸中的至少一个来确定所述至少一个滤波器图案包括:
-响应于所述重构块的形状和所述重构块的尺寸中的至少一个对所述重构块进行分类,以获得当前块类别;以及
-确定与所述当前块类别相关联的滤波器图案集合。
12.根据权利要求1、3和5-11中任一项所述的方法或者根据权利要求2、4和5-11中任一项所述的装置,其中,所述滤波由双边滤波器执行。
13.根据权利要求1、3和5-12中任一项所述的方法或者根据权利要求2、4和5-12中任一项所述的装置,其中,所述至少一个滤波器图案是十字形图案、对角线图案、正方形图案、水平十字形图案、垂直十字形图案、对角线-左图案、对角线-右图案、部分十字形图案、部分对角线图案、部分正方形图案、部分水平十字形图案、部分垂直十字形图案、部分对角线-左图案和部分对角线-右图案中的至少一种。
14.一种计算机程序产品,包括用于执行根据权利要求1、3和5-13中任一项所述的方法的程序代码指令。
15.一种承载软件程序的计算机可读存储介质,所述软件程序包括用于根据权利要求
1、3和5-13中任一项所述的方法的程序代码指令。
16.一种被格式化为包含表示图片的块的编码数据的比特流,所述编码数据根据权利要求1和5-13中任一项进行编码。

说明书全文

使用基于图案的滤波进行视频编码和解码的方法和装置

技术领域

[0001] 本实施例总体上涉及视频编码和解码,具体地涉及重构块的基于图案的块滤波。

背景技术

[0002] 在此描述的任何背景信息旨在向读者介绍本领域的各个方面,其可能与下面描述的本实施例有关。相信该讨论有助于向读者提供背景信息,以便于更好地理解本公开的各个方面。因此,应当理解,要在该度上阅读这些陈述。
[0003] 为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。通常,使用内或帧间预测来利用帧内或帧间相关性,然后对原始图像和预测图像之间的差异(通常表示为预测误差或预测残差)进行变换、量化和熵编码。为了重构视频,通过与预测、变换、量化和熵编码相对应的逆过程来对压缩数据进行解码。
[0004] 可以在重构图片或图像之后执行后置滤波,以使其平滑并减少噪声和编码伪像,同时保留边缘。最近,可以对图片的每个重构块执行块滤波(或环内块滤波)。图1示出了根据现有技术的对图片(或图片的切片)的重构块进行块滤波100相对于后置滤波150的方法的简化流程图。在后置滤波150中,在访问160、解码和重构170图片中的所有块(或一组块)之后,对所有块(或一组块,例如切片)执行滤波180。在块滤波100中,每个块在被访问110、解码和重构120之后进行滤波130。
[0005] 块滤波100的使用导致了一些优点。首先,滤波后的块可以用于预测下个块和/或相邻块(帧内预测),导致改进的预测。其次,在消除伪像之后,使用率失真优化(RDO)对滤波后的重构块选择编码模式,导致改善的选取。
[0006] 块滤波的一个示例是双边滤波器(BLF),其是图像的非线性的、保留边缘的和降低噪声的平滑滤波器。它利用来自附近像素的强度值的加权平均值来代替像素的强度。权重可以基于高斯分布。当前的联合视频探索小组(JVET)联合探索测试模型(JEM)参考软件(Jianle Chen等人的“联合探索测试模型5(JEM 5)的算法描述(Algorithm Description of Joint Exploration Test Model5(JEM 5))”)对图片的每个块(更具体地为每个编码单元(CU))采用双边滤波(J. 等人的文档JVET-F0034,标题为“与EE2-JVET有关:无除法的双边滤波器(EE2-JVET related:Division-free bilateral filter)”,ITU-T SG16WP 3和ISO/IEC JTC 1/SC 29/WG 11的JVET,第6次会议:澳大利亚霍巴特,2017年3月31日至4月7日)。
[0007] 图2示出了根据现有技术的JVET-F0034文档的图片的每个块200的滤波十字形图案。对于块内的每个像素或样本(例如,当前像素C 210),BLF基于由像素(210)的四个最近相邻像素(220-250)组成的特定相邻形状执行滤波,以在十字形(或“+”)图案上进行滤波。BLF计算四个十字形图案的相邻样本或像素以及中心或当前像素的加权和。
发明内容
[0008] 根据本公开的一方面,提供了一种视频编码的方法,包括:访问与视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0009] 根据本公开的一方面,提供了一种用于视频编码的装置,该装置包括:用于访问与视频的图片中的块相对应的重构块的部件;用于基于所述块的属性确定至少一个滤波器图案的部件,以及用于根据所述至少一个滤波器图案对所述重构块进行滤波的部件。
[0010] 根据本公开的一方面,提供了一种用于视频编码的装置,该装置包括处理器,以及与所述处理器耦合的至少一个存储器,所述处理器被配置为:访问与视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0011] 根据本公开的一方面,一种被格式化为包含表示图片的块的编码数据的比特流,该编码数据通过以下被编码:访问与视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0012] 根据本公开的一方面,一种信号,该信号包括比特流,该比特流被格式化为包含表示图片的块的编码数据,该编码数据通过以下被编码:访问与视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0013] 根据本公开的一方面,提供了一种视频解码的方法,包括:访问与编码视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0014] 根据本公开的一方面,提供了一种用于视频解码的装置,该装置包括:用于访问与编码视频的图片中的块相对应的重构块的部件,用于基于所述块的属性确定至少一个滤波器图案的部件,以及用于根据所述至少一个滤波器图案对所述重构块进行滤波的部件。
[0015] 根据本公开的一方面,提供了一种用于视频解码的装置,该装置包括处理器,以及与所述处理器耦合的至少一个存储器,所述处理器被配置为:访问与编码视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0016] 根据本公开的一方面,提供了一种计算机程序产品,包括程序代码指令,用于访问与视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据至少一个滤波器图案对所述重构块进行滤波。
[0017] 根据本公开的一方面,提供了一种计算机程序产品,包括程序代码指令,用于访问与编码视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0018] 根据本公开的一方面,提供了一种承载软件程序的计算机可读存储介质,包括程序代码指令,用于访问与视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据至少一个滤波器图案对所述重构块进行滤波。
[0019] 根据本公开的一方面,提供了一种承载软件程序的计算机可读存储介质,包括程序代码指令,用于访问与编码视频的图片中的块相对应的重构块,基于所述块的属性确定至少一个滤波器图案,以及根据所述至少一个滤波器图案对所述重构块进行滤波。
[0020] 以上呈现了主题的简化概述,以便提供对主题实施例的某些方面的基本理解。该概述不是主题的全面概览。其无意于标识实施例的主要/关键元素或者描绘主题的范围。其唯一目的是以简化的形式呈现主题的某些概念,作为稍后呈现的更详尽描述的序言。
[0021] 根据以下参考附图进行的对说明性实施例的详细描述,本公开的附加特征和优点将变得明显。

附图说明

[0022] 根据下面简要描述的以下示例性附图,可以更好地理解本公开:
[0023] 图1示出了根据现有技术的对图片的重构块进行块滤波(左)相对于后置滤波(右)的方法的简化流程图;
[0024] 图2示出了根据现有技术的在双边滤波器中使用的相邻样本的十字形图案;
[0025] 图3示出了根据HEVC标准划分成CU的CTU;
[0026] 图4示出了根据HEVC标准将CTU划分成CU、PU和TU;
[0027] 图5示出了根据QTBT工具的CTU;
[0028] 图6示出了根据本公开的实施例的示例性视频编码器的简化框图
[0029] 图7示出了根据本公开的实施例的在滤波器中使用的相邻样本的对角线图案;
[0030] 图8示出了根据本公开的实施例的包括适合于相邻样本的对角线图案的块的图片;
[0031] 图9A示出了根据本公开的实施例的在滤波器中使用的相邻样本的正方形图案;
[0032] 图9B示出了根据本公开的实施例的在滤波器中使用的垂直十字形图案、平十字形图案、对角线-左(diagonal-left)图案和对角线-右(diagonal-right)图案;
[0033] 图10示出了根据本公开的实施例的在滤波器中使用的相邻样本的一些示例性部分图案;
[0034] 图11示出了根据本公开的实施例的示例性编码方法的流程图;
[0035] 图12示出了根据本公开的实施例的示例性视频解码器的简化框图;
[0036] 图13示出了根据本公开的实施例的示例性解码方法的流程图;以及
[0037] 图14示出了可以在其中实现和执行本公开的各方面的计算环境的框图。

具体实施方式

[0038] 应该理解的是,图中所示的元件可以以各种形式的硬件、软件或其组合来实现。优选地,这些元件在一个或多个适当编程的通用设备上以硬件和软件的组合来实现,该通用设备可包括处理器、存储器和输入/输出接口。在本文中,短语“耦合”被定义为意指直接连接或通过一个或多个中间组件间接连接。这样的中间组件可以包括基于硬件的组件和基于软件的组件。
[0039] 本描述示出了本公开的原理。因此,将理解,本领域技术人员将能够设计出尽管未在此明确描述或示出,但是体现本公开的原理并包含在本公开的范围内的各种布置。
[0040] 在此叙述的所有示例和条件语言旨在用于教学目的,以帮助读者理解本公开的原理以及发明人为促进本领域所贡献的概念,并且要解释为不限于这样具体叙述的示例和条件。
[0041] 此外,在此叙述本公开的原理、方面、实施例以及其特定示例的所有陈述旨在包含其结构和功能等同物。另外,这样的等同物旨在包括当前已知的等同物以及将来开发的等同物,即,所开发的执行相同功能的任何元件,无论结构如何。
[0042] 因此,例如,本领域技术人员将理解,在此呈现的框图表示体现本公开的原理的说明性电路的概念视图。类似地,将理解,任何流程图表、流程图、状态转换图、伪代码等表示可以基本上表示在计算机可读介质中并因此由计算机或处理器执行的各种过程,无论这样的计算机或处理器是否明确示出。
[0043] 图中所示的各种元件的功能可以通过使用专用硬件来提供,也可以通过使用与适当软件相关联的能够执行软件的硬件来提供。当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或多个单独的处理器(其中的一些可以被共享)来提供。此外,术语“处理器”或“控制器”的明确使用不应解释为专指代能够执行软件的硬件,而是可以隐含地包括但不限于数字信号处理器(DSP)硬件、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储器
[0044] 也可以包括传统和/或定制的其他硬件。类似地,图中所示的任何切换只是概念性的。它们的功能可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互来实现,或者甚至手动实现,特定技术可由实现者选择,如从上下文中更具体理解的。
[0045] 在本文的权利要求中,表达为用于执行指定功能的部件的任何元件旨在包含执行该功能的任何方式,例如包括,a)执行该功能的电路元件组合,或b)任何形式的软件,因此包括固件、微代码等,其与用于执行该软件的适当电路组合以执行该功能。由这样的权利要求所限定的本公开在于以下事实,即,由各种所述部件提供的功能以权利要求所要求的方式被组合和集合在一起。因此,认为可以提供这些功能的任何部件都等同于在此示出的这些部件。
[0046] 要理解的是,已经对附图和描述进行了简化,以说明与清楚理解本公开有关的元件,同时为了清楚起见而消除存在于典型编码和/或解码设备中的许多其他元件。
[0047] 将理解的是,尽管在此可以使用术语第一和第二来描述各种元素,但是这些元素不应受到这些术语的限制。这些术语仅用于区分一个元素和另一个元素。上面描述了各种方法,并且每个方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定顺序的步骤或动作,否则可以对特定步骤和/或动作的顺序和/或使用进行修改或组合。
[0048] 要理解的是,图片是单色格式的亮度样本阵列,或者是4:2:0、4:2:2和4:4:4颜色格式的一个亮度样本阵列以及两个对应的色度样本阵列。在HEVC中,“块”寻址样本阵列(例如,亮度Y)中的特定区域,而“单元”包括所有编码颜色分量(亮度Y以及可能的色度Cb和色度Cr)的并置块、语法元素、以及与该块相关联的预测数据(例如,运动矢量)。然而,术语“块”在此更一般地用于指代块(例如,编码块(CB),变换块(TB),编码组(CG)等)或单元(例如,CU)。
[0049] 要理解的是,图片或像素块或变换系数是二维阵列或矩阵。水平或x方向(或轴)表示宽度,而垂直或y方向(或轴)表示高度。索引从0开始。x方向表示列,而y方向表示行。最大x索引是宽度-1。最大y索引是高度-1。
[0050] 在以下部分中,词语“重构的”和“解码的”可以互换使用。通常但不是必须的,在编码器侧使用“重构的”,而在解码器侧使用“解码的”。此外,词语“编码的(coded)”和“编码的(encoded)”可以互换使用。此外,词语“图像”、“图片”和“帧”可以互换使用。此外,词语“编码”、“源编码”和“压缩”可以互换使用。
[0051] 本公开解决了现有技术中存在的一些缺点。在现有技术的JVET-F0034文档中,BLF计算四个十字形图案的相邻样本或像素以及中心或当前像素的加权和。然而,尽管具有小的复杂性,但是简单的十字形图案可能会限制用于滤波的样本数量,结果降低BLF的效率。本公开针对在块滤波(例如,双边滤波)中使用的相邻样本的滤波图案,其考虑编码块的不同形状和属性。图案是特定形状,包括要滤波的当前样本和相邻样本,相邻样本的值用作对当前样本进行滤波的输入。也可以将其视为滤波器支持。
[0052] 在高效视频编码(HEVC)标准(“ITU-T H.265ITU电信标准化部门(10/2014),系列H:视听和多媒体系统,视听服务的基础架构-运动视频编码,高效视频编码,ITU-T H.265建议书”)中,图片被分区成正方形的编码树单元(CTU),其具有可配置的尺寸,通常为64x64、128x128或256x256。如图3中所示,CTU 310是分区成称为编码单元(CU)的叶片的四叉树的根。对于每个CU,用信号通知预测模式,该预测模式指示使用帧内还是帧间预测对CU进行编码。如图4中所示,可以将连续的一组CTU(例如,CTU 420)分组成切片410。CU(例如,CU 430)可以分区成一个或多个预测单元(PU),并且形成分区成变换单元(TU)的四叉树(称为变换树)的根。在帧间预测中,CU到PU的不对称细分也是可能的,也就是说,如果CU的尺寸为NxN,则PU的尺寸可以为N/4xN、3N/4xN、NxN/4、Nx3N/4。每个PU被分配一些预测信息,例如运动信息、空间帧内预测等。
[0053] 四叉树加二叉树(QTBT)编码工具(文档JVET-C1001_v3,标题为“联合探索测试模型3的算法描述(Algorithm Description of Joint Exploration Test Model 3)”,ISO/IEC JTC1/SC29/WG11联合视频探索小组,第3次会议,2015年5月26日至6月1日,瑞士日内瓦)是一种新的视频编码工具,与HEVC标准的CU/PU/TU布置相比,它提供了更灵活的CTU表示并提高了压缩效率。如图5中所示,四叉树加二叉树(QTBT)编码工具定义了编码树510,其中编码单元可以以四叉树和二叉树方式两者被划分。图5中示出了编码树单元520的示例性编码树表示,其中实线表示四叉树分区,而虚线表示CTU 520内的CU 530的二元分区,该CTU 520在空间上嵌入四叉树叶片中。
[0054] 在编码器侧,例如通过率失真优化过程来决定CTU到编码单元的划分,该过程包括以最小的率失真成本确定CTU的QTBT表示。在QTBT表示中,CU具有正方形或矩形形状。编码单元的尺寸始终为2的幂,通常为4到128。CTU的QTBT分解包括两个阶段:首先,将CTU以四叉树方式划分成4个CU,然后可以进一步将每个四叉树叶片以二进制方式分为两个CU或以四叉树方式分为4个CU,如图3中所示。
[0055] 利用QTBT表示,CU可以不被进一步分区成PU或TU。换句话说,每个CU被视为单个预测单元和单个变换单元,并且这样的QTBT表示仅允许CU的对称划分。然而,最近,2016年10月5日提交的名称为“编码和解码方法以及对应设备”的欧洲申请No.16306308.4描述了具有新矩形形状的CU,其是由称为不对称划分模式的新二进制划分模式产生的。
[0056] 本公开针对用于视频或图像编码和解码(也称为源编码和解码)的技术,其中在视频编码中可以允许具有多种形状和划分模式的块,也就是说,编码器可以选择这些形状和划分模式中的任何一种并将它们发信号通知给解码器。丰富的CU拓扑集带来了在空间上与比特流的图像中包含的结构和不连续性相匹配的编码结构。
[0057] 编码
[0058] 图6示出了根据本公开的实施例的示例性视频编码器600的简化框图。编码器600可以被包括在通信系统中的传送器或头端中。为了对具有一个或多个图片的视频序列进行编码,可以将图片分区成具有可配置尺寸的正方形CTU。一组连续的CTU可以分组成切片。CTU是分区成CU的QTBT的根。在示例性编码器600中,如下所述,通过编码器模块对图片进行编码。使用帧内模式或帧间模式对每个块进行编码。当以帧内模式对块进行编码时,编码器
600执行帧内预测(模块660)。在帧间模式下,执行运动估计(模块675)和补偿(模块670)。编码器决定(模块605)使用帧内模式或帧间模式中的哪一个对块进行编码,并且通过预测模式标志来指示帧内/帧间决定。通过从原始图像块中减去(模块610)预测的样本块(也称为预测器)来计算残差。
[0059] 作为示例,从重构的相邻样本中预测帧内模式下的块。通过对存储在参考图片缓冲器680中的参考块执行运动估计(模块675)和运动补偿(模块670中)来执行帧间预测。
[0060] 对残差进行变换(模块625)和量化(模块630)。变换模块625可以将图像从像素或时域变换到变换域或频域。该变换可以是例如余弦变换、正弦变换、小波变换等。可以根据例如率失真准则来执行量化。对量化的变换系数以及运动矢量和其他语法元素进行熵编码(模块645)以输出比特流。熵编码可以是例如上下文自适应二进制算术编码(CABAC)、上下文自适应可变长度编码(CAVLC)、霍夫曼、算术、exp-Golomb等。编码器也可以跳过变换,并将量化直接应用于未变换的残差信号。编码器还可以绕过变换和量化两者,即,在不应用变换或量化过程的情况下直接对残差进行编码。在直接PCM编码中,不应用预测,并且块样本被直接编码到比特流中。
[0061] 编码器包括解码环路,并因此对编码块进行解码,以提供用于进一步预测的参考。量化的变换系数被解量化(模块640)和逆变换(模块650)以对残差进行解码。通过组合(模块655)解码的残差和预测的样本块来重构图像块。块滤波器685可以在组合器(也称为重构模块)665之后对重构块进行滤波(例如,使用双边滤波器)。环内滤波器(即,预测环路内的滤波器,模块665)可以应用于块滤波后的重构图片,包括例如以执行解块/样本自适应偏移(SAO)滤波以减少编码伪像。在环内滤波中,可以例如在整个切片或图像/图片/帧已被重构之后,统一执行滤波处理,使得滤波后的样本可以用于帧间预测。因此,后置滤波可以应用于环内滤波器665。但是,请注意,块滤波100也可以被用在环内滤波器665中。滤波后的图像存储在参考图片缓冲器680中。
[0062] 视频编码器600的模块可以以软件来实现并且由处理器执行,或者可以由压缩领域的技术人员通过熟知的电路来实现。特别地,视频编码器600可以实现为集成电路(IC)。
[0063] 视频编码器600的模块也存在于其他视频编码器(例如,HEVC编码器)中,除了本公开中描述的差异以外,特别是,块尺寸和形状的差异,以及块滤波器模块685的存在的差异,如将在以下段落和附图中更详细地描述的那样。
[0064] 要理解的是,在根据本公开的另外的(未示出)实施例中,块滤波器685可以被放置在以下之一中:帧内预测模块660内、环内滤波器模块665内、帧内预测模块660和环内滤波器模块665两者内、或者组合器模块655内。
[0065] 关于块滤波器模块685,为了改善视频编码器的性能,已经提出了用能够减少原始信号噪声(通常不可预测并且不希望编码)和重构信号编码伪像、同时保留边缘的滤波器对重构信号进行滤波。双边滤波器(BLF)允许满足这些要求。BLF通过使滤波器权重或抽头不仅基于与相邻样本的距离,还基于相邻样本的值来进行工作。重构图片中的每个样本都用其自身与其相邻样本的加权平均值来代替。权重是基于距中心样本的距离以及样本值的差异而计算的。因为滤波器是如图2中所示的小加号的形状,所以所有距离可以是0或1。在根据本公开的一个实施例中,可以用适当的比例因子来选择其他值。
[0066] 在JVET组中,使用JEM参考编码器软件,已示出BLF可以使BD率(Delta-Rate)在全帧内(all intra,AI)中增加约0.41%,在亮度的随机访问(RA)(通用测试条件)中增加0.48%。
[0067] 然而,在重构块上应用BLF的一个局限是其相对复杂性。BLF意味着为每个重构的(亮度)样本计算与相邻样本相关联的一些权重,其是根据以下:
[0068] ·相邻样本(k,l)到要滤波的当前样本(i,j)的距离
[0069] ·当前样本值I(i,j)与相邻样本值I(k,l)的差
[0070] 位于(i,j)的样本将使用其相邻样本(k,l)进行滤波。权重ω(i,j,k,l)是分配给样本(k,l)的权重,以对样本(i,j)进行滤波,其定义为:
[0071]
[0072] 其中,σd是空间参数,并且σr是范围参数。双边滤波器的属性(或强度)由两个参数σd和σr控制。在JEM参考软件中,根据变换单元尺寸和预测模式来设置σd,并且基于用于当前块的量化参数(QP)来设置σr。
[0073] 滤波后的样本IF(i,j)计算为:
[0074] IF(i,j)=∑k,lI(k,l)*ω(i,j,k,l)/∑k,lω(i,j,k,l)  (2)[0075] 可以通过限制相邻样本的数量和将权重制成表格(使用1D-查找表)来减轻由于访问相邻样本和计算权重而导致的复杂性。在JVET-F0034文档中,仅提出了四个相邻者(图2中的加号或十字形图案),使得(i-k)2+(j-l)2的值等于1,且||I(i,j)-I(k,l)||2的制表值的数量可以减少到样本范围值(10位的1024个值)。
[0076] 由于滤波器仅处理当前样本210及其四个相邻者,因此等式2可以写为:
[0077] IF(i,j)=(ICωC+ILωL+IRωR+IAωA+IBωB)/(ωC+ωL+ωR+ωA+ωB)  (3)[0078] 其中,IC是中心样本210的强度,并且IL、IR、IA和IB分别是左侧样本220、右侧样本240、上方样本250和下方样本230的强度。同样,ωC是中心样本210的权重,并且ωL、ωR、ωA和ωB分别是相邻样本220、240、250和230的对应权重。滤波器仅使用块内的样本进行滤波—外部的权重设置为0。
[0079] BLF允许通过在当前样本值210与相邻样本值(220-250)接近时对它们进行平均来减少噪声。当相邻者的值(非常)不同时,权重是小的且其贡献也是小的,从而倾向于保留边缘。在JVET-F0034文档中,以固定的滤波器形状将处理系统地应用于所有块以及块中的所有像素。
[0080] 十字形图案(样本220-250)的使用降低了复杂性,但是也限制了用于滤波的样本数量,结果降低了BLF的效率。特别地,在对角梯度的情况下,在十字形图案中不使用其值接近当前样本值的相邻者。
[0081] 根据本公开,引入了图案多样性,以用于执行块滤波685和用于计算滤波器权重。图案可以在流中被显式地发信号通知,或者可以根据重构样本的特性在解码器处被推断或确定,例如,使用像素分类来推断或确定。图案可以针对当前图片、针对当前块、针对块中的所有样本是固定的,或者可以针对每个图片、每个块、每个子块(例如,4x4子块)和/或块中的每个样本进行改变。
[0082] 在本公开中,执行至少两个步骤。第一步骤执行图案选择。然后,根据所选择的图案来应用块滤波器685(例如,BLF)。该选择允许通过根据信号特性改善块滤波从而改善整体视频压缩的性能。
[0083] 图7示出了根据本公开的实施例的在滤波器中使用的相邻样本的对角线图案。对角线图案具有对称“X”的形状,其表示两条块对角线(左倾斜(或左)对角线和右倾斜(或右)对角线)的交叉。在对角线图案中,当前样本710的角落样本720-750可以在值上最接近当前样本710,并且包括在BLF的加权和中。
[0084] 对角线图案重新使用图1中的现有技术块滤波操作中的大部分,且等式1-等式3考虑图案的差异。对角线图案更适用于包含主要沿对角线方向取向的局部纹理的块,诸如图8中的图片800的许多部分。图8是运动图片专家组(MPEG)主体使用的通用测试条件的参考序列中的图片。
[0085] 十字形图案和对角线图案都使用相同数量的加权样本(四个),因此复杂性与仅使用一个单个图案相同。因此,可以以少量增加的复杂性或实现成本来最大程度地重新使用现有的编解码器设计,其中增加的复杂性与图案选择过程相关联。
[0086] 选择可以包括选择十字形图案和对角线图案之一。可以考虑其他图案,尽管复杂性更高。例如,可以在选择过程中包括正方形图案。图9A示出了根据本公开的用于块900的相邻样本的正方形图案。正方形图案是组合图案,并且对于当前像素909,同时包括十字形图案(902,904,906,908)和对角线图案(901,903,905,907)。在一个实施例中,也可以使用其他附加的滤波器图案。图9B示出了根据本公开的实施例的在滤波器中使用的垂直十字形图案920、水平十字形图案940、对角线-左图案960和对角线-右图案980。垂直十字形图案920具有不对称十字的形状,其在垂直方向或轴上的分支更长。水平十字形图案940具有不对称十字的形状,其在水平方向或轴上的分支更长。对角线-左图案960具有不对称“X”的形状,其沿着左倾斜(或左)对角线更长。对角线-右图案980具有不对称“X”的形状,其沿着右倾斜(或右)对角线更长。在一个实施例中,可以使用图2、图7、图9A和图9B中的任何图案的组合的附加图案。例如,可以使用垂直十字形920和对角线700的组合。
[0087] 在JVET-F0034文档中,处于块周边的像素包括部分十字形图案,以避免使用/处理块外部的样本,这些样本可能会增加复杂性(例如,存储器、带宽访问)。类似地,根据本公开,周边像素可以利用部分图案,例如部分十字形图案、部分对角线图案和/或部分正方形图案。在一个实施例中,可以在块的周边像素中使用部分正方形图案,块的内部像素使用十字形图案和/或对角线图案。在一个实施例中,部分正方形图案用于所有周边像素。在一个实施例中,周边像素处理来自邻近块的像素,导致增加的复杂性。
[0088] 图10示出了根据本公开的实施例的在滤波器中使用的相邻样本的一些示例性部分图案。在块1000中,部分图案由相应的中心周边像素1010-1080标识。部分图案1010和1040是部分正方形图案;1020是部分对角线图案;1030是部分对角线-右图案;1050和1080是对角线图案和垂直十字形图案的部分组合;1060是部分水平十字形图案,并且1070是部分十字形图案。在一个实施例中,可以使用作为图2、图7、图9A和图9B中的任何图案的部分组合的附加图案。在块1000中可能希望使用尽可能多的部分组合图案(例如,部分正方形图案),以便在周边像素的滤波中包括更多的像素。
[0089] 滤波器图案形状可以随每个序列、每个图片、每个切片或每个块而变化。有利地,滤波器图案形状可以在块、每个样本或每组样本(例如,4x4子块)内部变化。例如,可以基于对局部重构信号属性(诸如局部梯度)的计算,在编码器处进行选择。
[0090] 局部梯度参数可计算如下:
[0091]
[0092]
[0093]
[0094]
[0095] 其中,DX(x)|x=h,y,d1,d2是计算梯度gx的域(例如,块)。
[0096] 从这些用于选择的参数导出的属性例如可以基于以下过程:
[0097] i.如果(gh+gv)<λ*(gd1+gd2),则使用十字形图案;(8)
[0098] ii.否则使用对角线图案。
[0099] 其中λ是给定参数。在一个实施例中,例如,λ可以等于1。
[0100] 在一个实施例中,该属性可以是局部梯度的另一函数,例如非线性函数。
[0101] 在一个实施例中,λ可以取决于块的形状和/或规模,例如对于矩形块(例如,8x2、16x4)较低,而对于正方形块则较大。
[0102] 在一个实施例中,λ可以取决于对相邻块做出的决定。例如,如果以帧内垂直方向对相邻块进行编码,则更可能选择十字形图案,并且λ可能增加。在另一示例中,如果对角线图案用于相邻块,则更可能选择对角线图案,并且λ可能减小。
[0103] 在一个实施例中,滤波器图案的选择还可以是块形状和/或规模的函数。例如,可以根据块的形状,启用或禁用一些图案。可以根据块的形状和/或规模对块进行分类,并且对于每种形状/规模,可以预定义图案集合,如下所示:
[0104] ·块类别1→集合1={图案1,图案2,图案3,图案4}
[0105] ·块类别2→集合2={图案1,图案3,图案5}
[0106] ·块类别3→集合3={图案3,图案4}
[0107] 例如,图案1可以是十字形图案,图案2可以是正方形图案,图案3可以是对角线图案,图案4可以是部分正方形图案,图案5可以是部分十字形图案。例如,对于正方形(4x4,8x8,16x16…)和粗矩形(8x4,4x8,8x16,16x8…),可以启用十字形图案和对角线图案,而对于诸如8x2、2x8、16x4、4x16、4x32、32x4的细矩形形状/规模,则仅启用十字形图案。在另一示例中,考虑图9b的图案形状,对于矩形垂直大块(例如4x16,4x32,8x32),可以启用垂直十字形状;对于正方形和矩形小块(例如4x4,8x8),可以启用十字和对角线形状;对于矩形水平大块(例如16x4,32x4,32x8),可以启用水平十字形状;对于正方形和矩形大块(例如
16x16,32x32,8x16,16x8,16x32,32x16),可以启用垂直十字、水平十字、对角线-左和对角线-右。
[0108] 在本公开的一个实施例中,可以利用具有相似复杂性的其他类型的滤波器。在一个实施例中,可以利用具有相似复杂性的其他类型的非线性滤波器。例如,滤波器可以具有与BLF相同数量的权重并使用与BLF相同的滤波器图案,但是权重可以不一定满足等式1至等式3,并且可以假设通用值。在一个实施例中,权重可以具有相等的值。在一个实施例中,可以对权重进行幂归一化,使得它们的平方和可以等于1。
[0109] 在一个实施例中,用于滤波的滤波器图案形状可以在比特流中被编码和/或被包括和/或被发信号通知/被识别,作为一个语法元素或一组语法元素。可以针对每个图片(PPS)、每个切片(切片报头)或针对每个块或每组块或CU深度(例如64x64)对滤波器图案进行编码。
[0110] 例如,可以对每个CU,将称为pattern_index的语法元素编码。当使用两个图案时,可以使用标志来区分图案。
[0111] 在一个实施例中,当存在2个以上的图案并且当前块具有2个以上的相邻者时,可以使用合并过程来节省编码位。在表1中给出了语法的示例,其中可以利用与相邻块的合并,即,可以将来自相邻块的图案重新用于当前块。当相邻块的数量(M位表示或最多2M个)少于图案的数量(N位表示或最多2N个),即M
[0112]
[0113] 表1
[0114] 表1中的语法包括merge_flag(1位),以及neighbor_index(M位)或pattern_index(N位)。如果merge_flag具有第一值(例如,值“1”),则merge_flag和neighbor_index在编码比特流中被显式编码(被包含和被编码)。如果merge_flag具有第二值(例如,值“0”),则merge_flag和图案索引在比特流中被显式编码。在一个实施例中,语法元素中的至少一个仅包含在编码比特流中但未被编码。
[0115] 在一个实施例中,可以利用merge_flag的其他值,例如,表1中使用的值中的merge_flag的逆值。在一个实施例中,merge_flag、neighbor_index和图案索引被包含在编码比特流中。在一个实施例中,merge_flag、neighbor_index和图案索引在编码比特流中被显式地编码。在一个实施例中,语法元素中的至少一个仅包含在编码比特流中但未被编码。
[0116] “neighbor_index”表示列表中一个相邻者的位置。通常,建立相邻者列表。例如,neighbor_index=0可以表示左相邻块;neighbor_index=1可以表示上方相邻块;neighbor_index=2可以表示左上相邻块,neighbor_index=3可以表示右上相邻块。如果一个相邻者具有与列表中的另一相邻者相同的图案,则将其从列表中移除。如果merge_flag等于“1”,则当前块使用与neighbor_index使用的图案相同的图案(neighbor_pattern_index)。如果merge_flag等于“0”,则要使用的图案是pattern_index。
[0117] 在一个实施例中,当存在两个以上的图案并且当前块仅具有两个相邻者(左和上)时,语法可以如表2中所示。
[0118] 表2中的语法包括merge_flag(1位),以及left_flag(1位)或pattern_index(N位)。如果merge_flag具有第一合并值(例如,值“1”),则merge_flag和left_flag在编码比特流中被显式编码。如果merge_flag具有第二合并值(例如,值“0”),则合并标志和图案索引在比特流中被显式编码。在一个实施例中,语法元素中的至少一个仅包含在编码比特流中但未被编码。
[0119] 另外,如果left_flag具有第一左值(例如,值“1”),则将选择left_pattern_index,即,块左侧的相邻者的图案。如果left_flag具有第二左值(例如,值“0”),则将选择块顶部的相邻者的图案。
[0120] 在一个实施例中,可以利用merge_flag的其他值,例如,表2中使用的值中的merge_flag的逆值。在一个实施例中,可以利用left_flag的其他值,例如,表2中使用的值中的left_flag的逆值。在一个实施例中,merge_flag、left_flag和图案索引在编码比特流中被显式编码。在一个实施例中,语法元素中的至少一个仅包含在编码比特流中但未被编码。
[0121] 无论在块的编码比特流中包括根据表1还是表2的语法表,在解码器处都恢复该语法表以便识别用于该块的适当的滤波器图案。
[0122]
[0123] 表2
[0124] 图11示出了根据本公开的一个实施例的示例性视频编码方法的流程图1100。方法1100包括,在步骤1110,访问与视频的图片中的块相对应的重构块。该图片可以替代性地称为第一图片。然后,在步骤1120,方法1100包括基于该块的属性确定至少一个滤波器图案。
此外,在步骤1130,方法1100包括根据该至少一个滤波器图案对该重构块进行滤波。步骤
1110至1130可以由例如编码器600执行。特别地,步骤1120和1130可以由例如块滤波器685执行。
[0125] 根据一个实施例,在步骤1140,方法1100还可以包括基于滤波后的块对视频的第二块进行编码。第二块可以是该图片的第二块(在帧内预测的情况下)或该视频的第二图片的第二块(在帧间预测的情况下)。步骤1140可以由例如编码器600执行。特别地,步骤1140可以由帧内预测模块660和帧间预测相关模块670、675和680中的至少一个执行。编码的步骤1140是可选的,可以绕过或移除,因为它可以由另一设备执行。
[0126] 根据该方法的一个实施例,块的属性可以包括重构块的至少一个局部梯度的函数。可以根据例如等式4-等式7来确定局部梯度。该函数可以满足等式8(i项,ii项)。
[0127] 根据该方法的一个实施例,块的属性可以包括视频编码器处的重构块的至少一个局部梯度的函数。可以根据例如等式4-等式7来确定局部梯度。该函数可以满足等式8(i项,ii项)。
[0128] 根据该方法的一个实施例,指示滤波器图案的至少一个语法元素可以被包含在编码视频中。语法元素可以被编码或不被编码。语法元素可以满足例如表1或表2。
[0129] 根据该方法的一个实施例,该至少一个语法元素可以在块中的多个像素、图片中的多个块、图片中的多个切片以及视频中的多个图片中的一种之中共享。语法元素可以满足例如表1或表2。
[0130] 根据该方法的一个实施例,可以通过从编码视频中取得至少一个语法元素在视频解码器处确定该至少一个滤波器图案。语法元素可以满足例如表1或表2。
[0131] 根据该方法的一个实施例,块的属性还可以包括块的形状。
[0132] 根据该方法的一个实施例,块的属性还可以包括块的形状的函数。
[0133] 根据该方法的一个实施例,可以通过非线性滤波器来执行滤波。例如,滤波器可以是等式1-等式3的双边滤波器,或者是双边滤波器的修改版本,其中权重基于高斯分布。
[0134] 根据该方法的一个实施例,可以通过双边滤波器来执行滤波。双边滤波器可以满足等式1-等式3。
[0135] 根据该方法的一个实施例,该至少一个滤波器图案可以是十字形图案、对角线图案、正方形图案、部分十字形图案、部分对角线图案和部分正方形图案中的至少一种。
[0136] 根据该方法的一个实施例,该至少一个滤波器图案可以是十字形图案、对角线图案、正方形图案、水平十字形图案、垂直十字形图案、对角线-左图案、对角线-右图案、部分十字形图案、部分对角线图案、部分正方形图案、部分水平十字形图案、部分垂直十字形图案、部分对角线-左图案和部分对角线-右图案中的至少一种。
[0137] 根据该方法的一个实施例,当像素是该块的内部像素时,该至少一个滤波器图案可以是十字形图案、对角线图案和正方形图案中的至少一种。
[0138] 根据该方法的一个实施例,当像素是该块的周边像素时,该至少一个滤波器图案可以是部分十字型图案、部分对角线图案和部分正方形图案中的至少一种。
[0139] 根据该方法的一个实施例,当像素是该块的内部像素时,该至少一个滤波器图案可以是十字形图案、对角线图案、正方形图案、水平十字形图案、垂直十字形图案、对角线-左图案、对角线-右图案中的至少一种。
[0140] 根据该方法的一个实施例,当像素是该块的周边像素时,该至少一个滤波器图案可以是部分十字形图案、部分对角线图案、部分正方形图案、部分水平十字形图案、部分垂直十字形图案、部分对角线-左图案和部分对角线-右图案中的至少一种。
[0141] 根据该方法的一个实施例,可以通过以下来重构块:访问与块相关联的经变换和量化的预测残差,通过对残差进行逆量化和逆变换来重构残差,以及将重构残差添加到用于块的预测。逆量化、逆变换和重构可以分别由例如编码器600的模块640、650和655执行。
[0142] 根据该方法的一个实施例,可以将滤波后的块提供给帧内预测模块(例如,模块660)和帧间预测模块(例如,模块665、680和675)中的至少一个。
[0143] 根据该方法的一个实施例,可以将滤波后的块提供给参考图片缓冲器(例如,模块680)。
[0144] 根据该方法的一个实施例,可以将滤波后的块提供给环内滤波器模块(例如,模块665)。
[0145] 根据该方法的一个实施例,可以在编码器输出处将滤波后的块提供为解码块。
[0146] 根据该方法的一个实施例,可以将滤波后的块提供给参考图片缓冲器(例如,模块680)。
[0147] 根据一个实施例,该方法还可以包括:接收图片,将图片分区为包括该块的多个块,确定该块的预测残差,对残差进行变换和量化以获得多个变换系数,以及对残差进行熵编码。变换和量化的步骤可以由例如编码器600的模块625和630执行。熵编码的步骤可以由例如编码器600的模块645执行。接收、变换和量化的步骤是可选的,可以绕过或移除,因为它们可能先前已经由另一设备执行和/或结果可能已经存储在存储器中。
[0148] 要理解的是,上述方法1100的任何实施例可以由编码器600实现。编码器600的多个块可以由硬件(例如,集成电路)实现或者在软件中实现,该软件存储在存储器中并由处理器执行。
[0149] 解码
[0150] 图12示出了根据本公开的实施例的示例性视频解码器1200的简化框图。视频解码器1200可以被包括在通信系统中的接收器中。视频解码器1200通常执行与图6中描述的视频编码器600所执行的编码通道相对的解码通道。特别地,解码器1200的输入包括可由视频编码器600生成的视频比特流。首先对比特流进行熵解码(模块1230),以获得变换系数、运动矢量、语法元素和其他编码信息。变换系数被解量化(模块1240)并且被逆变换(模块1250)以对残差进行解码。然后,将解码的残差与预测的样本块(也称为预测器)组合(模块
1255)以获得解码/重构的图像块。可以从帧内预测(模块1260)或运动补偿预测(即帧间预测)(模块1275)中获得(模块1270)预测的样本块。块滤波器1285可以在组合器(也称为重构模块)1265之后对重构块进行滤波(例如,使用双边滤波器)。环内滤波器(即,预测环路内的滤波器,模块1265)可以应用于块滤波后的重构切片或图像/图片/帧。环内滤波器可包括解块滤波器和SAO滤波器。在环内滤波中,可以例如在整个切片或图像/图片/帧已被重构之后,统一执行滤波处理,使得滤波后的样本可以用于帧间预测。因此,后置滤波150可以应用于环内滤波器1265。但是,请注意,块滤波100也可以被用在环内滤波器1265中。滤波后的图像存储在参考图片缓冲器1280中。
[0151] 视频解码器1200的模块可以以软件来实现并且由处理器执行,或者可以由压缩领域的技术人员通过熟知的电路来实现。特别地,视频编码器1200可以单独地实现为集成电路(IC),或与视频解码器600组合作为编解码器。
[0152] 视频解码器1200的模块也存在于其他视频解码器(例如,HEVC解码器)中,除了本公开中描述的差异以外,特别是,块尺寸和形状的差异,以及块滤波器模块685的存在的差异,如将在以下段落中更详细地描述的那样。
[0153] 要理解的是,在根据本公开的另外的(未示出)实施例中,块滤波器685可以被放置在以下之一中:帧内预测模块660内、环内滤波器模块665内、帧内预测模块660和环内滤波器模块665两者内、或者组合器模块655内。
[0154] 由于本公开的解码器1200还包括块滤波,因此所描述的与编码器600相关联的块滤波的所有实施例也适用于解码器1200。另外,当滤波器图案作为语法元素在比特流中被编码和/或被包括和/或被发信号通知/被识别时,解码器可以从编码比特流中取得该语法元素,以便在执行块滤波之前获得滤波器图案,而无需进行计算或选择。
[0155] 在一个实施例中,与滤波器图案选择相关联的计算也在解码器处进行,使得要使用的图案(的索引)不被编码而是从重构样本中导出。在该情况下,要使用的样本可以不在块外部以减少带宽内存访问。例如,如果在解码器处计算梯度,则仅考虑位于块内部的像素。
[0156] 图13示出了根据本公开的一个实施例的示例性视频解码方法的流程图1300。方法1300包括,在步骤1310,访问与编码视频的图片中的块相对应的重构块。该图片可以替代性地称为第一图片。然后,在步骤1320,方法1300包括基于该块的属性确定至少一个滤波器图案。此外,在步骤1330,方法1300包括根据该至少一个滤波器图案对该重构块进行滤波。步骤1310至1330可以由例如解码器1200执行。特别地,步骤1320和1330可以由例如块滤波器
1285执行。
[0157] 根据一个实施例,在步骤1340,方法1300还可以包括基于滤波后的块对编码视频的第二块进行解码。第二块可以是该图片的第二块(在帧内预测的情况下)或该编码视频的第二图片的第二块(在帧间预测的情况下)。步骤1140可以由例如编码器600执行。特别地,步骤1140可以由帧内预测模块1260和帧间预测相关模块1270、1275和1280中的至少一个执行。解码的步骤1140是可选的,可以绕过或移除,因为它可以由另一设备执行。
[0158] 根据该方法的一个实施例,块的属性可以包括视频解码器(例如,解码器1200)处的重构块的至少一个局部梯度的函数。可以根据例如等式4-等式7来确定局部梯度。该函数可以满足等式8(i项,ii项)。
[0159] 根据该方法的一个实施例,块的属性可以包括对应的视频编码器(例如,编码器600)处的重构块的至少一个局部梯度的函数。可以根据例如等式4-等式7来确定局部梯度。
该函数可以满足等式8(i项,ii项)。
[0160] 根据该方法的一个实施例,指示滤波器图案的至少一个语法元素可以被包含在编码视频中。语法元素可以被编码或不被编码。语法元素可以满足例如表1或表2。
[0161] 根据该方法的一个实施例,该至少一个语法元素可以在块中的多个像素、图片中的多个块、图片中的多个切片以及视频中的多个图片中的一种之中共享。语法元素可以满足例如表1或表2。
[0162] 根据该方法的一个实施例,可以通过从编码视频中取得至少一个语法元素在视频解码器处确定该至少一个滤波器图案。语法元素可以满足例如表1或表2。
[0163] 根据该方法的一个实施例,块的属性还可以包括块的形状。
[0164] 根据该方法的一个实施例,块的属性还可以包括块的形状的函数。
[0165] 根据该方法的一个实施例,可以通过非线性滤波器来执行滤波。例如,滤波器可以是等式1-等式3的双边滤波器,或者是双边滤波器的修改版本,其中权重基于高斯分布。
[0166] 根据该方法的一个实施例,可以通过双边滤波器来执行滤波。双边滤波器可以满足等式1-等式3。
[0167] 根据该方法的一个实施例,该至少一个滤波器图案可以是十字形图案、对角线图案、正方形图案、部分十字形图案、部分对角线图案和部分正方形图案中的至少一种。
[0168] 根据该方法的一个实施例,该至少一个滤波器图案可以是十字形图案、对角线图案、正方形图案、水平十字形图案、垂直十字形图案、对角线-左图案、对角线-右图案、部分十字形图案、部分对角线图案、部分正方形图案、部分水平十字形图案、部分垂直十字形图案、部分对角线-左图案和部分对角线-右图案中的至少一种。
[0169] 根据该方法的一个实施例,当像素是该块的内部像素时,该至少一个滤波器图案可以是十字形图案、对角线图案和正方形图案中的至少一种。
[0170] 根据该方法的一个实施例,当像素是该块的周边像素时,该至少一个滤波器图案可以是部分十字型图案、部分对角线图案和部分正方形图案中的至少一种。
[0171] 根据该方法的一个实施例,当像素是该块的内部像素时,该至少一个滤波器图案可以是十字形图案、对角线图案、正方形图案、水平十字形图案、垂直十字形图案、对角线-左图案、对角线-右图案中的至少一种。
[0172] 根据该方法的一个实施例,当像素是该块的周边像素时,该至少一个滤波器图案可以是部分十字形图案、部分对角线图案、部分正方形图案、部分水平十字形图案、部分垂直十字形图案、部分对角线-左图案和部分对角线-右图案中的至少一种。
[0173] 根据该方法的一个实施例,可以通过以下来重构块:访问与块相关联的经变换和量化的预测残差,通过对残差进行逆量化和逆变换来重构残差,以及将重构残差添加到用于块的预测。逆量化、逆变换和重构可以分别由例如模块1240、1250和1255执行。
[0174] 根据该方法的一个实施例,可以将滤波后的块提供给帧内预测模块(例如,模块1260)和帧间预测模块(例如,模块1265、1280和1275)中的至少一个。
[0175] 根据该方法的一个实施例,可以将滤波后的块提供给参考图片缓冲器(例如,模块1280)。
[0176] 根据该方法的一个实施例,可以将滤波后的块提供给环内滤波器模块(例如,模块1265)。
[0177] 根据该方法的一个实施例,可以在解码器输出处将滤波后的块提供为解码块。
[0178] 根据一个实施例,该方法还可以包括:接收编码图片,对块进行熵解码,对块进行逆变换以获得解码的残差;将解码的残差和预测的样本块进行组合以获得解码的/重构的图像块。还可以在逆变换之前对变换系数进行逆量化。熵解码、逆变换和逆量化的步骤可以分别由例如解码器1200的模块1230、1250和1240执行。接收、熵解码、逆变换和逆量化以及组合的步骤是可选的,可以绕过或移除,因为它们可能先前已经由另一设备执行,或者结果可能已经从存储器取得和/或存储在存储器中。
[0179] 要理解的是,上述方法1300的任何实施例可以由解码器1200实现。解码器1200的多个模块可以由硬件(例如,集成电路)实现或者在软件中实现,该软件存储在存储器中并由处理器执行。
[0180] 图14示出了其中可以实现本公开的示例性实施例的各个方面的示例性系统的框图1400。系统1400可以实施为包括下面描述的各种组件的设备,并且被配置为执行上述过程。这样的设备的示例包括但不限于个人计算机、膝上型计算机、智能电话、智能手表、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录系统、联网家用电器服务器。系统1400可以通信地耦合到其他类似系统,并且经由如图14中所示并且如本领域技术人员所知的通信信道耦合到显示器,以实现上述示例性视频系统。系统1400可以独立地或联合地实现编码器600、解码器1200或两者。此外,系统1400可以独立地或联合地实现并配置为执行本公开的任何过程,包括方法1100和/或1300。
[0181] 系统1400可以包括至少一个处理器1410,该处理器1410被配置为执行其中加载的指令以实现如上所述的各种过程。处理器1410可以包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统1400还可以包括至少一个存储器1420(例如,诸如RAM的易失性存储设备,诸如ROM的非易失性存储设备)。系统1400可以另外包括存储设备1440,其可以包括非易失性存储器,包括但不限于可擦除可编程只读存储器(EPROM)、ROM、可编程只读存储器(PROM)、动态RAM(DRAM)、静态RAM(SRAM)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1440可以包括内部存储设备,附接存储设备和/或网络可访问的存储设备。系统1400还可以包括编码器/解码器模块1430,其被配置为处理数据以提供编码视频或解码视频。
[0182] 例如,分别根据图6和图12,编码器/解码器模块1430表示可以包括在设备中以执行编码和/或解码功能的模块。如压缩领域中已知的,设备可以包括编码模块和解码模块之一或两者。另外,编码器/解码器模块1430可以被实现为系统1400的单独元件,或者可以作为本领域技术人员已知的硬件和软件的组合并入处理器1410内。例如,编码器/解码器模块1430可以被实现为一个或两个单独的集成电路和/或现场可编程门阵列(FPGA)。
[0183] 要加载到处理器1410上以执行上述各种过程的程序代码可以存储在存储设备1440中,然后加载到存储器1420上以由处理器1410执行。根据本公开的示例性实施例,处理器1410、存储器1420、存储设备1440和编码器/解码器模块1430中的一个或多个可以在执行本文上面讨论的过程期间存储各种项目中的一个或多个,包括但不限于输入视频、解码视频、比特流、等式、公式、矩阵、变量、运算和运算逻辑。
[0184] 系统1400还可以包括通信接口1450,该通信接口1450使得能够经由通信信道1460与其他设备进行通信。通信接口1450可以包括但不限于被配置为从通信信道1460发送和接收数据的收发器。通信接口可以包括但不限于调制解调器或网卡,并且通信信道可以在有线和/或无线介质内实现。系统1400的各个组件可以使用各种合适的连接方式(包括但不限于内部总线、布线和印刷电路板)来连接或通信耦合在一起。
[0185] 根据本公开的示例性实施例可以通过由处理器1410执行的计算机软件、或者通过硬件、或者通过硬件和软件的组合来执行。作为非限制性示例,根据本公开的示例性实施例可以由一个或多个集成电路来实现。作为非限制性示例,存储器1420可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,诸如光存储设备、磁存储设备、基于半导体的存储设备、固定存储器和可移动存储器。作为非限制性示例,处理器1410可以是适合于技术环境的任何类型,并且可以包括微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。
[0186] 本文描述的实现方式可以例如以方法或过程、装置、软件程序、数据流或信号来实现。即使仅在单一形式的实现方式的背景下进行讨论(例如,仅作为方法进行讨论),但是所讨论的特征的实现方式也可以以其他形式(例如,装置或程序)来实现。装置可以以例如适当的硬件、软件和固件来实现。例如,方法可以在诸如例如处理器之类的装置中实现,该装置通常涉及处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑器件。处理器还包括通信设备,诸如例如计算机、蜂窝电话、便携式/个人数字助理(PDA),以及其他有助于终端用户之间信息通信的设备。
[0187] 根据本公开的一方面,提供了一种用于视频编码的装置1400,该装置包括处理器1410以及耦合至处理器的至少一个存储器1420、1440,处理器1410被配置为执行上述视频编码方法1100的任一实施例。
[0188] 根据本公开的一方面,提供了一种用于视频解码的装置1400,该装置包括处理器1410和耦合至该处理器的至少一个存储器1420、1440,处理器1410被配置为执行上述视频解码方法1300的任一实施例。
[0189] 根据本公开的一方面,提供了一种用于视频编码的装置,包括:用于访问与视频的图片中的块相对应的重构块的部件,用于基于该块的属性来确定至少一个滤波器图案的部件,以及用于根据该至少一个滤波器图案对该重构块进行滤波的部件。该装置还可以包括用于基于滤波后的块对视频的第二图片进行编码的部件。图6和图14的视频编码器可以包括该装置的结构或部件,具体地为框660、665、655、670、675、680、1410和1430。用于视频编码的该装置可以执行视频编码方法1100的任一实施例。
[0190] 根据本公开的一方面,提供了一种用于视频解码的装置,包括:用于访问与编码视频的图片中的块相对应的重构块的部件,用于基于该块的属性来确定至少一个滤波器图案的部件,以及用于根据该至少一个滤波器图案对该重构块进行滤波的部件。该装置还可以包括用于基于滤波后的块对编码视频的第二图片进行解码的部件。图12和图14可以包括用于视频解码的该装置的结构或部件,具体地为框1260、1265、1255、1275、1280、1410和1430。用于视频解码的该装置可以执行视频编码方法1300的任一实施例。
[0191] 如对于本领域技术人员将明显,实现方式可以产生各种信号,其被格式化以承载例如可以被存储或发送的信息。信息可以包括例如用于执行方法的指令或由所描述的实现方式之一产生的数据。例如,信号可以被格式化以承载所描述的实施例的比特流。这样的信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码以及用编码的数据流来调制载波。信号承载的信息可以是例如模拟或数字信息。如已知的那样,信号可以通过各种不同的有线或无线链路来传送。信号可以存储在处理器可读介质上。
[0192] 根据本公开的一方面,一种信号,该信号包括比特流,该比特流被格式化为包含表示图片的块的编码数据,该编码数据根据视频编码方法1100的任一实施例进行编码。
[0193] 根据本公开的一方面,一种比特流,其被格式化为包含表示图片的块的编码数据,该编码数据根据视频编码方法1100的任一实施例进行编码。
[0194] 此外,方法1100和/或1300中的任何一个可以被实现为计算机程序产品(独立地或联合地),该计算机程序产品包括可以由处理器执行的计算机可执行指令。具有计算机可执行指令的计算机程序产品可以存储在系统1400、编码器600和/或解码器1200的相应的暂时性或非暂时性计算机可读存储介质中。
[0195] 根据本公开的一方面,提供了一种计算机程序产品,其包括程序代码指令,用于执行本公开的方法1100和/或1300中的任何一个的任一实施例(独立地或联合地)。
[0196] 需注意的是,在一些实施例中,过程1100和/或1300中的一个或多个元素可以被组合、以不同的顺序执行或被排除,同时仍然实现本公开的各方面。可以并行执行其他步骤,其中处理器在开始另一个步骤之前不等待步骤的完全完成。
[0197] 此外,本公开的各方面可以采取计算机可读存储介质的形式。可以利用一个或多个计算机可读存储介质的任何组合。计算机可读存储介质可以采取计算机可读程序产品的形式,该计算机可读程序产品包含在一个或多个计算机可读介质中,并具有包含在其上的可由计算机执行的计算机可读程序代码。鉴于在其中存储信息的固有能以及提供从中取得信息的固有能力,在此使用的计算机可读存储介质被认为是非暂时性存储介质。计算机可读存储介质可以是例如但不限于电、磁、光、电磁、红外或半导体系统、装置或设备,或前述内容的任何合适的组合。
[0198] 要理解的是,下面的列表虽然提供了可以应用本公开的计算机可读存储介质的更具体的示例,但仅仅是说明性的而非详尽列表,如本领域普通技术人员容易理解的那样。示例列表包括便携式计算机软盘硬盘、ROM、EPROM、闪存、便携式压缩盘只读存储器(CD-ROM)、光存储设备、磁存储设备或前述内容的任何合适的组合。
[0199] 根据本公开的一方面,提供了一种承载软件程序的计算机可读存储介质,其包括用于执行包括方法1100和/或方法1300的本公开的任何方法的任一实施例的程序代码指令。
[0200] 要理解的是,对本公开的“一个实施例”或“实施例”或“一个实现方式”或“实现方式”及其其他变型的引用意指结合实施例所描述的特定的特征、结构、特性等被包括在本公开的至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”以及任何其他变型不一定都指代相同的实施例。
[0201] 另外,本公开或其权利要求可以涉及“确定”各种信息。确定信息可以包括例如以下中的一种或多种:估计信息、计算信息、预测信息或从存储器中取得信息。
[0202] 而且,本公开或其权利要求可以涉及“提供”各种信息。提供信息可以包括例如以下中的一种或多种:输出信息、存储信息、传输信息、发送信息、显示信息,示出信息或移动信息。
[0203] 此外,本公开或其权利要求可以涉及“访问”各种信息。访问信息可以包括例如以下中的一种或多种:接收信息、(例如从存储器中)取得信息、存储信息、处理信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息。
[0204] 此外,本公开或其权利要求可以涉及“接收”各种信息。与“访问”一样,接收旨在为广义术语。接收信息可包括例如访问信息或(例如,从存储器中)取得信息中的一种或多种。此外,在诸如例如存储信息、处理信息、传输信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息之类的操作期间,通常以一种或另一种方式涉及“接收”。
[0205] 要理解,示出和描述的各种特征是可互换的。除非另有说明,否则一个实施例中示出的特征可以被结合到另一实施例中。此外,在各种实施例中描述的特征可以被组合或分离,除非另外指示为不可分离或不可组合。
[0206] 如前所述,图中所示的各种元件的功能可以通过使用专用硬件来提供,也可以通过使用与适当软件相关联的能够执行软件的硬件来提供。此外,当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或多个单独的处理器(其中的一些可以被共享)来提供。
[0207] 还要理解的是,由于图中所描绘的一些组成系统组件和方法优选地以软件实现,因此,系统组件或过程功能块之间的实际连接可能根据本公开的过程的编程方式而有所不同。鉴于本文的教导,相关领域的普通技术人员将能够考虑本公开的这些和类似的实现方式或配置。
[0208] 尽管本文已经参照附图描述了说明性实施例,但是要理解,本公开不限于那些确切的实施例,并且在不背离本公开的范围的情况下,本领域的普通技术人员可以在其中进行各种改变和修改。另外,在不背离本公开的范围的情况下,可以对各个实施例进行组合。所有这样的改变和修改旨在被包括在如所附权利要求中阐述的本公开的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈