图像编码/解码方法、图像数据的发送方法以及存储介质与流程
未命名
10-08
阅读:85
评论:0

图像编码/解码方法、图像数据的发送方法以及存储介质
1.本技术是原案申请号为201880005160.1的发明专利申请(国际申请号:pct/kr2018/000031,申请日:2018年1月2日,发明名称:图像编码/解码方法、设备以及用于存储比特流的记录介质)的分案申请。
技术领域
2.本发明涉及一种用于对图像进行编码/解码的方法和设备。具体地,本发明涉及一种用于使用帧内预测对图像进行编码/解码的方法和设备、以及存储由本发明的图像编码方法/设备所生成的比特流的记录介质。
背景技术:
3.近来,在各种应用领域中对诸如高清晰度(hd)图像和超高清(uhd)图像的高分辨率和高质量图像的需求已经增加。然而,与传统图像数据相比,更高分辨率和质量的图像数据具有增加的数据量。因此,当通过使用诸如传统有线和无线宽带网络的介质发送图像数据时,或者当通过使用传统存储介质存储图像数据时,发送和存储的成本增加。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,需要高效图像编码/解码技术以用于更高分辨率和更高质量的图像。
4.图像压缩技术包括各种技术,包括:帧间预测技术,从当前画面的先前画面或后续画面预测包括在当前画面中的像素值;帧内预测技术,通过使用当前画面中的像素信息来预测包括在当前画面中的像素值;变换和量化技术,用于压缩残差信号的能量;熵编码技术,将短码分配给具有高出现频率的值并将长码分配给具有低出现频率的值;等等。可通过使用这样的图像压缩技术有效地压缩图像数据,并且可以发送或存储图像数据。
技术实现要素:
5.技术问题
6.本发明的一个目的是提供一种用于对图像进行编码和解码以提高压缩效率的方法和设备以及一种存储由本发明的图像编码方法/设备生成的比特流的记录介质。
7.本发明的另一目的是提供一种用于使用帧内预测对图像进行编码和解码以提高压缩效率的方法和设备以及一种存储由本发明的图像编码方法/设备生成的比特流的记录介质。
8.本发明的另一目的是提供一种用于使用多个最有可能模式(mpm)列表执行帧内预测来对图像进行编码和解码的方法和设备以及一种存储由本发明的图像编码方法/设备生成的比特流的记录介质。
9.技术方案
10.根据本发明的图像解码方法可包括:构建用于当前块的n个mpm列表,其中,n等于或大于1;基于所述n个mpm列表来推导当前块的帧内预测模式;并且基于所述帧内预测模式对当前块执行帧内预测。
11.在根据本发明的图像解码方法中,所述n个mpm列表可包括当前块的mpm列表、当前块的上级块的mpm列表和当前块的邻近块的mpm列表之中的至少一个。
12.在根据本发明的图像解码方法中,所述上级块的分区深度可小于当前块的分区深度,并且所述上层块可包括当前块。
13.在根据本发明的图像解码方法中,所述邻近块的分区深度或尺寸可等于当前块的分区深度或尺寸,并且所述邻近块可以是与当前块的左上侧、上侧、右上侧、左侧和左下侧之中的至少一个相邻的块。
14.在根据本发明的图像解码方法中,所述n个mpm列表可根据预定顺序被构建,并且所述预定顺序可基于当前块的编码参数被确定。
15.在根据本发明的图像解码方法中,mpm标志可针对所述n个mpm列表中的至少一部分被解码,并且所述mpm标志可指示当前块的帧内预测模式是否被包括在相应的mpm列表中。
16.在根据本发明的图像解码方法中,在关于按照所述预定顺序的第k个mpm列表的mpm标志具有第一值的情况下,关于在第k个mpm列表之后的mpm列表的mpm标志可不被解码,其中,k是等于或大于1且等于或小于n-1的整数。
17.在根据本发明的图像解码方法中,关于按照所述预定顺序较早构建的mpm列表的mpm标志的可变长度码可短于关于按照所述预定顺序较晚构建的mpm列表的mpm标志的可变长度码。
18.在根据本发明的图像解码方法中,在关于第k个mpm列表的mpm标志具有第一值的情况下,mpm索引可被解码,并且所述mpm索引可指示包括在第k个mpm列表中的mpm候选模式之中的当前块的帧内预测模式。
19.根据本发明的图像编码方法可包括:确定当前块的帧内预测模式;构建用于当前块的n个mpm列表,其中,n等于或大于1;并且基于所述n个mpm列表对当前块的帧内预测模式进行编码。
20.在根据本发明的图像编码方法中,所述n个mpm列表可包括当前块的mpm列表、当前块的上级块的mpm列表和当前块的邻近块的mpm列表之中的至少一个。
21.在根据本发明的图像编码方法中,所述上级块的分区深度可小于当前块的分区深度,并且所述上层块可包括当前块。
22.在根据本发明的图像编码方法中,所述邻近块的分区深度或尺寸可等于当前块的分区深度或尺寸,并且所述邻近块可以是与当前块的左上侧、上侧、右上侧、左侧和左下侧之中的至少一个相邻的块。
23.在根据本发明的图像编码方法中,所述n个mpm列表可根据预定顺序被构建,并且所述预定顺序可基于当前块的编码参数被确定。
24.在根据本发明的图像编码方法中,mpm标志可针对所述n个mpm列表中的至少一部分被编码,并且所述mpm标志可指示当前块的帧内预测模式是否被包括在相应的mpm列表中。
25.在根据本发明的图像编码方法中,在关于按照所述预定顺序的第k个mpm列表的mpm标志具有第一值的情况下,关于在第k个mpm列表之后的mpm列表的mpm标志可不被编码,其中,k是等于或大于1且等于或小于n-1的整数。
26.在根据本发明的图像编码方法中,关于按照所述预定顺序较早构建的mpm列表的mpm标志的可变长度码可短于关于按照所述预定顺序较晚构建的mpm列表的mpm标志的可变长度码。
27.在根据本发明的图像编码方法中,在关于第k个mpm列表的mpm标志具有第一值的情况下,mpm索引可被编码,并且所述mpm索引可指示包括在第k个mpm列表中的mpm候选模式之中的当前块的帧内预测模式。
28.根据本发明的计算机可读记录介质可存储通过本发明的图像编码方法所生成的比特流。
29.有益效果
30.根据本发明,可提供一种提高压缩效率的图像编码/解码方法和设备以及一种存储由本发明的图像编码方法/设备生成的比特流的记录介质。
31.并且,根据本发明,可提供一种提高压缩效率的使用帧内预测的图像编码/解码方法和设备以及一种存储由本发明的图像编码方法/设备生成的比特流的记录介质。
32.并且,根据本发明,可提供一种用于使用多个mpm列表执行帧内预测的图像编码/解码方法和设备以及一种存储由本发明的图像编码方法/设备生成的比特流的记录介质。
附图说明
33.图1是示出根据本发明的实施例的编码设备的配置的框图。
34.图2是示出根据本发明的实施例的解码设备的配置的框图。
35.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。
36.图4是示出帧内预测处理的示图。
37.图5是说明根据本发明的实施例的对当前块执行帧内预测的方法的示图。
38.图6是描述当前块、上层块和邻近块的示例性示图。
39.图7是描述可用于当前块的帧内预测的邻近重建样点线的示例性示图。
40.图8是描述构建针对包括在当前块中的子块的参考样点的实施例的示图。
41.图9是描述使用可用重建样点来替换不可用重建样点的方法的示图。
42.图10是说明根据当前块的形状的帧内预测的示例性示图。
具体实施方式
43.可对本发明做出各种修改,并且存在本发明的各种实施例,其中,现在将参照附图提供所述各种实施例的示例并且将详细描述所述各种实施例的示例。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同形式或替换形式。相似的参考标号指在各方面相同或相似的功能。在附图中,为了清楚起见,元件的形状和尺寸可被夸大。在本发明的以下详细描述中,对通过图示的方式示出本发明可被实践的具体实施例的附图进行参照。这些实施例被足够详细地描述以使本领域技术人员能够实施本公开。应该理解,本公开的各种实施例尽管不同,但不必是相互排他的。例如,在不脱离本公开的精神和范围的情况下,这里描述的与一个实施例关联的特定特征、结构和特性可在其它实施例中被实施。此外,应该理解,在不脱离本公开的精神和范围的情况下,每个公开的实施例内的各个元件的位置或布置可被修改。因此,以下详细描述并不用以
限制的含义,本公开的范围仅由所附权利要求(在合适的解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
44.在说明书中使用的术语“第一”、“第二”等可被用于描述各种组件,但这些组件并不被解释为受限于所述术语。所述术语仅被用于将一个组件与另一组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被称为“第二”组件,并且“第二”组件也可被类似地称为“第一”组件。术语“和/或”包括多个项的组合或者是多个项中的任意一项。
45.将理解的是,在本说明书中,当元件被简单地称为“连接到”或“结合到”另一元件而不是“直接连接到”或“直接结合到”所述另一元件时,它可以“直接连接到”或“直接结合到”所述另一元件,或者是在其他元件介于所述元件与所述另一元件之间的情况下连接到或结合到所述另一元件。相反,应该理解,当元件被称为“直接结合”或“直接连接”到另一元件时,不存在中间元件。
46.此外,在本发明的实施例中示出的组成部件被独立地示出,以便呈现彼此不同的特性功能。因此,这并不意味着每个组成部件以单独的硬件或软件的组成单元被组成。换句话说,为了方便,每个组成部件包括枚举的组成部件中的每一个。因此,每个组成部件中的至少两个组成部件可被组合形成一个组成部件,或者一个组成部件可被划分为多个组成部件以执行每个功能。在没有脱离本发明的本质的情况下,每个组成部件被组合的实施例以及一个组成部件被划分的实施例也被包括在本发明的范围中。
47.在本说明书中使用的术语仅用于描述具体实施例,而不旨在限制本发明。以单数使用的表达包括复数表达,除非它在上下文中具有明显不同的含义。在本说明书中,将理解,诸如“包括...的”、“具有...的”等的术语旨在指明说明书中所公开的特征、数量、步骤、动作、元件、部件、或其组合的存在,而并不旨在排除一个或更多个其它特征、数量、步骤、动作、元件、部件、或其组合可能存在或者可能被添加的可能性。换句话说,当特定元件被称为“被包括”时,除相应元件以外的元件并不被排除,而是,另外的元件可被包括在本发明的实施例中或者是本发明的范围中。
48.此外,一些组成元件可能不是执行本发明的必要功能的不可缺的组成元件,而是仅提升其性能的可选组成元件。可通过仅包括用于实施本发明的实质的不可缺的组成部件而排除在提升性能时使用的组成元件来实施本发明。仅包括所述不可缺的组成元件而排除在仅提升性能时使用的可选组成元件的结构也被包括在本发明的范围中。
49.在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知功能或结构,这是因为它们会不必要地模糊对本发明的理解。附图中的相同的组成元件通过相同的参考标号来表示,并且对相同元件的重复描述将被省略。
50.在下文中,图像可意为构成视频的画面,或者可意为视频本身。例如,“对图像进行编码或解码或者进行编码和解码两者”可意为“对运动画面进行编码或解码或者进行编码和解码两者”,并且可意为“对运动画面的多个图像之中的一个图像进行编码或解码或者进行编码和解码两者”。
51.在下文中,术语“运动画面”和“视频”可被用作相同的含义并且可彼此替换。
52.在下文中,目标图像可以是作为编码目标的编码目标图像和/或作为解码目标的解码目标图像。此外,目标图像可以是被输入到编码设备的输入图像、以及被输入到解码设备的输入图像。这里,目标图像可以与当前图像具有相同的含义。
53.在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用作相同的含义并且可彼此替换。
54.在下文中,目标块可以是作为编码目标的编码目标块和/或作为解码目标的解码目标块。此外,目标块可以是作为当前编码和/或解码的目标的当前块。例如,术语“目标块”和“当前块”可被用作相同的含义并且可彼此替换。
55.在下文中,术语“块”和“单元”可被用作相同的含义并且可彼此替换。或者,“块”可表示特定单元。
56.在下文中,术语“区域”和“片段”可彼此替换。
57.在下文中,特定信号可以是表示特定块的信号。例如,原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残余块的信号。
58.在实施例中,特定信息、数据、标志、索引、元素和属性等中的每一个可具有值。等于“0”的信息、数据、标志、索引、元素和属性的值可表示逻辑假或第一预定义值。换句话说,值“0”、假、逻辑假和第一预定义值可彼此替换。等于“1”的信息、数据、标志、索引、元素和属性的值可表示逻辑真或第二预定义值。换句话说,值“1”、真、逻辑真和第二预定义值可彼此替换。
59.当变量i或j用于表示列、行或索引时,i的值可以是等于或大于0的整数,或者是等于或大于1的整数。也就是说,列、行、索引等可从0开始计数,也可以从1开始计数。
60.术语描述
61.编码器:意为执行编码的设备。也就是说,意为编码设备。
62.解码器:意为执行解码的设备。也就是说,意为解码设备。
63.块:是m
×
n矩阵的样点。这里,m和n可意为正整数,并且块可意为二维形式的样点矩阵。块可指示单元。当前块可意为在编码时成为目标的编码目标块,或者在解码时成为目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
64.样点:是组成块的基本单元。它可被表示为根据比特深度(bd)从0至2
bd-1的值。在本发明中,样点可被用作像素的含义。也就是说,样点、pel、像素可具有彼此相同的含义。
65.单元:可指示编码和解码单元。在对图像进行编码和解码时,单元可以是通过对单个图像进行分区而生成的区域。此外,单元可意为在编码或解码期间当单个图像被分区为多个子划分单元时的子划分单元。也就是说,图像可被分区为多个单元。在对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为尺寸比该单元的尺寸更小的子单元。依据功能,单元可意为块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种尺寸和形状,具体而言,单元的形状可以是二维几何图形,诸如正方形形状、矩形形状、梯形形状、三角形形状、五边形形状等。此外,单元信息可包括单元类型(指示编码单元、预测单元、变换单元等)、单元尺寸、单元深度、对单元进行编码和解码的顺序等中的至少一个。
66.编码树单元:被配置有亮度分量y的单个编码树块以及与色度分量cb和cr相关的两个编码树块。此外,编码树单元可意为包括所述块和每个块的语法元素。每个编码树单元可通过使用四叉树分区方法和二叉树分区方法中的至少一种分区方法被分区,以构成诸如
编码单元、预测单元、变换单元等的下级单元。编码树单元可被用作用于指定在对作为输入图像的图像进行编码/解码时成为处理单元的样点块的术语。
67.编码树块:可用作用于指定y编码树块、cb编码树块和cr编码树块中的任意一个的术语。
68.邻近块:可意为与当前块相邻的块。与当前块相邻的块可意为与当前块的边界接触的块,或者位于距当前块预定距离内的块。邻近块可意为与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可意为与和当前块水平相邻的邻近块垂直相邻的块,或者意为与和当前块垂直相邻的邻近块水平相邻的块。
69.重建邻近块:可意为与当前块相邻并已在空间上/时间上被编码或解码的邻近块。这里,重建邻近块可意为重建邻近单元。重建空间邻近块可以是当前画面内的已通过编码或解码或编码和解码两者而被重建的块。重建时间邻近块是参考画面内的与当前画面的当前块位于相应位置处的块或该块的邻近块。
70.单元深度:可意为单元的被分区程度。在树结构中,最高节点(根节点)可与未被分区的第一单元相应。此外,最高节点可具有最小深度值。在这种情况下,最高节点可具有等级0的深度。具有等级1的深度的节点可表示通过对第一单元进行一次分区而生成的单元。具有等级2的深度的节点可表示通过对第一单元进行两次分区而生成的单元。具有等级n的深度的节点可表示通过对第一单元进行n次分区而生成的单元。叶节点可以是最低节点和不能被进一步分区的节点。叶节点的深度可以是最大等级。例如,最大等级的预定义值可以是3。根节点的深度可以是最低的,并且叶节点的深度可以是最深的。此外,当单元被表示为树结构时,单元存在的等级可表示单元深度。
71.比特流:可意为包括编码图像信息的比特流。
72.参数集:与比特流内的配置之中的头信息相应。参数集可包括视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个参数集。此外,参数集可包括条带头信息和并行块(tile)头信息。
73.解析:可意为通过执行熵解码来确定语法元素的值,或者可意为熵解码本身。
74.符号:可意为编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。此外,符号可意为熵编码目标或熵解码结果。
75.预测模式:可以是指示利用帧内预测编码/解码的模式或利用帧间预测编码/解码的模式的信息。预测单元:可意为当执行预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿以及运动补偿)时的基本单元。单个预测单元可被分区为具有更小尺寸的多个分区或者可被分区为多个下级预测单元。多个分区可以是执行预测或补偿的基本单元。通过对预测单元进行划分而生成的分区也可以是预测单元。
76.预测单元分区:可意为通过对预测单元进行分区而获得的形状。
77.变换单元:可意为当对残差信号执行编码/解码(诸如变换、逆变换、量化、反量化以及变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有更小尺寸的多个下级变换单元。这里,变换/逆变换可包括第一变换/第一逆变换和第二变换/第二逆变换之中的至少一个。
78.缩放:可意为将变换系数等级乘以因子的过程。可通过对变换系数等级进行缩放来生成变换系数。缩放也可被称为反量化。
79.量化参数:可意为在量化期间当生成变换系数的变换系数等级时使用的值。量化参数也可意为在反量化期间当通过对变换系数等级进行缩放来生成变换系数时使用的值。量化参数可以是被映射在量化步长大小上的值。
80.变量增量(delta)量化参数:可意为在编码/解码目标单元的量化参数与预测出的量化参数之间的差值。
81.扫描:可意为将单元、块或矩阵中的系数进行排序的方法。例如,将二维矩阵系数改变成一维矩阵可被称为扫描,并且将一维矩阵系数改变成二维矩阵可被称为扫描或逆扫描。
82.变换系数:可意为在编码器中执行变换之后生成的系数值。变换系数可意为在解码器中执行熵解码和反量化中的至少一个之后生成的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或量化的变换系数等级也可落入变换系数的含义内。
83.量化的等级:可意为通过在编码器中对变换系数或残差信号进行量化而生成的值。可选地,量化的等级可意为作为在解码器中进行反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落入量化的等级的含义中。
84.非零变换系数:可意为具有非0的值的变换系数或具有非0的值的变换系数等级。
85.量化矩阵:可意为在执行的量化处理或反量化处理中使用以提高主观图像质量或客观图像质量的矩阵。量化矩阵也可被称为缩放列表。
86.量化矩阵系数:可意为量化矩阵中的每个元素。量化矩阵系数也可被称为矩阵系数。
87.默认矩阵:可意为在编码器或解码器中被初步定义的预定量化矩阵。
88.非默认矩阵:可意为在编码器或解码器中未被初步定义、而是由用户用信号发送的量化矩阵。
89.统计值:关于具有可计算特定值的变量、编码参数、常数值等之中的至少一个的统计值可以是相应特定值的平均值、加权平均值、加权和值、最小值、最大值、最常见值、中值、插值中的一个或更多个。
90.图1是示出根据被应用了本发明的实施例的编码设备的配置的框图。
91.编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对至少一个图像进行编码。
92.参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180以及参考画面缓冲器190。
93.编码设备100可通过使用帧内模式或帧间模式或帧内模式和帧间模式两者来执行对输入图像的编码。此外,编码设备100可通过对输入图像进行编码来生成包括编码信息的比特流,并输出生成的比特流。生成的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可切换到帧内。可选地,当帧间模式被用作预测模式时,切换器115可切换到帧间模式。这里,帧内模式可意为帧内预测模式,并且帧间模式可意为帧间预测模式。编码设备100可生成用于输入图像的输入块的预测块。此外,在生成预测块之后,编码设备100可使用输入块和预测块的残差对残差块进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为
当前编码目标的当前块或者被称为编码目标块。
94.当预测模式是帧内模式时,帧内预测单元120可使用已被编码/解码的与当前块相邻的块的像素值作为参考像素。帧内预测单元120可通过使用参考像素来针对当前块执行空间预测,或者通过执行空间预测来生成输入块的预测样点。这里,帧内预测可意为帧内部的预测。
95.当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像检索与输入块最优匹配的区域,并通过使用检索到的区域来推导运动矢量。在这种情况下,搜索区域可被用作所述区域。参考图像可被存储在参考画面缓冲器190中。这里,当执行了对参考图像的编码/解码时,参考图像可被存储在参考画面缓冲器190中。
96.运动补偿单元112可通过使用运动矢量执行针对当前块的运动补偿来生成预测块。这里,帧间预测可意为帧之间的预测或运动补偿。
97.当运动矢量的值不是整数时,运动预测单元111和运动补偿单元112可通过将插值滤波器应用于参考画面的部分区域来生成预测块。为了对编码单元执行画面间预测或运动补偿,可确定跳过模式、合并模式、高级运动矢量预测(amvp)模式和当前画面参考模式之中的哪个模式被用于包括在相应编码单元中的预测单元的运动预测和运动补偿。然后,可依据确定的模式不同地执行画面间预测或运动补偿。
98.减法器125可通过使用输入块和预测块的残差来生成残差块。残差块可被称为残差信号。残差信号可意为原始信号和预测信号之间的差。此外,残差信号可以是通过对原始信号和预测信号之间的差进行变换或量化或者是进行变换和量化而生成的信号。残差块可以是块单元的残差信号。
99.变换单元130可通过对残差块执行变换来生成变换系数,并可输出所生成的变换系数。这里,变换系数可以是通过对残差块执行变换而生成的系数值。在应用变换跳过模式时,变换单元130可跳过对残差块的变换。
100.可通过对变换系数或残差信号应用量化来生成量化的等级。在下文中,量化的等级在实施例中还可被称为变换系数。
101.量化单元140可通过根据参数对变换系数或残差信号进行量化来生成量化的等级,并可输出所生成的量化的等级。这里,量化单元140可通过使用量化矩阵来对变换系数进行量化。
102.熵编码单元150可通过根据概率分布对由量化单元140计算出的值或对在执行编码时计算出的编码参数值执行熵编码来生成比特流,并输出生成的比特流。熵编码单元150可对图像的样点信息和用于对图像进行解码的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素。
103.当熵编码被应用时,符号被表示使得较少量比特被分配给具有高生成机会的符号并且较大量比特被分配给具有低生成机会的符号,并且因此可减少用于将被编码的符号的比特流的大小。熵编码单元150可使用诸如指数哥伦布、上下文自适应变长编码(cavlc)、上下文自适应二进制算术编码(cabac)等的用于熵编码的编码方法。例如,熵编码单元150可通过使用变长编码/码(vlc)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法以及目标符号/二进制位的概率模型,并且通过使用推导出的二值化方法和上下文模型来执行算术编码。
104.为了对变换系数等级进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变成一维矢量形式。
105.编码参数可包括在编码器中被编码并被用信号发送到解码器的诸如语法元素的信息(标志、索引等)以及在执行编码或解码时推导出的信息。编码参数可意为在对图像进行编码或解码时所需要的信息。例如,编码参数可包括以下项中的至少一个值或以下项的组合形式:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、预测模式(帧内预测或帧间预测)、帧内预测模式/方向、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧间预测模式、运动信息、运动矢量、参考画面索引、帧间预测角度、帧间预测指示符、预测列表使用标志、参考画面列表、参考画面、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小,运动矢量的表示精度、变换类型、变换尺寸、是否使用初次(首次)变换的信息、是否使用二次变换的信息、初次变换索引、二次变换索引、是否存在残差信号的信息、编码块模式、编码块标志(cbf)、量化参数、量化矩阵、是否应用环路内滤波器、环路内滤波器系数、环路内滤波器抽头、环路内滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环路滤波器、自适应环路滤波器系数、自适应环路滤波器抽头、自适应环路滤波器形状/形式、二值化/反二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁路二进制位、变换系数、变换系等级、量化的等级、变换系数等级扫描方法、图像显示/输出顺序、条带标识信息、条带类型、条带分区信息、并行块标识信息、并行块类型、并行块分区信息、画面类型、比特深度、关于亮度信号的信息或关于色度信号的信息。
106.这里,用信号发送标志或索引可意为相应标志或索引被编码器熵编码并被包括在比特流中,并且可意为相应标志或索引被解码器从熵解码。
107.当编码设备100通过帧间预测执行编码时,经过编码的当前图像可被用作针对将被随后处理的另一图像的参考图像。因此,编码设备100可对经过编码的当前图像进行重建或解码,或者将重建或解码的图像作为参考图像存储在参考画面缓冲器190中。
108.量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可由加法器175将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加,可生成重建块。这里,经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数可意为被执行了反量化和逆变换中的至少一个的系数,并且可意为重建残差块。
109.重建块可通过滤波器单元180。滤波器单元180可向重建样点、重建块或重建图像应用去块滤波器、样点自适应偏移(sao)以及自适应环路滤波器(alf)中的至少一个。滤波器单元180可被称为环内滤波器。
110.去块滤波器可去除在块之间的边界中生成的块失真。为了确定是否应用去块滤波
器,可基于被包括在块中所包括的若干行或列中的样点来确定是否将去块滤波器应用于当前块。当去块滤波器被应用于块时,可根据所需的去块滤波强度来应用另一滤波器。
111.为了对编码误差进行补偿,可通过使用样点自适应偏移将合适的偏移值与样点值相加。样点自适应偏移可按样点单位对经过去块的图像偏离原始图像的偏移进行校正。可使用考虑关于每个样点的边缘信息来应用偏移的方法,或可使用以下方法:将图像的样点分区为预定数量的区域,确定被应用偏移的区域,并对所确定的区域应用偏移。
112.自适应环路滤波器可基于经过滤波的重建图像与原始图像的比较结果来执行滤波。可将包括在图像中的样点分区为预定组,可确定将被应用于每个组的滤波器,并且可针对每个组执行不同的滤波。是否应用alf的信息可通过编码单元(cu)被用信号发送,并且将被应用于每个块的alf的形状和系数可变化。
113.已通过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。由滤波器单元180处理的重建块可以是参考图像的一部分。也就是说,参考图像是由通过滤波器单元180处理的重建块所组成的重建图像。存储的参考图像可稍后用于帧间预测或运动补偿。
114.图2是示出根据被应用了本发明的实施例的解码设备的配置的框图。
115.解码设备200可以是解码器、视频解码设备或图像解码设备。
116.参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器255、滤波器单元260以及参考画面缓冲器270。
117.解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读记录介质中的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可生成解码图像或通过解码而生成的重建图像,并输出重建图像或解码图像。
118.当在解码时使用的预测模式是帧内模式时,切换器可切换到帧内。可选地,当在解码时使用的预测模式是帧间模式时,切换器可切换到帧间模式。
119.解码设备200可通过对输入的比特流进行解码来获得重建残差块,并生成预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来生成成为解码目标的重建块。解码目标块可被称为当前块。
120.熵解码单元210可通过根据概率分布对比特流执行熵解码来生成符号。生成的符号可包括具有量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆处理。
121.为了对变换系数等级进行解码,熵解码单元210可通过使用变换系数扫描方法将一维矢量形式的系数改变成二维块形式。
122.量化的等级可在反量化单元220中被反量化,或者可在逆变换单元230中被逆变换。量化的等级可以是进行反量化或逆变换或进行反量化和逆变换两者的结果,并且可被生成为重建残差块。这里,反量化单元220可对量化的等级应用量化矩阵。
123.当帧内模式被使用时,帧内预测单元240可通过针对当前块执行空间预测来生成预测块,其中,空间预测使用与解码目标块相邻并且已被解码的块的样点值。
124.当帧间模式被使用时,运动补偿单元250可通过针对当前块执行运动补偿来生成预测块,其中,运动补偿使用存储在参考画面缓冲器270中的参考图像以及运动矢量。
125.加法器255可通过将重建残差块和预测块相加来生成重建块。滤波器单元260可对
重建块或重建图像应用去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中,并可在执行帧间预测时被使用。由滤波器单元260处理的重建块可以是参考图像的一部分。也就是说,参考图像是由通过滤波器单元260处理的重建块组成的重建图像。存储的参考图像可以稍后用于帧间预测或运动补偿。
126.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。图3示意性地示出将单个单元分区为多个下级单元的示例。
127.为了有效地对图像进行分区,当进行编码和解码时,可使用编码单元(cu)。当对图像进行编码/解码时,编码单元可被用作基本单元。此外,编码单元可被用作用于在对图像进行编码/解码时区分帧内模式和帧间模式的单元。编码单元可以是用于变换系数的预测、变换、量化、逆变换、反量化或编码/解码处理的基本单元。
128.参照图3,图像300按照最大编码单元(lcu)被顺序地分区,并且lcu单元被确定为分区结构。这里,lcu可以以与编码树单元(ctu)相同的含义被使用。单元分区可意为对与单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或单元被分区的程度或表示两者。可基于树结构将单个单元划分为与深度信息分层相关联的多个下级单元。换句话说,通过对单元进行分区而生成的单元和下级单元可分别与节点和节点的子节点相应。每个被分区出的下级单元可具有深度信息。深度信息可以是表示cu的尺寸的信息,并且可被存储在每个cu中。单元深度表示与对单元进行分区相关的次数和/或程度。因此,下级单元的分区信息可包括关于下级单元的尺寸的信息。
129.分区结构可意为lcu 310内的编码单元(cu)的分布。这种分布可根据是否将单个cu分区为多个(等于或大于2的正整数,包括2、4、8、16等)cu而被确定。通过分区而生成的cu的水平尺寸和垂直尺寸可分别为分区之前的cu的水平尺寸和垂直尺寸的一半,或者,根据分区的次数可分别具有小于分区之前的水平尺寸和垂直尺寸的尺寸。cu可被递归地分区为多个cu。与分区之前的cu的高度和宽度中的至少一个相比,通过进行递归分区,分区之后的cu的高度和宽度中的至少一个会减小。cu的分区可以被递归地执行直到预定义的深度或预定义的尺寸。例如,lcu的深度可以是0,并且最小编码单元(scu)的深度可以是预定义的最大深度。这里,lcu可以是具有最大编码单元尺寸的编码单元,并且scu可以是如上所述的具有最小编码单元尺寸的编码单元。分区从lcu 310开始,当cu的水平尺寸或垂直尺寸或两者通过分区而减小时,cu深度增加1。例如,对于每个深度,未被分区的cu可具有2n
×
2n的尺寸。此外,在cu被分区的情况下,可将尺寸为2n
×
2n的cu分区为尺寸为n
×
n的四个cu。当深度增加1时,n的大小会减小一半。
130.此外,可通过使用cu的分区信息来表示cu是否被分区的信息。分区信息可以是1比特信息。除scu之外的所有cu可包括分区信息。例如,当分区信息的值是第一值时,cu可不被分区,当分区信息的值是第二值时,cu可被分区。
131.参照图3,具有深度0的lcu可以是64
×
64的块。0可以是最小深度。具有深度3的scu可以是8
×
8的块。3可以是最大深度。32
×
32的块和16
×
16的块的cu可被分别表示为深度1和深度2。
132.例如,当单个编码单元被分区为四个编码单元时,被分区出的所述四个编码单元的水平尺寸和垂直尺寸可以是在被分区之前的cu的水平尺寸和垂直尺寸的一半大小。在一
个实施例中,当尺寸为32
×
32的编码单元被分区为四个编码单元时,被分区出的所述四个编码单元中的每一个的尺寸可以是16
×
16。当单个编码单元被分区为四个编码单元时,这可被称为编码单元可被分区为四叉树形式。
133.例如,当单个编码单元被分区为两个编码单元时,所述两个编码单元的水平尺寸或垂直尺寸可分别为被分区之前的编码单元的水平尺寸或垂直尺寸的一半。例如,当尺寸为32
×
32的编码单元沿垂直方向被分区时,被分区出的两个编码单元中的每一个的尺寸可以是16
×
32。当单个编码单元被分区为两个编码单元时,这可被称为编码单元按照二叉树形式被分区。图3的lcu 320是被应用了四叉树形式的分区和二叉树形式的分区两者的lcu的示例。
134.图4是示出帧内预测处理的示图。
135.图4中的从中心到外部的箭头可表示帧内预测模式的预测方向。
136.可通过使用当前块的邻近块的参考样点来执行帧内编码和/或解码。邻近块可以是重建邻近块。例如,可通过使用重建邻近块中包括的参考样点的值或编码参数来执行帧内编码和/或解码。
137.预测块可意为通过执行帧内预测而生成的块。预测块可以对应于cu、pu和tu之中的至少一个。预测块的单元可具有cu、pu和tu之中的一个的尺寸。预测块可以是尺寸为2
×
2、4
×
4、16
×
16、32
×
32或64
×
64等的正方形块,或者可以是尺寸为2
×
8、4
×
8、2
×
16、4
×
16和8
×
16等的矩形块。
138.可根据针对当前块的帧内预测模式来执行帧内预测。当前块可具有的帧内预测模式的数量可以是固定值,并且可以是根据预测块的属性而不同地确定的值。例如,预测块的属性可包括预测块的尺寸和预测块的形状等。
139.无论块尺寸如何,帧内预测模式的数量可被固定为n。或者,帧内预测模式的数量可以是3、5、9、17、34、35、36、65或67等。可选地,帧内预测模式的数量可根据块尺寸或颜色分量类型或两者而变化。例如,帧内预测模式的数量可根据颜色分量是亮度信号还是色度信号而变化。例如,随着块尺寸变大,可增加帧内预测模式的数量。可选地,亮度分量块的帧内预测模式的数量可大于色度分量块的帧内预测模式的数量。
140.帧内预测模式可以是非角度模式或角度模式。非角度模式可以是dc模式或平面模式,并且角度模式可以是具有特定方向或角度的预测模式。帧内预测模式可由模式编号、模式值、模式数字、模式角度和模式方向中的至少一个来表示。帧内预测模式的数量可以是包括非角度模式和角度模式的大于1的m。
141.为了对当前块进行帧内预测,可执行以下步骤:确定包括在重建邻近块中的样点是否可被用作当前块的参考样点。当存在不可用作当前块的参考样点的样点时,可使用通过对包括在重建邻近块中的样点之中的至少一个样点值进行复制或执行插值或进行两者而获得的值来替换样点的非可用样点值,因此替换后的样点值被用作当前块的参考样点。
142.当进行帧内预测时,可基于帧内预测模式和当前块尺寸将滤波器应用于参考样点和预测样点中的至少一个。
143.在平面模式的情况下,当生成当前块的预测块时,根据预测块内的预测目标样点的位置,可通过使用当前样点的左侧参考样点和上侧参考样点以及当前块的右上侧参考样点和左下侧参考样点的加权和来生成预测目标样点的样点值。此外,在dc模式的情况下,当
生成当前块的预测块时,可使用当前块的上侧参考样点和左侧参考样点的平均值。此外,在角度模式的情况下,可通过使用当前块的上侧参考样点、左侧参考样点、右上侧参考样点和/或左下侧参考样点来生成预测块。为了生成预测样点值,可执行实数单元的插值。
144.可通过预测与当前块相邻存在的块的帧内预测模式来对当前块的帧内预测模式进行熵编码/解码。在当前块的帧内预测模式和邻近块的帧内预测模式相同时,当前块的帧内预测模式和邻近块的帧内预测模式是相同的信息可通过使用预定标志信息被用信号发送。此外,多个邻近块的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式的指示符信息可被用信号发送。在当前块的帧内预测模式和邻近块的帧内预测模式不同时,可基于邻近块的帧内预测模式,通过执行熵编码/解码来对当前块的帧内预测模式信息进行熵编码/解码。
145.图5是说明根据本发明的实施例的对当前块执行帧内预测的方法的示图。
146.如图5所示,帧内预测可包括以下步骤:帧内预测模式推导步骤s510、参考样点配置步骤s520、和/或帧内预测执行步骤s530。
147.在帧内预测模式推导步骤s510,可使用以下方法中的至少一种方法来推导当前块的帧内预测模式:使用邻近块的帧内预测模式的方法、对当前块的帧内预测模式进行解码(例如,熵解码)的方法、使用颜色分量的帧内预测的方法、和/或使用利用变换模型的帧内预测模式的方法。
148.在使用邻近块的帧内预测模式的方法中,可通过使用以下项中的至少一个来推导当前块的帧内预测模式:邻近块的帧内预测模式、邻近块的一个或更多个帧内预测模式的组合、和/或通过使用mpm列表推导出的帧内预测模式。
149.当使用mpm列表时,可使用当前块的mpm列表、上层块的mpm列表和邻近块的mpm列表之中的至少一个对当前块的帧内预测模式进行编码/解码。
150.在参考样点配置步骤s520,可执行参考样点选择步骤和参考样点滤波步骤,使得参考样点可被配置。
151.在帧内预测执行步骤s530,使用非方向性预测、方向性预测、基于位置信息的预测和/或颜色分量之间的预测中的至少一种方法来执行当前块的帧内预测。在帧内预测执行步骤s530,可执行对预测样点的滤波。
152.在下文中,将详细描述帧内预测模式推导步骤s510。
153.当前块的邻近块可以是当前块的左下方邻近块、左侧邻近块、左上方邻近块、上方邻近块和右上方邻近块中的至少一个。在所述邻近块之中,可仅使用能够使用帧内预测模式的邻近块。
154.在当前块的邻近块之中,可将特定位置处的邻近块的帧内预测模式推导为当前块的帧内预测模式。
155.可选地,选择两个或更多个邻近块,可将选择的邻近块的帧内预测模式的统计值推导为当前块的帧内预测模式。可通过模式编号、模式值和模式角度中的至少一个来指示帧内预测模式。在描述中,统计值可以是最小值、最大值、平均值、加权平均值、众数和中值中的至少一个。
156.特定位置处的邻近块和/或选择的邻近块可以是在预定义的固定位置处的块。可选地,可基于通过比特流用信号发送的信息来指定所述块。
157.当使用至少两个帧内预测模式时,可考虑帧内预测模式是具有方向性还是具有非方向性。例如,在两个或更多个帧内预测模式之中,可使用方向帧内预测模式来推导当前块的帧内预测模式。可选地,可使用非方向帧内预测模式来推导当前块的帧内预测模式。
158.当加权平均值被用作统计值时,可将相对高的权重分配给特定帧内预测模式。特定帧内预测模式可以是例如垂直模式、水平模式、对角模式、非方向性模式中的至少一个。可选地,可通过比特流用信号发送关于特定帧内预测模式的信息。特定帧内预测模式的各个权重可彼此相同或不同。可选地,可基于邻近块的尺寸来确定权重。例如,可将相对高的权重分配给相对大的邻近块的帧内预测模式。
159.可使用最可能模式(mpm)来推导当前块的帧内预测模式。
160.当使用mpm时,可使用利用邻近块的帧内预测模式推导出的n个帧内预测模式来配置mpm列表。n是正整数,并且可具有依据当前块的尺寸和/或形状而不同的值。可选地,可通过比特流用信号发送关于n的信息。
161.可被包括在mpm列表中的帧内预测模式可以是当前块的左下方邻近块、左侧邻近块、左上方邻近块、上方邻近块和/或右上方邻近块的帧内预测模式。此外,非方向性模式可被包括在mpm列表中。帧内预测模式可按照预定顺序被包括在mpm列表中。预定顺序可以是例如这样的顺序:左下方块的模式、上方块的模式、平面模式、dc模式、左侧块的模式、右上方块的模式、以及左上方块的模式。可选地,预定顺序可以是这样的顺序:左侧块的模式、上方块的模式、平面模式、dc模式、左下方块的模式、右上方块的模式、以及左上方块的模式。
162.mpm列表可被配置为不包括重复的模式。当包括在mpm列表中的帧内预测模式的数量小于n时,可将另外的帧内预测模式包括在mpm列表中。另外的帧内预测模式可以是与mpm列表中包括的方向帧内预测模式的+k、-k相应的模式。等于或大于1的整数可由k表示。可选地,水平模式、垂直模式和对角模式(45度角模式、135度角模式和225度角模式)中的至少一个可被包括在mpm列表中。可选地,可使用邻近块的至少一个帧内预测模式的统计值来推导将被包括在mpm列表中的帧内预测模式。
163.可存在若干个mpm列表,并且可按照不同方法来配置若干个mpm列表。包括在每个mpm列表中的帧内预测模式可不重复。
164.可通过比特流用信号发送指示当前块的帧内预测模式是否被包括在mpm列表中的信息(例如,标志信息)。当存在n个mpm列表时,可存在n条标志信息。针对n个mpm列表,可按顺序执行确定当前块的帧内预测模式是否存在于mpm列表中的操作。可选地,可用信号发送指示n个mpm列表之中的包括当前块的帧内预测模式的mpm列表的信息。
165.在当前块的帧内预测模式被包括在mpm列表中时,可通过比特流用信号发送用于指定mpm列表中包括的模式之中的哪一个模式的索引信息。可选地,可将mpm列表的特定位置(例如,第一)处的模式推导为当前块的帧内预测模式。
166.在配置mpm列表时,可针对预定尺寸的块配置一个mpm列表。当预定尺寸的块被划分为若干个子块时,所述若干个子块中的每个子块可使用配置的mpm列表。
167.可选地,可使用利用mpm推导的当前块的帧内预测模式和邻近块的帧内预测模式中的至少一个来推导当前块的帧内预测模式。
168.例如,当使用mpm推导的当前块的帧内预测模式是pred_mpm时,通过使用邻近块的至少一个帧内预测模式将pred_mpm改变为预定模式,使得可推导出当前块的帧内预测模
式。例如,可通过与邻近块的帧内预测模式的大小进行比较,将pred_mpm增加n或减少n。这里,n可以是预定的整数,诸如+1、+2、+3、0、-1、-2、-3等。
169.可选地,当pred_mpm和邻近块的模式中的一个是非方向性模式并且另一个是方向性模式时,可将非方向性模式推导为当前块的帧内预测模式,或者可将方向性模式推导为当前块的帧内预测模式。
170.在使用最可能模式(mpm)列表推导当前块的帧内预测模式的情况下,例如,可使用以下mpm列表中的至少一个mpm列表。或者,可对当前块的帧内预测模式进行熵编码/解码。
[0171]-针对当前块的mpm列表。
[0172]-针对当前块的上层块的mpm列表中的至少一个mpm列表。
[0173]-针对当前块的邻近块的mpm列表中的至少一个mpm列表。
[0174]
构成mpm列表所需的信息(诸如是否使用当前块的mpm列表、是否使用当前块的上层块的mpm列表中的至少一个mpm列表、以及是否使用当前块的邻近块的mpm列表中的至少一个mpm列表)可在视频参数集(vps)、序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、条带、头、并行块、ctu、cu、pu和tu中的至少一个中被熵编码/解码。
[0175]
上层块可以是具有比当前块更小深度值的块。此外,上层块可指示具有更小深度值的块之中的包括当前块的块中的至少一个块。这里,深度值可意为每次块被划分时增加1的值。例如,未被划分的ctu的深度值可以是0。
[0176]
此外,上层块可意为以下实施例中的一个或更多个中的一个或组合。如果第一块是上层块并且第二块是当前块,则第一块可包括第二块。这里,第一块可以是比第二块深度小的块。这里,深度较浅的块可指示具有较小深度值的块。或者,第一块可指示尺寸大于第二块的块。这里,较大的块可以是深度较浅的块。
[0177]
可由编码器用信号发送指示第一块的尺寸或深度中的至少一个的信息。可按照vps、sps、画面、条带、并行块和块中的至少一个的等级用信号发送所述信息。
[0178]
可基于第二块的尺寸或深度中的至少一个来推导第一块的尺寸或深度中的至少一个。例如,可基于通过将第二块(当前块)的尺寸(或深度)与预定常数相加而获得的值或者通过从第二块(当前块)的尺寸(或深度)减去预定常数而获得的值来推导第一块的尺寸或深度中的至少一个。或者,第一块的尺寸或深度中的至少一个可具有编码器/解码器中预设的固定值。
[0179]
邻近块可以是在空间上和/或时间上与当前块相邻的块中的至少一个块。邻近块可能已经被编码/解码。此外,邻近块可具有与当前块的深度(或尺寸)相等或不同的深度(或尺寸)。邻近块可指示相对于当前块的预定位置处的块。这里,预定位置可以是相对于当前块的左上方位置、顶部位置、右上方位置、左侧位置和左下方位置中的至少一个。
[0180]
或者,预定位置可以是与当前块所属的画面不同的画面内的位置。预定位置处的块可指示当前块在不同画面中的同位块和/或与同位块相邻的块中的至少一个。或者,预定位置处的块可以是与当前块相应的在所述不同画面的特定区域中的具有与当前块的预测模式相同的预测模式的块。
[0181]
此外,邻近块可指示以下实施例中的一个或更多个实施例中的一个或组合。如果第一块是邻近块并且第二块是当前块,则第一块是与第二块相邻的经过编码/解码的块。第一块可以是深度等于第二块的深度的块。第一块可以是尺寸等于第二块的尺寸的块。
[0182]
第一块和第二块可属于同一编码块(ctu、cu等)或不同编码块。第一块的深度和/或尺寸可与第二块的深度和/或尺寸不同。
[0183]
上层块或邻近块的mpm列表可指示基于上层块或邻近块构成的mpm列表。可将与上层块或邻近块相邻的经过编码/解码的块的帧内预测模式添加到上层块或邻近块的mpm列表。
[0184]
图6是描述当前块、上层块和邻近块的示例性示图。
[0185]
例如,在图6中,块u(用粗实线标记的块)可以是块f、块g、块h、块i和块j的上层块。在这种情况下,块f、块g、块h、块i和块j中的至少一个块可以是当前块。例如,在图6中,块v(用粗虚线标记的块)可以是块g、块h、块i和块j的上层块。块g、块h、块i和块j中的至少一个块可以是当前块。例如,在图6中,块w(用点状图案标记的块)可以是块g、块h和块i的上层块。在这种情况下,块g、块h和块i中的至少一个块可以是当前块。例如,在图6中,块x(用菱形图案标记的块)可以是块h和块i的上层块。在这种情况下,块h和块i中的至少一个块可以是当前块。例如,在图6中,当前块d的邻近块可以是块b、块c和块k中的至少一个块。例如,在图6中,当前块l的邻近块可以是块c、块d、块e、块h和块k中的至少一个块。例如,在图6中,当前块p的邻近块可以是块e、块h、块i、块j、块l、块n和块o中的至少一个块。例如,在图6中,当前块s的邻近块可以是块i、块j、块p、块q和块r中的至少一个块。
[0186]
可使用n个mpm列表来推导当前块的帧内预测模式或对当前块的帧内预测模式进行熵编码/解码。这里,n可以是0或正整数。也就是说,可使用多个mpm列表来推导当前块的帧内预测模式或对当前块的帧内预测模式进行熵编码/解码。此外,多个mpm列表可指示多个mpm列表或多个列表。用于当前块的n个mpm列表可包括当前块的mpm列表、上层块的mpm列表和邻近块的mpm列表中的至少一个。
[0187]
此外,可使用用于当前块的编码参数中的至少一个来生成n个mpm列表。
[0188]
此外,预定块的子块中的至少一个子块可以是当前块。在这种情况下,子块的上层块可以是预定块。这里,子块可被包括在预定块中。此外,子块可以是从预定块划分出的块。此外,从预定块划分出的子块之中不与当前块相应的子块中的至少一个子块可以是当前块的邻近块。这里,子块可意为与上层块相对意义上的下层块。
[0189]
例如,如果当前块是图6中的块h,则可按照以下方法中的至少一种方法来构成用于当前块的多个mpm列表。多个mpm列表可包括基于当前块构成的mpm列表和基于当前块的上层块构成的mpm列表中的至少一个。
[0190]
例如,在图6中,基于上层块x构成的mpm列表可用于当前块h。例如,在图6中,基于上层块w构成的mpm列表可用于当前块h。例如,在图6中,基于上层块v构成的mpm列表可用于当前块h。例如,在图6中,基于上层块u构成的mpm列表可用于当前块h。例如,在图6中,可使用基于上层块x、上层块w、上层块v和上层块u中的至少一个构成的mpm列表中的至少一个mpm列表来推导当前块h的帧内预测模式。
[0191]
例如,如果当前块是图6中的块h,可按照以下方法中的至少一种方法来构成用于当前块的多个mpm列表。多个mpm列表可包括基于当前块构成的mpm列表和基于当前块的邻近块构成的mpm列表中的至少一个。
[0192]
例如,在图6中,基于邻近块e构成的mpm列表可用于当前块h。例如,在图6中,基于邻近块g构成的mpm列表可用于当前块h。例如,在图6中,基于邻近块e和邻近块g中的至少一
个构成的mpm列表中的至少一个可用于当前块h。
[0193]
可使用所构成的mpm列表来推导当前块的帧内预测模式,或者对当前块的帧内预测模式进行熵编码/解码。
[0194]
将上层块的mpm列表或邻近块的mpm列表用于当前块h可意味着在推导当前块的帧内预测模式或对当前块的帧内预测模式进行编码/解码中使用上层块的mpm列表或邻近块的mpm列表。
[0195]
用于当前块的多个mpm列表可包括用于n个上层块的mpm列表。这里,n是0或正整数。
[0196]
在构成用于上层块的mpm列表时可能需要诸如上层块的数量、深度和/或深度范围、和/或当前块的深度与上层块的深度之间的差的信息。可在vps、sps、pps、aps、条带头、并行块头、ctu、cu、pu和tu中的至少一个中对构成上层块的mpm列表所需的信息进行熵编码/解码。
[0197]
例如,如果当前块的深度值为d,则可按照以下方法中的至少一种方法来构成上层块的mpm列表。如前所述,所构成的上层块的mpm列表可用于推导当前块的帧内预测模式或者对当前块的帧内预测模式进行熵编码/解码。这里,d是0或正整数。
[0198]
例如,深度值为d-1的上层块的mpm列表可用于当前块。例如,深度值为d-2的上层块的mpm列表可用于当前块。例如,深度值为d-k的上层块的mpm列表可用于当前块。这里,k是等于或小于d的正整数。例如,具有范围从d-1至d-2的深度值的上层块的mpm列表可用于当前块。例如,具有范围从d-1至d-3的深度值的上层块的mpm列表可用于当前块。例如,具有范围从d-1至d-k的深度值的上层块的mpm列表可用于当前块。这里,k是等于或小于d的正整数。例如,具有范围从d-k至d-l的深度值的上层块的mpm列表可用于当前块。这里,k和l可以是等于或小于d的正整数。此外,k可以小于l。例如,如果使用一个上层块,则深度值为d-1或0的上层块的mpm列表可用于当前块。例如,如果使用两个上层块,则分别具有深度值为0、1、d-1或d-2的多个上层块中的至少两个上层块的mpm列表可用于当前块。例如,如果使用k个上层块,则具有范围从d-1至d-k的深度值的上层块和具有范围从0至k-1的深度值的上层块中的至少k个上层块的mpm列表可用于当前块。k可以是小于或等于d的正整数。例如,如果使用k个上层块,则针对当前块的k个上层块的mpm列表可用于当前块。k可以是小于或等于d的正整数。
[0199]
如果用于当前块的多个mpm列表包括上层块的mpm列表,则可使用关于当前块的尺寸和/或深度的信息来推导所使用的上层块的数量和/或深度值。
[0200]
例如,如果当前块是深度值为d的w
×
h块,则当前块的尺寸可被表示为像素的数量w
×
h。如果当前块中的像素的数量等于或大于预定阈值,则具有范围从d-1至d-k的深度值的上层块中的一个或更多个上层块的mpm列表可用于当前块。这里,k可以是小于d的正整数。
[0201]
此外,例如,如果当前块中的像素的数量小于预定阈值,则具有范围从d-1至d-l的深度值的上层块中的一个或更多个上层块的mpm列表可用于当前块。这里,l可以是大于k的正整数。例如,如果当前块的深度值是d并且d小于或等于预定深度值t,则具有范围从d-1到d-k的深度值的上层块中的一个或更多个上层块的mpm列表可用于当前块。k可以是小于d的正整数。例如,如果当前块的深度值d大于t,则具有范围从d-1到d-l的深度值的上层块中的
一个或更多个上层块的mpm列表可用于当前块。l可以是大于k的正整数。
[0202]
用于当前块的多个mpm列表可包括用于n个邻近块的mpm列表。n个邻近块可包括预定位置处的邻近块。n可以是0或正整数。
[0203]
可能需要诸如所包括的邻近块的数量n、深度值、尺寸和/或位置的信息来构成邻近块的mpm列表。可在vps、sps、pps、aps、条带头、并行块头、ctu、cu、pu和tu中的至少一个中对构成邻近块的mpm列表所需的信息进行熵编码/解码。可根据当前块的尺寸、形状和/或位置可变地确定邻近块的数量和/或位置。如果邻近块的深度值是预定值或落入预定范围内,则可构成邻近块的mpm列表。预定范围可由最小值或最大值中的至少一个被定义。可在前述预定单元中对关于最小值或最大值中的至少一个的信息进行熵编码/解码。
[0204]
例如,在图6中,如果当前块是块p并且深度值为d,则可按照在以下方法中的至少一种方法来构成用于当前块的多个mpm列表。这里,多个mpm列表可包括基于当前块构成的mpm列表和基于当前块的邻近块构成的mpm列表中的至少一个。
[0205]
例如,基于当前块p的左侧邻近块l或n构成的mpm列表可用于当前块p。例如,基于当前块p的左上方邻近块e构成的mpm列表可用于当前块p。例如,基于当前块p的左下方邻近块o构成的mpm列表可用于当前块p。例如,基于当前块的顶部邻近块h或i构成的mpm列表可用于当前块p。例如,基于当前块p的右上方邻近块j构成的mpm列表可用于当前块p。例如,当前块p的左上方邻近块、顶部邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少两个邻近块的mpm列表可用于当前块p。例如,当前块p的左上方邻近块、顶部邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少三个邻近块的mpm列表可用于当前块p。例如,当前块p的左上方邻近块、顶部邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少四个邻近块的mpm列表可用于当前块p。例如,当前块p的左上方邻近块、顶部邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少五个邻近块的mpm列表可用于当前块p。
[0206]
基于当前块、上层块和邻近块中的至少一个推导出的帧内预测模式可被包括在用于当前块的一个mpm列表中。也就是说,如果不是多个mpm列表而是单个mpm列表用于当前块,则该mpm列表可由基于根据当前块、上层块和邻近块中的至少一个的帧内预测模式中的至少一个帧内预测模式推导出的帧内预测模式中的至少一个帧内预测模式组成。
[0207]
如果用于当前块的n个mpm列表包括用于上层块和邻近块中的至少一个的mpm列表,则可确定构成n个mpm列表的顺序。这里,n可以是0或正整数。
[0208]
可在编码器和解码器中预设构成mpm列表的顺序。或者,可基于每个相应块的编码参数来确定构成mpm列表的顺序。或者,可基于当前块的编码参数来确定构成mpm列表的顺序。或者,可对关于构成mpm列表的顺序的信息进行熵编码/解码。
[0209]
例如,在图6中,当前块可以是块h,并且用于当前块的mpm列表可被称为mpm_list_cur。此外,基于当前块的上层块构成的用于块x、块w、块v和块u的mpm列表可分别被称为mpm_list_x、mpm_list_w、mpm_list_v和mpm_list_u。此外,基于当前块的邻近块构成的用于块l、块e和块g的mpm列表可分别被称为mpm_list_l、mpm_list_e和mpm_list_g。
[0210]
可按照稍后描述的方法中的至少一种方法来确定构成用于当前块的n个mpm列表的顺序。在稍后描述的方法中使用的上层块和/或邻近块的数量仅是示例,并且因此也可使用不同数量的上层块和/或邻近块。
[0211]
例如,可针对当前块h按照mpm_list_cur-》mpm_list_x-》mpm_list_w-》mpm_list_
v-》mpm_list_u的顺序来构成多个mpm列表。例如,可针对当前块h按照mpm_list_u-》mpm_list_v-》mpm_list_w-》mpm_list_x-》mpm_list_cur的顺序来构成多个mpm列表。例如,利用mpm_list_cur作为第一mpm列表,可针对当前块h使用用于以深度值的升序或降序排列的至少k个上层块的mpm列表来构成多个mpm列表。这里,k可以是0或正整数。例如,可针对当前块h按照mpm_list_cur-》mpm_list_l-》mpm_list_g-》mpm_list_e的顺序来构成多个mpm列表。例如,可针对当前块h按照mpm_list_l-》mpm_list_g-》mpm_list_e-》mpm_list_cur的顺序来构成多个mpm列表。例如,利用mpm_list_cur作为第一mpm列表,可针对当前块h使用用于左上方邻近块、左侧邻近块、左下方邻近块、顶部邻近块和右上方邻近块中的至少一个邻近块的mpm列表按照预定顺序来构成多个mpm列表。例如,可针对当前块h按照mpm_list_cur-》mpm_list_x-》mpm_list_l的顺序来构成多个mpm列表。例如,可针对当前块h按照mpm_list_cur-》mpm_list_l-》mpm_list_x的顺序来构成多个mpm列表。例如,可针对当前块h按照以下顺序来构成多个mpm列表:mpm_list_cur-》按照预定顺序的k个上层块的mpm列表-》按照预定顺序的l个邻近块的mpm列表。这里,k和l中的每一个可以是0或正整数。例如,可针对当前块h按照以下顺序来构成多个mpm列表:mpm_list_cur-》按照预定顺序的l个邻近块的mpm列表-》按照预定顺序的k个上层块的mpm列表。这里,k和l中的每一个可以是0或正整数。例如,可针对当前块h按照以下顺序来构成多个mpm列表:mpm_list_cur-》按照预定顺序的上层块或邻近块中的至少k个的mpm列表。这里,k可以是正整数。例如,可针对当前块h使用mpm_list_cur和按照预定顺序的上层块或邻近块中的至少k个的mpm列表来构成多个mpm列表。这里,k可以是正整数。
[0212]
后面的mpm列表可不包括有序的前面的mpm列表的帧内预测模式。此外,用于前面的mpm列表的指示符的可变长度码可短于用于后面的mpm列表的指示符的可变长度码。此外,前面的mpm列表可包括比后面的mpm列表更少数量的候选。可按照构成mpm列表的顺序将指示符分配给mpm列表。
[0213]
根据构成mpm列表的顺序中的至少一种顺序,用于当前块的n个mpm列表可包括用于上层块和邻近块中的至少一个的mpm列表。这里,可将多个mpm列表构成为不冗余地包括相同的帧内预测模式。这里,n可以是0或正整数。
[0214]
用于当前块的n个mpm列表可由mpm_list_1、mpm_list_2、...mpm_list_n表示。mpm_list_cur、mpm_list_x、mpm_list_w、mpm_list_v、mpm_list_u、mpm_list_l、mpm_list_e和mpm_list_g中的至少一个可与mpm_list_1、mpm_list_2、...、mpm_list_n中的至少一个相应。
[0215]
这里,可被包括在各个mpm列表中的帧内预测模式的数量可由c1、c2、......、cn表示。c1、c2、...、cn中的每一个可以是0或正整数。c1至cn的一部分或全部可以相同或不同。此外,c1、c2、......、cn中的至少一个可以在编码器和解码器中被预先确定。此外,可基于每个相应块的编码参数来确定c1、c2、......、cn中的至少一个。此外,c1、c2、......、cn中的至少一个可被熵编码/解码。
[0216]
例如,mpm_list_1中包括的帧内预测模式可由mpm_list_1_mode_1、mpm_list_1_mode_2、...、mpm_list_1_mode_c1表示。
[0217]
为了防止在mpm列表中冗余地包括相同的帧内预测模式,可使用有序的后面的mpm列表的帧内预测模式来检查包括在前面的mpm列表中的帧内预测模式的冗余。在冗余检查
之后存在冗余帧内预测模式的情况下,可从mpm列表中排除所述帧内预测模式。在排除冗余的模式之后,可将预定的帧内预测模式添加到mpm列表。
[0218]
可在构成多个mpm列表的步骤中执行对mpm列表中包括的模式的冗余检查。或者,可在构成所有多个mpm列表之后执行冗余检查。或者,可在每次将帧内预测模式包括在mpm列表中时执行冗余检查。
[0219]
例如,如果用于当前块的mpm_list_1包括c1个帧内预测模式,则mpm_list_1的帧内预测模式可以是非冗余的mpm_list_1_mode_1、mpm_list_1_mode_2、...、mpm_list_1_mode_c1。
[0220]
例如,如果mpm_list_2包括c2个非冗余帧内预测模式,则可检查mpm_list_2的每个帧内预测模式是否与mpm_list_1的帧内预测模式中的至少一个相同。如果mpm_list_2中包括的帧内预测模式mpm_list_2_mode_x与mpm_list_1中包括的模式相同,则可从mpm_list_2排除冗余的帧内预测模式mpm_list_2_mode_x。这里,mpm_list_2_mode_x可以是mpm_list_2_mode_1、mpm_list_2_mode_2、...、mpm_list_2_mode_c2中的至少一个。例如,如果从mpm_list_2排除至少一个帧内预测模式,则预定帧内预测模式中的至少一个可被包括在mpm_list_2中。包括在mpm_list_2中的预定帧内预测模式中的至少一个对于包括在mpm_list_1中的帧内预测模式中的至少一个可以是非冗余的。或者,包括在mpm_list_2中的预定帧内预测模式中的至少一个对于包括在mpm_list_1中的帧内预测模式可以都不是冗余的。
[0221]
被添加用于替换冗余预测模式的预定帧内预测模式可包括包含例如以下项中的至少一个的帧内预测模式:intra_planar、intra_dc、水平模式、垂直模式、45度模式、135度模式、225度模式、mpm_list_2_mode_x
±
delta、intra_dm和intra_lm。intra_dm可指示这样的帧内预测模式:帧内色度预测模式在该帧内预测模式下被确定为与帧内亮度预测模式相同。此外,intra_lm可指示这样的帧内预测模式:色度预测/残差/重建块中的至少一个在该帧内预测模式下基于亮度预测/残差/重建块中的至少一个被生成。此外,delta可以是正整数。
[0222]
预定帧内预测模式mpm_list_2_mode_x
±
delta可被包括在mpm_list_2中,而delta从1开始每次连续地增加1,直至mpm_list_2中包括的帧内预测模式的数量是c2为止。或者,可按照预定顺序对预定帧内预测模式进行排列,并且可按照顺序将预定帧内预测模式中的至少一个包括在mpm_list_2中,直至mpm_list_2中包括的帧内预测模式的数量是c2为止。
[0223]
例如,如果用于当前块的mpm_list_3包括c3个非冗余帧内预测模式,则可检查mpm_list_3中包括的每个帧内预测模式是否与mpm_list_1和mpm_list_2中包括的帧内预测模式中的至少一个相同。如果mpm_list_3中包括的帧内预测模式mpm_list_3_mode_x与mpm_list_1或mpm_list_2中包括的模式相同,则可从mpm_list_3排除冗余帧内预测模式mpm_list_3_mode_x。这里,mpm_list_3_mode_x可以是mpm_list_3_mode_1、mpm_list_3_mode_2、...、mpm_list_3_mode_c3中的至少一个。例如,如果从mpm_list_3排除至少一个帧内预测模式,则预定帧内预测模式中的至少一个可被包括在mpm_list_3中。mpm_list_3中包括的预定帧内预测模式中的至少一个对于mpm_list_1和mpm_list_2中包括的帧内预测模式中的至少一个可以是非冗余的。或者,mpm_list_3中包括的预定帧内预测模式中的至
少一个对于包括在mpm_list_1和mpm_list_2中的帧内预测模式可以都不是冗余的。
[0224]
例如,预定帧内预测模式mpm_list_3_mode_x
±
delta可被包括在mpm_list_3中,而delta从1开始每次连续地增加1,直至mpm_list_3中包括的帧内预测模式的数量是c3为止。或者,可按照预定顺序对预定帧内预测模式进行排列,并且可按照顺序将预定帧内预测模式中的至少一个包括在mpm_list_3中,直至mpm_list_3中包括的帧内预测模式的数量是c3为止。
[0225]
例如,如果用于当前块的mpm_list_k包括ck个非冗余帧内预测模式,则可检查mpm_list_k中包括的每个帧内预测模式是否与mpm_list_1、mpm_list_2、......、mpm_list_(k-1)中包括的帧内预测模式中的至少一个相同。k可以是等于或小于当前块可用的mpm列表的最大数量n的正整数。如果mpm_list_k中包括的帧内预测模式mpm_list_k_mode_x与mpm_list_1、mpm_list_2、...、mpm_list_(k-1)中包括的模式相同,则可从mpm_list_k排除冗余帧内预测模式mpm_list_k_mode_x。这里,mpm_list_k_mode_x可以是mpm_list_k_mode_1、mpm_list_k_mode_2、...、mpm_list_k_mode_ck中的至少一个。
[0226]
例如,如果从mpm_list_k排除至少一个帧内预测模式,则预定帧内预测模式中的至少一个可被包括在mpm_list_k中。包括在mpm_list_k中的预定帧内预测模式中的至少一个对于mpm_list_1、mpm_list_2、...和mpm_list_(k-1)中包括的帧内预测模式中的至少一个可以是非冗余的。或者,包括在mpm_list_k中的预定帧内预测模式中的至少一个对于包括在mpm_list_1、mpm_list_2、......、和mpm_list_(k-1)中的帧内预测模式可以都不是冗余的。例如,为了替换从mom_list_k排除的帧内预测模式,在预定帧内预测模式之中存在特定帧内预测模式(该特定帧内预测模式对于mpm_list_1、mpm_list_2、...和mpm_list_(k-1)中包括的帧内预测模式中的至少一个或任意一个是非冗余的)的情况下,可将该特定帧内预测模式添加到mpm_list_k。
[0227]
例如,预定帧内预测模式mpm_list_k_mode_x
±
delta可被包括在mpm_list_k中,而delta从1开始每次连续地增加1,直至mpm_list_k中包括的帧内预测模式的数量是ck为止。或者,可按照预定顺序对预定帧内预测模式进行排列,并且可按照顺序将预定帧内预测模式中的至少一个包括在mpm_list_k中,直至mpm_list_k中包括的帧内预测模式的数量是ck为止。
[0228]
如果使用n个mpm列表推导当前块的帧内预测模式或者对当前块的帧内预测模式进行熵编码/解码,则针对n个mpm列表中的每一个,可对指示符(mpm标志)进行熵编码/解码,其中,所述指示符指示当前块的帧内预测模式是否被包括在n个mpm列表中的每一个的帧内预测模式之中。
[0229]
例如,如果使用n个mpm列表,则可对最多n个指示符进行编码/解码,每个指示符(诸如mpm_flag_1、mpm_flag_2、...、mpm_flag_n)用于一个mpm列表。或者可对最多(n-1)个指示符进行编码/解码,并且在这种情况下,可基于(n-1)个指示符的一部分或全部来推导用于另一个mpm列表的未被编码/解码的指标符。例如,对于n个mpm列表之中的任意mpm列表(例如,按照预定顺序计数的最后的mpm列表),可不对指示符进行编码/解码。在特定mpm列表的帧内预测模式之中存在当前块的帧内预测模式的情况下,对于特定mpm列表,指示符可具有第一值。在不存在当前块的帧内预测模式的情况下,指示符可具有第二值。这里,第一值可以是1,并且第二值可以是0。也就是说,指示符可以是标志信息。
[0230]
此外,如果在n个指示符之中关于特定mpm列表的指示符具有第一值,则除了关于特定mpm列表的指示符之外的关于其他mpm列表的指示符可具有第二值。
[0231]
此外,如果n个指示符之中的关于第k个mpm列表的指示符具有第一值,则可不对关于第(k+1)个至第n个mpm列表的指示符进行熵编码/解码。这里,k可以是等于或大于1且等于或小于n的正整数。
[0232]
在n个mpm列表中的特定mpm列表中包括的帧内预测模式之中存在与当前块的帧内预测模式相同的帧内预测模式的情况下,可对指示该帧内预测模式在特定mpm列表中的位置或编号的索引信息(mpm索引)进行熵编码。此外,可通过对索引信息进行熵解码来识别特定mpm列表中包括的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式。索引信息可被熵编码为固定长度码或可变长度码。此外,可使用索引信息推导当前块的帧内预测模式。
[0233]
在n个mpm列表中包括的帧内预测模式之中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,可在编码器中对当前块的剩余帧内预测模式进行熵编码。剩余帧内预测模式可用于识别未被包括在mpm列表中的至少一个mpm列表中的当前块的帧内预测模式。或者,剩余帧内预测模式可用于识别未被包括在任何一个mpm列表中的当前块的帧内预测模式。
[0234]
如果帧内预测模式的总数是y,并且用于当前块的n个mpm列表中包括的帧内预测模式的数量的总和是x,则可对(y-x)个帧内预测模式之中的指示与当前块的帧内预测模式相同的帧内预测模式的剩余帧内预测模式进行熵编码。这里,可基于帧内预测模式的大小、角度、顺序和标识号中的至少一个对n个mpm列表中包括的总共x个帧内预测模式进行排列。所述排列可按照升序或降序进行。可将排列后的x个帧内预测模式与当前块的帧内预测模式进行比较。如果所述比较表明帧内预测模式大于排列后的x个帧内预测模式,则可从当前块的帧内预测模式减去预定值。预定值可以是1。
[0235]
或者,例如,可将当前块的帧内预测模式与排列后的x个帧内预测模式之中的具有最大参考值(例如,在大小、角度、顺序和标识号中的至少一个方面)的模式进行比较。如果所述比较表明当前块的帧内预测模式大于所述模式,则可从当前块的帧内预测模式减去预定值。
[0236]
此外,例如,可将当前块的相减后的帧内预测模式与排列后的x个帧内预测模式之中的具有第二大参考值的模式进行比较。如果所述比较表明相减后的帧内预测模式大于所述模式,则可进一步从当前块的相减后的帧内预测模式减去所述预定值。
[0237]
基于比较的减法操作可被重复直到在排列后的x个帧内预测模式之中的具有最小参考值的模式为止。可将当前块的最终相减后的帧内预测模式熵编码为剩余帧内预测模式。
[0238]
当前块的剩余帧内预测模式可被熵解码并被用于识别未被包括在n个mpm列表中的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式。如果帧内预测模式的总数是y并且包括在用于当前块的n个mpm列表中的帧内预测模式的数量之和是x,则剩余帧内预测模式可被熵解码,其中,所述剩余帧内预测模式指示(y-x)个帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式。
[0239]
在剩余帧内预测模式被熵解码之后,可基于帧内预测模式的大小、角度、顺序和标
识号中的至少一个来排列x个帧内预测模式。所述排列可按升序或降序进行。可将经过熵解码的剩余帧内预测模式与x个帧内预测模式的值进行比较。如果所述比较表明经过熵解码的剩余帧内预测模式等于或大于x个帧内预测模式的值,则经过熵解码的剩余帧内预测模式的值可增加预定值。预定值可以是1。
[0240]
或者,例如,可将排列后的x个帧内预测模式之中的具有最小参考值(例如,在帧内预测模式的大小、角度、顺序和标识号中的至少一个中具有最小参考值)的模式与经过解码的剩余帧内预测模式的值进行比较。如果所述比较表明经过熵解码的剩余帧内预测模式等于或大于所述模式的值,则可将预定值与经过熵解码的剩余帧内预测模式的值相加。
[0241]
此外,可将排列后的x个帧内预测模式中的具有第二小参考值的模式与剩余帧内预测模式的相加后的值进行比较。如果所述比较表明相加后的剩余帧内预测模式等于或大于所述模式的值,则可进一步将预定值与剩余帧内预测模式的相加后的值进行相加。
[0242]
基于比较的加法操作可被重复直到排列后的x个帧内预测模式之中的具有最大参考值的模式为止。最终的相加后的剩余帧内预测模式值可被熵解码为当前块的帧内预测模式。
[0243]
使用n个mpm列表的当前块的帧内预测模式可按照下面实施例的方式被熵编码/解码。
[0244]
下面将给出关于一个mpm列表被用于当前块的情况的实施例的描述。
[0245]
在mpm_list_1中包括的帧内预测模式之中存在与当前块的帧内预测模式相同的帧内预测模式的情况下,编码器可将指示与当前块的帧内预测模式相同的帧内预测模式是否存在于mpm_list_1中的指示符mpm_flag_1熵编码为第一值。如果mpm_flag_1是第一值,则可进一步对关于mpm_list_1的索引信息mpm_idx_1进行熵编码。
[0246]
在mpm_list_1中包括的帧内预测模式中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,编码器可将指示与当前块的帧内预测相同的帧内预测模式是否存在于mpm_list_1中的指示符mpm_flag_1熵编码为第二值。如果mpm_flag_1是第二值,则可进一步对剩余帧内预测模式rem_mode进行熵编码。
[0247]
解码器可对指示符mpm_flag_1进行熵解码,其中,指示符mpm_flag_1指示在mpm_list_1中是否存在与当前块的帧内预测模式相同的帧内预测模式。如果mpm_flag_1是第一值,则解码器可通过进一步对关于mpm_list_1的索引信息mpm_idx_1进行熵解码来推导当前块的帧内预测模式。
[0248]
如果mpm_flag_1是第二值,则解码器可通过进一步对剩余帧内预测模式rem_mode进行熵解码来推导当前块的帧内预测模式。
[0249]
下面将给出关于两个mpm列表被用于当前块的情况的实施例的描述。
[0250]
在mpm_list_1和mpm_list_2中包括的帧内预测模式之中存在与当前块的帧内预测模式相同的帧内预测模式的情况下,编码器可对指示符mpm_flag_1和mpm_flag_2进行熵编码,其中,指示符mpm_flag_1和mpm_flag_2指示mpm_list_1和mpm_list_2之中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。如果当前块的帧内预测模式存在于mpm_list_1中,则mpm_flag_1可以是第一值,并且mpm_flag_2可以是第二值。在这种情况下,关于mpm_list_1的索引信息mpm_idx_1可进一步被熵编码。或者,如果当前块的帧内预测模式存在于mpm_list_2中,则mpm_flag_1可以是第二值,并且mpm_flag_2可以是第一值。
在这种情况下,可进一步对关于mpm_list_2的索引信息mpm_idx_2进行熵编码。
[0251]
在mpm_list_1和mpm_list_2中包括的帧内预测模式之中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,编码器可将指示符mpm_flag_1和mpm_flag_2熵编码为第二值,其中,指示符mpm_flag_1和mpm_flag_2指示mpm_list_1和mpm_list_2之中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。如果mpm_flag_1和mpm_flag_2是第二值,则可进一步对剩余帧内预测模式rem_mode进行熵编码。
[0252]
解码器可对指示符mpm_flag_1和mpm_flag_2进行熵解码,指示符mpm_flag_1和mpm_flag_2指示mpm_list_1和mpm_list_2之中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。如果mpm_flag_1是第一值并且mpm_flag_2是第二值,则当前块的帧内预测模式存在于mpm_list_1中,并且解码器可通过进一步对关于mpm_list_1的索引信息mpm_idx_1进行熵解码来推导当前块的帧内预测模式。或者,如果mpm_flag_1是第二值并且mpm_flag_2是第一值,则当前块的帧内预测模式存在于mpm_list_2中,并且解码器可通过进一步对关于mpm_list_2的索引信息mpm_idx_2进行熵解码来推导当前块的帧内预测模式。或者,如果mpm_flag_1和mpm_flag_2是第二值,则解码器可通过进一步对剩余帧内预测模式rem_mode进行熵解码来推导当前块的帧内预测模式。这里,不会发生mpm_flag_1和mpm_flag_2都是第一值的情况。
[0253]
在下文中,将给出关于两个mpm列表被用于当前块的情况的另一实施例的描述。
[0254]
[表1]
[0255][0256]
如在[表1]的示例中,编码器可通过根据构成多个mpm列表的顺序中的至少一种来顺序地检查与当前块的帧内预测模式相同的帧内预测模式是否存在于mpm_list_1和mpm_list_2中的每一个中所包括的帧内预测模式之中来对当前块的帧内预测模式进行熵编码。
[0257]
例如,如果在mpm_list_1中存在与当前块的帧内预测模式相同的帧内预测模式,则可将mpm_flag_1熵编码为第一值。这里,关于mpm_list_1的索引信息mpm_idx_1可进一步被熵编码。
[0258]
例如,在mpm_list_1中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,可将mpm_flag_1熵编码为第二值。这里,在mpm_list_2中存在与当前块的帧内预测模式相同的帧内预测模式的情况下(在mpm_flag_1是第二值的情况下),可将mpm_flag_2熵编码为第一值。这里,关于mpm_list_2的索引信息mpm_idx_2可进一步被熵编码。
[0259]
例如,在mpm_list_1和mpm_list_2中不存在与当前块的帧内预测模式相同的帧内
预测模式的情况下,可将mpm_flag_1和mpm_flag_2熵编码为第二值。这里,如果mpm_flag_1和mpm_flag_2是第二值,则可进一步对剩余帧内预测模式rem_mode进行熵编码。
[0260]
如在[表1]的示例中,解码器可按照构成多个mpm列表的顺序中的至少一种来顺序地对指示符mpm_flag_1和/或mpm_flag_2进行熵解码,其中,指示符mpm_flag_1和/或mpm_flag_2指示mpm_list_1和mpm_list_2之中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。
[0261]
例如,如果mpm_flag_1被熵解码为第一值,则当前块的帧内预测模式存在于mpm_list_1中,并且可通过进一步对关于mpm_list_1的索引信息mpm_idx_1进行熵解码来推导当前块的帧内预测模式。
[0262]
例如,如果mpm_flag_1被熵解码为第二值,则可对mpm_flag_2进行熵解码。如果解码后的mpm_flag_2是第一值,则当前块的帧内预测模式存在于mpm_list_2中,并且可通过进一步对关于mpm_list_2的索引信息mpm_idx_2进行熵解码来推导当前块的帧内预测模式。
[0263]
例如,如果mpm_flag_1和mpm_flag_2被熵解码为第二值,则可通过进一步对剩余帧内预测模式rem_mode进行熵解码来推导当前块的帧内预测模式。这里,可顺序地执行确定mpm_flag_1和mpm_flag_2是第一值还是第二值的步骤。
[0264]
现在,将给出关于n个mpm列表被用于当前块的情况的实施例的描述。
[0265]
在包括在mpm_list_1、mpm_list_2、...、和mpm_list_n中的帧内预测模式之中存在与当前块的帧内预测模式相同的帧内预测模式的情况下,编码器可对指示符mpm_flag_1、mpm_flag_2、...、和mpm_flag_n进行熵编码,其中,指示符mpm_flag_1、mpm_flag_2、...、和mpm_flag_n指示mpm_list_1、mpm_list_2、...、和mpm_list_n之中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。如果当前块的帧内预测模式存在于mpm_list_1中,则mpm_flag_1可以是第一值,并且除mpm_flag_1之外的mpm_flag_2、...、和mpm_flag_n可以是第二值。在这种情况下,关于mpm_list_1的索引信息mpm_idx_1可进一步被熵编码。
[0266]
或者,如果当前块的帧内预测模式存在于mpm_list_2中,则mpm_flag_2可以是第一值,并且除mpm_flag_2之外的mpm_flag_1、...、和mpm_flag_n可以是第二值。在这种情况下,关于mpm_list_2的索引信息mpm_idx_2可进一步被熵编码。
[0267]
或者,如果当前块的帧内预测模式存在于mpm_list_n中,则mpm_flag_n可以是第一值,并且除mpm_flag_n之外的mpm_flag_1、...、和mpm_flag_(n-1)可以是第二值。在这种情况下,关于mpm_list_n的索引信息mpm_idx_n可进一步被熵编码。
[0268]
在mpm_list_1、mpm_list_2、...、和mpm_list_n中包括的帧内预测模式之中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,编码器可将mpm_flag_1、mpm_flag_2、...、和mpm_flag_n熵编码为第二值,其中,mpm_flag_1、mpm_flag_2、...、和mpm_flag_n指示mpm_list_1、mpm_list_2、...、和mpm_list_n中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。如果mpm_flag_1、mpm_flag_2、...、和mpm_flag_n是第二值,则可进一步对剩余帧内预测模式rem_mode进行熵编码。
[0269]
解码器可对指示符mpm_flag_1、mpm_flag_2、...、和mpm_flag_n进行熵解码,其中,指示符mpm_flag_1、mpm_flag_2、...、和mpm_flag_n指示mpm_list_1、mpm_list_2、...、和mpm_list_n中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。如果mpm_
flag_1是第一值并且除mpm_flag_1之外的mpm_list_2、...、和mpm_list_n是第二值,则当前块的帧内预测模式可存在于mpm_list_1中。在这种情况下,可通过进一步对关于mpm_list_1的索引信息mpm_idx_1进行熵解码来推导当前块的帧内预测模式。
[0270]
或者,如果mpm_flag_2是第一值并且除mpm_list_2之外的mpm_list_1、...、和mpm_list_n是第二值,则当前块的帧内预测模式可存在于mpm_list_2中。在这种情况下,可通过进一步对关于mpm_list_2的索引信息mpm_idx_2进行熵解码来推导当前块的帧内预测模式。
[0271]
或者,如果mpm_flag_n是第一值并且除mpm_list_n之外的mpm_list_1、...、和mpm_list_(n-1)是第二值,则当前块的帧内预测模式可存在于mpm_list_n中。在这种情况下,可通过进一步对关于mpm_list_n的索引信息mpm_idx_n进行熵解码来推导当前块的帧内预测模式。
[0272]
或者,如果mpm_flag_1、mpm_flag_2、...、和mpm_flag_n是第二值,则可通过进一步对剩余帧内预测模式rem_mode进行熵解码来推导当前块的帧内预测模式。这里,不会发生mpm_flag_1、mpm_flag_2、...、mpm_flag_n都是第一值的情况。
[0273]
现在,将给出关于n个mpm列表被用于当前块的情况的另一实施例的描述。
[0274]
[表2]
[0275][0276]
如在[表2]的示例中,编码器可通过根据构成多个mpm列表的顺序中的至少一种来顺序地检查与当前块的帧内预测模式相同的帧内预测模式是否存在于包括在mpm_list_1、mpm_list_2、...、mpm_list_n中的每一个中的帧内预测模式之中来对当前块的帧内预测模式进行熵编码。
[0277]
例如,如果在mpm_list_1中存在与当前块的帧内预测模式相同的帧内预测模式,则可将mpm_flag_1熵编码为第一值。这里,关于mpm_list_1的索引信息mpm_idx_1可进一步被熵编码。
[0278]
例如,在mpm_list_1中不存在与当前块的帧内预测模式相同的帧内预测模式的情
况下,可将mpm_flag_1熵编码为第二值。这里,在mpm_list_2中存在与当前块的帧内预测模式相同的帧内预测模式的情况下(在mpm_flag_1是第二值的情况下),可将mpm_flag_2熵编码为第一值。这里,关于mpm_list_2的索引信息mpm_idx_2可进一步被熵编码。
[0279]
例如,在mpm_list_1、mpm_list_2、...、mpm_list_(n-1)中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,mpm_flag_1、mpm_flag_2、...、mpm_flag_(n-1)可被熵编码为第二值。这里,如果在mpm_list_n中存在与当前块的帧内预测模式相同的帧内预测模式(如果mpm_flag_1、mpm_flag_2、...、mpm_flag_(n-1)是第二值),则关于mpm_list_n的索引信息mpm_idx_n可进一步被熵编码。
[0280]
例如,在mpm_list_1、mpm_list_2、...、mpm_list_n中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,mpm_flag_1、mpm_flag_2、...、mpm_flag_n可被熵编码为第二值。这里,剩余帧内预测模式rem_mode可进一步被熵编码。
[0281]
如在[表2]的示例中,解码器可按照构成多个mpm列表的顺序中的至少一种来顺序地对指示符mpm_flag_1、mpm_flag_2、...、mpm_flag_n中的至少一个进行熵解码,其中,指示符mpm_flag_1、mpm_flag_2、...、mpm_flag_n指示mpm_list_1、mpm_list_2、...、mpm_list_n中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式。
[0282]
例如,如果mpm_flag_1被熵解码为第一值,则当前块的帧内预测模式存在于mpm_list_1中,并且可通过进一步对关于mpm_list_1的索引信息mpm_idx_1进行熵解码来推导当前块的帧内预测模式。
[0283]
例如,如果mpm_flag_1被熵解码为第二值,则可对mpm_flag_2进行熵解码。如果解码后的mpm_flag_2是第一值,则当前块的帧内预测模式存在于mpm_list_2中,并且可通过进一步对关于mpm_list_2的索引信息mpm_idx_2进行熵解码来推导当前块的帧内预测模式。
[0284]
例如,如果mpm_flag_1、mpm_flag_2、...、mpm_flag_(n-1)被熵解码为第二值,则可对mpm_flag_n进行熵解码。如果解码后的mpm_flag_n是第一值,则当前块的帧内预测模式存在于mpm_list_n中,并且可通过进一步对关于mpm_list_n的索引信息mpm_idx_n进行熵解码来推导当前块的帧内预测模式。
[0285]
例如,如果mpm_flag_1、mpm_flag_2、...、mpm_flag_n被熵解码为第二值,则可通过进一步对剩余帧内预测模式rem_mode进行熵解码来推导当前块的帧内预测模式。这里,可顺序地执行确定mpm_flag_1、mpm_flag_2、...、mpm_flag_n是第一值还是第二值的步骤。
[0286]
可对指定mpm列表的标志(诸如mpm_flag_n)或指示多个mpm列表之一的索引进行编码/解码。可对指示基于mpm的帧内预测推导方法是否用于当前块(或当前条带、当前画面、当前序列等)的信息进行编码/解码。如果所述信息指示基于mpm的帧内预测推导方法被使用,则可对所述索引进行编码/解码。多个mpm列表的数量或类型中的至少一个可在编码器/解码器中被固定地预定义,或者可基于与当前块/邻近块的尺寸、深度、形状、位置等相关的参数被可变地确定。例如,在编码器/解码器中预定义的mpm列表的数量可以是1、2、3或更大。每个mpm列表中包括的帧内预测模式的最大数量被强制为相等。最大数量可在编码器/解码器中被固定地预设,或者可以以预定单元(例如,序列、画面、条带、块等)被用信号发送。如果特定mpm列表中包括的帧内预测模式的数量小于最大数量,则可将预定模式添加到特定mpm列表。添加的模式可以是预设的默认模式,或者是包括在另一mpm列表中的帧内
预测模式。应注意的是,可添加与特定mpm列表中包括的帧内预测模式不同的模式。可省略mpm列表之间的冗余检查。所述mpm列表之一可与另一mpm列表共享至少一个相同的帧内预测模式。
[0287]
现在,将描述关于n个mpm列表被用于当前块的情况的另一实施例。
[0288]
编码器可按照构成多个mpm列表的顺序中的至少一种来构成范围从mpm_list_1至mpm_list_n的多个mpm列表。n个mpm列表中的候选帧内预测模式的总数可以是k。n和k可以是正整数。
[0289]
例如,mpm_list_combined可由n个mpm列表的候选帧内预测模式中的k个或更少的候选帧内预测模式构成。
[0290]
例如,如果在mpm_list_combined中存在与当前块的帧内预测模式相同的帧内预测模式,则可将指示符mpm_flag_combined熵编码为第一值,其中,指示符mpm_flag_combined指示与当前块的帧内预测模式相同的帧内预测模式是否存在于mpm_list_combined中。这里,关于mpm_list_combined的索引信息mpm_idx_combined可被另外地熵编码。
[0291]
在mpm_list_combined中不存在与当前块的帧内预测模式相同的帧内预测模式的情况下,可将mpm_flag_combined熵编码为第二值。如果mpm_flag_combined是第二值,则剩余帧内预测模式rem_mode可被另外地熵编码。
[0292]
解码器可对指示符mpm_flag_combined进行熵解码,其中,指示符mpm_flag_combined指示在mpm_list_combined中是否存在与当前块的帧内预测模式相同的帧内预测模式。如果mpm_flag_combined是第一值,则可通过进一步对索引信息mpm_idx_combined进行熵解码来推导当前块的帧内预测模式。如果mpm_flag_combined是第二值,则可通过另外地对剩余帧内预测模式rem_mode进行熵解码来推导当前块的帧内预测模式。
[0293]
根据本发明,可通过编码/解码来推导当前块的帧内预测模式。这里,可在不使用邻近块的帧内预测模式的情况下对当前块的帧内预测模式进行熵编码/解码。可使用另一颜色分量的帧内预测模式来推导当前块的帧内预测模式。例如,在当前块是色度块时,与目标色度块相应的至少一个相关亮度块的帧内预测模式可被用于推导用于色度块的帧内预测模式。这里,可基于色度块的位置、尺寸、形状或编码参数中的至少一个来确定相关亮度块。可选地,可基于亮度块的尺寸、形状或编码参数中的至少一个来确定相关亮度块。
[0294]
可使用包括与色度块的中心位置相应的样点的亮度块来确定相关亮度块,或者使用分别包括与色度块的至少两个位置相应的样点的至少两个亮度块来确定相关亮度块。所述至少两个位置可包括左上方样点位置和中心样点位置。
[0295]
当存在若干个相关亮度块时,可将至少两个相关亮度块的帧内预测模式的统计值推导为色度块的帧内预测模式。可选地,可将相对大的相关亮度块的帧内预测模式推导为色度块的帧内预测模式。可选地,当与色度块的预定位置相应的亮度块的尺寸等于或大于色度块的尺寸时,可使用相关亮度块的帧内预测模式来推导色度块的帧内预测模式。
[0296]
例如,在当前块被分区为多个子块时,可使用推导当前块的帧内预测模式的至少一种方法来推导被分区出的子块中的每个子块的帧内预测模式。
[0297]
可从比特流对帧内预测信息进行熵编码/解码。这里,可在vps、sps、pps、aps、条带头和并行块头中的至少一个中用信号发送帧内预测信息。
[0298]
指示mpm是否匹配的标志:例如)prev_intra_luma_pred_flag
[0299]
指示mpm列表中的位置的索引:例如)mpm_idx
[0300]
帧内亮度预测模式信息:例如)rem_intra_luma_pred_mode
[0301]
帧内色度预测模式信息:例如)intra_chroma_pred_mode
[0302]
指示使用邻近块的帧内预测模式推导当前块和子块的帧内预测模式的标志:例如)ndip_flag
[0303]
指示符(mpm标志):例如)mpm_flag_1、mpm_flag_2、...、mpm_flag_n,其中,所述指示符指示在当前块的帧内预测模式使用n个mpm列表被推导或被熵编码/解码时,对于n个mpm列表中的每一个,与当前块的帧内预测模式相同的帧内预测模式是否被包括在mpm列表的帧内预测模式之中
[0304]
索引信息:例如)mpm_idx_1、mpm_idx_2、...、mpm_idx_n,其中,所述索引信息指示当与当前块的帧内预测模式相同的帧内预测模式被包括在n个mpm列表中的特定mpm列表的帧内预测模式之中时,帧内预测模式在mpm列表中的位置或顺序
[0305]
当mpm(最可能模式)标志是1时,可通过使用mpm索引mpm_idx从包括已被编码/解码的邻近单元的帧内模式的候选模式来推导亮度分量的帧内预测模式。
[0306]
当mpm(最可能模式)标志为0时,可通过使用关于亮度分量的帧内预测模式信息rem_intra_luma_pred_mode来对亮度分量的帧内预测模式进行编码/解码。
[0307]
可通过使用关于色度分量的帧内预测模式信息intra_chroma_pred_mode和/或色度分量块的相应帧内预测模式来对色度分量的帧内预测模式进行编码/解码。
[0308]
可从比特流基于编码参数中的至少一个对帧内预测信息进行熵编码/解码。例如,可基于块划分信息对ndip_flag进行编码/解码。
[0309]
例如,如果split_flag、quadtree_flag和binarytree_flag中的至少一个是“0”并且因此不进一步对块进行划分,则可对ndip_flag进行编码/解码。例如,如果binarytree_flag是1,则可不对ndip_flag进行编码/解码。
[0310]
可不基于块的尺寸和形状中的至少一个来用信号发送上述多条帧内预测信息中的至少一条。
[0311]
例如,如果当前块的尺寸是预定尺寸,则可不用信号发送关于当前块的至少一条帧内预测信息,并且可使用关于与先前已经过编码/解码的上级块的尺寸相应的帧内预测的至少一条信息。例如,如果当前块被成形为矩形,则可不用信号发送关于当前块的至少一条帧内预测信息,并且可使用关于与先前已经过编码/解码的上级块的尺寸相应的帧内预测的至少一条信息。
[0312]
当对多条帧内预测信息中的至少一条进行熵编码/解码时,可使用以下二值化方法中的至少一种。
[0313]-截断莱斯二值化方法
[0314]-k阶指数哥伦布二值化方法
[0315]-有限k阶指数哥伦布二值化方法
[0316]-固定长度二值化方法
[0317]-一元二值化方法
[0318]-截断一元二值化方法
[0319]
现在,将给出参考样点构建步骤s520的详细描述。
[0320]
在基于推导的帧内预测模式对当前块或具有比当前块更小的尺寸和/或形状的子块进行帧内预测时,可构建参考样点以用于预测。在当前块的上下文中给出以下描述,并且当前块可意为子块。可使用与当前块相邻的一个或更多个重建样点或样点组合来构建参考样点。此外,在构建参考样点时可应用滤波。这里,实际上,可使用多条重建样点线上的每个重建样点来构建参考样点。或者,可在同一重建样点线上的样点之间进行滤波之后来构建参考样点。或者,可在不同重建样点线上的样点之间进行滤波之后来构建参考样点。构建的参考样点可由ref[m,n]表示,并且重建邻近样点或通过对重建邻近样点进行滤波而获得的样点可由rec[m,n]表示。这里,m或n可以是预定的整数值。在当前块的尺寸为w(水平)
×
h(垂直)的情况下,如果当前块的最左上方样点位置是(0,0),则最靠近该样点位置的最左上方参考样点的相对位置可被设置为(-1,-1)。
[0321]
图7是描述可用于当前块的帧内预测的邻近重建样点线的示例性示图。
[0322]
如图7所示,可使用与当前块相邻的一条或更多条重建样点线来构建参考样点。
[0323]
例如,可选择图7中所示的多条重建样点线中的一条重建样点线,并且可使用选择的重建样点线来构建参考样点。可将多条重建样点线中的预定重建样点线固定地选择为所选择的重建样点线。或者,可自适应地将多条重建样点线中的特定重建样点线选择为所选择的重建样点线。在这种情况下,可用信号发送关于所选择的重建样点线的指示符。
[0324]
例如,可组合地使用图7中所示的多条重建样点线中的一条或更多条重建样点线来构建参考样点。例如,参考样点可被构建为一个或更多个重建样点的加权和(或加权平均值)。用于加权和的权重可基于距当前块的距离被分配。这里,针对距当前块的较短的距离可分配较大的权重。例如,可使用以下[等式1]。
[0325]
[等式1]
[0326]
ref[-1,-1]=(rec[-2,-1]+2*rec[-1,-1]+rec[-1,-2]+2)》》2
[0327]
ref[x,-1]=(rec[x,-2]+3*rec[x,-1]+2)》》2,(x=0~w+h-1)
[0328]
ref[-1,y]=(rec[-2,y]+3*rec[-1,y]+2)》》2,(y=0~w+h-1)
[0329]
或者,可基于距当前块的距离或帧内预测模式中的至少一个,使用多个重建样点的平均值、最大值、最小值、中值和最常见值中的至少一个来构建参考样点。
[0330]
或者,可基于多个连续重建样点的值的改变(变化)来构建参考样点。例如,可基于两个连续重建样点的值之间的差是否等于或大于阈值、两个连续重建样点的值是连续变化还是非连续变化等中的至少一个来构建参考样点。例如,如果rec[-1,-1]和rec[-2,-1]之间的差等于或大于阈值,则可将ref[-1,-1]确定为rec[-1,-1]或通过应用利用被分配给rec[-1,-1]的预定权重的加权平均值而获得的值。例如,如果当多个连续重建样点更接近当前块时,每次将所述多个连续重建样点的值改变n,则可将参考样点ref[-1,-1]确定为rec[-1,-1]-n。
[0331]
可根据当前块的上边界或左边界是否与画面、条带、并行块和编码树块(ctb)中的至少一个的边界相应来不同地确定重构样点线的数量和位置中的至少一个以及用于构建参考样点的构建方法。
[0332]
例如,在使用重建样点线1和2构建参考样点时,在当前块的上边界对应于ctb边界时,重建样点线1可用于上侧,并且重建样点线1和2可用于左侧。
[0333]
例如,在使用重建样点线1至4构建参考样点时,在当前块的上边界对应于ctb边界时,重建样点线1和2可用于上侧,并且重建样点线1至4可用于左侧。
[0334]
例如,在使用重建样点线1和2构建参考样点时,在当前块的上边界对应于ctb边界时,重建样点线1可以用于上侧,并且重建样点线2可用于左侧。
[0335]
可通过上述过程构建一条或更多条参考样点线。
[0336]
当前块的上侧的参考样点构建方法可与左侧的参考样点构建方法不同。
[0337]
可对指示使用上述方法中的至少一种方法构建参考样点的信息进行编码/解码。例如,可对指示多条重建样点线是否被使用的信息进行编码/解码。
[0338]
如果当前块被划分为多个子块,并且每个子块具有独立的帧内预测模式,则可针对每个子块来构建参考样点。
[0339]
图8是描述针对当前块中包括的子块来构建参考样点的实施例的示图。
[0340]
如图8所示,如果当前块的尺寸为16
×
16并且16个4
×
4子块具有独立的帧内预测模式,则可根据用于预测子块的扫描方案按照以下方法中的至少一种方法来构建用于每个子块的参考样点。
[0341]
例如,可使用与当前块相邻的n条重建样点线,针对每个子块来构建参考样点。在图8所示的示例中,n是1。
[0342]
例如,在按照1-》2-》3-》....15-》16的光栅扫描顺序预测多个子块的情况下,可使用已经过编码/解码的左侧子块、顶部子块、右上方子块和左下方子块中的至少一个的样点来构建用于第k个子块的参考样点。
[0343]
例如,在按照1-》2-》5-》6-》3-》4-》7-》...12-》15-》16的z扫描顺序预测多个子块的情况下,可使用已经过编码/解码的左侧子块、顶部子块、右上方子块和左下方子块中的至少一个的样点来构建用于第k个子块的参考样点。
[0344]
例如,在按照1-》2-》5-》9-》6-》3-》4-》...12-》15-》16的z字形扫描顺序预测多个子块的情况下,可使用已经过编码/解码的左侧子块、顶部子块、右上方子块和左下方子块中的至少一个的样点来构建用于第k个子块的参考样点。
[0345]
例如,在按照1-》5-》9-》13-》2-》6-》...8-》12-》16的垂直扫描顺序预测多个子块的情况下,可使用已经过编码/解码的左侧子块、顶部子块、右上方子块和左下方子块中的至少一个的样点来构建用于第k个子块的参考样点。
[0346]
在按照除上述扫描顺序之外的扫描顺序预测多个子块的情况下,可使用已经过编码/解码的左侧子块、顶部子块、右上方子块和左下方子块中的至少一个的样点来构建用于第k个子块的参考样点。
[0347]
在选择参考样点时,可执行填充和/或关于包括参考样点的块的可用性的确定。例如,如果包括参考样点的块可用,则可使用该参考样点。另外,如果包括参考样点的块不可用,则可通过填充来利用一个或更多个可用邻近参考样点来替换不可用参考样点。
[0348]
如果参考样点存在于画面边界、并行块边界、条带边界、ctb边界和预定边界中的至少一个之外,则可确定该参考样点不可用。
[0349]
在通过约束帧内预测(cip)对当前块进行编码的情况下,如果以帧间预测模式对包括参考样点的块进行编码/解码,则可确定该参考样点不可用。
[0350]
图9是描述使用可用重建样点替换不可用重建样点的方法的示图。
[0351]
如果确定邻近重建样点不可用,则可使用邻近可用重建样点来替换不可用样点。例如,如图9所示,在存在可用样点和不可用样点的情况下,可使用一个或更多个可用样点替换不可用样点。
[0352]
可按照预定顺序利用可用样点的样点值替换不可用样点的样点值。与不可用样点相邻的可用样点可用于替换不可用样点。在不存在邻近可用样点的情况下,可使用第一个出现的可用样点或最接近的可用样点。不可用样点的替换顺序可以是从最左下方到最右上方的顺序。或者,不可用样点的替换顺序可以是从最右上方到最左下方的顺序。或者,不可用样点的替换顺序可以是从最左上方到最右上方和/或最左下方的顺序。或者,不可用样点的替换顺序可以是从最右上方和/或最左下方到最左上方的顺序。
[0353]
如图9所示,可按照从最左下方样点位置0到最右上方样点的顺序来替换不可用样点。在这种情况下,前四个不可用样点的值可用第一个出现的或最接近的可用样点a的值替换。接下来的13个不可用样点的值可用最后的可用样点b的值替换。
[0354]
或者,可使用可用样点的组合来替换不可用样点。例如,可使用与不可用样点的两端相邻的可用样点的平均值来替换不可用样点。例如,在图9中,可以利用可用样点a的值来填充前四个不可用样点,并且可以利用可用样点b和可用样点c的平均值来填充接下来的13个不可用样点。或者,可以利用可用样点b的值和可用样点c的值之间的任何值来填充13个不可用样点。在这种情况下,可以用差值来替换不可用的样点。例如,当不可用样点更接近可用样点a时,可以利用接近可用样点a的值的值来替换不可用样点的值。类似地,当不可用样点更接近可用样点b时,可以利用接近可用样点b的值的值来替换不可用样点的值。也就是说,可基于从不可用样点到可用样点a和/或可用样b的距离来确定不可用样点的值。
[0355]
为了替换不可用的样点,可选择性地应用包括上述方法的多种方法中的一种或更多种方法。可通过包括在比特流中的信息来用信号发送用于替换不可用样点的方法,或者可使用由编码器和解码器预定的方法。或者,可通过预定方案来推导用于替换不可用样点的方法。例如,可基于可用样点a的值和可用样点b的值之间的差和/或不可用样点的数量来选择用于替换不可用样点的方法。例如,可基于两个可用样点的值之间的差与阈值之间的比较和/或不可用样点的数量与阈值之间的比较来选择用于替换不可用样点的方法。例如,如果两个可用样点的值之间的差大于阈值和/或如果不可用样点的数量大于阈值,则可用不同的值来替换不可用样点的值。
[0356]
对于构建的一个或更多个参考样点,可确定是否根据当前块的帧内预测模式、尺寸和形状中的至少一个来应用滤波。如果应用滤波,则可根据当前块的帧内预测模式、尺寸和形状中的至少一个来使用不同的滤波器类型。
[0357]
例如,对于多条参考样点线中的每条参考样点线,可不同地确定是否应用滤波和/或滤波器类型。例如,可将滤波应用于第一邻近线,而可不将滤波应用于第二邻近线。例如,经过滤波的值和未经过滤波的值两者可用于参考样点。例如,在3抽头滤波器、5抽头滤波器和7抽头滤波器中,可至少根据块的帧内预测模式、尺寸和形状来选择并应用至少一个滤波器。
[0358]
在下文中,将详细描述执行帧内预测的步骤(s530)。
[0359]
可基于推导出的帧内预测模式和参考样点对当前块或子块执行帧内预测。在以下描述中,当前块可意为子块。
[0360]
例如,可执行非方向帧内预测。非方向帧内预测模式可以是dc模式和平面模式中的至少一个。
[0361]
可使用构建的参考样点中的一个或更多个参考样点的平均值来执行dc模式下的帧内预测。可将滤波应用于当前块的边界处的一个或更多个预测样点。可根据当前块的尺寸和形状中的至少一个来自适应地执行dc模式帧内预测。
[0362]
图10是说明根据当前块的形状的帧内预测的示例性示图。
[0363]
例如,如图10的(a)所示,如果当前块被成形为正方形,则可使用当前块的上方和左侧的参考样点的平均值来预测当前块。
[0364]
例如,如图10的(b)所示,如果当前块被成形为矩形,则可使用与当前块的宽度和长度之中的较长者相邻的参考样点的平均值来预测当前块。
[0365]
例如,如果当前块的尺寸落入预定范围内,则从当前块的顶部参考样点或左侧参考样点中选择预定样点,并且可使用选择的样点的平均值来执行预测。
[0366]
可通过根据当前块的目标帧内预测样点的位置考虑距一个或更多个构建的参考样点的距离来计算加权和以执行平面模式帧内预测。
[0367]
例如,预测块可被计算为依据目标预测样点的位置(x,y)的n个参考样点的加权和。n可以是正整数,例如,4。
[0368]
例如,可执行方向帧内预测。方向预测模式可以是水平模式、垂直模式和具有预定角度的模式中的至少一个。
[0369]
可使用目标帧内预测样点的位置处的水平/垂直线上的一个或更多个参考样点来执行水平/垂直模式帧内预测。
[0370]
可使用相对于目标帧内预测样点的位置的预定角度处的线上的一个或更多个参考样点来执行具有预定角度的模式下的帧内预测。这里,可使用n个参考样点。n可以是正整数,例如,2、3、4、5或6。此外,例如,可通过应用n抽头滤波器(诸如2抽头滤波器、3抽头滤波器、4抽头滤波器、5抽头滤波器或6抽头滤波器)来执行预测。
[0371]
例如,可基于位置信息来执行帧内预测。可对位置信息进行编码/解码,并且可将该位置处的重建样点块推导为用于当前块的帧内预测块。或者,可将由解码器检测到的与当前块类似的块推导为用于当前块的帧内预测块。
[0372]
例如,可执行帧内颜色分量预测。例如,可使用当前块的重建亮度分量对色度分量执行帧内预测。或者,可使用当前块的一个重建色度分量cb对另一个色度分量cr执行帧内预测。
[0373]
可通过相结合地使用前述各种帧内预测方法中的一种或更多种方法来执行帧内预测。例如,可通过使用预定的非方向帧内预测模式预测的块和使用预定的方向帧内预测模式预测的块的加权和,针对当前块来构建帧内预测块。这里,可根据当前块的帧内预测模式、块尺寸、形状和/或样点位置中的至少一个来应用不同的权重。
[0374]
可在编码器和解码器中以相同的方法来执行上述实施例。
[0375]
在编码器和解码器之间应用于上述实施例的顺序可以是不同的,或者在编码器和解码器中应用于上述实施例的顺序可以是相同的。
[0376]
可对每个亮度信号和色度信号执行上述实施例,或者可对亮度信号和色度信号相同地执行上述实施例。
[0377]
应用了本发明的上述实施例的块形状可具有正方形形状或非正方形形状。
[0378]
可依据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本发明的上述实施例。这里,所述尺寸可被定义为最小尺寸或最大尺寸或两者,以便应用上述实施例,或者所述尺寸可被定义为应用上述实施例的固定尺寸。此外,在上述实施例中,第一实施例可被应用于第一尺寸,并且第二实施例可被应用于第二尺寸。换句话说,可依据尺寸来组合应用上述实施例。此外,当尺寸等于或大于最小尺寸并且等于或小于最大尺寸时,可应用上述实施例。换句话说,当块尺寸被包括在特定范围内时,可应用上述实施例。
[0379]
例如,在当前块的尺寸是8
×
8或更大时,可应用上述实施例。例如,在当前块的尺寸是4
×
4或更大时,可应用上述实施例。例如,在当前块的尺寸是16
×
16或更大时,可应用上述实施例。例如,在当前块的尺寸等于或大于16
×
16并且等于或小于64
×
64时,可应用上述实施例。
[0380]
可依据时间层来应用本发明的上述实施例。为了识别可被应用上述实施例的时间层,相应标识符可被用信号发送,并且上述实施例可被应用于由相应的标识符标识的指定时间层。这里,标识符可被定义为可被应用上述实施例的最低层或最高层或两者,或者可被定义为指示被应用实施例的特定层。此外,可定义被应用实施例的固定时间层。
[0381]
例如,在当前图像的时间层是最低层时,可应用上述实施例。例如,在当前图像的时间层标识符是1时,可应用上述实施例。例如,在当前图像的时间层是最高层时,可应用上述实施例。
[0382]
可定义被应用本发明的上述实施例的条带类型,并且可依据相应的条带类型来应用上述实施例。
[0383]
在上述实施例中,基于具有一系列步骤或单元的流程图描述了所述方法,但本发明不限于所述步骤的顺序,而是,一些步骤可与其它步骤被同时执行,或者可与其它步骤按照不同顺序被执行。此外,本领域普通技术人员应该理解,流程图中的步骤不彼此相斥,并且在不影响本发明的范围的情况下,其它步骤可被添加到流程图中,或者一些步骤可从流程图被删除。
[0384]
实施例包括示例的各种方面。针对各个方面的所有可能组合可不被描述,但本领域技术人员将能够认识到不同组合。因此,本发明可包括权利要求范围内的所有替换形式、修改形式和改变。
[0385]
本发明的实施例可按照程序指令的形式来实施,其中,所述程序指令可由各种计算机组件来执行,并被记录在计算机可读记录介质上。计算机可读记录介质可包括单独的程序指令、数据文件、数据结构等,或者是程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可被特别设计和构造用于本发明,或者对于计算机软件技术领域的普通技术人员而言是已知的。计算机可读记录介质的示例包括:磁记录介质(诸如硬盘、软盘和磁带);光学数据存储介质(诸如cd-rom或dvd-rom);磁光介质(诸如软光盘);以及被特别构造用于存储和实施程序指令的硬件装置(诸如只读存储器(rom)、随机存取存储器(ram)、闪存存储器等)。程序指令的示例不仅包括由编译器形成的机器语言代码,还包括可由计算机使用解释器实施的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作以进行根据本发明的处理,反之亦可。
[0386]
虽然已根据特定术语(诸如详细元件)以及有限实施例和附图描述了本发明,但它们仅被提供用于帮助更通俗地理解本发明,并且本发明不限于上述实施例。本发明所属领域的技术人员将理解,可从上述描述做出各种修改和改变。
[0387]
因此,本发明的精神不应受限于上述实施例,并且权利要求及其等同物的全部范围将落入本发明的范围和精神之内。
[0388]
工业适用性
[0389]
本发明可被用于对图像进行编码/解码。
技术特征:
1.一种由解码设备执行的图像解码方法,所述图像解码方法包括以下步骤:选择与当前块相邻的多条参考样点线中的一条参考样点线;基于所选择的参考样点线推导出参考样点线;对所述参考样点线进行滤波;以及基于经滤波的参考样点线推导出所述当前块的预测样点,其中,对所述参考样点线进行滤波的步骤包括:基于所述当前块的帧内预测模式、所述当前块的尺寸、所述当前块的类型和所选择的参考样点线的位置来确定是否执行滤波。2.根据权利要求1所述的图像解码方法,其中,基于在所述多条参考样点线当中选择的与所述当前块相邻的第一参考样点线,对所述参考样点线进行滤波。3.根据权利要求1所述的图像解码方法,其中,基于所述当前块的边界是否是编码树块ctb的边界来选择所述参考样点线。4.根据权利要求1所述的图像解码方法,其中,基于所述当前块的边界是编码树块ctb的边界来选择与所述当前块相邻的第一参考样点线。5.根据权利要求1所述的图像解码方法,其中,所述多条参考样点线的数量为4。6.根据权利要求1所述的图像解码方法,其中,推导出所述参考样点线的步骤包括:确定参考样点的可用性,其中,基于与不可用参考样点相邻的可用参考样点来替换所述不可用参考样点。7.一种由图像编码设备执行的图像编码方法,所述图像编码方法包括以下步骤:选择与当前块相邻的多条参考样点线中的一条参考样点线;基于所选择的参考样点线推导出参考样点线;对所述参考样点线进行滤波;基于经滤波的参考样点线推导出所述当前块的预测样点;以及对包括所述当前块的帧内预测模式信息的图像信息进行编码,其中,对所述参考样点线进行滤波的步骤包括:基于所述当前块的帧内预测模式、所述当前块的尺寸、所述当前块的类型和所选择的参考样点线的位置来确定是否执行滤波。8.根据权利要求7所述的图像编码方法,其中,基于在所述多条参考样点线当中选择的与所述当前块相邻的第一参考样点线,对所述参考样点线进行滤波。9.一种用于图像数据的发送方法,所述发送方法包括以下步骤:获得用于经编码的图像信息的比特流,其中,所述经编码的图像信息是基于以下步骤而产生的:选择与当前块相邻的多条参考样点线中的一条参考样点线,基于所选择的参考样点线推导出参考样点线,对所述参考样点线进行滤波,基于经滤波的参考样点线推导出所述当前块的预测样点,以及对包括所述当前块的帧内预测模式信息的图像信息进行编码;以及发送包括所述比特流的所述图像数据,其中,对所述参考样点线进行滤波的步骤包括:基于所述当前块的帧内预测模式、所述当前块的尺寸、所述当前块的类型和所选择的参考样点线的位置来确定是否执行滤波。10.一种存储由一种方法产生的比特流的计算机可读数字存储介质,所述方法包括以下步骤:选择与当前块相邻的多条参考样点线中的一条参考样点线;
基于所选择的参考样点线推导出参考样点线;对所述参考样点线进行滤波;基于经滤波的参考样点线推导出所述当前块的预测样点;以及对包括所述当前块的帧内预测模式信息的图像信息进行编码,其中,对所述参考样点线进行滤波的步骤包括:基于所述当前块的帧内预测模式、所述当前块的尺寸、所述当前块的类型和所选择的参考样点线的位置来确定是否执行滤波。
技术总结
本申请涉及图像编码/解码方法、图像数据的发送方法以及存储介质。根据本发明的图像解码方法可以包括:选择与当前块相邻的多条参考样点线中的一条参考样点线;基于所选择的参考样点线推导出参考样点线;对参考样点线进行滤波;以及基于经滤波的参考样点线推导出当前块的预测样点,其中,对参考样点线进行滤波的步骤包括:基于当前块的帧内预测模式、当前块的尺寸、当前块的类型和所选择的参考样点线的位置来确定是否执行滤波。置来确定是否执行滤波。置来确定是否执行滤波。
技术研发人员:高玄硕 林成昶 姜晶媛 全东山 赵承眩 李镇浩 李河贤 金晖容 崔振秀
受保护的技术使用者:LX半导体科技有限公司
技术研发日:2018.01.02
技术公布日:2023/10/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/