用于将预测单元划分为子单元并对预测单元进行预测的帧内预测方法及装置

文档序号:28449747发布日期:2022-01-12 04:45阅读:107来源:国知局
用于将预测单元划分为子单元并对预测单元进行预测的帧内预测方法及装置

1.在一些实施方案中,本发明涉及视频的编码和解码。更具体地,本发明涉及一种用于帧内预测的方法和装置,其中预测单元划分为子单元并在子单元中预测。


背景技术:

2.由于视频数据与音频数据或静止影像数据相比具有较大的数据量,因此在进行压缩处理之前,需要大量的硬件资源(包括存储器),从而以数据的原始形式来存储或传输数据。
3.相应地,在解码器可以接收、解压以及再现压缩的视频数据之前,存储或传输视频数据通常伴随着通过利用编码器对其进行压缩。现有的视频压缩技术包括h.264/avc和高效率视频编码(high efficiency video coding,hevc),所述高效率视频编码(hevc)使h.264/avc的编码效率提高了大约40%。
4.然而,视频影像在尺寸、分辨率和帧速率上的不断增加以及由此产生的要编码的数据量的增加需要一种与现有的压缩技术相比具有更好的编码效率改善和更高的影像质量改善的新的且优秀的压缩技术。
5.另一方面,在帧内预测中,利用位于当前块附近的先前重构样本执行预测,其中用于帧内预测的相邻样本被称为参考样本。通常,帧内预测使用参考样本以最大程度地预测当前块中的所有样本。例如,对于16
×
16块,通过利用它们的相邻样本来预测属于16
×
16块的256个样本值。由于视频中存在空间相关性,当前块样本与参考样本越接近,通常预测结果越好。因此,邻近参考样本的当前块样本会具有准确的预测值,而远离参考样本的当前块样本会导致不准确的预测值。


技术实现要素:

