对图像解码的方法以及存储压缩视频数据的装置与流程
未命名
10-14
阅读:88
评论:0

对图像解码的方法以及存储压缩视频数据的装置
1.本技术为于2019年11月15日提交、申请号为201880032559.9、发明名称为“用于视频信号处理的方法和装置”的中国专利申请的分案申请。上述母案申请的国际申请日为2018年5月16日,国际申请号为pct/kr2018/005584。
技术领域
2.本发明涉及用于处理视频信号的方法和装置。
背景技术:
3.近来,在各种应用领域中对例如高清晰度(high definition,hd)图像和超高清晰度(ultra-high definition,uhd)图像的高分辨率和高质量图像的需求已经增加了。然而,与常规图像数据相比,分辨率和质量更高的图像数据的数据量增加。因此,当通过使用例如常规的有线和无线宽带网络的媒介传送图像数据时,或者当通过使用常规的存储介质存储图像数据时,传送和存储的成本增加。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,可以利用高效的图像编码/解码技术。
4.图像压缩技术包括各种技术,包括:根据当前图片的先前图片或后续图片来对包括在当前图片中的像素值进行预测的帧间预测技术;通过使用当前图片中的像素信息对包括在当前图片中的像素值进行预测的帧内预测技术;将短代码分配给出现频率高的值并且将长代码分配给出现频率低的值的熵编码技术等。可以通过使用这样的图像压缩技术来有效地压缩图像数据,并且可以传送或存储图像数据。
5.同时,随着对高分辨率图像的需求,对作为新的图像服务的立体图像内容(stereographic image content)的需求也已增加。正在探讨的是用于有效地提供具有高分辨率和超高分辨率的立体图像内容的视频压缩技术。
技术实现要素:
6.技术问题
7.本发明的目的旨在提供一种用于在编码/解码视频信号时高效地对编码/解码目标块执行帧间预测的方法和装置。
8.本发明的目的旨在提供一种用于在被执行运动补偿的块上应用重叠块运动补偿的方法和装置。
9.本发明的目的旨在提供一种用于在编码/解码视频信号时基于子块应用光流的方法和装置。
10.本发明要实现的技术目的不限于以上提及的技术问题。并且,本领域的技术人员将从下面描述中清楚地理解未提及的其他技术问题。
11.技术解决方案
12.根据本发明的用于对视频信号进行解码的方法和装置可以:获得当前块的运动向量,在双向光流被应用于当前块的情况下更新运动向量,以及通过使用经更新的运动向量
对当前块执行运动补偿。在这种情况下,可以基于当前块中具有预定尺寸的子块来应用双向光流。
13.根据本发明的用于对视频信号进行编码的方法和装置可以:获得当前块的运动向量,在双向光流被应用于当前块的情况下更新运动向量,以及通过使用经更新的运动向量来对当前块执行运动补偿。在这种情况下,以当前块中具有预定尺寸的子块为单位来应用双向光流。
14.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,更新运动向量包括:获得当前块中的子块的运动改进向量,以及通过使用运动改进向量来更新运动向量。
15.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以基于包括在子块中的样本的运动改进向量的平均值来获得运动改进向量。
16.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以基于子块中的特定位置的样本来获得运动改进向量。
17.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,特定位置的样本可以包括位于子块的角处的样本或位于子块的中心处的样本中至少之一。
18.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以基于当前块的尺寸或形状中至少之一来确定子块的尺寸或形状。
19.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以基于图像的分辨率或是否要对被执行运动补偿的当前块执行重叠块运动补偿来确定子块的尺寸或形状。
20.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以包括在被执行运动补偿的当前块上应用重叠块运动补偿。在这种情况下,可以基于当前块中的预定尺寸的子块来应用重叠块运动补偿。
21.上面对本发明简要概述的特征仅是下面对本发明的详细描述的说明性方面,但不限制本发明的范围。
22.根据本发明的对图像进行解码的方法包括:基于从比特流解码的信息,确定是否将编码块划分成两个分区;当确定划分所述编码块时,将所述编码块在垂直方向或水平方向上划分成所述两个分区;以及通过执行逆变换获得当前块的残差样本,所述当前块是所述两个分区之一,其中,是否允许在所述垂直方向或所述水平方向上划分所述编码块通过将所述编码块的大小与阈值进行比较来确定,其中,所述编码块被划分成相互具有相同大小的所述两个分区,并且其中,当所述编码块被划分成所述两个分区时,跳过对所述当前块的逆变换不被允许。
23.根据本发明的对图像进行解码的方法,包括:将编码块在垂直方向或水平方向上划分成两个分区;对当前块的残差样本执行变换,所述当前块是所述两个分区之一;以及对指示所述编码块是否被划分成所述两个分区的信息进行编码,其中,是否允许在所述垂直方向或所述水平方向上划分所述编码块通过将所述编码块的大小与阈值进行比较来确定,其中,所述编码块被划分成相互具有相同大小的所述两个分区,并且其中,当所述编码块被划分成所述两个分区时,跳过对所述当前块的变换不被允许。
24.提供了根据本发明的用于存储压缩视频数据的装置,所述压缩视频数据由编码方法生成,其中,所述编码方法包括:将编码块在垂直方向或水平方向上划分成两个分区;对
当前块的残差样本执行变换,所述当前块是所述两个分区之一;以及对指示所述编码块是否被划分成所述两个分区的信息进行编码,其中,是否允许在所述垂直方向或所述水平方向上划分所述编码块通过将所述编码块的大小与阈值进行比较来确定,其中,所述编码块被划分成相互具有相同大小的所述两个分区,并且其中,当所述编码块被划分成所述两个分区时,跳过对所述当前块的变换不被允许。
25.有益效果
26.根据本发明,可以对编码/解码目标块执行高效的帧间预测。
27.根据本发明,具有如下优点:通过在被执行运动补偿的块上应用重叠块运动补偿来使帧间预测的效率增加。
28.根据本发明,具有如下优点:通过基于块而非样本应用光流来减小存储器使用。
29.本发明可获得的效果不限于以上提及的效果,并且本领域的技术人员可以从下面的描述中清楚地理解未提及的其他效果。
附图说明
30.图1是示出根据应用本发明的实施方式的用于对视频进行编码的装置的框图。
31.图2是示出根据应用本发明的实施方式的用于对视频进行解码的装置的框图。
32.图3是示出根据应用本发明的实施方式的基于树结构对编码块进行分级划分的示例的图。
33.图4是示出根据应用本发明的实施方式的允许基于二叉树的划分的划分类型的图。
34.图5是示出根据应用本发明的实施方式的仅允许预定类型的基于二叉树的划分的示例的图。
35.图6是用于说明根据应用本发明的实施方式的与二叉树划分的允许数目有关的信息被编码/解码的示例的图。
36.图7是示出根据应用本发明的实施方式的可应用于编码块的划分模式的图。
37.图8是示出根据应用本发明的实施方式的帧间预测方法的流程图。
38.图9是示出在合并模式被应用于当前块的情况下导出当前块的运动信息的处理的图。
39.图10是示出在amvp模式被应用于当前块的情况下导出当前块的运动信息的处理的图。
40.图11是示出基于atmvp基于子块导出运动向量的方法的图。
41.图12是示出基于stmvp基于子块导出运动向量的方法的图。
42.图13是示出双向光流的图。
43.图14是示出通过使用邻近块的运动向量来执行重叠块运动补偿的示例的图。
44.图15是示出双向光流和重叠块运动补偿被执行的顺序的框图。
45.图16是示出用于导出运动改进向量的预定位置的样本的图。
46.图17是示出双向光流和重叠块运动补偿被执行的顺序的框图。
具体实施方式
47.可以对本发明进行各种修改,并且存在本发明的各种实施方式,现在将参照附图提供实施方式的示例,并且对其进行详细描述。然而,本发明不限于此,并且示例性实施方式可以被解释为包括本发明的技术构思和技术范围内的全部修改、等同物或替代方案。在描述附图时,相似的附图标记指代相似的元件。
48.说明书中使用的术语“第一”、“第二”等可以用于描述各种部件,但是这些部件不被解释为限制于这些术语。这些术语仅用于区分一个部件与其他部件。例如,在不背离本发明的范围的情况下,“第一”部件可以被称为“第二”部件,并且“第二”部件也可以被类似地称为“第一”部件。术语“和/或(以及/或者)”包括多个项的组合或者多个术语中的任意一个。
49.应当理解的是,在本说明书中,当元件被简单地称为“连接至”或“耦接至”另一元件而不是“直接连接至”或“直接耦接至”另一元件时,该元件可以“直接连接至”或“直接耦接至”另一元件,或者该元件可以连接至或耦接至另一元件并且有其他元件介于它们之间。相对地,应该理解的是,当元件被称为“直接耦接”或“直接连接”至另一元件时,不存在中间元件。
50.本说明书中使用的术语仅用于描述特定实施方式,而并不旨在限制本发明。以单数形式使用的表述包含复数形式的表述,除非该表述在上下文中有明确不同的含义。在本说明书中,应当理解的是,诸如“包括”、“具有”等的术语旨在指示本说明书中公开的特征、数目、步骤、动作、元件、部分或其组合的存在,并且不旨在排除可以存在或可以添加一个或更多个其他特征、数目、步骤、动作、元件、部分或其组合的可能性。
51.在下文中,将参照附图详细描述本发明的优选实施方式。在下文中,附图中的相同组成元件用相同的附图标记来表示,并且将省略对相同元件的重复描述。
52.图1是示出根据应用本发明的实施方式的用于对视频进行编码的装置的框图。
53.参照图1,用于对视频进行编码的装置100可以包括:图片划分模块110、预测模块120,125、变换模块130、量化模块135、重排模块160、熵编码模块165、逆量化模块140、逆变换模块145、滤波器模块150和存储器155。
54.图1所示的组成部分被独立地示出,以表示用于对视频进行编码的装置中彼此不同的特征功能,并且并不意味着每个组成部分是由单独的硬件或软件的组成单元组成的。换言之,为了方便起见,每个组成部分包括列举的组成部分中的每一个。因此,每个组成部分的至少两个组成部分可以被组合以形成一个组成部分,或者一个组成部分可以被划分成多个组成部分以执行每个功能。在不背离本发明的本质的情况下,每个组成部分被组合的实施方式和一个组成部分被划分的实施方式也被包括在本发明的范围内。
55.此外,组成部分中的一些可以不是执行本发明的基本功能的不可缺少的组成部分,而是仅用于改善本发明的性能的可选组成部分。可以通过排除用于改善性能的组成部分而仅包括用于实现本发明的实质的不可缺少的组成部分来实现本发明。排除仅用于改善性能的可选组成部分而仅包括不可缺少的组成部分的结构也被包括在本发明的范围内。
56.图片划分模块110可以将输入图片划分成一个或更多个处理单元。此处,处理单元可以是预测单元(prediction unit,pu)、变换单元(transform unit,tu)或编码单元(coding unit,cu)。图片划分模块110可以将一个图片划分成多个编码单元、预测单元和变
换单元的组合,并且可以通过使用预定准则(例如,成本函数)选择编码单元、预测单元和变换单元的一个组合来对图片进行编码。
57.例如,一个图片可以被划分成多个编码单元。可以使用例如四叉树结构(quad tree structure)的递归树结构来将图片划分成编码单元。编码单元——其在一个图片或最大编码单元(largest coding unit)作为根的情况下被划分成其他编码单元——可以以子节点与所划分的编码单元的数目对应的方式被划分。按照预定限制不再划分的编码单元用作叶节点。即,当假设对于一个编码单元仅正方形划分可行时,一个编码单元可以最多被划分成四个其他编码单元。
58.在下文中,在本发明的实施方式中,编码单元(coding unit)可以意指执行编码(encoding)的单元或者执行解码的单元。
59.预测单元可以是在单个编码单元中被划分成具有相同尺寸的正方形形状或矩形形状的分区(partition)中之一,或者预测单元可以是被划分成使得在单个编码单元中被划分的预测单元中的一个预测单元具有不同于其他预测单元的形状和/或尺寸的分区中之一。
60.当基于编码单元执行帧内预测的预测单元被生成并且编码单元不是最小编码单元时,可以在不将编码单元划分成多个预测单元n
×
n的情况下执行帧内预测。
61.预测模块120,125可以包括执行帧间预测的帧间预测模块120和执行帧内预测的帧内预测模块125。可以确定对于预测单元是执行帧间预测还是帧内预测,并且可以确定根据每个预测方法的详细信息(例如,帧内预测模式、运动向量、参考图片等)。此处,执行预测的处理单元可以不同于对其确定了预测方法和详细内容的处理单元。例如,可以基于预测单元确定预测方法、预测模式等,并且可以基于变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以被输入至变换模块130。此外,用于预测的预测模式信息、运动向量信息等可以与残差值一起在熵编码模块165中进行编码,并且可以被传送至用于对视频进行解码的装置。当使用特定编码模式时,可以通过按原样对原始块进行编码来传送至用于对视频进行解码的装置,而不通过预测模块120,125生成预测块。
62.帧间预测模块120可以基于当前图片的先前图片或后续图片中至少之一的信息来对预测单元进行预测,或者在一些情况下,可以基于当前图片中的一些编码区域的信息来对预测单元进行预测。帧间预测模块120可以包括参考图片插值模块(reference picture interpolation module)、运动预测模块以及运动补偿模块。
63.参考图片插值模块可以从存储器155接收参考图片信息,并且可以根据参考图片来生成整像素或小于整像素的像素信息。在亮度像素的情况下,可以使用具有不同滤波器系数的基于dct的8抽头插值滤波器来基于1/4像素生成整像素或小于整像素的像素信息。在色度信号的情况下,可以使用具有不同滤波器系数的基于dct的4抽头插值滤波器来基于1/8像素生成整像素或小于整像素的像素信息。
64.运动预测模块可以基于由参考图片插值模块进行插值的参考图片来执行运动预测。作为用于计算运动向量的方法,可以使用诸如基于全搜索的块匹配算法(full search-based block matching algorithm,fbma)、三步搜索(three step search,tss)和新三步搜索算法(new three-step search,nts)等的各种方法。基于插值像素,运动向量可以具有基于1/2像素或1/4像素的运动向量值。运动预测模块可以通过改变运动预测方法来预测当
前预测单元。作为运动预测方法,可以使用诸如跳过方法、合并方法、amvp(advanced motion vector prediction,高级运动向量预测)方法、帧内块复制方法等的各种方法。
65.帧内预测模块125可以基于作为当前图片中的像素信息的与当前块邻近的参考像素信息来生成预测单元。在当前预测单元的邻近块是经受帧间预测的块并且因此参考像素是经受帧间预测的像素时,可以使用经受帧内预测的邻近块的参考像素信息来替换经受帧间预测的块中包括的参考像素。即,当参考像素不可用时,可以使用可用参考像素中的至少一个参考像素来代替不可用的参考像素信息。
66.帧内预测的预测模式可以包括取决于预测方向使用参考像素信息的方向性预测模式和在执行预测时不使用方向信息的非方向性预测模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且为了预测色度信息,可以利用用于预测亮度信息的帧内预测模式信息或者可以利用预测的亮度信号信息。
67.在执行帧内预测时,当预测单元的尺寸与变换单元的尺寸相同时,可以基于位于预测单元的左侧、左上侧和顶部的像素对该预测单元执行帧内预测。然而,在执行帧内预测时,当预测单元的尺寸与变换单元的尺寸不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n划分的帧内预测可以仅用于最小编码单元。
68.在帧内预测方法中,可以在取决于预测模式将ais(adaptive intra smoothing,自适应帧内平滑)滤波器应用于参考像素之后生成预测块。应用于参考像素的ais滤波器的类型可以变化。为了执行帧内预测方法,可以根据与当前预测单元邻近的预测单元的帧内预测模式来预测当前预测单元的帧内预测模式。在通过使用根据邻近预测单元预测到的模式信息来预测当前预测单元的预测模式时,在当前预测单元的帧内预测模式与邻近预测单元的帧内预测模式相同的情况下,可以使用预定的标记信息来传送指示当前预测单元的预测模式与邻近预测单元的预测模式彼此相同的信息。在当前预测单元的预测模式与邻近预测单元的预测模式不同的情况下,可以执行熵编码,以对当前块的预测模式信息进行编码。
69.此外,可以基于由预测模块120,125生成的预测单元来生成包括关于残差值的信息的残差块,该残差值是经受预测的预测单元与预测单元的原始块之间的差值。可以将所生成的残差块输入到变换模块130。
70.变换模块130可以通过使用例如离散余弦变换(discrete cosine transform,dct)、离散正弦变换(discrete sine transform,dst)和klt的变换方法来对残差块进行变换,该残差块包括关于原始块与由预测模块120,125生成的预测单元之间的残差值的信息。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是应用dct、dst还是klt来对残差块进行变换。
71.量化模块135可以对由变换模块130变换到频域的值进行量化。量化系数可以根据图片的重要性或块而变化。可以将由量化模块135计算出的值提供至逆量化模块140和重排模块160。
72.重排模块160可以对经量化的残差值的系数进行重排。
73.重排模块160可以通过系数扫描方法将二维块形式的系数变为一维向量形式的系数。例如,重排模块160可以使用z字形扫描方法从dc系数扫描至高频域的系数,以便将系数变为一维向量形式。根据变换单元的尺寸和帧内预测模式,可以使用沿列方向扫描二维块形式的系数的垂直方向扫描或沿行方向扫描二维块形式的系数的水平方向扫描来代替z字
形扫描。即,可以根据变换单元的尺寸和帧内预测模式来确定使用z字形扫描、垂直方向扫描和水平方向扫描中的哪种扫描方法。
74.熵编码模块165可以基于由重排模块160计算的值来执行熵编码。熵编码可以使用各种编码方法,例如,指数哥伦布(exponential golomb)编码、上下文自适应变长编码(context-adaptive variable length coding,cavlc)和上下文自适应二进制算术编码(context-adaptive binary arithmetic coding,cabac)。
75.熵编码模块165可以对来自重排模块160以及预测模块120,125的例如编码单元的残差值系数信息和块类型信息、预测模式信息、划分单元信息、预测单元信息、变换单元信息、运动向量信息、参考帧信息、块插值信息、滤波信息等的各种信息进行编码。
76.熵编码模块165可以对从重排模块160输入的编码单元的系数进行熵编码。
77.逆量化模块140可以对由量化模块135量化的值进行逆量化,并且逆变换模块145可以对由变换模块130变换的值进行逆变换。可以将由逆量化模块140和逆变换模块145生成的残差值与由预测模块120,125的运动估计模块、运动补偿模块和帧内预测模块预测的预测单元进行组合,使得可以生成重构块。
78.滤波器模块150可以包括去块滤波器、偏移校正单元或自适应环路滤波器(adaptive loop filter,alf)中至少之一。
79.去块滤波器可以去除由于重构图片中的块之间的边界而出现的块失真。为了确定是否执行去块,包括在块的若干行或若干列中的像素可以是确定是否对当前块应用去块滤波器的基础。当对块应用去块滤波器时,可以根据所需的去块滤波强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,可以并行地处理水平方向滤波和垂直方向滤波。
80.偏移校正模块可以针对经受去块的图片基于像素来校正与原始图片的偏移。为了对特定图片执行偏移校正,可以使用考虑每个像素的边缘信息来应用偏移的方法,或者可以使用下述方法:将图片的像素划分为预定数目的区域、确定要执行偏移的区域、并且对所确定的区域应用偏移。
81.可以基于通过将经滤波的重构图片与原始图片进行比较而获得的值来执行自适应环路滤波(alf)。可以将包括在图片中的像素划分成预定组,可以确定要应用于每个组的滤波器,并且可以针对每个组单独地执行滤波。可以通过编码单元(cu)传送关于是否应用alf和亮度信号的信息。用于alf的滤波器的形状和滤波器系数可以根据每个块而不同。此外,无论应用目标块的特征如何,都可以应用相同形状(固定形状)的用于alf的滤波器。
82.存储器155可以存储通过滤波器模块150计算的重构块或重构图片。可以在执行帧间预测时将所存储的重构块或重构图片提供至预测模块120,125。
83.图2是示出根据应用本发明的实施方式的用于对视频进行解码的装置的框图。
84.参照图2,用于对视频进行解码的装置200可以包括:熵解码模块210、重排模块215、逆量化模块220、逆变换模块225、预测模块230,235、滤波器模块240以及存储器245。
85.当从用于对视频进行编码的装置输入视频比特流时,可以根据用于对视频进行编码的装置的逆过程来对输入比特流进行解码。
86.熵解码模块210可以根据由用于对视频进行编码的装置的熵编码模块进行的熵编码的逆过程来执行熵解码。例如,对应于由用于对视频进行编码的装置执行的方法,可以应用各种方法,例如,指数哥伦布编码、上下文自适应变长编码(cavlc)和上下文自适应二进
制算术编码(cabac)。
87.熵解码模块210可以对关于由用于对视频进行编码的装置执行的帧内预测和帧间预测的信息进行解码。
88.重排模块215可以基于在用于对视频进行编码的装置中使用的重排方法对由熵解码模块210进行熵解码的比特流执行重排。重排模块可以将一维向量形式的系数重构和重排为二维块形式的系数。重排模块215可以接收与在用于对视频进行编码的装置中执行的系数扫描相关的信息,并且可以经由基于在用于对视频进行编码的装置中执行的扫描顺序对系数进行逆扫描的方法来执行重排。
89.逆量化模块220可以基于从用于对视频进行编码的装置接收的量化参数和经重排的块的系数来执行逆量化。
90.逆变换模块225可以对用于对视频进行编码的装置的量化结果执行作为由变换模块执行的变换即dct、dst和klt的逆过程的逆变换,即,逆dct、逆dst和逆klt。可以基于由用于对视频进行编码的装置所确定的传输单元来执行逆变换。用于对视频进行解码的装置的逆变换模块225可以根据例如预测方法、当前块的尺寸、预测方向等的多条信息来选择性地执行变换方案(例如,dct、dst、klt)。
91.预测模块230,235可以基于关于从熵解码模块210接收到的预测块生成的信息和从存储器245接收到先前解码的块或图片信息来生成预测块。
92.如上所述,类似于用于对视频进行编码的装置的操作,在执行帧内预测时,在预测单元的尺寸与变换单元的尺寸相同的情况下,可以基于位于预测单元的左侧、左上侧和顶部的像素对预测单元执行帧内预测。在执行帧内预测时,在预测单元的尺寸与变换单元的尺寸不同的情况下,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n划分的帧内预测可以仅用于最小编码单元。
93.预测模块230,235可以包括预测单元确定模块、帧间预测模块以及帧内预测模块。预测单元确定模块可以从熵解码模块210接收各种信息,例如预测单元信息、帧内预测方法的预测模式信息、关于帧间预测方法的运动预测的信息等,可以将当前编码单元划分成预测单元,并且可以确定对预测单元执行帧间预测还是帧内预测。通过使用从用于对视频进行编码的装置接收到的当前预测单元的帧间预测所需的信息,帧间预测模块230可以基于包括当前预测单元的当前图片的先前图片或后续图片中至少之一的信息来对当前预测单元执行帧间预测。替选地,可以基于包括当前预测单元的当前图片中的一些预先重构区域的信息来执行帧间预测。
94.为了执行帧间预测,可以针对编码单元来确定将跳过模式、合并模式、amvp模式和帧间块复制模式中的哪一个用作包括在编码单元中的预测单元的运动预测方法。
95.帧内预测模块235可以基于当前图片中的像素信息来生成预测块。当预测单元是经受帧内预测的预测单元时,可以基于从用于对视频进行编码的装置接收到的预测单元的帧内预测模式信息来执行帧内预测。帧内预测模块235可以包括自适应帧内平滑(ais)滤波器、参考像素插值模块以及dc滤波器。ais滤波器对当前块的参考像素执行滤波,并且可以根据当前预测单元的预测模式来确定是否应用滤波器。可以通过使用从用于对视频进行编码的装置接收到的预测单元的预测模式和ais滤波器信息来对当前块的参考像素执行ais滤波。在当前块的预测模式是不执行ais滤波的模式时,可以不应用ais滤波器。
96.当预测单元的预测模式是基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值模块可以对参考像素进行插值,以生成整像素或小于整像素的参考像素。在当前预测单元的预测模式是在没有对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。在当前块的预测模式是dc模式时,dc滤波器可以通过滤波来生成预测块。
97.可以将重构块或重构图片提供至滤波器模块240。滤波器模块240可以包括去块滤波器、偏移校正模块以及alf。
98.可以从用于对视频进行编码的装置接收关于是否将去块滤波器应用于相应的块或图片的信息以及关于在当应用去块滤波器时应用强滤波器和弱滤波器中的哪个滤波器的信息。用于对视频进行解码的装置的去块滤波器可以从用于对视频进行编码的装置接收关于去块滤波器的信息,并且可以对相应的块执行去块滤波。
99.偏移校正模块可以基于在执行编码时应用于图片的偏移校正的类型和偏移值信息来对重构图片执行偏移校正。
100.可以基于从用于对视频进行编码的装置接收到的关于是否应用alf的信息、alf系数信息等的信息来将alf应用于编码单元。alf信息可以被提供为被包括在特定参数集中。
101.存储器245可以存储重构图片或重构块以用作参考图片或参考块,并且可以将重构图片提供至输出模块。
102.如上所述,在本发明的实施方式中,为了便于说明,编码单元被用作表示用于编码的单元的术语,然而,编码单元可以用作执行解码以及编码的单元。
103.此外,当前块可以表示要被编码/解码的目标块。并且,根据编码/解码步骤,当前块可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)、预测块(或预测单元)等。
104.可以通过将图片划分成具有正方形形状或非正方形形状的基本块来对图片进行编码/解码。此时,基本块可以称为编码树单元。编码树单元可以被定义为序列或片(slice)内允许的最大尺寸的编码单元。可以通过序列参数集、图片参数集或片头(slice header)来用信号发送与编码树单元是具有正方形形状还是具有非正方形形状有关的信息或者与编码树单元的尺寸有关的信息。编码树单元可以被划分成更小尺寸的分区(partition)。此时,如果假设通过分割编码树单元而生成的分区的深度是1,则通过分割具有深度1的分区而生成的分区的深度可以被定义为2。即,通过在编码树单元中分割具有深度k的分区而生成的分区可以被定义为具有深度k+1。
105.通过分割编码树单元而生成的任意尺寸的分区可以被定义为编码单元。编码单元可以被递归地划分或者划分成用于执行预测、量化、变换或环路滤波等的基本单元。例如,通过分割编码单元而生成的任意尺寸的分区可以被定义为编码单元,或者可以被定义为变换单元或预测单元,其是用于执行预测、量化、变换、环路滤波等的基本单元。
106.可以基于垂直线或水平线中至少之一来执行编码树单元或编码单元的划分。此外,划分编码树单元或编码单元的垂直线或水平线的数目可以是至少一条或更多条。例如,可以使用一条垂直线或一条水平线将编码树单元或编码单元划分成两个分区,或者可以使用两条垂直线或两条水平线将编码树单元或编码单元划分成三个分区。替选地,可以通过使用一条垂直线和一条水平线将编码树单元或编码单元划分成具有1/2长度和宽度的四个
分区。
107.当使用至少一条垂直线或至少一条水平线将编码树单元或编码单元划分成多个分区时,分区可以具有统一的尺寸或不同的尺寸。替选地,任何一个分区可以具有与其余分区不同的尺寸。
108.在下面描述的实施方式中,假设编码树单元或编码单元被划分成四叉树结构、三叉树结构或二叉树结构。然而,也可以使用更多数量的垂直线或更多数量的水平线来划分编码树单元或编码单元。
109.图3是示出根据应用本发明的实施方式的基于树结构对编码块进行分级划分的示例的图。
110.以预定的块单位对输入视频信号进行解码。用于对输入视频信号进行解码的这样的默认单元是编码块。编码块可以是执行帧内/帧间预测、变换以及量化的块。此外,基于编码块确定预测模式(例如,帧内预测模式或帧间预测模式),并且在编码块中包括的预测块可以共享所确定的预测模式。编码块可以是具有在8
×
8至64
×
64的范围内的任意尺寸的正方形块或非正方形块,或者可以是具有128
×
128、256
×
256或更大的尺寸的正方形块或非正方形块。
111.具体地,可以基于四叉树、三叉树或二叉树中至少之一来对编码块进行分级划分。此处,基于四叉树的划分可以意指将2n
×
2n的编码块划分成四个n
×
n的编码块,基于三叉树的划分可以意指将一个编码块划分成三个编码块,并且基于二叉树的划分可以意指将一个编码块划分成两个编码块。即使基于三叉树的划分或基于二叉树的划分被执行,在较低深度中也可能存在正方形形状的编码块。此外,在基于三叉树的划分或基于二叉树的划分被执行后,生成正方形形状的编码块可以限于在较低的深度中。
112.基于二叉树的划分可以对称地执行或者非对称地执行。基于二叉树而划分的编码块可以是正方形块或非正方形块,例如,矩形形状。例如,允许基于二叉树的划分的划分类型可以包括以下中至少之一:对称类型2n
×
n(水平方向非正方形编码单元)或n
×
2n(垂直方向非正方形编码单元);非对称类型nl
×
2n;nr
×
2n;2n
×
nu或2n
×
nd。
113.可以将基于二叉树的划分限制地允许为对称类型划分或非对称类型划分中之一。在这种情况下,以正方形块构造编码树单元可以与四叉树cu划分对应,并且以对称非正方形块构造编码树单元可以与二叉树划分对应。以正方形块和对称非正方形块构造编码树单元可以与四叉树cu划分和二叉树cu划分对应。
114.可以对不再执行基于四叉树的划分的编码块执行基于二叉树的划分。可以不再对基于二叉树而划分的编码块执行基于四叉树的划分、基于三叉树的划分或基于二叉树的划分中至少之一。
115.替选地,基于三叉树的划分或基于二叉树的划分可以被允许用于基于二叉树而划分的编码块,但是仅水平划分或垂直划分中之一可以被限制地允许。
116.例如,可以根据基于二叉树而划分的编码块的邻近分区的附加分区类型、位置、索引或形状等,对基于二叉树而划分的编码块限制附加分区或附加分区方向。例如,当通过基于二叉树的划分生成的两个编码块之中的在编码顺序之前的编码块的索引为0(以下称为编码块索引0),并且通过基于二叉树的划分生成的两个编码块中的紧随编码顺序的编码块的索引为1(以下称为编码块索引1)时,在基于二叉树的划分被应用于编码块索引为0或编
码块索引为1的所有编码块的情况下,可以根据编码块索引为0的编码块的基于二叉树的划分方向来确定编码块索引为1的编码块的基于二叉树的划分方向。具体地,当编码块索引为0的编码块的基于二叉树的划分方向是将编码块索引为0的编码块划分为正方形分区时,编码块索引为1的编码块的基于二叉树的划分可以被限制为具有与编码块索引为1的编码块的基于二叉树的划分不同的方向。因此,可以限制编码块索引为0和编码块索引为1的编码块被划分成正方形分区。在这种情况下,可以省略对指示编码块索引为1的编码块的二叉树划分方向的信息的编码/解码。这是因为将编码块索引为0和编码块索引为1的所有编码块划分为正方形分区具有与基于四叉树来划分较高深度块相同的效果,从而就编码效率而言,允许全部编码块划分成正方形分区是不希望的。
117.基于三叉树的划分是指将编码块在水平或垂直方向上划分为三个分区。由于基于三叉树的划分而生成的所有三个分区可能具有不同的尺寸。替选地,由于基于三叉树的划分而生成的分区中的两个可以具有相同的尺寸,而另一个可以具有不同的尺寸。例如,可以根据划分方向将在编码块被划分时生成的分区的宽度比率或高度比率设置为1:n:1、1:1:n、n:1:1或m:n:1。此处,m和n可以是1或大于1的实数,例如,诸如2的整数。
118.可以对不再执行基于四叉树的划分的编码块执行基于三叉树的划分。对于基于三叉树而划分的编码块,可以将基于四叉树的划分、基于三叉树的划分或基于二叉树的划分中至少之一设置为不再执行。
119.替选地,可以允许将基于三叉树的划分或基于二叉树的划分用于基于三叉树而划分的编码块,但是仅水平划分或垂直划分之一可以被限制地允许。
120.例如,可以根据基于三叉树而划分的编码块的邻近分区的附加分区类型、位置、索引或形状等,对于基于三叉树而划分的编码块限制附加分区或附加分区方向。例如,水平分割或垂直分割之一可以限于由于基于三叉树的划分而生成的编码块之中具有最大尺寸的分区。具体地,由于基于三叉树的划分而生成的编码块之中的最大分区可能不允许与较高深度划分的三叉树划分方向相同的方向上的三叉树划分方向或相同的方向上的二叉树划分。在这种情况下,对于基于三叉树而划分的编码块之中的最大分区,可以省略指示二叉树划分方向或三叉树划分方向的信息的编码/解码。
121.可以根据较高深度的划分类型来确定较低深度的划分。例如,当在两个或更多个深度允许基于二叉树的划分时,可以在较低深度仅允许与较高深度的二叉树划分相同的类型的基于二叉树的划分。例如,当在较高深度中以2n
×
n类型执行基于二叉树的划分时,可以在较低深度中执行2n
×
n类型的基于二叉树的划分。替选地,当在较高深度中以n
×
2n类型执行基于二叉树的划分时,可以在较低深度中允许n
×
2n类型的基于二叉树的划分。
122.相比之下,也可以在较低深度仅允许具有与较高深度的二叉树划分不同类型的基于二叉树的划分。
123.对于序列、片、编码树单元或编码单元,其可以被限制为仅使用特殊类型的基于二叉树的划分或特殊类型的基于三叉树的划分。例如,对于编码树单元,其可以被限于仅允许2n
×
n类型或n
×
2n类型的基于二叉树的划分。允许的划分类型可以在编码器或解码器中预定义,并且关于允许的划分类型或不允许的划分类型的信息可以通过比特流编码和用信号发送。
124.图5是示出仅允许特定类型的基于二叉树的划分的示例的图。图5(a)示出了仅允
许n
×
2n类型的基于二叉树的划分的示例,并且图5(b)示出了仅允许2n
×
n类型的基于二叉树的划分的示例。为了实现基于四叉树或二叉树的自适应划分,可以使用下述信息:指示基于四叉树的划分的信息、关于允许基于四叉树的划分的编码块的尺寸/深度的信息、指示基于二叉树的划分的信息、关于允许基于二叉树的划分的编码块的尺寸/深度的信息、关于不允许基于二叉树的划分的编码块的尺寸/深度的信息、关于是沿垂直方向还是沿水平方向执行基于二叉树的划分的信息等。
125.此外,可以针对编码树单元或特定编码单元获得关于允许二叉树/三叉树划分的次数、允许二叉树/三叉树划分的深度或允许二叉树/三叉树划分的深度的数目的信息。信息通过比特流可以基于编码树单元或编码单元被编码,并且可以被传送至解码器。
126.例如,可以通过比特流对指示允许二叉树划分的最大深度的语法“max_binary_depth_idx_minus1”进行编码/解码。在这种情况下,max_binary_depth_idx_minus1+1可以指示允许二叉树划分的最大深度。
127.参照图6中所示的示例,在图6中,已经针对深度为2的编码单元和深度为3的编码单元执行二叉树划分。因此,可以通过比特流对以下信息中至少之一进行编码/解码:指示编码树单元中的二叉树划分已被执行的次数(即,2次)的信息、指示在编码树单元中已经允许二叉树划分的最大深度(即,深度3)的信息或者指示在编码树单元中已经执行二叉树划分的深度的数目(即,2个(深度2和深度3))的信息。
128.作为另一示例,可以针对每个序列或每个片获得关于允许二叉树/三叉树划分的次数的信息、关于允许二叉树/三叉树划分的深度的信息或关于允许二叉树/三叉树划分的深度的数目的信息中至少之一。例如,信息可以通过比特流基于序列、图片或片单元被编码,并且被传送。相比之下,可以针对每个序列、图片或片单元来限定允许二叉树/三叉树划分的深度、或者允许二叉树/三叉树划分的深度的数目。因此,以下中至少之一可以与第二片不同:第一片和第二片中的二叉树/三叉树划分的数目,第一片和第二片中允许二叉树/三叉树划分的最大深度,或者第一片和第二片中执行二叉树/三叉树划分的深度的数目。例如,在第一片中,可以仅针对一个深度允许二叉树划分,而在第二片中,可以针对两个深度允许二叉树划分。
129.作为另一示例,可以根据片或图片的时间级别标识符(temporalid)不同地设置允许二叉树/三叉树划分的次数、允许二叉树/三叉树划分的深度或允许二叉树/三叉树划分的深度的数目。此处,时间级别标识符(temporalid)用于标识具有视图、空间、时间或质量中至少之一的可扩展性的多个视频层中的每一个。
130.如图3所示,可以基于四叉树将划分深度(拆分深度)为k的第一编码块300划分成多个第二编码块。例如,第二编码块310至340可以是宽度和高度为第一编码块的宽度和高度的一半的正方形块,并且第二编码块的划分深度可以增加至k+1。
131.具有k+1的划分深度的第二编码块310可以被划分为具有k+2的划分深度的多个第三编码块。可以通过根据划分方法选择性地使用四叉树和二叉树中之一来执行第二编码块310的划分。此处,可以基于指示基于四叉树的划分的信息或指示基于二叉树的划分的信息中至少之一来确定划分方法。
132.当基于四叉树对第二编码块310进行划分时,第二编码块310可以被划分成宽度和高度为第二编码块的宽度和高度的一半的四个第三编码块310a,并且第三编码块310a的划
分深度可以增加至k+2。相比之下,当基于二叉树对第二编码块310进行划分时,第二编码块310可以被划分成两个第三编码块。此处,两个第三编码块中的每一个可以是具有第二编码块的一半宽度和一半高度中之一的非正方形块,并且划分深度可以增加至k+2。可以根据划分方向将第二编码块确定为水平方向或垂直方向的非正方形块,并且可以基于关于是沿垂直方向还是沿水平方向执行基于二叉树的划分的信息来确定划分方向。
133.同时,第二编码块310可以被确定为不再基于四叉树或二叉树划分的叶编码块。在该情况下,叶编码块可以被用作为预测块或变换块。
134.类似于第二编码块310的划分,第三编码块310a可以被确定为叶编码块,或者可以基于四叉树或二叉树被进一步划分。
135.同时,基于二叉树而划分的第三编码块310b可以基于二叉树被进一步划分成垂直方向的编码块310b-2或水平方向的编码块310b-3,并且相关编码块的划分深度可以增加至k+3。替选地,第三编码块310b可以被确定为不再基于二叉树来划分的叶编码块310b-1。在该情况下,编码块310b-1可以被用作为预测块或变换块。然而,可以基于以下信息中至少之一来限制性地执行上述划分处理:关于允许基于四叉树的划分的编码块的尺寸/深度的信息、关于允许基于二叉树的划分的编码块的尺寸/深度的信息、或者关于不允许基于二叉树的划分的编码块的尺寸/深度的信息。
136.表示编码块的尺寸的候选的数目可以被限制为预定数目,或者预定单元中的编码块的尺寸可以具有固定值。作为示例,序列或图片中的编码块的尺寸可以被限制为具有256
×
256、128
×
128或32
×
32。可以通过序列头或图片头来用信号发送指示序列中或图片中的编码块的尺寸的信息。
137.作为基于四叉树和二叉树的划分的结果,编码单元可以表示为任意尺寸的正方形或矩形形状。
138.根据是基于四叉树划分、二叉树划分还是三叉树划分生成编码块,可以限制变换跳过的应用。
139.此处,当在编码块的水平方向和垂直方向二者上跳过逆变换时,在编码块的水平方向和垂直方向上不执行逆变换。在这种情况下,逆量化的残差系数可以被缩放为预设值以获得编码块的残差样本。
140.在水平方向上省略逆变换意味着:不在水平方向上执行逆变换,而在垂直方向上使用dct、dst等执行逆变换。在这种情况下,可以在水平方向上执行缩放。
141.在垂直方向上省略逆变换意味着:不在垂直方向上执行逆变换,而在水平方向上使用dct、dst等执行逆变换。在这种情况下,可以在垂直方向上执行缩放。
142.具体地,可以根据编码块的划分类型确定逆变换跳过技术是否可以用于编码块。例如,当通过基于二叉树的划分来生成编码块时,其可以被限制为对于编码块不使用逆变换跳过技术。因此,当通过基于二叉树的划分来生成编码块时,可以通过对编码块进行逆变换来获得编码块的残差样本。另外,当通过基于二叉树的划分来生成编码块时,可以省略对指示是否跳过逆变换的信息(例如,transform_skip_flag)的编码/解码。
143.替选地,当通过基于二叉树的划分来生成编码块时,其可以被限制为仅允许在水平方向或垂直方向中至少之一上的逆变换跳过技术。此处,可以基于从比特流解码的信息来确定或者基于编码块的尺寸、编码块的形状或编码块的帧内预测中至少之一来适应性地
确定逆变换跳过技术受到限制的方向。
144.例如,当编码块是宽度大于高度的非正方形块时,可以仅对垂直方向允许逆变换跳过技术,并且可以对水平方向限制逆变换跳过技术的使用。即,当编码块是2n
×
n时,可以在编码块的水平方向上执行逆变换,并且可以在垂直方向上选择性地执行逆变换。
145.另一方面,当编码块是高度大于宽度的非正方形块时,可以仅对水平方向允许逆变换跳过技术,并且可以对于垂直方向限制逆变换跳过技术的使用。即,当编码块是n
×
2n时,可以在编码块的垂直方向上执行逆变换,并且可以在水平方向上选择性地执行逆变换。
146.与以上示例相比,当编码块是宽度大于高度的非正方形块时,仅对于水平方向允许逆变换跳过技术,当编码块是高度大于宽度的非正方形块时,可以仅对于垂直方向允许逆变换跳过技术。
147.可以通过比特流来用信号发送关于是否在水平方向上跳过逆变换的信息或者指示是否在垂直方向上跳过逆变换的信息。例如,指示是否在水平方向上跳过逆变换的信息可以是1位标志“hor_transform_skip_flag”,而指示是否在垂直方向上跳过逆变换的信息可以是1位标志,“ver_transform_skip_flag”。编码器可以根据编码块的形状来对“hor_transform_skip_flag”或“ver_transform_skip_flag”中至少之一进行编码。另外,解码器可以使用“hor_transform_skip_flag”或“ver_transform_skip_flag”中至少之一来确定是否跳过水平方向或垂直方向上的逆变换。
148.根据编码块的划分类型,在任一方向上,可以将逆变换设置为省略。例如,当通过基于二叉树的划分生成编码块时,可以省略水平方向或垂直方向上的逆变换。即,如果通过基于二叉树的划分来生成编码块,而没有对指示是否跳过编码块的逆变换的信息(例如,transform_skip_flag,hor_transform_skip_flag,ver_transform_skip_flag)的编码/解码,则可以确定是否对于编码块跳过水平方向或垂直方向中至少之一上逆变换。
149.使用跳过模式、帧内预测、帧间预测或跳过方法中至少之一来对编码块进行编码。一旦确定了编码块,就可以通过编码块的预测划分来确定预测块。可以通过指示编码块的划分类型的划分模式(part_mode)来执行编码块的预测划分。可以根据编码块的划分模式来确定预测块的尺寸或形状。例如,根据划分模式确定的预测块的尺寸可以等于或小于编码块的尺寸。
150.图7是示出当通过帧间预测对编码块进行编码时可以应用于编码块的划分模式的图。
151.当通过帧间预测对编码块进行编码时,可以将8个划分模式中之一应用于编码块,如图4所示的示例中那样。
152.当通过帧内预测对编码块进行编码时,可以将划分模式part_2n
×
2n或划分模式part_n
×
n应用于编码块。
153.当编码块具有最小尺寸时,可以应用part_n
×
n。此处,可以在编码器和解码器中预定义编码块的最小尺寸。或者,可以经由比特流用信号发送与编码块的最小尺寸有关的信息。例如,可以通过片头来用信号发送编码块的最小尺寸,使得可以按片来限定编码块的最小尺寸。
154.通常,预测块可以具有从64
×
64到4
×
4的尺寸。然而,当通过帧间预测对编码块进行编码时,可以进行限制使得预测块不具有4
×
4尺寸以在执行运动补偿时减小存储器带
宽。
155.图8是示出根据应用本发明的实施方式的帧间预测方法的流程图。
156.参照图8,确定当前块的运动信息(s810)。当前块的运动信息可以包括与当前块有关的运动向量、当前块的参考图片索引或当前块的帧间预测方向中至少之一。
157.可以基于通过比特流用信号发送的信息或邻接当前块的邻近块的运动信息中至少之一来获得当前块的运动信息。
158.图9是示出在将合并模式应用于当前块的情况下导出当前块的运动信息的处理的图。
159.如果将合并模式应用于当前块,则可以从当前块的空间邻近块导出空间合并候选(s910)。空间邻近块可以包括邻接当前块的顶部、左侧或角(例如,左上角、右上角或左下角中至少之一)的块中至少之一。在本文中,邻接当前块的顶部的块可以包括与当前块的顶部中心样本邻近的块或与当前块的右上样本邻近的块中至少之一,并且邻接当前块的左侧的块可以包括与当前块的左中心样本邻近的块或与当前块的左下样本邻近的块中至少之一。
160.空间邻近块还可以包括与当前块不邻接的块。例如,位于与邻接当前块的顶部、右上角或左上角的块相同垂直线上的块、位于与邻接当前块的左侧、左下角或左上角的块相同水平线上的块、或者位于与邻接当前块的角的块相同对角线上的块可以用作空间邻近块。作为具体示例,当与当前块邻接的邻近块无法用作为合并候选时,与当前块不邻接的块可以用作为当前块的合并候选。
161.可以将空间合并候选的运动信息设置为与空间邻近块的运动信息相同。
162.可以从当前块的时间邻近块导出时间合并候选(s920)。时间邻近块可以意指在并置图片(collocated picture)中包括的同位块。并置图片具有与包括当前块的当前图像不同的图片顺序计数(picture order count,poc)。并置图片可以被确定为参考图片列表中的具有预定义索引的图片,或者可以由从比特流用信号发送的索引确定。时间邻近块可以被确定为并置图片中的与当前块具有相同的位置和尺寸的块或者邻接与当前块具有相同的位置和尺寸的块的块。例如,可以将并置图片中的包括与当前块具有相同的位置和尺寸的块的中心坐标的块或邻接该块的右下边界的块中的至少之一确定为时间邻近块。
163.可以基于时间邻近块的运动信息来确定时间合并候选的运动信息。例如,可以基于时间邻近块的运动向量来确定时间合并候选的运动向量。此外,时间合并候选的帧间预测方向可以被设置为与时间邻近块的帧间预测方向相同。然而,时间合并候选的参考图片索引可以具有固定值。例如,时间合并候选的参考图片索引可以被设置为“0”。
164.此后,可以生成包括空间合并候选和时间合并候选的合并候选列表(s930)。如果在合并候选列表中包括的合并候选的数目小于合并候选的最大数目,则组合两个或更多个合并候选的组合的合并候选或具有零运动向量(0,0)的合并候选可以包括在合并候选列表中。
165.当生成合并候选列表时,可以基于合并候选索引来指定在合并候选列表中包括的合并候选中至少之一(s940)。
166.可以将当前块的运动信息设置为与由合并候选索引指定的合并候选的运动信息相同(s950)。例如,当通过合并候选索引选择空间合并候选时,可以将当前块的运动信息设置为与空间邻近块的运动信息相同。替选地,当通过合并候选索引选择时间合并候选时,可
以将当前块的运动信息设置为与时间邻近块的运动信息相同。
167.图10示出了在amvp模式应用于当前块的情况下导出当前块的运动信息的处理。
168.当amvp模式应用于当前块时,可以从比特流对当前块的帧间预测方向或参考图片索引中至少之一进行解码(s1010)。即,当amvp模式被应用时,可以基于通过比特流编码的信息来确定当前块的帧间预测方向或参考图片索引中至少之一。
169.可以基于当前块的空间邻近块的运动向量来确定空间运动向量候选(s1020)。空间运动向量候选可以包括从当前块的顶部邻近块导出的第一空间运动向量候选和从当前块的左邻近块导出的第二空间运动向量候选中至少之一。此处,顶部邻近块可以包括与当前块的顶部或右上角邻接的块中至少之一,并且当前块的左邻近块可以包括与当前块的左侧或左下角邻接的块中至少之一。与当前块的左上角邻接的块可以被视为顶部邻近块或左邻近块。
170.在当前块与空间邻近块之间的参考图片不同时,可以通过缩放空间邻近块的运动向量来获得空间运动向量。
171.可以基于当前块的时间邻近块的运动向量来确定时间运动向量候选(s1030)。如果当前块与时间邻近块之间的参考图片不同,则可以通过缩放时间邻近块的运动向量来获得时间运动向量。
172.可以生成包括空间运动向量候选和时间运动向量候选的运动向量候选列表(s1040)。
173.当生成运动向量候选列表时,可以基于指定运动向量候选列表中至少之一的信息来指定在运动向量候选列表中包括的运动向量候选中至少之一(s1050)。
174.由该信息指定的运动向量候选被设置为当前块的运动向量预测值。并且,通过将运动向量差值添加到运动向量预测值来获得当前块的运动向量(s1060)。此时,可以从比特流解析运动向量差值。
175.当获得当前块的运动信息时,可以基于所获得的运动信息来对当前块执行运动补偿(s820)。更具体地,可以基于当前块的帧间预测方向、参考图片索引和运动向量来对当前块执行运动补偿。
176.可以基于子块来执行运动补偿。可以基于当前块的尺寸、形状或分辨率中至少之一来确定是否基于子块执行运动补偿。例如,当编码块的尺寸大于预定尺寸时,可以将编码块分割成具有预定尺寸的子块,并且可以基于子块执行运动补偿。替选地,指示是否基于子块执行运动补偿的信息可以被编码并发送至解码器。可以基于块(例如,编码单元或编码树单元)或片来发送信息。
177.当基于子块将运动补偿设置为执行时,当前块可以被分割成具有预定尺寸/形状的子块。在本文中,可以在编码器和解码器中预定义子块的尺寸和形状。作为示例,可以基于4
×
4尺寸的子块来执行运动补偿。替选地,指示子块的尺寸或形状的信息可以被编码并发送至解码器。
178.可以使用atmvp(alternative temporal motion vector prediction,替选时间运动向量预测)或stmvp(spatial temporal motion vector prediction,空间时间运动向量预测)的方法来基于子块来导出运动信息。
179.图11是示出基于atmvp基于子块导出运动向量的方法的图。
180.atmvp是如下方法,该方法确定参考图片中与当前块相对应的对应块,并使用所确定的对应块来获得每个子块的运动信息。可以基于邻近块的运动信息来导出参考图片和对应块。例如,可以使用预定位置处的空间邻近块的运动信息或当前块的合并候选列表中包括的第一合并候选的运动信息来确定参考图片和对应块。可以将用于确定参考图片和对应块的邻近块的运动向量和参考图片索引分别定义为时间向量和运动源图片索引。基于时间向量和源图片索引,可以确定当前块的对应块,并且可以以与当前块相同的方式将所确定的对应块分割成子块。可以导出与当前块中的子块相对应的对应块中的子块的运动信息作为对应子块的运动信息。
181.图12是示出基于stmvp基于子块导出运动向量的方法的图。
182.stmvp是使用每个子块的空间邻近块和时间邻近块来获得运动信息的方法。具体地,从与子块的顶部邻接的空间邻近块、与子块的左侧邻接的空间邻近块或子块的时间邻近块中至少之一导出运动向量,并且可以使用导出的至少一条运动信息来执行子块的运动补偿。
183.例如,在图12所示的示例中,可以基于与子块a的顶部邻近的块c、与子块a的左侧邻近的块b或子块a的时间邻近块中的至少一个可用运动向量来导出子块a的运动向量。具体地,基于块c、块b和时间邻近块之中可用的运动向量的平均值导出子块a的运动向量,子块a的运动向量可以被导出为块c、块b和时间邻近块之中的任何一个可用运动向量。
184.当使用stmvp时,可以以预定顺序执行每个子块的运动补偿。例如,在图12所示的示例中,可以按照光栅扫描顺序以子块a、b、c和d的顺序执行运动补偿。
185.可以更新每个样本的运动向量,并且可以使用更新的运动向量来执行运动补偿。具体地,光流表示以像素为单位估计运动向量的方法。具体地,可以导出由在x轴方向上的梯度、在y轴方向上的梯度以及在时间轴方向上的梯度组成的方程的解作为像素单位上的运动向量。
186.下面的等式1示出了用于基于像素导出运动向量的示例。
187.[等式1]
[0188]ixvx
+i
yvy
=-i
t
[0189]
在等式1中,i
x
表示通过使用样本i(x,y,t)在x轴方向上的偏导数而获得的梯度值,iy表示通过使用样本i(x,y,t)在y轴方向上的偏导数而获得的梯度值,并且i
t
表示通过使用样本i(x,y,t)在时间轴方向上的偏导数获得的梯度值。另外,v
x
表示运动向量的x轴分量,而vy表示运动向量的y轴分量。
[0190]
双向光流表示如下方法:在使用块上的运动向量执行运动补偿之后,使用光流基于像素来更新(或改进(refine))运动向量。具体地,双向光流表示基于对基于用于双向预测的块的运动补偿而执行的样本的运动向量改进。由于解码器可以以与编码器相同的方式导出样本级运动改进向量,因此无需用信号发送运动改进向量。
[0191]
图13是示出双向光流的图。
[0192]
如在图13所示的示例中,在针对当前块导出参考图片0ref0和参考图片1ref1的运动向量之后,基于每个样本的运动改进向量,可以更新参考图片0的运动向量和参考图片1的运动向量。
[0193]
因此,当应用双向光流时,可以通过将基于运动改进向量的校正值应用于基于双
向预测的运动补偿块来获得最终预测块。等式2表示使用双向光流的预测样本的获取方法。
[0194]
[等式2]
[0195][0196]
在等式2中,i
(k)
表示使用参考图片lk(k为0或1)生成的运动补偿图像,并且和分别表示i
(k)
的水平和垂直梯度分量。另外,τ0表示当前图片与参考图片0ref0之间的距离,并且τ1表示当前图片与参考图片1ref1之间的距离。简言之,τ0表示当前图片的输出顺序(poc)与参考图片0的输出顺序之间的差值(即,τ0=poc(当前)\poc(ref0)),τ1表示当前图片的输出顺序与参考图片1的输出顺序之间的差值(即,τ1=poc(ref1)\poc(当前))。
[0197]
双向光流可以被应用于被应用了双向预测的块。然而,当参考图片0和参考图片1具有相同的时间方向时(例如,当参考图片0和参考图片1中的每一个都是过去图片,或者参考图片0和参考图片1中的每一个都是未来图片时),当参考图片0和参考图片1不相等(即τ0≠τ1)时,当参考图片0和参考图片1的运动向量不为0(即(mvx0,mvy0,mvx1,mvy1≠0)时,当运动向量与当前图片与参考图片之间的距离成比例(mvx0/mvx1=mvy0/mvy1=-τ0/τ1)时,或当满足上述列举的情况中至少之一时,可以将双向光流应用于当前块。即,当参考图片0和参考图片1的poc大于当前图片时,或当参考图片0和参考图片1的poc小于当前图片时,或者当满足以上列出的条件中至少之一时,可以应用双向光流。
[0198]
替选地,指示双向光流是否被应用的信息可以被编码并且被发送到解码器。
[0199]
在对当前块执行运动补偿之后,可以使用邻近运动信息来更新预测样本或者可以再次执行运动补偿(s830)。在下文中,将描述第二次应用于运动补偿被对其执行的块的运动补偿方法。
[0200]
可以使用邻近块的运动向量再次对运动补偿被对其执行的块执行运动补偿。对运动补偿被对其执行的块执行运动补偿可以被定义为重叠块运动补偿(overlapped block motion compensation,obmc)。运动补偿被对其执行的块可以是编码块。替选地,当基于子块执行运动补偿时,可以将每个子块确定为运动补偿被对其执行的块。例如,当使用子合并模式、仿射模式或fruc(frame-rate up conversion,帧速率上转换)基于子块对编码块进行编码时,每个子块可以被视为运动补偿被对其执行的块。
[0201]
可以通过比特流用信号发送关于是否执行重叠块运动补偿的信息。例如,可以基于编码块来用信号发送指示是否执行重叠块运动补偿的标志。
[0202]
替选地,可以根据应用于编码块的运动补偿技术来确定是否执行重叠块运动补偿。在本文中,运动补偿技术可以包括跳过模式、合并模式、amvp模式、仿射模式、fruc模式等。
[0203]
可以基于子块来执行重叠块运动补偿。可以在编码器和解码器中预定义应用重叠块运动补偿的子块的形状或尺寸,或者可以在编码器和解码器中通过相同的规则导出子块的形状或尺寸。替选地,可以通过比特流用信号发送指示应用重叠块运动补偿的子块的形状或尺寸的信息。例如,其中执行重叠块运动补偿的子块可以是4
×
4正方形块、表示预定行或预定列的线等。为了便于描述,将应用重叠块运动补偿的子块称为“当前子块”。
[0204]
可以使用当前子块的运动向量和与当前子块邻近的邻近子块的运动向量来执行
重叠块运动补偿。
[0205]
图14是示出其中通过使用邻近块的运动向量来执行重叠块运动补偿的示例的图。
[0206]
重叠块运动补偿可以应用于当前块的边界。详细地,如图14的(a)的示例所示,可以将重叠块运动补偿应用于与当前块的左边界或顶边界邻接的子块。可以使用具有与当前子块的运动向量不同的运动向量的邻近子块来执行重叠块运动补偿。例如,如图14的(a)所示的示例,与当前块的边界邻接的子块可以使用邻接左侧的可用子块或邻接顶侧的可用子块中的至少之一来执行重叠块运动补偿。在图14的(a)中,示出了与当前块的顶部边界邻接的子块使用顶部邻近块执行重叠块运动补偿,并且示出了与当前块的左边界邻接的子块使用左侧邻近块执行重叠块运动补偿。另外,在图14的(a)中,与当前块的左上角邻接的子块被示出使用左邻近块和顶部邻近块来执行重叠块运动补偿。
[0207]
替选地,可以将重叠块运动补偿应用于当前块中的所有子块。详细地,如图14的(b)所示的示例,可以对当前块中的所有子块执行重叠块运动补偿。可以使用具有与当前子块的运动向量不同的运动向量的邻近子块来执行重叠块运动补偿。例如,如图14的(b)所示的示例,当前块中的子块可以使用邻接左侧的可用子块、邻接右侧的可用子块、邻接顶部的可用子块、或邻接底部的可用子块中的至少一个可用子块来执行重叠块运动补偿。
[0208]
当应用重叠块运动补偿时,可以基于当前子块和邻近子块的加权和来导出当前子块的最终预测块。例如,当基于当前子块的运动向量导出的预测块被定义为pc,并且基于邻近子块的运动向量导出的预测块被定义为pn(n表示邻近块的位置,例如上、底、左、右),可以基于pc和pn的加权和来导出当前子块的最终预测块。
[0209]
应用于pc和pn的权重可以具有相同的值。替选地,应用于pc的权重可能大于应用于pn的权重。例如,应用于pc和pn的权重为{3/4,1/4}、{7/8,1/8}、{15/16,1/16}、{31/32,1/32}等。
[0210]
可以通过比特流用信号发送用于确定应用于每个预测块的权重的信息。例如,该信息可以是指示多个权重候选中的任一个的索引信息。替选地,可以根据执行当前子块的运动补偿的方法或可用邻近块的数量来适应性地确定应用于每个预测块的权重。
[0211]
基于样本应用双向光流,使得每个样本的运动向量被存储在存储器中。然而,当每个样本的运动向量连续存储在内存中时,内存缓存区的使用可能会增加。
[0212]
例如,当双向光流和重叠块运动补偿被应用于运动补偿被对其执行的块时,可以在将双向光流应用于运动补偿被对其执行的块之后应用重叠块运动补偿。然而,为了甚至在重叠块运动补偿期间也应用双向光流,必须连续地存储每个样本的运动向量,从而引起存储缓存区的使用变大的问题。
[0213]
为了解决上述问题,可以考虑向应用重叠块运动补偿的块再次应用双向光流的方法。例如,如图15所示的示例,在执行重叠块运动补偿之后,可以考虑再次执行双向光流的方法。在这种情况下,由于不必连续存储通过第一双向光流获得的每个样本的运动向量直到执行重叠块运动补偿被执行,所以可以减少存储缓存区的使用。
[0214]
替选地,在应用双向光流的同时可以限制双向光流。
[0215]
根据本发明的实施方式,为了减少存储缓存区的使用,可以基于预定的子块来应用双向光流。当基于子块应用双向光流时,可以基于属于该子块的所有样本的运动改进向量(或梯度值)来获得子块的运动改进向量。详细地,可以基于属于该子块的所有样本的运
动改进向量(或梯度值)的平均值、众数或最大值来导出子块的运动改进向量。等式3表示通过使用属于n
×
m尺寸的子块的样本的运动改进向量的平均值来获得预测样本的方法。在本文中,n或m可以是大于或等于1的整数。n和m可以是相同值或不同值。
[0216]
[等式3]
[0217][0218]
替选地,可以基于子块中的预定样本(多个)的运动改进向量(或梯度值)来获得子块的运动改进向量。详细地,可以基于子块中的预定样本的运动改进向量的平均值、最小值或最大值来获得子块的运动改进向量。在本文中,用于导出运动改进向量的预定样本可以指示子块中的预定列或预定行,或者可以指示子块中的预定范围。替选地,可以使用与子块中的边界邻接的样本或与角邻接的样本来导出运动改进向量。
[0219]
图16是示出用于导出运动改进向量的预定位置的样本的图。
[0220]
如在图16所示的示例中,可以使用块中的邻接左上角的样本tl、块中的邻接左下角的样本bl、块中的邻接右上角的样本tr、块中的邻接右下角的样本br或位于块中心的样本center中的至少一个样本来导出运动改进向量。
[0221]
例如,通过使用图16所示的预定位置的样本中的任一个而获得的光流运动向量可以被设置为n
×
m尺寸的子块的光流运动向量。
[0222]
替选地,通过使用图16所示的预定位置的样本之中的至少两个或更多个样本的梯度平均值而获得的光流运动向量可以被设置为n
×
m尺寸的块的光流运动向量。例如,可以通过使用图16所示的预定样本中除中心样本之外的四个角样本的运动改进向量的平均值来导出n
×
m尺寸的块的光流运动向量。
[0223]
用于导出运动改进向量的预定样本的数目可以是一个、两个或更多个。用于导出运动改进向量的预定样本的数目或位置可以在编码器和解码器中预先确定,或者可以由当前块(或子块)的尺寸、形状或运动向量可变地确定。
[0224]
根据编码块的尺寸、图像的分辨率、或者是否执行重叠块运动补偿,可以可变地确定应用双向光流的块单位。例如,如果编码块尺寸是64x64或更大,则可以以8x8块为单位应用双向光流,而如果编码块小于64x64,则可以以4x4块为单位应用双向光流。
[0225]
替选地,当图像的分辨率为720p或更小时,或者当obmc应用于运动补偿被对其执行的块时,可以以2x2块为单位应用双向光流。另一方面,当图像的分辨率大于720p时,或者当obmc不应用于运动补偿在其中被执行的块时,可以以4
×
4块为单位应用双向光流。
[0226]
应用双向光流的块的单位不必一定是正方形的。例如,当编码块是非正方形时,块的单位也可以被设置为非正方形。例如,在2
×
16或16
×
2类型的编码块中,可以以2
×
8或8
×
2块为单位应用双向光流。替选地,可以将至少一条样本线(例如,样本行或样本列)设置为块的单位。
[0227]
当以块为单位应用双向光流时,如图17所示,在执行重叠块运动补偿之后,不需要再次执行双向光流。
[0228]
尽管已经基于一系列步骤或流程图描述了上述实施方式,但是它们不限制本发明的时序顺序,并且可以根据需要同时或以不同顺序执行。此外,构成上述实施方式中的框图
的部件(例如,单元、模块等)中的每一个可以由硬件装置或软件以及多个部件来实现。或者,多个部件可以组合并且由单个硬件装置或软件来实现。上述实施方式可以以如下程序指令的形式实现:该程序指令可以通过各种计算机部件执行并且被记录在计算机可读记录介质中。计算机可读记录介质可以包括程序命令、数据文件、数据结构等中之一或其组合。计算机可读介质的示例包括:磁介质,例如硬盘、软盘和磁带;光学记录介质,例如cd-rom和dvd;磁光介质,例如光磁软盘;介质;以及专门配置成存储和执行程序指令的硬件装置,例如rom、ram、闪速存储器,等等。硬件装置可以被配置成操作为用于执行根据本发明的处理的一个或更多个软件模块,并且软件模块可以被配置成操作为用于执行根据本发明的处理的一个或更多个硬件装置。
[0229]
关于包括以上实施例的实施方式,还公开下述的技术方案:
[0230]
方案1.一种用于对视频进行解码的方法,所述方法包括:
[0231]
获得当前块的运动向量;
[0232]
在双向光流被应用于所述当前块的情况下,更新所述运动向量;以及
[0233]
通过使用所更新的运动向量对所述当前块执行运动补偿,
[0234]
其中,基于所述当前块中具有预定尺寸的子块来应用所述双向光流。
[0235]
方案2.根据方案1所述的用于对视频进行解码的方法,
[0236]
其中,更新所述运动向量包括:
[0237]
获得所述当前块中的子块的运动改进向量;以及
[0238]
通过使用所述运动改进向量来更新所述运动向量。
[0239]
方案3.根据方案2所述的用于对视频进行解码的方法,
[0240]
其中,基于包括在所述子块中的样本的运动改进向量的平均值来获得所述运动改进向量。
[0241]
方案4.根据方案2所述的用于对视频进行解码的方法,
[0242]
其中,基于所述子块中的预定位置的样本来获得所述运动改进向量。
[0243]
方案5.根据方案4所述的用于对视频进行解码的方法,
[0244]
其中,所述预定位置的所述样本包括位于所述子块的角处的样本或位于所述子块的中心处的样本中至少之一。
[0245]
方案6.根据方案2所述的用于对视频进行解码的方法,
[0246]
其中,基于所述当前块的尺寸或形状中至少之一来确定所述子块的尺寸或形状。
[0247]
方案7.根据方案2所述的用于对视频进行解码的方法,
[0248]
其中,基于图像的分辨率或者是否要对被执行所述运动补偿的所述当前块执行重叠块运动补偿来确定所述子块的尺寸或形状。
[0249]
方案8.根据方案1所述的用于对视频进行解码的方法,包括:
[0250]
在被执行所述运动补偿的所述当前块上应用重叠块运动补偿,
[0251]
其中,基于所述当前块中的预定尺寸的子块来应用所述重叠块运动补偿。
[0252]
方案9.一种用于对视频进行编码的方法,所述方法包括:
[0253]
获得当前块的运动向量;
[0254]
在双向光流被应用于所述当前块的情况下,更新所述运动向量;以及
[0255]
通过使用所更新的运动向量对所述当前块执行运动补偿,
[0256]
其中,基于所述当前块中具有预定尺寸的子块来应用所述双向光流。
[0257]
方案10.根据方案9所述的用于对视频进行编码的方法,
[0258]
其中,更新所述运动向量包括:
[0259]
获得所述当前块中的子块的运动改进向量;以及
[0260]
通过使用所述运动改进向量来更新所述运动向量。
[0261]
方案11.根据方案10所述的用于对视频进行编码的方法,
[0262]
其中,基于包括在所述子块中的样本的运动改进向量的平均值来获得所述运动改进向量。
[0263]
方案12.根据方案10所述的用于对视频进行编码的方法,
[0264]
其中,基于所述子块中的预定位置的样本来获得所述运动改进向量。
[0265]
方案13.根据方案12所述的用于对视频进行编码的方法,
[0266]
其中,所述预定位置的所述样本包括位于所述子块的角处的样本或位于所述子块的中心处的样本中至少之一。
[0267]
方案14.一种用于对视频进行解码的装置,所述装置包括:
[0268]
帧间预测模块,其用于获得当前块的运动向量,
[0269]
用于在双向光流被应用于所述当前块的情况下,更新所述运动向量,以及
[0270]
用于通过使用所更新的运动向量对所述当前块执行运动补偿,其中,基于所述当前块中具有预定尺寸的子块来应用所述双向光流。
[0271]
方案15.一种用于对视频进行编码的装置,所述装置包括:
[0272]
帧间预测模块,其用于获得当前块的运动向量,
[0273]
用于在双向光流被应用于所述当前块的情况下,更新所述运动向量,以及
[0274]
用于通过使用所更新的运动向量来对所述当前块执行运动补偿,
[0275]
其中,基于所述当前块中具有预定尺寸的子块来应用所述双向光流。
[0276]
工业应用性
[0277]
本发明可以应用于能够对图像进行编码/解码的电子装置。
技术特征:
1.一种对图像进行解码的方法,包括:基于从比特流解码的信息,确定是否将编码块划分成两个分区;当确定划分所述编码块时,将所述编码块在垂直方向或水平方向上划分成所述两个分区;以及通过执行逆变换获得当前块的残差样本,所述当前块是所述两个分区之一,其中,是否允许在所述垂直方向或所述水平方向上划分所述编码块通过将所述编码块的大小与阈值进行比较来确定,其中,所述编码块被划分成相互具有相同大小的所述两个分区,并且其中,当所述编码块被划分成所述两个分区时,跳过对所述当前块的逆变换不被允许。2.根据权利要求1所述的方法,其中,当所述编码块被划分成所述两个分区时,对针对所述当前块的变换跳过标志的解码被省略,所述变换跳过标志指示所述逆变换是否被跳过。3.根据权利要求2所述的方法,其中,对于垂直方向和水平方向,均跳过对所述当前块的逆变换。4.一种对图像进行解码的方法,包括:将编码块在垂直方向或水平方向上划分成两个分区;对当前块的残差样本执行变换,所述当前块是所述两个分区之一;以及对指示所述编码块是否被划分成所述两个分区的信息进行编码,其中,是否允许在所述垂直方向或所述水平方向上划分所述编码块通过将所述编码块的大小与阈值进行比较来确定,其中,所述编码块被划分成相互具有相同大小的所述两个分区,并且其中,当所述编码块被划分成所述两个分区时,跳过对所述当前块的变换不被允许。5.一种用于存储压缩视频数据的装置,所述压缩视频数据由编码方法生成,其中,所述编码方法包括:将编码块在垂直方向或水平方向上划分成两个分区;对当前块的残差样本执行变换,所述当前块是所述两个分区之一;以及对指示所述编码块是否被划分成所述两个分区的信息进行编码,其中,是否允许在所述垂直方向或所述水平方向上划分所述编码块通过将所述编码块的大小与阈值进行比较来确定,其中,所述编码块被划分成相互具有相同大小的所述两个分区,并且其中,当所述编码块被划分成所述两个分区时,跳过对所述当前块的变换不被允许。
技术总结
本申请公开了用于对图像进行解码的方法以及用于存储压缩视频数据的装置。根据本发明的用于图像解码的方法可以包括如下步骤:获取当前块的运动向量;如果双向光流被应用于当前块则更新运动向量;以及通过使用经更新的运动向量对当前块执行运动补偿。向量对当前块执行运动补偿。向量对当前块执行运动补偿。
技术研发人员:李培根
受保护的技术使用者:株式会社KT
技术研发日:2018.05.16
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/