一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用调色板模式的图像编码/解码方法和装置及发送比特流的方法与流程

2022-05-21 14:36:49 来源:中国专利 TAG:


1.本公开涉及使用调色板模式的图像编码/解码方法和设备和发送比特流的方法,更具体地,涉及一种基于当前块的划分结构选择性地更新调色板预测子的图像编码/解码方法和设备以及发送通过本公开的图像编码方法/设备生成的比特流的方法。


背景技术:

2.最近,各个领域对高分辨率和高质量图像,例如高清(hd)图像和超高清(uhd)图像的需求正在增加。随着图像数据的分辨率和质量的改进,与现有图像数据相比,传输的信息量或比特量相对增加。传输信息量或比特量的增加导致传输成本和存储成本的增加。
3.因此,需要高效的图像压缩技术来有效地传输、存储和再现关于高分辨率和高质量图像的信息。


技术实现要素:

4.技术问题
5.本公开的目的是提供一种具有改进的编码/解码效率的图像编码/解码方法和设备。
6.本公开的目的是提供一种使用调色板模式的图像编码/解码方法和设备。
7.本公开的目的是提供一种基于当前块的划分结构选择性地更新调色板预测子的图像编码/解码方法和设备。
8.本公开的目的是提供一种基于当前块的划分结构选择性地应用调色板模式的图像编码/解码方法和设备。
9.本公开的另一个目的是提供一种发送由根据本公开的图像编码方法或设备生成的比特流的方法。
10.本公开的另一个目的是提供一种存储由根据本公开的图像编码方法或设备生成的比特流的记录介质。
11.本公开的另一个目的是提供一种记录介质,其存储由根据本公开的图像解码设备接收、解码并用于重构图像的比特流。
12.本公开所解决的技术问题不限于上述技术问题,本领域技术人员通过以下描述将清楚此处未描述的其它技术问题。
13.技术方案
14.根据本公开的一方面的由图像解码设备执行的图像解码方法可以包括以下步骤:基于调色板模式应用于当前块,从比特流获得当前块的调色板信息和调色板索引预测信息;基于调色板信息来构建用于当前块的调色板预测子并且基于调色板预测子来构建用于当前块的调色板表;基于调色板索引预测信息来生成用于当前块的调色板索引图;以及基于调色板表和调色板索引图对当前块进行解码。调色板预测子可以基于当前块的划分结构
选择性地更新。
15.另外,根据本公开的一方面的图像解码设备可以包括存储器和至少一个处理器。所述至少一个处理器可以基于调色板模式应用于当前块,从比特流获得当前块的调色板信息和调色板索引预测信息;基于调色板信息来构建用于当前块的调色板预测子并且基于调色板预测子来构建用于当前块的调色板表;基于调色板索引预测信息来生成用于当前块的调色板索引图;并且基于调色板表和调色板索引图对当前块进行解码。基于当前块的划分结构选择性地更新调色板预测子。
16.另外,根据本公开的一方面的由图像编码设备执行的图像编码方法可以包括以下步骤:基于调色板模式应用于当前块,构建用于当前块的调色板预测子并且基于调色板预测子构建用于当前块的调色板表;基于调色板表来生成用于当前块的调色板索引图;以及基于调色板索引图对当前块进行编码。基于当前块的划分结构选择性地更新调色板预测子。
17.此外,根据本公开的另一方面的传输方法可以发送由本公开的图像编码设备或图像编码方法生成的比特流。
18.此外,根据本公开的另一方面的计算机可读记录介质可以存储由本公开的图像编码设备或图像编码方法生成的比特流。
19.以上关于本公开的简要概述的特征仅仅是本公开的以下详细描述的示例性方面,并不限制本公开的范围。
20.有益效果
21.根据本公开,能够提供一种具有改进的编码/解码效率的图像编码/解码方法和设备。
22.根据本公开,能够提供一种基于改进的调色板模式的图像编码/解码方法和设备。
23.根据本公开,能够提供一种基于当前块的划分结构选择性地应用调色板模式的图像编码/解码方法和设备。
24.此外,根据本公开,能够提供一种发送由根据本公开的图像编码方法或设备生成的比特流的方法。
25.此外,根据本公开,能够提供一种存储由根据本公开的图像编码方法或设备生成的比特流的记录介质。
26.此外,根据本公开,能够提供一种记录介质,其存储由根据本公开的图像解码设备接收、解码并用于重构图像的比特流。
27.本领域的技术人员将理解,通过本公开可以实现的效果不限于上文已经具体描述的内容,并且将从详细描述中更清楚地理解本公开的其它优点。
附图说明
28.图1是示意性地示出本公开的实施方式适用于的视频编码系统的视图。
29.图2是示意性地示出本公开的实施方式适用于的图像编码设备的视图。
30.图3是示意性地示出本公开的实施方式适用于的图像解码设备的视图。
31.图4是示出根据实施方式的图像的分割结构的视图。
32.图5是示出根据多类型树结构的块的分割类型的实施方式的视图。
33.图6是示出根据本公开的具有嵌套多类型树结构的四叉树中的块划分信息的信令机制的视图。
34.图7是示出将ctu分割成多个cu的实施方式的视图。
35.图8是例示冗余划分图案的实施方式的视图。
36.图9是例示4:2:0颜色格式的亮度块和色度块的示例的视图。
37.图10a至图10c是例示用于将单树结构切换为双树结构的语法的示例的视图。
38.图11是例示基于帧内预测的视频/图像编码方法的流程图。
39.图12是例示根据本公开的帧内预测器的配置的视图。
40.图13是例示基于帧内预测的视频/图像解码方法的流程图。
41.图14是例示根据本公开的帧内预测器的配置的视图。
42.图15是例示可以在调色板模式下使用的扫描方法的示例的视图。
43.图16是例示当前块的调色板编码处理的示例的视图。
44.图17是例示用于调色板模式的一些coding_unit语法的视图。
45.图18a至图18e是例示用于调色板模式的palette_coding语法的视图。
46.图19是例示具有局部双树结构的ctu的示例的视图。
47.图20是例示在图19的示例中cu的解码处理的示例的视图。
48.图21和图22是例示在图20的解码处理中应用调色板模式时出现的问题的视图。
49.图23是例示根据本公开的实施方式的调色板编码方法的流程图。
50.图24是例示在图19的示例中未更新调色板预测子时的调色板编码处理的视图。
51.图25是例示基于当前块的划分结构选择性地更新调色板预测子的处理的示例的视图。
52.图26是例示根据本公开的实施方式的调色板解码方法的流程图。
53.图27是例示根据本公开的实施方式的调色板编码方法的流程图。
54.图28是例示包括调色板模式标志的coding_unit语法的详细示例的视图。
55.图29是例示根据本公开的实施方式的调色板解码方法的流程图。
56.图30是示出本公开的实施方式适用于的内容流系统的视图。
具体实施方式
57.以下,将结合附图对本公开的实施方式进行详细描述,以易于本领域技术人员实施。然而,本公开可以以各种不同的形式实施,并且不限于这里描述的实施方式。
58.在描述本公开时,如果确定相关已知功能或构造的详细描述使本公开的范围不必要地含糊不清,则将省略其详细描述。在附图中,省略了与本公开的描述无关的部分,并且相似的附图标记被赋予相似的部分。
59.在本公开中,当一个组件“连接”、“耦合”或“链接”到另一个组件时,它不仅可以包括直接连接关系,还可以包括中间组件存在的间接连接关系。另外,当一个组件“包括”或“具有”其它组件时,除非另有说明,否则是指还可以包括其它组件,而不是排除其它组件。
60.在本公开中,术语第一、第二等仅用于将一个组件与其它组件区分开的目的,并且不限制组件的顺序或重要性,除非另有说明。相应地,在本公开的范围内,一个实施方式中的第一组件在另一个实施方式中可以被称为第二组件,类似地,一个实施方式中的第二组
件在另一个实施方式中可以被称为第一组件。
61.在本公开中,相互区分的组件旨在清楚地描述每个特征,并不意味着组件必须分开。即,多个组件可以集成在一个硬件或软件单元中实现,或者一个组件可以在多个硬件或软件单元中分布和实现。因此,即使没有特别说明,这些组件集成或分布式的实施方式也包括在本公开的范围内。
62.在本公开中,各个实施方式中所描述的组件并不一定是必不可少的组件,一些组件可以是可选的组件。因此,由实施方式中描述的组件的子集组成的实施方式也包括在本公开的范围内。此外,除了在各种实施方式中描述的组件之外还包括其它组件的实施方式包括在本公开的范围内。
63.本公开涉及图像的编码和解码,除非在本公开中重新定义,否则本公开中使用的术语可以具有本公开所属技术领域中常用的一般含义。
64.在本公开中,“画面”一般是指指定特定时间段内的一个图像的单元,而切片(slice)/拼块(tile)是构成画面的一部分的编码单元,一个画面可以由一个或更多个切片/拼块组成。此外,切片/拼块可以包括一个或更多个编码树单元(ctu)。
65.在本公开中,“像素”或“像元(pel)”可以意指构成一个画面(或图像)的最小单元。此外,“样本”可以用作对应于像素的术语。一个样本一般可以表示像素或像素的值,也可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。
66.在本公开中,“单元”可以表示图像处理的基本单元。该单元可以包括画面的特定区域和与该区域相关的信息中的至少一个。在某些情况下,该单元可以与诸如“样本阵列”、“块”或“区域”的术语互换使用。在一般情况下,m
×
n块可以包括m列n行的样本(或样本阵列)或变换系数的集合(或阵列)。
67.在本公开中,“当前块”可以意指“当前编码块”、“当前编码单元”、“编码目标块”、“解码目标块”或“处理目标块”中的一个。当执行预测时,“当前块”可以意指“当前预测块”或“预测目标块”。当执行变换(逆变换)/量化(解量化)时,“当前块”可以意指“当前变换块”或“变换目标块”。当执行滤波时,“当前块”可以意指“滤波目标块”。
68.此外,在本公开中,除非明确声明为色度块,否则“当前块”可以意指包括亮度分量块和色度分量块二者的块或者“当前块的亮度块”。当前块的色度分量块可以通过包括对诸如“亮度块”或“当前亮度块”的亮度分量块的显式描述来表达。另外,当前块的色度分量块可以通过包括对诸如“色度块”或“当前色度块”的色度分量块的显式描述来明确地表达。
69.在本公开中,斜线“/”或“,”可以解释为指示“和/或”。例如,“a/b”和“a,b”可以意指“a和/或b”。此外,“a/b/c”和“a/b/c”可以意指“a、b和/或c中的至少一个”。
70.在本公开中,术语“或”应被解释以指示“和/或”。例如,表达“a或b”可以包括1)仅“a”,2)仅“b”,或3)“a和b”两者。换言之,在本公开中,“或”应被解释以指示“附加地或可替选地”。
71.视频编码系统的概述
72.图1是示意性地示出根据本公开的视频编码系统的视图。
73.根据实施方式的视频编码系统可以包括编码设备10和解码设备20。编码设备10可以将编码的视频和/或图像信息或数据以文件或流的形式经由数字存储介质或网络递送到解码设备20。
74.根据实施方式的编码设备10可以包括视频源生成器11、编码单元12和发送器13。根据实施方式的解码设备20可以包括接收器21、解码单元22和渲染器23。编码单元12可以称为视频/图像编码单元,解码单元22可以称为视频/图像解码单元。发送器13可以被包括在编码单元12中。接收器21可以被包括在解码单元22中。渲染器23可以包括显示器并且显示器可以被配置为单独的装置或外部组件。
75.视频源生成器11可以通过捕获、合成或生成视频/图像的过程来获取视频/图像。视频源生成器11可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板计算机和智能电话,并且可以(以电子方式)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获过程可以被生成相关数据的过程代替。
76.编码单元12可以对输入视频/图像进行编码。为了压缩和编码效率,编码单元12可以执行一系列过程,例如预测、变换和量化。编码单元12可以以比特流的形式输出编码数据(编码视频/图像信息)。
77.发送器13可以通过数字存储介质或网络以文件或流的形式将以比特流的形式输出的编码视频/图像信息或数据传输到解码设备20的接收器21。数字存储介质可以包括各种存储介质,例如usb、sd、cd、dvd、蓝光、hdd、ssd等。发送器13可以包括用于通过预定文件格式生成媒体文件的元件并且可以包括用于通过广播/通信网络传输的元件。接收器21可以从存储介质或网络中提取/接收比特流并将比特流传输到解码单元22。
78.解码单元22可以通过执行与编码单元12的操作相对应的一系列过程,例如解量化、逆变换和预测来解码视频/图像。
79.渲染器23可以渲染解码的视频/图像。渲染的视频/图像可以通过显示器显示。
80.图像编码设备的概述
81.图2是示意性地示出本公开的实施方式可适用于的图像编码设备的视图。
82.如图2所示,图像编码设备100可以包括图像分割器110、减法器115、变换器120、量化器130、解量化器140、逆变换器150、加法器155、滤波器160、存储器170、帧间预测单元180、帧内预测单元185和熵编码器190。帧间预测单元180和帧内预测单元185可以统称为“预测单元”。变换器120、量化器130、解量化器140和逆变换器150可以被包括在残差处理器中。残差处理器还可以包括减法器115。
83.在一些实施方式中,配置图像编码设备100的多个组件中的全部或至少一些可以由一个硬件组件(例如,编码器或处理器)来配置。此外,存储器170可以包括解码画面缓冲器(dpb)并且可以由数字存储介质配置。
84.图像分割器110可将输入到图像编码设备100的输入图像(或画面或帧)分割成一个或更多个处理单元。例如,处理单元可以称为编码单元(cu)。可以通过根据四叉树二叉树三叉树(qt/bt/tt)结构递归地分割编码树单元(ctu)或最大编码单元(lcu)来获取编码单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编码单元分割为更深深度的多个编码单元。对于编码单元的分割,可以首先应用四叉树结构,然后可以应用二叉树结构和/或三叉树结构。可以基于不再分割的最终编码单元来执行根据本公开的编码过程。可以将最大编码单元用作最终编码单元,也可以将通过分割最大编码单元获取的更深
深度的编码单元用作最终编码单元。这里,编码过程可以包括稍后将描述的预测、变换和重构的过程。作为另一个示例,编码过程的处理单元可以是预测单元(pu)或变换单元(tu)。预测单元和变换单元可以从最终编码单元划分或分割。预测单元可以是样本预测单元,变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
85.预测单元(帧间预测单元180或帧内预测单元185)可以对要处理的块(当前块)执行预测,并且生成包括当前块的预测样本的预测块。预测单元可以在当前块或cu的基础上确定是应用帧内预测还是帧间预测。预测单元可以生成与当前块的预测有关的各种信息,并且将生成的信息传输到熵编码器190。关于预测的信息可以在熵编码器190中被编码并且以比特流的形式输出。
86.帧内预测单元185可以通过参考当前画面中的样本来预测当前块。根据帧内预测模式和/或帧内预测技术,参考样本可以位于当前块的邻居中或者可以被分开放置。帧内预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如dc模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅仅是示例,可以根据设置使用更多或更少的定向预测模式。帧内预测单元185可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
87.帧间预测单元180可以基于由参考画面上的运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单元来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。包括参考块的参考画面和包括时间邻近块的参考画面可以相同或不同。时间邻近块可以被称为并置参考块、并置cu(colcu)等。包括时间邻近块的参考画面可以被称为并置画面(colpic)。例如,帧间预测单元180可基于邻近块配置运动信息候选列表并生成指定使用哪个候选来推导当前块的运动向量和/或参考画面索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测单元180可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,可以不传输残差信号。在运动向量预测(mvp)模式的情况下,邻近块的运动向量可以用作运动向量预测子,并且当前块的运动向量可以通过编码运动向量差和运动向量预测子的指示符来用信号通知当前块的运动向量。运动向量差可以意指当前块的运动向量与运动向量预测子之间的差。
88.预测单元可以基于以下描述的各种预测方法和预测技术来生成预测信号。例如,预测单元不仅可以应用帧内预测或帧间预测,还可以同时应用帧内预测和帧间预测,以预测当前块。同时应用帧内预测和帧间预测两者来预测当前块的预测方法可以称为组合帧间和帧内预测(ciip)。此外,预测单元可以执行帧内块复制(ibc)以预测当前块。帧内块复制可以用于游戏等的内容图像/视频编码,例如,屏幕内容编码(scc)。ibc是一种在与当前块相隔预定距离的位置处使用当前画面中先前重构的参考块来预测当前画面的方法。当应用ibc时,参考块在当前画面中的位置可以被编码为对应于预定距离的向量(块向量)。ibc基本上在当前画面中执行预测,但是可以类似于帧间预测来执行,因为在当前画面内推导参考块。即,ibc可以使用本公开中描述的帧间预测技术中的至少一种。
89.预测单元生成的预测信号可用于生成重构信号或生成残差信号。减法器115可以通过从输入图像信号(原始块或原始样本阵列)中减去从预测单元输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列)。生成的残差信号可以被传输到变换器120。
90.变换器120可以通过将变换技术应用于残差信号来生成变换系数。例如,变换技术可以包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen-lo
è
ve变换(klt)、基于图的变换(gbt)或条件非线性变换(cnt)中的至少一种。这里,gbt是指当像素之间的关系信息由图形表示时从图形获得的变换。cnt是指基于使用所有先前重构的像素生成的预测信号获取的变换。此外,变换处理可以应用于具有相同大小的方形像素块或者可以应用于具有可变大小而不是方形的块。
91.量化器130可以对变换系数进行量化并且将它们传输到熵编码器190。熵编码器190可以对量化的信号(关于量化的变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以被称为残差信息。量化器130可基于系数扫描顺序将块形式的量化变换系数重新排列为一维向量形式,并基于一维向量形式的量化变换系数生成关于量化变换系数的信息。
92.熵编码器190可以执行各种编码方法,例如指数哥伦布、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等。熵编码器190可以一起或单独地编码量化变换系数以外的视频/图像重构所需的信息(例如,语法元素的值等)。编码的信息(例如,编码的视频/图像信息)可以比特流的形式以网络抽象层(nal)为单元进行传输或存储。视频/图像信息还可以包括关于各种参数集的信息,例如自适应参数集(aps)、画面参数集(pps)、序列参数集(sps)或视频参数集(vps)。此外,视频/图像信息还可以包括通用约束信息。本公开中描述的用信号通知的信息、传输的信息和/或语法元素可以通过上述编码过程被编码并且被包括在比特流中。
93.比特流可以通过网络传输或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,数字存储介质可以包括usb、sd、cd、dvd、蓝光、hdd、ssd等各种存储介质。可以包括传输从熵编码器190输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)作为图像编码设备100的内部/外部元件。另选地,可以提供发送器作为熵编码器190的组件。
94.从量化器130输出的量化变换系数可用于生成残差信号。例如,可以通过解量化器140和逆变换器150对量化变换系数应用解量化和逆变换来重构残差信号(残差块或残差样本)。
95.加法器155将重构残差信号与从帧间预测单元180或帧内预测单元185输出的预测信号相加,以生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差,例如应用跳过模式的情况,则可以将预测块用作重构块。加法器155可以称为重构器或重构块生成器。生成的重构信号可以用于当前画面中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个画面进行帧间预测。
96.滤波器160可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器160可以通过对重构画面应用各种滤波方法来生成修改的重构画面,并将修改的重构画面存储在存储器170中,具体地,存储器170的dpb中。各种滤波方法可以包括例如去块滤波、
样本自适应偏移、自适应环路滤波、双边滤波等。滤波器160可以生成与滤波有关的各种信息并将所生成的信息传输到熵编码器190,如稍后在每种滤波方法的描述中所描述的。与滤波相关的信息可以由熵编码器190编码并以比特流的形式输出。
97.传输到存储器170的修改的重构画面可以用作帧间预测单元180中的参考画面。当通过图像编码设备100应用帧间预测时,可以避免图像编码设备100和图像解码设备之间的预测失配并且可以提高编码效率。
98.存储器170的dpb可以存储修改的重构画面以用作帧间预测单元180中的参考画面。存储器170可以存储从其中推导(或编码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测单元180并用作空间邻近块的运动信息或时间邻近块的运动信息。存储器170可以存储当前画面中重构块的重构样本并且可以将重构样本传送到帧内预测单元185。
99.图像解码设备的概述
100.图3是示意性地示出本公开的实施方式可适用的图像解码设备的视图。
101.如图3所示,图像解码设备200可以包括熵解码器210、解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测单元260和帧内预测单元265。帧间预测单元260和帧内预测单元265可以统称为“预测单元”。解量化器220和逆变换器230可以被包括在残差处理器中。
102.根据实施方式,配置图像解码设备200的多个组件中的全部或至少一些可以由硬件组件(例如,解码器或处理器)来配置。此外,存储器250可以包括解码画面缓冲器(dpb)或者可以由数字存储介质配置。
103.已经接收到包括视频/图像信息的比特流的图像解码设备200可以通过执行与由图2的图像编码设备100执行的处理相对应的处理来重构图像。例如,图像解码设备200可以使用在图像编码设备中应用的处理单元来执行解码。因此,解码的处理单元例如可以是编码单元。编码单元可以通过分割编码树单元或最大编码单元来获取。通过图像解码设备200解码和输出的重构图像信号可以通过再现设备(未示出)再现。
104.图像解码设备200可以接收以比特流的形式从图2的图像编码设备输出的信号。接收到的信号可以通过熵解码器210进行解码。例如,熵解码器210可以解析比特流以推导图像重构(或画面重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于各种参数集的信息,例如自适应参数集(aps)、画面参数集(pps)、序列参数集(sps)或视频参数集(vps)。此外,视频/图像信息还可以包括通用约束信息。图像解码设备还可以基于关于参数集的信息和/或通用约束信息对画面进行解码。本公开中描述的用信号通知/接收的信息和/或语法元素可以通过解码过程被解码并从比特流中获得。例如,熵解码器210基于诸如指数哥伦布编码、cavlc或cabac的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素的值和残差的变换系数的量化值。更具体地,cabac熵解码方法可以接收与比特流中每个语法元素对应的bin,使用解码目标语法元素信息、邻近块和解码目标块的解码信息或前一阶段解码的符号/bin的信息来确定上下文模型,根据确定的上下文模型通过预测bin的出现概率来对bin执行算术解码,并且生成与每个语法元素的值对应的符号。在这种情况下,cabac熵解码方法可以在确定上下文模型后,通过将解码的符号/bin的信息用于下一个符号/bin的上下文模型来更新上下文模型。由熵解码器210解码的信息中
与预测相关的信息可以被提供给预测单元(帧间预测单元260和帧内预测单元265),并且在熵解码器210中对其执行熵解码的残差值,即,量化变换系数和相关的参数信息可以被输入到解量化器220。另外,可以将熵解码器210解码的信息当中关于滤波的信息提供给滤波器240。此外,用于接收从图像编码设备输出的信号的接收器(未示出)可以进一步被配置为图像解码设备200的内部/外部元件,或者接收器可以是熵解码器210的组件。
105.此外,根据本公开的图像解码设备可以被称为视频/图像/画面解码设备。图像解码设备可以分为信息解码器(视频/图像/画面信息解码器)和样本解码器(视频/图像/画面样本解码器)。信息解码器可以包括熵解码器210。样本解码器可以包括解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测单元160或帧内预测单元265中的至少一个。
106.解量化器220可以对量化变换系数进行解量化并输出变换系数。解量化器220可以以二维块的形式重新排列量化变换系数。在这种情况下,可以基于在图像编码设备中执行的系数扫描顺序来执行重新排列。解量化器220可以通过使用量化参数(例如,量化步长信息)对量化变换系数执行解量化并获得变换系数。
107.逆变换器230可以对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
108.预测单元可以对当前块执行预测并生成包括当前块的预测样本的预测块。预测单元可以基于从熵解码器210输出的关于预测的信息来确定是将帧内预测还是帧间预测应用于当前块,并且可以确定特定帧内/帧间预测模式(预测技术)。
109.与在图像编码设备100的预测单元中描述的相同的是,预测单元可以基于稍后描述的各种预测方法(技术)来生成预测信号。
110.帧内预测单元265可以通过参考当前画面中的样本来预测当前块。帧内预测单元185的描述同样适用于帧内预测单元265。
111.帧间预测单元260可以基于参考画面上由运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单元来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。例如,帧间预测单元260可以基于邻近块配置运动信息候选列表,并且基于接收到的候选选择信息推导当前块的运动向量和/或参考画面索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指定当前块的帧间预测模式的信息。
112.加法器235可以通过将获得的残差信号与从预测单元(包括帧间预测单元260和/或内预测单元265)输出的预测信号(预测块、预测样本阵列)相加生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差,例如在应用跳过模式时,则可以将预测块用作重构块。加法器155的描述同样适用于加法器235。加法器235可以称为重构器或重构块生成器。生成的重构信号可以用于当前画面中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个画面进行帧间预测。
113.滤波器240可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波
器240可以通过对重构画面应用各种滤波方法来生成修改的重构画面,并将修改的重构画面存储在存储器250中,具体地,存储器250的dpb中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波、双边滤波等。
114.存储在存储器250的dpb中的(修改的)重构画面可以用作帧间预测单元260中的参考画面。存储器250可以存储从其中推导(或解码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测单元260,以用作空间邻近块的运动信息或时间邻近块的运动信息。存储器250可以存储当前画面中重构块的重构样本并将重构样本传送到帧内预测单元265。
115.在本公开中,在图像编码设备100的滤波器160、帧间预测单元180和帧内预测单元185中描述的实施方式可以同等地或对应地应用于图像解码设备200的滤波器240、帧间预测单元260和帧内预测单元265。
116.图像分割的概述
117.可以基于图像分割结构来执行根据本公开的视频/图像编码方法如下。具体地,可以基于根据图像分割结构而推导的ctu、cu(和/或tu、pu)来执行将稍后描述的预测、残差处理((逆)变换、(解)量化等)、语法元素编码和滤波的过程。可以按块单元对图像进行分割并且可以在编码设备的图像分割器110中执行块分割过程。分割相关信息可以由熵编码器190编码并且以比特流的形式发送到解码设备。解码设备的熵解码器210可以基于从比特流获得的分割相关信息来推导当前画面的块分割结构,并且基于此,可以执行一系列的过程(例如,预测、残差处理、块/画面重构、环路内滤波等)以进行图像解码。
118.画面可以被分割成编码树单元(ctu)的序列。图4示出了画面被分割成ctu的示例。ctu可以对应于编码树块(ctb)。另选地,ctu可以包括亮度样本的编码树块和对应色度样本的两个编码树块。例如,对于包含三个样本阵列的画面,ctu可以包括亮度样本的一个n
×
n块和色度样本的两个对应块。
119.ctu分割的概述
120.如上所述,可以通过根据四叉树/二叉树/三叉树(qt/bt/tt)结构递归地对编码树单元(ctu)或最大编码单元(lcu)进行分割来获取编码单元。例如,ctu可以被首先分割成四叉树结构。此后,可以通过多类型树结构对四叉树结构的叶节点进一步进行分割。
121.根据四叉树的分割意味着当前cu(或ctu)被同等地分割成四个。通过根据四叉树的分割,可以将当前cu分割成具有相同宽度和相同高度的四个cu。在当前cu不再被分割成四叉树结构时,当前cu对应于四叉树结构的叶节点。与四叉树结构的叶节点对应的cu可以不再被分割并且可以被用作上述最终编码单元。另选地,可以通过多类型树结构对与四叉树结构的叶节点对应的cu进一步进行分割。
122.图5是示出了根据多类型树结构的块的分割类型的实施方式的视图。根据多类型树结构的分割可以包括根据二叉树结构的两种类型的划分和根据三叉树结构的两种类型的划分。
123.根据二叉树结构的两种类型的划分可以包括垂直二叉划分(split_bt_ver)和水平二叉划分(split_bt_hor)。垂直二叉划分(split_bt_ver)意味着当前cu被在垂直方向上同等地划分成两个。如图4所示,通过垂直二叉划分,可以生成高度与当前cu相同并且宽度为当前cu的宽度的一半的两个cu。水平二叉划分(split_bt_hor)意味着当前cu被在水平方
向上同等地划分成两个。如图5所示,通过水平二叉划分,可以生成高度为当前cu的高度的一半并且宽度与当前cu相同的两个cu。
124.根据三叉数结构的两种类型的划分可以包括垂直三叉划分(split_tt_ver)和水平三叉划分(split_tt_hor)。在垂直三叉划分(split_tt_ver)中,当前cu被以1:2:1的比率在垂直方向上划分。如图5所示,通过垂直三叉划分,可以生成高度与当前cu相同并且宽度为当前cu的宽度的1/4的两个cu以及高度与当前cu相同并且宽度为当前cu的宽度的一半的一个cu。在水平三叉划分(split_tt_hor)中,当前cu被以1:2:1的比率在水平方向上划分。如图5所示,通过水平三叉划分,可以生成高度为当前cu的高度的1/4并且宽度与当前cu相同的两个cu以及高度为当前cu的高度的一半并且宽度与当前cu相同的一个cu。
125.图6是示出了根据本公开的具有嵌套多类型树结构的四叉树中的块划分信息的信令机制的视图。
126.这里,ctu被视为四叉树的根节点,并且被首次分割成四叉树结构。用信号通知指定是否对当前cu(四叉树的ctu或节点(qt_node))执行四叉树划分的信息(例如,qt_split_flag)。例如,当qt_split_flag具有第一值(例如,“1”)时,当前cu可以被四叉树分割。另外,当qt_split_flag具有第二值(例如,“0”)时,当前cu不被四叉树分割,而是变成四叉树的叶节点(qt_leaf_node)。然后可以将每个四叉树叶节点进一步分割成多类型树结构。也就是说,四叉树的叶节点可以变成多类型树的节点(mtt_node)。在多类型树结构中,用信号通知第一标志(例如,mtt_split_cu_flag)以指定当前节点是否被附加地分割。如果对应节点被附加地分割(例如,如果第一标志为1),则可以用信号通知第二标志(例如,mtt_split_cu_vertical_flag)以指定划分方向。例如,划分方向在第二标志为1时可以是垂直方向,而在第二标志为0时可以是水平方向。然后,可以用信号通知第三标志(例如,mtt_split_cu_binary_flag)以指定划分类型是二叉划分类型还是三叉划分类型。例如,划分类型在第三标志为1时可以是二叉划分类型,而在第三标志为0时可以是三叉划分类型。通过二叉划分或三叉划分获取的多类型树的节点可以被进一步分割成多类型树结构。然而,可以不将多类型树的节点分割成四叉树结构。如果第一标志为0,则多类型树的对应节点不再被划分,而是变成多类型树的叶节点(mtt_leaf_node)。与多类型树的叶节点对应的cu可以被用作上述最终编码单元。
127.基于mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag,可以如下表1所示推导cu的多类型树划分模式(mttsplitmode)。在以下描述中,多类型树划分模式可以被称为多树划分类型或划分类型。
128.[表1]
[0129]
mttsplitmodemtt_split_cu_vertical_flagmtt_split_cu_binary_flagsplit_tt_hor00split_bt_hor01split_tt_ver10split_bt_ver11
[0130]
图7是示出了在应用四叉树之后通过应用多类型树来将ctu分割成多个cu的示例的视图。在图7中,粗体块边710表示四叉树分割,而剩余边720表示多类型树分割。cu可以对应于编码块(cb)。在实施方式中,cu可以包括亮度样本的一个编码块以及与亮度样本对应
的色度样本的两个编码块。
[0131]
可以基于根据画面/图像的颜色格式(色度格式,例如,4:4:4、4:2:2、4:2:0等)的分量比率基于亮度分量(样本)cb或tb大小来推导色度分量(样本)cb或tb大小。在4:4:4颜色格式的情况下,可以将色度分量cb/tb大小设定为等于亮度分量cb/tb大小。在4:2:2颜色格式的情况下,可以将色度分量cb/tb的宽度设定为亮度分量cb/tb的宽度的一半并且可以将色度分量cb/tb的高度设定为亮度分量cb/tb的高度。在4:2:0颜色格式的情况下,可以将色度分量cb/tb的宽度设定为亮度分量cb/tb的宽度的一半并且可以将色度分量cb/tb的高度设定为亮度分量cb/tb的高度的一半。
[0132]
在实施方式中,当ctu的大小基于亮度样本单元为128时,cu的大小可以具有从128
×
128至4
×
4的大小,其是与ctu相同的大小。在一个实施方式中,在4:2:0颜色格式(或色度格式)的情况下,色度cb大小可以具有从64
×
64至2
×
2的大小。
[0133]
此外,在实施方式中,cu大小和tu大小可以是相同的。另选地,在cu区域中可以有多个tu。tu大小通常意指亮度分量(样本)变换块(tb)大小。
[0134]
可以基于作为预定值的最大允许tb大小maxtbsize来推导tu大小。例如,当cu大小大于maxtbsize时,可以从cu推导具有maxtbsize的多个tu(tb),并且可以以tu(tb)为单元执行变换/逆变换。例如,最大允许亮度tb大小可以是64
×
64并且最大允许色度tb大小可以是32
×
32。如果根据树结构分割的cb的宽度或高度大于最大变换宽度或高度,则cb可以被自动地(或隐式地)分割,直到满足水平和垂直方向上的tb大小极限为止。
[0135]
另外,例如,当应用帧内预测时,可以以cu(或cb)为单元推导帧内预测模式/类型,并且可以以tu(或tb)为单元执行邻近参考样本推导和预测样本生成过程。在这种情况下,在一个cu(或cb)区域中可以有一个或多个tu(或tb),并且在这种情况下,多个tu或(tb)可以共享相同的帧内预测模式/类型。
[0136]
此外,对于具有嵌套多类型树的四叉树编码树方案,可以将以下参数作为sps语法元素从编码设备用信号通知给解码设备。例如,用信号通知作为指定四叉树的根节点大小的参数的ctu大小、作为指定最小允许四叉树叶节点大小的参数的minqtsize、作为指定最大允许二叉树根节点大小的参数的maxbtsize、作为指定最大允许三叉树根节点大小的参数的maxttsize、作为指定从四叉树叶节点起进行多类型树划分的最大允许层次深度的参数的maxmttdepth、作为指定最小允许二叉树树叶节点大小的参数的minbtsize、或作为指定最小允许三叉数叶节点大小的参数的minttsize中的至少一个。
[0137]
作为使用4:2:0色度格式的实施方式,可以将ctu大小设定为128
×
128亮度块以及与这些亮度块对应的两个64
×
64色度块。在这种情况下,可以将minotsize设定为16
×
16,可以将maxbtsize设定为128
×
128,可以将maxttszie设定为64
×
64,可以将minbtsize和minttsize设定为4
×
4,并且可以将maxmttdepth设定为4。四叉树分割可以被应用于ctu以生成四叉树叶节点。四叉树叶节点可以被称作叶qt节点。四叉树叶节点的大小可以从16
×
16大小(例如,minotsize)至128
×
128大小(例如,ctu大小)。如果叶qt节点是128
×
128,则它可以不被附加地分割成二叉树/三叉树。这是因为,在这种情况下,即使被分割,它也超过maxbtsize和maxttszie(例如,64
×
64)。在其它情况下,叶qt节点可以被进一步分割成多类型树。因此,叶qt节点是多类型树的根节点,并且叶qt节点可以具有多类型树深度(mttdepth)0值。如果多类型树深度达到maxmttdepth(例如4),则可以不考虑进一步分割。
如果多类型树节点的宽度等于minbtsize并且小于或等于2xminttsize,则可以不考虑进一步水平分割。如果多类型树节点的高度等于minbtsize并且小于或等于2xminttsize,则可以不考虑进一步垂直分割。当不考虑分割时,编码设备可以跳过分割信息的信令。在这种情况下,解码设备可以推导具有预定值的分割信息。
[0138]
此外,一个ctu可以包括亮度样本的编码块(在下文中称为“亮度块”)以及与其对应的色度样本的两个编码块(在下文中称为“色度块”)。上述编码树方案可以被同等地或单独地应用于当前cu的亮度块和色度块。具体地,可以将一个ctu中的亮度块和色度块分割成相同的块树结构,并且在这种情况下,树结构被表示为single_tree。另选地,可以将一个ctu中的亮度块和色度块分割成单独的块树结构,并且在这种情况下,可以将树结构表示为dual_tree。也就是说,当ctu被分割成双树时,用于亮度块的块树结构和用于色度块的块树结构可以分别存在。在这种情况下,可以将用于亮度块的块树结构称作dual_tree_luma,并且可以将用于色度分量的块树结构称作dual_tree_chroma。对于p和b切片/拼块组,可以将一个ctu中的亮度块和色度块限制为具有相同的编码树结构。然而,对于i切片/拼块组,亮度块和色度块可以具有彼此分开的块树结构。如果应用单独的块树结构,则可以基于特定编码树结构来将亮度ctb分割成cu,并且可以基于另一编码树结构来将色度ctb分割成色度cu。也就是说,这意味着应用单独的块树结构的i切片/拼块组中的cu可以包括亮度分量的编码块或两个色度分量的编码块,并且p或b切片/拼块组的cu可以包括三个颜色分量(一个亮度分量和两个色度分量)的块。
[0139]
尽管已经描述了具有嵌套多类型树的四叉树编码树结构,但是对cu进行分割的结构不限于此。例如,可以将bt结构和tt结构解释为多分割树(mpt)结构中包括的概念,并且可以将cu解释为通过qt结构和mpt结构被分割。在通过qt结构和mpt结构对cu进行分割的示例中,可以用信号通知包括关于qt结构的叶节点被分割成多少块的信息的语法元素(例如mpt_split_type)以及包括关于qt结构的叶节点被分割成垂直方向和水平方向中的哪个的信息的语法元素(例如mpt_split_mode),以确定分割结构。
[0140]
在另一示例中,可以以与qt结构、bt结构或tt结构不同的方式对cu进行分割。也就是说,与根据qt结构将较低深度的cu分割成较高深度的cu的1/4、根据bt结构将较低深度的cu分割成较高深度的cu的1/2或者根据tt结构将较低深度的cu分割成较高深度的cu的1/4或1/2不同,在一些情况下可以将较低深度的cu分割成较高深度的cu的1/5、1/3、3/8、3/5、2/3或5/8,并且对cu进行分割的方法不限于此。
[0141]
具有多类型树的四叉树编码块结构可以提供非常灵活的块分割结构。由于多类型树中支持的分割类型,在一些情况下不同的分割图案可以潜在地产生相同的编码块结构。在编码设备和解码设备中,通过限制此类冗余分割图案的出现,可以减少分割信息的数据量。
[0142]
例如,图8示出了在二叉树划分和三叉树划分中可能出现的冗余划分图案。如图8所示,针对两步级别的一个方向的连续二叉划分810和820具有与三叉划分之后针对中心分割的二叉划分相同的编码块结构。在这种情况下,可以禁止针对三叉树划分的中心块830和840的二叉树划分。此禁止适用于所有画面的cu。当这种特定划分被禁止时,可以通过反映这种被禁止情况来修改对应语法元素的信令,从而减少针对划分用信号通知的比特数。例如,如图8中示出的示例所示,当针对cu的中心块的二叉树划分被禁止时,不用信号通知指
定划分是二叉划分还是三叉划分的语法元素mtt_split_cu_binary_flag并且其值可以由解码设备推导为0。
[0143]
色度格式的概述
[0144]
源或编码画面/图像可以包括亮度分量(y)块和两个色度分量(cb和cr)块。即,画面/图像的一个像素可以包括亮度样本和两个色度样本(cb和cr)。色度格式可以意指亮度样本和色度样本(cb和cr)的配置格式,并且可以被称为颜色格式。色度格式可以预定或自适应地用信号通知。例如,色度格式可以基于chroma_format_idc或separate_colour_plane_flag中的至少一个来用信号通知,如表2所示。chroma_format_idc或separate_colour_plane_flag中的至少一个可以通过诸如dps、vps、sps或pps的高级语法来用信号通知。例如,chroma_format_idc和separate_colour_plane_flag可以包括在sps语法中。.
[0145]
[表2]
[0146][0147]
参照表2,chroma_format_idc可以指定亮度样本和与之对应的色度样本的格式,separate_colour_plane_flag可以指定三个颜色分量y、cb和cr是否分别以4:4:4色度格式编码。
[0148]
当chroma_format_idc为0时,色度格式对应于单色格式,并且当前块可以不包括色度分量块,而是可以仅包括亮度分量块。
[0149]
另选地,当chroma_format_idc为1时,色度格式对应于4:2:0色度格式,并且色度分量块的宽度和高度可以分别对应于亮度分量块的宽度和高度的一半。
[0150]
另选地,当chroma_format_idc为2时,色度格式对应于4:2:2色度格式,色度分量块的宽度可以对应于亮度分量块的宽度的一半,色度分量块的高度可以等于亮度分量块的高度。
[0151]
另选地,当chroma_format_idc为3时,色度格式对应于4:4:4色度格式,并且色度分量块的宽度和高度可以分别等于亮度分量块的宽度和高度。
[0152]
subwidthc和subheightc可以指定亮度样本和色度样本之比。例如,当亮度分量块的宽度和高度分别为cbwidth和cbheight时,色度分量块的宽度和高度可以分别被推导为(cbwidth/subwidthc)和(cbheight/subheightc)。
[0153]
色度块的最小大小限制
[0154]
在图像编码/解码处理中,色度块的大小可能对吞吐量有很大影响。例如,当过度生成具有预定大小或更小的色度块时,图像编码/解码处理的吞吐量可能显著劣化。为了解决这种问题,cu划分可以被限制为不生成具有预定大小或更小的色度块。
[0155]
图像编码/解码设备可以设定色度块的最小大小。在示例中,色度块可以被限制为包括至少16个色度样本。例如,亮度块或色度块的划分可以被限制为不生成2
×
2、2
×
4或4
×
2色度块。结果,在双树结构中,可以限制对2
×
8、4
×
4或8
×
2色度块的四叉树划分和/或
二元划分。另外,在双树结构中,可以限制对2
×
8、2
×
16、4
×
4、4
×
8、8
×
2或8
×
4色度块的三元划分。
[0156]
具体地,当满足以下条件1-1至1-4中的任一个时,可以限制对当前块的四叉树划分。
[0157]
(条件1-1)当前块的划分结构是单树或双树亮度,并且亮度块的大小等于或小于能够四叉树划分的最小大小
[0158]
(条件1-2)当前块的划分结构是双树色度,并且色度块的大小等于或小于能够四叉树划分的最小大小
[0159]
(条件1-3)当前块的划分结构是双树色度,并且色度块的大小等于或小于4
[0160]
(条件1-4)当前块的划分结构是双树色度,并且当前块的预测模式类型是mode_type_intra
[0161]
另选地,当满足以下条件2-1至2-2中的任一个时,可以限制对当前块的二元划分。
[0162]
(条件2-1)当前块的划分结构是双树色度,并且色度块的宽度和高度的乘积等于或小于16
[0163]
(条件2-2)当前块的划分结构是双树色度,并且当前块的预测模式类型是mode_type_intra
[0164]
另选地,当满足以下条件3-1至3-2中的任一个时,可以限制对当前块的三元划分。
[0165]
(条件3-1)当前块的划分结构是双树色度,并且色度块的宽度和高度的乘积等于或小于32
[0166]
(条件3-2)当前块的划分结构是双树色度,并且当前块的预测模式类型是mode_type_intra
[0167]
从单树结构切换为双树结构
[0168]
在单树结构中,亮度块和与亮度块对应的色度块可以按相同的方式划分。例如,当亮度块被垂直三元划分时,与亮度块对应的色度块也可以被垂直三元划分。在这种情况下,是否划分cu可以基于包括在cu中的亮度块的大小来确定。另外,与亮度块对应的色度块的大小可以基于亮度块的大小和颜色格式来确定,如上面参照表2描述的。
[0169]
图9是例示4:2:0颜色格式的亮度块和色度块的示例的视图。图10a至图10c是例示用于将当前ctu切换为局部双树的语法的示例的视图。
[0170]
首先,参照图9,当在4:2:0颜色格式中亮度块的大小为16
×
8时,与亮度块对应的色度块的大小可以被确定为8
×
4。在这种情况下,当8
×
4色度块被垂直三元划分时,可以生成2
×
4色度块。当色度块被限制为包括至少16个色度样本时,2
×
4色度块无法满足最小大小限制。因此,在4:2:0颜色格式中,可以禁止8
×
4色度块的附加划分。
[0171]
即使当色度块的附加划分被禁止时,可以允许亮度块的附加划分。因此,当仅针对亮度块执行附加划分时,当前ctu内已被划分为具有单树结构的亮度块和色度块可以切换为双树结构。在这种情况下,划分为具有双树结构的亮度块和色度块的划分结构可以被称为局部双树结构。
[0172]
图10a至图10c是例示用于将单树结构切换为双树结构的语法的示例的视图。图10a至图10c例示了一个coding_tree的语法,为了方便分成三幅图。
[0173]
参照图10a至图10c,从当前ctu生成的各个cu的预测模式类型可以基于coding_
tree语法中的modetypecondition参数来确定。这里,modetypecondition可以指定各个cu的预测模式特性。另外,modetype可以指定各个cu的预测模式类型。在示例中,modetype可以具有指定诸如帧内预测、ibc、调色板模式、帧间预测等的所有预测模式可用的mode_type_all、指定仅帧内预测、ibc和调色板模式可用的mode_type_intra和指定仅帧间预测模式可用的mode_type_inter中的任一个的值。
[0174]
当前cu的modetypecondition可以根据预定条件具有第一值(例如,0)至第三值(例如,2)中的任一个。
[0175]
具体地,当满足以下条件4-1至4-4中的至少一个时,modetypecondition可以具有第一值(例如,0)。
[0176]
(条件4-1)当前cu包括在i切片中,包括在对应切片中的ctu被隐含四叉树划分成64
×
64亮度样本cu,并且64
×
64cu是双树的根节点
[0177]
(条件4-2)modetypecurr不是mode_type_all
[0178]
(条件4-3)当前块的颜色格式(色度格式)为单色
[0179]
(条件4-4)当前块的颜色格式为4:4:4格式
[0180]
当所有上述条件均不满足,并且满足以下条件5-1至5-3中的至少一个时,modetypecondition可以具有第二值(例如,1)。在条件5-1至5-3中,当前cu可以意指当前cu的亮度分量块。
[0181]
(条件5-1)当前cu的宽度和高度的乘积为64,并且当前cu被四叉树划分
[0182]
(条件5-2)当前cu的宽度和高度的乘积为64,并且当前cu被水平二元划分或垂直三元划分
[0183]
(条件5-3)当前cu的宽度和高度的乘积为32,并且当前cu被水平二元划分或垂直二元划分
[0184]
当所有上述条件均不满足并且满足以下条件6-1至6-4中的至少一个时,根据当前cu是否包括在i切片中,modetypecondition可以具有第二值(例如,1)或第三值(例如,2)。例如,作为满足条件6-1至6-4中的至少一个的情况,当当前cu包括在i切片中时,modetypecondition可以具有第二值,当当前cu不包括在i切片中时,modetypecondition可以具有第三值。在条件6-1至6-4中,当前cu可以意指当前cu的亮度分量块。
[0185]
(条件6-1)当前cu的宽度和高度的乘积为64,当前cu被水平二元划分或垂直二元划分,并且当前cu的颜色格式为4:2:0格式
[0186]
(条件6-2)包括在当前cu中的亮度块的宽度和高度的乘积为128,当前cu被水平三元划分或垂直三元划分,并且当前cu的颜色格式为4:2:0格式
[0187]
(条件6-3)当前cu的宽度为8,并且当前cu被水平二元划分
[0188]
(条件6-4)当前ctu的宽度为16,并且当前cu被垂直三元划分
[0189]
当满足所有上述条件时,modetypecondition可以具有第一值(例如,0)。
[0190]
另外,基于modetypecondition的值,可以确定当前cu的modetype。
[0191]
具体地,参照图10a,当modetypecondition具有第二值(例如,1)时(1010),modetype可以被确定为mode_type_intra(1020)。
[0192]
另选地,当modetypecondition具有第三值(例如,2)时(1030),modetype可以基于mode_constraint_flag的值来确定。这里,mode_constraint_flag可以指定帧间预测模式
是否应用于当前cu。例如,mode_constraint_flag的第一值(例如,0)可以指定仅帧间预测模式可以应用于当前cu。另外,在这种情况下,当前cu的modetype可以被确定为mode_type_inter。相比之下,mode_constraint_flag的第二值(例如,1)可以指定帧间预测模式可以不应用于当前cu。另外,在这种情况下,modetype可以被确定为mode_type_intra(1040)。
[0193]
另选地,当modetypecondition具有第二值(例如,1)和第三值(例如,2)以外的值时(例如,当modetypecondition具有第一值(例如,0)时),modetype可以被确定为与modetypecurr相同的值(1050)。这里,modetypecurr是coding_tree语法的调用输入值,并且可以意指当前cu的预测模式类型。在示例中,当当前cu是划分树的根节点时,modetypecurr可以为mode_type_all。
[0194]
基于modetypecondition的值确定的modetype可以用作用于调用通过划分当前cu而获得的下层cu的coding_tree语法的调用输入值。
[0195]
另外,基于当前cu的modetype的值,可以确定通过划分当前cu而生成的下层cu的划分结构treetype(1060)。例如,当当前cu的modetype为mode_type_intra时,下层cu的划分结构可以被确定为双树亮度dual_tree_luma。相比之下,当modetype不是mode_type_intra时,下层cu的划分结构可以是当前cu的划分结构treetypecurr。
[0196]
关于下层cu的划分结构的信息可以被存储在参数treetype中。treetype和modetype可以用作通过另外划分当前cu来调用下层cu的coding_tree语法的输入值。
[0197]
当下层cu的modetype为mode_type_intra时,当前cu可以被另外划分为具有双树结构。具体地,参照图10b,当下层cu的modetype为mode_type_intra时,下层cu可以具有双树亮度dual_tree_luma的树结构。即,当前cu的亮度分量和色度分量可以被划分为具有单独的树结构(1070)。另外,参照图10c,当当前cu的modetypecurr为mode_type_all并且下层cu的modetype为mode_type_intra时,当前cu的色度分量不被划分,并且下层cu可以具有双树色度dual_tree_chroma的树结构(1080)。
[0198]
因此,下层cu的modetype可以基于modetypecondition来确定。另外,当下层cu的modetype为mode_type_intra时,下层cu的亮度分量具有双树亮度的树结构,并且下层cu的色度分量可以具有双树色度的树结构。即,下层cu在当前ctu内部分地具有双树结构,这种划分结构可以被称为局部双树结构。
[0199]
以下,将描述色度块的帧内预测模式和帧内预测。
[0200]
帧内预测的概述
[0201]
帧内预测可以指示基于当前块所属的画面(以下称为当前画面)中的参考样本来生成当前块的预测样本的预测。当帧内预测应用于当前块时,可以推导要用于当前块的帧内预测的邻近参考样本。当前块的邻近参考样本可以包括与大小为nw
×
nh的当前块的左边界相邻的样本和与左下相邻的总共2
×
nh个样本、与当前块的上边界相邻的样本以及与右上相邻的总共2
×
nw个样本以及与当前块的左上相邻的一个样本。另选地,当前块的邻近参考样本可以包括上邻近样本的多列和左邻近样本的多行。另外,当前块的邻近参考样本可以包括与大小为nw
×
nh的当前块的右边界相邻的总共nh个样本、与当前块的下边界相邻的总共nw个样本以及与当前块的右下相邻的一个样本。
[0202]
当前块的一些邻近参考样本还未被解码或者可能不可用。在这种情况下,解码器可以通过利用可用样本替换不可用样本来构建要用于预测的邻近参考样本。另选地,可以
使用可用样本的插值来构建要用于预测的邻近参考样本。
[0203]
当推导邻近参考样本时,(i)可以基于当前块的邻近参考样本的平均或插值来推导预测样本,并且(ii)可以基于当前块的邻近参考样本当中相对于预测样本存在于特定(预测)方向上的参考样本来推导预测样本。(i)的情况可以被称为非定向模式或非角模式,(ii)的情况可以被称为定向模式或角模式。
[0204]
另外,可以利用邻近参考样本当中位于当前块的帧内预测模式的预测方向上的第一邻近样本和基于当前块的预测目标样本位于相反方向上的第二邻近样本通过插值来生成预测样本。上述情况可以被称为线性插值帧内预测(lip)。
[0205]
另外,可以使用线性模型基于亮度样本来生成色度预测样本。这种情况可以被称为线性模型(lm)模式。
[0206]
另外,可以基于滤波的邻近参考样本来推导当前块的临时预测样本,并且可以通过对临时预测样本与现有邻近参考样本当中根据帧内预测模式推导的至少一个参考样本(即,未滤波的邻近参考样本)进行加权求和来推导当前块的预测样本。这种情况可以被称为位置相关帧内预测(pdpc)。
[0207]
另外,可以从当前块的多个邻近参考样本行选择具有最高预测准确性的参考样本行,以使用对应行中位于预测方向上的参考样本来推导预测样本,此时,关于所使用的参考样本行的信息(例如,intra_luma_ref_idx)可以被编码并在比特流中用信号通知。这种情况可以被称为多参考行(mrl)帧内预测或基于mrl的帧内预测。
[0208]
另外,当前块可以被划分成垂直子分区或水平子分区,以基于相同的帧内预测模式针对各个子分区执行帧内预测。此时,可以以子分区为单位推导帧内预测的邻近参考样本。即,按编码/解码顺序的先前子分区的重构样本可以用作当前子分区的邻近参考样本。在这种情况下,当前块的帧内预测模式同样应用于子分区,并且以子分区为单位推导和使用邻近参考样本,从而增加帧内预测性能。这种预测方法可以被称为帧内子分区(isp)或基于isp的帧内预测。
[0209]
帧内预测技术可以被称为诸如帧内预测类型或附加帧内预测模式的各种术语,以与定向或非定向帧内预测模式相区分。例如,帧内预测技术(帧内预测类型或附加帧内预测模式)可以包括lip、lm、pdpc、mrl、isp或mip中的至少一种。此外,如果需要,可以针对推导的预测样本执行后滤波。
[0210]
具体地,帧内预测过程可以包括帧内预测模式/类型确定步骤、邻近参考样本推导步骤和基于帧内预测模式/类型的预测样本推导步骤。另外,如果需要,可以针对推导的预测样本执行后滤波。
[0211]
图11是例示基于帧内预测的视频/图像编码方法的流程图。
[0212]
图11的编码方法可以由图2的图像编码设备执行。具体地,步骤s1110可以由帧内预测器185执行,步骤s1120可以由残差处理器执行。具体地,步骤s1120可以由减法器115执行。步骤s1130可以由熵编码器190执行。步骤s1130的预测信息可以由帧内预测器185推导,并且步骤s1130的残差信息可以由残差处理器推导。残差信息是关于残差样本的信息。残差信息可以包括关于残差样本的量化变换系数的信息。如上所述,可以通过图像编码设备的变换器120将残差样本推导为变换系数,并且变换系数可以被推导为通过量化器130量化的变换系数。关于量化变换系数的信息可以由熵编码器190通过残差编码过程来编码。
[0213]
图像编码设备可以针对当前块执行帧内预测(s1110)。图像编码设备可以确定当前块的帧内预测模式/类型,推导当前块的邻近参考样本,并且基于帧内预测模式/类型和邻近参考样本来在当前块中生成预测样本。这里,帧内预测模式/类型确定、邻近参考样本推导和预测样本生成过程可以同时执行,或者任一个过程可以在其它过程之前执行。
[0214]
图12是例示根据本公开的帧内预测器的配置的视图。
[0215]
如图12所示,图像编码设备的帧内预测器185可以包括帧内预测模式/类型确定单元186、参考样本推导单元187和/或预测样本推导单元188。帧内预测模式/类型确定单元186可以确定当前块的帧内预测模式/类型。参考样本推导单元187可以推导当前块的邻近参考样本。预测样本推导单元188可以推导当前块的预测样本。此外,尽管未示出,当执行下述预测样本滤波过程时,帧内预测器185还可以包括预测样本滤波器(未示出)。
[0216]
图像编码设备可以确定多个帧内预测模式/类型当中应用于当前块的模式/类型。图像编码设备可以比较帧内预测模式/类型的率失真(rd)成本并且为当前块确定最优帧内预测模式/类型。
[0217]
此外,图像编码设备可以执行预测样本滤波过程。预测样本滤波可以被称为后滤波。通过预测样本滤波过程,一些或所有预测样本可以被滤波。在一些情况下,可以省略预测样本滤波过程。
[0218]
再参照图11,图像编码设备可以基于预测样本或滤波的预测样本来生成当前块的残差样本(s1120)。图像编码设备可以通过从当前块的原始样本减去预测样本来推导残差样本。即,图像编码设备可以通过从原始样本值减去对应预测样本值来推导残差样本值。
[0219]
图像编码设备可以对包括关于帧内预测的信息(预测信息)和残差样本的残差信息的图像信息进行编码(1130)。预测信息可以包括帧内预测模式信息和/或帧内预测技术信息。图像编码设备可以将编码的图像信息以比特流的形式输出。输出比特流可以通过存储介质或网络被传输至图像解码设备。
[0220]
残差信息可以包括残差编码语法(将稍后描述)。图像编码设备可以变换/量化残差样本并且推导量化变换系数。残差信息可以包括关于量化变换系数的信息。
[0221]
此外,如上所述,图像编码设备可以生成重构画面(包括重构样本和重构块)。为此,图像编码设备可以针对量化变换系数执行解量化/逆变换并且推导(修改的)残差样本。变换/量化残差样本然后执行解量化/逆变换的原因是为了推导与图像解码设备所推导的残差样本相同的残差样本。图像编码设备可以基于预测样本和(修改的)残差样本来生成包括当前块的重构样本的重构块。基于重构块,可以生成当前画面的重构画面。如上所述,环路中滤波过程进一步适用于重构画面。
[0222]
图13是例示基于帧内预测的视频/图像解码方法的流程图。
[0223]
图像解码设备可以执行与图像编码设备所执行的操作对应的操作。
[0224]
图13的解码方法可以由图3的图像解码设备执行。步骤s1310至s1330可以由帧内预测器265执行,并且步骤s1310的预测信息和步骤s1340的残差信息可以由熵解码器210从比特流获得。图像解码设备的残差处理器可以基于残差信息来推导当前块的残差样本(s1340)。具体地,残差处理器的解量化器220可以基于根据残差信息推导的解量化变换系数来执行解量化以推导变换系数,并且残差处理器的逆变换器230可以针对变换系数执行逆变换以推导当前块的残差样本。步骤s650可以由加法器235或重构器执行。
[0225]
具体地,图像解码设备可以基于所接收的预测信息(帧内预测模式/类型信息)来推导当前块的帧内预测模式/类型(s1310)。图像解码设备可以推导当前块的邻近参考样本(s1320)。图像解码设备可以基于帧内预测模式/类型和邻近参考样本来在当前块中生成预测样本(s1330)。在这种情况下,图像解码设备可以执行预测样本滤波过程。预测样本滤波可以被称为后滤波。通过预测样本滤波过程,一些或所有预测样本可以被滤波。在一些情况下,可以省略预测样本滤波过程。
[0226]
图像解码设备可以基于所接收的残差信息来生成当前块的残差样本(s1340)。图像解码设备可以基于预测样本和残差样本来生成当前块的重构样本并且推导包括重构样本的重构块(s1350)。基于重构块,可以生成当前画面的重构画面。如上所述,环路中滤波过程进一步适用于重构画面。
[0227]
图14是例示根据本公开的帧内预测器265的配置的视图。
[0228]
如图14所示,图像解码设备的帧内预测器265可以包括帧内预测模式/类型确定单元266、参考样本推导单元267和预测样本推导单元268。帧内预测模式/类型确定单元266可以基于由图像编码设备的帧内预测模式/类型确定单元186生成并用信号通知的帧内预测模式/类型信息来确定当前块的帧内预测模式/类型,并且参考样本推导单元267可以从当前画面中的重构参考区域推导当前块的邻近参考样本。预测样本推导单元268可以推导当前块的预测样本。此外,尽管未示出,当执行上述预测样本滤波过程时,帧内预测器265还可以包括预测样本滤波器(未示出)。
[0229]
例如,帧内预测模式信息可以包括指示是否对当前块应用最可能模式(mpm)或剩余模式的标志信息(例如,intra_luma_mpm_flag和/或intra_chroma_mpm_flag),并且当mpm应用于当前块时,帧内预测模式信息还可以包括指示帧内预测模式候选(mpm候选)之一的索引信息(例如,intra_luma_mpm_idx和/或intra_chroma_mpm_idx)。帧内预测模式候选(mpm候选)可以由mpm候选列表或mpm列表组成。另外,当mpm不应用于当前块时,帧内预测模式信息还可以包括指示除了帧内预测模式候选(mpm候选)之外的剩余帧内预测模式之一的剩余模式信息(例如,intra_luma_mpm_remainder和/或intra_chroma_mpm_remainder)。图像解码设备可以基于帧内预测模式信息来确定当前块的帧内预测模式。mpm候选模式可以包括当前块的邻近块(例如,左邻近块和/或上邻近块)的帧内预测模式和附加候选模式。
[0230]
在示例中,帧内预测模式可以包括两个非定向帧内预测模式和33个定向帧内预测模式。非定向帧内预测模式可以包括平面模式和dc模式,定向帧内预测模式可以包括帧内预测模式2至34。平面帧内预测模式可以被称为平面模式,dc帧内预测模式可以被称为dc模式。
[0231]
另选地,为了捕获自然视频中呈现的任何边缘方向,帧内预测模式可以包括两个非定向帧内预测模式和65个扩展定向帧内预测模式。非定向帧内预测模式可以包括平面模式和dc模式,扩展定向帧内预测模式可以包括帧内预测模式#2至#66。帧内预测模式可应用于所有大小的块以及亮度分量(亮度块)和色度分量(色度块)二者。
[0232]
另选地,帧内预测模式可以包括两个非定向帧内预测模式和129个定向帧内预测模式。非定向帧内预测模式可以包括平面模式和dc模式,定向帧内预测模式可以包括帧内预测模式#2至#130。
[0233]
此外,除了上述帧内预测模式之外,帧内预测模式还可以包括用于色度样本的交
叉分量线性模型(cclm)模式。cclm模式可以根据lm参数推导是考虑左样本、上样本还是这二者被划分成l_cclm、t_cclm、lt_cclm,并且可仅应用于色度分量。
[0234]
在另一示例中,为了捕获自然视频中呈现的任何边缘方向,帧内预测模式可以包括两个非定向帧内预测模式和93个定向帧内预测模式。非定向帧内预测模式可以包括平面模式和dc模式。平面模式可以由intra_planar表示,dc模式可以由intra_dc表示。另外,定向帧内预测模式可以由intra_angular-14至intra_angular-1和intra_angular2至intra_angular80表示。
[0235]
另外,帧内预测技术信息可以按各种形式实现。例如,帧内预测技术信息可以包括指定多种帧内预测技术之一的帧内预测类型索引信息。作为另一示例,帧内预测技术信息可以包括指示是否对当前块应用mrl以及如果应用则使用哪一参考样本行的参考样本行信息(例如,intra_luma_ref_idx)、指示是否对当前块应用isp的isp标志信息(例如,intra_subpartitions_mode_flag)、当应用isp时指定子分区的划分类型的isp类型信息(例如,intra_subpartitions_split_flag)、指定是否应用pdpc的标志信息或者指定是否应用lip的标志信息中的至少一个。在本公开中,isp标志信息可以被称为isp应用指示符。
[0236]
帧内预测模式信息和/或帧内预测技术信息可以通过本公开中描述的编码方法来编码/解码。例如,帧内预测模式信息和/或帧内预测技术信息可以通过基于截断(莱斯(rice))二进制码的熵编码(例如,cabac、cavlc)来编码/解码。
[0237]
色度块的帧内预测
[0238]
当对当前块执行帧内预测时,可以执行当前块的亮度分量块(亮度块)和色度分量块(色度块)的预测,并且在这种情况下,色度块的帧内预测模式可以与亮度块的帧内预测模式分开设定。
[0239]
例如,色度块的帧内预测模式可以基于帧内色度预测模式信息来指定,并且帧内色度预测模式信息可以按intra_chroma_pred_mode语法元素的形式用信号通知。例如,帧内色度预测模式信息可以指定平面模式、dc模式、垂直模式、水平模式、推导模式(dm)和交叉分量线性模型(cclm)模式中的一个。这里,平面模式可以指定帧内预测模式#0,dc模式可以指定帧内预测模式#1,垂直模式可以指定帧内预测模式#26,水平模式可以指定帧内预测模式#10。dm也可以称为直接模式。cclm也可以称为线性模型(lm)。
[0240]
dm和cclm是使用关于亮度块的信息来预测色度块的相关帧内预测模式。dm可以意指应用与亮度分量的帧内预测模式相同的帧内预测模式作为色度分量的帧内预测模式的模式。另外,cclm可以意指使用通过对亮度块的重构样本进行下采样,然后在生成色度块的预测块的过程中对下采样的样本应用cclm参数α和β而如式1所示推导的样本作为色度块的预测样本的帧内预测模式。
[0241]
[式1]
[0242]
predc(i,j)=α
·
rec
l

(i,j) β
[0243]
其中,predc(i,j)可以表示当前cu中的当前色度块的(i,j)坐标的预测样本。rec
l’(i,j)可以表示cu中的当前亮度块的(i,j)坐标的重构样本。例如,rec
l’(i,j)可以表示当前亮度块的下采样重构样本。线性模型系数α和β可以从邻近样本用信号通知或推导。
[0244]
当以dm预测色度块时,色度块的帧内预测模式可以被推导为对应亮度块的帧内预测模式。例如,对应亮度块的预定位置处的帧内预测模式可以用作色度块的帧内预测模式。
[0245]
此外,可以使用多dm(多直接模式(mdm))来执行色度块的帧内预测。通过将单dm扩展至多模式来使用多dm,可以构建包括多个dm候选的dm候选列表以推导色度块的帧内预测模式,并且包括在dm候选列表中的候选之一可以被推导为色度块的帧内预测模式。当应用多dm时,dm候选列表可以包括以下多个dm候选中的至少一个。
[0246]-对应亮度块的cr、tl、tr、bl和br位置处的帧内预测模式
[0247]-作为色度块的邻近块的l、a、bl、ar和al位置处的帧内预测模式
[0248]-平面模式和dc模式
[0249]-通过向/从已经包括的定向模式添加/减去预定偏移(例如,1)而推导的定向模式
[0250]-默认dm候选模式:垂直模式、水平模式、模式#2、#34、#66、#10、#26(在65个定向模式的情况下)
[0251]-当四个默认dm候选(planar模式、dc模式、垂直模式和水平模式)未包括在dm候选列表中时,已经包括在列表中的dm候选被替换为未包括的默认dm候选
[0252]
色度块的帧内预测模式可以基于帧内色度预测模式信息intra_chroma_pred_mode和/或对应亮度块的帧内预测模式来推导。例如,当帧内色度预测模式信息指定dm时,色度块的帧内预测模式可以按照与对应亮度块的帧内预测模式相同的方式确定。
[0253]
根据上述帧内预测方法,亮度块的帧内预测可以基于mpm列表来执行,色度块的帧内预测可以基于预定默认模式和/或dm来执行。默认帧内预测模式可以包括平面模式、dc模式、垂直模式和水平模式。
[0254]
以下,将描述调色板模式。
[0255]
调色板模式的概述
[0256]
调色板模式可以意指当前块基于包括预定代表颜色值集合的调色板(或调色板表)来编码/解码的预测模式。在调色板模式下,当前块中的各个样本可以被表示为指定预定代表颜色的调色板索引值。在本公开中,使用调色板模式的编码/解码可以被称为调色板编码/解码。
[0257]
调色板模式可以用于改进特定图像的编码/解码效率。例如,作为包括由诸如计算机或智能电话的电子设备生成的大量文本和图形的图像,画面内容包括通过锐利边缘分开的局部区域,该局部区域可以利用相对少量的颜色表示。因此,与其它预测模式(例如,帧内预测模式、帧间预测模式等)相比,当前块中的大多数像素值以相对少量的索引表示的调色板模式在画面内容的编码/解码方面可能更有效。
[0258]
调色板模式是上述帧内预测模式之一,并且可被称为调色板编码模式、帧内调色板模式、帧内调色板编码模式等。然而,当调色板模式应用于当前块时,与帧内预测模式不同,可以不单独地用信号通知当前块的残差值。在这方面,调色板模式可类似于上述跳过模式。
[0259]
当当前块具有单树结构时,调色板模式可以应用于当前块的亮度分量和色度分量二者。例如,当调色板模式应用于具有单树结构的当前块的亮度分量时,调色板模式可以应用于当前块的色度分量。相比之下,当当前块具有双树结构时,调色板模式可以单独地应用于当前块的亮度分量和色度分量。例如,当调色板模式应用于具有双树结构的当前块的亮度分量时,调色板模式可以应用于当前块的色度分量,或者可以应用其它预测模式(例如,帧内预测模式、帧间预测模式等)之一。
[0260]
当调色板模式应用于当前块时,可以基于调色板预测子来构建用于当前块的调色板表。
[0261]
调色板预测子可以包括一个或更多个调色板条目(代表颜色值)和用于识别调色板条目的一个或更多个调色板索引。在示例中,调色板预测子可以在包括当前块的ctu(或切片)第一次编码/解码时被初始化为预定值(例如,0)。另外,可以使用用于调色板编码/解码的至少一个调色板条目来更新调色板预测子。在实施方式中,直至调色板预测子的大小达到预定最大大小(即,直至调色板预测子包括最大允许数量的调色板条目),未包括在当前调色板表中的先前调色板预测子的调色板条目可以被添加到用于下一调色板编码的调色板预测子的最后位置(索引)。这可以被称为调色板填充。
[0262]
调色板表可以包括调色板预测子中所包括的至少一个调色板条目和用于识别调色板条目的至少一个调色板索引。对于包括在调色板预测子中的各个调色板条目,可以通过比特流用信号通知指定调色板条目是否包括在调色板表中的重用标志。在这种情况下,具有第一值(例如,0)的重用标志可以指定调色板条目不包括在调色板表中。相比之下,具有第二值(例如,1)的重用标志可以指定对应调色板条目包括在调色板表中。例如,可以使用值为0的游程长度编码来对重用标志进行编码。
[0263]
另外,调色板表可以包括未包括在调色板预测子中的至少一个新调色板条目和用于识别新调色板条目的至少一个调色板索引。例如,关于新调色板条目的信息(例如,总数、分量值等)可以使用第0指数哥伦布码来编码并通过比特流用信号通知。
[0264]
基于调色板表,可以生成用于要编码的当前块的调色板索引图。具体地,基于当前块中的多个样本中的每一个的像素值与代表颜色值之间的相似度,通过将调色板表中的预定调色板索引映射至多个样本中的每一个,可以生成用于当前块的调色板索引图。在这种情况下,逃逸调色板索引可以被映射至当前块中的多个样本当中具有与调色板表中定义的代表颜色值(调色板条目)不相似的像素的样本(逃逸样本)。逃逸调色板索引可以指定逃逸样本(逃逸符号)并且可以在调色板表内具有最大值。在示例中,可以使用逃逸样本标志(例如,palette_escape_val_present_flag)用信号通知当前块是否包括逃逸样本。例如,具有第一值(例如,0)的palette_escape_val_present_flag可以指定当前块不包括逃逸样本。相比之下,具有第二值(例如,1)的palette_escape_val_present_flag可以指定当前块包括逃逸样本。
[0265]
可以通过比特流用信号通知调色板索引图的调色板索引预测信息。调色板索引预测信息可以包括映射至当前块的至少一个调色板索引和调色板索引的游程值信息。调色板索引的游程值可以指定通过从作为相同值连续映射至当前块的调色板索引的数量减1而获得的值。例如,当当前块包括预定扫描方向(例如,水平方向)上连续存在的第一至第四样本,第一调色板索引(例如,0)被映射至第一至第三样本中的每一个,第二调色板索引(例如,1)被映射至第四样本时,第一调色板索引的游程值可为2,第二调色板索引的游程值可为0。当当前块包括逃逸样本(逃逸符号)(例如,palette_escape_val_present_flag=1)时,调色板索引预测信息可以包括映射至逃逸样本的逃逸调色板索引的游程值信息。
[0266]
基于调色板索引预测信息,可以生成用于要编码的当前块的调色板索引图。例如,通过将从调色板索引预测信息获得的一个或更多个调色板索引中的每一个映射至当前块中的多个样本中的每一个,可以生成用于当前块的调色板索引图。在示例中,基于从调色板
索引预测信息获得的一个或更多个调色板索引当中的最后调色板索引(按映射顺序),可以调节一个或更多个调色板索引中的每一个的值。例如,当从调色板索引预测信息获得的最后调色板索引是逃逸调色板索引时,从调色板索引预测信息获得的调色板条目可以作为增加预定大小(例如,1)的值映射至当前块。
[0267]
当前块可以基于调色板索引图来编码/解码。对于当前块中的多个样本当中具有与调色板表中定义的代表颜色值相等或相似的像素值的样本,可以通过比特流用信号通知指定对应代表颜色值的调色板索引的值。相比之下,对于当前块中的多个样本当中具有与调色板表中定义的代表颜色值不相似的像素值的样本,可以直接通过比特流用信号通知对应样本的量化像素值。
[0268]
为了对映射至当前块的调色板索引进行编码,可以使用预定扫描方法来扫描调色板索引图。另外,为了使用从比特流获得的调色板索引来构建调色板索引图,可以使用预定扫描方法来扫描当前块。
[0269]
图15是例示可以在调色板模式下使用的扫描方法的示例的视图。
[0270]
参照图15,可以在调色板模式下使用的扫描方法可以包括水平遍历扫描和垂直遍历扫描。水平遍历扫描可以意指从左至右扫描当前块(或调色板索引图)的奇数行并且从右至左扫描当前块的偶数行的方法。另外,垂直遍历扫描可以意指从上至下扫描当前块的奇数列并且从下至上扫描当前块的偶数列的方法。
[0271]
关于可以在调色板模式下使用的扫描方法的信息可以使用预定标志(例如,palette_transpose_flag)来用信号通知。例如,当水平遍历扫描用于当前块的调色板编码时,可以通过比特流用信号通知具有第一值(例如,0)的palette_transpose_flag。相比之下,当垂直遍历扫描用于当前块的调色板编码时,可以通过比特流用信号通知具有第二值(例如,1)的palette_transpose_flag。
[0272]
映射至当前块中的各个样本的调色板索引可以使用“index”模式和“copy_above”模式来编码。在本公开中,“index”模式和“copy_above”模式可以被称为调色板样本模式。
[0273]
除了水平遍历扫描中当前块的最上行、垂直遍历扫描中当前块的最左列以及前一个调色板样本模式为“copy_above”的情况之外,可以使用预定标志(例如,copy_above_palette_indices_flag)用信号通知关于调色板样本模式的信息。例如,具有第一值(例如,0)的copy_above_palette_indices_flag可以指定映射至当前块的预定调色板索引使用“index”模式来编码。相比之下,具有第二值(例如,1)的copy_above_palette_indices_flag可以指定映射至当前块的预定调色板索引使用“copy_above”模式来编码。
[0274]
在“index”模式下,可以明确地通过比特流用信号通知调色板索引的值。在“index”模式和“copy_above”模式下,可以通过比特流用信号通知指定使用相同调色板样本模式连续编码的样本数量的游程值信息。
[0275]
包括在调色板索引图中的调色板索引可以按以下顺序编码。
[0276]
首先,可以用信号通知映射至当前块(或当前cu)的调色板索引的数量。接下来,可以使用固定长度编码用信号通知各个调色板索引的值。在示例中,调色板索引的数量和各个调色板索引的值可以使用旁路模式来编码。由此,与调色板索引有关的旁路bin可以被分组。另外,可以按交织方式用信号通知关于调色板样本模式的信息(例如,copy_above_palette_indices_flag)和调色板样本模式的游程值信息。最后,与当前块中的逃逸样本对
应的分量逃逸值可以被分组并以旁路模式编码。在示例中,在用信号通知各个调色板索引的值之后,可以另外用信号通知至少一个附加语法元素(例如,last_run_type_flag)。在这种情况下,基于调色板索引的数量和附加语法元素,可以跳过与当前块中的最后游程对应的游程值的信令处理。
[0277]
图16是例示当前块的调色板编码处理的示例的视图。
[0278]
参照图16,当前块中的多个像素(样本)可以使用总共三个颜色值来表示(1610)。例如,第一像素px1可以具有第一颜色值,第二像素px2可以具有第二颜色值,第三像素px3可以具有第三颜色值。
[0279]
当调色板模式应用于当前块时,可以构建用于当前块的调色板表(1620)。调色板表可以包括用于各个颜色分量(例如,(g,b,r)、(y,cb,cr)等)的调色板条目(代表颜色值)和用于识别各个调色板条目的调色板索引(例如,0、1)。另外,调色板表还可以包括逃逸调色板索引(例如,2)。逃逸调色板索引可以被映射至当前块中的多个像素当中具有与调色板表中定义的代表颜色值不相似的像素值的逃逸样本(或逃逸符号)。对于逃逸调色板索引映射至的逃逸样本,可以用信号通知逃逸样本的量化像素值。
[0280]
基于当前块中的多个样本中的每一个的像素值与代表颜色值之间的相似度,通过将调色板表中的预定调色板索引映射至多个样本中的每一个,可以生成用于当前块的调色板索引图(1630)。例如,第一调色板索引(例如,0)可以被映射至各个第一像素px1,第二调色板索引(例如,1)可以被映射至各个第二像素px2,逃逸调色板索引(例如,2)可以被映射至作为逃逸样本的第三像素px3,从而生成用于当前块的调色板索引图。
[0281]
为了对调色板索引图进行编码,通过根据预定扫描方法扫描包括在调色板索引图中的调色板索引,可以推导当前块中的多个样本中的每一个的调色板样本模式和调色板样本模式的游程值(1640、1650)。例如,在水平遍历扫描中,连续映射至调色板索引图的第三行的调色板索引“1,0,1,1,1”具有与存在于调色板索引图的第二行的相同位置处的调色板索引相同的索引值,因此可以在“copy_above”模式下编码,并且“copy_above”模式的游程值可为4(1640)。另外,在水平遍历扫描中,连续映射至调色板索引图的第二行的调色板索引“1,1,1”具有与存在于调色板索引图的第一行的相同位置处的调色板索引不同的索引值,因此可以在“index”模式下编码,并且“index”模式的游程值可为2(1650)。此外,映射至作为逃逸样本的第三像素px3的逃逸调色板索引(例如,2)可以在“index”模式下编码。
[0282]
当调色板模式应用于当前块时,调色板表中的预定调色板索引可以被映射至当前块中的多个样本中的每一个以生成调色板索引图,并且包括在调色板索引图中的调色板索引可以根据预定方法在“index”模式或“copy_above”模式下编码。
[0283]
以下,将描述调色板模式的语法元素。
[0284]
图17是例示调色板模式的一些coding_unit语法的视图,图18a至图18e是例示调色板模式的palette_coding语法的视图。调色板模式的语法元素可以如图17和图18a至图18e所示编码并通过比特流用信号通知。
[0285]
首先,参照图17,调色板模式标志pred_mode_plt_flag可以指定调色板模式是否应用于当前块(或当前cu)。例如,pred_mode_plt_flag的第一值(例如,0)可以指定调色板模式可以不应用于当前块。相比之下,pred_mode_plt_flag的第二值(例如,1)可以指定调色板模式应用于当前块。当未从比特流获得pred_mode_plt_flag时,pred_mode_plt_flag
的值可以被确定为第一值。
[0286]
参照图18a,参数predictorpalettesize[startcomp]可以指定用于当前块的调色板表(当前调色板表)的第一颜色分量startcomp的调色板预测子的大小。
[0287]
另外,参数palettepredictorentryreuseflags[i]可以指定调色板预测子中的第i调色板条目是否在当前调色板表中(即,是否被重用)。例如,具有第一值(例如,0)的palettepredictorentryreuseflags[i]可以指定调色板预测子中的第i调色板条目未在当前调色板表中重用。相比之下,具有第二值(例如,1)的palettepredictorentryreuseflags[i]可以指定调色板预测子中的第i调色板条目在当前调色板表中重用。在示例中,palettepredictorentryreuseflags[i]的初始值可以被设定为0。
[0288]
另外,参数palette_predictor_run可以指定palettepredictorentryreuseflags阵列中在非零调色板条目之前存在的0的数量。
[0289]
另外,参数num_signalled_palette_entries可以指定当前调色板表中为当前调色板表的第一颜色分量startcomp明确地用信号通知的调色板条目的数量。当未从比特流获得num_signalled_palette_entries时,num_signalled_palette_entries的值可以被推断为0。
[0290]
参照图18b,参数currentpalettesize[startcomp]可以为当前调色板表的第一颜色分量startcomp指定当前调色板表的大小。currentpalettesize[startcomp]的值可以如下式2所示计算。在示例中,currentpalettesize[startcomp]可以具有0至palette_max_size的值。
[0291]
[式2]
[0292]
currentpalettesize[startcomp]=numpredictedpaletteentries num_signalled_palette_entries
[0293]
另外,参数new_palette_entries[cidx][i]可以指定为颜色分量cidx用信号通知的新的第i调色板条目的值。
[0294]
另外,参数predictorpaletteentries[cidx][i]可以指定用于颜色分量cidx的调色板预测子中的第i调色板条目。
[0295]
另外,参数currentpaletteentries[cidx][i]可以指定用于颜色分量cidx的当前调色板表中的第i调色板条目。
[0296]
另外,参数palette_escape_val_present_flag可以指定是否存在逃逸样本(逃逸符号)。例如,具有第一值的palette_escape_val_present_flag可以指定当前块不包括逃逸样本。相比之下,具有第二值(例如,1)的palette_escape_val_present_flag可以指定当前块包括逃逸样本。当未从比特流获得palette_escape_val_present_flag时,palette_escape_val_present_flag的值可以被推断为1。
[0297]
另外,参数maxpaletteindex可以指定当前调色板表中的调色板索引的最大值。maxpaletteindex的值可以如下式3所示计算。
[0298]
[式3]
[0299]
maxpaletteindex=currentpalettesize[startcomp] palette_escape_val_present_flag
[0300]
另外,参数num_palette_indices_minus1可以指定通过从在当前块的调色板编码
处理中用信号通知的调色板索引的数量减1而获得的值。当未从比特流获得num_palette_indices_minus1时,num_palette_indices_minus1的值可以被推断为0。
[0301]
另外,参数palette_idx_idc可以是当前调色板表currentpaletteentries的调色板索引的指示符。palette_idx_idc对于对应块的第一调色板索引可以具有0至maxpaletteindex的值,并且对于对应块的剩余调色板索引具有0至maxpaletteindex-1的值。当未从比特流获得palette_idx_idc的值时,palette_idx_idc的值可以被推断为0。
[0302]
另外,参数paletteindexidc[i]可以指定第i palette_idx_idc。在示例中,阵列paletteindexidc的所有值可以被初始化为0。
[0303]
另外,参数copy_above_indices_for_final_run_flag可以指定当前块中的最后位置处的调色板索引是从先前调色板索引复制的。例如,具有第一值(例如,0)的copy_above_indices_for_final_run_flag可以指定当前块中的最后位置处的调色板索引从paletteindexidc[num_palette_indices_minus1]复制。相比之下,具有第二值(例如,1)的copy_above_indices_for_final_run_flag可以指定当前块中的最后位置处的调色板索引从邻近样本的调色板索引复制。当使用垂直遍历扫描时,在当前样本的左列中与当前样本相同的位置处可以存在邻近样本。当使用水平遍历扫描时,在当前样本的上行中与当前样本相同的位置处可以存在邻近样本。当未从比特流获得copy_above_indices_for_final_run_flag时,copy_above_indices_for_final_run_flag的值可以被推断为0。
[0304]
另外,参数palette_transpose_flag可以指定当前块(或调色板索引图)的扫描方法。例如,具有第一值(例如,0)的palette_transpose_flag可以指定水平遍历扫描应用于当前块。相比之下,具有第二值(例如,1)的palette_transpose_flag可以指定垂直遍历扫描应用于当前块。当未从比特流获得palette_transpose_flag时,palette_transpose_flag的值可以被推断为0。
[0305]
参照图18c,参数copy_above_palette_indices_flag可以指定当前块中的当前样本的编码模式(调色板样本模式)。例如,具有第一值(例如,0)的copy_above_palette_indices_flag可以指定映射至当前样本的调色板索引以“index”模式编码。相比之下,具有第二值(例如,1)的copy_above_palette_indices_flag可以指定映射至当前样本的调色板索引以“copy_above”模式编码。
[0306]
另外,参数copyaboveindicesflag[xc][yc]可以指定当前块中的多个样本中的每一个的编码模式。即,copyaboveindicesflag可以是当前块中的多个样本中的每一个的copy_above_palette_indices_flag的阵列。这里,xc和yc可以是相对于当前画面的左上样本指定当前块的相对位置的坐标指示符。
[0307]
当copyaboveindicesflag[xc][yc]具有第一值(例如,0)时,paletterunminus1可以指定通过从使用“copy_above”连续编码的调色板索引的数量减1而获得的值。相比之下,当copyaboveindicesflag[xc][yc]具有第二值(例如,1)时,paletterunminus1可以指定通过从使用“index”模式连续编码的调色板索引的数量减1而获得的值。
[0308]
参照图18d,参数paletteindexmap[xc][yc]可以指定用于当前块的调色板索引图。即,paletteindexmap可以是当前块中的多个样本中的每一个的currentpaletteentries的阵列。这里,xc和yc可以是指定当前画面的左上样本的当前样本的相对位置的坐标指示符。在示例中,paletteindexmap[xc][yc]可以具有0至
(maxpaletteindex-1)的值。
[0309]
另外,参数palettemaxrunminus1可以指定paletterunminus1的最大值。在示例中,palettemaxrunminus1可以具有大于0的值。
[0310]
另外,参数palette_run_prefix可以指定用于paletterunminus1的二值化的前缀部分。
[0311]
另外,参数palette_run_suffix可以指定用于paletterunminus1的二值化的后缀部分。当未从比特流获得palette_run_suffix时,palette_run_suffix的值可以被推断为0。
[0312]
在示例中,当palettemaxrunminus1的值为0时,paletterunminus1的值可以被设定为0。相比之下,当palettemaxrunminus1大于0时,paletterunminus1可以基于palette_run_prefix的值来设定。例如,当palette_run_prefix的值小于2时,paletterunminus1的值可以如下式4所示设定。
[0313]
[式4]
[0314]
paletterunminus1=palette_run_prefix
[0315]
当palette_run_prefix的值等于或大于2时,paletterunminus1的值可以如下式5所示计算。
[0316]
[式5]
[0317]
prefixoffset=1《《(palette_run_prefix-1)
[0318]
paletterunminus1=prefixoffset palette_run_suffix
[0319]
参照图18e,参数palette_escape_val可以指定当前块中的逃逸样本的量化像素值。
[0320]
另外,参数paletteescapeval[cidx][xc][yc]可以指定paletteindexmap[xc][yc]的值为maxpaletteindex并且palette_escape_val_present_flag的值为1的逃逸样本的量化像素值。这里,cidx可以指定颜色分量,xc和yc可以是相对于当前画面的左上样本指定当前样本的相对位置的坐标指示符。
[0321]
以下,将描述对具有局部双树结构的当前块应用调色板模式的方法。
[0322]
对具有局部双树结构的当前块应用调色板模式
[0323]
图19是例示具有局部双树结构的ctu的示例的视图。
[0324]
参照图19,对于亮度分量和色度分量中的每一个,当前cu可以被划分成具有四叉树结构。例如,在具有4:2:0颜色格式的当前cu中,16
×
16亮度块可以被四叉树划分,从而生成各自具有8
×
8大小的第一亮度块1911至第四亮度块1914。另外,8
×
8色度块可以被四叉树划分,从而生成各自具有4
×
4大小的第一色度块1921至第四色度块1924。在这种情况下,第一色度块1921可以对应于第一亮度块1911,第二色度块1922可以对应于第二亮度块1912,第三色度块1923可以对应于第三亮度块1913,第四色度块1924可以对应于第四亮度块1914。
[0325]
当色度块的最小大小被约束为包括16个或更多个色度样本时,可以禁止第一色度块1921至第四色度块1924的附加划分。相比之下,为了改进编码效率,可以允许第一亮度块1911至第四亮度块1914的附加划分。因此,第三亮度块1913可以被垂直二元划分,从而生成各自具有4
×
8大小的两个亮度块1913-1和1913-2。在这种情况下,第三亮度块1913的划分
结构可以被称为双树亮度dual_tree_luma,第三色度块1923的划分结构可以被称为双树色度dual_tree_chroma。另外,由于通过划分当前cu而生成的多个下层cu当中仅包括第三亮度块1913和第三色度块1923的下层cu具有双树结构,所以下层cu的划分结构可以被称为局部双树结构。在这种情况下,图20中示出当前cu的解码处理的示例。
[0326]
图20是例示在图19的示例中当前cu的解码处理的示例的视图。
[0327]
具有单树结构的下层cu的亮度块和色度块可以基于相同的预测模式(例如,帧内预测模式、ibc、调色板模式、帧间预测模式等)来解码。相比之下,具有双树结构的下层cu的亮度块和色度块可以单独地基于各种预测模式的组合来解码。例如,具有双树结构的下层cu的亮度块和色度块可以使用相同的预测模式或不同的预测模式来解码。
[0328]
在图20中,为了在具有单树结构的下层cu与具有双树结构的下层cu之间进行区分,对于具有单树结构的下层cu仅示出亮度块,对于具有双树结构的下层cu示出亮度块和色度块二者。另外,对于具有单树结构的下层cu,将基于亮度块描述解码处理。
[0329]
参照图20,具有单树结构的第一亮度块1911可以使用帧间预测模式来解码。另外,具有单树结构的第二亮度块1912可以使用调色板模式来解码。另外,具有单树结构的第四亮度块1914可以使用调色板模式来解码。相比之下,具有双树结构的第(3-1)亮度块1913-1可以使用调色板模式来解码,第(3-2)亮度块1913-2可以使用帧内模式来解码,第三色度块1923可以使用调色板模式来解码。
[0330]
第一亮度块1911至第四亮度块1914的解码处理可以依次执行。另外,第(3-1)亮度块1913-1和第(3-2)亮度块1913-2的解码处理与第三色度块1923的解码处理可以并行执行或根据预定顺序依次执行。
[0331]
当执行对第二亮度块1912的调色板解码时,如上所述,可以构建包括用于亮度分量和色度分量中的每一个的调色板条目和用于识别调色板条目的调色板索引的一个调色板预测子。另外,可以使用应用于第二亮度块1912的调色板条目来更新调色板预测子以用于下一调色板解码(s2010)。
[0332]
当对第二亮度块1912的调色板解码完成时,使用在步骤s2010中更新的调色板预测子,可以单独地执行对第(3-1)亮度块1913-1和第三色度块1923的调色板解码。
[0333]
用于第(3-1)亮度块1913-1的调色板预测子可以仅包括在步骤s2010中更新的调色板预测子中用于亮度分量的调色板条目和用于识别调色板条目的调色板索引(s2020)。用于第(3-1)亮度块1913-1的调色板预测子可以被称为亮度调色板预测子。另外,当对第(3-1)亮度块1913-1的调色板解码完成时,可以使用应用于第(3-1)亮度块1913-1的调色板条目来更新亮度调色板预测子(s2030)。
[0334]
用于第三亮度块1923的调色板预测子可以仅包括在步骤s2010中更新的调色板预测子中用于色度分量的调色板条目和用于识别调色板条目的调色板索引(s2040)。用于第三亮度块1923的调色板预测子可以被称为色度调色板预测子。另外,当对第三亮度块1923的调色板解码完成时,可以使用应用于第三色度块1923的调色板条目来更新色度调色板预测子(s2050)。
[0335]
在对第(3-2)亮度块1913-2执行解码之后,可以执行对第四亮度块1914的调色板解码。
[0336]
可以通过将在步骤s2030中更新的亮度调色板预测子与在步骤s2050中更新的色
度调色板预测子组合来构建用于第四亮度块1914的调色板预测子(s2060)。即,用于第四亮度块1914的调色板预测子可以包括第(3-1)亮度块1913-1的亮度分量的调色板条目、第三色度块1923的色度分量的调色板条目和用于识别各个调色板条目的调色板索引。在这种情况下,用于第四亮度块1914的调色板预测子的大小(即,调色板条目的数量)可以基于亮度分量的调色板条目的数量来确定。例如,当在步骤s2030中更新的亮度调色板预测子的大小为n(n是大于0的整数)并且在步骤s2050中更新的色度调色板预测子的大小为m(m是大于0的整数)时,用于第四亮度块1914的调色板预测子的大小可以被确定为n。由于这些特性,调色板预测子可以包括(无效)调色板条目,或者可以不包括有效调色板条目。图21和图22是例示在图20的示例中对具有局部双树结构的下层cu应用调色板模式时发生的问题的视图。
[0337]
首先,参照图21,作为对具有局部双树结构的第(3-1)亮度块1913-1的调色板解码的结果更新的亮度调色板预测子2110可以包括例如用于亮度分量(例如,y分量)的9个调色板条目(代表颜色值)。另外,作为对具有双树结构的第三亮度块1923的调色板解码的结果更新的色度调色板预测子2120可以包括例如用于各个色度分量(例如,cb分量和cr分量)的两个调色板条目。
[0338]
另外,在对第(3-1)亮度块1913-1和第三色度块1923执行单独的调色板解码之后,可以执行对具有单树结构的第四亮度块1914的调色板解码。在这种情况下,可以通过基于亮度调色板预测子2110的大小将亮度调色板预测子2110和色度调色板预测子2120组合来构建用于第四亮度块1914的调色板预测子2130。具体地,由于亮度调色板预测子2110的大小为9(例如,predictorpalettesize[0]=9)并且对于各个色度分量(例如,cb和cr)色度调色板预测子2120的大小为2(例如,predictorpalettesize[1]=2,predictorpalettesize[2]=2),所以用于第四亮度块1914的调色板预测子2130的大小可被确定为9。为了满足所确定的大小,用于第四亮度块1914的调色板预测子2130对于各个色度分量可以包括具有7个空(null)值的调色板条目2131。结果,用于存储具有空值的调色板条目的不必要的存储器空间可能浪费,并且解码效率可能劣化。
[0339]
接下来,参照图22,作为对具有局部双树结构的第(3-1)亮度块1913-1的调色板解码的结果更新的亮度调色板预测子2210可以包括例如用于亮度分量(例如,y)的三个调色板条目(代表颜色值)。另外,作为对具有局部双树结构的第三亮度块1923的调色板解码的结果更新的色度调色板预测子2220可以包括例如用于各个色度分量(例如,cb和cr)的五个调色板条目。
[0340]
另外,在对第(3-1)亮度块1913-1和第三色度块1923执行单独的调色板解码之后,可以执行对具有单树结构的第四亮度块1914的调色板解码。在这种情况下,可以通过基于亮度调色板预测子2210的大小将亮度调色板预测子2210和色度调色板预测子2220组合来构建用于第四亮度块1914的调色板预测子2230。具体地,由于亮度调色板预测子的大小为3(例如,predictorpalettesize[0]=3),并且对于各个色度分量(例如,cb和cr)色度调色板预测子2220的大小为5(例如,predictorpalettesize[1]=5,predictorpalettesize[2]=5),所以用于第四亮度块1914的调色板预测子2230的大小可以被确定为3。为了满足所确定的大小,包括在色度调色板预测子2220中的用于各个色度分量的最后两个有效调色板条目2221可能被丢弃。结果,由于无法构建用于第四亮度块1914的最优调色板表,所以对第四亮度块1914的调色板解码的调色板解码性能可能劣化。
[0341]
为了解决参照图21和图22描述的问题,依据根据本公开的实施方式的图像编码/解码方法,可以跳过更新调色板预测子的处理,或者可以基于当前块的划分结构是否为局部双树结构选择性地应用调色板模式。
[0342]
以下,将参照附图详细描述本公开的实施方式。
[0343]
实施方式#1
[0344]
根据本公开的实施方式#1,在对具有局部双树结构的当前块进行调色板编码/解码时,更新调色板预测子的处理可以基于当前块的划分结构选择性地执行。
[0345]
图23是例示根据本公开的实施方式的调色板编码方法的流程图。
[0346]
图23的调色板编码方法可以由图2的图像编码设备执行。具体地,步骤s2310至s2350可以由帧内预测单元165或不同于帧内预测单元165的单独功能块(例如,调色板编码器)执行。
[0347]
可以基于当前块的预测模式类型来确定调色板模式是否应用于当前块。例如,当当前块的预测模式类型是所有帧内预测、帧内块复制(ibc)、调色板模式和帧间预测均适用的第一模式类型(例如,mode_type_all)时,调色板模式可以应用于当前块。相比之下,当当前块的预测模式类型是仅帧内预测适用的第二模式类型(例如,mode_type_intra)或仅帧间预测适用的第三模式类型(例如,mode_type_inter)时,调色板模式可以不应用于当前块。可以使用预定标志(例如,pred_mode_plt_flag)用信号通知调色板模式是否应用于当前块。例如,当调色板模式不应用于当前块时,可以用信号通知具有第一值(例如,1)的pred_mode_plt_flag。相比之下,当调色板模式应用于当前块时,可以用信号通知具有第二值(例如,1)的pred_mode_plt_flag。
[0348]
参照图23,当调色板模式应用于当前块时,图像编码设备可以构建当前块的调色板预测子和调色板表(s2310)。
[0349]
调色板预测子可以包括至少一个调色板条目(代表颜色值)和用于识别调色板条目的调色板索引。当当前块是当前ctu(或切片)中第一次被调色板编码的块时,调色板预测子可以具有预定初始值(例如,0)。相比之下,当当前块不是当前ctu中第一次被调色板编码的块时,调色板预测子可以包括在当前块的先前调色板编码处理中使用的至少一个调色板条目。
[0350]
图像编码设备可以基于调色板预测子来构建调色板表。调色板表可以包括从调色板预测子选择的至少一个调色板条目和用于识别各个调色板条目的调色板索引。
[0351]
在示例中,调色板预测子和调色板表可以根据当前块的颜色格式(或色度格式)不同地构建。例如,当当前块的颜色格式是上面参考表2描述的单色格式时,调色板预测子和调色板表可以仅包括用于当前块的亮度分量的调色板条目。相比之下,当当前块的颜色格式是上面参考表2描述的4:2:0、4:2:2或4:4:4格式时,调色板预测子和调色板表可以包括用于当前块的亮度分量和色度分量中的每一个的调色板条目。
[0352]
在示例中,调色板预测子和调色板表可以根据当前块的划分结构不同地构建。例如,当当前块具有单树结构时,调色板预测子和调色板表可以具有共同应用于当前块的亮度分量和色度分量的一个配置。相比之下,当当前块具有双树结构时,调色板预测子和调色板表可以具有单独应用于当前块的亮度分量和色度分量中的每一个的多个配置。例如,用于当前块的调色板预测子可以包括用于亮度分量的亮度调色板预测子和用于色度分量的
色度调色板预测子。在这种情况下,包括在亮度调色板预测子中的调色板条目的数量可不同于包括在色度调色板预测子中的调色板条目的数量。
[0353]
图像编码设备可以基于调色板表来生成用于当前块的调色板索引图(s2320)。
[0354]
调色板索引图可以意指调色板表中的预定调色板索引被映射至当前块中的各个样本。例如,指定对应代表颜色值的调色板索引可以被映射至当前块中的多个样本当中具有与调色板表中定义的代表颜色值相等或相似的像素值的样本。相比之下,逃逸调色板索引可以被映射至当前块中的多个样本当中具有与调色板表中定义的代表颜色值不相似的像素值的样本(逃逸样本)。在示例中,可以基于预定阈值来确定各个样本的像素值是否与调色板表中定义的代表颜色值相似。例如,当各个样本的像素值与代表颜色值之间的差等于或小于预定阈值时,指定代表颜色值的调色板索引可以被映射至对应样本。相比之下,当各个样本的像素值与代表颜色值之间的差超过预定阈值时,逃逸调色板索引可以被映射至对应样本。
[0355]
图像编码设备可以基于调色板索引图对当前块进行编码(s2330)。
[0356]
当前块的编码处理可以通过根据预定扫描方法扫描调色板索引图中的调色板索引来执行。具体地,图像编码设备可以通过根据预定扫描方法扫描映射至当前块的调色板索引来确定各个调色板索引的编码模式(调色板样本模式)。
[0357]
调色板编码的扫描方法可以包括如上面参照图15描述的水平遍历扫描和垂直遍历扫描。在示例中,可以使用palette_transpose_flag用信号通知关于扫描方法的信息。例如,当水平遍历扫描用于当前块的调色板编码时,可以用信号通知具有第一值(例如,0)的palette_transpose_flag。相比之下,当垂直遍历扫描用于当前块的调色板编码时,可以用信号通知具有第二值(例如,1)的palette_transpose_flag。
[0358]
用于对映射至当前块的各个调色板索引进行编码的编码模式可以被称为调色板样本模式。调色板样本模式可以包括“index”模式和“copy_above”模式。当调色板样本模式被确定为“index”模式时,对应调色板索引的值可以被编码。相比之下,当调色板样本模式被确定为“copy_above”模式时,对应调色板索引的值可以不被编码,并且指定对应调色板索引具有与存在于上方(在水平遍历扫描的情况下)或左侧(在垂直遍历扫描的情况下)的调色板索引相同的值的信息。在示例中,可以使用copy_above_palette_indices_flag用信号通知关于调色板样本模式的信息。例如,当当前样本的调色板样本模式被确定为“index”模式时,可以用信号通知具有第一值(例如,0)的copy_above_palette_indices_flag。相比之下,当当前样本的调色板样本模式被确定为“copy_above”模式时,可以用信号通知具有第二值(例如,1)的copy_above_palette_indices_flag。
[0359]
另外,在“index”模式和“copy_above”模式下,指定使用相同的调色板样本模式连续编码的调色板索引的数量的游程值信息可以被另外编码。
[0360]
此外,在逃逸样本的情况下,逃逸样本的量化像素值可以被编码。在示例中,可以使用逃逸样本标志(例如,palette_escape_val_present_flag)用信号通知当前块是否包括逃逸样本。例如,当当前块不包括逃逸样本时,可以用信号通知具有第一值(例如,0)的palette_escape_val_present_flag。相比之下,当当前块包括逃逸样本时,可以用信号通知具有第二值(例如,1)的palette_escape_val_present_flag。
[0361]
图像编码设备可以确定当前块的划分结构是否为局部双树结构(s2340)。
[0362]
在示例中,当前块的划分结构是否为局部双树结构可以基于当前块的预测模式类型来确定。例如,如上面参照图10a至图10c描述的,当当前块的预测模式类型是仅帧内预测适用的mode_type_intra时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的预测模式类型不是mode_type_intra(例如,mode_type_all)时,当前块的划分结构可以是单树结构。
[0363]
在另一示例中,当前块的划分结构是否为局部双树结构可以基于当前块的树类型treetype或当前ctu的划分结构中的至少一个来确定。例如,当当前块的树类型不是单树single_tree并且当前ctu包括在p切片或b切片中或被划分为具有单树结构时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的树类型是单树single_tree时,当前块的划分结构可以是单树结构。另选地,当当前块包括在i切片中,包括在对应切片中的ctu被隐含四叉树划分成64
×
64亮度样本cu并且64
×
64亮度样本cu是双树的根节点时,当前块的划分结构可以是双树结构。可以使用下式6所示的localdualtreeflag用信号通知当前块的划分结构是否为局部双树结构。
[0364]
[式6]
[0365]
localdualtreeflag=(treetype!=single_tree&&(sh_slice_type!=i||(sh_slice_type==i&&sps_qtbtt_dual_tree_intra_flag==0)))?1:0
[0366]
参照式6,sps_qtbtt_dual_tree_intra_flag可以指定当前ctu的划分结构。例如,具有第一值(例如,0)的sps_qtbtt_dual_tree_intra_flag可以指定当前块包括在i切片中并且包括在对应切片中的ctu被划分为具有单树结构。相比之下,具有第二值(例如,1)的sps_qtbtt_dual_tree_intra_flag可以指定当前块包括在i切片中,包括在对应切片中的ctu被隐含四叉树划分成64
×
64亮度样本cu,并且64
×
64亮度样本cu是双树的根节点。
[0367]
localdualtreeflag的值可以基于当前块的树类型treetype、切片类型sh_slice_type和当前ctu的划分结构sps_qtbtt_dual_tree_intra_flag来确定。localdualtreeflag的第一值(例如,0)可以指定当前块的划分结构不是局部双树结构,localdualtreeflag的第二值(例如,1)可以指定当前块的划分结构是局部双树结构。
[0368]
当当前块的划分结构不是局部双树结构时(s2340为“否”),图像编码设备可以使用用于当前块的调色板表来更新调色板预测子(s2350)。例如,当当前块是单色格式的亮度块时,图像编码设备可以更新调色板预测子。另外,当当前块是色度块并且当前块的划分结构不是局部双树结构时,图像编码设备可以更新调色板预测子。相比之下,当当前块是色度块并且当前块的划分结构是局部双树结构时,图像编码设备可以不更新调色板预测子。
[0369]
在示例中,图像编码设备可以通过将包括在调色板表中的至少一个调色板条目添加到调色板预测子来更新调色板预测子。另外,图像编码设备可以通过将包括在调色板预测子中的至少一个调色板条目替换为包括在调色板表中的至少一个调色板条目来更新调色板预测子。在这种情况下,调色板预测子中替换的调色板条目可以根据先入先出(fifo)方法被确定为最老的调色板条目或最不经常使用的调色板条目。
[0370]
在示例中,可以连续地执行调色板预测子的更新处理,直至调色板预测子达到最大大小。当调色板预测子未达到最大大小时,调色板预测子中在调色板表中未重用的至少一个调色板条目可以被添加作为新的调色板预测子。这可以被称为调色板填充。另外,关于更新的调色板预测子的信息可以被编码并用信号通知。
[0371]
当当前块的划分结构是局部双树结构时(s2340为“是”),图像编码设备可以跳过更新调色板预测子的步骤s2350。在这种情况下,对于当前ctu中在当前块之后被调色板编码的块,应用于当前块的调色板预测子可以再次应用。
[0372]
此外,尽管确定当前块的划分结构是否为局部双树结构的步骤s2340被示出为在图23中对当前块进行编码的步骤s2330之后执行,但操作顺序可以不同地改变。例如,步骤s2340可以在s2330或步骤s2340之前执行,或者可以与步骤s2330同时执行。
[0373]
图24是例示在图19的示例中调色板预测子未被更新时的调色板编码处理的视图。
[0374]
参照图24,在对第二亮度块1912的编码处理s2410中更新的调色板预测子中,用于亮度分量的调色板条目可以用于第(3-1)亮度块1913-1的调色板编码(s2420)。另外,在对第二亮度块1912的编码处理s2410中更新的调色板预测子中,用于色度分量的调色板条目可以用于第三色度块1923的调色板编码(s2430)。另外,在对具有局部双树结构的第(3-1)亮度块1913-1和第三色度块1923的调色板编码处理中,可以跳过更新调色板预测子的处理。结果,对于在第(3-1)亮度块1913-1和第三色度块1923之后被调色板编码的第四亮度块1914,在对第二亮度块1912的调色板编码处理s2410中更新的调色板预测子可以再次应用(s2440)。
[0375]
图25是例示基于当前块的划分结构选择性地更新调色板预测子的处理的示例的视图。
[0376]
参照图25,仅当当前块的预测模式类型是所有帧内预测、帧内块复制(ibc)、调色板模式和帧间预测均适用的第一模式类型(例如,mode_type_all)时,才可以执行构建调色板预测子predictorpaletteentries[cidx][i]的调色板条目predictorpaletteentries的更新操作。
[0377]
参数currentpalettesize[startcomp]可以指定用于当前块的调色板表的大小(即,调色板条目的总数)。
[0378]
参数startcomp、numcomps和maxnumpalettepredictorsize中的每一个的值可以根据当前块的划分树结构不同地设定。
[0379]
例如,当当前块具有单树结构时,参数startcomp、numcomps和maxnumpalettepredictorsize中的每一个的值可以如下式7所示设定。
[0380]
[式7]
[0381]
startcomp=0
[0382]
numcomps=sps_chroma_format_idc==0?1:3
[0383]
maxnumpalettepredictorsize=63
[0384]
参照式7,调色板表的第一颜色分量startcomp可以被设定为0。另外,当当前块的颜色格式(或色度格式)是单色时,调色板表的颜色分量的总数numcomps可以被设定为1,当当前块的颜色格式是4:4:4格式时,调色板表的颜色分量的总数numcomps可以被设定为3。另外,调色板预测子的最大大小maxnumpalettepredictorsize可以被设定为63。
[0385]
相比之下,当当前块具有双树亮度结构时,参数startcomp、numcomps和maxnumpalettepredictorsize中的每一个的值可以如下式8所示设定。
[0386]
[式8]
[0387]
startcomp=0
[0388]
numcomps=1
[0389]
maxnumpalettepredictorsize=31
[0390]
参照式8,调色板表的第一颜色分量startcomp可以被设定为0。另外,调色板表的颜色分量的总数numcomps可以被设定为1。另外,调色板预测子的最大大小maxnumpalettepredictorsize可以被设定为31。
[0391]
另外,当当前块具有双树色度结构时,参数startcomp、numcomps和maxnumpalettepredictorsize中的每一个的值可以如下式9所示设定。
[0392]
[式9]
[0393]
startcomp=1
[0394]
numcomps=2
[0395]
maxnumpalettepredictorsize=31
[0396]
参照式9,调色板表的第一颜色分量startcomp可以被设定为1。另外,调色板表的颜色分量的总数numcomps可以被设定为2。另外,调色板预测子的最大大小maxnumpalettepredictorsize可以被设定为31。
[0397]
调色板表的所有调色板条目可以被设定为新调色板条目(newpredictorpaletteentries[cidx][i]=currentpaletteentries[cidx][i])。这里,cidx可以意指颜色分量。另外,第一颜色分量startcomp的新调色板预测子的大小可以被设定为新调色板预测子的大小(newpredictorpalettesize=currentpalettesize[startcomp])。
[0398]
接下来,基于预定重用标志palettepredictorentryreuseflags[i]的值,调色板预测子的至少一个调色板条目可以被设定为新调色板条目(newpredictorpaletteentries[cidx][newpredictorpalettesize]=predictorpaletteentries[cidx][i])。另外,新调色板预测子的大小可以增加1(newpredictorpalettesize )。
[0399]
接下来,所有上述新调色板条目可以被设定为新调色板预测子的调色板条目(predictorpaletteentries[cidx][i]=newpredictorpaletteentries[cidx][i])。另外,新调色板预测子的大小可以被设定为用于第一颜色分量startcomp的调色板预测子的大小(newpredictorpalettesize=predictorpalettesize[startcomp])。
[0400]
图26是例示根据本公开的实施方式的调色板解码方法的流程图。
[0401]
图26的调色板解码方法可以由图3的图像解码设备执行。具体地,步骤s2610至s2660可以由帧内预测单元265或不同于帧内预测单元265的单独功能块(例如,调色板解码器)执行。
[0402]
参照图26,当调色板模式应用于当前块时,图像解码设备可以从比特流获得当前块的调色板信息和调色板索引预测信息(s2610)。
[0403]
调色板信息可以包括关于调色板预测子的信息。另外,调色板信息还可以包括关于新调色板条目的信息。在示例中,图像解码设备可以通过对包括在比特流中的predictorpaletteentries[cidx][i]进行解码来获得关于调色板预测子的信息。另外,在示例中,图像解码设备可以通过对包括在比特流中的new_palette_entries[cidx][i]进行解码来获得关于新调色板条目的信息。在predictorpaletteentries[cidx][i]和new_palette_entries[cidx][i]中,cidx可以意指颜色分量。
[0404]
调色板索引预测信息可以包括关于用于当前块的调色板索引图的信息。在示例中,图像解码设备可以通过对包括在比特流中的paletteindexmap[xc][yc]进行解码来获得映射至当前块的至少一个调色板索引。这里,xc和yc可以是相对于当前块所属的ctu(或切片)的左上样本指定当前样本的相对位置的坐标指示符。在示例中,图像解码设备可以通过对包括在比特流中的paletterunminus1进行解码来获得包括在调色板索引图中的调色板索引的游程值信息。
[0405]
图像解码设备可以基于从比特流获得的调色板信息为当前块构建调色板预测子和调色板表(s2620)。
[0406]
在示例中,图像解码设备可以基于包括在比特流中的predictorpaletteentries[cidx][i]来构建用于当前块的调色板预测子。例如,调色板预测子可以具有在包括当前块的ctu(或切片)的第一次解码时初始化的预定值(例如,0)。另选地,调色板预测子可以具有与先前调色板解码处理中更新的调色板预测子相同的配置。
[0407]
图像解码设备可以基于调色板预测子来构建用于当前块的调色板表。调色板表可以包括调色板预测子中所包括的调色板条目或从比特流获得的新调色板条目中的至少一个和用于识别各个调色板条目的调色板索引。
[0408]
在示例中,调色板预测子和调色板表可以根据当前块的颜色格式(或色度格式)不同地构建。例如,根据当前块的颜色格式,调色板预测子和调色板表可以仅包括用于亮度分量的调色板条目或用于亮度分量和色度分量中的每一个的调色板条目。
[0409]
在示例中,调色板预测子和调色板表可以根据当前块的划分结构不同地构建。例如,当当前块具有单树结构时,调色板预测子和调色板表可以具有共同应用于当前块的亮度分量和色度分量的单个配置。相比之下,当当前块具有双树结构时,调色板预测子和调色板表可以具有单独应用于当前块的亮度分量和色度分量的多个配置。
[0410]
图像解码设备可以基于从比特流获得的调色板索引预测信息来生成用于当前块的调色板索引图(s2630)。具体地,图像解码设备可以通过使用从比特流获得的调色板索引、调色板样本模式和调色板样本模式的游程值根据预定扫描方法将调色板索引映射至当前块中的各个样本来生成调色板索引图。
[0411]
调色板解码的扫描方法可以包括如上面参照图15描述的水平遍历扫描和垂直遍历扫描。在示例中,可以通过对包括在比特流中的palette_transpose_flag进行解码来确定调色板解码的扫描方法。例如,when_transpose_flag具有第一值(例如,0),调色板解码的扫描方法可以被确定为水平遍历扫描。相比之下,当palette_transpose_flag具有第二值(例如,1)时,调色板解码的扫描方法可以被确定为垂直遍历扫描。
[0412]
如上所述,调色板样本模式可以包括“index”模式和“copy_above”模式。当“index”模式应用于当前样本时,映射至当前样本的调色板索引的值可以直接从比特流获得。相比之下,当“copy_above”模式应用于当前样本时,映射至当前样本的调色板索引的值可以被确定为映射至存在于当前样本的上方(在水平遍历扫描的情况下)或左侧(在垂直遍历扫描的情况下)的邻近样本的调色板索引的值。
[0413]
此外,当当前样本是逃逸样本时,当前样本的量化像素值可以直接从比特流获得。逃逸调色板索引可以被映射至逃逸样本。
[0414]
图像解码设备可以基于用于当前块的调色板表和调色板索引图来对当前块进行
解码(s2640)。具体地,图像解码设备可以通过参考调色板表将调色板索引图中的各个调色板索引的值逆映射至代表颜色值来生成当前块的预测块。
[0415]
另外,图像解码设备可以确定当前块是否具有局部双树结构(s2650)。
[0416]
在示例中,当前块的划分结构是否为局部双树结构可以基于当前块的预测模式类型来确定。例如,如上面参照图10a至图10c描述的,当当前块的预测模式类型是仅帧内预测适用的mode_type_intra时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的预测模式类型不是mode_type_intra(例如,mode_type_all)时,当前块的划分结构可以是单树结构。
[0417]
在另一示例中,当前块的划分结构是否为局部双树结构可以基于当前块的树类型treetype和包括当前块的ctu(当前ctu)的划分结构中的至少一个来确定。例如,当当前块的树类型不是单树single_tree并且当前ctu被划分为具有单树结构时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的树类型是单树single_tree时,当前块的划分结构可以是单树结构。另选地,当当前块包括在i切片中,包括在对应切片中的ctu被隐含四叉树划分成64
×
64亮度样本cu,并且64
×
64亮度样本cu是双树的根节点时,当前块的划分结构可以是双树结构。当前块的划分结构是否为局部双树结构可以通过对式6所示的上述localdualtreeflag进行解码来确定。例如,当localdualtreeflag具有第一值(例如,0)时,当前块的划分结构可以被确定为单树结构或双树结构。相比之下,当localdualtreeflag具有第二值(例如,1)时,当前块的划分结构可以被确定为局部双树结构。
[0418]
当当前块的划分结构不是局部双树结构时(s2650为“否”),图像解码设备可以使用用于当前块的调色板表来更新调色板预测子(s2660)。例如,当当前块是单色格式的亮度块时,图像解码设备可以更新调色板预测子。另外,当当前块是色度块并且当前块的划分结构不是局部双树结构时,图像解码设备可以更新调色板预测子。相比之下,当当前块是色度块并且当前块的划分结构是局部双树结构时,图像解码设备可以不更新调色板预测子。
[0419]
在示例中,图像解码设备可以通过将包括在调色板表中的至少一个调色板条目添加到调色板预测子来更新调色板预测子。另外,图像解码设备可以通过将包括在调色板预测子中的至少一个调色板条目替换为包括在调色板表中的至少一个调色板条目来更新调色板预测子。在这种情况下,调色板预测子中替换的调色板条目可以根据先入先出(fifo)方法被确定为最老的调色板条目或最不经常使用的调色板条目。
[0420]
在示例中,可以连续地执行调色板预测子的更新处理,直至调色板预测子达到最大大小。当调色板预测子未达到最大大小时,调色板预测子中在调色板表中未重用的至少一个调色板条目可以被添加作为新调色板预测子。这可以被称为调色板填充。
[0421]
在示例中,图像解码设备可以基于从图像编码设备用信号通知的调色板预测子的更新信息来更新调色板预测子。
[0422]
当当前块的划分结构是局部双树结构时(s2650为“是”),图像解码设备可以跳过更新调色板预测子的步骤s2660。在这种情况下,对于当前ctu中在当前块之后被调色板解码的块,应用于当前块的调色板预测子可以再次应用。
[0423]
根据本公开的实施方式#1,当当前块的划分结构是局部双树结构时,可以跳过更新应用于当前块的调色板预测子的处理。因此,可以解决用于在当前块之后被调色板编码/解码的块的调色板预测子不包括在应用于当前块的有效调色板条目中或包括在无效调色
板条目中的问题。
[0424]
实施方式#2
[0425]
根据本公开的实施方式#2,在对具有局部双树结构的当前块进行调色板编码/解码时,调色板模式可以基于当前块的划分结构选择性地应用。
[0426]
图27是例示根据本公开的实施方式的调色板编码方法的流程图。
[0427]
图27的调色板编码方法可以由图2的图像编码设备执行。具体地,步骤s2710至s2760可以由帧内预测单元165或不同于帧内预测单元165的单独功能块(例如,调色板编码器)执行。此外,图27的s2720至s2750可以对应于图23的s2310至s2330和s2350。因此,s2720至s2750的描述将被简化。
[0428]
参照图27,图像编码设备可以确定当前块的划分结构是否为局部双树结构(s2710)。
[0429]
在示例中,当前块的划分结构是否为局部双树结构可以基于当前块的预测模式类型来确定。例如,如上面参照图10a至图10c描述的,当当前块的预测模式类型是仅帧内预测适用的mode_type_intra时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的预测模式类型不是mode_type_intra(例如,mode_type_all)时,当前块的划分结构可以是单树结构。
[0430]
在另一示例中,当前块的划分结构是否为局部双树结构可以基于当前块的树类型treetype或当前ctu的划分结构中的至少一个来确定。例如,当当前块的树类型不是单树single_tree并且当前ctu包括在p切片或b切片中或被划分为具有单树结构时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的树类型是单树single_tree时,当前块的划分结构可以是单树结构。另选地,当当前块包括在i切片中,包括在对应切片中的ctu被隐含四叉树划分成64
×
64亮度样本cu,并且64
×
64亮度样本cu是双树的根节点时,当前块的划分结构可以是双树结构。可以使用下式6所示的localdualtreeflag用信号通知当前块的划分结构是否为局部双树结构。在这种情况下,localdualtreeflag的第一值(例如,0)可以指定当前块的划分结构不是局部双树结构,localdualtreeflag的第二值(例如,1)可以指定当前块的划分结构是局部双树结构。
[0431]
当当前块的划分结构不是局部双树结构时(s2710为“否”),图像编码设备可以确定调色板模式应用于当前块并且构建用于当前块的调色板预测子和调色板表(s2720)。
[0432]
调色板预测子可以包括至少一个调色板条目(代表颜色值)和用于识别调色板条目的调色板索引。当当前块是当前ctu(或切片)中第一次被调色板编码的块时,调色板预测子可以具有预定初始值(例如,0)。相比之下,当当前块不是当前ctu中第一次被调色板编码的块时,调色板预测子可以包括在当前ctu中的当前块的先前调色板编码处理中使用的至少一个调色板条目。
[0433]
图像编码设备可以基于调色板预测子来构建调色板表。调色板表可以包括选自调色板预测子的至少一个调色板条目和用于识别各个调色板条目的调色板索引。
[0434]
在示例中,调色板预测子和调色板表可以根据当前块的颜色格式(或色度格式)不同地构建。例如,当当前块的颜色格式是上面参考表2描述的单色格式时,调色板预测子和调色板表可以仅包括用于当前块的亮度分量的调色板条目。相比之下,当当前块的颜色格式是上面参考表2描述的4:2:0、4:2:2或4:4:4格式时,调色板预测子和调色板表可以包括
用于当前块的亮度分量和色度分量中的每一个的调色板条目。
[0435]
在示例中,调色板预测子和调色板表可以根据当前块的划分结构不同地构建。例如,当当前块具有单树结构时,调色板预测子和调色板表可以具有共同应用于当前块的亮度分量和色度分量的一个配置。相比之下,当当前块具有双树结构时,调色板预测子和调色板表可以具有单独应用于当前块的亮度分量和色度分量中的每一个的多个配置。
[0436]
图像编码设备可以基于调色板表来生成用于当前块的调色板索引图(s2730)。具体地,图像编码设备可以通过基于当前块中的各个像素(样本)的像素值是否与调色板表中的代表颜色值相等或相似将调色板索引映射至当前块中的各个像素来生成调色板索引图。
[0437]
图像编码设备可以基于调色板索引图对当前块进行编码(s2740)。
[0438]
当前块的编码处理可以通过根据预定扫描方法扫描调色板索引图中的调色板索引来执行。具体地,图像编码设备可以通过根据预定扫描方法扫描映射至当前块的调色板索引来确定各个调色板索引的编码模式(调色板样本模式)。
[0439]
调色板编码的扫描方法可以包括如上面参照图15描述的水平遍历扫描和垂直遍历扫描。在示例中,可以使用palette_transpose_flag用信号通知关于扫描方法的信息。
[0440]
用于对包括在调色板索引图中的各个调色板索引进行编码的调色板样本模式可以包括“index”模式和“copy_above”模式。当调色板样本模式被确定为“index”模式时,对应调色板索引的值可以被编码。相比之下,当调色板样本模式被确定为“copy_above”模式时,对应调色板索引的值可以不被编码,并且指定对应调色板索引具有与存在于上方(在水平遍历扫描的情况下)或左侧(在垂直遍历扫描的情况下)的调色板索引相同的值的信息。在示例中,可以使用copy_above_palette_indices_flag用信号通知关于调色板样本模式的信息。
[0441]
另外,在“index”模式和“copy_above”模式下,指定使用相同的调色板样本模式连续编码的调色板索引的数量的游程值信息可以被另外编码。
[0442]
此外,可以使用逃逸样本标志(例如,palette_escape_val_present_flag)用信号通知指定调色板索引图是否包括逃逸调色板索引的信息。对于逃逸调色板索引映射至的样本(逃逸样本),对应样本的量化像素值可以被编码并用信号通知。.
[0443]
图像编码设备可以使用用于当前块的调色板表来更新调色板预测子(s2750)。例如,图像编码设备可以通过将包括在调色板表中的至少一个调色板条目添加到调色板预测子来更新调色板预测子。另外,图像编码设备可以通过将包括在调色板预测子中的至少一个调色板条目替换为包括在调色板表中的至少一个调色板条目来更新调色板预测子。调色板预测子中替换的调色板条目可以根据先入先出(fifo)方法被确定为最老的调色板条目或最不经常使用的调色板条目。
[0444]
可以连续地执行调色板预测子的更新处理,直至调色板预测子达到最大大小。例如,可以通过调色板填充来更新调色板预测子,直至达到最大调色板大小。
[0445]
当当前块的划分结构是局部双树结构时(s2710为“是”),图像编码设备可以不对当前块应用调色板模式,并且可使用调色板模式以外的正常预测模式(例如,帧内预测模式、帧间预测模式等)对当前块进行编码(s2760)。上面参照图1至图14描述了正常预测模式的细节。
[0446]
此外,可以使用调色板模式标志(例如,pred_mode_plt_flag)用信号通知关于调
色板模式是否应用于当前块的信息。
[0447]
图28是例示包括调色板模式标志的coding_unit语法的详细示例的视图。
[0448]
参照图28,pred_mode_plt_flag可以指定调色板模式是否应用于当前块(或当前cu)。例如,具有第一值(例如,0)的pred_mode_plt_flag可以指定调色板模式可以不应用于当前块。相比之下,具有第二值(例如,1)的pred_mode_plt_flag可以指定调色板模式可以应用于当前块。
[0449]
在示例中,可以基于当前块的预测模式类型用信号通知pred_mode_plt_flag。例如,当当前块的预测模式类型是所有帧内预测、帧内块复制(ibc)、调色板模式和帧间预测均适用的第一模式类型(例如,mode_type_all)时,可以用信号通知pred_mode_plt_flag。相比之下,当当前块的预测模式类型是仅帧内预测适用的第二模式类型(例如,mode_type_intra)或仅帧间预测适用的第三模式类型(例如,mode_type_inter)时,可以不用信号通知pred_mode_plt_flag。
[0450]
图29是例示根据本公开的实施方式的调色板解码方法的流程图。
[0451]
图29的调色板解码方法可以由图3的图像解码设备执行。具体地,步骤s2910至s2980可以由帧内预测单元265或不同于帧内预测单元265的单独功能块(例如,调色板解码器)执行。此外,图29的s2930至s2970可以对应于图26的s2610至s2640和s2660。因此,s2930至s2970的描述可以简化。
[0452]
参照图29,图像解码设备可以确定当前块的划分结构是否为局部双树结构(s2910)。
[0453]
在示例中,当前块的划分结构是否为局部双树结构可以基于当前块的预测模式类型来确定。例如,如上面参照图10a至图10c描述的,当当前块的预测模式类型是仅帧内预测适用的mode_type_intra时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的预测模式类型不是mode_type_intra(例如,mode_type_all)时,当前块的划分结构可以是单树结构。
[0454]
在另一示例中,当前块的划分结构是否为局部双树结构可以基于当前块的树类型treetype或当前ctu的划分结构中的至少一个来确定。例如,当当前块的树类型不是单树single_tree并且当前ctu包括在p切片或b切片中或被划分为具有单树结构时,当前块的划分结构可以是局部双树结构。相比之下,当当前块的树类型是单树single_tree时,当前块的划分结构可以是单树结构。另选地,当当前块包括在i切片中,包括在对应切片中的ctu被隐含四叉树划分成64
×
64亮度样本cu,64
×
64亮度样本cu是双树的根节点时,当前块的划分结构可以是双树结构。可以通过对式6所示的上述localdualtreeflag进行解码来用信号通知当前块的划分结构是否为局部双树结构。例如,localdualtreeflag具有第一值(例如,0)可以指定当前块的划分结构不是局部双树结构,localdualtreeflag的第二值(例如,1)可以指定当前块的划分结构是局部双树结构。
[0455]
当当前块的划分结构不是局部双树结构时(s2910为“否”),图像解码设备可以确定调色板模式是否应用于当前块。在示例中,图像解码设备可以基于从比特流获得的调色板模式标志(例如,pred_mode_plt_flag)来确定调色板模式是否应用于当前块。例如,当上面参照图28描述的pred_mode_plt_flag具有第一值(例如,0)时,调色板模式可以应用于当前块。相比之下,当pred_mode_plt_flag具有第二值(例如,1)时,调色板模式可以应用于当
前块。此外,当未从比特流获得pred_mode_plt_flag时,pred_mode_plt_flag的值可以被推断为具有第一值。
[0456]
当调色板模式应用于当前块时(s2920为“是”),图像解码设备可以从比特流获得当前块的调色板信息和调色板索引预测信息(s2930)。调色板信息可以包括关于调色板预测子和/或新调色板条目的信息。调色板索引预测信息可以具有映射至当前块的调色板索引和调色板索引的游程值信息。
[0457]
图像解码设备可以基于从比特流获得的调色板信息来构建用于当前块的调色板预测子和调色板表(s2940)。在示例中,调色板预测子可以具有与在当前块的先前调色板解码处理中更新的调色板预测子相同的配置。此外,当未从比特流获得关于调色板预测子的信息时,调色板预测子可以具有预定初始值(例如,0)或与先前调色板解码处理中使用的调色板预测子相同的配置。
[0458]
图像解码设备可以基于调色板预测子来构建用于当前块的调色板表。调色板表可以包括调色板预测子中所包括的调色板条目或从比特流获得的新调色板条目中的至少一个和用于识别各个调色板条目的调色板索引。
[0459]
在示例中,调色板预测子和调色板表可以根据当前块的颜色格式(或色度格式)不同地构建。另外,调色板预测子和调色板表可以根据当前块的划分结构不同地构建。
[0460]
图像解码设备可以基于调色板索引预测信息来生成用于当前块的调色板索引图(s2950)。具体地,图像解码设备可以通过使用从比特流获得的调色板索引、调色板样本模式和调色板样本模式的游程值根据预定扫描方法将调色板索引映射至当前块中的各个样本来生成调色板索引图。
[0461]
调色板解码的扫描方法可以包括如上面参照图15描述的水平遍历扫描和垂直遍历扫描。在示例中,调色板解码的扫描方法可以通过对包括在比特流中的palette_transpose_flag进行解码来确定。例如,when_transpose_flag具有第一值(例如,0),调色板解码的扫描方法可以被确定为水平遍历扫描。相比之下,当palette_transpose_flag具有第二值(例如,1)时,调色板解码的扫描方法可以被确定为垂直遍历扫描。
[0462]
如上所述,调色板样本模式可以包括“index”模式和“copy_above”模式。当“index”模式应用于当前样本时,可以直接从比特流获得映射至当前样本的调色板索引的值。相比之下,当“copy_above”模式应用于当前样本时,映射至当前样本的调色板索引的值可以被确定为映射至存在于当前样本的上方(在水平遍历扫描的情况下)或左侧(在垂直遍历扫描的情况下)的邻近样本的调色板索引的值。
[0463]
此外,当当前样本是逃逸样本时,当前样本的量化像素值可以直接从比特流获得。逃逸调色板索引可以被映射至逃逸样本。
[0464]
图像解码设备可以基于用于当前块的调色板表和调色板索引图对当前块进行解码(s2960)。具体地,图像解码设备可以通过参考调色板表将调色板索引图中的各个调色板索引的值逆映射至代表颜色值来生成当前块的预测块。
[0465]
图像解码设备可以使用用于当前块的调色板表来更新调色板预测子(s2970)。例如,图像解码设备可以通过将包括在调色板表中的至少一个调色板条目添加到调色板预测子来更新调色板预测子。另外,图像解码设备可以通过将包括在调色板预测子中的至少一个调色板条目替换为包括在调色板表中的至少一个调色板条目来更新调色板预测子。
[0466]
在示例中,可以连续地执行调色板预测子的更新处理,直至调色板预测子达到最大调色板大小。例如,可以通过调色板填充来更新调色板预测子,直至达到最大调色板大小。
[0467]
在示例中,图像解码设备可以基于从图像编码设备用信号通知的调色板预测子的更新信息来更新调色板预测子。
[0468]
当当前块的划分结构是局部双树结构时(s2910为“是”),图像解码设备可以不对当前块应用调色板模式,并且可以使用调色板模式以外的正常预测模式(例如,帧内预测模式、帧间预测模式等)对当前块进行解码(s2980)。上面参照图1至图14描述了正常预测模式的细节。在这种情况下,对于当前ctu中在当前块之后被调色板解码的块,可以应用初始化为预定值(例如,0)的调色板预测子,或者应用于当前块的调色板预测子可以再次应用。
[0469]
根据本公开的实施方式#2,当当前块的划分结构是局部双树结构时,当前块可以使用调色板模式以外的正常预测模式来编码/解码。因此,由于更新调色板预测子的处理被跳过,所以可以解决调色板预测子不包括在有效调色板条目中或者包括在无效调色板条目中的问题。
[0470]
虽然为了描述的清楚起见,上述本公开的示例性方法被表示为一系列操作,但并不旨在限制执行步骤的顺序,并且必要时这些步骤可以同时或以不同的顺序来执行。为了实现根据本发明的方法,所描述的步骤可以进一步包括其它步骤,可以包括除了一些步骤之外的其余步骤,或者可以包括除了一些步骤之外的其它附加步骤。
[0471]
在本公开中,执行预定操作(步骤)的图像编码装置或图像解码装置可以执行确认相应操作(步骤)的执行条件或情况的操作(步骤)。例如,如果描述了在满足预定条件时执行预定操作,则图像编码装置或图像解码装置可以在确定是否满足预定条件之后执行预定操作。
[0472]
本公开的各种实施方式不是所有可能组合的列表并且旨在描述本公开的代表性方面,并且在各种实施方式中描述的事项可以独立地或以两个或更多个的组合应用。
[0473]
本公开的各种实施方式可以以硬件、固件、软件或其组合来实现。在通过硬件实现本公开的情况下,本公开可以通过专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器等来实现。
[0474]
此外,应用本公开的实施方式的图像解码设备和图像编码设备可以包括在多媒体广播传送和接收装置、移动通信终端、家庭影院视频装置、数字影院视频装置、监控摄像头、视频聊天装置、诸如视频通信的实时通信装置、移动流传输装置、存储介质、摄像机、视频点播(vod)服务提供装置、ott视频(over the top video)装置、互联网流传输服务提供装置、三维(3d)视频装置、视频电话视频装置、医疗视频装置等中,并且可用于处理视频信号或数据信号。例如,ott视频装置可以包括游戏机、蓝光播放器、互联网接入电视、家庭影院系统、智能电话、平板pc、数字录像机(dvr)等。
[0475]
图30是示出可应用本公开的实施方式的内容流系统的视图。
[0476]
如图30中所示,应用本公开的实施方式的内容流系统可以主要包括编码服务器、流服务器、网络服务器、媒体存储装置、用户装置和多媒体输入装置。
[0477]
编码服务器将从诸如智能电话、相机、摄像机等多媒体输入装置输入的内容压缩
成数字数据以生成比特流并将该比特流发送到流服务器。作为另一示例,当智能电话、相机、摄像机等多媒体输入装置直接生成比特流时,可以省略编码服务器。
[0478]
比特流可以由应用本公开的实施方式的图像编码方法或图像编码设备产生,并且流服务器可以在发送或接收比特流的过程中暂时存储比特流。
[0479]
流服务器基于用户通过网络服务器的请求将多媒体数据发送到用户装置,并且网络服务器用作向用户告知服务的媒介。当用户向网络服务器请求所需的服务时,网络服务器可以将其递送到流服务器,并且流服务器可以向用户发送多媒体数据。在这种情况下,内容流系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流系统中的装置之间的命令/响应。
[0480]
流服务器可以从媒体存储装置和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平滑的流服务,流服务器可以在预定时间内存储比特流。
[0481]
用户装置的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(pda)、便携式多媒体播放器(pmp)、导航设备、石板pc、平板pc、超级本、可穿戴装置(例如,智能手表、智能眼镜、头戴式显示器)、数字电视、台式计算机、数字标牌等。
[0482]
内容流系统中的各个服务器可以作为分布式服务器运行,在这种情况下,从各个服务器接收的数据可以被分布。
[0483]
本公开的范围包括用于使根据各种实施方式的方法的操作能够在设备或计算机上执行的软件或机器可执行命令(例如,操作系统、应用、固件、程序等)、具有存储在其上并且可在设备或计算机上执行的此类软件或命令的非暂时性计算机可读介质。
[0484]
工业实用性
[0485]
本公开的实施方式可以被用于对图像进行编码或解码。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献