6.技术问题
7.本发明总体上致力于提供一种帧内预测技术,所述帧内预测技术用于将预测单元分割为子单元,以在某种程度上将用于预测当前样本的重构的相邻样本放置得更接近当前样本,并且通过利用共同的帧内预测模式来对块的子单元进行预测。
8.课题解决手段
9.本发明的至少一个方面提供了一种用于利用帧内预测来重构当前块的视频解码方法,该方法包括:确定是否将当前块分割为多个子块的步骤;在当前块分割为多个子块时,基于从比特流解码的分割信息以及当前块的宽度和高度,确定当前块的水平分割方向与竖直分割方向之间的分割方向以及子块的数量的步骤;通过利用帧内预测顺序地重构根据分割方向和子块的数量指定的子块来重构当前块的步骤;在水平方向和竖直方向上以规则间隔设置n个样本的网格,并且在当前块的子块之间的边界中对与网格的边界重合的边界执行去块滤波的步骤。
10.本发明的另一个方面提供了一种用于利用帧内预测来重构当前块的视频解码装置。所述视频解码装置包括:用于确定是否将当前块分割为多个子块的装置;用于在当前块分割为多个子块时,基于从比特流解码的分割信息以及当前块的宽度和高度,确定当前块的水平分割方向与竖直分割方向之间的分割方向以及子块的数量的装置;用于通过利用帧内预测顺序地重构根据分割方向和子块的数量指定的子块来重构当前块的装置;用于在水平和竖直方向上以规则间隔设置n个样本的网格,并且在当前块中的子块之间的边界中对与网格的边界重合的边界执行去块滤波的装置。
附图说明
11.图1是示出能够实现本发明技术的视频编码装置的框图。
12.图2是用于解释通过利用qtbttt结构来分割块的方法的示意图。
13.图3a是示出多个帧内预测模式的示意图。
14.图3b是示出包括宽角度帧内预测模式的多个帧内预测模式的示意图。
15.图4是示出能够实现本发明技术的视频解码装置的框图。
16.图5a至图5c是示出根据本发明的至少一个实施方案,在当前块被帧内预测编码时,当前块可以分割为多个子块的类型的示意图。
17.图6是示出根据本发明的至少一个实施方案的视频编码装置中帧内预测单元的示例配置的功能框图。
18.图7是根据本发明的至少一个实施方案的由视频编码装置执行的用于对视频的当前块进行帧内预测编码的方法的流程图。
19.图8是示出根据本发明的至少一个实施方案的视频解码装置中的帧内预测单元的示例配置的功能框图。
20.图9是根据本发明的至少一个实施方案的由视频解码装置执行的用于从编码视频的比特流对帧内预测编码的当前块进行解码的方法的流程图。
21.图10a和图10b是示出在生成子块的预测子块时以子块为单位顺序地进行重构的编码块的示意图。
具体实施方式
22.在下文中,将参考所附附图对本发明的一些实施方案进行详细描述。在下面的描述中,相同的附图标记优选地表示相同的元件,尽管元件在不同的附图中示出。此外,在一些实施方案的以下描述中,当认为模糊了本发明的主题时,为了清楚和简洁起见,将省略对相关的已知组件和功能的具体描述。
23.图1是示出能够实现本发明的技术的视频编码装置的框图。在下文中,将参考图1描述视频编码装置以及该装置的子组件。
24.视频编码装置可以配置为包括:图像分割单元110、预测单元120、减法器130、变换单元140、量化单元145、重排单元150、熵编码单元155、逆量化单元160、逆变换单元165、加法器170、滤波单元180和存储器190。
25.视频编码装置的各个组件可以实现为硬件或软件,或者硬件和软件的组合。另外,每个组件的功能可以通过软件来实现,而每个组件的软件功能可以实现为由微处理器来执
行。
26.视频由多个图像组成。图像分别分割为多个区域,并且对每个区域执行编码。例如,一个图像分割为一个或更多个瓦片(tile)或/和切片(slice)。这里,一个或更多个瓦片可以被定义为瓦片组。每个瓦片或/和切片分割为一个或更多个编码树单元(coding tree unit,ctu)。并且每个ctu通过树结构分割为一个或更多个编码单元(coding unit,cu)。应用于各个cu的信息被编码为cu的语法,并且共同应用于包括在一个ctu中的cu的信息被编码为ctu的语法。另外,共同应用于一个切片中的所有块的信息被编码为切片头的语法,而应用于构成一个图像的所有块的信息被编码在图像参数集(picture parameter set,pps)或图像头中。此外,由多个图像共同参考的信息被编码在序列参数集(sequence parameter set,sps)中。另外,由一个或更多个sps共同参考的信息被编码在视频参数集(video parameter set,vps)中。以相同的方式,共同应用于一个瓦片或瓦片组的信息可以被编码为瓦片头或瓦片组头的语法。
27.图像分割单元110确定编码树单元(ctu)的大小。关于ctu的大小(ctu尺寸)的信息被编码为sps或pps的语法,并且被传输至视频解码装置。
28.图像分割单元110将构成视频的每个图像分割为具有预定大小的多个编码树单元(ctu),然后使用树结构递归地分割ctu。树结构中的叶节点成为编码单元(cu),所述编码单元(cu)是编码的基本单元。
29.树结构可以是四叉树(quadtree,qt)、二叉树(binarytree,bt)、三叉树(ternarytree,tt)或者两个或更多个qt结构、bt结构和tt结构的组合,所述四叉树(qt)即上层节点(或父节点)分割为四个相同大小的下层节点(或子节点),所述二叉树(bt)即上层节点分割为两个下层节点,所述三叉树(tt)即上层节点以1:2:1的大小比率分割为三个下层节点。例如,可以使用四叉树加二叉树(quadtree plus binarytree,qtbt)结构,或者可以使用四叉树加二叉树三叉树(quadtree plus binarytree ternarytree,qtbttt)结构。这里,bttt可以统称为多类型树(multiple-type tree,mtt)。
30.图2示出qtbttt分割树结构。如图2所示,ctu可以首先分割为qt结构。可以重复四叉树分割,直到分割块的大小达到qt中允许的叶节点的最小块大小(minqtsize)。指示qt结构的每个节点是否被分割为下层的四个节点的第一标志(qt_split_flag)由熵编码单元155编码,并且用信号通知视频解码装置。当qt的叶节点不大于bt中允许的根节点的最大块大小(maxbtsize)时,可以进一步将其分割为任意一个或更多个bt结构或tt结构。在bt结构和/或tt结构中,可以存在多个分割方向。例如,可以存在水平和竖直分割相关节点的块的两个方向。如图2所示,当mtt分割开始时,通过熵编码单元155对指示节点是否被分割的第二标志(mtt_split_flag)编码并用信号通知视频解码装置,如果是,则通过熵编码单元155对指示分割方向(竖直或水平)的另一标志进行编码和/或对指示分区或分割类型(二叉或三叉)的标志进行编码并用信号通知视频解码装置。
31.替选地,在对指示每个节点是否被分割为下层的四个节点的第一标志(qt_split_flag)编码之前,可以对指示节点是否被分割的cu分割标志(split_cu_flag)编码。当cu分割标志(split_cu_flag)值指示出没有执行分割时,相应节点的块成为分割树结构中的叶节点,并且用作编码单元(cu),即是编码的基本单元。当cu分割标志(split_cu_flag)值指示出节点分割时,视频编码装置以上述方式从第一标志开始编码。
32.作为树结构的另一个示例,当使用qtbt时,可以存在两种类型的分区,包括将相关节点的块水平地分割为两个大小相等的块的类型(即,对称的水平分区)和将相关节点的块竖直地分割为两个大小相等的块的类型(即,对称的竖直分区)。由熵编码单元155编码并传输至视频解码装置的是指示bt结构的每个节点是否被分割为下层的块的分割标志(split_flag)和指示其分区类型的分区类型信息。此外,可以存在另一种类型,即相关节点的块分割为两个非对称形成的块。非对称形式可以包括相关节点的块分割为具有1:3的大小比率的两个矩形块的形式,或者相关节点的块在对角线方向上分割的形式。
33.根据ctu的qtbt或qtbttt分割,cu可以具有不同的大小。在下文中,将对应于要编码或解码的cu的块(即,qtbttt的叶节点)称为“当前块”。采用qtbttt分割,当前块的形状不仅可以是正方形,也可以是矩形。
34.预测单元120对当前块进行预测以生成预测块。预测单元120包括帧内预测单元122和帧间预测单元124。
35.通常,图像中的当前块可以分别被预测地编码。当前块的预测通常可以利用帧内预测技术或帧间预测技术来执行,其中帧内预测技术使用来自包含当前块的图像的数据,而帧间预测技术使用来自在包含当前块的图像之前已被编码的图像的数据。帧间预测包括单向预测和双向预测。
36.帧内预测单元122通过利用位于当前图像中的当前块周围的相邻像素(参考像素)来预测当前块中的像素。根据预测方向,存在多个帧内预测模式。例如,如图3a所示,多个帧内预测模式可以包括2种非方向模式(其包含平面(planar)模式、dc模式)以及65种方向模式。各个预测模式提供了相邻像素的不同对应定义和要使用的计算公式。
37.为了矩形形状的当前块的有效方向预测,可以使用额外方向模式,由如图3b通过帧内预测模式的虚线箭头在编号67至80以及编号-1至-14处所示。这些可以称为“宽角度帧内预测模式”。图3b中的箭头指示了用于预测的对应参考样本,而非预测方向。预测方向与箭头指示的方向相反。宽角度帧内预测模式是在当前块具有矩形形状时,在与特定方向模式相反的方向上执行预测而无需额外的比特传输的模式。在这种情况下,在宽角度帧内预测模式中,可以通过矩形当前块的宽度与高度的比率来确定可用于当前块中的一些宽角度帧内预测模式。例如,在当前块的矩形形状的高度小于宽度时,可以使用角度小于45度的宽角度帧内预测模式(编号67至80处的帧内预测模式)。在当前块的矩形形状的高度大于宽度时,可以使用角度为-135度或更大的宽角度帧内预测模式(编号-1至-14处的帧内预测模式)。
38.帧内预测单元122可以确定要用于对当前块编码的帧内预测模式。在一些示例中,帧内预测单元122可以通过利用若干帧内预测模式来对当前块编码,并且从测试的模式中选择要使用的适当的帧内预测模式。例如,帧内预测单元122可以通过对若干测试的帧内预测模式的率失真(rate-distortion)分析来计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式。
39.帧内预测单元122从多个帧内预测模式中选择一个帧内预测模式,并且通过利用根据选择的帧内预测模式和计算公式确定的至少一个相邻像素(参考像素)来预测当前块。关于选择的帧内预测模式的信息由熵编码单元155编码并传输至视频解码装置。
40.帧间预测单元124通过运动补偿处理来生成当前块的预测块。帧间预测单元124搜
索当前图像之前已被编码和解码的参考图像中与当前块最相似的块,并且通过利用搜索到的块来生成当前块的预测块。然后,帧间预测单元124生成与当前图像中的当前块和参考图像中的预测块之间的位移(displacement)相对应的运动矢量(motion vector)。通常,对亮度分量执行运动估计,并且基于亮度分量计算的运动矢量用于亮度分量和色度分量两者。由熵编码单元155对包括关于参考图像的信息和关于用于预测当前块的运动矢量的信息的运动信息编码,并且将其传输至视频解码装置。
41.减法器130通过将当前块减去由帧内预测单元122或帧间预测单元124生成的预测块来生成残差块。
42.变换单元140将空域中具有像素值的残差块中的残差信号变换为频域中的变换系数。变换单元140可以通过利用残差块的全尺寸作为变换单元来变换残差块中的残差信号,或者将残差块分离为两个子块,即变换区域和非变换区域,并且通过单独利用变换区域子块作为变换单元来变换残差信号。这里,变换区域子块可以是在水平轴线(或竖直轴线)上具有1:1的大小比率的两个矩形块的一个。在这种情况下,指示仅变换单个子块的标志(cu_sbt_flag)、方向(竖直/水平)信息(cu_sbt_horizontal_flag)和/或位置信息(cu_sbt_pos_flag)由熵编码单元155编码,并且用信号通知视频解码装置。此外,变换区域子块的大小在水平轴线(或竖直轴线)上可以具有1:3的大小比率。在这种情况下,由熵编码单元155对区分相应分割的标志(cu_sbt_quad_flag)额外地编码,并且用信号通知视频解码装置。
43.此外,可以定义最大和/或最小变换大小用于变换。不允许利用大小小于最小变换大小的变换单元进行变换。此外,在当前块的残差块大于最大变换大小时,变换单元140将残差块分割为大小等于或小于最大变换大小的子块,并且通过利用子块作为变换单元来执行变换。这里,最大和/或最小变换大小可以定义为布置在视频编码装置与视频解码装置之间的固定大小。替选地,关于最大和/或最小变换大小的信息可以包括在sps或pps中,并且用信号从视频编码装置通知给视频解码装置。
44.量化单元145对从变换单元140输出的变换系数进行量化,并且将量化的变换系数输出至熵编码单元155。
45.重排单元150可以用量化的变换系数执行系数值的重排。重排单元150可以利用系数扫描(coefficient scanning)来将二维系数阵列改变为一维系数序列。例如,重排单元150可以通过锯齿形扫描(zig-zag scan)或对角线扫描(diagonal scan)从dc系数扫描向高频区域中的系数对系数进行扫描,以输出一维系数序列。根据变换单元的大小和帧内预测模式,利用的锯齿形扫描可以被用于在列方向上扫描二维系数阵列的竖直扫描和用于在行方向上扫描二维块形状系数的水平扫描代替。换句话说,可以根据变换单元的大小和帧内预测模式在锯齿形扫描、对角线扫描、竖直扫描和水平扫描中确定要使用的扫描方法。
46.熵编码单元155通过利用诸如基于上下文的自适应二进制算术编码(context-based adaptive binary arithmetic code,cabac)、指数哥伦布(exponential golomb)等各种编码方法来对从重排单元150输出的一维量化的变换系数的序列进行编码,从而编码为生成比特流。
47.另外,熵编码单元155对关于块分区的信息(例如,ctu大小、cu分割标志、qt分割标志、mtt分割类型和mtt分割方向)编码,从而允许视频解码装置以与视频编码装置相同的方式来分割块。另外,熵编码单元155根据预测类型、帧内预测信息(即,关于帧内预测模式的
信息)或帧间预测信息(即,关于参考图像和运动矢量的信息)来对关于预测类型的信息编码和进一步编码,所述预测类型指示当前块是通过帧内预测还是帧间预测进行编码。
48.逆量化单元160对从量化单元145输出的量化的变换系数进行逆量化,以生成变换系数。逆变换单元165将从逆量化单元160输出的变换系数从频域变换到空域,以重构残差块。
49.加法单元170将重构的残差块和由预测单元120生成的预测块相加,以重构当前块。重构的当前块中的像素在对下一个块帧内预测时用作参考像素。
50.滤波单元180对重构的像素执行滤波,以减少由于基于块的预测和变换/量化而产生的块伪影(blocking artifacts)、振铃伪影(ringing artifacts)、模糊伪影(blurring artifacts)等。滤波单元180可以包括去块滤波器182和采样自适应偏移(sample adaptive offset,sao)滤波器184。
51.去块滤波器180对重构的块之间的边界进行滤波,以去除由逐块编码/解码而引起的块伪影,并且sao滤波器184对去块滤波的影像执行额外的滤波。sao滤波器184是用于对由有损编码引起的重构的像素与原始的像素之间的差进行补偿的滤波器。
52.重构的块通过去块滤波器182和sao滤波器184进行滤波,并且存储在存储器190中。当一个图像中的所有块被重构时,重构的图像可以用作对要编码的后续图像中的块进行帧间预测的参考图像。
53.图4是示出能够实现本发明技术的视频解码装置的功能框图。在下文中,将参考图4描述视频解码装置和该装置的子组件。
54.视频解码装置可以配置为包括:熵解码单元410、重排单元415、逆量化单元420、逆变换单元430、预测单元440、加法器450、滤波单元460和存储器470。
55.与图1的视频编码装置一样,视频解码装置的各个组件可以实现为硬件或软件、或者硬件和软件的组合。另外,每个组件的功能可以通过软件来实现,而每个组件的软件功能可以实现为由微处理器来执行。
56.熵解码单元410对由视频编码装置生成的比特流解码并提取关于块分区的信息以确定要解码的当前块,以及提取重构当前块所需的预测信息和关于残差信号的信息等。
57.熵解码单元410从序列参数集(sequence parameter set,sps)或图像参数集(picture parameter set,pps)中提取关于ctu大小的信息,确定ctu的大小,并且将图像分割为确定大小的ctu。然后,熵解码单元410将ctu确定为树结构的最高层,即根节点,并且提取关于ctu的分割信息,从而通过利用树结构来分割ctu。
58.例如,当通过利用qtbttt结构来分割ctu时,首先提取与qt分割相关的第一标志(qt_split_flag),并且将每个节点分割为下层的四个节点。对于与qt的叶节点相对应的节点,熵解码单元410提取与mtt的分区有关的第二标志(mtt_split_flag)和分割方向(竖直/水平)和/或分割类型(二叉/三叉)的信息,以通过mtt结构来分割相应的叶节点。这允许qt的叶节点下方的各个节点被递归地分割为bt或tt结构。
59.作为另一示例,当通过利用qtbttt结构来分割ctu时,熵解码单元410可以首先提取指示cu是否被分割的cu分割标志(split_cu_flag)。当分割相关块时,可以提取第一标志(qt_split_flag)。在分割过程中,每个节点可以具有零个或更多个递归qt分割,接着是零个或更多个递归mtt分割。例如,ctu可以立即进入mtt分割,或者相反,单独具有多个qt分
割。
60.作为又一示例,当通过利用qtbt结构来分割ctu时,熵解码单元410提取与qt分割相关的第一标志(qt_split_flag),以将每个节点分割为下层的四个节点。并且,对于与qt的叶节点相对应的节点,熵解码单元410提取指示该节点是否进一步分割为bt的分割标志(split_flag)以及分割方向信息。
61.此外,当熵解码单元410通过树结构分割来确定要解码的当前块时,熵解码单元410提取关于指示当前块是被帧内预测还是被帧间预测的预测类型的信息。当预测类型信息指示帧内预测时,熵解码单元410提取用于当前块的帧内预测信息(帧内预测模式)的语法元素。当预测类型信息指示帧间预测时,熵解码单元410提取帧间预测信息的语法元素,也就是说,指示运动矢量和由运动矢量参考的参考图像的信息。
62.此外,熵解码单元410提取关于当前块的量化的变换系数的信息作为关于残差信号的信息。
63.重排单元415以由视频编码装置执行的系数扫描的相反顺序,将由熵解码单元410进行熵解码的一维量化的变换系数的序列改变为二维系数阵列(即,块)。
64.逆量化单元420对量化的变换系数进行逆量化。逆变换单元430将逆量化的变换系数从频域逆变换到空域,以重构残差信号,从而生成当前块的残差块。
65.另外,当逆变换单元430仅对变换块的部分区域(子块)进行逆变换时,逆变换单元430提取指示仅变换块的子块已进行变换的标志(cu_sbt_flag)、子块的方向性(竖直/水平)信息(cu_sbt_horizontal_flag)和/或子块的位置信息(cu_sbt_pos_flag),并且将子块的变换系数从频域逆变换到空域,以重构残差信号。同时,逆变换单元430用“0”值填充没有逆变换的剩余区域作为残差信号,从而生成当前块的最终残差块。此外,在利用大小小于最小变换大小的变换单元时,不允许进行变换。此外,在当前块的残差块大于最大变换大小时,逆变换单元430将残差块分割为大小等于或小于最大变换大小的子块,并且通过利用子块作为变换单元来执行逆变换。
66.预测单元440可以包括帧内预测单元442和帧间预测单元444。在当前块的预测类型是帧内预测时,激活帧内预测单元442,而在当前块的预测类型是帧间预测时,激活帧间预测单元444。
67.帧内预测单元442根据由熵解码单元410提取的帧内预测模式的语法元素,在多个帧内预测模式中确定当前块的帧内预测模式,并且根据确定的帧内预测模式,通过利用当前块的相邻参考像素来预测当前块。由帧内预测模式的语法元素确定的帧内预测模式可以是指示如上所述的所有帧内预测模式(例如,总共67种模式)的一个的值。在当前块为矩形的情况下,可以基于当前块的宽度与高度的比率,用宽角度帧内预测模式的一个替换总共67种模式中的一些方向模式。
68.帧间预测单元444利用由熵解码单元410提取的用于帧内预测模式的语法元素来确定当前块的运动矢量和由运动矢量参考的参考图像,并且利用该运动矢量和参考图像来预测当前块。
69.加法器450将从逆变换单元输出的残差块与从帧间预测单元或帧内预测单元输出的预测块相加,以重构当前块。在对要解码的后续块进行帧内预测时,重构的当前块中的像素用作参考像素。
70.滤波单元460可以包括去块滤波器462和sao滤波器464。去块滤波器462对重构的块之间的边界执行去块滤波,以去除由逐块解码引起的块伪影。sao滤波器464在去块滤波之后对重构的块执行额外的滤波,以补偿由有损编码引起的重构的像素与原始的像素之间的差。重构的块通过去块滤波器462和sao滤波器464进行滤波,并且存储在存储器470中。当一个图像中的所有块被重构时,重构的图像用作参考图像,用于对图像内要被编码的后续块进行帧间预测。
71.本文所示的实施方案的技术通常涉及帧间预测编码,即,对当前块进行编码和解码。相应地,本发明的某些技术可以由帧内预测单元122或帧内预测单元442执行。在一些实施方案中,帧内预测单元122或帧内预测单元442执行参考以下图5至图9所述的本发明的技术。在其他实施方案中,视频编码装置或视频解码装置的一个或更多个其他单元可以进一步参与执行本发明的技术。下面的描述主要关注于解码技术,特别是视频解码装置的操作,并且将保持编码技术简洁,这是因为编码技术是全面描述的解码技术的逆操作。
72.在帧内预测中,用邻近当前块的先前重构的样本来执行预测,其中用于帧内预测的相邻样本被称为参考样本。通常,在帧内预测中,利用参考样本作为整体来预测当前块中的所有样本。例如,对于16
×
16块,通过利用它们的相邻样本来预测属于16
×
16块的256个样本值。由于视频中存在空间相关性,通常当前块样本与参考样本越接近,预测结果越好。因此,在竖直预测模式(图3b中的模式50)或水平预测模式(图3b中的模式18),邻近参考样本的当前块样本可以具有准确的预测值,而远离参考样本的当前块样本会导致不准确的预测值。
73.下面描述的帧内编码工具涉及根据cu的大小将其在竖直方向或水平方向上分割为大小相等的多个子块,并且以相同的帧内预测模式对每个子块执行预测。每个子块的重构的样本值(或预测的样本值)可用于预测下一个子块,所述每个子块的重构的样本值(或预测的样本值)迭代地应用于各个子块。例如,在当前块(cu)划分为四个平行子块时,可以根据当前块(cu)的相邻样本来预测第一子块,可以根据包括第一子块的样本的第二子块的相邻样本来预测第二子块,可以根据包括第二子块的样本的第三子块的相邻样本来预测第三子块,并且可以根据包括第三子块的样本的相邻样本来预测第四子块。这样,代替根据邻近当前块(cu)的先前编码或解码的块的样本来预测当前块(cu)的所有像素,当前块(cu)中的样本可以用于预测相同的当前块(cu)中的其他样本。
74.本发明提供的帧内编码工具的一个优点在于,与在帧内预测的普通场景中相比,重构的相邻样本趋向于更接近预测的样本。位于更接近当前样本的位置作为预测当前样本的基础,重构的相邻样本可以提高当前样本的预测的准确性。
75.1.子块分区和信号通知
76.图5a至图5c是示出根据本发明的至少一个实施方案,在当前块是帧内预测编码时,当前块可以分割为多个子块的类型的示意图。适用于本发明的帧内编码工具的最小块大小可以是4
×
8或8
×
4。另外,可以添加所有子块具有最小16个样本的约束。如图5a至图5c所示,大小为4
×
8或8
×
4的块划分为两个,而大于大小为4
×
8或8
×
4的块可以划分为4个或8个块。由于虚拟流水数据单元(virtual pipeline data unit,vpdu),可以使用帧内编码工具的cu大小会被限制成最大为64
×
64,所述虚拟流水数据单元(vpdu)是vvc的处理单元。
77.视频编码装置可以将分割标志用信号通知,该分割标志指示出当前块分割为多个
子块并通过每个子块进行帧内预测。因此,视频解码装置可以从视频数据的比特流中对分割标志解码,并且基于分割标志来确定是否分割当前块。第一值(例如“0”)的分割标志指示出当前块不分割为多个子块,而第二值(例如,“1”)的分割标志指示出当前块已分割为多个子块并通过每个子块进行帧内预测。
78.可以不进行显式信号通知(即,不从比特流进行解码),而是根据当前块的宽度和高度、当前块的面积、对变换系数进行变换所允许的最小变换大小和/或最大变换大小,通过视频解码装置来推断分割标志。
79.在至少一个实施方案中,在当前块的宽度和高度小于最小变换大小时,分割标志可以不需要从比特流中解码,而是设置为指示出当前块不分割的第一值。在另一个实施方案中,在当前块的面积(即,包括在当前块中的像素的数量)小于由最小变换大小定义的变换单元的面积(即,包括在变换单元中的像素的数量)时,分割标志可以不需要从比特流中解码,而是设置为指示出当前块不分割的第一值。在又一个实施方案中,在当前块的宽度和高度大于最大变换大小时,可以不从比特流解码分割标志。在这种情况下,可以推断出分割标志具有第二值,即,当前块已经分割为多个子块并通过每个子块进行帧内预测。替选地,可以推断出分割标志具有第一值。换句话说,在当前块的宽度和高度大于最大变换大小时,将当前块分割为多个子块并对每个子块执行帧内预测的本发明的编码工具不会应用于当前块。在又一个实施方案中,在当前块位于图像(或瓦片)的边界处时,本发明的帧内编码工具不用于当前块,并且推断分割标志具有第一值。替选地,在当前块位于图像(或瓦片)的边界处时,当前块可以伴随着使用本发明的帧内编码工具,并且由此推断分割标志具有第一值,从而消除在图像边界处对ctu进行额外块分区的需要。
80.另外,当本发明的帧内编码工具应用于当前块时,可以以各种方式提供关于子块分区的方向和数量的信息。例如,子块分区的方向和数量可以基于从比特流中提取的语法元素(例如,标志)、当前块的大小、当前块的位置、当前块的一侧的长度(即,宽度或高度)、包括在当前块中的像素的数量、当前块的帧内预测模式、最小或最大变换块的大小等来确定。
81.在一些实施方案中,在当前块分割为多个子块时,视频解码装置可以基于从比特流解码的分割信息和当前块的宽度和高度来确定分区方向和子块的数量。
82.特别地,子块的数量可以由当前块的宽度和高度来确定。例如,如表1所示,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量确定为2,在当前块的宽度和高度大于4
×
4且不等于4
×
8和8
×
4时,子块的数量可以确定为4。作为另一个示例,如表2所示,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量确定为2,在当前块的宽度和高度为8
×
n至32
×
n或n
×
8至n
×
32(这里,n》4)时,子块的数量可以确定为4。此外,对于大于32
×
n和n
×
32的当前块,子块的数量可以确定为8。
83.[表1]
[0084]
当前块大小子块的数量4
×
4未划分4
×
8和8
×
42其它4
[0085]
[表2]
[0086][0087]
可以由分割信息来确定分割方向为水平的还是为竖直的。替选地或补充地,可以基于当前块的宽度与高度的比率来确定(或推断)分割方向。例如,在当前块的宽度大于其高度时,分割方向可以确定为水平的,而在当前块的宽度小于其高度时,分割方向可以确定为竖直。
[0088]
替选地或补充地,在当前块存在于图像(或瓦片、瓦片组等)的边界处时,可以根据当前块的位置来推断子块的分割形状和数量。
[0089]
另外,可以基于包括在对当前块所确定的帧内预测模式候选(即,mpm列表)中的预测模式的方向性来确定分割方向为水平的还是为竖直的。作为示例,当相对水平的帧内预测模式(例如,图3b所示的模式3至33)(在下文中,“水平定向模式”)存在于mpm列表中或在mpm列表中占主导时,分割方向可以确定为竖直的。并且当相对竖直的帧内预测模式(例如,图3b所示的模式35至65)(在下文中,“竖直定向模式”)存在于mpm列表中或在mpm列表中占主导时,分割方向可以确定为水平的。
[0090]
2.帧内预测模式的确定
[0091]
当本发明的帧内编码工具应用于当前块时,对当前块确定的帧内预测模式可以共同应用于当前块的子块的帧内预测。
[0092]
宽角度帧内预测模式仍可以用于应用了本发明的帧内编码工具的当前块。在这种情况下,宽角度帧内预测模式可以由当前块的宽度与高度之间的比率来确定,而不是由从当前块划分的子块的宽度与高度之间的比率来确定。
[0093]
视频解码装置可以通过从比特流中对当前块的帧内预测模式信息解码来确定当前块的帧内预测模式。例如,视频解码装置从多个帧内预测模式中选择预定数量的帧内预测模式候选,并且使用当前块的帧内预测模式信息,用于从帧内预测模式候选(即,mpm列表)中确定当前块的帧内预测模式。
[0094]
可以根据分割方向为水平的还是为竖直的,以不同的方式选择帧内预测模式候选。例如,当分割方向为水平的时,可以优先于水平定向模式,选择多个帧内预测模式中的竖直定向模式作为帧内预测模式候选。另外,当分割方向为竖直时,可以优先于竖直定向模式,选择多个帧内预测模式中的水平定向模式作为帧内预测模式候选。作为另一个示例,当分割方向为水平的时,水平模式(例如,图3b的模式18)或水平定向模式可以从帧内预测模式候选的选择中排除,而当分割方向为竖直的时,竖直模式(例如,图3b的模式50)或竖直定向模式可以从帧内预测模式候选的选择中排除。
[0095]
3.以子块为单位的帧内预测块的生成
[0096]
视频解码装置通过利用对当前块所确定的帧内预测模式顺序地重构多个子块来
重构当前块。例如,视频解码装置可以通过根据子块周围的重构像素预测从多个子块中当前要重构的目标子块来生成帧内预测子块。视频解码装置可以通过从比特流中对与目标子块相对应的变换系数信息解码来重构变换系数,并且可以通过利用与目标子块相同的变换大小对变换系数进行逆量化和逆变换,从而生成具有残差信号的残差子块。视频解码装置可以通过利用帧内预测子块和残差子块来重构目标子块。特别地,重构的子块中的像素可以用于对当前块中的下一个子块进行帧内预测。通过该处理,当分割方向为水平的时,当前块的子块从包括当前块的左上样本的子块开始处理,顺序地至在向下方向的子块,当分割方向为竖直的时,顺序地至在向右方向的子块。
[0097]
在一些情况下,为了将子块的最小预测单元的宽度保持为4个样本,可能不允许1
×
n/2
×
n子块的预测依赖于当前块的先前解码的1
×
n/2
×
n子块的重构值。换句话说,当本发明的帧内编码工具应用于当前块时,允许以1
×
n和2
×
n为单位进行变换,但可能不允许以1
×
n和2
×
n为单位进行预测。例如,在竖直方向上分区的8
×
n(n》4)当前块可以分割为四个2
×
n子块。相应地,通过以2
×
n子块为单位进行重构和逆变换来生成当前块的残差信号。然而,由于不允许以2
×
n子块为单位进行预测,以具有4个样本宽度的4
×
n子块为单位对当前块进行预测。换句话说,在竖直方向上分区的8
×
n(n》4)当前块可以分割为两个4
×
n预测区域和四个2
×
n变换区域。另外,在竖直方向上划分的4
×
n当前块可以预测为4
×
n预测区域并分割为四个1
×
n变换区域。由于典型的硬件设计特征,即将帧内预测的块的结果存储为以行为单位分离在多个时钟中,存在这样的约束,这需要防止用于处理1
×
n或2
×
n块的时钟数量超过4
×
n块的时钟数量。
[0098]
4.环路滤波
[0099]
视频解码装置可以对重构的当前块执行包括去块滤波的环路滤波(in-loop filtering),并且可以将滤波的当前块存储在缓冲器(例如,图4的存储器470)中,以用作未处理的图像中要编码的帧间预测块的参考图像。
[0100]
在说明性实施方案中,视频解码装置在水平方向和竖直方向上以规则间隔在包含当前块的ctu或图像上设置m个样本的网格,并且在应用了本发明的帧内编码工具的当前块中的多个子块之间的边界中,对与网格的边界重合的边界执行去块滤波。相应地,可以不对与网格边界不重合的多个子块之间的边界执行去块滤波。例如,当以8
×
8为单位执行去块滤波时,可以仅在2
×
n(或n
×
2)或4
×
n(或n
×
4)大小的子块之间的边界中与8
×
8为单位网格的边界匹配的子块之间的边界上执行去块滤波。尽管给出了以8
×
8为单位的网格作为示例,但网格大小不一定限制于8
×
8。例如,样本的数量m可以以2n(n是自然数)的形式表示,并且可以具有4、8、16等的任意一个值。
[0101]
在一些情况下,根据子块分割方向和分区的数量,可以仅在子块之间的边界的一部分上执行环路滤波。例如,在水平方向上分割当前块的情况下,可以只执行竖直去块滤波,并且可以省略水平去块滤波。类似地,在竖直方向上分割当前块的情况下,可以只执行水平方向上的去块滤波,并且可以省略竖直方向上的去块滤波。
[0102]
在一些实施方案中,当将本发明的帧内编码工具应用于当前块时,可以确定是否以每个子块为单位执行环路滤波。因此,视频解码装置可以检查是否以每个子块为单位执行环路滤波,或者可以通过高级语法来检查是否以每个子块为单位执行环路滤波。
[0103]
在对当前块执行环路滤波时,执行环路滤波处理的方法或计算环路滤波的参数的
方法可以根据基于子块大小、位置、深度、qp等的信息项中的至少一个所计算出的准则而不同。
[0104]
例如,当本发明的帧内编码工具应用于当前块时,当前块的子块可以小于对环路滤波参数(例如,用于确定滤波器的强度的参数和用于像素变化的裁剪值)执行计算的单位。在这种情况下,可以参照当前块来计算滤波参数,而不是以子块为单位计算滤波参数,并且可以以每个子块为单位执行环路滤波。替选地,可以参照组合的每两个子块或更多个子块来计算共同滤波参数,并且这些子块可以共享共同滤波参数。
[0105]
作为另一个示例,当用于计算alf参数的单元跨越子块的边界时,可以以例如{n
×
1,1
×
n,n
×
2,2
×
n}为单位获得alf参数来执行alf。在另一个示例中,本发明通过将去块滤波配置为在当前块上曾经执行或从未执行,可以避免计算用于确定是否执行去块滤波的参数(或滤波器系数)。作为另一个示例,本发明响应于当前子块的边界是否与cu(或ctu或vpdu)的边界重合,用于自适应地改变执行环路滤波的方法或计算参数的方法。
[0106]
5.将编码的块标志用信号通知
[0107]
当本发明的帧内编码工具应用于当前块时,可以对每个子块将语法元素(例如,编码的块标志;coded block flag,cbf)用信号通知,从而指示在子块中是否存在至少一个非零系数。例如,cbf为“0”可以指示出相关子块中的所有系数都是零系数,而cbf为“1”可以指示出相关子块中存在至少一个非零系数。
[0108]
可以基于划分的子块的数量、子块的大小(宽度或高度)、帧内预测模式、块的位置、qp、包括在子块中的像素的数量等来推断cbf。例如,认为当前块的子块的至少一个cbf不为“0”。相应地,在当前块具有n个子块并且先前n-1个子块的cbf都为“0”时,第n个子块的cbf被推断为“1”,从而cbf不被显式地用信号通知。
[0109]
作为另一个示例,在给定当前块的子块的宽度或高度不大于2时,本发明的帧内编码工具可以仅在每个子块的cbf不为0时应用。在这种情况下,例如,当本发明的帧内编码工具应用于8
×
16当前块并将其划分为4个2
×
16子块时,每个子块的cbf被推断为“1”,从而不显式地用信号通知。另一方面,如果8
×
16当前块划分为两个4
×
16子块,则每个子块的cbf必须被显式地用信号通知。
[0110]
6.将量化参数用信号通知
[0111]
视频编码装置确定当前块(cu)的量化参数(quantization parameter,qp)值,并且基于qp值和qp预测值来确定当前块的德尔塔量化参数(delta quantization parameter,dqp)值。视频编码装置可以配置为将dqp值用信号通知,并且通过利用确定的qp值来量化当前块。视频编码装置可以调整当前块的qp值,从而调整应用于与当前块相关的系数块的量化程度。
[0112]
dqp被定义为当前qp(即,在当前块中使用的实际qp)与当前qp的预测值(即,qp预测值)之间的差。基于用信号通知的dqp,可以通过将dqp与qp预测值相加来重构相应的当前qp值。换句话说,在视频编码装置中,通过将当前块的实际qp减去qp预测值来计算dqp,并且在视频解码装置中,通过将接收到的dqp与qp预测值相加来重构当前块的实际qp。在一些示例中,将当前块的qp预测值定义为上侧块和左侧块的实际qp值的平均值。
[0113]
视频解码装置可以配置为接收当前量化块的dqp值,基于接收到的dqp值和qp预测值来确定当前量化块的qp值,通过利用确定的qp值对当前量化块进行逆量化。
[0114]
当本发明的帧内编码工具应用于当前块时,可以以每个子块为单位来确定dqp。在这种情况下,本发明可以检查标志以确定是否按子块单元使用dqp,或者可以通过高级语法来检查是否应用dqp。
[0115]
在一些示例中,当本发明的帧内编码工具应用于当前块时,可以对所有子块使用相同的qp。相应地,可以通过利用邻近当前块的(左侧和/或上侧)cu的qp和传输的dqp值来确定当前块的qp值。替选地,可以通过传输的dqp值和高级语法来推断当前块的qp值。
[0116]
在一些其他示例中,可以对每个子块使用不同的dqp。在这种情况下,可以通过利用对当前块确定的qp和每个子块的dqp值来确定每个子块的qp。替选地,可以通过各个子块之间的dqp来确定每个子块的qp,或者可以通过利用特定子块的qp来确定当前块的qp。
[0117]
在一些其他示例中,可以将当前块的qp用信号通知,或者可以通过高级语法来推断要使用的qp的值。
[0118]
图6是示出根据本发明的至少一个实施方案的视频编码装置中帧内预测单元的示例配置的功能框图,帧内预测单元支持本发明的帧内编码工具。如图6所示,帧内预测单元600可以包括:模式选择单元610、参考样本构建单元620、参考样本滤波单元630和预测信号生成单元640。
[0119]
模式选择器610可以确定要用于对当前块编码的帧内预测模式。例如,模式选择器610可以通过利用各种帧内预测模式对当前块编码,并且从测试的模式中选择要使用的适当的帧内预测模式。
[0120]
在一些情况下,模式选择器610可以通过利用最可能模式(mpm)处理将当前块的帧内预测模式用信号通知。例如,模式选择器610可以将邻近当前块的相邻块(例如,位于当前块的顶部的块和位于当前块左侧的块)的帧内预测模式设置为mpm候选。当不能找到两个mpm候选时,例如,当相邻块没有被帧内预测时,或者当相邻块具有相同的帧内模式时,模式选择器610可以用平面模式替换相邻块的帧内预测模式。当包括在mpm候选列表中的mpm候选的数量小于最大数量(例如,6)时,本发明可以在mpm候选列表中插入与mpm候选列表中先前插入的mpm候选不同的默认模式和与先前插入的mpm候选类似的方向模式。
[0121]
指示当前块的帧内预测模式是否与mpm候选的任意一个相同的信息(例如,mpm标志)可以通过比特流用信号通知。在当前块的帧内预测模式与mpm候选的任意一个相同时,模式选择器610可以将mpm标志设置为第一值,并且将mpm索引信息用信号通知,用于标识一致的mpm候选。替选地,模式选择器610可以首先将指示当前块的帧内预测模式是否是平面模式的标志用信号通知,否则,可以将mpm索引信息用信号通知。在当前块的帧内预测模式不匹配mpm候选时,模式选择器610可以将mpm标志设置为第二值,并且可以通过比特流将残差模式信息用信号通知,以指示剩余帧内预测模式的哪个匹配当前块的帧内预测模式。
[0122]
模式选择器610可以选择以子块为单位顺序预测当前块的本发明的帧内编码工具。在这种情况下,模式选择器610可以执行率失真分析,以确定将当前块分割为子块的方向。换句话说,模式选择器610可以确定是在水平方向上将当前块划分为多个子块,还是在竖直方向上将当前块划分为多个子块。
[0123]
当在当前块不分割为多个子块的情况下预测当前块时,模式选择器610可以将分割标志设置为指示是否分割当前块的第一值,例如“0”。当在当前块分割为多个子块之后预测当前块时,模式选择器610可以将指示是否分割当前块的分割标志设置为第二值,例如,“1”。模式选择器610可以将分割标志传输至例如图1的熵编码单元155,以将分割标志用信号通知。
[0124]
在一些情况下,除非预定的准则得到满足,否则模式选择器610可以限制使用上述本发明的帧内编码工具。例如,可以根据当前块的位置、当前块的宽度和高度、当前块的面积、最小变换大小、最大变换大小等来确定是否可以使用本发明的帧内编码工具。在这种情况下,本发明可以省略将指示是否使用帧内编码工具的分割标志用信号通知。这意味着分割标志不包括在比特流中。
[0125]
例如,在当前块小于预设大小(例如,4
×
8或8
×
4等)时,模式选择器610可以不使用本发明的帧内编码工具。作为另一个示例,在当前块的宽度和高度小于最小变换大小时,或者在当前块的面积(即,包括在当前块中的像素的数量)小于由最小变换大小定义的变换单元的面积(即,包括在变换单元中的像素的数量)时,不应用本发明的帧内编码工具,并且不将分割标志用信号通知。在这种情况下,视频解码装置将分割标志推断为指示出当前块不被分割的值。作为另一个示例,在当前块的宽度和高度大于最大变换大小时,可以省略用信号通知分割标志。在这种情况下,视频解码装置可以实现为将分割标志推断为指示出将当前块分割为多个子块并且通过每个子块进行帧内预测的值。替选地,视频解码装置可以推断出分割标志为指示出当前块不被分割为子块的值。
[0126]
当本发明的帧内编码工具应用于当前块时,子块分区的方向和数量可以基于当前块的大小、当前块的位置、当前块的一侧的长度(即,宽度或高度)、包括在当前块中的像素的数量、当前块的帧内预测模式、最小变换块或最大变换块的大小等来确定。
[0127]
可以以各种方式来提供关于子块分区的方向和数量的信息。例如,模式选择器610可以利用诸如1位标志的一个或更多个语法元素,将子块分区的方向和数量用信号通知。
[0128]
在一些情况下,子块的数量可以由当前块的宽度和高度来确定。例如,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量可以确定为2,在当前块的宽度和高度大于4
×
4且不等于4
×
8和8
×
4时,子块的数量可以确定为4。作为另一个示例,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量可以确定为2,在当前块的宽度和高度为8
×
n至32
×
n或n
×
8至n
×
32(这里,n》4)时,子块的数量可以确定为4,而对大于32
×
n或n
×
32的当前块,子块的数量可以确定为8。
[0129]
可以通过分割信息来确定分割方向为水平的还是为竖直的。替选地或补充地,可以基于当前块的宽度与高度的比率来确定(或推断)分割方向。例如,在当前块的宽度大于其高度时,分割方向可以确定为水平分割,而在当前块的宽度小于其高度时,分割方向可以确定为竖直分割。替选地或补充地,在当前块存在于图像(或瓦片、瓦片组等)的边界处时,可以根据当前块的位置来推断子块分区的形状和数量。另外,可以基于包括在对当前块确定的帧内预测模式候选(即,mpm列表)中的预测模式的方向性来确定分割方向为水平的还是为竖直的。这可以免除比特流将指示关于子块分区的形状和/或数量的信息的一个或更多个语法元素用信号通知。
[0130]
参考样本构建单元620可以检查可用的相邻样本,并且利用可用的样本来构建参要用于预测的考样本。当不存在可用的样本时,或者当不利用相邻样本执行帧内预测时,参考样本构建单元620可以任意地构建参考样本。
[0131]
参考样本滤波单元630可以确定是否执行滤波。可以基于关于当前块的大小、深
度、qp和模式的至少一个的信息来确定是否执行滤波。当需要执行滤波时,参考样本滤波单元630可以选择滤波器来执行滤波。在这种情况下,可以在比特流中将关于执行滤波的信息用信号通知。
[0132]
预测信号生成单元640可以通过根据子块周围的先前重构的像素预测多个子块中要编码的子块来生成预测子块。预测信号生成单元640可以在执行多个子块的帧内预测时,利用对当前块确定的帧内预测模式。然后,可以参照当前块的相应子块减去预测子块来生成残差子块。可以通过变换/量化处理和逆量化/逆变换处理来重构残差子块。将重构的残差子块与由预测信号生成单元640生成的预测子块相加,以生成重构的子块。特别地,当预测下一个子块时,预测信号生成单元640可以利用先前子块的重构的像素和先前重构的cu的重构的像素。
[0133]
图7是根据本发明的至少一个实施方案的由视频编码装置执行的用于对视频的当前块进行帧内预测编码的方法的流程图。
[0134]
在步骤s710,视频编码装置可以确定要用于对当前块编码的帧内预测模式。另外,视频编码装置可以确定是否应用本发明的帧内编码工具,如果是,则确定当前块在水平方向和竖直方向之间的分割方向。
[0135]
在步骤s720,视频编码装置可以对当前块的帧内预测模式和表示当前块在分割为多个子块之后是否要被预测的语法元素编码。视频编码装置可以利用最可能模式(mpm)处理,用于将当前块的帧内预测模式用信号通知。此外,视频编码装置可以将指示当前块在分割为多个子块之后是否被预测的分割标志用信号通知。
[0136]
在一些情况下,除非预定的准则得到满足,否则视频编码装置可以限制使用本发明的帧内编码工具。例如,可以根据当前块的位置、当前块的宽度和高度、当前块的面积、最小变换大小、最大变换大小等来确定是否可以使用本发明的帧内编码工具。在这种情况下,本发明可以省略在比特流中用信号通知指示是否使用本发明的帧内编码工具的分割标志。
[0137]
当本发明的帧内编码工具应用于当前块时,子块分区的方向和数量可以基于当前块的大小、当前块的位置、当前块的一侧的长度(即,宽度或高度)、包括在当前块中的像素的数量、当前块的帧内预测模式、最小变换块或最大变换块的大小等来确定。
[0138]
可以以各种方式提供关于子块分区的方向和数量的信息。例如,视频编码装置可以利用诸如1位标志的一个或更多个语法元素来将诸如子块分区的方向和/或数量的分割信息用信号通知。
[0139]
在一些情况下,子块的数量可以由当前块的宽度和高度来确定。例如,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量确定为2,在当前块的宽度和高度大于4
×
4且不等于4
×
8和8
×
4时,子块的数量可以确定为4。
[0140]
视频编码装置可以显式地将指示子块分区的方向(例如,方向为水平的还是为竖直的)的标志用信号通知。替选地或补充地,可以基于当前块的宽度与高度的比率来确定(或推断)分割方向。例如,在当前块的宽度大于其高度时,分割方向可以确定为水平分割,而在当前块的宽度小于其高度时,分割方向可以确定为竖直分割。在这种情况下,可以省略用信号通知指示分割方向的标志。
[0141]
在步骤s730,当本发明的帧内编码工具应用于当前块时,视频编码装置可以通过利用对当前块确定的帧内预测模式来对多个子块顺序地编码。
[0142]
例如,视频编码装置可以通过根据目标子块周围的先前重构的像素预测多个子块中要编码的目标子块来生成预测子块(s732)。视频编码装置可以从目标子块和预测子块生成残差子块(s734)。视频编码装置可以通过利用与目标子块相同的变换大小来变换和量化残差子块(s736)。视频编码装置可以对量化的变换系数进行熵编码(s738)。此外,视频编码装置可以通过对量化的变换系数应用逆量化/逆变换处理来重构残差子块,并且可以将重构的残差子块与预测子块相加以生成重构的子块(s738)。特别地,重构的子块中的像素可以用于对当前块中的下一个子块进行帧内预测。通过该处理,当水平分割时,从包括当前块的左上样本的子块在向下方向上顺序地处理当前块,当竖直分割时,在向右方向上顺序地处理当前块。
[0143]
在步骤s740,视频编码装置可以对重构的当前块执行去块滤波和其他处理,并且可以将滤波的当前块存储在缓冲器(例如,图1的存储器190)中,以用作对图像中要编码的未处理的块进行帧间预测的参考图像。视频编码装置可以在水平方向和竖直方向上以规则间隔设置n个样本的网格,并且在当前块中的多个子块之间的边界中对与网格边界重合的边界执行去块滤波。
[0144]
图8是示出根据本发明的至少一个实施方案的视频解码装置中的帧内预测单元的示例配置的功能框图,帧内预测单元支持本发明的帧内编码工具。如图8所示,帧内预测单元800可以包括:模式确定单元810、参考样本构建单元820、参考样本滤波单元830和预测信号生成单元840。
[0145]
模式确定单元810可以通过从比特流中对当前块的帧内预测模式信息解码来确定当前块的帧内预测模式。例如,模式确定单元810可以从多个帧内预测模式中选择预设数量的帧内预测模式候选,并且使用当前块的帧内预测模式信息以从帧内预测模式候选中确定当前块的帧内预测模式。
[0146]
模式确定单元810还可以确定是否将帧内预测编码的当前块分割为多个子块。具体地,模式确定单元810可以将当前块分割为相同大小的子块,并且通过利用与当前块的帧内预测模式相同的帧内预测模式来确定是否对各个子块执行帧内预测。
[0147]
例如,模式确定单元810可以从比特流中解码指示是否分割当前块的分割标志,并且基于分割标志来确定是否将当前块分割为多个子块。分割标志的第一值(例如,“0”)指示出当前块不被划分为子块,而分割标志的第二值(例如,“1”)指示出当前块被划分为子块并且已经通过每个子块进行了帧内预测。
[0148]
可以在不进行显式信号通知(即,不从比特流进行解码),而是根据当前块的宽度和高度、当前块的面积、对变换系数进行变换所允许的最小变换大小和/或最大变换大小的情况下,通过视频解码装置来推断分割标志。相应地,模式确定单元810可以基于当前块的宽度和高度、当前块的面积以及对变换系数进行变换所允许的最小变换大小和最大变换大小来推断分割标志的值。
[0149]
在至少一个实施方案中,在当前块的宽度和高度小于最小变换大小时,分割标志可以不需要从比特流中解码,而是设置为指示出当前块不被分割的值。在另一个实施方案中,在当前块的面积(即,包括在当前块中的像素的数量)小于由最小变换大小定义的变换单元的面积(即,包括在变换单元中的像素的数量)时,分割标志可以不需要从比特流中解码,而是设置为指示出当前块不被分割的值。在又一个实施方案中,在当前块的宽度和高度
大于最大变换大小时,分割标志可以不需要从比特流中解码,而是可以推断出分割标志具有第二值(例如,“1”),即,当前块已被分割为多个子块并且通过每个子块进行了帧内预测。替选地,相反,可以推断出分割标志具有第一值(例如,“0”),即,本发明的编码工具不适用,从而节省了将当前块分割为多个子块并且对各个子块进行帧内预测的处理。
[0150]
当本发明的编码工具应用于当前块时,模式确定单元810可以确定子块分区的方向和数量。模式确定单元810可以从比特流中提取一个或更多个语法元素,以确定子块分区的方向和数量。例如,分割方向为水平的还是为竖直的可以通过利用诸如1位标志的语法元素显式地用信号通知。相应地,模式确定单元810可以从比特流中提取指示当前块的分割方向的语法元素。
[0151]
替选地或补充地,子块分区的方向和数量可以基于当前块的大小、当前块的位置、当前块的一侧的长度(即,宽度或高度)、包括在当前块中的像素的数量、当前块的帧内预测模式、最小或最大变换块的大小等来确定或推断。
[0152]
例如,可以基于当前块的宽度与高度的比率来确定(或推断)分割方向。例如,在当前块的宽度大于其高度时,分割方向可以确定为水平分割,而在当前块的宽度小于其高度时,分割方向可以确定为竖直分割。替选地或补充地,在当前块存在于图像(或瓦片、瓦片组等)的边界处时,可以根据当前块的位置来推断子块分区的形状和数量。另外,可以基于包括在对当前块确定的帧内预测模式候选(即,mpm列表)中的预测模式的方向性来确定分割方向为水平的还是为竖直的。这可以免除比特流将指示关于子块分区的形状和/或数量的信息的一个或更多个语法元素用信号通知。
[0153]
子块的数量可以基于当前块的大小、当前块的位置、当前块的一侧的长度(即,宽度或高度)、包括在当前块中的像素的数量、当前块的帧内预测模式、最小变换块或最大变换块的大小等来确定。
[0154]
在一些情况下,子块的数量可以由当前块的宽度和高度来确定。例如,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量可以确定为2,在当前块的宽度和高度大于4
×
4且不等于4
×
8和8
×
4时,子块的数量可以确定为4。作为另一个示例,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量可以确定为2,在当前块的宽度和高度为8
×
n至32
×
n或n
×
8至n
×
32(这里,n》4)时,子块的数量可以确定为4,而对大于32
×
n和n
×
32的当前块,子块的数量可以确定为8。
[0155]
参考样本构建单元820可以检查可用的相邻样本,并且利用可用的样本来构建要用于预测的参考样本。当不存在可用的样本时,或者当不利用相邻样本执行帧内预测时,参考样本构建单元820可以任意地构建参考样本。
[0156]
参考样本滤波单元830确定是否执行滤波。可以基于关于当前块的大小、深度、qp和模式的至少一个的信息来确定是否执行滤波。当需要执行滤波时,参考样本滤波单元830可以选择滤波器来执行滤波。在这种情况下,可以从比特流中提取关于执行滤波的信息。
[0157]
预测信号生成单元840可以通过根据子块周围的先前重构的像素预测多个子块中当前要重构的子块来生成帧内预测子块。特别地,当预测下一个子块时,预测信号生成单元840可以利用先前子块的重构信号和先前重构的cu的重构信号。为了生成重构的子块,可以将帧内预测子块与来自比特流的重构残差子块相加。
[0158]
图9是根据本发明的至少一个实施方案的由视频解码装置执行的用于从编码视频
的比特流中对帧内预测编码的当前块解码的方法的流程图。
[0159]
在步骤s910,视频解码装置确定是否将帧内预测编码的当前块划分为多个子块。具体地,视频解码装置将当前块分割为相同大小的子块,并且通过利用与当前块的帧内预测模式相同的帧内预测模式来确定是否对各个子块执行帧内预测。
[0160]
例如,视频解码装置可以从比特流中解码指示是否分割当前块的分割标志,并且基于分割标志来确定是否分割当前块。分割标志的第一值(例如,“0”)可以指示出当前块不被分割为多个子块,而分割标志的第二值(例如,“1”)指示出当前块被分割为多个子块并且已经通过每个子块进行了帧内预测。
[0161]
可以在不进行显式信号通知(即,不从比特流进行解码),而是根据当前块的宽度和高度、当前块的面积、对变换系数进行变换所允许的最小变换大小和最大变换大小的情况下,通过视频解码装置来推断分割标志。相应地,视频解码装置可以基于当前块的宽度和高度、当前块的面积以及对变换系数进行变换所允许的最小变换大小和最大变换大小来推断分割标志的值。
[0162]
在步骤s920,视频解码装置可以响应于当前块何时分割为多个子块,用于基于从比特流中解码的分割信息和当前块的宽度和高度来确定当前块在水平分割方向与竖直分割方向之间的分割方向和子块的数量。
[0163]
可以通过分割信息来确定分割方向为水平的还是为竖直的。替选地或补充地,可以基于当前块的宽度与高度的比率来确定分割方向。例如,在当前块的宽度大于其高度时,分割方向可以确定为水平分割,而在当前块的宽度小于其高度时,分割方向可以确定为竖直分割。
[0164]
子块的数量可以由当前块的宽度和高度来确定。例如,在当前块的宽度和高度为4
×
8或8
×
4时,子块的数量可以确定为2,在当前块的宽度和高度大于4
×
4且不等于4
×
8和8
×
4时,子块的数量可以确定为4。
[0165]
在步骤s930,视频解码装置经由帧内预测,通过顺序地重构根据分割方向和子块的数量而分割的多个子块来重构当前块。
[0166]
例如,视频解码装置可以通过根据目标子块周围的先前重构的像素预测多个子块中要编码的目标子块来生成帧内预测子块(s932)。视频解码装置可以从比特流中对与目标子块相对应的变换系数信息解码来重构变换系数(s934),并且通过利用与目标子块相同的变换大小对变换系数进行逆量化和逆变换,以生成具有残差信号的残差子块(s939)。视频解码装置可以通过利用帧内预测子块和残差子块来重构目标子块(s938)。重构的子块中的像素可以用于对当前块中的下一个子块进行帧内预测。
[0167]
另外,在步骤s930或步骤s930之前,视频解码装置可以从比特流中对当前块的帧内预测模式信息解码,以确定当前块的帧内预测模式。例如,视频解码装置可以从多个帧内预测模式中选择预设数量的帧内预测模式候选(即,mpm候选),并且利用当前块的帧内预测模式信息以从mpm候选中确定当前块的帧内预测模式。可以根据分割方向为水平的还是为竖直的来以不同的方式选择帧内预测模式候选。例如,当分割方向为水平的时,可以优先于水平定向模式,在多个帧内预测模式中选择竖直定向模式作为mpm候选。另外,当分割方向为竖直时,可以优先于竖直定向模式,在多个帧内预测模式中选择水平定向模式作为mpm候选。
[0168]
此外,在步骤s930或步骤s930之前,视频解码装置可以基于目标子块在当前块中的位置和子块的数量,从比特流中对指示非零变换系数是否存在于目标子块中的子块标志解码。在这种情况下,当子块标志指示出非零变换系数存在于目标子块中时,视频解码装置可以从比特流中重构与目标子块相对应的变换系数。除非从比特流中对子块标志解码,否则视频解码装置可以将子块标志设置为指示出非零变换系数存在于子块中的值。
[0169]
在步骤s940,视频解码装置可以对重构的当前块执行去块滤波,并且可以将滤波的当前块存储在缓冲器(例如,图4的存储器470)中,以用作对图像中要编码的未处理的块进行帧间预测的参考图像。视频解码装置可以在水平方向和竖直方向上以规则间隔设置n个样本的网格,并且在当前块中的多个子块之间的边界中对与网格边界重合的边界执行去块滤波。
[0170]
此外,当根据上述帧内编码工具以子块为单位对块(cu)顺序地编码时,在生成子块的预测信号(要与相关残差信号相加)时,可以执行帧内预测和帧间预测两者。图10a和图10b是示出在生成第二子块的预测子块时处于重构处理的具有首先被重构的第一子块以及第二子块的编码块的示意图。
[0171]
如图10a所示,在第一子块已被重构且编码块(cu)的第二子块处于重构处理的情况下,对以帧内预测模式对第二子块进行帧内预测的预测子块1010和对第二子块进行帧间预测的预测子块1020执行加权和(或加权平均),从而生成第二子块的最终预测子块1030(要与相关残差信号相加)。这里,对于以子块为单位的帧间预测,可以单独以子块为单位将运动信息用信号通知,或者对编码块(cu)用信号通知的运动信息可以共同用于cu的所有子块。
[0172]
当以子块为单位顺序地重构cu时,可以在各个子块的重构处理中使用来自对cu进行帧间预测的预测块1060。如图10b所示,在第一子块已被重构且编码块(cu)的第二子块处于重构处理的情况下,对(1)与第二子块相对应并从预测块1060提取的预测子块,以及(2)从对第二子块进行帧内预测而生成的预测子块1010执行加权和(或加权平均),从而生成第二子块的最终预测子块1030。cu的预测块1060可能必须在生成第一子块的最终预测子块之前生成并且存储在缓冲器中,直到生成第四子块的最终预测子块。
[0173]
因此,在一些实施方案中,当上述帧内编码工具应用于当前块时,视频解码装置可以通过以下步骤按照处理要重构的目标子块的方式,以子块为单位顺序地重构当前块:生成其帧内预测子块和帧间预测子块;对两个预测子块执行加权平均,以生成目标子块的最终预测子块;将最终预测子块与从比特流解码的残差子块相加。这可以重构目标子块。
[0174]
应当理解的是,以上描述呈现了可以以各种其他方式实现的说明性实施方案。在一些实施方案中描述的功能可以通过硬件、软件、固件和/或它们的组合来实现。应当理解的是,本说明书中描述的功能组件已被标记为“...单元”,以突出强调它们的独立可实现性。
[0175]
另一方面,本发明中描述的各种方法或功能可以实现为存储在非易失性记录介质中的指令,所述指令可以由一个或更多个处理器读取和执行。非易失性记录介质包括例如以计算机系统可读取的形式存储数据的所有类型的记录装置。例如,非易失性记录介质可以包括存储介质,例如可擦除可编程只读存储器(eprom)、闪存驱动器,光盘驱动器、磁性硬盘驱动器和固态驱动器(ssd)等等。
[0176]
尽管出于说明的目的描述了本发明的示例性实施方案,但是本领域技术人员将理解的是,在不脱离要求保护的本发明思想和范围的情况下,可以进行各种修改、添加和替换。因此,出于简洁和清楚起见,描述了本发明的示例性实施方案。本发明的技术思想的范围不受例示的限制。相应地,普通技术人员应当理解的是,要求保护的本发明的范围不受以上明确描述的实施方案的限制,而是受权利要求及其等同形式的限制。
[0177]
相关申请的交叉引用
[0178]
本技术要求2019年3月12日提交的韩国专利申请no.10-2019-0028356的优先权,该申请的全部内容通过引用合并于本文中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1