对视频进行编码和解码的方法、视频数据的发送方法与流程

对视频进行编码和解码的方法、视频数据的发送方法
1.本发明申请为申请日为2017年9月29日、国际申请号为pct/kr2017/011055、并于2019年4月2日进入中国国家阶段的发明名称为“用于处理视频信号的方法和设备”的第201780061233.4号发明专利申请的分案申请。
技术领域
2.本发明涉及用于处理视频信号的方法和设备。
背景技术:
3.近来,在各种应用领域中对高分辨率和高质量图像例如高清晰度(hd)图像和超高清晰度(uhd)图像的需求已经增加了。然而,与常规图像数据相比,更高分辨率和质量的图像数据的数据量增加。因此,在通过使用介质例如常规的有线和无线宽带网络传输图像数据时,或者在通过使用常规的存储介质存储图像数据时,传输和存储的成本增加了。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,可以利用高效的图像编码/解码技术。
4.图像压缩技术包括各种技术,包括:根据当前图片的先前图片或后续图片来对包括在当前图片中的像素值进行预测的帧间预测技术;通过使用当前图片中的像素信息对包括在当前图片中的像素值进行预测的帧内预测技术;将短代码分配给出现频率高的值并且将长代码分配给出现频率低的值的熵编码技术等。可以通过使用这样的图像压缩技术来有效地压缩图像数据,并且可以传输或存储图像数据。
5.同时,随着对高分辨率图像的需求的增加,对作为新的图像服务的立体图像内容的需求也在增加。正在讨论用于有效地提供具有高分辨率和超高分辨率的立体图像内容的视频压缩技术。
技术实现要素:
6.技术问题
7.本发明的目的是提供一种用于在编码/解码视频信号时对编码/解码目标块有效地执行帧内预测的方法和设备。
8.本发明的目的是提供一种用于在编码/解码视频信号时使用多个参考样本通过加权预测来执行帧内预测的方法和设备。
9.本发明的目的是提供一种用于在编码/解码视频信号时使用偏移来对通过帧内预测生成的预测样本进行改进(refine)的方法和设备。
10.本发明的目的是提供一种用于在编码/解码视频信号时使用偏移,并进一步在预定单元中使用不同偏移,来对通过帧内预测生成的预测样本进行改进的方法和设备。
11.本发明要实现的技术目的不限于上述技术问题。并且,本领域技术人员根据以下描述将明显地理解未提及的其他技术问题。
12.技术方案
13.根据本发明的用于解码视频信号的方法和设备可以:确定当前块的帧内预测模式,根据当前块的相邻样本得到参考样本,基于帧内预测模式和参考样本来获得当前块的第一预测样本,确定第一预测样本的偏移,以及通过将偏移应用于第一预测样本来获得第二预测样本。
14.根据本发明的用于编码视频信号的方法和设备可以:确定当前块的帧内预测模式,根据当前块的相邻样本得到参考样本,基于帧内预测模式和参考样本来获得当前块的第一预测样本,确定第一预测样本的偏移,以及通过将偏移应用于第一预测样本来获得第二预测样本。
15.在根据本发明的用于编码/解码视频信号的方法和设备中,可以基于当前块的帧内预测模式来确定是否将偏移应用于第一预测样本。
16.在根据本发明的用于编码/解码视频信号的方法和设备中,可以基于参考样本的加权和来确定偏移。
17.在根据本发明的用于编码/解码视频信号的方法和设备中,基于距第一预测样本的距离来确定应用于参考样本中的每一个的权重。
18.在根据本发明的用于编码/解码视频信号的方法和设备中,参考样本包括:固定位置处的参考样本和依赖于第一预测样本的位置而确定的参考样本。
19.在根据本发明的用于编码/解码视频信号的方法和设备中,固定位置处的参考样本可以包括与当前块的左上角相邻的参考样本,并且依赖于第一预测样本的位置而确定的参考样本可以包括以下参考样本中的至少一个:与第一预测样本在同一水平线上的参考样本,或与第一预测样本在相同一垂直线上的参考样本。
20.在根据本发明的用于编码/解码视频信号的方法和设备中,参考样本中的每一个可以包括在不同的参考线中。
21.根据本技术的一个方面,提供了一种用于对视频进行解码的方法,包括:基于候选列表确定当前块的帧内预测模式,所述候选列表包括多个候选,所述多个候选是基于与所述当前块相邻的相邻块的帧内预测模式确定的;从与所述当前块相邻的相邻样本中得到用于所述当前块的帧内预测的参考样本;基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;确定用于修改所述第一预测样本的偏移;以及通过基于所述偏移修改所述第一预测样本来获得第二预测样本,其中,所述偏移是基于所述参考样本中的至少一个参考样本得到的,其中,当所述当前块的所述帧内预测模式是方向性模式时用于得到所述偏移的参考样本的数量与当所述当前块的所述帧内预测模式是非方向性模式时用于得到所述偏移的参考样本的数量是不同的,以及其中,所述非方向性模式包括dc模式。
22.根据本技术的另一个方面,提供了一种用于对视频进行编码的方法,包括:基于候选列表确定当前块的帧内预测模式,所述候选列表包括多个候选,所述多个候选是基于与所述当前块相邻的相邻块的帧内预测模式确定的;从与所述当前块相邻的相邻样本中得到用于所述当前块的帧内预测的参考样本;基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;确定用于修改所述第一预测样本的偏移;以及通过基于所述偏移修改所述第一预测样本来获得第二预测样本,其中,所述偏移是基于所述参考样本中的至少一个参考样本得到的,以及其中,当所述当前块的所述帧内预测模式是方向性模式时用于得到所述偏移的参考样本的数量与当所述当前块的所述帧内预测模式是非方向性模
式时用于得到所述偏移的参考样本的数量是不同的,以及其中,所述非方向性模式包括dc模式。
23.根据本技术的另一个方面,提供了一种视频数据的发送方法,包括:基于候选列表确定当前块的帧内预测模式,所述候选列表包括多个候选,所述多个候选是基于与所述当前块相邻的相邻块的帧内预测模式确定的;从与所述当前块相邻的相邻样本中得到用于所述当前块的帧内预测的参考样本;基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;确定用于修改所述第一预测样本的偏移;通过基于所述偏移修改所述第一预测样本来获得第二预测样本;基于所述第二预测样本对所述当前块进行编码以生成比特流;以及传输包括所述比特流的所述视频数据,其中,所述偏移是基于所述参考样本中的至少一个参考样本得到的,以及其中,当所述当前块的所述帧内预测模式是方向性模式时用于得到所述偏移的参考样本的数量与当所述当前块的所述帧内预测模式是非方向性模式时用于得到所述偏移的参考样本的数量是不同的,以及其中,所述非方向性模式包括dc模式。
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是简要示出根据本发明的实施方式的帧内预测方法的流程图。
40.图11是示出根据本发明的实施方式的基于相邻样本的差分信息来校正当前块的
预测样本的方法的图。
41.图12和图13是示出根据本发明的实施方式的基于预定校正滤波器来校正预测样本的方法的图。
42.图14示出了根据应用了本发明的实施方式的用于帧内预测的参考样本的范围。
43.图15是例示多条参考样本线的图。
44.图16是示出根据本发明的实施方式的用于改进预测样本的方法的流程图。
45.图17是示出根据本发明的实施方式的用于以子块为单位来改进预测图像的方法的流程图。
46.图18至图22是示出根据应用了本发明的实施方式的当前块的帧内预测方式的图。
47.图23和图24是示出在子块中的预定单元中应用不同偏移的示例的图。
48.图25是示出根据应用了本发明的实施方式的获得残差样本的过程的流程图。
具体实施方式
49.可以对本发明进行各种修改,并且存在本发明的各种实施方式,现在将参照附图提供各种实施方式的示例,并且详细描述各种实施方式的示例。然而,本发明不限于此,并且示例性实施方式可以被解释为包括本发明的技术构思和技术范围内的所有修改、等同物或替代方案。在所描述的附图中,相似的附图标记指代相似的元件。
50.说明书中使用的术语“第一”、“第二”等可以用于描述各种部件,但是这些部件不被解释为限制于这些术语。这些术语仅用于区分一个部件与其他部件。例如,在不偏离本发明的范围的情况下,“第一”部件可以被称作“第二”部件,并且“第二”部件也可以类似地被称作“第一”部件。术语“和/或”包括多个项的组合或者多个术语中的任何一个术语。
51.应该理解的是,在本说明书中,在元件被简单地称作“连接至”或“耦接至”另一元件而不是“直接连接至”或“直接耦接至”另一元件时,该元件可以“直接连接至”或“直接耦接至”另一元件,或者该元件可以连接至或耦接至另一元件并且有其他元件介于在它们之间。相反地,应该理解的是,在元件被称作“直接耦接”或“直接连接”至另一元件时,不存在中间元件。
52.本说明书中使用的术语仅用于描述特定实施方式,而并不意在限制本发明。以单数形式使用的表述包含复数形式的表述,除非其在上下文中具有明显不同的含义。在本说明书中,应当理解的是,诸如“包括”、“具有”等的术语意在指示本说明书中公开的特征、数字、步骤、动作、元件、部分或其组合的存在,并且不意在排除可以存在或可以添加一个或更多个其他特征、数字、步骤、动作、元件、部分或其组合的可能性。
53.在下文中,将参照附图详细描述本发明的优选实施方式。在下文中,附图中的相同构成元件由相同的附图标记表示,并且将省略对相同元件的重复描述。
54.图1是示出根据本发明的实施方式的用于对视频进行编码的设备的框图。
55.参照图1,用于对视频进行编码的设备100可以包括:图片划分模块110、预测模块120和125、变换模块130、量化模块135、重排模块160、熵编码模块165、逆量化模块140、逆变换模块145、滤波器模块150以及存储器155。
56.图1中所示的构成部分被独立地示出,以表示在用于对视频进行编码的设备中的彼此不同的特征功能。因此,这并不意味着每个构成部分都是由单独的硬件或软件的构成
单元构成。换言之,为了方便起见,每个构成部分包括所列举的构成部分中的每一个。因此,可以将每个构成部分的至少两个构成部分进行组合以形成一个构成部分,或者可以将一个构成部分划分成多个构成部分以执行每个功能。在不偏离本发明的实质的情况下,组合每个构成部分的实施方式和划分一个构成部分的实施方式也被包括在本发明的范围内。
57.此外,构成部分中的一些可能不是执行本发明的基本功能的必不可少的构成部分,而是仅用于改善本发明的性能的可选构成部分。可以通过排除用于改善性能的构成部分而仅包括用于实现本发明的实质的必不可少的构成部分来实现本发明。排除仅用于改善性能的可选构成部分而仅包括必不可少的构成部分的结构也被包括在本发明的范围内。
58.图片划分模块110可以将输入图片划分成一个或更多个处理单元。此处,处理单元可以是预测单元(pu)、变换单元(tu)或编码单元(cu)。图片划分模块110可以将一个图片划分成多个编码单元、预测单元和变换单元的组合,并且可以通过使用预定准则(例如,成本函数)选择编码单元、预测单元和变换单元的一个组合来对图片进行编码。
59.例如,一个图片可以被划分成多个编码单元。可以使用递归树结构例如四叉树结构来将图片划分成编码单元。在一个图片或最大编码单元作为根的情况下被划分成其他编码单元的编码单元可以以子节点对应于所划分的编码单元的数目的方式进行划分。通过预定限制不能再划分的编码单元用作叶节点。即,当假设对于一个编码单元仅正方形划分可行时,一个编码单元可以最多被划分成四个其他编码单元。
60.在下文中,在本发明的实施方式中,编码单元可以意指执行编码的单元或者执行解码的单元。
61.预测单元可以是被划分成在单个编码单元中具有相同大小的正方形形状或矩形形状的划分中的之一,或者预测单元可以是被划分成使得在单个编码单元中具有不同的形状/大小的划分中的之一。
62.当基于编码单元生成要进行帧内预测的预测单元并且编码单元不是最小编码单元时,可以在不将编码单元划分成多个预测单元n
×
n的情况下执行帧内预测。
63.预测模块120和125可以包括执行帧间预测的帧间预测模块120和执行帧内预测的帧内预测模块125。可以确定对于预测单元是执行帧间预测还是帧内预测,并且可以确定根据每个预测方法的详细信息(例如,帧内预测模式、运动矢量、参考图片等)。此处,要进行预测的处理单元可以不同于针对其确定预测方法和详细内容的处理单元。例如,可以由预测单元确定预测方法、预测模式等,并且可以由变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以被输入至变换模块130。此外,用于预测的预测模式信息、运动矢量信息等可以与残差值一起由熵编码模块165进行编码,并且可以被传输至用于对视频进行解码的设备。在使用特定编码模式时,可以通过对原始块按其原样进行编码而不通过预测模块120和125生成预测块来向用于对视频进行解码的设备进行传输。
64.帧间预测模块120可以基于当前图片的先前图片或后续图片中的至少一个的信息来预测预测单元,或者在一些情况下,可以基于当前图片中的一些编码区域的信息来预测预测单元。帧间预测模块120可以包括参考图片插值模块、运动预测模块以及运动补偿模块。
65.参考图片插值模块可以从存储器155接收参考图片信息,并且可以根据参考图片来生成整像素或小于整像素的像素信息。在亮度像素的情况下,可以使用具有不同滤波器
系数的基于dct的8抽头插值滤波器来以1/4像素为单位生成整像素或小于整像素的像素信息。在色度信号的情况下,可以使用具有不同滤波器系数的基于dct的4抽头插值滤波器来以1/8像素为单位生成整像素或小于整像素的像素信息。
66.运动预测模块可以基于由参考图片插值模块进行插值的参考图片来执行运动预测。作为用于计算运动矢量的方法,可以使用各种方法,例如,基于全搜索的块匹配算法(fbma)、三步搜索(tss)和新三步搜索算法(nts)等。基于插值像素,运动矢量可以具有以1/2像素或1/4像素为单位的运动矢量值。运动预测模块可以通过改变运动预测方法来预测当前预测单元。作为运动预测方法,可以使用各种方法,例如,跳过方法、合并方法、amvp(高级运动矢量预测)方法、帧内块复制方法等。
67.帧内预测模块125可以基于与作为当前图片中的像素信息的当前块相邻的参考像素信息来生成预测单元。在当前预测单元的相邻块是要进行帧间预测的块并且因此参考像素是要进行帧间预测的像素时,可以使用要进行帧内预测的相邻块的参考像素信息来替换包括在要进行帧间预测的块中的参考像素。即,在参考像素不可用时,可以使用可用参考像素中的至少一个参考像素来替换不可用的参考像素信息。
68.帧内预测中的预测模式可以包括依赖于预测方向使用参考像素信息的方向性预测模式和在执行预测时不使用方向信息的非方向性预测模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且为了预测色度信息,可以利用用于预测亮度信息的帧内预测模式信息或者预测的亮度信号信息。
69.在执行帧内预测时,在预测单元的大小与变换单元的大小相同时,可以基于位于该预测单元的左侧、左上侧和上侧的像素对预测单元执行帧内预测。然而,在执行帧内预测时,在预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n划分的帧内预测可以仅用于最小编码单元。
70.在帧内预测方法中,可以在依赖于预测模式将ais(自适应帧内平滑)滤波器应用于参考像素之后生成预测块。应用于参考像素的ais滤波器的类型可以变化。为了执行帧内预测方法,可以根据与当前预测单元相邻的预测单元的帧内预测模式来预测当前预测单元的帧内预测模式。在通过使用根据相邻预测单元预测到的模式信息来预测当前预测单元的预测模式中,在当前预测单元的帧内预测模式与相邻预测单元的帧内预测模式相同时,可以使用预定标志信息来传输指示当前预测单元的预测模式与相邻预测单元的预测模式彼此相同的信息。在当前预测单元的预测模式与相邻预测单元的预测模式不同时,可以执行熵编码以对当前块的预测模式信息进行编码。
71.此外,可以基于由预测模块120和125生成的预测单元来生成包括关于残差值的信息的残差块,残差值是要进行预测的预测单元与预测单元的原始块之间的差。可以将所生成的残差块输入至变换模块130。
72.变换模块130可以通过使用诸如离散余弦变换(dct)、离散正弦变换(dst)和klt的变换方法来对残差块进行变换,该残差块包括关于原始块与由预测模块120和125生成的预测单元之间的残差值的信息。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是应用dct、dst还是klt以对残差块进行变换。
73.量化模块135可以对由变换模块130变换至频域的值进行量化。量化系数可以依赖于图片的块或重要性而变化。可以将由量化模块135计算的值提供至逆量化模块140和重排
模块160。
74.重排模块160可以对量化后的残差值的系数进行重排。
75.重排模块160可以通过系数扫描方法将二维块形式的系数改变成一维矢量形式的系数。例如,重排模块160可以使用锯齿形扫描方法从dc系数扫描至高频域的系数,以将系数改变成一维矢量形式。依赖于变换单元的大小和帧内预测模式,可以使用沿列方向扫描二维块形式的系数的垂直方向扫描或沿行方向扫描二维块形式的系数的水平方向扫描来代替锯齿形扫描。即,可以依赖于变换单元的大小和帧内预测模式来确定使用锯齿形扫描、垂直方向扫描和水平方向扫描中的哪种扫描方法。
76.熵编码模块165可以基于由重排模块160计算的值来执行熵编码。熵编码可以使用各种编码方法,例如指数哥伦布(golomb)编码、上下文自适应变长编码(cavlc)和上下文自适应二进制算术编码(cabac)。
77.熵编码模块165可以对来自重排模块160以及预测模块120和125的各种信息进行编码,各种信息例如编码单元的残差值系数信息和块类型信息、预测模式信息、划分单元信息、预测单元信息、变换单元信息、运动矢量信息、参考帧信息、块插值信息、滤波信息等。
78.熵编码模块165可以对从重排模块160输入的编码单元的系数进行熵编码。
79.逆量化模块140可以对由量化模块135量化的值进行逆量化,并且逆变换模块145可以对由变换模块130变换的值进行逆变换。可以将由逆量化模块140和逆变换模块145生成的残差值与由预测模块120和125的运动估计模块、运动补偿模块和帧内预测模块预测的预测单元进行组合,使得可以生成重构块。
80.滤波器模块150可以包括去块滤波器、偏移校正单元以及自适应环路滤波器(alf)中的至少一个。
81.去块滤波器可以移除由于重构图片中的块之间的边界而出现的块失真。为了确定是否执行去块,包括在块的若干行或若干列中的像素可以是确定是否对当前块应用去块滤波器的基础。当去块滤波器被应用于块时,可以依赖于所需的去块滤波强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,可以并行地处理水平方向滤波和垂直方向滤波。
82.偏移校正模块可以在要进行去块的图片中以像素为单位来校正与原始图片的偏移。为了对特定图片执行偏移校正,可以使用考虑每个像素的边缘信息来施加偏移的方法,或者可以使用下述方法:将图片的像素划分成预定数量的区域,确定要执行偏移的区域,并且对所确定的区域施加偏移。
83.可以基于通过将滤波后的重构图片与原始图片进行比较而获得的值来执行自适应环路滤波(alf)。可以将包括在图片中的像素分成预定组,可以确定要应用于每个组的滤波器,并且可以针对每个组单独执行滤波。可以通过编码单元(cu)传输关于是否应用alf和亮度信号的信息。用于alf的滤波器的形状和滤波器系数可以依赖于每个块而变化。此外,无论应用目标块的特征如何,都可以应用用于alf的相同形状(固定形状)的滤波器。
84.存储器155可以存储通过滤波器模块150计算的重构块或重构图片。可以在执行帧间预测时将所存储的重构块或重构图片提供至预测模块120和125。
85.图2是示出根据本发明的实施方式的用于对视频进行解码的设备的框图。
86.参照图2,用于对视频进行解码的设备200可以包括:熵解码模块210、重排模块
215、逆量化模块220、逆变换模块225、预测模块230和235、滤波器模块240以及存储器245。
87.当从用于对视频进行编码的设备输入视频比特流时,可以根据用于对视频进行编码的设备的逆处理来对输入比特流进行解码。
88.熵解码模块210可以根据由用于对视频进行编码的设备的熵编码模块进行的熵编码的逆处理来执行熵解码。例如,对应于由用于对视频进行编码的设备执行的方法,可以应用各种方法,例如指数哥伦布编码、上下文自适应变长编码(cavlc)和上下文自适应二进制算术编码(cabac)。
89.熵解码模块210可以对关于由用于对视频进行编码的设备执行的帧内预测和帧间预测的信息进行解码。
90.重排模块215可以基于在用于对视频进行编码的设备中使用的重排方法对由熵解码模块210进行熵解码的比特流执行重排。重排模块可以将一维矢量形式的系数重构和重排成二维块形式的系数。重排模块215可以接收与在用于对视频进行编码的设备中执行的系数扫描有关的信息,并且可以经由基于在用于对视频进行编码的设备中执行的扫描顺序对系数进行逆扫描的方法来执行重排。
91.逆量化模块220可以基于从用于对视频进行编码的设备接收的量化参数和重排后的块的系数来执行逆量化。
92.逆变换模块225可以执行逆变换,即,逆dct、逆dst和逆klt,这是由变换模块对用于对视频进行编码的设备的量化结果执行的变换即dct、dst和klt的逆过程。可以基于用于对视频进行编码的设备所确定的变换单元来执行逆变换。用于对视频进行解码的设备的逆变换模块225可以依赖于多条信息例如预测方法、当前块的大小、预测方向等来选择性地执行变换方案例如dct、dst、klt。
93.预测模块230和235可以基于从熵解码模块210接收到的关于预测块生成的信息和从存储器245接收到的先前解码的块或图片信息来生成预测块。
94.如上所述,类似于用于对视频进行编码的设备的操作,在执行帧内预测时,在预测单元的大小与变换单元的大小相同时,可以基于位于预测单元的左侧、左上侧和上侧的像素对预测单元执行帧内预测。在执行帧内预测时,在预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n划分的帧内预测可以仅用于最小编码单元。
95.预测模块230和235可以包括预测单元确定模块、帧间预测模块以及帧内预测模块。预测单元确定模块可以从熵解码模块210接收各种信息,例如预测单元信息、帧内预测方法的预测模式信息、关于帧间预测方法的运动预测的信息等,可以将当前编码单元分成预测单元,并且可以确定对预测单元执行帧间预测还是帧内预测。通过使用从用于对视频进行编码的设备接收的当前预测单元的帧间预测所需的信息,帧间预测模块230可以基于包括当前预测单元的当前图片的先前图片或后续图片中的至少一个的信息来对当前预测单元执行帧间预测。替选地,可以基于包括当前预测单元的当前图片中的一些预先重构区域的信息来执行帧间预测。
96.为了执行帧间预测,可以针对编码单元来确定跳过模式、合并模式、amvp模式和帧间块复制模式中的哪一个模式用作包括在编码单元中的预测单元的运动预测方法。
97.帧内预测模块235可以基于当前图片中的像素信息来生成预测块。当预测单元是
要进行帧内预测的预测单元时,可以基于从用于对视频进行编码的设备接收到的预测单元的帧内预测模式信息来执行帧内预测。帧内预测模块235可以包括自适应帧内平滑(ais)滤波器、参考像素插值模块以及dc滤波器。ais滤波器对当前块的参考像素执行滤波,并且可以依赖于当前预测单元的预测模式来确定是否应用滤波器。可以通过使用从用于对视频进行编码的设备接收到的预测单元的预测模式和ais滤波器信息来对当前块的参考像素执行ais滤波。在当前块的预测模式是不执行ais滤波的模式时,可以不应用ais滤波器。
98.在预测单元的预测模式是基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值模块可以对参考像素进行插值以生成整数像素或小于整数像素的参考像素。在当前预测单元的预测模式是在不对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。在当前块的预测模式是dc模式时,dc滤波器可以通过滤波来生成预测块。
99.可以将重构块或重构图片提供至滤波器模块240。滤波器模块240可以包括去块滤波器、偏移校正模块以及alf。
100.可以从用于对视频进行编码的设备接收关于是否将去块滤波器应用于相应的块或图片的信息以及关于在应用去块滤波器时应用强滤波器和弱滤波器中的哪个滤波器的信息。用于对视频进行解码的设备的去块滤波器可以从用于对视频进行编码的设备接收关于去块滤波器的信息,并且可以对相应的块执行去块滤波。
101.偏移校正模块可以基于在执行编码时应用于图片的偏移校正的类型和偏移值信息来对重构图片执行偏移校正。
102.可以基于从用于对视频进行编码的设备接收到的关于是否应用alf的信息和alf系数信息等来将afl应用于编码单元。alf信息可以被提供为被包括在特定参数集中。
103.存储器245可以存储重构图片或重构块以用作参考图片或参考块,并且可以将重构图片提供至输出模块。
104.如上面描述的,在本发明的实施方式中,为了便于说明,编码单元被用作表示用于编码的单元的术语,然而,编码单元可以用作执行解码以及编码的单元。
105.另外,当前块可以表示要进行编码/解码的目标块。并且,依赖于编码/解码步骤,当前块可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)、预测块(或预测单元)等。
106.可以通过将图片划分成具有正方形或非正方形形状的基本块来对图片进行编码/解码。此时,基本块可以称作编码树单元。编码树单元可以被定义为序列或片内允许的最大大小的编码单元。可以通过序列参数集、图片参数集或片头(slice header)来用信号发送关于编码树单元是具有正方形形状还是具有非正方形形状的信息或者关于编码树单元的大小的信息。编码树单元可以被划分成更小大小的划分。此时,如果假设通过划分编码树单元而生成的划分深度是1,则通过划分具有深度1的划分而生成的划分深度可以被定义为2。即,通过划分编码树单元中的深度为k的划分而生成的划分可以被定义为具有深度k+1。
107.通过划分编码树单元而生成的任意大小的划分可以被定义为编码单元。编码单元可以被递归地划分或划分成用于执行预测、量化、变换或环路滤波等的基本单元。例如,通过划分编码单元而生成的任意大小的划分可以被定义为编码单元,或者可以被定义为变换单元或预测单元,该编码单元、变换单元或预测单元是用于执行预测、量化、变换或环路滤
波等的基本单元。
108.可以基于垂直线和水平线中的至少之一来执行编码树单元或编码单元的划分。另外,划分编码树单元或编码单元的垂直线或水平线的数量可以是至少一个或更多个。例如,可以使用一个垂直线或一个水平线将编码树单元或编码单元划分成两个划分,或者可以使用两个垂直线或两个水平线将编码树单元或编码单元划分成三个划分。替选地,可以通过使用一个垂直线和一个水平线将编码树单元或编码单元划分成具有1/2的长度和宽度的四个划分。
109.在使用至少一个垂直线或至少一个水平线将编码树单元或编码单元划分为多个划分时,划分可具有统一的大小或不同的大小。替选地,任何一个划分可以具有与其余划分不同的大小。
110.在下面描述的实施方式中,假设编码树单元或编码单元被划分成四叉树结构或二叉树结构。然而,还可以使用更多数量的垂直线或更多数量的水平线来划分编码树单元或编码单元。
111.图3是示出根据本发明的实施方式的基于树结构对编码块进行分层划分的示例的图。
112.以预定的块单元对输入视频信号进行解码。用于对输入视频信号进行解码的这样的默认单元是编码块。编码块可以是执行帧内/帧间预测、变换以及量化的块。另外,以编码块为单位确定预测模式(例如,帧内预测模式或帧间预测模式),并且包括在编码块中的预测块可以共享所确定的预测模式。编码块可以是具有在8
×
8至64
×
64范围内的任意大小的正方形块或非正方形块,或者可以是具有128
×
128、256
×
256或更大的大小的正方形块或非正方形块。
113.具体地,可以基于四叉树和二叉树中的至少一个来对编码块进行分层划分。此处,基于四叉树的划分可以意指将2n
×
2n的编码块划分成四个n
×
n的编码块,并且基于二叉树的划分可以意指将一个编码块划分成两个编码块。即使执行基于二叉树的划分,也可以在较低深度中存在正方形形状的编码块。
114.可以对称地或者非对称地执行基于二叉树的划分。基于二叉树划分的编码块可以是正方形块或非正方形块,例如长方形形状。例如,允许基于二叉树的划分的划分类型可以包括2n
×
n(水平方向非正方形编码单元)或n
×
2n(垂直方向非正方形编码单元)的对称类型、nl
×
2n、nr
×
2n、2n
×
nu或2n
×
nd的非对称类型中的至少之一。
115.可以将基于二叉树的划分限制地允许为对称类型划分或非对称类型划分中的之一。在这种情况下,使用正方形块构造编码树单元可以与四叉树cu划分对应,并且使用对称非正方形块构造编码树单元可以与二叉树划分对应。使用正方形块和对称非正方形块构造编码树单元可以与四叉树cu划分和二叉树cu划分对应。
116.可以对不再执行基于四叉树的划分的编码块执行基于二叉树的划分。可以不再对基于二叉树划分的编码块执行基于四叉树的划分。
117.此外,可以依赖于较高深度的划分类型来确定较低深度的划分。例如,如果在两个或更多个深度中允许基于二叉树的划分,则可以在较低深度中仅允许与较高深度的二叉树划分相同的类型。例如,如果使用2n
×
n类型执行较高深度中的基于二叉树的划分,则也使用2n
×
n类型执行较低深度中的基于二叉树的划分。替选地,如果使用n
×
2n类型执行较高
深度中的基于二叉树的划分,则也使用n
×
2n类型执行较低深度中的基于二叉树的划分。
118.相比之下,也可以在较低深度中仅允许与较高深度的二叉树划分类型不同的类型。
119.可以限制仅特定类型的基于二叉树的划分被用于序列、片、编码树单元或编码单元。作为示例,对于编码树单元,可以仅允许2n
×
n类型或n
×
2n类型的基于二叉树的划分。可以在编码器或解码器中预定义可用划分类型。或者可以对关于可用划分类型的信息或关于不可用划分类型的信息进行编码,并且然后通过比特流用信号发送该信息。
120.图5是示出仅允许特定类型的基于二叉树的划分的示例的图。图5a示出了仅允许n
×
2n类型的基于二叉树的划分的示例,并且图5b示出了仅允许2n
×
n类型的基于二叉树的划分的示例。为了实现基于四叉树或二叉树的自适应划分,可以使用下述信息:指示基于四叉树划分的信息、关于允许基于四叉树的划分的编码块的大小/深度的信息、指示基于二叉树的划分的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息、关于不允许基于二叉树的划分的编码块的大小/深度的信息、关于是沿垂直方向还是沿水平方向执行基于二叉树的划分的信息等。
121.另外,可以针对编码树单元或特定编码单元获得以下信息:所述信息关于允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量。可以以编码树单元或编码单元为单位对信息进行编码,并且可以通过比特流将该信息传输至解码器。
122.例如,可以通过比特流对指示允许二叉树划分的最大深度的语法“max_binary_depth_idx_minus1”进行编码/解码。在这种情况下,max_binary_depth_idx_minus1+1可以指示允许二叉树划分的最大深度。
123.参照图6中所示的示例,在图6中,已经针对深度为2的编码单元和深度为3的编码单元执行了二叉树划分。因此,可以通过比特流对指示编码树单元中的二叉树划分已经被执行的次数(即,2次)的信息、指示在编码树单元中已经允许二叉树划分的最大深度(即,深度3)或在编码树单元中已经执行二叉树划分的深度的数量(即,2个(深度2和深度3))的信息中的至少之一进行编码/解码。
124.作为另一示例,可以针对每个序列或每个片获得关于允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量的信息中的至少之一。例如,该信息可以以序列、图片或片单元为单位进行编码,并且通过比特流进行传输。因此,第一片中的二叉树划分的次数、第一片中允许二叉树划分的最大深度或第一片中执行二叉树划分的深度的数量中的至少之一可以与第二片不同。例如,在第一片中,可以仅针对一个深度允许二叉树划分,而在第二片中,可以针对两个深度允许二叉树划分。
125.作为另一示例,可以根据片或图片的时间水平标识符(temporalid)不同地设置允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量。此处,时间水平标识符(temporalid)用于识别具有视图、空间、时间或质量中的至少之一的可扩展性的多个视频层中的每一个。
126.如图3中所示,可以基于四叉树将划分深度(拆分深度)为k的第一编码块300划分成多个第二编码块。例如,第二编码块310至340可以是具有第一编码块的一半宽度和一半高度的正方形块,并且第二编码块的划分深度可以增加至k+1。
127.划分深度为k+1的第二编码块310可以被划分成划分深度为k+2的多个第三编码
块。可以通过依赖于划分方法选择性地使用四叉树和二叉树中的之一来执行第二编码块310的划分。此处,可以基于指示基于四叉树划分的信息和指示基于二叉树划分的信息中的至少之一来确定划分方法。
128.在基于四叉树对第二编码块310进行划分时,可以将第二编码块310划分成具有第二编码块的一半宽度和一半高度的四个第三编码块310a,并且第三编码块310a的划分深度可以增加至k+2。相比之下,在基于二叉树对第二编码块310进行划分时,可以将第二编码块310划分成两个第三编码块。此处,两个第三编码块中的每一个可以是具有第二编码块的一半宽度和一半高度中的一者的非正方形块,并且划分深度可以增加至k+2。可以依赖于划分方向将第二编码块确定为水平方向或垂直方向的非正方形块,并且可以基于关于是沿垂直方向还是沿水平方向执行基于二叉树的划分的信息来确定划分方向。
129.同时,第二编码块310可以被确定为不再基于四叉树或二叉树进行划分的叶编码块。在这种情况下,叶编码块可以被用作预测块或变换块。
130.类似于第二编码块310的划分,第三编码块310a可以被确定为叶编码块,或者可以基于四叉树或二叉树被进一步划分。
131.同时,可以基于二叉树将基于二叉树划分的第三编码块310b进一步划分成垂直方向的编码块310b-2或水平方向的编码块310b-3,相关编码块的划分深度可以增加至k+3。替选地,第三编码块310b可以被确定为不再基于二叉树进行划分的叶编码块310b-1。在这种情况下,编码块310b-1可以被用作预测块或变换块。然而,可以基于以下信息中的至少之一来限制性地执行上述划分处理:关于允许基于四叉树的划分的编码块的大小/深度的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息以及关于不允许基于二叉树的划分的编码块的大小/深度的信息。
132.表示编码块的大小的候选的数量可以被限制为预定数量,或者预定单元中的编码块的大小可以具有固定值。作为示例,序列或图片中的编码块的大小可以被限制为具有256
×
256、128
×
128或32
×
32。可以通过序列头或图片头来用信号发送指示序列中或图片中的编码块的大小的信息。
133.作为基于四叉树和二叉树的划分的结果,编码单元可以被表示为任意大小的正方形或矩形形状。
134.使用跳过模式、帧内预测、帧间预测或跳过方法中的至少之一来对编码块进行编码。一旦确定了编码块,就可以通过对编码块的预测划分来确定预测块。可以通过指示编码块的划分类型的划分模式(part_mode)来执行对编码块的预测划分。可以根据编码块的划分模式来确定预测块的大小或形状。例如,根据划分模式确定的预测块的大小可以等于或小于编码块的大小。
135.图7是示出在通过帧间预测对编码块进行编码时可以应用于编码块的划分模式的图。
136.在通过帧间预测对编码块进行编码时,可以将8个划分模式中的之一应用于编码块,如图7中所示的示例。
137.在通过帧内预测对编码块进行编码时,可以将划分模式part_2n
×
2n或划分模式part_n
×
n应用于编码块。
138.在编码块具有最小大小时,可以应用part_n
×
n。此处,可以在编码器和解码器中
预定义编码块的最小大小。或者,可以经由比特流用信号发送关于编码块的最小大小的信息。例如,可以通过片头来用信号发送编码块的最小大小,使得可以针对每个片定义编码块的最小大小。
139.通常,预测块可以具有从64
×
64至4
×
4的大小。然而,在通过帧间预测对编码块进行编码时,可以限制预测块不具有4
×
4大小以在执行运动补偿时减小存储器带宽。
140.图8示出根据本发明的实施方式的用于对视频进行编码/解码的设备的预定义帧内预测模式的类型的图。
141.用于编码/解码视频的设备可以使用预定义帧内预测模式之一来执行帧内预测。用于帧内预测的预定义帧内预测模式可以包括非方向性预测模式(例如,平面模式、dc模式)和33种方向性预测模式。
142.可替选地,为了提高帧内预测的准确性,可以使用多于33种方向性预测模式的更多数量的方向性预测模式。也就是说,可以通过细分方向性预测模式的角度来定义m个扩展方向性预测模式(m》33),并且可以使用33种预定义方向性预测模式中至少之一来得到具有预定角度的方向性预测模式。
143.可以使用多于图8中示出的35种帧内预测模式的更多数量的帧内预测模式。例如,可以通过以下方式来使用比35种帧内预测模式数量更多的帧内预测模式:细分方向性预测模式的角度,或者使用预定义数量的方向性预测模式中至少之一来得到具有预定角度的方向性预测模式。此时,比35种帧内预测模式数量更多的帧内预测模式的使用可以被称作扩展帧内预测模式。
144.图9示出了扩展帧内预测模式的示例,并且扩展帧内预测模式可以包括两种非方向性预测模式和65种扩展方向性预测模式。相同数量的扩展帧内预测模式可以用于亮度分量和色度分量,或者不同数量的帧内预测模式可以用于每个分量。例如,67种扩展帧内预测模式可以用于亮度分量,并且35种帧内预测模式可以用于色度分量。
145.可替选地,取决于色度格式,在执行帧内预测时可以使用不同数量的帧内预测模式。例如,在4:2:0格式的情况下,67种帧内预测模式可以用于亮度分量以执行帧内预测,并且35种帧内预测模式可以用于色度分量。在4:4:4格式的情况下,67种帧内预测模式可以用于亮度分量和色度分量以执行帧内预测。
146.可替选地,取决于块的大小和/或形状,可以使用不同数量的帧内预测模式来执行帧内预测。也就是说,取决于pu或cu的大小和/或形状,可以使用35种帧内预测模式或67种帧内预测模式来执行帧内预测。例如,在cu或pu具有小于64
×
64的大小或者被非对称地划分的情况下,可以使用35种帧内预测模式来执行帧内预测。在cu或pu的大小等于或大于64
×
64的情况下,可以使用67种帧内预测模式来执行帧内预测。对于intra_2nx2n可以允许65种方向性帧内预测模式,并且对于intra_nxn可以允许仅35种方向性帧内预测模式。
147.可以针对每个序列、图片或片,不同地设置应用扩展帧内预测模式的块的大小。例如,设置了将扩展帧内预测模式应用于第一片中的具有大于64
×
64的大小的块(例如,cu或pu)。另一方面,设置了将扩展帧内预测模式应用于第二片中的具有大于32
×
32的大小的块。可以以序列、图片或片为单位用信号发送表示应用扩展帧内预测模式的块的大小的信息。例如,指示扩展帧内预测模式所应用的块的大小的信息可以被定义为通过对块大小取对数然后减去整数4而获得的'log2_extended_intra_mode_size_minus4'。例如,如果
log2_extended_intra_mode_size_minus4的值是0,则这可以指示扩展帧内预测模式可以应用于具有等于或大于16
×
16的大小的块。如果log2_extended_intra_mode_size_minus4的值是1,则这可以指示扩展帧内预测模式可以应用于具有等于或大于32
×
32的大小的块。
148.如上所述,可以考虑颜色分量、色度格式以及块的大小或形状中的至少一个来确定帧内预测模式的数量。另外,还可以根据颜色分量、颜色格式以及块的大小或形状中的至少一个来确定用于确定要被编码/解码的当前块的帧内预测模式的帧内预测模式候选的数量(例如,mpm的数量)。将利用附图来描述确定要被编码/解码的当前块的帧内预测模式的方法和使用所确定的帧内预测模式来执行帧内预测的方法。
149.图10是简要示出根据本发明的实施方式的帧内预测方法的流程图。
150.可以通过将帧内预测应用于以下块来提高编码/解码效率:包括在具有强方向性的图像中的块、包括在前一帧中未示出的图像中的块等。
151.参照图10,在步骤s1000处可以确定当前块的帧内预测模式。
152.具体地,可以基于候选列表和索引来得到当前块的帧内预测模式。这里,候选列表包含多个候选,并且可以基于与当前块相邻的相邻块的帧内预测模式来确定多个候选。相邻块可以包括位于当前块的上侧、下侧、左侧、右侧和角处的块中的至少一个块。索引可以指定候选列表中的多个候选之一。由索引指定的候选可以被设置为当前块的帧内预测模式。
153.可以将用于相邻块中的帧内预测的帧内预测模式设置为候选。另外,可以将具有与相邻块的帧内预测模式的方向性相似的方向性的帧内预测模式设置为候选。这里,可以通过向相邻块的帧内预测模式添加预定常数值或从相邻块的帧内预测模式减去预定常数值来确定具有相似方向性的帧内预测模式。预定常数值可以是整数,例如一、二或者更多。
154.候选列表还可以包括默认模式。默认模式可以包括平面模式、dc模式、垂直模式和水平模式中的至少一个。考虑到可以包括在当前块的候选列表中的候选的最大数量,可以自适应地添加默认模式。
155.可以包括在候选列表中的候选的最大数量可以是三、四、五、六或者更多。可以包括在候选列表中的候选的最大数量可以是在用于编码/解码视频的设备中预设的固定值,或者可以基于当前块的特征来可变地确定。特征可以意指块的位置/大小/形状、块可以使用的帧内预测模式的数量/类型、颜色类型、颜色格式等。可替选地,可以单独用信号发送指示可以包括在候选列表中的候选的最大数量的信息,并且可以使用该信息可变地确定可以包括在候选列表中的候选的最大数量。可以以序列级别、图片级别、片级别和块级别中的至少一个用信号发送指示候选的最大数量的信息。
156.当选择性地使用扩展帧内预测模式和35种预定义帧内预测模式时,可以将相邻块的帧内预测模式变换为与扩展帧内预测模式相对应的索引,或者变换为与35种帧内预测模式相对应的索引,由此可以得到候选。为了变换至索引,可以使用预定义表,或者可以使用基于预定值的缩放操作。这里,预定义表可以定义不同帧内预测模式组之间的映射关系(例如,扩展帧内预测模式和35种帧内预测模式)。
157.例如,在左侧相邻块使用35种帧内预测模式并且左侧相邻块的帧内预测模式为10(水平模式)的情况下,可以将其变换为与扩展帧内预测模式中的水平模式相对应的索引16。
158.可替选地,在上侧相邻块使用扩展帧内预测模式并且上侧相邻块的帧内预测模式具有索引50(垂直模式)的情况下,可以将其变换为与35种帧内预测模式中的垂直模式相对应的索引26。
159.基于确定帧内预测模式的上述方法,可以针对亮度分量和色度分量中的每一个来独立地得到帧内预测模式,或者可以根据亮度分量的帧内预测模式来得到色度分量的帧内预测模式。
160.具体地,如下表1所示出的,可以基于亮度分量的帧内预测模式来确定色度分量的帧内预测模式。
161.[表1]
[0162][0163][0164]
在表1中,intra_chroma_pred_mode意指用信号发送以指定色度分量的帧内预测模式的信息,并且intrapredmodey指示亮度分量的帧内预测模式。
[0165]
参照图10,在步骤s1010处可以得到用于当前块的帧内预测的参考样本。
[0166]
具体地,可以基于当前块的相邻样本得到用于帧内预测的参考样本。相邻样本可以是相邻块的重构样本,并且重构样本可以是在应用环路滤波器之前的重构样本或者是在应用环路滤波器之后的重构样本。
[0167]
在当前块之前重构的相邻样本可以用作参考样本,并且基于预定帧内滤波器滤波的相邻样本可以用作参考样本。使用帧内滤波器对相邻样本的滤波也可以称作参考样本平滑。帧内滤波器可以包括以下滤波器中的至少一个:应用于位于同一水平线上的多个相邻样本的第一帧内滤波器,以及应用于位于同一垂直线上的多个相邻样本的第二帧内滤波器。取决于相邻样本的位置,可以选择性地应用第一帧内滤波器和第二帧内滤波器中的一个,或者可以应用两种帧内滤波器。此时,第一帧内滤波器或第二帧内滤波器的至少一个滤波器系数可以是(1,2,1),但不限于此。
[0168]
可以基于当前块的帧内预测模式和用于当前块的变换块的大小中的至少一个来自适应地执行滤波。例如,在当前块的帧内预测模式是dc模式、垂直模式或水平模式的情况下,可以不执行滤波。在变换块的大小是n
×
m的情况下,可以不执行滤波。这里,n和m可以是相同的值或不同的值,或者可以是4、8、16或更多的值。例如,如果变换块的大小是4
×
4,则可以不执行滤波。可替选地,可以基于当前块的帧内预测模式与垂直模式(或水平模式)之间的差与预定义阈值的比较的结果来选择性地执行滤波。例如,在当前块的帧内预测模式
与垂直模式之间的差大于阈值的情况下,可以执行滤波。如表2所示可以针对变换块的每个大小来定义阈值。
[0169]
[表2]
[0170] 8
×
8变换16
×
16变换32
×
32变换阈值710
[0171]
可以将帧内滤波器确定为在用于编码/解码视频的设备中预定义的多个帧内滤波器候选之一。为此,可以用信号发送指定多个帧内滤波器候选中的当前块的帧内滤波器的索引。可替选地,可以基于当前块的大小/形状、变换块的大小/形状、关于滤波器强度的信息以及相邻样本的变化中的至少一个来确定帧内滤波器。
[0172]
参照图10,在步骤s1020处可以使用当前块的帧内预测模式和参考样本来执行帧内预测。
[0173]
也就是说,可以使用在步骤s1000处确定的帧内预测模式和在步骤s1010处得到的参考样本来获得当前块的预测样本。然而,在帧内预测的情况下,可能使用相邻块的边界样本,并且因此预测图片的质量可能降低。因此,可以对通过上述预测处理生成的预测样本执行校正处理,并且将参照图11至图13来详细描述该校正处理。然而,校正处理不限于仅应用于帧内预测样本,并且还可以应用于帧间预测样本或者重构样本。
[0174]
图11是示出根据本发明的实施方式的基于相邻样本的差分信息来校正当前块的预测样本的方法的图。
[0175]
可以基于当前块的多个相邻样本的差分信息来校正当前块的预测样本。可以对当前块中的所有预测样本执行校正,或者可以对预定部分区域中的预测样本执行校正。部分区域可以是一行/列或多行/列,并且这些区域可以是用于在用于编码/解码视频的设备中进行校正的预设区域。例如,可以对位于当前块的边界处的一行/列执行校正,或者可以对来自当前块的边界的多个行/列执行校正。可替选地,可以基于当前块的大小/形状和帧内预测模式中的至少一个来可变地确定部分区域。
[0176]
相邻样本可以属于位于当前块的上侧、左侧和左上角处的相邻块。用于校正的相邻样本的数量可以是两个、三个、四个或更多。可以根据作为当前块中的校正目标的预测样本的位置来可变地确定相邻样本的位置。可替选地,一些相邻样本可以具有固定位置而不管作为校正目标的预测样本的位置如何,并且其余相邻样本可以具有取决于作为校正目标的预测样本的位置的可变位置。
[0177]
相邻样本的差分信息可以意指相邻样本之间的差分样本,或者可以意指通过将差分样本缩放预定常数值(例如一、二、三等)而获得的值。这里,可以考虑作为校正目标的预测样本的位置、包括作为校正目标的预测样本的列或行的位置、预测样本在列或行内的位置等来确定预定常数值。
[0178]
例如,在当前块的帧内预测模式是垂直模式的情况下,与当前块的左边界相邻的相邻样本p(-1,y)与左上相邻样本p(-1,-1)之间的差分样本可用于获得最终预测样本,如式1所示。
[0179]
[式1]
[0180]
p
′
(0,y)=p(0,y)+((p(-1,y)-p(-1,-1))>>1其中y=0
…
n-1
[0181]
例如,在当前块的帧内预测模式是水平模式的情况下,与当前块的上边界相邻的
相邻样本p(x,-1)与左上相邻样本p(-1,-1)之间的差分样本可用于获得最终预测样本,如式2所示。
[0182]
[式2]
[0183]
p
′
(x,0)=p(x,0)+((p(x,-1)-p(-1,-1))>>1其中x=0
…
n-1
[0184]
例如,在当前块的帧内预测模式是垂直模式的情况下,与当前块的左边界相邻的相邻样本p(-1,y)与左上相邻样本p(-1,-1)之间的差分样本可用于获得最终预测样本。这里,可以将差分样本添加至预测样本,或者可以将差分样本缩放预定常数值,然后添加至预测样本。可以根据列和/或行不同地确定在缩放中使用的预定常数值。例如,可以如式3和式4所示地校正预测样本。
[0185]
[式3]
[0186]
p
′
(0,y)=p(0,y)+((p(-1,y)-p(-1,-1))>>1其中y=0
…
n-1
[0187]
[式4]
[0188]
p
′
(1,y)=p(1,y)+((p(-1,y)-p(-1,-1))>>2其中y=0
…
n-1
[0189]
例如,在当前块的帧内预测模式是水平模式的情况下,与当前块的上边界相邻的相邻样本p(x,-1)与左上相邻样本p(-1,-1)之间的差分样本可用于获得最终预测样本,如在垂直模式的情况中所描述的。例如,可以如式5和式6示出地校正预测样本。
[0190]
[式5]
[0191]
p
′
(x,0)=p(x,0)+((p(x,-1)-p(-1,-1))>>1其中x=0
…
n-1
[0192]
[式6]
[0193]
p
′
(x,1)=p(x,1)+((p(x,-1)-p(-1,-1))>>2其中x=0
…
n-1
[0194]
图12和图13是示出根据本发明的实施方式的基于预定校正滤波器来校正预测样本的方法的图。
[0195]
可以基于作为校正目标的预测样本的相邻样本和预定校正滤波器来校正预测样本。这里,相邻样本可以由当前块的方向性预测模式的角度线指定,或者相邻样本可以是与作为校正目标的预测样本位于相同角度线上的至少一个样本。此外,相邻样本可以是当前块中的预测样本,或者可以是在当前块之前重构的相邻块中的重构样本。
[0196]
可以基于以下中的至少一个来确定校正滤波器的抽头数、强度和滤波器系数中的至少一个:作为校正目标的预测样本的位置、作为校正目标的预测样本是否位于当前块的边界、当前块的帧内预测模式、方向性预测模式的角度、相邻块的预测模式(帧间模式或帧内模式)以及当前块的大小/形状。
[0197]
参照图12,当方向性预测模式具有索引2或索引34时,可以使用位于作为校正目标的预测样本的左下方的至少一个预测/重构样本以及预定校正滤波器来获得最终预测样本。这里,左下方处的预测/重构样本可以属于包括作为校正目标的预测样本的线的之前的线。左下方处的预测/重构样本可以与当前样本属于相同的块,或者属于与当前块相邻的相邻块。
[0198]
可以仅在位于块边界处的线上执行,或者可以在多条线上执行对预测样本的滤波。可以使用校正滤波器,其中对于每条线,滤波器抽头的数量和滤波器系数中的至少一个是不同的。例如,(1/2,1/2)滤波器可用于最靠近块边界的左侧第一条线,(12/16,4/16)滤波器可用于第二条线,(14/16,2/16)滤波器可以用于第三条线,并且(15/16,1/16)滤波器
可以用于第四条线。
[0199]
可替选地,当方向性预测模式具有索引3至6或者索引30至33时,可以如图13所示地对块边界执行滤波,可以使用3抽头校正滤波器来校正预测样本。可以使用作为校正目标的预测样本的左下样本、左下样本的下侧样本、以及将作为校正目标的预测样本作为输入的3抽头校正滤波器来执行滤波。可以基于方向性预测模式来不同地确定由校正滤波器使用的相邻样本的位置。可以根据方向性预测模式来不同地确定校正滤波器的滤波器系数。
[0200]
可以根据相邻块是以帧间模式编码还是帧内模式编码来应用不同的校正滤波器。当以帧内模式对相邻块进行编码时,与以帧间模式对相邻块进行编码的情况相比,可以使用向预测样本赋予更多权重的滤波方法。例如,在帧内预测模式为34的情况下,当相邻块以帧间模式编码时,可以使用(1/2,1/2)滤波器,并且当相邻块以帧内模式编码时,可以使用(4/16,12/16)滤波器。
[0201]
当前块中要被滤波的线的数量可以取决于当前块(例如,编码块或预测块)的大小/形状而变化。例如,在当前块的大小等于或小于32
×
32的情况下,可以仅对块边界处的一条线执行滤波;否则,可以对包括块边界处的一条线的多条线执行滤波。
[0202]
图12和图13基于使用了图7中的35种帧内预测模式的情况,但是可以同样/类似地应用于使用扩展帧内预测模式的情况。
[0203]
图14示出了根据应用了本发明的实施方式的用于帧内预测的参考样本的范围。
[0204]
可以使用基于包括在相邻块中的重构样本得到的参考样本来执行对当前块的帧内预测。这里,重构样本意指在编码/解码当前块之前完成编码/解码。例如,可以基于参考样本p(-1,-1)、p(-1,y)(0《=y《=2n-1)和p(x,-1)(0《=x《=2n-1)中的至少一个参考样本来执行对当前块的帧内预测。可以通过对参考样本取平均或者考虑当前块的帧内预测模式的方向性复制特定方向上的参考样本来生成当前块的预测样本。
[0205]
可以使用多个参考线中的至少一个来执行对当前块的帧内预测。可以将多个参考线的全部长度或部分长度确定为相同,或者可以将长度设置成彼此不同。
[0206]
例如,假设当前块具有w
×
h大小,第k个参考线可以包括:参考样本p(-k,-k)、与p(-k,-k)在同一行上的参考样本(例如,从p(-k+1,-k)至p(w+h+2(k-1),-k)的参考样本或从p(-k+1,-k)至p(2w+2(k-1),-k)的参考样本))以及与p(-k,-k)在同一列上的参考样本(例如,从p(-k,-k+1)至p(-k,w+h+2(k-1))的参考样本或从p(-k,-k+1)至p(-k,2h+2(k-1))的参考样本)。
[0207]
图15是例示多条参考样本线的图。如在图15中示出的示例中那样,在与当前块的边界相邻的第一参考线被称作“参考线0”的情况下,可以将第k参考线配置成与第(k-1)参考线相邻。
[0208]
可替选地,与图15中示出的不同,可以进行以下配置:所有参考线具有相同数量的参考样本。
[0209]
可以基于包括在从多个参考线中选择的至少一个参考线中的参考样本来执行对当前块的帧内预测。这里,通过选择多个参考线候选中的至少一个来执行帧内预测可以被称作“使用扩展参考样本的帧内预测方法(扩展参考帧内预测)”或“扩展帧内预测方法”。此外,可以将多条参考线称作“扩展参考线”。
[0210]
可以基于通过比特流用信号发送的信息来确定是否基于扩展参考线来执行帧内
预测。这里,信息可以是1位标志,但不限于此。可以以编码树单元、编码单元、或预测单元为单位,或者可以以序列、图片或片为单位,用信号发送有关是否基于扩展参考线来执行帧内预测的信息。也就是说,可以以序列、图片、片、ctu、cu或pu为单位来确定是否基于扩展参考线来执行帧内预测。
[0211]
由于帧内预测使用有限的参考样本来生成预测样本,因此生成的预测样本可能无法反映原始图像的特征。也就是说,由于仅使用与当前块相邻的相邻样本来执行对当前块的帧内预测,因此原始图像的特征可能无法被准确地反映。例如,在在当前块中存在边缘、在当前块的边界周围出现新对象的情况下等,预测样本与原始图像之间的差异可能是大的,这取决于预测样本在当前块中的位置。
[0212]
在这种情况下,残差值变得相对较大,并且要编码/解码的比特量可能增加。因此,本发明提出了对通过帧内预测生成的预测样本的改进的方法。将参照图16至图24来对用于修改预测样本的方法进行详细描述。
[0213]
图16是示出根据本发明的实施方式的修改预测样本的方法的流程图。
[0214]
首先,可以基于当前块的帧内预测模式获得当前块的帧内预测图像(预测块或预测样本)s1610。在下列实施方式中,基于当前块的帧内预测模式生成的预测图像被称作第一帧内预测图像或第一预测块,并且包括在第一帧内预测图像中的样本被称作第一预测样本。
[0215]
在作为执行帧内预测的结果生成第一帧内预测图像的情况下,将偏移应用于当前块的至少一部分以生成从可以生成的第一帧内预测图像(或第一预测样本)改进的第二帧内预测图像(或第二预测样本)。例如,可以在当前块的整个区域、预定义的部分区域或特定位置处的样本上执行基于偏移对第一帧内预测图像的改进。可以将用于将第一帧内预测图像改进为第二帧内预测图像的偏移称之为“帧内改进偏移”。
[0216]
可以基于当前块的帧内预测模式的类型、帧内预测模式的方向性、帧内预测模式的角度、当前块(或预测块)的大小或形状等来确定是否将偏移应用于当前块的至少部分区域。例如,可以配置成:在当前块的帧内预测模式是诸如dc模式或平面模式的非方向性模式的情况下,将偏移应用于当前块的至少部分区域,而在当前块的帧内预测模式是方向性模式的情况下,不将偏移应用于当前块。作为另一示例,可以配置成:在当前块的帧内预测模式是特定方向上的帧内预测模式的情况下,将偏移应用至当前块的至少部分区域。
[0217]
可替选地,可以通过从比特流解码的信息来确定是否将偏移应用于当前块的至少部分区域。例如,可以通过比特流用信号发送指示是否使用偏移来改进第一帧内预测图像的语法'is_predblock_refinement_flag'。在'is_predblock_refinement_flag'的值为1的情况下,在当前块中可以使用偏移来执行对第一帧内预测图像的改进,而在'is_predblock_refinement_flag'的值是0的情况下,在当前块中可以不执行对第一帧内预测图像的改进。在第一帧内预测图像的改进没有被执行的情况下,可以输出第一帧内预测图像来作为当前块的最终预测结果。
[0218]
为了将偏移应用于当前块的至少部分区域,可以确定当前块的偏移s1620。
[0219]
可以针对当前块中的每个预定单元定义偏移。这里,预定单元可以意指一个样本、包括多个样本的线(例如,行或列)、包括多个线的子块、具有预定大小的子块等。例如,在针对第一帧内预测图像中的每个样本定义偏移之后,可以通过向每个样本添加与每个样本相
对应的偏移或从每个样本减去与每个样本相对应的偏移来生成第二帧内预测图像。
[0220]
可以根据当前块的参考样本得到偏移。具体地,可以基于多个参考样本(例如,两个、三个或更多个参考样本)的和、差、平均、加权操作值(例如,加权平均)、中间值、最大值、最小值等来得到偏移。
[0221]
用于得到偏移的参考样本可以包括以下参考样本中的至少一个:在固定位置处的参考样本,或依赖于预测样本(即,第一帧内预测图像的样本)的位置而确定的参考样本。例如,可以基于以下参考样本中的至少一个来得到偏移:与当前块的左上角相邻的参考样本,以及与要应用偏移的预测样本在相同垂直线/水平线上的参考样本。
[0222]
可替选地,可以基于当前块的帧内预测模式的大小、形状、方向或角度等来可变地确定用于计算偏移的参考样本的数量和/或位置。
[0223]
可以在对参考样本应用滤波器(例如,ais滤波器)之前使用参考样本来得到偏移。也就是说,可以使用已被执行滤波的参考样本来生成第一帧内预测图像,而可以在对参考样本应用滤波器之前使用参考样本来生成第二帧内预测图像。
[0224]
可以基于包括在相同参考线中的多个参考样本来得到偏移,或者可以基于各自包括在不同参考线中的参考样本来得到偏移。
[0225]
例如,在图15中示出的示例中,可以基于从第一参考线得到的参考样本的值与从第二参考线或第四参考线之一得到的参考样本的值之间的差值来确定偏移。
[0226]
式7和式8示出了得到帧内改进偏移的示例。可以使用式7所示的等式之一来确定帧内改进偏移h。
[0227]
[式7]
[0228]
h=ref1(i1,j1)-ref0(i0,j0)
[0229]
h=ref2(i2,j2)-ref0(i0,j0)
[0230]
h=ref3(i3,j3)-ref0(i0,j0)
[0231]
h=ref4(i4,j4)-ref0(i0,j0)
[0232]
可替选地,可以如式8所示来确定多个帧内改进偏移f0、f1、f2和f3。可以基于多个帧内改进偏移f0至f3中的任何一个来执行对当前块的改进,或者可以通过以预定区域为单位应用不同的帧内改进偏移来执行对当前块的改进。
[0233]
[式8]
[0234]
f0=w0*(ref1(i1,j1)-rref0(i0,j0))
[0235]
f1=w1*(ref2(i2,j2)-ref0(i0,j0))
[0236]
f0=w2*(ref3(i3,j3)-ref0(i0,j0))
[0237]
f0=w3*(ref4(i4,j4)-ref0(i0,j0))
[0238]
在式7和式8中,refn(x=0至4)指示参考线n。另外,(in,jn)表示包括在参考线n中的参考样本的位置。可以根据用于执行当前块的帧内预测的相邻重构样本得到用于得到偏移的参考样本的值,或者用于得到偏移的参考样本的值可以表示用于计算偏移的单独重构样本。这里,可以根据单独重构样本的相邻样本或预定义位置处的样本得到单独重构样本的值。用于得到偏移的参考样本的值可以是在将环路滤波器应用于相邻块之前的值或者是在环路滤波器已被应用于相邻块之后的值。
[0239]
可以通过将权重应用于参考样本来获得偏移。例如,在式8中,通过将权重w应用于
参考样本之间的差值来获得偏移。另外,可以通过对每个参考样本应用不同权重的加权操作来获得偏移。这里,可以基于在当前块中的特定位置处的样本与参考线之间的距离、在特定位置处的样本与参考样本之间的距离、参考样本之间的距离、参考线之间的距离等来确定应用于每个参考样本的权重。特定位置处的样本可以表示当前块中的预定义位置处的样本,或者可以表示要应用偏移的样本(下文中,称为“偏移应用目标样本”或“改进目标样本”)。在预定位置处的样本可以包括以下样本中的至少一个:与当前块的左边界相邻的样本、与当前块的上边界相邻的样本或与当前块的左上角相邻的样本。
[0240]
例如,可以与当前块中的特定位置处的样本与用于计算偏移的参考样本之间的距离成比例地确定权重。例如,假设基于在当前块的左上角处的参考样本、相对于偏移应用目标样本在垂直方向上的参考样本以及相对于偏移应用目标样本在水平方向上的参考样本来得到偏移。在这种情况下,可以使用相应参考样本与偏移应用目标样本之间的x轴距离差值或y轴距离差值中的至少一个来获得应用于当前块的左上角处的参考样本的权重。对于相对于偏移应用目标样本在垂直方向上的样本,可以基于相应参考样本与偏移应用目标样本之间的y轴距离差值来获得权重,并且对于相对于偏移应用目标样本在水平方向上的样本,可以基于相应参考样本与偏移应用目标样本之间的x轴距离差值来获得权重。
[0241]
可替选地,可以通过以下方式来确定权重:将在当前块中的特定位置处的样本与用于计算偏移的参考样本之间的距离加到预定义值,或从预定义值中减去在当前块中的特定位置处的样本与用于计算偏移的参考样本之间的距离。
[0242]
作为另一示例,可以基于指示当前块中的特定位置处的样本与参考样本之间的距离的值与指示当前块的大小的值之间的比率来确定权重。
[0243]
可以基于与第一帧内预测图像相邻的相邻重构样本(即,参考样本)的残余样本来得到帧内改进偏移。这里,可以通过用于获得第一帧内预测图像的帧内预测模式的类型、方向或角度中的至少一个来指定相邻重构样本的位置。例如,相邻重构样本的位置可以是位于方向性帧内预测模式的角度线上的参考样本的位置,或者可以位于与帧内预测模式的角度线正交的线上。
[0244]
可替选地,可以以片、编码单元或预测单元为单位用信号发送偏移值。
[0245]
在偏移被确定的情况下,可以将偏移应用于第一帧内预测图像以生成作为第一帧内预测图像的改进的第二帧内预测图像s1630。例如,下式9示出了根据包括在第一帧内预测图像中的样本p(x,y)得到第二帧内预测图像的样本p
′
(x,y)的示例。
[0246]
[式9]
[0247]
p
′
(i,j)=p(i,j)+f
[0248]
如式8所示,可以通过将偏移f加到第一帧内预测图像的样本p(i,j)来获得第二帧内预测图像的样本p
′
(i,j)。与等式9对比,可以通过从第一帧内预测图像中减去偏移来获得第二帧内预测图像。可替选地,可以基于第一帧内预测图像和偏移的加权操作来获得第二帧内预测图像。这里,可以根据要改进的样本的位置等来确定应用于第一帧内预测图像和偏移的权重。
[0249]
在方向性帧内预测模式的情况下,由于通过复制与当前块相邻的参考样本来生成预测样本,因此远离当前块的区域中的预测效率可能劣化。也就是说,当使用方向性帧内预测模式时,相对远离当前块的边界的区域中的残差值可能包括大量的高频分量,这可能导
致编码/解码效率的劣化。
[0250]
为了解决上述问题,可以考虑用于以子块为单位来改进预测图像的方法。这里,以子块为单位改进预测图像可以意味着仅在与在当前块的整个区域中的预定子块对应的区域中来执行对预测图像的改进,或者以当前块中的预定子块为单位来定义偏移(即,针对每个子块使用不同的偏移)。当以子块为单位改进预测图像时,可以提高在相对远离块边界的区域中的预测的精度。在下文中,参照图17,将详细描述以子块为单位来改进预测图像的方法。
[0251]
图17是示出根据本发明的实施方式的用于以子块为单位来改进预测图像的方法的流程图。
[0252]
参照图17,对于当前块,可以确定是否以子块为单位来改进(或更新)第一帧内预测图像s1700。可以基于当前块的大小、形状、帧内预测模式的类型、方向或角度中的至少一个来确定是否以子块为单位来执行对第一帧内预测图像的改进。可替选地,可以通过从比特流解码的标志来确定是否以子块为单位来改进第一帧内预测图像。例如,可以通过比特流用信号发送指示是否以子块为单位更新第一帧内预测图像的语法'is_sub_block_refinement_flag'。在'is_sub_block_refinement_flag'的值为1的情况下,可以在当前块中的预定的子块中执行使用偏移对第一预测样本的改进,而在'is_sub_block_refinement_flag'的值为0的情况下,可以不执行以子块为单位的改进。
[0253]
可以分层次地确定是否改进第一帧内预测图像和改进单元。例如,仅当确定执行对第一帧内预测图像的改进时,可以确定改进单元是否是子块单元。
[0254]
在确定以子块为单位执行对第一帧内预测图像的改进的情况下,可以确定当前块的帧内预测方式s1710。通过帧内预测方式,可以确定应用了偏移的当前块的全部区域或部分区域、当前块的划分类型、是否将偏移应用于包括在当前块中的子块、分配给每个子块的偏移的大小/符号等。
[0255]
在编码器/解码器中预定义的多个方式的任何一个可以选择性地用于当前块的帧内预测方式,并且为此,可以从比特流用信号发送指定当前块的帧内预测方式的索引。作为另一示例,可以基于当前块的预测单元或编码单元的划分模式、块大小/形状、是否是方向性帧内预测模式、方向性帧内预测模式的角度、相邻块的帧内预测方式等来确定当前块的帧内预测方式。
[0256]
可以通过从比特流用信号发送的预定标志信息来确定是否用信号发送指示当前块的帧内预测方式的索引。例如,当标志信息指示从比特流用信号发送了指示当前块的帧内预测方式的索引时,可以基于从比特流解码的索引来确定当前块的帧内预测方式。这里,可以以图片级别、片级别或块级别中的至少一个为单位用信号发送标志信息。
[0257]
当标志信息指示未从比特流用信号发送指示当前块的帧内预测方式的索引时,可以基于当前块的预测单元或编码单元的划分模式等来确定当前块的帧内预测方式。例如,当前块被划分成子块的划分类型可以与编码块被划分成预测单元的划分类型具有相同的类型。
[0258]
在当前块的帧内预测方式被确定的情况下,可以以子块为单位获得偏移s1720。可以以片、编码单元或预测单元为单位用信号发送偏移。作为另一示例,可以根据当前块的相邻样本(例如,参考样本)得到偏移。偏移可以包括偏移大小信息或偏移符号信息中的至少
一个。这里,偏移大小信息可以在大于或等于零的整数的范围内。
[0259]
在偏移被确定的情况下,对于每个子块,可以通过改进第一帧内预测图像来生成第二帧内预测图像s1730。可以通过将偏移应用于第一帧内预测图像来获得第二帧内预测图像。例如,可以通过向第一预测样本添加偏移或从第一预测样本减去偏移来获得第二预测样本。这里,可以将针对每个子块的不同偏移应用于第一帧内预测图像。
[0260]
图18至图22是示出根据应用了本发明的实施方式的当前块的帧内预测方式的图。
[0261]
例如,在图18示出的示例中,当索引为“0”或“1”时,当前块被划分成上子块和下子块,对于上子块可以不设置偏移,并且对于下子块可以设置偏移“f”。因此,对于上子块可以原样使用第一预测样本(p(i,j)),并且对于下子块,可以使用通过向第一预测样本添加偏移或从第一预测样本减去偏移而生成的第二预测样本(p(i,j)+f或(p(i,j)-f)。在本说明书中,“未设置”可以意味着没有将偏移分配给相应的块,或者将偏移“0”分配给相应的块。
[0262]
当索引为“2”或“3”时,当前块被划分成左子块和右子块,对于左子块可以不设置偏移,并且对于右子块设置偏移“f”。因此,对于左子块可以原样使用第一预测样本(p(i,j)),并且对于右子块,可以使用通过向第一预测样本添加偏移或从第一预测样本减去偏移而生成的第二预测样本(p(i,j)+f或(p(i,j)-f)。
[0263]
基于当前块的帧内预测模式,可用帧内预测方式可能在其范围上受到限制。例如,在当前块的帧内预测模式是垂直方向性帧内预测模式或具有与垂直方向性帧内预测模式的方向类似的方向的预测模式的情况下(例如,当帧内预测模式索引是33种方向性预测模式中的22至30时),只有水平划分当前块的帧内预测方式(例如,图18中的索引0或索引1)可以应用于当前块。
[0264]
作为另一示例,在当前块的帧内预测模式是水平方向性帧内预测模式或具有与水平方向性帧内预测模式的方向类似的方向的预测模式的情况下(例如,当帧内预测模式索引是33种方向性预测模式中的6至14时),只有垂直划分当前块的帧内预测方式(例如,图18中的索引2或索引3)可以应用于当前块。
[0265]
可替选地,可根据当前块的帧内预测模式是否是非方向性模式来确定当前块可用的帧内预测方式。
[0266]
图18示出了针对当前块中包括的子块之一没有设置偏移并且针对另一个子块设置了偏移的示例。可以基于针对每个子块用信号发送的信息来确定是否针对子块设置偏移。
[0267]
可替选地,可以基于子块的位置、用于识别当前块中的子块的索引等来确定是否针对子块设置偏移。例如,关于当前块的预定边界,对于邻接预定边界的子块可以不设置偏移,并且对于不与预定边界邻接的子块可以设置偏移。这里,可以基于当前块的大小、形状或帧内预测模式来确定预定边界。
[0268]
当假设预定边界是当前块的上边界时,对于与索引“0”或“1”对应的帧内预测方式,对于邻接当前块的上边界的子块可以不设置偏移,并且对于不与当前块的上边界邻接的子块可以设置偏移。
[0269]
当假定预定边界是当前块的左边界时,对于与索引“2”或“3”对应的帧内预测方式,对于邻接当前块的左边界的子块可以不设置偏移,并且对于不与当前块的左边界邻接的子块可以设置偏移。
[0270]
在图18中,假设针对当前块中包括的子块之一没有设置偏移,并且针对另一个子块设置了偏移。作为另一示例,可以针对当前块中包括的每个子块设置具有不同值的偏移。
[0271]
参照图19,将描述针对每个子块设置不同偏移的示例。
[0272]
参照图19,在索引为“0”或“1”的情况下,可以针对当前块中的上子块设置偏移“h”,并且可以针对当前块中的下子块设置偏移“f”。因此,可以针对上子块生成通过向第一预测样本添加偏移“h”或从第一预测样本减去偏移“h”而获得的第二预测样本(p(i,j)+h或p(i,j)-h),并且可以针对下子块生成通过向第一预测样本添加偏移“f”或从第一预测样本减去偏移“f”而获得的第二预测样本(p(i,j)+f或p(i,j)-f)。
[0273]
参照图19,当索引为“2”或“3”的情况下,可以针对当前块中的左子块设置偏移“h”,并且可以针对当前块中的右子块设置偏移“f”。因此,可以针对左子块生成通过向第一预测样本添加偏移“h”或从第一预测样本减去偏移“h”而获得的第二预测样本(p(i,j)+h或p(i,j)-h),并且可以针对右子块生成通过向第一预测样本添加偏移“f”或从第一预测样本减去偏移“f”而获得的第二预测样本(p(i,j)+f或p(i,j)-f)。
[0274]
在图18和图19中,描述了当前块被划分成具有相同大小的两个子块,然而当前块中包括的子块的数量和/或子块的大小不限于图18和图19中示出的示例。包括在当前块中的子块的数量可以是三个或更多个,并且每个子块可以具有不同的大小。
[0275]
在多个帧内预测方式可用的情况下,可用的帧内预测方式可被分成多种类别。在这种情况下,可以基于用于标识类别的第一索引和用于标识相应类别中的帧内预测方式的第二索引来选择当前块的帧内预测方式。
[0276]
参照图20,将描述基于第一索引和第二索引来确定当前块的帧内预测方式的示例。
[0277]
在图20中示出的示例中,十二种帧内预测方式可以被分类为三种类别,每种类别包括四种帧内预测方式。例如,将对应于索引0至索引3的帧内预测方式分类为类别0,将对应于索引4至索引7的帧内预测方式分类为类别1,并且将对应于索引8至索引11的帧内预测方式分类为类别2。
[0278]
解码器可以从比特流解码第一索引以指定包括至少一个帧内预测方式的类别。在图20示出的示例中,第一索引可以指定类别0、1和2中的任何一个。
[0279]
在基于第一索引指定了类别时,可以基于从比特流解码的第二索引来确定当前块的帧内预测方式。在第一索引指定类别1时,第二索引可以指定类别1中包括的四种帧内预测方式(即,索引4至索引7)中的任一种。
[0280]
在图20中,示出了每种类别包括相同数量的帧内预测方式,但是每种类别不一定必须包括相同数量的帧内预测方式。
[0281]
可以以序列或片为单位确定可用帧内预测方式的数量或类别的数量。另外,可以通过序列头或片头来用信号发送可用帧内预测方式的数量或类别的数量中的至少一个。
[0282]
作为另一示例,可以基于当前块的预测单元或编码单元的大小来确定可用帧内预测方式的数量和/或类别的数量。例如,在当前块(例如,当前块的编码单元)的大小是64
×
64或更大的情况下,可以从图21中示出的六种帧内预测方式中选择当前块的帧内预测方式。可替选地,在当前块(例如,当前块的编码单元)的大小小于64
×
64的情况下,可以从图18、图19或图20中示出的帧内预测方式中选择当前块的帧内预测方式。
[0283]
在图18至图21中,示出了每个帧内预测方式中包括的子块是矩形的。作为另一示例,可以使用其中子块的大小或形状中的至少一个不同的帧内预测方式。例如,图22示出了具有不同大小和形状的子块的帧内预测方式的示例。
[0284]
针对每个子块的偏移(例如,图18至图22中示出的针对每个子块的偏移h、f、g或i)可以从比特流解码,或者可以根据与当前块相邻的相邻样本(例如,参考样本)而得到。例如,如参考图16所描述的,根据至少一个参考样本得到的偏移可以用于子块,或者根据包括在不同参考线中的参考样本得到的偏移(参见式7和式8)可以用于子块。
[0285]
作为另一示例,可以考虑距当前块中的特定位置处的样本的距离来确定子块的偏移。例如,可以与指示当前块中的预定位置处的样本与子块中的预定位置处的样本之间的距离的值成比例地确定偏移。
[0286]
作为另一示例,可以通过向预定值添加以下值或从预定值减去以下值来确定子块的偏移,该值是基于当前块中的预定位置处的样本与子块中的预定位置处的样本之间的距离而确定的。
[0287]
作为另一示例,可以基于指示当前块中的预定位置处的样本与子块中的预定位置处的样本之间的距离的值与指示当前块的大小的值之间的比率来确定偏移。
[0288]
这里,当前块中的预定位置处的样本可以包括与当前块的左边界相邻的样本、位于当前块的上边界处的样本、与当前块的左上角相邻的样本等。
[0289]
在子块中,可以在预定单元中应用不同的偏移。具体地,可以针对子块中的每个样本来应用不同的偏移,或者可以针对每条线(行或列)或针对每多条线来应用不同的偏移。
[0290]
图23和图24示出了在子块中的预定单元中应用不同偏移的示例。
[0291]
图23的左图示出了以子块中的行为单位应用不同偏移的情况,右图示出了以子块中的列为单位应用不同偏移的示例。如图23所示出的,可以针对每条线使用不同的偏移,例如第一线中的偏移f0、第二线中的偏移f1、第三线中的偏移f2和第四线中的偏移f3。这里,如参考式8所描述的,可以基于各自属于不同参考线的参考样本之间的差值来得到f0至f3。
[0292]
可替选地,如图24中示出的,可以根据子块中的位置来不同地设置要应用至偏移的权重。例如,可以对针每条线使用不同的偏移,例如第一线中的偏移h、第二线中的偏移2h、第三线中的偏移3h、以及第四线中的偏移4h。这里,如参考式7所描述的,可以基于各自属于不同参考线的参考样本之间的差值来得到h。
[0293]
图25是示出根据应用本发明的实施方式的获得残差样本的处理的流程图。
[0294]
首先,可以获得当前块的残差系数s2510。解码器可以通过系数扫描方法获得残差系数。例如,解码器可以使用对角线扫描、z字形(jig-zag)扫描、右上扫描、垂直扫描或水平扫描来执行系数扫描,并且可以获得二维块形式的残差系数。
[0295]
可以对当前块的残差系数执行逆量化s2520。
[0296]
可以确定是否跳过对当前块的解量化的残差系数的逆变换s2530。具体地,解码器可以确定是否跳过在当前块的水平方向或垂直方向中的至少一个方向上的逆变换。在确定在当前块的水平方向或垂直方向中的至少一个方向上应用逆变换时,可以通过对当前块的解量化的残差系数进行逆变换来获得当前块的残差样本s2540。此处,可以使用dct、dst和klt中的至少之一来执行逆变换。
[0297]
在当前块的水平方向和垂直方向二者上均跳过逆变换时,不在当前块的水平方向
和垂直方向上执行逆变换。在这种情况下,可以通过使用预定值对解量化的残差系数进行缩放来获得当前块的残差样本s2550。
[0298]
跳过在水平方向上的逆变换意味着不在水平方向上执行逆变换,而是在垂直方向上执行逆变换。此时,可以在水平方向上执行缩放。
[0299]
跳过垂直方向上的逆变换意味着不在垂直方向上执行逆变换,而是在水平方向上执行逆变换。此时,可以在垂直方向上执行缩放。
[0300]
可以依赖于当前块的划分类型来确定是否可以针对当前块使用逆变换跳过技术。例如,如果通过基于二叉树的划分生成当前块,则可以针对当前块限制逆变换跳过方案。因此,在通过基于二叉树的划分生成当前块时,可以通过对当前块进行逆变换来获得当前块的残差样本。另外,在通过基于二叉树的划分生成当前块时,可以省略对指示是否跳过逆变换的信息(例如,transform_skip_flag)进行的编码/解码。
[0301]
替选地,在通过基于二叉树的划分生成当前块时,可以将逆变换跳过方案限制到水平方向或垂直方向中的至少一个方向。此处,可以基于从比特流解码的信息来确定逆变换跳过方案被限制的方向,或者可以基于当前块的大小、当前块的形状或当前块的帧内预测模式中的至少之一来自适应地确定逆变换跳过方案被限制的方向。
[0302]
例如,在当前块是宽度大于高度的非正方形块时,可以仅在垂直方向上允许逆变换跳过方案并且在水平方向上限制逆变换跳过方案。即,在当前块是2n
×
n时,在当前块的水平方向上执行逆变换,并且可以在垂直方向上选择性地执行逆变换。
[0303]
另一方面,在当前块是高度大于宽度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案并且在垂直方向上限制逆变换跳过方案。即,在当前块是n
×
2n时,在当前块的垂直方向上执行逆变换,并且可以在水平方向上选择性地执行逆变换。
[0304]
与上述示例相比,在当前块是宽度大于高度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案,并且在当前块是高度大于宽度的非正方形块时,可以仅在垂直方向上允许逆变换跳过方案。
[0305]
可以通过比特流用信号发送指示是否针对水平方向跳过逆变换的信息或者指示是否针对垂直方向跳过逆变换的信息。例如,指示是否跳过水平方向上的逆变换的信息是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”中的至少之一来确定是否跳过水平方向或垂直方向上的逆变换。
[0306]
可以设置成:依赖于当前块的划分类型跳过对当前块的任何一个方向的逆变换。例如,如果通过基于二叉树的划分生成当前块,则可以跳过水平方向或垂直方向上的逆变换。即,如果通过基于二叉树的划分生成当前块,则可以在不对指示是否跳过当前块的逆变换的信息(例如,transform_skip_flag、hor_transform_skip_flag、ver_transform_skip_flag)进行编码/解码的情况下,确定在水平方向或垂直方向中的至少一个方向上跳过当前块的逆变换。
[0307]
尽管已经基于一系列步骤或流程图描述了上述实施方式,但是它们不限制本发明的时序顺序,并且可以根据需要同时或以不同顺序执行。此外,构成上述实施方式中的框图
的部件(例如,单元、模块等)中的每一个可以由硬件设备或软件以及多个部件来实现。或者,可以通过单个硬件设备或软件来组合并实现多个部件。上述实施方式可以以程序指令的形式实现,所述程序指令可以通过各种计算机部件执行并被记录在计算机可读记录介质中。计算机可读记录介质可以包括程序命令、数据文件、数据结构等之一或其组合。计算机可读介质的示例包括诸如硬盘、软盘和磁带的磁介质、诸如cd-rom和dvd的光学记录介质、诸如光磁软盘的磁光介质、介质和专门被配置成存储和执行程序指令的硬件设备例如rom、ram、闪存等。硬件设备可以被配置成作为一个或更多个软件模块来进行操作以用于执行根据本发明的处理,反之亦然。
[0308]
工业应用性
[0309]
本发明可以应用于能够对视频进行编码/解码的电子设备。
[0310]
本技术还可以配置如下。
[0311]
(1)一种用于对视频进行解码的方法,包括:
[0312]
确定当前块的帧内预测模式;
[0313]
根据所述当前块的相邻样本得到参考样本;
[0314]
基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;
[0315]
确定所述第一预测样本的偏移;以及
[0316]
通过将所述偏移应用于所述第一预测样本来获得第二预测样本。
[0317]
(2)根据(1)所述的方法,其中:
[0318]
基于所述当前块的所述帧内预测模式来确定是否将所述偏移应用于所述第一预测样本。
[0319]
(3)根据(1)所述的方法,其中:
[0320]
基于所述参考样本的加权和来确定所述偏移。
[0321]
(4)根据(3)所述的方法,其中:
[0322]
基于距所述第一预测样本的距离来确定应用于所述参考样本中的每一个的权重。
[0323]
(5)根据(3)所述的方法,其中:
[0324]
所述参考样本包括:固定位置处的参考样本和依赖于所述第一预测样本的位置确定的参考样本。
[0325]
(6)根据(5)所述的方法,其中:
[0326]
所述固定位置处的所述参考样本包括与所述当前块的左上角相邻的参考样本,并且
[0327]
依赖于所述第一预测样本的位置确定的所述参考样本包括以下参考样本中的至少一个:与所述第一预测样本在同一水平线上的参考样本,或与所述第一预测样本在同一垂直线上的参考样本。
[0328]
(7)根据(3)所述的方法,其中:
[0329]
所述参考样本中的每一个被包括在不同的参考线中。
[0330]
(8)一种用于对视频进行编码的方法,包括:
[0331]
确定当前块的帧内预测模式;
[0332]
根据所述当前块的相邻样本得到参考样本;
[0333]
基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;
[0334]
确定所述第一预测样本的偏移;以及
[0335]
通过将所述偏移应用于所述第一预测样本来获得第二预测样本。
[0336]
(9)根据(8)所述的方法,其中:
[0337]
基于所述当前块的所述帧内预测模式来确定是否将所述偏移应用于所述第一预测样本。
[0338]
(10)根据(8)所述的方法,其中:
[0339]
基于所述参考样本的加权和来确定所述偏移。
[0340]
(11)根据(10)所述的方法,其中:
[0341]
基于距所述第一预测样本的距离来确定应用于所述参考样本中的每一个的权重。
[0342]
(12)根据(11)所述的方法,其中:
[0343]
所述参考样本包括:固定位置处的参考样本和依赖于所述第一预测样本的位置确定的参考样本。
[0344]
(13)根据(12)所述的方法,其中:
[0345]
所述固定位置处的所述参考样本包括与所述当前块的左上角相邻的参考样本,并且
[0346]
依赖于所述第一预测样本的位置确定的所述参考样本包括以下参考样本中的至少一个:与所述第一预测样本在同一水平线上的参考样本,或与所述第一预测样本在同一垂直线上的参考样本。
[0347]
(14)根据(11)所述的方法,其中:
[0348]
所述参考样本中的每一个被包括在不同的参考线中。
[0349]
(15)一种用于对视频进行解码的设备,包括:
[0350]
帧内预测单元,其被配置成:
[0351]
确定当前块的帧内预测模式;
[0352]
根据所述当前块的相邻样本得到参考样本;
[0353]
基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;
[0354]
确定所述第一预测样本的偏移;以及
[0355]
通过将所述偏移应用于所述第一预测样本来获得第二预测样本。
技术特征:
1.一种用于对视频进行解码的方法,包括:基于候选列表确定当前块的帧内预测模式,所述候选列表包括多个候选,所述多个候选是基于与所述当前块相邻的相邻块的帧内预测模式确定的;从与所述当前块相邻的相邻样本中得到用于所述当前块的帧内预测的参考样本;基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;确定用于修改所述第一预测样本的偏移;以及通过基于所述偏移修改所述第一预测样本来获得第二预测样本,其中,所述偏移是基于所述参考样本中的至少一个参考样本得到的,其中,当所述当前块的所述帧内预测模式是方向性模式时用于得到所述偏移的参考样本的数量与当所述当前块的所述帧内预测模式是非方向性模式时用于得到所述偏移的参考样本的数量是不同的,以及其中,所述非方向性模式包括dc模式。2.根据权利要求1所述的方法,其中:基于所述当前块的所述帧内预测模式是否是预定义的帧内预测模式之一,来确定是否利用所述偏移来修改所述第一预测样本。3.根据权利要求1所述的方法,其中:当使用多个参考样本来得到所述偏移时,基于所述多个参考样本的加权和来得到所述偏移,以及基于所述第一预测样本的坐标和基于所述当前块的大小得到的变量,来自适应地确定应用于所述多个参考样本的权重。4.根据权利要求3所述的方法,其中:所述多个参考样本包括:与所述第一预测样本位于同一水平线上的第一参考样本,或与所述第一预测样本位于同一垂直线上的第二参考样本。5.一种用于对视频进行编码的方法,包括:基于候选列表确定当前块的帧内预测模式,所述候选列表包括多个候选,所述多个候选是基于与所述当前块相邻的相邻块的帧内预测模式确定的;从与所述当前块相邻的相邻样本中得到用于所述当前块的帧内预测的参考样本;基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;确定用于修改所述第一预测样本的偏移;以及通过基于所述偏移修改所述第一预测样本来获得第二预测样本,其中,所述偏移是基于所述参考样本中的至少一个参考样本得到的,以及其中,当所述当前块的所述帧内预测模式是方向性模式时用于得到所述偏移的参考样本的数量与当所述当前块的所述帧内预测模式是非方向性模式时用于得到所述偏移的参考样本的数量是不同的,以及其中,所述非方向性模式包括dc模式。6.根据权利要求5所述的方法,其中:基于所述当前块的所述帧内预测模式是否是预定义的帧内预测模式之一,来确定是否利用所述偏移来修改所述第一预测样本。7.根据权利要求5所述的方法,其中:
当使用多个参考样本来得到所述偏移时,基于所述多个参考样本的加权和来得到所述偏移,以及基于所述第一预测样本的坐标和基于所述当前块的大小得到的变量,来自适应地确定应用于所述多个参考样本的权重。8.根据权利要求7所述的方法,其中:所述多个参考样本包括:与所述第一预测样本位于同一水平线上的第一参考样本,或与所述第一预测样本位于同一垂直线上的第二参考样本。9.一种视频数据的发送方法,包括:基于候选列表确定当前块的帧内预测模式,所述候选列表包括多个候选,所述多个候选是基于与所述当前块相邻的相邻块的帧内预测模式确定的;从与所述当前块相邻的相邻样本中得到用于所述当前块的帧内预测的参考样本;基于所述帧内预测模式和所述参考样本来获得所述当前块的第一预测样本;确定用于修改所述第一预测样本的偏移;通过基于所述偏移修改所述第一预测样本来获得第二预测样本;基于所述第二预测样本对所述当前块进行编码以生成比特流;以及传输包括所述比特流的所述视频数据,其中,所述偏移是基于所述参考样本中的至少一个参考样本得到的,以及其中,当所述当前块的所述帧内预测模式是方向性模式时用于得到所述偏移的参考样本的数量与当所述当前块的所述帧内预测模式是非方向性模式时用于得到所述偏移的参考样本的数量是不同的,以及其中,所述非方向性模式包括dc模式。
技术总结
提供了对视频进行编码的方法、对视频进行解码的方法和视频数据的发送方法。对视频进行解码的方法包括以下步骤:确定当前块的帧内预测模式;根据当前块的相邻样本得到参考样本;基于帧内预测模式和参考样本,获得当前块的第一预测样本;确定第一预测样本的偏移;以及通过将偏移应用于第一预测样本来获得第二预测样本。样本。样本。
技术研发人员:李培根
受保护的技术使用者:株式会社KT
技术研发日:2017.09.29
技术公布日:2023/8/30
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/