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

用于残差编码的图像解码方法及其设备与流程

2022-11-28 14:54:26 来源:中国专利 TAG:


1.本文档涉及图像编码技术,更具体地,涉及一种视频解码方法和设备,其中,当在图像编码系统中对当前块的残差数据进行编码时,基于关于是否启用sdh的标志信息来对关于是否启用/禁用tsrc的标志信息进行编码。


背景技术:

2.近来,在各种领域中,对诸如hd(高清)图像和uhd(超高清)图像这样的高分辨率、高质量图像的需求正在增长。因为图像数据具有高分辨率和高质量,所以相对于传统图像数据,待传输的信息或比特的量增加。因此,当使用诸如传统有线/无线宽带线路这样的介质发送图像数据或者使用现有存储介质存储图像数据时,其传输成本和存储成本增加。
3.因此,需要用于有效地发送、存储和再现高分辨率高质量图像的信息的高效图像压缩技术。


技术实现要素:

4.技术问题
5.本公开提供了一种用于提高图像编码效率的方法和设备。
6.本公开还提供了一种用于提高残差编码效率的方法和设备。
7.技术方案
8.根据本文档的实施方式,提供了一种由解码设备执行的图像解码方法。该方法包括以下步骤:获得当前切片是否启用符号数据隐藏的符号数据隐藏启用标志;获得用于针对所述当前切片中的变换跳过块是否启用变换跳过残差编码tsrc的tsrc启用标志;基于所述tsrc启用标志来获得所述当前切片中的当前块的残差编码信息;基于接收到的所述当前块的预测信息来推导所述当前块的预测样本;基于所述残差编码信息来推导所述当前块的残差样本;以及基于所述预测样本和所述残差样本来生成重构图片,其中,所述当前块是所述当前切片中的变换跳过块,并且其中,所述tsrc启用标志是基于所述符号数据隐藏启用标志获得的。
9.根据本文档的另一实施方式,提供了一种用于执行图像解码的解码设备。所述解码设备包括:熵解码器,其被配置为获得用于当前切片是否启用符号数据隐藏的符号数据隐藏启用标志,获得用于所述当前切片中的变换跳过块是否启用变换跳过残差编码(tsrc)的tsrc启用标志,基于所述tsrc启用标志获得所述当前切片中的当前块的残差编码信息;预测器,其被配置为基于接收到的当前块的预测信息来推导所述当前块的预测样本;残差处理器,其被配置为基于所述残差编码信息来推导当前块的残差样本;以及加法器,其被配置为基于所述预测样本和所述残差样本来生成重构图片,其中,所述当前块是所述当前切片中的变换跳过块,并且其中,基于所述符号数据隐藏启用标志来获得所述tsrc启用标志。
10.根据本文档的又一实施方式,提供了一种由编码设备执行的视频编码方法。所述方法包括以下步骤:通过对当前切片中的当前块执行预测来推导所述当前块的预测样本;
基于所述预测样本来推导所述当前块的残差样本;对用于所述预测的预测信息进行编码;针对所述当前切片是否启用符号数据隐藏来对符号数据隐藏启用标志进行编码;基于所述符号数据隐藏标志来对用于针对所述当前切片中的变换跳过块是否启用变换跳过残差编码tsrc的tsrc启用标志进行编码;基于所述tsrc启用标志来对针对所述当前块的残差信息进行编码;以及生成包括所述符号数据隐藏启用标志、所述tsrc启用标志、所述预测信息和所述残差信息的比特流,其中,所述当前块是所述当前切片中的变换跳过块。
11.根据本文档的又一实施方式,提供了一种视频编码设备。所述编码设备包括:预测器,其被配置为通过对当前切片中的当前块执行预测来推导所述当前块的预测样本;残差处理器,其被配置为基于所述预测样本来推导所述当前块的残差样本;以及熵编码器,其被配置为对用于所述预测的预测信息进行编码,对用于所述当前切片是否启用符号数据隐藏的符号数据隐藏启用标志进行编码,基于所述符号数据隐藏启用标志对用于所述当前切片中的变换跳过块是否启用变换跳过残差编码(tsrc)的tsrc启用标志进行编码,基于所述tsrc启用标志对所述当前块的残差信息进行编码,生成包括所述符号数据隐藏启用标志、所述tsrc启用标志、所述预测信息和所述残差信息的比特流,其中,所述当前块是所述当前切片中的所述变换跳过块。
12.根据本文档的另一实施方式,提供了一种计算机可读数字存储介质,其存储包括使解码设备执行图像解码方法的图像信息的比特流。在所述计算机可读数字存储介质中,所述图像解码方法包括:获得用于当前切片是否启用符号数据隐藏的符号数据隐藏启用标志;获得当前切片是否启用符号数据隐藏的符号数据隐藏启用标志;获得用于针对所述当前切片中的变换跳过块是否启用变换跳过残差编码tsrc的tsrc启用标志;基于所述tsrc启用标志来获得所述当前切片中的当前块的残差编码信息;基于接收到的所述当前块的预测信息来推导所述当前块的预测样本;基于所述残差编码信息来推导所述当前块的残差样本;以及基于所述预测样本和所述残差样本来生成重构图片,其中,所述当前块是所述当前切片中的变换跳过块,并且其中,所述tsrc启用标志是基于所述符号数据隐藏启用标志获得的。
13.有益效果
14.根据本文档,可以提高残差编码的效率。
15.根据本文档,可以根据符号数据隐藏启用标志来发信号通知tsrc启用标志,并且通过此,可以通过防止符号数据隐藏被用于未启用tsrc的变换跳过块来提高编码效率,并且可以通过减少要被编码的比特量来提高整体残差编码效率。
16.根据本文档,可以根据变换跳过启用标志和符号数据隐藏启用标志来发信号通知tsrc启用标志,并且通过此,可以通过防止符号数据隐藏被用于未启用tsrc的变换跳过块来提高编码效率,并且可以通过减少待编码的比特量来提高总残差编码效率。
附图说明
17.图1简要例示了适用本公开的实施方式的视频/图像编码装置的示例。
18.图2是例示了可以应用本公开的实施方式的视频/图像编码设备的配置的示意图。
19.图3是例示了可以应用本公开的实施方式的视频/图像解码设备的配置的示意图。
20.图4例示了基于帧间预测的视频/图像编码方法的示例。
21.图5例示了基于帧间预测的视频/图像解码方法的示例。
22.图6示意性示出了帧间预测过程。
23.图7示例性示出了用于对语法元素进行编码的上下文自适应二进制算术编码(cabac)。
24.图8是示出了4
×
4块内的示例性变换系数的示图。
25.图9简要例示了根据本公开的由编码设备执行的图像编码方法。
26.图10简要例示了根据本公开的用于执行图像编码方法的编码设备。
27.图11简要例示了根据本公开的由解码设备执行的图像解码方法。
28.图12简要例示了根据本公开的用于执行图像解码方法的解码设备。
29.图13例示了应用本公开的内容流媒体系统的结构图。
具体实施方式
30.本公开可以按各种形式进行修改,并且将在附图中描述和例示其具体实施方式。然而,这些实施方式并不旨在限制本公开。以下描述中使用的术语仅仅用于描述具体实施方式,而不旨在限制本公开。单数的表述包括复数的表述,只要它被清楚不同地读出即可。诸如“包括”和“具有”这样的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、组件或其组合,因此应该理解,没有排除存在或添加一个或更多个不同特征、数字、步骤、操作、元件、组件或其组合的可能性。
31.此外,出于方便说明不同特定功能的目的,独立地绘制本公开中描述的图中的元件,这并不意味着这些元件是由独立硬件或独立软件实施的。例如,可以将这些元件中的两个或更多个元件组合,以形成单个元件,或者可以将一个元件分割为多个元件。在不脱离本公开的概念的情况下,其中元件被组合和/或分割的实施方式属于本公开。
32.下文中,将参考附图来详细地描述本公开的实施方式。另外,在整个附图中,类似的附图标记用于指示类似的元件,并且将省略对类似元件的相同描述。
33.图1简要例示了可应用本公开的实施方式的视频/图像编码装置的示例。
34.参照图1,视频/图像编码系统可以包括第一装置(源装置)和第二装置(接收在)。源装置可以经由数字存储介质或网络以文件或流的形式向接收装置发送编码视频/图像信息或数据。
35.源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以称为视频/图像编码设备,并且解码设备可以称为视频/图像解码设备。发送器可以包括在编码设备中。接收器可以包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。
36.视频源可以通过捕获、合成或生成视频/图像的处理来获取视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板电脑和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以由生成相关数据的处理代替。
37.编码设备可以对输入的视频/图像进行编码。编码设备可以执行诸如预测、变换和
量化的一系列过程,以实现压缩和编码效率。编码数据(编码视频/图像信息)能够以比特流的形式输出。
38.发送器可以通过数字存储介质或网络以文件或流的形式向接收装置的接收器发送以比特流形式输出的编码后的图像/图像信息或数据。数字存储介质可以包括诸如usb、sd、cd、dvd、蓝光、hdd、ssd等的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并向解码装置发送接收到的比特流。
39.解码设备可以通过执行与编码设备的操作相对应的诸如解量化、逆变换和预测之类的一系列过程,来对视频/图像进行解码。
40.渲染器可以渲染解码后的视频/图像。可以通过显示器显示渲染后的视频/图像。
41.本公开涉及视频/图像编码。例如,本公开中公开的方法/实施方式可以应用于以通用视频编码(vvc)、evc(基本视频编码)标准、aomedia video 1(av1)标准、第二代音频视频编码标准(avs2)或下一代视频/图像编码标准(例如,h.267或h.268等)中公开的方法h.267或h.268等)公开的方法。
42.本公开提出了视频/图像编码的各种实施方式,并且除非另外提到,否则这些实施方式可以彼此组合地执行。
43.在本公开中,视频可以是指随时间推移的一系列图像。图片通常是指表示特定时间区域中的一副图像的单元,并且子图片/切片/拼块(tile)是编码时构成图片的一部分的单元。子图片/切片/拼块可以包括一个或更多个编码树单元(ctu)。一个图片可以由一个或更多个子图片/切片/拼块组成。一个图片可以由一个或更多个拼块组组成。一个拼块组可以包括一个或更多个拼块。图块(brick)可以表示图片中的拼块内的ctu行的矩形区域。拼块可以被分割成多个图块,图块中的每一个由拼块内的一个或更多个ctu行组成。没有被分割成多个图块的拼块也可以称为图块。图块扫描是以下的分割图片的ctu的特定顺序排序:按图块中的ctu光栅扫描对ctu进行排序,按拼块的图块的光栅扫描对拼块内的图块进行连续排序,并且按图片的拼块的光栅扫描对图片中的拼块进行连续排序。另外,子图片可以表示图片内的一个或更多个切片的矩形区域。即,子图片包含一齐覆盖图片的矩形区域的一个或更多个切片。拼块是图片中的特定拼块列和特定拼块行内的ctu的矩形区域。拼块列是高度等于图片的高度并且宽度由图片参数集中的语法元素指定的ctu的矩形区域。拼块行是高度由图片参数集中的语法元素指定并且宽度等于图片宽度的ctu的矩形区域。拼块扫描是以下的分割图片的ctu的特定顺序排序:按拼块中的ctu光栅扫描对ctu进行连续排序,而按图片的拼块的光栅扫描对图片中的拼块进行连续排序。切片包括可以被排他性包含在单个nal单元中的图片的整数个图块。切片可以由要么多个完整拼块组成要么仅一个拼块的完整图块的连续序列组成。在本公开中,可以将拼块组与切片互换地使用。例如,在本公开中,拼块组/拼块组头可以被称为切片/切片头。
44.像素或画素(pel)可以意指构成一个图片(或图像)的最小单元。另外,“样本”可以被用作与像素对应的术语。样本通常可以表示像素或像素的值,可以仅表示亮度分量的像素/像素值,或仅表示色度分量的像素/像素值。
45.单元可以表示图像处理的基本单元。单元可以包括图片的特定区域和与该区域相关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。在某
些情况下,可以将单元与诸如块或区域这样的术语互换地使用。在通常情况下,m
×
n块可以包括m列n行的样本(或样本阵列)或变换系数的集合(或阵列)。
46.在本说明书中,“a或b”可以意指“仅a”、“仅b”或“a和b二者”。换句话说,在本说明书中,“a或b”可以被解释为“a和/或b”。例如,本文中的“a、b或c”意指“仅a”、“仅b”、“仅c”或“a、b和c中的任一个及任何组合”。
47.在本说明书中使用的斜杠(/)或逗号(,)可以意指“和/或”。例如,“a/b”可以意指“a和/或b”。相应地,“a/b”可以意指“仅a”、“仅b”或“a和b二者”。例如,“a、b、c”可以意指“a、b或c”。
48.在本说明书中,“a和b中的至少一个”可以意指“仅a”、“仅b”或“a和b二者”。另外,在本说明书中,表述“a或b中的至少一个”或“a和/或b中的至少一个”可以被解释为与“a和b中的至少一个”相同。
49.另外,在本说明书中,“a、b和c中的至少一个”意指“仅a”、“仅b”、“仅c”或“a、b和c的任何组合”。另外,“a、b或c中的至少一个”或“a、b和/或c中的至少一个”可以意指“a、b和c中的至少一个”。
50.另外,在本说明书中使用的括号可以意指“例如”。具体地,当指示“预测(帧内预测)”时,“帧内预测”可以被提议作为“预测”的示例。换句话说,本说明书中的“预测”不限于“帧内预测”,并且“帧内预测”可以被提议作为“预测”的示例。另外,即使当指示“预测(即,帧内预测)”时,“帧内预测”可以被提议作为“预测”的示例。
51.在本说明书中,在一个附图中被单独描述的技术特征可以被单独地实现或可以同时地实现。
52.创建以下附图以便说明本说明书的具体示例。由于在附图中描述的具体装置的名称或具体信号/消息/字段的名称是以示例的方式提出的,因此本说明书的技术特征不限于在以下附图中使用的具体名称。
53.图2是例示了可以应用本公开的实施方式的视频/图像编码设备的配置的示意图。下文中,视频编码设备可以包括图像编码设备。
54.参照图2,编码设备200包括图像分割器210、预测器220、残差处理器230和熵编码器240、加法器250、滤波器260和存储器270。预测器220可以包括帧间预测器221和帧内预测器222。残差处理器230可以包括变换器232、量化器233、反量化器234和逆变换器235。残差处理器230还可以包括减法器231。加法器250可以称为重构器或重构块生成器。根据实施方式,图像分割器210、预测器220、残差处理器230、熵编码器240、加法器250和滤波器260可以由至少一个硬件组件(例如,编码器芯片组或处理器)构成。另外,存储器270可以包括解码图片缓冲器(dpb)或者可以由数字存储介质构成。硬件组件还可以包括作为内部/外部组件的存储器270。
55.图像分割器210可以将输入到编码设备200的输入图像(或图片或帧)分割到一个或更多个处理器中。例如,处理器可以被称为编码单元(cu)。在这种情况下,可以根据四叉树二叉树三叉树(qtbttt)结构从编码树单元(ctu)或最大编码单元(lcu)来递归地分割编码单元。例如,一个编码单元可以基于四叉树结构、二叉树结构和/或三元结构而被分割为深度更深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,随后可以应用二叉树结构和/或三元结构。可替选地,可以首先应用二叉树结构。可以基于不再分割的最
终编码单元来执行根据本公开的编码过程。在这种情况下,可以根据图像特性基于编码效率将最大编码单元用作最终编码单元,或者如果需要,可以将编码单元递归地分割为深度更深的编码单元并且具有最佳大小的编码单元可以用作最终编码单元。这里,编码过程可以包括预测、变换和重构的过程,这将在后面描述。作为另一示例,处理器还可以包括预测单元(pu)或变换单元(tu)。在这种情况下,可以从上述最终编码单元来分离或分割预测单元和变换单元。预测单元可以是样本预测的单元,并且变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
56.在一些情况下,单元可以与诸如块或区域的术语互换使用。在一般情况下,m
×
n块可以表示由m列和n行组成的样本或变换系数的集合。样本通常可以表示像素或像素值,可以仅表示亮度分量的像素/像素值,或者仅表示色度分量的像素/像素值。样本可以用作与像素或画素的一幅图片(或图像)相对应的术语。
57.在编码设备200中,从输入图像信号(原始块、原始样本阵列)中减去从帧间预测器221或帧内预测器222输出的预测信号(预测块、预测样本阵列),以生成残差信号(残差块、残差样本阵列)并且所生成的残差信号被发送到变换器232。在这种情况下,如图所示,在编码设备200中用于从输入图像信号(原始块、原始样本阵列)减去预测信号(预测块、预测样本阵列)的单元可以称为减法器231。预测器可以对要处理的块(在下文中称为当前块)执行预测,并生成包括当前块的预测样本的预测块。预测器能够以当前块或cu为基础来确定是应用帧内预测还是应用帧间预测。如稍后在每个预测模式的描述中所述,预测器可以生成与预测有关的、诸如预测模式信息之类的各种信息,并向熵编码器240发送所生成的信息。关于预测的信息可以在熵编码器240中编码并以比特流的形式输出。
58.帧内预测器222可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以位于当前块的附近,或者可以远离当前块。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如dc模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅是示例,依据设置,可以使用更多或更少的定向预测模式。帧内预测器222可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
59.帧间预测器221可以基于由参照图片上的运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参照图片中的时间邻近块。包括参考块的参照图片和包括时间邻近块的参照图片可以相同或不同。时间邻近块可以称为并置参考块、共位cu(colcu)等,并且包括时间邻近块的参照图片可以称为并置图片(colpic)。例如,帧间预测器221可以基于邻近块来配置运动信息候选列表,并且生成指示使用哪个候选来推导当前块的运动向量和/或参照图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器221可以将邻近块的运动信息用作当前块的运动信息。在跳过模式下,与合并模式不同,可能无法发送残差信号。在运动向量预测(mvp)模式的情况下,可以将邻近块的运动向量用作运动向量预测子,并且可以通过发信号通知运动向量差来指示当前块的运
动向量。
60.预测器220可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测这二者。这可以称为帧间帧内组合预测(ciip)。另外,预测器可以基于帧内块复制(ibc)预测模式或调色板模式来预测块。ibc预测模式或调色板模式可用于游戏等的内容图像/视频编码,例如,屏幕内容编码(scc)。ibc基本上在当前图片中执行预测,但是可以类似于帧间预测来执行ibc,因为参考块是在当前图片中推导的。即,ibc可以使用本公开中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。
61.由预测器(包括帧间预测器221和/或帧内预测器222)生成的预测信号可以用于生成重构信号或生成残差信号。变换器232可以通过向残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen-lo
è
ve变换(klt)、基于图的变换(gbt)或条件非线性变换(cnt)中的至少一种。这里,gbt表示当像素之间的关系信息由图表示时从图获得的变换。cnt是指基于使用所有先前重构的像素生成的预测信号而生成的变换。另外,变换处理可以应用于具有相同大小的正方形像素块,或者可以应用于具有可变大小而非正方形的块。
62.量化器233可以对变换系数进行量化,并且将它们发送给熵编码器240,并且熵编码器240可以对量化信号(关于量化变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以称为残差信息。量化器233可以基于系数扫描顺序将块类型量化变换系数重新布置为一维向量形式,并且基于一维向量形式的量化变换系数来生成关于量化变换系数的信息。可以生成关于变换系数的信息。熵编码器240可以执行各种编码方法,诸如,例如指数哥伦布(golomb)、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等。熵编码器240可以对除了量化变换系数以外的视频/图像重构所需的信息(例如,语法元素的值等)一起或分开地进行编码。能够以比特流的形式以nal(网络抽象层)为单位发送或存储编码信息(例如,编码视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(aps)、图片参数集(pps)、序列参数集(sps)或视频参数集(vps)之类的各种参数集的信息。另外,视频/图像信息还可以包括一般约束信息。在本公开中,从编码设备向解码设备发送/发信号通知的信息和/或语法元素可以包括在视频/图片信息中。视频/图像信息可以通过上述编码过程被编码并且被包括在比特流中。比特流可以通过网络发送,或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如usb、sd、cd、dvd、蓝光、hdd、ssd等的各种存储介质。可以包括发送从熵编码器240输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)作为编码设备200的内部/外部元件,并且可替选地,发送器可以包括在熵编码器240中。
63.从量化器233输出的量化变换系数可以用于生成预测信号。例如,可以通过利用反量化器234和逆变换器235对量化变换系数应用解量化和逆变换,来重构残差信号(残差块或残差样本)。加法器250将重构的残差信号与从帧间预测器221或帧内预测器222输出的预测信号相加,以生成重构信号(重构图片、重构块、重构样本阵列)。如果要处理的块没有残差(诸如应用了跳过模式的情况),则可以将预测块用作重构块。加法器250可以称为重构器或重构块生成器。所生成的重构信号可以用于在当前图片中要处理的下一块的帧内预测,
并且可以通过如下所述的滤波用于下一图片的帧间预测。
64.此外,在图片编码和/或重构期间,可以应用亮度映射与色度缩放(lmcs)。
65.滤波器260可以通过对重构信号应用滤波来改善主观/客观图像质量。例如,滤波器260可以通过对重构图片应用各种滤波方法来生成修改后的重构图片,并将修改后的重构图片存储在存储器270(具体地,存储器270的dpb)中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。滤波器260可以生成与滤波有关的各种信息,并且将生成的信息发送给熵编码器240,如稍后在各种滤波方法的描述中所述。与滤波有关的信息可以由熵编码器240编码并且以比特流的形式输出。
66.发送给存储器270的修改后的重构图片可以用作帧间预测器221中的参照图片。当通过编码设备应用帧间预测时,可以避免编码设备200与解码设备之间的预测不匹配,并且可以提高编码效率。
67.存储器270的dpb可以存储用作帧间预测器221中的参照图片的修改后的重构图片。存储器270可以存储从中推导(或编码)当前图片中的运动信息的块的运动信息和/或图片中已重构的块的运动信息。所存储的运动信息可以发送给帧间预测器221,并且用作空间邻近块的运动信息或时间邻近块的运动信息。存储器270可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送给帧内预测器222。
68.图3是例示了可以应用本公开的实施方式的视频/图像解码设备的配置的示意图。
69.参照图3,解码设备300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350、存储器360。预测器330可以包括帧间预测器332和帧内预测器331。残差处理器320可以包括反量化器321和逆变换器322。根据实施方式,熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由硬件组件(例如,解码器芯片组或处理器)构成。另外,存储器360可以包括解码图片缓冲器(dpb),或者可以由数字存储介质构成。硬件组件还可以包括存储器360作为内部/外部组件。
70.当输入包括视频/图像信息的比特流时,解码设备300可以与在图2的编码设备中处理视频/图像信息的处理相对应地重构图像。例如,解码设备300可以基于从比特流获得的块分割相关信息来推导单元/块。解码设备300可以使用在编码设备中应用的处理器来执行解码。因此,解码的处理器可以是例如编码单元,并且可以根据四叉树结构、二叉树结构和/或三叉树结构,从编码树单元或最大编码单元对编码单元进行分割。可以从编码单元推导一个或更多个变换单元。可以通过再现装置来再现通过解码设备300解码并输出的重构图像信号。
71.解码设备300可以接收以比特流形式从图2的编码设备输出的信号,并且可以通过熵解码器310对接收到的信号进行解码。例如,熵解码器310可以解析比特流,以推导图像重构(或图片重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(aps)、图片参数集(pps)、序列参数集(sps)或视频参数集(vps)之类的各种参数集的信息。另外,视频/图像信息还可以包括一般约束信息。解码设备还可以基于关于参数集的信息和/或一般约束信息来对图片进行解码。本公开中稍后描述的发信号通知的/接收的信息和/或语法元素可以通过解码过程被解码,并从比特流中获取。例如,熵解码器310基于诸如指数哥伦布编码、cavlc或cabac之类的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素和残差的变换系数的量化值。更具体地,cabac熵解码方法
可以接收与比特流中的每个语法元素相对应的bin,使用解码目标语法元素信息、解码目标块的解码信息或在先前级中解码的符号/bin的信息来确定上下文模型,并通过根据所确定的上下文模型预测bin的出现概率来对该bin进行算术解码,并且生成与每个语法元素的值相对应的符号。在这种情况下,在确定上下文模型之后,cabac熵解码方法可以通过将经解码的符号/bin的信息用于下一符号/bin的上下文模型来更新上下文模型。由熵解码器310解码的信息之中与预测有关的信息可以提供给预测器(帧间预测器332和帧内预测器331),并且在熵解码器310中对其执行了熵解码的残差值(也就是说,量化变换系数和相关参数信息)可以被输入到残差处理器320。残差处理器320可以推导残差信号(残差块、残差样本、残差样本阵列)。另外,由熵解码器310解码的信息之中关于滤波的信息可以提供给滤波器350。此外,用于接收从编码设备输出的信号的接收器(未示出)可以进一步被配置为解码设备300的内部/外部元件,或者接收器可以是熵解码器310的组件。此外,根据本公开的解码设备可以称为视频/图像/图片解码设备,并且解码设备可以分类为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器310,并且样本解码器可以包括反量化器321、逆变换器322、加法器340、滤波器350、存储器360、帧间预测器332和帧内预测器331中的至少一个。
72.反量化器321可以对量化变换系数进行解量化并且输出变换系数。反量化器321能够以二维块的形式重新布置量化变换系数。在这种情况下,可以基于在编码设备中执行的系数扫描顺序来执行重新布置。反量化器321可以通过使用量化参数(例如,量化步长信息)对量化变换系数执行解量化,并且获得变换系数。
73.逆变换器322对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
74.预测器可以对当前块执行预测,并生成包括当前块的预测样本的预测块。预测器可以基于从熵解码器310输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且可以确定具体的帧内/帧间预测模式。
75.预测器可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测。这可以称为帧间和帧内组合预测(ciip)。另外,预测器可以基于帧内块复制(ibc)预测模式或调色板模式来预测块。ibc预测模式或调色板模式可以用于游戏等的内容图像/视频编码,例如,屏幕内容编码(scc)。ibc基本上在当前图片中执行预测,但是可以类似于帧间预测来执行ibc,因为在当前图片中推导参考块。即,ibc可以使用本公开中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。
76.帧内预测器331可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以位于当前块的附近,或者可以远离当前块。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。帧内预测器331可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
77.帧间预测器332可以基于参照图片上的由运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中发送的运动信息的量,可以基于邻近块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可以包括帧间预测方向(l0
预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参照图片中的时间邻近块。例如,帧间预测器332可以基于邻近块来配置运动信息候选列表,并基于接收到的候选选择信息来推导当前块的运动向量和/或参照图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。
78.加法器340可以通过将所获得的残差信号与从预测器(包括帧间预测器332和/或帧内预测器331)输出的预测信号(预测块、预测样本阵列)相加来生成重构信号(重构图片、重构块、重构样本阵列)。如果要处理的块没有残差(例如当应用跳过模式时),则可以将预测块用作重构块。
79.加法器340可以称为重构器或重构块生成器。所生成的重构信号可以用于当前图片中要处理的下一块的帧内预测,可以通过如下所述的滤波输出,或者可以用于下一图片的帧间预测。
80.此外,在图片解码过程中可以应用亮度映射与色度缩放(lmcs)。
81.滤波器350可以通过向重构信号应用滤波来改善主观/客观图像质量。例如,滤波器350可以通过对重构图片应用各种滤波方法来生成修改后的重构图片,并将修改后的重构图片存储在存储器360(具体地,存储器360的dpb)中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。
82.存储器360的dpb中存储的(修改后的)重构图片可以用作帧间预测器332中的参照图片。存储器360可以存储从中推导(或解码)当前图片中的运动信息的块的运动信息和/或图片中已重构的块的运动信息。所存储的运动信息可以发送给帧间预测器332,以作为空间邻近块的运动信息或时间邻近块的运动信息来利用。存储器360可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送给帧内预测器331。
83.在本公开中,在编码设备200的滤波器260、帧间预测器221和帧内预测器222中描述的实施方式可以与解码设备300的滤波器350、帧间预测器332和帧内预测器331相同或者分别被应用以对应于解码设备300的滤波器350、帧间预测器332和帧内预测器331。相同的内容也可以应用于帧间预测器332和帧内预测器331。
84.在本公开中,可以省略量化/逆量化和/或变换/逆变换中的至少一种。当省略量化/逆量化时,量化的变换系数可以被称为变换系数。当省略变换/逆变换时,变换系数可以被称为系数或残差系数,或者为了表达的统一性,仍可以被称为变换系数。
85.在本公开中,量化变换系数和变换系数可以分别被称为变换系数和缩放变换系数。在这种情况下,残差信息可以包括关于变换系数的信息,并且可以通过残差编码语法发信号通知关于变换系数的信息。可以基于残差信息(或关于变换系数的信息)推导变换系数,并且可以通过对变换系数逆变换(缩放)来推导缩放变换系数。可以基于对缩放变换系数逆变换(变换)来推导残差样本。这也可以在本公开的其它部分中应用/表达。
86.此外,如上所述,在执行视频编码时,执行预测以提高压缩效率。通过这样,可以生成包括用于当前块的预测样本的预测块,作为待编码的块(即,编码目标块)。在此,预测块包括空间域(或像素域)中的预测样本。在编码设备和解码设备中以相同的方式推导预测块,并且编码设备可以向解码设备发信号通知关于原始块与预测块之间的残差的信息(残差信息),而不是原始块的原始样本值,从而提高图像编码效率。解码设备可以基于残差信
息来推导包括残差样本的残差块,将残差块和预测块相加以生成包括重构样本的重构块,并且生成包括重构块的重构图片。
87.可以通过变换和量化过程来生成残差信息。例如,编码设备可以推导原始块与预测块之间的残差块,可以对包括在残差块中的残差样本(残差样本阵列)执行变换过程来推导变换系数,可以对变换系数执行量化过程来推导量化的变换系数,并且可以将相关残差信息(通过比特流)发信号通知解码设备。在此,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核心和量化参数等的值信息。解码设备可以基于残差信息来执行解量化/逆变换过程并且推导残差样本(或残差块)。解码设备可以基于预测块和残差块来生成重构图片。此外,为用于以后参照图片的帧间预测的参考,编码设备可以解量化/逆变换量化的变换系数以推导残差块,并且基于此来生成重构图片。
88.帧内预测可以指基于当前块所属的图片(以下称为当前图片)中的参考样本来生成当前块的预测样本的预测。当对当前块应用帧内预测时,可以推导将用于当前块的帧内预测的邻近参考样本。当前块的邻近参考样本可以包括与大小为nw
×
nh的当前块的左边界相邻的样本和与当前块的左下相邻的总共2
×
nh个样本,与当前块的顶边界相邻的样本和与当前块的右上相邻的总共2
×
nw个样本和与当前块的左上相邻的样本。另选地,当前块的邻近参考样本可以包括多列顶邻近样本和多行左邻近样本。此外,当前块的邻近参考样本可以包括与大小为nw
×
nh的当前块的右边界相邻的总共nh个样本,与当前块的下边界相邻的总共nw个样本以及与当前块的右下边界相邻的样本。
89.然而,当前块的一些邻近参考样本还没有被解码或者可能不可用。在此情况下,解码器可以通过利用可用样本替换不可用样本来构造将用于预测的邻近参考样本。另选地,可以通过对可用样本进行内插来配置将用于预测的邻近参考样本。
90.当推导邻近参考样本时,(i)可以基于当前块的邻近参考样本的平均或内插来推导预测样本,或(ii)可以基于当前块的邻近参考样本当中相对于预测样本存在于特定(预测)方向上的参考样本来推导预测样本。情况(i)可以称为非定向模式或非角度模式,而情况(ii)可以称为定向模式或角度模式。
91.另外,可以通过基于当前块的预测样本对位于当前块的帧内预测模式的预测方向上的第一邻近样本和位于邻近参考样本当中与预测方向相反的方向上的第二邻近样本进行插值来生成预测样本。上述情形可以称为线性内插帧内预测(lip)。另外,可以使用线性模型(lm)基于亮度样本来生成色度预测样本。这种情况可以称为lm模式或色度分量lm(cclm)模式。
92.另外,基于滤波后的邻近参考样本来推导当前块的临时预测样本,并且还可以通过对根据现有邻近参考样本(即,未滤波的邻近参考样本)当中的帧内预测模式推导的至少一个参考样本和临时预测样本进行加权求和来推导当前块的预测样本。上述情况可以被称为位置相关帧内预测(pdpc)。
93.另外,在当前块的邻近的多个参考样本线中选择具有最高预测精度的参考样本线,并且使用位于所选线中的预测方向上的参考样本来推导预测样本。在这种情况下,可以通过向解码设备指示(发信号通知)所使用的参考样本线来执行帧内预测编码。上述情况可以称为多参考线帧内预测或基于mrl的帧内预测。
94.另外,当前块被划分为垂直子分区或水平子分区,并且基于相同的帧内预测模式
来执行帧内预测,但是可以以子分区为单位来推导和使用邻近参考样本。也就是说,在这种情况下,当前块的帧内预测模式被同等地应用于子分区,但是在一些情况下,可以通过以子分区为单位推导和使用邻近参考样本来提高帧内预测性能。这种预测方法可以称为基于内部子分区(isp)的内部预测。
95.上述帧内预测方法可以被称为帧内预测类型以区别于帧内预测模式。帧内预测类型可以由诸如帧内预测技术或额外帧内预测模式的各种术语来指代。例如,帧内预测类型(或附加帧内预测模式等)可以包括上述lip、pdpc、mrl和isp中的至少一个。排除诸如lip、pdpc、mrl和isp的特定帧内预测类型的一般帧内预测方法可以被称为正常帧内预测类型。当不应用上述特定帧内预测类型时,通常可以应用正常帧内预测类型,并且可以基于上述帧内预测模式执行预测。此外,如果需要,可以对推导的预测样本执行后处理滤波。
96.具体地,帧内预测处理可以包括帧内预测模式/类型确定步骤、邻近参考样本推导步骤和基于帧内预测模式/类型的预测样本推导步骤。此外,如果需要,可以对推导的预测样本执行后滤波步骤。
97.当应用帧内预测时,可以使用邻近块的帧内预测模式来确定应用于当前块的帧内预测模式。例如,解码装置可以选择基于当前块的邻近块(例如,左邻近块和/或顶邻近块)的帧内预测模式和附加候选模式推导出的mpm列表中的最可能模式(mpm)候选中的一者,或基于剩余帧内预测模式信息选择未包括在mpm候选中的剩余帧内预测模式(和平面模式)中的一者。mpm列表可以被配置为包括或不包括平面模式作为候选。例如,当mpm列表包括平面模式作为候选时,mpm列表可以具有6个候选,而当mpm列表不包括平面模式作为候选时,mpm列表可以具有5个候选。当mpm列表不包括平面模式作为候选时,可以发信号通知表示当前块的帧内预测模式是否不是平面模式的非平面标志(例如,intra_luma_not_planar_flag)。例如,可以首先发信号通知mpm标志,并且当mpm标志的值是1时,可以发信号通知mpm索引和非平面标志。此外,当非平面标志的值是1时,可以发信号通知mpm索引。这里,mpm列表被配置为不包括平面模式作为候选的事实是平面模式总是被认为是mpm,而不是平面模式不是mpm,因此,标志(不是平面标志)首先被发信号通知以检查它是否是平面模式。
98.例如,可以基于mpm标志(例如,intra_luma_mpm_flag)来指示应用于当前块的帧内预测模式是在mpm候选(和平面模式)中还是在剩余模式中。值为1的mpm标志可以指示当前块的帧内预测模式在mpm候选(和平面模式)内,并且值为0的mpm标志可以指示当前块的帧内预测模式不在mpm候选(和平面模式)内。值为0的非平面标志(例如,intra_luma_not_planar_flag)可以指示当前块的帧内预测模式是平面模式,并且值为1的非平面标志可以指示当前块的帧内预测模式不是平面模式。可以以mpm_idx或intra_luma_mpm_idx语法元素的形式发信号通知mpm索引,并且可以以rem_intra_luma_pred_mode或intra_luma_mpm_remainder语法元素的形式发信号通知剩余帧内预测模式信息。例如,剩余帧内预测模式信息可以通过以预测模式编号的顺序进行索引来指示所有帧内预测模式当中未包括在mpm候选(和平面模式)中的剩余帧内预测模式中的一者。帧内预测模式可以是用于亮度分量(样本)的帧内预测模式。在下文中,帧内预测模式信息可以包括mpm标志(例如,intra_luma_mpm_flag)、非平面标志(例如,intra_luma_not_planar_flag)、mpm索引(例如,mpm_idx或intra_luma_mpm_idx)或剩余帧内预测模式信息(rem_intra_luma_luma_mpm_mode或intra_luma_mpminder)中的至少一个。在本公开中,mpm列表可以由诸如mpm候选列表和
candmodelist的各种术语来指代。当mip被应用于当前块时,mip的单独的mpm标志(例如,intra_mip_mpm_flag),mpm索引(例如,intra_mip_mpm_idx)和剩余的帧内预测模式信息(例如,intra_mip_mpm_remainder)可以被发信号通知,而非平面标志可以不被发信号通知。
99.换句话说,通常,当执行图像的块分割时,将被编码的当前块和邻近块具有相似的图像特性。因此,当前块和邻近块具有相同或相似的帧内预测模式的概率很高。因此,编码器可以使用邻近块的帧内预测模式来对当前块的帧内预测模式进行编码。
100.例如,解码装置/编码装置可以构造当前块的最可能模式(mpm)列表。mpm列表可以被称为mpm候选列表。这里,mpm可以指在帧内预测模式编码期间考虑到当前块和邻近块之间的相似性而用于提高编码效率的模式。如上所述,mpm列表可以被构造为包括平面模式,或者可以被构造为排除平面模式。例如,当mpm列表包括平面模式时,mpm列表中的候选数量可以是6。并且,当mpm列表不包括平面模式时,mpm列表中的候选数量可以是5。
101.编码器/解码器可以构造包括五个mpm或六个mpm的mpm列表。
102.为了构造mpm列表,可以考虑诸如默认帧内模式、邻近帧内模式和推导帧内模式的三种类型的模式。
103.对于邻近帧内模式,可以考虑两个邻近块(即,左邻近块和顶邻近块)。
104.如上所述,如果mpm列表被构造为不包括平面模式,则平面模式可从列表中排除,并且mpm列表候选的数量可以被设置为五。
105.此外,帧内预测模式当中的非定向模式(或非角度模式)可以包括基于当前块的邻近参考样本的平均值的dc模式或基于内插的平面模式。
106.此外,当应用帧间预测时,编码设备/解码设备的预测器可以通过以块为单位执行帧间预测来推导预测样本。当对当前块执行预测时,可以应用帧间预测。即,编码/解码设备的预测器(更具体地,帧间预测器)可以通过以块为单位执行帧间预测来推导预测样本。帧间预测可以表示由取决于除了当前图片之外的图片的数据元素(例如,样本值或运动信息)的方法推导出的预测。当向当前块应用帧间预测时,可以基于参考图片索引所指示的参考图片上的运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块(预测样本阵列)。在这种情况下,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单位来预测当前块的运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测类型(l0预测、l1预测、bi预测等)信息。在应用帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括参考块的参考图片和包括时间邻近块的参考图片可以彼此相同或彼此不同。时间邻近块可以被称为诸如并置参考块、并置cu(colcu)等这样的名称,并且包括时间邻近块的参考图片可以被称为并置图片(colpic)。例如,可以基于当前块的邻近块来配置运动信息候选列表,并且为了推导当前块的运动向量和/或参考图片索引,可以发信号通知指示选择(使用)哪个候选的标志或索引信息。可以基于各种预测模式来执行帧间预测,并且例如,在跳过模式和合并模式的情况下,当前块的运动信息可以与所选择的邻近块的运动信息相同。在跳过模式的情况下,可以不像合并模式那样发送残差信号。在运动向量预测(mvp)模式的情况下,所选择的邻近块的运动向量可以被用作运动向量预测子,并且可以发信号通知运动向量差。在这种情况下,可以使用运动向量预测子和
运动向量差之和来推导当前块的运动向量。
107.根据帧间预测类型(l0预测、l1预测、bi预测等),运动信息可以进一步包括l0运动信息和/或l1运动信息。l0方向运动向量可以被称为l0运动向量或mvl0,以及l1方向运动向量可以被称为l1运动向量或mvl1。基于l0运动向量的预测可以被称为l0预测,基于l1运动向量的预测可以被称为l1预测,以及基于l0运动向量和l1运动向量两者的预测可以被称为双预测(bi-prediction)。在此,l0运动向量可以指示与参照图片列表l0相关联的运动向量,以及l1运动向量可以指示与参照图片列表l1相关联的运动向量。参照图片列表l0可以包括按输出次序在当前图片之前的图片,以及参照图片列表l1可以包括按输出次序在当前图片之后的图片,作为参照图片。先前图片可以被称为前向(参考)图片,并且后续图片可以被称为反向(参考)图片。参照图片列表l0可以进一步包括按输出次序在当前图片之后的图片作为参照图片。在这种情况下,可以首先在参照图片列表l0中对先前图片进行索引,然后可以对后续图片进行索引。参照图片列表l1可以进一步包括按输出次序在当前图片之前的图片作为参照图片。在这种情况下,可以首先在参照图片列表l1中对后续图片进行索引,然后可以对先前图片进行索引。在此,输出次序可以对应于图片顺序计数(poc)次序。
108.基于帧间预测的视频/图像编码过程可以示意性地包括例如以下内容。
109.图4例示了基于帧间预测的视频/图像编码方法的示例。
110.编码设备对当前块执行帧间预测(s400)。编码设备可以推导当前块的帧间预测模式和运动信息,并且生成当前块的预测样本。在此,可以同时执行帧间预测模式确定过程、运动信息推导过程和预测样本的生成过程,并且可以比其它过程更早地执行任何一个过程。例如,编码设备的帧间预测单元可以包括预测模式确定单元、运动信息推导单元和预测样本推导单元,并且预测模式确定单元可以确定用于当前块的预测模式,运动信息推导单元可以推导当前块的运动信息,以及预测样本推导单元可以推导当前块的预测样本。例如,编码设备的帧间预测单元可以通过运动估计在参照图片的预定区域(搜索区域)中搜索与当前块相似的块,并且推导与当前块的差最小或者等于或小于预定准则的参考块。可以基于此推导来指示参考块所处的参照图片的参照图片索引,并且可以基于参考块与当前块之间的位置差来推导运动向量。编码设备可以确定各种预测模式当中的应用于当前块的模式。编码设备可以比较各种预测模式的rd成本,并且确定当前块的最佳预测模式。
111.例如,当跳过模式或合并模式被应用于当前块时,编码设备可以配置将在下面描述的合并候选列表,并且推导在由合并候选列表中包括的合并候选指示的参考块之中的、与当前块的差最小或者等于或小于预定标准的参考块。在这种情况下,与推导的参考块相关联的合并候选可以被选择,并且指示选择的合并候选的合并索引信息可以被生成并且被发信号通知解码设备。可以通过使用选择的合并候选的运动信息来推导当前块的运动信息。
112.作为另一示例,当(a)mvp模式被应用于当前块时,编码设备可以配置将在下文描述的(a)mvp候选列表,并且使用(a)mvp候选列表中包括的运动向量预测子(mvp)候选之中的选择的mvp候选的运动向量作为当前块的mvp。在这种情况下,例如,指示通过运动估计推导的参考块的运动向量可以被用作当前块的运动向量,并且mvp候选之中具有与当前块的运动向量的最小差的运动向量的mvp候选可以成为选择的mvp候选。可以推导运动向量差(mvd),该运动向量差是通过从当前块的运动向量减去mvp而获得的差。在这种情况下,关于
mvd的信息可以被发信号通知解码设备。此外,当应用(a)mvp模式时,参照图片索引的值可以被配置为参照图片索引信息并且被单独地发信号通知解码设备。
113.编码设备可以基于预测样本来推导残差样本(s410)。编码设备可以通过比较当前块的原始样本和预测样本来推导残差样本。
114.编码设备对包括预测信息和残差信息的图像信息进行编码(s420)。编码设备能够以比特流的形式来输出编码的图像信息。预测信息可以包括关于预测模式信息的信息(例如,跳过标志、合并标志或模式索引等)以及关于运动信息的信息,作为与预测过程相关的信息。关于运动信息的信息可以包括候选选择信息(例如,合并索引、mvp标志或mvp索引),该候选选择信息是用于推导运动向量的信息。此外,关于运动信息的信息可以包括关于mvd的信息和/或参照图片索引信息。此外,关于运动信息的信息可以包括指示是否应用l0预测、l1预测或双预测的信息。残差信息是关于残差样本的信息。残差信息可以包括关于用于残差样本的量化变换系数的信息。
115.输出比特流可以被存储在(数字)存储介质中并传送到解码设备,或者经由网络传送到解码设备。
116.此外,如上所述,编码设备可以基于参考样本和残差样本来生成重构图片(包括重构样本和重构块)。这是为了推导与由解码设备执行的预测结果相同的预测结果,并且结果,可以提高编码效率。因此,编码设备可以将重构图片(或重构样本或重构块)存储在存储器中,并将重构图片用作参照图片。如上所述,环内滤波处理可以被进一步应用于重构图片。
117.基于帧间预测的视频/图像解码处理可以示意性地包括例如以下内容。
118.图5例示了基于帧间预测的视频/图像解码方法的示例。
119.参照图5,解码设备可以执行与由编码设备执行的操作对应的操作。解码设备可以基于所接收的预测信息对当前块执行预测并推导预测样本。
120.具体地,解码设备可以基于所接收的预测信息来确定当前块的预测模式(s500)。解码设备可以基于预测信息中的预测模式信息来确定将哪种帧间预测模式应用于当前块。
121.例如,可以基于合并标志来确定是否合并模式或者(a)mvp模式被应用于当前块。可替选地,可以基于模式索引来选择各种帧间预测模式候选中的一种。帧间预测模式候选可以包括跳过模式、合并模式和/或(a)mvp模式,或者可以包括下文将描述的各种帧间预测模式。
122.解码设备基于所确定的帧间预测模式来推导当前块的运动信息(s510)。例如,当跳过模式或合并模式被应用于当前块时,解码设备可以配置将在下面描述的合并候选列表,并且在合并候选列表中包括的合并候选当中选择一个合并候选。在此,可以基于选择信息(合并索引)来执行选择。可以通过使用所选择的合并候选的运动信息来推导当前块的运动信息。所选择的合并候选的运动信息可以被用作当前块的运动信息。
123.作为另一示例,当(a)mvp模式被应用于当前块时,解码设备可以配置将在下文描述的(a)mvp候选列表,并且使用(a)mvp候选列表中包括的运动向量预测子(mvp)候选之中的选择的mvp候选的运动向量作为当前块的mvp。在此,可以基于选择信息(mvp标志或mvp索引)来执行选择。在这种情况下,可以基于关于mvd的信息来推导当前块的mvd,并且可以基于当前块的mvp和mvd来推导当前块的运动向量。此外,可以基于参照图片索引信息来推导
当前块的参照图片索引。由用于当前块的参照图片列表中的参照图片索引指示的图片可以被推导为当前块的帧间预测所参考的参照图片。
124.此外,如下所述,可以在没有候选列表配置的情况下推导当前块的运动信息,并且在这种情况下,可以根据预测模式中公开的过程来推导当前块的运动信息。在这种情况下,可以省略候选列表配置。
125.解码设备可以基于当前块的运动信息来生成用于当前块的预测样本(s520)。在这种情况下,可以基于当前块的参照图片索引来推导参照图片,并且可以通过使用由参照图片上的当前块的运动向量指示的参考块的样本来推导当前块的预测样本。在这种情况下,在一些情况下,可以进一步执行用于当前块的所有或一些预测样本的预测样本滤波过程。
126.例如,解码设备的帧间预测单元可以包括预测模式确定单元、运动信息推导单元和预测样本推导单元,并且预测模式确定单元可以基于所接收的预测模式信息来确定用于当前块的预测模式,运动信息推导单元可以基于关于所接收的运动信息的信息来推导当前块的运动信息(运动向量和/或参照图片索引),并且预测样本推导单元可以推导当前块的预测样本。
127.解码设备基于所接收的残差信息来生成针对当前块的残差样本(s530)。解码设备可以基于预测样本和残差样本来生成用于当前块的重构样本,并且基于所生成的重构样本来生成重构图片(s540)。此后,如上所述,环内滤波过程可以被进一步应用于重构图片。
128.图6示意性地示出了帧间预测过程。
129.参照图6,如上所述,帧间预测过程可以包括帧间预测模式确定步骤、根据所确定的预测模式的运动信息推导步骤,以及基于所推导的运动信息的预测处理(预测样本生成)步骤。帧间预测过程可以由如上所述的编码设备和解码设备执行。在本文中,编码设备可以包括编码设备和/或解码设备。
130.参照图6,编码设备确定当前块的帧间预测模式(s600)。可以将各种帧间预测模式用于图片中的当前块的预测。例如,可以使用各种模式,诸如合并模式、跳过模式、运动向量预测(mvp)模式、仿射模式、子块合并模式、具有mvd的合并(mmvd)模式以及历史运动向量预测(hmvp)模式。解码器侧运动向量细化(dmvr)模式、自适应运动向量分辨率(amvr)模式、具有cu级权重的双预测(bcw)以及双向光流(bdof)等可以进一步被用作附加模式。仿射模式也可以被称作仿射运动预测模式。mvp模式也可以被称作高级运动向量预测(amvp)模式。在本文中,一些模式和/或由一些模式推导的运动信息候选也可以被包括在其它模式中的运动信息相关候选中的一个中。例如,可以将hmvp候选添加到合并/跳过模式的合并候选,或者添加到mvp模式的mvp候选。如果hmvp候选被用作合并模式或跳过模式的运动信息候选,则可以将hmvp候选称作hmvp合并候选。
131.指示当前块的帧间预测模式的预测模式信息可以从编码设备发信号通知解码设备。在这种情况下,预测模式信息可以被包括在比特流中并由解码设备接收。预测模式信息可以包括指示多个候选模式中的一种的索引信息。可替选地,可以通过标志信息的分层信令来指示帧间预测模式。在这种情况下,预测模式信息可以包括一个或多个标志。例如,可以通过发信号通知跳过标志来指示是否应用跳过模式,在不应用跳过模式时,可以通过发信号通知合并标志来指示是否应用合并模式,以及在不应用合并模式时,指示应用mvp模式或可以进一步发信号通知用于额外区分的标志。仿射模式可以被发信号通知为独立模式,
或发信号通知为关于合并模式或mvp模式的从属模式。例如,仿射模式可以包括仿射合并模式和仿射mvp模式。
132.编码设备推导用于当前块的运动信息(s610)。可以基于帧间预测模式来推导运动信息推导。
133.编码设备可以使用当前块的运动信息来执行帧间预测。编码设备可以通过运动估计过程来推导用于当前块的最佳运动信息。例如,编码设备可以通过使用用于当前块的原始图片中的原始块,在参照图片中的预定搜索范围内,以分数像素为单位搜索具有高相关性的类似参考块,并且通过所搜索的参考块来推导运动信息。可以根据基于相位的样本值的差来推导块的相似性。例如,可以基于当前块(或当前块的模板)与参考块(或参考块的模板)之间的绝对差的总和(sad)来计算块的相似性。在这种情况下,可以基于搜索区域中具有最小sad的参考块来推导运动信息。可以基于帧间预测模式,根据各种方法将推导的运动信息发信号通知解码设备。
134.编码设备基于用于当前块的运动信息来执行帧间预测(s620)。编码设备可以基于运动信息来推导用于当前块的(一个或多个)预测样本。包括预测样本的当前块可以被称作预测块。
135.此外,如上所述,编码设备可以执行诸如指数哥伦布(exponentialgolomb)、上下文自适应可变长度编码(cavlc)和上下文自适应二进制算术编码(cabac)的各种编码方法。另外,解码设备可以基于诸如指数哥伦布编码、cavlc或cabac的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素的值和与残差相关的变换系数的量化值。
136.例如,可以如下所述地执行上述的编码方法。
137.图7示例性示出了用于对语法元素进行编码的上下文自适应二进制算术编码(cabac)。例如,在cabac编码处理中,当输入信号是语法元素而非二进制值时,编码设备可以通过对输入信号的值进行二进制化来将输入信号转换为二进制值。另外,当输入信号已经是二进制值时(即,当输入信号的值是二进制值时),可以不执行二进制化,可以将其旁路。这里,构成二进制值的每个二进制数0或1可以被称为bin。例如,如果二进制化后的二进制串为110,则1、1和0中的每一个都可以被称为一个bin。针对一个语法元素的bin可以指示语法元素的值。
138.此后,语法元素的二进制化的bin可以被输入到常规编码引擎或旁路编码引擎。编码设备的常规编码引擎可以向对应的bin分配反映概率值的上下文模型,并基于所分配的上下文模型对对应bin进行编码。编码设备的常规编码引擎可以在对每个bin执行编码之后更新针对每个bin的上下文模型。如上所述编码的bin可以被称为上下文编码的bin。
139.此外,当语法元素的二进制化的bin被输入到旁路编码引擎时,它们可以被如下地编码。例如,编码设备的旁路编码引擎省略了估计关于输入bin的概率的过程以及在编码之后更新应用于bin的概率模型的过程。当应用旁路编码时,编码设备可以通过应用均匀概率分布来替代分配上下文模型来对输入bin进行编码,由此提高编码速率。如上所述编码的bin可以被称为旁路bin。
140.熵解码可以表示以倒序执行与上述熵编码相同的处理的处理。
141.例如,当基于上下文模型对语法元素进行解码时,解码设备可以通过比特流接收与语法元素对应的bin,使用语法元素和解码目标块或邻近块的解码信息或前一阶段中解
码的符号/bin的信息来确定上下文模型,根据所确定的上下文模型预测接收到的bin的出现概率,并且对bin执行算术解码以推导出语法元素的值。此后,可以利用所确定的上下文模型来更新被解码的bin的上下文模型。
142.此外,例如,当语法元素被旁路解码时,解码设备可以通过比特流接收与语法元素相对应的bin,并通过应用均匀概率分布对输入bin进行解码。在这种情况下,可以省略用于推导语法元素的上下文模型的过程以及在解码之后更新应用于bin的上下文模型的过程。
143.如上所述,可以通过变换和量化处理将残差样本推导为经量化的变换系数。经量化的变换系数也可以被称为变换系数。在这种情况下,可以以残差信息的形式发信号通知块中的变换系数。残差信息可以包括残差编码语法。也就是说,编码设备可以利用残差信息配置残差编码语法,对其进行编码,并以比特流的形式将其输出,并且解码设备可以从比特流中解码残差编码语法并推导出残差(经量化的)变换系数。残差编码语法可以包括表示是否向对应块应用变换、块中最后的有效变换系数的位置、子块中是否存在有效变换系数、有效变换系数的大小/符号等的语法元素,如随后将描述的。
144.例如,与残差数据编码/解码相关的语法元素可以如下表中所示地表示。
145.[表1]
[0146]
[0147]
[0148][0149]
transform_skip_flag指示是否在关联块中跳过了变换。transform_skip_flag可以是变换跳过标志的语法元素。关联块可以是编码块(cb)或变换块(tb)。关于变换(和量化)和残差编码过程,cb和tb可以被可互换地使用。例如,如上所述,可以针对cb推导残差样本,并且可以通过对残差样本的变换和量化来推导(量化)变换系数,并且通过残差编码过程,可以生成和发信号通知高效指示(量化)变换系数的位置、大小、符号等的信息(例如,语法元素)。量化变换系数可以被简称为变换系数。通常,当cb不大于最大tb时,cb的大小可以与tb的大小相同,并且在这种情况下,将被变换(和量化)并被残差编码的目标块可以被称为cb或tb。此外,当cb大于最大tb时,将被变换(和量化)并被残差编码的目标块可以被称为tb。下文中,将描述以变换块(tb)为单位发信号通知与残差编码相关的语法元素,但这是示例,并且如上所述,tb可以与编码块(cb)可互换地使用。
[0150]
此外,在发信号通知变换跳过标志之后发信号通知的语法元素可以与下表2和/或表3中公开的语法元素相同,并且下面描述关于语法元素的详细描述。
[0151]
[表2]
[0152]
[0153]
[0154]
[0155]
[0156][0157]
[表3]
[0158]
[0159]
[0160][0161]
根据本实施方式,如表1中所示,可以根据变换跳过标志的语法元素transform_skip_flag的值来划分残差编码。即,基于变换跳过标志的值(基于是否跳过变换),可以将不同的语法元素用于残差编码。没有应用变换跳过时(即,当应用变换时)使用的残差编码可以被称为常规残差编码(rrc),而应用变换跳过时(即,当未应用变换时)使用的残差编码可以被称为变换跳过残差编码(tsrc)。另外,常规残差编码可以被称为一般残差编码。另外,常规残差编码可以被称为常规残差编码语法结构,并且变换跳过残差编码可以被称为变换跳过残差编码语法结构。上表2可以示出当transform_skip_flag的值为0时(即,当应用变换时)的残差编码的语法元素,并且上表3可以示出当transform_skip_flag的值为1时(即,当未应用变换时)的残差编码的语法元素。
[0162]
具体地,例如,可以解析指示是否跳过变换块的变换的变换跳过标志,并且可以确定变换跳过标志是否为1。如果变换跳过标志的值为0,则如表2中所示,可以解析针对变换块的残差系数的语法元素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gtx_flag、par_level_flag、abs_remainder、coeff_sign_flag和/或dec_abs_level,并且可以基于语法元素来推导残差系数。在这种情况下,语法元素可以被依次解析,
并且解析顺序可以改变。另外,abs_level_gtx_flag可以表示abs_level_gt1_flag和/或abs_level_gt3_flag。例如,abs_level_gtx_flag[n]可以是第一变换系数级别标志(abs_level_gt1_flag)的示例,并且abs_level_gtx_flag[n]可以是第二变换系数级别标志(abs_level_gt3_flag)的示例。
[0163]
参照上表2,last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_remainder、coeff_sign_flag和/或dec_abs_level可以被编码/解码。此外,sb_coded_flag可以被表示为coded_sub_block_flag。
[0164]
在实施方式中,编码设备可以基于语法元素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix对变换块中的最后非零变换系数的(x,y)位置信息进行编码。更具体地,last_sig_coeff_x_prefix表示变换块内的按扫描顺序的最后有效系数的列位置的前缀,last_sig_coeff_y_prefix表示变换块内的按扫描顺序的最后有效系数的行位置的前缀,last_sig_coeff_x_suffix表示变换块内的按扫描顺序的最后有效系数的列位置的后缀,并且last_sig_coeff_y_suffix表示变换块内的按扫描顺序的最后有效系数的行位置的后缀。这里,有效系数可以表示非零系数。另外,扫描顺序可以是直角对角扫描顺序。另选地,扫描顺序可以是水平扫描顺序或垂直扫描顺序。可以基于是否向目标块(cb或包括tb的cb)应用帧内预测/帧间预测和/或特定帧内预测/帧间预测模式来确定扫描顺序。
[0165]
此后,编码设备可以将变换块划分为4
×
4子块,然后,使用针对每个4
×
4子块的1比特语法元素coded_sub_block_flag来指示当前子块中是否存在非零系数。
[0166]
如果coded_sub_block_flag的值为0,则没有更多的信息要发送,因此,编码设备可以终止对当前子块的编码处理。相反,如果coded_sub_block_flag的值为1,则编码设备可以连续地对sig_coeff_flag执行编码处理。由于包括最后非零系数的子块不需要对coded_sub_block_flag进行编码并且包括变换块的dc信息的子块具有包括非零系数的高概率,因此coded_sub_block_flag可以不被编码并且其值可以被假定为1。
[0167]
如果coded_sub_block_flag的值为1并因此确定在当前子块中存在非零系数,则编码设备可以根据反向扫描顺序对具有二进制值的sig_coeff_flag进行编码。编码设备可以根据扫描顺序对针对每个变换系数的1比特语法元素sig_coeff_flag进行编码。如果当前扫描位置处的变换系数的值不为0,则sig_coeff_flag的值可以为1。这里,在包括最后非零系数的子块的情况下,sig_coeff_flag不需要针对最后非零系数进行编码,因此可以省略针对子块的编码处理。只有当sig_coeff_flag为1时才可以执行级别信息编码,并且在级别信息编码处理中可以使用四个语法元素。更具体地,每个sig_coeff_flag[xc][yc]可以指示在当前tb中的每个变换系数位置(xc,yc)处的对应变换系数的级别(值)是否为非零。在实施方式中,sig_coeff_flag可以与指示经量化的变换系数是否为非零有效系数的有效系数标志的语法元素的示例相对应。
[0168]
可以如下式中所示地推导在对sig_coeff_flag进行编码之后剩余的级别值。也就是说,可以从下式推导出指示待编码的级别值的语法元素remabslevel。
[0169]
[式1]
[0170]
remabslevel=|coeff|-1
[0171]
本文中,coeff意指实际变换系数值。
[0172]
另外,abs_level_gt1_flag可以指示对应扫描位置(n)的remabslevel’是否大于1。例如,当abs_level_gt1_flag的值为0时,对应位置的变换系数的绝对值可以为1。另外,当abs_level_gt1_flag的值为1时,可以如下式中所示地更新指示稍后要编码的级别值的remabslevel。
[0173]
[式2]
[0174]
remabslevel=remabslevel-1
[0175]
另外,可以通过par_level_flag如下式3中一样地对上述式2中描述的remabslevel的最小有效系数(lsb)值进行编码。
[0176]
[式3]
[0177]
par_level_flag=|coeff|&1
[0178]
本文中,par_level_flag[n]可以指示在扫描位置(n)处的变换系数级别(值)的奇偶性。
[0179]
可以如下式中所示一样地更新在执行par_level_flag编码之后要被编码的变换系数级别值remabslevel。
[0180]
[式4]
[0181]
remabslevel=remabslevel>>1
[0182]
abs_level_gt3_flag可以指示对应扫描位置(n)的remabslevel’是否大于3。只有在rem_abs_gt3_flag等于1的情况下,才可以执行对abs_remainder的编码。可以用下式如下所示地表示实际的变换系数值coeff与每个语法元素之间的关系。
[0183]
[式5]
[0184]
|coeff|=sig_coeff_flag abs_level_gt1_flag par_level_flag 2*(abs_level_gt3_flag abs_remainder)
[0185]
另外,下表指示与上述式5相关的示例。
[0186]
[表4]
[0187][0188]
本文中,|coeff|指示变换系数级别(值),并且也可以被指示为变换系数的abslevel。另外,可以通过使用作为1比特符号的coeff_sign_flag对每个系数的符号进行编码。
[0189]
另外,如果变换跳过标志的值为1,则如表3中所示,可以解析针对变换块的残差系
数的语法元素sb_coded_flag、sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag、par_level_flag和/或abs_remainder,并且可以基于语法元素来推导残差系数。在这种情况下,语法元素可以被依次解析,并且解析顺序可以改变。另外,abs_level_gtx_flag可以表示abs_level_gt1_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag和/或abs_level_gt9_flag。例如,abs_level_gtx_flag[n][j]可以是指示扫描位置n处的变换系数的绝对值或级别(值)是否大于(j《《1) 1的标志。条件(j《《1) 1可以可选地被替换为诸如第一阈值、第二阈值等这样的特定阈值。
[0190]
此外,cabac提供高性能,但具有吞吐量性能不良的缺点。这是由cabac的常规编码引擎引起的。常规编码(即,通过cabac的常规编码引擎进行的编码)表现出高度的数据依赖性,因为它使用通过对前一bin的编码而更新的概率状态和范围,并且读取概率间隔并确定当前状态可能花费大量时间。cabac的吞吐量问题可以通过限制上下文编码的bin的数目来解决。例如,如上述表2中所示,用于表示sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag的bin的总和可以限于取决于对应块大小的bin的数目。另外,例如,如上述表3中所示,用于表示sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag的bin的总和可以限于取决于对应块大小的bin的数目。例如,如果对应块是4
×
4大小的块,则sig_coeff_flag、abs_level_gt1_flag,par_level_flag、abs_level_gt3_flag或sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag的bin的总和可以限于32(或例如,28),并且如果对应块是2
×
2大小的块,则sig_coeff_flag,abs_level_gt1_flag,par_level_flag,abs_level_gt3_flag的bin的总和可以限于8(或例如,7)。bin的受限数目可以由rembinspass1或remccbs表示。或者,例如,对于更高的cabac吞吐量,对于包括编码目标cg的块(cb或tb),上下文编码的bin的数目可以受限。换句话说,上下文编码的bin的数目可以以块(cb或tb)为单位来限制。例如,当当前块的大小为16
×
16时,用于当前块的上下文编码的bin的数目可以限于当前块的像素数目的1.75倍(即,448),而与当前cg无关。
[0191]
在这种情况下,如果在对上下文元素进行编码时使用数目受限的所有上下文编码的bin,则编码设备可以通过如下所述对系数进行二进制化的方法来对剩余系数进行二进制化,而不是使用上下文编码,并且可以执行旁路编码。换句话说,例如,如果针对4
×
4cg编码的上下文编码的bin的数目为32(或例如,28),或者如果针对2
×
2cg编码的上下文编码的bin的数目为8(或例如,7),则用上下文编码的bin编码的sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag可以不再被编码,并且可以被直接编码为dec_abs_level。或者,例如,当针对4
×
4块编码的上下文编码的bin的数目为整个块的像素数目的1.75倍时,即,当限于28时,作为上下文编码的bin被编码的sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag可以不再被编码,并可以被直接编码为dec_abs_level,如下表5中所示。
[0192]
[表5]
[0193]
|coeff[n]|dec_abs_level[n]00
11223344556677889910101111
……
[0194]
可以基于dec_abs_level来推导值|coeff|。在这种情况下,可以如下式中所示地推导变换系数值,即,|coeff|。
[0195]
[式6]
[0196]
|coeff|=dec_abs_level
[0197]
另外,coeff_sign_flag可以指示对应扫描位置n处的变换系数级别的符号。即,coeff_sign_flag可以指示对应扫描位置n处的变换系数的符号。
[0198]
图8示出了4
×
4块中的变换系数的示例。
[0199]
图8的4
×
4块表示量化系数的示例。图8的块可以是4
×
4变换块或8
×
8、16
×
16、32
×
32或64
×
64变换块的4
×
4子块。图8的4
×
4块可以表示亮度块或色度块。
[0200]
此外,如上所述,当输入信号不是二进制值而是语法元素时,编码设备可以通过对输入信号的值进行二进制化来将输入信号变换为二进制值。另外,解码设备可以对语法元素进行解码以推导出语法元素的二进制化值(例如,二进制化的bin),并可以对二进制化值进行去二进制化以推导出语法元素的值。二进制化处理可以作为截断莱斯(tr)二进制化处理、k阶指数哥伦布(egk)二进制化处理、有限k阶指数哥伦布(有限egk)、固定长度(fl)二进制化处理等执行。另外,去二进制化处理可以表示基于tr二进制化处理、egk二进制化处理或fl二进制化处理来执行以推导出语法元素的值的处理。
[0201]
例如,可以如下地执行tr二进制化处理。
[0202]
tr二进制化处理的输入可以是针对语法元素的cmax和criceparam以及对tr二进制化的请求。另外,tr二进制化处理的输出可以是针对作为与bin串相对应的值的symbolval的tr二进制化。
[0203]
具体地,例如,在存在针对语法元素的后缀bin串的情况下,针对语法元素的trbin串可以是前缀bin串与后缀bin串的串联,并且在不存在后缀bin串的情况下,针对语法元素的trbin串可以是前缀bin串。例如,可以如下所述地推导前缀bin串。
[0204]
可以如下式中所示地推导针对语法元素的symbolval的前缀值。
[0205]
[式7]
[0206]
prefixval=symbolval>>criceparam
[0207]
在本文中,prefixval可以表示symbolval的前缀值。可以如下所述地推导语法元
素的trbin串的前缀(即,前缀bin串)。
[0208]
例如,如果prefixval小于cmax>>criceparam,则前缀bin串可以是由binidx编索引的长度为prefixval1的比特串。也就是说,如果prefixval小于cmax》>criceparam,则前缀bin串可以是由binidx指示的比特数为prefixval 1的比特串。小于prefixval的binidx的bin可以等于1。另外,与prefixval相同的binidx的bin可以等于0。
[0209]
例如,通过对prefixval进行一元二进制化推导出的bin串可以如下表中所示。
[0210]
[表6]
[0211][0212]
此外,如果prefixval不小于cmax>>criceparam,则前缀bin串可以是长度为cmax>>criceparam并且所有比特都为1的比特串。
[0213]
另外,如果cmax大于symbolval并且如果criceparam大于0,则可以存在trbin串的bin后缀bin串。例如,可以如下所述地推导后缀bin串。
[0214]
可以如下式中所示地推导针对语法元素的symbolval的后缀值。
[0215]
[式8]
[0216]
suffixval=symbolval-((prefixval)<<criceparam)
[0217]
本文中,suffixval可以表示symbolval的后缀值。
[0218]
可以基于针对其值cmax为(1<<criceparam)-1的suffixval的fl二进制化处理来推导trbin串的后缀(即,后缀bin串)。
[0219]
此外,如果输入参数(即,criceparam)的值为0,则tr二进制化可以是精确地截断的一元二进制化,并可以总是使用与待解码语法元素的可能最大值相同的值cmax。
[0220]
另外,例如,可以如下地执行egk二进制化处理。利用ue(v)编码的语法元素可以是经过指数哥伦布编码的语法元素。
[0221]
例如,可以如下地执行0阶指数哥伦布(eg0)二进制化处理。
[0222]
针对语法元素的解析处理可以从读取包括从比特流的当前位置开始的第一非零比特的比特并对等于0的前导比特的数量进行计数开始。可以如下表中所示地表示该处理。
[0223]
[表7]
[0224][0225]
另外,可以如下地推导变量codenum。
[0226]
[式9]
[0227]
codenum=2
leadingzerobits-1 read_bits(leadingzerobits)
[0228]
本文中,从read_bits(leadingzerobits)返回的值(即,由read_bits
(leadingzerobits)指示的值)可以被解释为首先记录的最高有效比特的无符号整数的二进制表示。
[0229]
可以如下表中所示地表示其中比特串被划分为“前缀”比特和“后缀”比特的指数哥伦布代码的结构。
[0230]
[表8]
[0231]
比特串形式codenum的范围100 1 x01..20 0 1 x
1 x03..60 0 0 1 x
2 x
1 x07..140 0 0 0 1 x
3 x
2 x
1 x015..300 0 0 0 0 1 x
4 x
3 x
2 x
1 x031..62
……
[0232]“前缀”比特可以是如上所述为了计算leadingzerobits而解析的比特,并可以由表8中的比特串中的0或1来指示。也就是说,上表8中的0或1所指示的比特串可以表示前缀比特串。“后缀”比特可以是在计算codenum时解析的比特,并可以在上表8中由xi表示。也就是说,上表8中由xi指示的比特串可以表示后缀比特串。这里,i可以是从0至leadingzerobits-1的值。另外,每个xi可以等于0或1。
[0233]
分配给codenum的比特串可以如下表所示。
[0234]
[表9]
[0235]
比特串codenum100 1 010 1 120 0 1 0 030 0 1 0 140 0 1 1 050 0 1 1 160 0 0 1 0 0 070 0 0 1 0 0 180 0 0 1 0 1 09
……
[0236]
如果语法元素的描述符是ue(v)(即,如果语法元素是用ue(v)编码的),则语法元素的值可以等于codenum。
[0237]
另外,例如,可以如下地执行egk二进制化处理。
[0238]
egk二进制化处理的输入可以是对egk二进制化的请求。另外,egk二进制化处理的输出可以是针对symbolval(即,与bin串对应的值)的egk二进制化。
[0239]
可以如下地推导针对symbolval的egk二进制化处理的比特串。
[0240]
[表10]
[0241][0242]
参照上表10,可以通过put(x)的每次调用将二进制值x添加到bin串的末尾。本文中,x可以为0或1。
[0243]
另外,例如,可以如下地执行有限egk二进制化处理。
[0244]
有限egk二进制化处理的输入可以是对有限egk二进制化的请求、莱斯参数ricparam、作为表示最大值的二进制对数的变量的log2transformrange和作为表示最大前缀扩展长度的变量的maxpreextlen。另外,有限egk二进制化处理的输出可以是针对作为与空串对应的值的symbolval的有限egk二进制化。
[0245]
可以如下地推导针对symbolval的有限egk二进制化处理的比特串。
[0246]
[表11]
[0247][0248]
另外,例如,可以如下地执行fl二进制化处理。
[0249]
fl二进制化处理的输入可以是对针对语法元素的cmax和fl二进制化的请求。另外,fl二进制化处理的输出可以是针对作为与bin串对应的值的symbolval的fl二进制化。
[0250]
可以通过使用其比特数具有symbolval的固定长度的比特串来配置fl二进制化。在本文中,固定长度比特可以是无符号整数比特串。也就是说,可以通过fl二进制化来推导用于作为符号值的symbolval的比特串,并且比特串的比特长度(即,比特数)可以是固定长度。
[0251]
例如,可以如下式中所示地推导固定长度。
[0252]
[式10]
[0253]
fixedlength=ceil(log2(cmax 1))
[0254]
针对fl二进制化的bin的索引可以是使用从最高有效比特到最低有效比特顺序增加的值的方法。例如,与最高有效比特相关的bin索引可以是binidx=0。
[0255]
此外,例如,可以如下执行针对残差信息中的语法元素abs_remainder的二进制化处理。
[0256]
针对abs_remainder的二进制化处理的输入可以是对语法元素abs_remainder[n]、颜色分量cidx和亮度位置(x0,y0)的二进制化的请求。亮度位置(x0,y0)可以指示基于图片的左上角亮度样本的当前亮度变换块的左上样本。
[0257]
针对abs_remainder的二进制化处理的输出可以是abs_remainder的二进制化(即,abs_remainder的二进制化bin串)。可以通过二进制化处理来推导针对abs_remainder可用的比特串。
[0258]
可以利用通过输入颜色分量cidx和亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、作为变换块宽度的二进制对数的log2tbwidth和作为变换块高度的二进制对数的log2tbheight执行的莱斯参数推导处理来推导针对abs_remainder[n]的莱斯参数criceparam。稍后将描述莱斯参数推导处理的详细描述。
[0259]
另外,例如,可以基于莱斯参数criceparam来推导当前要编码的abs_remainder[n]的cmax。可以如下式中所示地推导cmax。
[0260]
[式11]
[0261]
cmax=6<<criceparam
[0262]
此外,针对abs_remainder的二进制化(即,用于abs_remainder的bin串)在存在后缀bin串的情况下可以是前缀bin串与后缀bin串的串联。另外,在没有后缀bin串的情况下,用于abs_remainder的bin串可以是前缀bin串。
[0263]
例如,可以如下所述地推导前缀bin串。
[0264]
可以如下式中所示地推导abs_remainder[n]的前缀值prefixval。
[0265]
[式12]
[0266]
prefixval=min(cmax,abs_remainder[n])
[0267]
可以通过针对prefixval的tr二进制化处理来推导abs_remainder[n]的bin串(即,前缀bin串)的前缀,其中,cmax和criceparam被用作输入。
[0268]
如果前缀bin串与所有位都为1并且位长度为6的位串相同,则可能存在abs_remainder[n]的bin串的后缀bin串,并可以如下所述地推导它。
[0269]
针对dec_abs_level[n]的莱斯参数推导处理可以如下。
[0270]
莱斯参数推导处理的输入可以是颜色分量索引cidx、亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、作为变换块宽度的二进制对数的log2tbwidth以及作为变换块高度的二进制对数的log2tbheight。亮度位置(x0,y0)可以指示基于图片的左上亮度样本的当前亮度变换块的左上样本。另外,莱斯参数推导处理的输出可以是莱斯参数criceparam。
[0271]
例如,可以基于具有给定分量索引cidx和左上亮度位置(x0,y0)的变换块的阵列abslevel[x][y],类似于下表中公开的伪代码地推导变量locsumabs。
[0272]
[表12]
[0273][0274]
然后,基于给定的变量locsumabs,可以如下表中所示地推导出莱斯参数criceparam。
[0275]
[表13]
[0276]
locsumabs0123456789101112131415criceparam0000000111111122locsumabs16171819202122232425262728293031criceparam2222222222223333
[0277]
另外,例如,在针对abs_remainder[n]的莱斯参数推导处理中,baselevel可以被设置为4。
[0278]
另选地,例如,可以基于是否对当前块应用变换跳过来确定莱斯参数criceparam。即,如果没有对包括当前cg的当前tb应用变换,换句话说,如果对包括当前cg的当前tb应用变换跳过,则莱斯参数criceparam可以被推导为1。
[0279]
另外,可以如下式中所示地推导abs_remainder的后缀值suffixval。
[0280]
[式13]
[0281]
suffixval=abs_remainder[n]-cmax
[0282]
可以通过针对suffixval的有限egk二进制化处理来推导abs_remainder的bin串的后缀bin串,其中,k被设置为criceparam 1,riceparam被设置为criceparam,并且log2transformrange被设置为15,并且maxpreextlen被设置为11。
[0283]
此外,例如,可以如下执行针对残差信息中的语法元素dec_abs_level的二进制化处理。
[0284]
针对dec_abs_level的二进制化处理的输入可以是对语法元素dec_abs_level[n]、颜色分量cidx、亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、作为变换块宽度的二进制对数的log2tbwidth以及作为变换块高度的二进制对数的log2tbheight的二进制化的请求。亮度位置(x0,y0)可以指示基于图片的左上亮度样本的当前亮度变换块的左上样本。
[0285]
针对dec_abs_level的二进制化处理的输出可以是dec_abs_level的二进制化(即,dec_abs_level的二进制化bin串)。可以通过二进制化处理来推导dec_abs_level的可用bin串。
[0286]
可以通过用颜色分量cidx、亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、作为变换块宽度的二进制对数的log2tbwidth和作为变换块高度的二进制对数的log2tbheight的输入执行的莱斯参数推导处理来推导dec_abs_level[n]的莱斯参数criceparam。以下,将详细描述莱斯参数推导处理。
[0287]
另外,例如,可以基于莱斯参数criceparam来推导dec_abs_level[n]的cmax。可以如下表中所示地推导cmax。
[0288]
[式14]
[0289]
cmax=6<<criceparam
[0290]
此外,针对dec_abs_level[n]的二进制化(即,用于dec_abs_level[n]的bin串)在存在后缀bin串的情况下可以是前缀bin串与后缀bin串的串联。另外,在没有后缀bin串的情况下,用于dec_abs_level[n]的bin串可以是前缀bin串。
[0291]
例如,可以如下所述地推导前缀bin串。
[0292]
可以如下式中所示地推导dec_abs_level[n]的前缀值prefixval。
[0293]
[式15]
[0294]
prefixval=min(cmax,dec_abs_level[n])
[0295]
可以通过针对prefixval的tr二进制化处理来推导dec_abs_level[n]的bin串(即,前缀bin串)的前缀,其中,cmax和criceparam被用作输入。
[0296]
如果前缀bin串与所有比特都为1并且比特长度为6的比特串相同,则可能存在dec_abs_level[n]的bin串的后缀bin串,并可以如下所述地推导它。
[0297]
针对dec_abs_level[n]的莱斯参数推导处理可以如下。
[0298]
莱斯参数推导处理的输入可以是颜色分量索引cidx、亮度位置(x0,y0)、当前系数扫描位置(xc,yc)、作为变换块宽度的二进制对数的log2tbwidth以及作为变换块高度的二进制对数的log2tbheight。亮度位置(x0,y0)可以指示基于图片的左上亮度样本的当前亮度变换块的左上样本。另外,莱斯参数推导处理的输出可以是莱斯参数criceparam。
[0299]
例如,可以基于具有给定分量索引cidx和左上亮度位置(x0,y0)的变换块的阵列abslevel[x][y],类似于下表中公开的伪代码地推导变量locsumabs。
[0300]
[表14]
[0301][0302]
然后,基于给定的变量locsumabs,可以如下表中所示地推导出莱斯参数criceparam。
[0303]
[表15]
[0304]
locsumabs0123456789101112131415criceparam0000000111111122locsumabs16171819202122232425262728293031criceparam2222222222223333
[0305]
另外,例如,在针对dec_abs_level[n]的莱斯参数推导处理中,baselevel可以被设置为0,并且可以如下地推导zeropos[n]。
[0306]
[式16]
[0307]
zeropos[n]=(qstate<2?1:2)<<criceparam
[0308]
另外,可以如下式中所示地推导dec_abs_level[n]的后缀值suffixval。
[0309]
[式17]
[0310]
suffixval=dec_abs_level[n]-cmax
[0311]
可以通过针对suffixval的有限egk二进制化处理来推导dec_abs_level[n]的bin串的后缀bin串,其中,k被设置为criceparam 1,truncsuffixlen被设置为15,并且maxpreextlen被设置为11。
[0312]
此外,rrc和tsrc可以具有以下差异。
[0313]-例如,tsrc中的语法元素abs_remainder[]的莱斯参数可以被推导为1。rrc中的语法元素abs_remainder[]的莱斯参数criceparam可以基于如上所述的lastabsremainder和lastriceparam来推导,但是tsrc中的语法元素abs_remainder[]的莱斯参数criceparam可以被推导为1。即,例如,当变换跳过被应用于当前块(例如,当前tb)时,针对当前块的tsrc的abs_remainder[]的莱斯参数criceparam可以被推导为1。
[0314]-另外,例如,参照表3和表4,在rrc中,abs_level_gtx_flag[n]和/或abs_level_gtx_flag[n]可以被发信号通知,但在tsrc中,abs_level_gtx_flag[n]、abs_level_gtx_flag[n]、abs_level_gtx_flag[n]、abs_level_gtx_flag[n]和abs_level_gtx_flag[n]可以被发信号通知。这里,abs_level_gtx_flag[n]可以被表示为abs_level_gt1_flag或第一系数级别标志,abs_level_gtx_flag[n]可以被表示为abs_level_gt3_flag或第二系数级别标志,abs_level_gtx_flag[n]可以被表示为abs_level_gt5_flag或第三系数级别标志,abs_level_gtx_flag[n]可以被表示为abs_level_gt7_flag或第四系数级别标志,并且abs_level_gtx_flag[n]可以被表示为abs_level_gt9_flag或第五系数级别标志。具体地,第一系数级别标志可以是用于系数级别是否大于第一阈值(例如,1)的标志,第二系数级别标志可以是用于系数级别是否大于第二阈值(例如,3)的标志,第三系数级别标志可以是用于系数级别是否大于第三阈值(例如,5)的标志,第四系数级别标志可以是用于系数级别是否大于第四阈值(例如,7)的标志,第五系数级别标志可以是用于系数级别是否大于第五阈值(例如,9)的标志。如上所述,在tsrc中,与rrc相比,还可以包括abs_level_gtx_flag[n]、abs_level_gtx_flag[n]和abs_level_gtx_flag[n]、abs_level_gtx_flag[n]、abs_level_gtx_flag[n]。
[0315]-另外,例如,在rrc中,语法元素coeff_sign_flag可以被旁路编码,但在tsrc中,语法元素coeff_sign_flag可以被旁路编码或上下文编码。
[0316]-此外,例如,当针对当前块的上下文编码的bin用尽时,在rrc中,它可以被编码为
语法元素dec_abs_level,但是在tsrc中,它可以被编码为语法元素abs_remainder。
[0317]-此外,例如,rrc的解析变换系数的顺序可以基于最后的非零系数以右上对角扫描顺序在右下-左上方向上进行解析,但是在tsrc的情况下,其可以以右上对角顺序在左上-右下方向上解析,并且可以省略最后的非零系数的位置信息。
[0318]-此外,例如,在rrc中,可以应用依赖量化(dq)或符号数据隐藏方法(sdh),但是在tsrc中,可以不使用依赖量化和符号数据隐藏方法。
[0319]
此外,可以关于残差编码提出符号数据隐藏(sdh)方法。符号数据隐藏方法可以如下。
[0320]
在推导变换系数时,可以基于1比特符号标志(上述语法元素coeff_sign_flag)来推导变换系数的符号。在这点上,sdh可以指示用于省略子块/系数组(cg)中的第一有效变换系数的coeff_sign_flag的显式信令以便提高编码效率的技术。这里,第一有效变换系数的coeff_sign_flag的值可以基于对应子块/系数组中的有效变换系数的绝对级别(即,绝对值)之和来推导。即,可以基于对应子块/系数组中的有效变换系数的绝对级别之和来推导第一有效变换系数的符号。此外,有效变换系数可以指其(绝对)值不是0的非零变换系数。例如,当有效变换系数的绝对级别的和为偶数时,第一有效变换系数的coeff_sign_flag的值可以推导为1,而当有效变换系数的绝对级别的和为奇数时,第一有效变换系数的coeff_sign_flag的值可以推导为0。换句话说,例如,当有效变换系数的绝对级别之和为偶数时,第一有效变换系数的符号可以被推导为负值,而当有效变换系数的绝对级别之和为奇数时,第一有效变换系数的符号可以被推导为正值。另选地,例如,当有效变换系数的绝对级别之和为偶数时,第一有效变换系数的coeff_sign_flag的值可以被推导为0,而当有效变换系数的绝对级别之和为奇数时,第一有效变换系数的coeff_sign_flag的值可以被推导为1。换句话说,例如,当有效变换系数的绝对级别之和为偶数时,第一有效变换系数的符号可以被推导为正值,而当有效变换系数的绝对级别之和为奇数时,第一有效变换系数的符号可以被推导为负值。
[0321]
例如,残差语法中的sdh可如下表中所示来表示。
[0322]
[表16]
[0323][0324]
参照表16,变量signhiddenflag可以指示是否应用sdh。变量signhiddenflag也可称为signhidden。例如,当变量signhiddenflag的值为0时,变量signhiddenflag可以指示不应用sdh,而当变量signhiddenflag的值为1时,变量signhiddenflag可以指示应用sdh。例如,可以基于发信号通知的标志信息(例如,sh_sign_data_hidden_used_flag或pic_sign_data_hiding_enabled_flag或sps_sign_data_hiding_enabled_flag)来设置变量signhiddenflag的值。此外,例如,可以基于lastsigscanpossb和firstsigscanpossb来设
置变量signhiddenflag的值。这里,lastsigscanpossb可以指示根据扫描顺序在对应子块/系数组中搜索的最后有效变换系数的位置,并且firstsigscanpossb可以指示根据扫描顺序在对应子块/系数组中搜索的第一有效变换系数的位置。通常,lastsigscanpossb可以位于与firstsigscanpossb相比相对高的频率分量区域中。因此,当lastsigscanpossb-firstsigscanpossb大于预定阈值时,signhidden值可以被推导为1(即,应用sdh),而否则signhidden值可以被推导为0(即,不应用sdh)。这里,例如,参考表35,阈值可以被设置为3。
[0325]
另外,参照表16,即使signhiddenflag的值为0(即,!signhiddenflag),如果当前系数不是根据扫描顺序的(子)块中的第一有效系数(即,n!=firstsigscanpossb),那么可明确地发信号通知当前系数的coeff_sign_flag[n]。
[0326]
此外,参照表16,如果signhiddenflag的值为1,并且当前系数是根据扫描顺序的(子)块中的第一有效系数(即,n=first_sigscanpossb),则可省略当前系数的coeff_sign_flag[n]的显式信令。在此情况下,可如下推导当前系数(即,第一有效系数)的coeff_sign_flag[n]的值。例如,可以基于对应(子)块中的除了第一有效系数之外的剩余有效系数的coeff_sign_flag[n]值来推导第一有效系数的coeff_sign_flag[n]的值。例如,当有效系数的coeff_sign_flag[n]值的和为偶数时,第一有效系数的coeff_sign_flag[n]可以被推导为1,而当有效系数的coeff_sign_flag[n]值的和为奇数时,第一有效系数的coeff_sign_flag[n]可以被推导为0。另选地,当有效系数的coeff_sign_flag[n]值的和为偶数时,第一有效系数的coeff_sign_flag[n]可以被推导为0,而当有效系数的coeff_sign_flag[n]值的和为奇数时,第一有效系数的coeff_sign_flag[n]可以被推导为1。
[0327]
此外,如果在高级别语法(vps、sps、pps、切片报头语法等)或低级别语法(切片数据语法、编码单元语法、变换单元语法等)中,上述符号数据隐藏被激活,并且如果sh_ts_residual_coding_disabled_flag为1,则rrc的符号数据隐藏处理可用于无损编码。因此,由于编码设备中的不正确设定,无损编码可能变得不可能。另选地,如果应用无损编码之外的有损编码(即,不可逆编码方法),并且在应用bdpcm的同时利用rrc对已经应用变换跳过的残差信号进行编码,尽管事实上残差值变为0的间隔由于残差之间的差异而比一般情况更频繁地出现,但bdpcm也可能因为根据sdh应用条件执行sdh而遭受编码损失。具体地,例如,如果有效变换系数(非零残差数据)分别存在于cg中的位置0和15处,并且cg中的剩余位置处的变换系数值为0,则可根据上述sdh应用条件将sdh应用于cg,从而可省略cg的第一有效变换系数的符号数据(即,符号标志的编码)。因此,在这种情况下,为了省略符号数据,可以在量化步骤中调整cg的仅两个残差数据的奇偶性,因此与不应用sdh的情况相比,可能出现更多的编码损失。这种情况也可能出现在未应用bdpcm的块中,但是由于bdpcm的特性,通过与邻近残差的差异来降低级别,因此在应用sdh时可能更频繁地出现不利的情况。
[0328]
因此,在本文档中,为了防止当sh_ts_residual_coding_disabled_flag=1时由一起使用sdh和残差编码(即,利用rrc对当前切片中的变换跳过块的残差样本进行编码)引起的非预期编码损失或故障,提供了用于设定上述两种技术之间的依赖性/约束的实施方式。
[0329]
此外,如上所述,残差数据编码方法可以包括常规残差编码(rrc)和变换跳过残差编码(tsrc)。
[0330]
如表1所示,可以基于transform_skip_flag和sh_ts_residual_coding_
disabled_flag的值来确定上述两种方法当中的用于当前块的残差数据编码方法。这里,语法元素sh_ts_residual_coding_disabled_flag可以指示是否启用tsrc。因此,即使当transform_skip_flag指示变换被跳过时,如果sh_ts_residual_coding_disabled_flag指示tsrc未被启用,则可以发信号通知根据关于变换跳过块的rrc的语法元素。也就是说,当transform_skip_flag的值是0或者sh_ts_residual_coding_disabled_flag的值是1时,可以使用rrc,而否则可以使用tsrc。
[0331]
本文档提出了一种sh_ts_residual_coding_disabled_flag取决于pic_sign_data_hiding_enabled_flag的方法作为实施方式。例如,本实施方式中提出的语法元素可以如下表所示。
[0332]
[表17]
[0333][0334]
这里,例如,pic_sign_data_hiding_enabled_flag可以是用于符号数据隐藏是否被启用的标志。例如,pic_sign_data_hiding_enabled_flag可以指示符号数据隐藏是否被启用。即,例如,pic_sign_data_hiding_enabled_flag可以指示针对序列或图片报头结构(即,picture_header_structure())的图片的块是否启用符号数据隐藏。例如,pic_sign_data_hiding_enabled_flag可以指示是否可以存在指示符号数据隐藏是否用于当前切片的符号数据隐藏使用标志。例如,值为1的pic_sign_data_hiding_enabled_flag可以指示启用符号数据隐藏,而值为0的pic_sign_data_hiding_enabled_flag可以指示不启用符号数据隐藏。例如,值为1的pic_sign_data_hiding_enabled_flag可以指示已对其应用符号数据隐藏的符号标志可以存在,而值为0的pic_sign_data_hiding_enabled_flag可以指示已对其应用符号数据隐藏的符号标志不存在。
[0335]
根据上述表17,仅当没有启用符号数据隐藏时,才可以发信号通知sh_ts_residual_coding_disabled_flag。另外,当启用符号数据隐藏时,可以不发信号通知sh_
ts_residual_coding_disabled_flag,并且sh_ts_residual_coding_disabled_flag的值可以被推断为0(利用tsrc语法对当前切片中的变换跳过块的残差样本进行编码)或1(利用rrc语法对当前切片中的变换跳过块的残差样本进行编码)。
[0336]
这里,例如,pic_sign_data_hiding_enabled_flag可以作为图片报头语法或片报头语法来发信号通知。例如,当pic_sign_data_hiding_enabled_flag被发信号通知为除了图片报头语法之外的语法时,它可以被称为另一名称。例如,当pic_sign_data_hiding_enabled_flag作为切片报头的语法被发信号通知时,pic_sign_data_hiding_enabled_flag可以被表示为sh_sign_data_hiding_enabled_flag。另外,sh_ts_residual_coding_disabled_flag可以被发信号通知为切片标头语法,或可用除了切片标头语法之外的高级别语法(hls)(例如,sps语法/vps语法/pps语法/图片报头(ph)语法/dps语法等)或低级别(cu/tu)发信号通知。当通过sdh是否被启用来确定残差编码方法时,不管发信号通知的语法的上/下关系或语法上的位置如何,它可以被解释为符合本实施方式。
[0337]
此外,根据传统的图像/视频编码,在高级别语法(sps语法/vps语法/pps语法/dps语法/图片报头语法/切片报头语法等)或低级别(cu/tu)中,sdh被启用,并且当sh_ts_residual_coding_disabled_flag为1时,上述rrc中的sdh可用于无损编码,因此由于编码装置中的不正确设定,无损编码可能变得不可能。因此,在本文档中,为了防止当sh_ts_residual_coding_disabled_flag=1时(即,利用rrc对当前切片中的变换跳过块的残差样本进行编码)通过一起使用sdh和残差编码而引起的非预期编码损失或故障,提供了其中当transform_skip_flag的值为1时在对变换系数的级别进行编码时不使用sdh的实施方式。根据所提出的实施方式的残差编码语法可以如下表所示。
[0338]
[表18]
[0339]
[0340]
[0341]
[0342]
[0343][0344]
参照上述表18,可以基于transform_skip_flag的值来推导指示是否应用sdh的变量signhidden。例如,当transform_skip_flag的值为1时,signhidden的值可以被推导为0。即,例如,当transform_skip_flag的值为1时,在推导当前块的变换系数的符号时可以不应用sdh。
[0345]
另外,在本文中,为了防止当sh_ts_residual_coding_disabled_flag=1时(即,使用rrc对当前切片中的变换跳过块的残差样本进行编码)通过一起使用sdh和残差编码而引起的非预期编码损失或故障,提供了其中当bdpcmflag的值为1时在对变换系数的级别进行编码时不使用sdh的实施方式。根据所提出的实施方式的残差编码语法可以如下表所示。
[0346]
[表19]
[0347]
[0348]
[0349]
[0350]
[0351][0352]
参照上表19,可以基于指示是否应用bdpcm的变量bdpcmflag的值来推导指示是否应用sdh的变量signhidden。例如,当bdpcmflag的值为1时,signhidden的值可以被推导为0。也就是说,例如,当bdpcmflag的值为1时(当将bdpcm应用于当前块时),在推导当前块的变换系数的符号时可以不应用sdh。
[0353]
参照表19,当bdpcmflag为1时,如果应用了有损编码,则允许tsrc的sdh,但是如果应用了bdpcm,则可以不使用sdh。
[0354]
另外,本文档提出了与上述语法元素sh_ts_residual_coding_disabled_flag的信令相关的各种实施方式。
[0355]
例如,如上所述,由于sh_ts_residual_coding_disabled_flag是定义tsrc是否被停用的语法元素,所以当不使用变换跳过块时可能不需要发信号通知它。也就是说,仅当用于是否使用变换跳过块的语法元素指示使用变换跳过块时,发信号通知sh_ts_residual_coding_disabled_flag可能是有意义的。
[0356]
因此,本文档提出了仅当sps_transform_skip_enabled_flag为1时才发信号通知sh_ts_residual_coding_disabled_flag的实施方式。根据本实施方式的语法在下表中示出。
[0357]
[表20]
[0358][0359]
参照表20,当sps_transform_skip_enabled_flag为1时,可发信号通知sh_ts_residual_coding_disabled_flag,而当sps_transform_skip_enabled_flag为0时,可以不发信号通知sh_ts_residual_coding_disabled_flag。这里,例如,sps_transform_skip_enabled_flag可以指示是否使用变换跳过块。即,例如,sps_transform_skip_enabled_flag可以指示是否启用变换跳过。例如,当sps_transform_skip_enabled_flag的值为1时,sps_transform_skip_enabled_flag可以指示变换跳过标志(transform_skip_flag)可以存在于变换单元语法中,而当sps_transform_skip_enabled_flag的值为0时,sps_transform_skip_enabled_flag可以指示变换跳过标志不存在于变换单元语法中。此外,当sh_ts_residual_coding_disabled_flag未被发信号通知时,sh_ts_residual_coding_disabled_flag可以被推断为0。另外,上述sps_transform_skip_enabled_flag可在sps中发信号通知,或可在除sps之外的高级别语法(vps、pps、图片标头语法、切片标头语法等)或低级别语法(切片数据语法、编码单元语法、变换单元语法等)中发信号通知。此外,其可在sh_ts_residual_coding_disabled_flag之前发信号通知。
[0360]
另外,本文档提出了与上述关于发信号通知sh_ts_residual_coding_disabled_flag的实施方式相结合的实施方式。例如,可以提出如下表所示的发信号通知sh_ts_residual_coding_disabled_flag的实施方式。
[0361]
[表21]
[0362][0363]
参照表21,当sps_transform_skip_enabled_flag为1并且pic_sign_data_hiding_enabled_flag为0时,可以发信号通知sh_ts_residual_coding_disabled_flag,而否则可以不发信号通知sh_ts_residual_coding_disabled_flag。此外,当sh_ts_residual_coding_disabled_flag未被发信号通知时,sh_ts_residual_coding_disabled_
flag可以被推断为0。
[0364]
另选地,例如,可以提出如下表中所示的发信号通知sh_ts_residual_coding_disabled_flag的实施方式。
[0365]
[表22]
[0366][0367]
参照表22,当pic_sign_data_hiding_enabled_flag为0或sps_transform_skip_enabled_flag为1时,可以发信号通知sh_ts_residual_coding_disabled_flag,而否则可以不发信号通知sh_ts_residual_coding_disabled_flag。此外,当sh_ts_residual_coding_disabled_flag未被发信号通知时,sh_ts_residual_coding_disabled_flag可以被推断为0。
[0368]
此外,例如,根据该实施方式,可以提出一种在相同的高级别语法或低级别语法中发信号通知语法元素ph_dep_quant_enabled_flag和sh_ts_residual_coding_disabled_flag的方法。例如,参照上表22,ph_dep_quant_enabled_flag和sh_ts_residual_coding_disabled_flag都可以在图片报头语法中发信号通知。在这种情况下,sh_ts_residual_coding_disabled_flag可以被称为ph_ts_residual_coding_disabled_flag。此外,ph_dep_quant_enabled_flag可以是指示是否启用依赖量化的标志。例如,ph_dep_quant_enabled_flag可以指示依赖量化是否被启用。也就是说,例如,ph_dep_quant_enabled_flag可以指示是否针对序列中的图片的块启用了依赖量化。例如,ph_dep_quant_enabled_flag可以指示是否可以存在指示依赖量化是否用于当前切片的依赖量化使用标志。例如,值为1的ph_dep_quant_enabled_flag可以指示启用依赖量化,而值为0的ph_dep_quant_enabled_flag可以指示不启用依赖量化。此外,例如,根据发信号通知的语法,ph_dep_quant_enabled_flag可以被称为sh_dep_quant_enabled_flag。
[0369]
另选地,例如,可以提出如下表中所示的发信号通知sh_ts_residual_coding_disabled_flag的实施方式。
[0370]
[表23]
[0371][0372]
参照表23,当pic_sign_data_hiding_enabled_flag为0并且sps_transform_skip_enabled_flag为1时,可以发信号通知sh_ts_residual_coding_disabled_flag,而否则可以不发信号通知sh_ts_residual_coding_disabled_flag。此外,当sh_ts_residual_
coding_disabled_flag未被发信号通知时,sh_ts_residual_coding_disabled_flag可以被推断为0。此外,例如,参照上表23,ph_dep_quant_enabled_flag和sh_ts_residual_coding_disabled_flag二者都可以在图片报头语法中发信号通知。在这种情况下,sh_ts_residual_coding_disabled_flag可以被称为ph_ts_residual_coding_disabled_flag。
[0373]
此外,本文档提出了上述语法元素ph_dep_quant_enabled_flag、pic_sign_data_hiding_enabled_flag和/或sh_ts_residual_coding_disabled_flag在相同的高级别语法(vps、sps、pps、图片报头、切片报头等)或低级别语法(切片数据、编码单元、变换单元等)中被发信号通知的实施方式。
[0374]
例如,如下表所示,可以提出其中pic_sign_data_hiding_enabled_flag和sh_ts_residual_coding_disabled_flag两者都在图片报头语法中被发信号通知的实施方式。
[0375]
[表24]
[0376][0377]
在这种情况下,sh_ts_residual_coding_disabled_flag可以被称为ph_ts_residual_coding_disabled_flag。
[0378]
根据该实施方式,仅当指示在hls中sdh是否被启用的语法元素(即,pic_sign_data_hiding_enabled_flag)的值为0时,才可以发信号通知指示变换跳过块的残差编码(即,tsrc)是否被启用的语法元素(即,sh_ts_residual_coding_disabled_flag)。例如,参照表24,pic_sign_data_hiding_enabled_flag可在图片报头语法中被发信号通知,并且当pic_sign_data_hiding_enabled_flag的值为0时,ph_ts_residual_coding_disabled_flag可在图片报头语法中被发信号通知。此外,例如,当pic_sign_data_hiding_enabled_flag的值为1时,可以不发信号通知ph_ts_residual_coding_disabled_flag。当sh_ts_residual_coding_disabled_flag未被发信号通知时,sh_ts_residual_coding_disabled_flag可以被推断为0。此外,当sps_sign_data_hiding_enabled_flag的值为1时,可以在图片报头语法中发信号通知pic_sign_data_hiding_enabled_flag。
[0379]
上述根据表24的实施方式仅仅是示例,并且可以用除了图片报头之外的高级别语法(vps、sps、pps、切片报头等)或低级别语法(切片数据、编码单元、变换单元等)来发信号通知两个语法元素。
[0380]
另选地,例如,如下表中所示,可以提供仅当指示变换跳过块的残差编码(即,tsrc)是否被启用的语法元素的值为0时(即,当tsrc被启用时),才发信号通知指示sdh是否被启用的语法元素的实施方式。
[0381]
[表25]
[0382][0383]
参照表25,当ph_ts_residual_coding_disabled_flag的值为0时,pic_sign_data_hiding_enabled_flag可以在图片报头语法中被发信号通知。此外,例如,当ph_ts_residual_coding_disabled_flag的值为1时,可以不发信号通知pic_sign_data_hiding_enabled_flag。此外,例如,当pic_sign_data_hiding_enabled_flag未被发信号通知时,在解码设备中pic_sign_data_hiding_enabled_flag可以被推断为0。
[0384]
上述根据表25的实施方式仅仅是示例,并且可以用除了图片报头之外的高级别语法(vps、sps、pps、切片报头等)或低级别语法(切片数据、编码单元、变换单元等)来发信号通知两个语法元素。
[0385]
另选地,例如,可以提出用于基于ph_ts_residual_coding_disabled_flag来限制pic_sign_data_hiding_enabled_flag和/或ph_dep_quant_enabled_flag的方法。
[0386]
例如,如下表所示,可以提供仅当ph_ts_residual_coding_disabled_flag的值为0时,才发信号通知pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag的实施方式。
[0387]
[表26]
[0388][0389]
参照表26,当ph_ts_residual_coding_disabled_flag的值为0时,pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag可在图片报头语法中发信号通知。此外,例如,当ph_ts_residual_coding_disabled_flag的值为1时,可以不发信号通知pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag。此外,例如,当pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag未被发信号通知时,在解码设备中pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag可以被推断为0。
[0390]
此外,例如,参照上表26,ph_ts_residual_coding_disabled_flag、pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag都可以在图片报头语法中发信号通知。
[0391]
另外,本文档提出了与上述关于发信号通知sh_ts_residual_coding_disabled_flag的实施方式相结合的实施方式。例如,可以提出如下表所示的发信号通知sh_ts_
residual_coding_disabled_flag的实施方式。
[0392]
[表27]
[0393][0394]
参照表27,当pic_sign_data_hiding_enabled_flag为0或sps_transform_skip_enabled_flag为1时,可以发信号通知ph_ts_residual_coding_disabled_flag,而否则可以不发信号通知ph_ts_residual_coding_disabled_flag。此外,当ph_ts_residual_coding_disabled_flag未被发信号通知时,在解码设备中ph_ts_residual_coding_disabled_flag可以被推断为0。此外,当sps_sign_data_hiding_enabled_flag的值为1时,可以在图片报头语法中发信号通知pic_sign_data_hiding_enabled_flag。
[0395]
另选地,例如,可以提出如下表中所示的发信号通知sh_ts_residual_coding_disabled_flag的实施方式。
[0396]
[表28]
[0397][0398]
参照表28,当pic_sign_data_hiding_enabled_flag为0并且sps_transform_skip_enabled_flag为1时,可以发信号通知ph_ts_residual_coding_disabled_flag,而否则可以不发信号通知ph_ts_residual_coding_disabled_flag。此外,当ph_ts_residual_coding_disabled_flag未被发信号通知时,在解码设备中ph_ts_residual_coding_disabled_flag可以被推断为0。此外,当sps_sign_data_hiding_enabled_flag的值为1时,可以在图片报头语法中发信号通知pic_sign_data_hiding_enabled_flag。
[0399]
另选地,例如,可以提出如下表中所示的信令sh_ts_residual_coding_disabled_flag的实施方式。
[0400]
[表29]
[0401][0402]
参照表29,当sps_transform_skip_enabled_flag为1时,可以发信号通知ph_ts_residual_coding_disabled_flag,而否则可以不发信号通知ph_ts_residual_coding_disabled_flag。此外,参照表29,当ph_ts_residual_coding_disabled_flag为0时,可以发信号通知pic_sign_data_hiding_enabled_flag,而否则可以不发信号通知pic_sign_data_hiding_enabled_flag。此外,当ph_ts_residual_coding_disabled_flag未被发信号通知时,在解码设备中ph_ts_residual_coding_disabled_flag可以被推断为0。此外,当pic_sign_data_hiding_enabled_flag未被发信号通知时,在解码设备中pic_sign_data_hiding_enabled_flag可以被推断为0。
[0403]
另选地,例如,可以提出如下表中所示的信令sh_ts_residual_coding_disabled_flag的实施方式。
[0404]
[表30]
[0405][0406]
参照表30,当sps_transform_skip_enabled_flag为1时,可以发信号通知ph_ts_residual_coding_disabled_flag,而否则可以不发信号通知ph_ts_residual_coding_disabled_flag。另外,参照表30,当ph_ts_residual_coding_disabled_flag为0时,可以发信号通知pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag,而否则可以不发信号通知pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag。此外,当ph_ts_residual_coding_disabled_flag未被发信号通知时,在解码设备中ph_ts_residual_coding_disabled_flag可以被推断为0。此外,当pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag未被发信号通知时,在解码设备中pic_sign_data_hiding_enabled_flag和ph_dep_quant_enabled_flag可以被推断为0。
[0407]
此外,如上所述,本文档中公开的语法表中的信息(语法元素)可以被包括在图像/视频信息中,并可在编码设备中被配置/编码并以比特流的形式被发送到解码设备。解码设备可以对对应语法表中的信息(语法元素)进行解析/解码。解码设备可以基于所解码的信息来执行块/图像/视频重构处理。
[0408]
图9简要例示了根据本公开的由编码设备执行的图像编码方法。图9中公开的方法
可以由图2中公开的编码设备执行。具体地,例如,图9的s900可以由编码设备的预测器执行,s910可以由编码设备的残差处理器执行,并且图9的s920至s960可以由编码设备的熵编码器执行。另外,尽管未示出,但是可以由编码设备的加法器来执行基于当前块的残差样本和预测样本来生成当前块的重构样本和重构图片的处理。
[0409]
编码设备通过对当前切片中的当前块执行预测来推导当前块的预测样本(s900)。例如,编码设备可以通过对当前块执行帧内预测或帧间预测来推导当前块的预测样本。例如,编码设备可以确定对当前块执行帧间预测还是帧内预测,可以基于rd成本来确定特定帧间预测模式或特定帧内预测模式,并且可以基于所确定的预测模式来推导当前块的预测样本。
[0410]
例如,编码设备可以推导当前块的帧间预测模式和运动信息,并且生成当前块的预测样本。这里,帧间预测模式确定处理、运动信息推导处理和预测样本的生成处理可以同时执行并且任意一个处理可以比其它处理更早地执行。例如,编码设备的帧间预测单元可以包括预测模式确定单元、运动信息推导单元和预测样本推导单元,并且预测模式确定单元可确定当前块的预测模式,运动信息推导单元可以推导当前块的运动信息,预测样本推导单元可以推导当前块的预测样本。例如,编码设备的帧间预测单元可以通过运动估计在参考图片的预定区域(搜索区域)中搜索与当前块相似的块,并推导其中与当前块的差最小或等于或小于预定标准的参考块。可以基于此来推导指示参考块所在的参考图片的参考图片索引,并且可以基于参考块和当前块之间的位置差来推导运动矢量。编码设备可在各种预测模式当中确定应用于当前块的模式。编码设备可比较各种预测模式的rd成本并确定当前块的最佳预测模式。
[0411]
例如,编码设备可配置当前块的运动信息候选列表,并推导由包括在运动信息候选列表中的运动信息候选指示的参考块当中的与当前块的差最小或等于或小于预定标准的参考块。在这种情况下,可以选择与所推导的参考块相关联的运动信息候选,并且可以基于所选运动信息候选的运动信息来推导当前块的运动信息。
[0412]
编码设备基于预测样本来推导当前块的残差样本(s910)。例如,编码设备可以通过将预测样本与当前块的原始样本相减来推导当前块的残差样本。
[0413]
编码设备对用于预测的预测信息进行编码(s920)。图像信息可以包括当前块的预测信息。例如,预测信息可以包括预测模式信息和与当前块的运动信息相关的信息作为与预测过程相关的信息。与当前块的运动信息相关的信息可以包括作为用于推导运动矢量的信息的运动信息候选索引信息。此外,例如,与运动信息相关的信息可以包括上述运动矢量差(mvd)信息和/或参考图片索引信息。
[0414]
编码设备对用于当前切片是否启用符号数据隐藏的符号数据隐藏启用标志进行编码(s930)。编码设备可以对用于当前切片是否启用符号数据隐藏的符号数据隐藏启用标志进行编码。图像信息可以包括符号数据隐藏启用标志。例如,编码设备可确定是否对序列中的图片块启用了符号数据隐藏,并可以针对是否启用了符号数据隐藏来对符号数据隐藏启用标志进行编码。例如,符号数据隐藏启用标志可以是用于符号数据隐藏是否被启用的标志。例如,符号数据隐藏启用标志可以指示符号数据隐藏是否被启用。也就是说,例如,符号数据隐藏启用标志可以指示针对序列中的图片的块是否启用符号数据隐藏。例如,符号数据隐藏启用标志可以指示是否可以存在指示符号数据隐藏是否用于当前切片的符号数
据隐藏使用标志。例如,值为1的符号数据隐藏启用标志可以指示符号数据隐藏被启用,而值为0的符号数据隐藏启用标志可以指示符号数据隐藏未被启用。例如,值为1的符号数据隐藏启用标志可以指示已对其应用符号数据隐藏的符号标志存在,而值为0的符号数据隐藏启用标志可以指示已对其应用符号数据隐藏的符号标志不存在。此外,例如,可以在序列参数集(sps)语法中发信号通知符号数据隐藏启用标志。另选地,例如,符号数据隐藏启用标志可以在图片报头语法或片报头语法中被发信号通知。符号数据隐藏启用标志的语法元素可以是上述sps_sign_data_hiding_enabled_flag。
[0415]
编码设备基于符号数据隐藏启用标志对用于针对当前切片中的变换跳过块是否启用变换跳过残差编码(tsrc)的tsrc启用标志进行编码(s940)。图像信息可以包括tsrc启用标志。
[0416]
例如,编码设备可以基于符号数据隐藏启用标志对tsrc启用标志进行编码。例如,可以基于符号数据隐藏启用标志的值为0来对tsrc启用标志进行编码。即,例如,当符号数据隐藏启用标志的值为0时(即,当符号数据隐藏启用标志指示符号数据隐藏未被启用时),tsrc启用标志可以被编码。换句话说,例如,当符号数据隐藏启用标志的值为0时(即,当符号数据隐藏启用标志指示符号数据隐藏未被启用时),tsrc启用标志可以被发信号通知。此外,例如,当符号数据隐藏启用标志的值为1时,tsrc启用标志可以不被编码,并且tsrc启用标志的值可在解码设备中被推导为0。也就是说,例如,当符号数据隐藏启用标志的值为1时,tsrc启用标志可以不被发信号通知,并且tsrc启用标志的值可以在解码设备中被推导为0。
[0417]
这里,例如,tsrc启用标志可以是用于tsrc是否被启用的标志。即,例如,tsrc启用标志可以是指示针对切片中的块是否启用tsrc的标志。换句话说,例如,tsrc启用标志可以是指示针对切片中的变换跳过块是否启用tsrc的标志。例如,值为1的tsrc启用标志可以指示tsrc未被启用,而值为0的tsrc启用标志可以指示tsrc被启用。此外,例如,tsrc启用标志可以在切片报头语法中被发信号通知。tsrc启用标志的语法元素可以是上述的sh_ts_residual_coding_disabled_flag。tsrc启用标志可以被称为tsrc停用标志。
[0418]
此外,例如,编码设备可确定是否针对序列中的图片的块启用依赖量化,并可以对用于是否启用依赖量化的依赖量化启用标志进行编码。图像信息可以包括依赖量化启用标志。例如,依赖量化启用标志可以是用于依赖量化是否被启用的标志。例如,依赖量化启用标志可以指示依赖量化是否被启用。也就是说,例如,依赖量化启用标志可以指示针对序列中的图片的块是否启用依赖量化。例如,依赖量化启用标志可以指示是否可以存在指示依赖量化是否用于当前切片的依赖量化使用标志。例如,值为1的依赖量化启用标志可以指示依赖量化被启用,值为0的依赖量化启用标志可以指示依赖量化未被启用。此外,例如,依赖量化启用标志可以在sps语法、切片报头语法等中被发信号通知。依赖量化启用标志的语法元素可以是上述sps_dep_quant_enabled_flag。
[0419]
此外,例如,编码装置可以对用于针对当前切片的变换跳过是否被启用的变换跳过启用标志进行编码。图像信息可以包括变换跳过启用标志。例如,编码设备可确定对于序列中的图片块是否启用变换跳过,并可以对变换跳过是否启用的变换跳过启用标志进行编码。例如,变换跳过启用标志可以是用于变换跳过是否启用的标志。例如,变换跳过启用标志可以指示变换跳过是否启用。也就是说,例如,变换跳过启用标志可以指示针对序列中的
图片的块是否启用变换跳过。例如,变换跳过启用标志可以指示是否可以存在变换跳过标志。例如,值为1的变换跳过启用标志可以指示变换跳过被启用,并且值为0的变换跳过启用标志可以指示变换跳过未被启用。也就是说,例如,值为1的变换跳过启用标志可以指示变换跳过标志可以存在,并且值为0的变换跳过启用标志可以指示变换跳过标志不存在。此外,例如,可以在序列参数集(sps)语法中发信号通知变换跳过启用标志。变换跳过启用标志的语法元素可以是上述sps_transform_skip_enabled_flag。
[0420]
此外,例如,可以基于符号数据隐藏启用标志和/或变换跳过启用标志对tsrc启用标志进行编码。例如,tsrc启用标志可以基于值为0的符号数据隐藏启用标志和值为1的变换跳过启用标志来进行编码。也就是说,例如,当符号数据隐藏启用标志的值为0(即,符号数据隐藏启用标志指示符号数据隐藏未被启用),并且变换跳过启用标志的值为1(即,当变换跳过启用标志指示变换跳过被启用)时,tsrc启用标志可以被编码(或发信号通知)。此外,例如,当变换跳过启用标志的值为0时,tsrc启用标志可以不被编码,并且tsrc启用标志的值可以被推导为0。也就是说,例如,当变换跳过启用标志的值为0时,tsrc启用标志可以不被发信号通知,并且tsrc启用标志的值可以被推导为0。
[0421]
编码设备基于tsrc启用标志来对针对当前块的残差信息进行编码(s950)。编码设备可以基于tsrc启用标志来对针对当前块的残差信息进行编码。
[0422]
例如,编码设备可以基于tsrc启用标志确定针对当前块的残差编码语法。例如,编码设备可以基于tsrc启用标志将针对当前块的残差编码语法确定为常规残差编码(rrc)语法和变换跳过残差编码(tsrc)语法中的一个。rrc语法可以指示根据rrc的语法,并且tsrc语法可以指示根据tsrc的语法。
[0423]
例如,基于值为1的tsrc启用标志,针对当前块的残差编码语法可以被确定为常规残差编码(rrc)语法。在这种情况下,例如,可以对用于当前块是否经变换跳过的变换跳过标志进行编码,并且变换跳过标志的值可以为1。例如,图像信息可以包括当前块的变换跳过标志。变换跳过标志可以指示当前块是否经变换跳过。即,变换跳过标志可以表示是否已对当前块的变换系数应用变换。表示变换跳过标志的语法元素可以是如上所述的transform_skip_flag。例如,当变换跳过标志的值为1时,变换跳过标志可以指示未对当前块应用变换(即,跳过变换),而如果变换跳过标志的值为0时,变换跳过标志可以指示已对当前块应用变换。例如,如果当前块是变换跳过块,则当前块的变换跳过标志的值可以为1。
[0424]
此外,例如,基于值为0的tsrc启用标志,针对当前块的残差编码语法可以被确定为变换跳过残差编码(tsrc)语法。此外,例如,可以对用于当前块是否经变换跳过的变换跳过标志进行编码,并且可以基于值为1的变换跳过标志和值为0的tsrc启用标志将针对当前块的残差编码语法确定为变换跳过残差编码(tsrc)语法。此外,例如,可以对用于当前块是否经变换跳过的变换跳过标志进行编码,并且可以基于值为0的变换跳过标志和值为0的tsrc启用标志将针对当前块的残差编码语法确定为常规残差编码(rrc)语法。
[0425]
然后,例如,编码设备可以对针对当前块的确定的残差编码语法的残差信息进行编码。编码设备可以对针对当前块的残差样本的确定的残差编码语法的残差信息进行编码。例如,可以基于值为1的tsrc启用标志对针对当前块的常规残差编码(rrc)语法的残差信息进行编码,并且可以基于值为0的tsrc启用标志对针对当前块的tsrc语法的残差信息进行编码。图像信息可以包括残差信息。
[0426]
具体地,例如,编码设备可以基于残差样本推导当前块的变换系数。例如,编码设备可确定是否将变换应用于当前块。即,编码设备可确定是否将变换应用于当前块的残差样本。编码设备可考虑编码效率来确定是否将变换应用于当前块。例如,编码设备可以确定没有变换被应用于当前块。此外,未应用变换的块可以被称为变换跳过块。
[0427]
当变换未被应用于当前块时,即,当变换未被应用于残差样本时,编码设备可以将所推导的残差样本推导为当前块的变换系数。此外,当变换被应用于当前块时,即,当变换被应用于残差样本时,编码设备可以对残差样本执行变换以推导当前块的变换系数。当前块可以包括多个子块或系数组(cg)。另外,当前块的子块的大小可以是4
×
4大小或2
×
2大小。也就是说,当前块的子块可以包括多达16个非零变换系数或多达4个非零变换系数。这里,当前块可以是编码块(cb)或变换块(tb)。此外,变换系数可以被称为残差系数。
[0428]
当针对当前块的残差编码语法被确定为rrc语法,则编码设备可以对针对当前块的rrc语法的残差信息进行编码。例如,rrc语法的残差信息可以包括如上所述的表2中公开的语法元素。
[0429]
例如,rrc语法的残差信息可以包括针对当前块的变换系数的语法元素。这里,变换系数可以被称为残差系数。
[0430]
例如,语法元素可以包括诸如last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gtx_flag、abs_remainder、dec_abs_level和/或coeff_sign_flag等语法元素。
[0431]
具体地,例如,语法元素可以包括指示当前块的残差系数阵列中的最后一个非零变换系数的位置的位置信息。即,语法元素可以包括指示按当前块的扫描顺序的最后一个非零变换系数的位置的位置信息。位置信息可以包括指示最后一个非零变换系数的列位置的前缀的信息、指示最后一个非零变换系数的行位置的前缀的信息、指示最后一个非零变换系数的列位置的后缀的信息以及指示最后一个非零变换系数的行位置的后缀的信息。位置信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。此外,非零变换系数可以被称为有效系数。
[0432]
此外,例如,语法元素可以包括指示当前块的子块是否包括非零变换系数的编码子块标志、指示当前块的变换系数是否是非零变换系数的有效系数标志、用于变换系数的系数级别是否大于第一阈值的第一系数级别标志、用于系数级别的奇偶性的奇偶级别标志和/或用于变换系数的系数级别是否大于第二阈值的第二系数级别标志。这里,编码子块标志可以是sb_coded_flag或coded_sub_block_flag;有效系数标志可以是sig_coeff_flag;第一系数级别标志可以是abs_level_gt1_flag或abs_level_gtx_flag;奇偶级别标志可以是par_level_flag;并且第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
[0433]
此外,例如,语法元素可以包括与当前块的变换系数的值的系数值相关信息。系数值相关信息可以是abs_remainder和/或dec_abs_level。
[0434]
此外,例如,语法元素可以包括指示变换系数的符号的符号标志。符号标志可以是coeff_sign_flag。
[0435]
此外,例如,当符号数据隐藏被应用于当前块时,当前块中的当前系数组(cg)的第一有效变换系数的符号标志可以不被编码并发信号通知。也就是说,例如,当符号数据隐藏被应用于当前块时,语法元素可以不包括指示第一有效变换系数的符号的符号标志。此外,例如,可以基于符号数据隐藏启用标志和/或当前块的当前cg的第一有效变换系数的位置以及最后有效变换系数的位置来推导符号数据隐藏是否被应用于当前块。例如,当符号数据隐藏启用标志的值是1,并且通过从最后有效变换系数位置减去第一有效变换系数位置而获得的值大于3时(即,当符号数据隐藏启用标志的值是1,并且当前cg中的有效变换系数的数量大于3时),可以将符号数据隐藏应用于当前块的当前cg。
[0436]
另外,例如,当当前块的残差编码语法被确定为tsrc语法时,编码设备可以对针对当前块的tsrc语法的残差信息进行编码。例如,tsrc语法的残差信息可以包括上表3中所示的语法元素。
[0437]
例如,tsrc语法的残差信息可以包括针对当前块的变换系数的语法元素。这里,变换系数也可以被称为残差系数。
[0438]
例如,语法元素可以包括针对变换系数的上下文编码语法元素和/或旁路编码语法元素。语法元素可以包括诸如sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gtx_flag和/或abs_remainder的语法元素。
[0439]
例如,变换系数的上下文编码语法元素可以包括:有效系数标志,其指示变换系数是否为非零变换系数;符号标志,其指示变换系数的符号;第一系数级别标志,其用于针对变换系数的系数级别是否大于第一阈值;和/或奇偶校验级别标志,其用于针对变换系数的系数级别的奇偶校验。另外,例如,上下文编码语法元素可以包括:第二系数级别标志,其用于变换系数的系数级别是否大于第二阈值;第三系数级别标志,其用于变换系数的系数级别是否大于第三阈值;第四系数级别标志,其用于变换系数的系数级别是否大于第四阈值;和/或第五系数级别标志,其用于变换系数的系数级别是否大于第五阈值。这里,有效系数标志可以是sig_coeff_flag;符号标志可以是coeff_sign_flag;第一系数级别标志可以是abs_level_gt1_flag;并且奇偶校验级别标志可以是par_level_flag。另外,第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag;第三系数级别标志可以是abs_level_gt5_flag或abs_level_gtx_flag;第四系数级别标志可以是abs_level_gt7_flag或abs_level_gtx_flag;以及第五系数级别标志可以是abs_level_gt9_flag或abs_level_gtx_flag。
[0440]
另外,例如,针对变换系数的旁路编码语法元素可以包括变换系数的值(或系数级别)的系数级别信息和/或指示变换系数的符号的符号标志。系数级别信息可以是abs_remainder和/或dec_abs_level,并且符号标志可以是ceff_sign_flag。
[0441]
编码设备生成包括符号数据隐藏启用标志、tsrc启用标志、预测信息和残差信息的比特流(s960)。例如,编码设备可以输出包括符号数据隐藏启用标志、tsrc启用标志、预测信息和残差信息的图像信息作为比特流。比特流可以包括符号数据隐藏启用标志、tsrc启用标志、预测信息和残差信息。另外,比特流还可以包括依赖量化启用标志和/或变换跳过启用标志。
[0442]
此外,可以通过网络或(数字)存储介质将比特流发送到解码设备。这里,网络可以包括广播网络、通信网络等,并且数字存储介质可以包括诸如通用串行总线(usb)、安全数
字(sd)、光盘(cd)、数字视频光盘(dvd)、蓝光、硬盘驱动器(hdd)、固态驱动器(ssd)等的各种存储介质。
[0443]
图10简要例示了根据本公开的用于执行图像编码方法的编码设备。图9中公开的方法可以由图10中公开的编码设备执行。具体地,例如,图10的编码设备的预测器可以执行图9中的s900,图10的编码设备的残差处理器可以执行图9中的s910,并且图10的编码设备的熵编码器可以执行图9中的s920至s960。另外,尽管未示出,但是可以由编码设备的加法器来执行基于当前块的残差样本和预测样本来生成当前块的重构样本和重构图片的处理。
[0444]
图11简要例示了由根据本公开的解码设备执行的图像解码方法。图11中公开的方法可以由图3中公开的解码设备执行。具体地,例如,图11的s1100至s1120可以由解码设备的熵解码器执行,图11的s1130可以由解码设备的预测器执行,图11的s1140可以由解码设备的残差处理器执行,并且s1150可以由解码设备的加法器执行。另外,尽管未示出,接收当前块的预测信息的处理可以由解码设备的熵解码器执行。
[0445]
解码设备获得用于当前切片的符号数据隐藏是否被启用的符号数据隐藏启用标志(s1100)。解码设备可以通过比特流获得包括符号数据隐藏启用标志的图像信息。图像信息可以包括符号数据隐藏启用标志。例如,符号数据隐藏启用标志可以是符号数据隐藏是否被启用的标志。例如,符号数据隐藏启用标志可以指示符号数据隐藏是否被启用。也就是说,例如,符号数据隐藏启用标志可以指示针对序列中的图片的块是否启用符号数据隐藏。例如,符号数据隐藏启用标志可以指示是否可以存在指示符号数据隐藏是否用于当前切片的符号数据隐藏使用标志。例如,值为1的符号数据隐藏启用标志可以指示符号数据隐藏被启用,而值为0的符号数据隐藏启用标志可以指示符号数据隐藏未被启用。例如,值为1的符号数据隐藏启用标志可以指示已应用了符号数据隐藏的符号标志存在,而值为0的符号数据隐藏启用标志可以指示已应用了符号数据隐藏的符号标志不存在。此外,例如,可以在序列参数集(sps)语法中发信号通知符号数据隐藏启用标志。另选地,例如,符号数据隐藏启用标志可以在图片报头语法或片报头语法中被发信号通知。符号数据隐藏启用标志的语法元素可以是上述sps_sign_data_hiding_enabled_flag。
[0446]
解码设备获得用于针对当前切片中的变换跳过块是否启用tsrc的变换跳过残差编码(tsrc)启用标志(s1110)。图像信息可以包括tsrc启用标志。
[0447]
例如,解码设备可以基于符号数据隐藏启用标志获得tsrc启用标志。例如,可以基于值为0的符号数据隐藏启用标志来获得tsrc启用标志。即,例如,当符号数据隐藏启用标志的值为0时(即,当符号数据隐藏启用标志指示符号数据隐藏未被启用时),可以获得tsrc启用标志。换句话说,例如,当符号数据隐藏启用标志的值为0时(即,当符号数据隐藏启用标志指示符号数据隐藏未被启用时),tsrc启用标志可以被发信号通知。此外,例如,当符号数据隐藏启用标志的值为1时,可以不获得tsrc启用标志,并且tsrc启用标志的值可以被推导为0。也就是说,例如,当符号数据隐藏启用标志的值为1时,tsrc启用标志可以不被发信号通知,并且tsrc启用标志的值可以被推导为0。
[0448]
这里,例如,tsrc启用标志可以是用于tsrc是否被启用的标志。也就是说,例如,tsrc启用标志可以是指示针对切片中的块是否启用tsrc的标志。换句话说,例如,tsrc启用标志可以是指示针对切片中的变换跳过块是否启用tsrc的标志。这里,块可以是编码块(cb)或变换块(tb)。例如,值为1的tsrc启用标志可以指示tsrc未被启用,并且值为0的tsrc
启用标志可以指示tsrc被启用。此外,例如,tsrc启用标志可以在切片报头语法中被发信号通知。tsrc启用标志的语法元素可以是上述的sh_ts_residual_coding_disabled_flag。tsrc启用标志可以被称为tsrc停用标志。
[0449]
此外,例如,解码设备可以获得依赖量化启用标志。解码设备可以通过比特流获得包括依赖量化启用标志的图像信息。图像信息可以包括依赖量化启用标志。例如,依赖量化启用标志可以是用于依赖量化是否被启用的标志。例如,依赖量化启用标志可以指示依赖量化是否被启用。也就是说,例如,依赖量化启用标志可以指示针对序列中的图片的块是否启用依赖量化。例如,依赖量化启用标志可以指示是否可以存在指示依赖量化是否用于当前切片的依赖量化使用标志。例如,值为1的依赖量化启用标志可以指示依赖量化被启用,并且值为0的依赖量化启用标志可以指示依赖量化未被启用。此外,例如,依赖量化启用标志可以在sps语法、切片报头语法等中来发信号通知。依赖量化启用标志的语法元素可以是上述sps_dep_quant_enabled_flag。
[0450]
此外,例如,解码设备可以获得变换跳过启用标志。解码设备可以通过比特流获得包括变换跳过启用标志的图像信息。图像信息可以包括变换跳过启用标志。例如,变换跳过启用标志可以是用于变换跳过是否启用的标志。例如,变换跳过启用标志可以指示变换跳过是否启用。也就是说,例如,变换跳过启用标志可以指示针对序列中的图片的块是否启用变换跳过。例如,变换跳过启用标志可以指示是否可以存在变换跳过标志。例如,值为1的变换跳过启用标志可以指示变换跳过被启用,并且值为0的变换跳过启用标志可以指示变换跳过未被启用。也就是说,例如,值为1的变换跳过启用标志可以指示变换跳过标志可以存在,并且值为0的变换跳过启用标志可以指示变换跳过标志不存在。此外,例如,可以在序列参数集(sps)语法中发信号通知变换跳过启用标志。变换跳过启用标志的语法元素可以是上述sps_transform_skip_enabled_flag。
[0451]
此外,例如,可以基于符号数据隐藏启用标志和/或变换跳过启用标志来获得tsrc启用标志。例如,可以基于值为0的符号数据隐藏启用标志和值为1的变换跳过启用标志来获得tsrc启用标志。也就是说,例如,当符号数据隐藏启用标志的值为0(即,符号数据隐藏启用标志指示符号数据隐藏未被启用),并且变换跳过启用标志的值为1(即,当变换跳过启用标志指示变换跳过被启用)时,可以获得(或者发信号通知)tsrc启用标志。此外,例如,当变换跳过启用标志的值是0时,可以不获得tsrc启用标志,并且可以将tsrc启用标志的值推导为0。也就是说,例如,当变换跳过启用标志的值为0时,tsrc启用标志可以不被发信号通知,并且tsrc启用标志的值可以被推导为0。
[0452]
解码设备基于tsrc启用标志获得针对当前切片中的当前块的残差编码信息(s1120)。解码设备可以基于tsrc启用标志获得针对当前切片中的当前块的残差信息。这里,当前块可以是编码块(cb)或变换块(tb)。
[0453]
例如,解码设备可以基于tsrc启用标志来确定针对当前切片中的当前块的残差编码语法。例如,解码设备可以基于tsrc启用标志将针对当前块的残差编码语法确定为常规残差编码(rrc)语法和变换跳过残差编码(tsrc)语法中的一个。rrc语法可以指示根据rrc的语法,并且tsrc语法可以指示根据tsrc的语法。此外,例如,当前块可以是当前切片中的变换跳过块。这里,变换跳过块可以意指未应用变换的块。
[0454]
例如,可以基于值为1的tsrc启用标志将针对当前切片中的当前块的残差编码语
法确定为常规残差编码(rrc)语法。在这种情况下,例如,可以基于值为1的变换跳过启用标志来获得用于当前块是否经变换跳过的变换跳过标志,并且变换跳过标志的值可以是1。例如,图像信息可以包括针对变换跳过块的变换跳过标志。变换跳过标志可以指示当前块是否经变换跳过。也就是说,变换跳过标志可以指示是否将变换应用于当前块的变换系数。表示变换跳过标志的语法元素可以是上述transform_skip_flag。例如,当变换跳过标志的值是1时,变换跳过标志可以指示变换未被应用于当前块(即,变换跳过),而当变换跳过标志的值是0时,变换跳过标志可以指示变换被应用于当前块。例如,当前块的变换跳过标志的值可以是1。
[0455]
此外,例如,可以基于值为0的tsrc启用标志将针对当前块的残差编码语法确定为变换跳过残差编码(tsrc)语法。此外,例如,可以获得当前块是否被变换跳过的变换跳过标志,并且可以基于值为1的变换跳过标志和值为0的tsrc启用标志将当前块的残差编码语法确定为变换跳过残差编码(tsrc)语法。此外,例如,可以获得用于当前块是否经变换跳过的变换跳过标志,并且可以基于值为0的变换跳过标志和值为0的tsrc启用标志将针对当前块的残差编码语法确定为常规残差编码(rrc)语法。
[0456]
然后,例如,解码设备可以获得针对当前块的确定的残差编码语法的残差信息。例如,可以基于值为1的tsrc启用标志来获得常规残差编码(rrc)语法的残差信息,并且可以基于值为0的tsrc启用标志来获得tsrc语法的残差信息。图像信息可以包括残差信息。
[0457]
例如,当针对当前块的残差编码语法被确定为rrc语法时,解码设备可以获得针对当前块的rrc语法的残差信息。例如,rrc语法的残差信息可以包括上表2中所示的语法元素。
[0458]
例如,rrc语法的残差信息可以包括针对当前块的变换系数的语法元素。这里,变换系数可以被称为残差系数。
[0459]
例如,语法元素可以包括诸如last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gtx_flag、abs_remainder、dec_abs_level和/或coeff_sign_flag等语法元素。
[0460]
具体地,例如,语法元素可以包括表示当前块的残差系数阵列中最后一个非零变换系数的位置的位置信息。即,语法元素可以包括指示按当前块的扫描顺序的最后一个非零变换系数的位置的位置信息。位置信息可以包括指示最后一个非零变换系数的列位置的前缀的信息、指示最后一个非零变换系数的行位置的前缀的信息、指示最后一个非零变换系数的列位置的后缀的信息以及指示最后一个非零变换系数的行位置的后缀的信息。位置信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。此外,非零变换系数可以被称为有效系数。
[0461]
此外,例如,语法元素可以包括指示当前块的当前子块是否包括非零变换系数的编码子块标志、指示当前块的变换系数是否是非零变换系数的有效系数标志、用于变换系数的系数级别是否大于第一阈值的第一系数级别标志、用于系数级别的奇偶性的奇偶级别标志和/或用于变换系数的系数级别是否大于第二阈值的第二系数级别标志。这里,编码子块标志可以是sb_coded_flag或coded_sub_block_flag,有效系数标志可以是sig_coeff_flag,第一系数级别标志可以是abs_level_gt1_flag或abs_level_gtx_flag,奇偶级别标
志可以是par_level_flag,并且第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
[0462]
此外,例如,语法元素可以包括当前块的变换系数值的系数值相关信息。系数值相关信息可以是abs_remainder和/或dec_abs_level。
[0463]
此外,例如,语法元素可以包括指示变换系数的符号的符号标志。符号标志可以是coeff_sign_flag。
[0464]
此外,例如,当将符号数据隐藏应用于当前块时,可以不发信号通知当前块中的当前系数组(cg)的第一有效变换系数的符号标志。也就是说,例如,当将符号数据隐藏应用于当前块时,语法元素可以不包括指示第一有效变换系数的符号的符号标志。此外,例如,可以基于符号数据隐藏启用标志,和/或当前cg的第一有效变换系数的位置和最后有效变换系数的位置来推导符号数据隐藏是否被应用于当前块。例如,当符号数据隐藏启用标志的值是1,并且通过从最后有效变换系数位置减去第一有效变换系数位置而获得的值大于3时(即,当符号数据隐藏启用标志的值是1,并且当前cg中的有效变换系数的数目大于3时,可以将符号数据隐藏应用于当前块的当前cg。
[0465]
另外,例如,当针对当前块的残差编码语法被确定为tsrc语法时,解码设备可以获得针对当前块的tsrc语法的残差信息。例如,tsrc语法的残差信息可以包括上表3中所示的语法元素。
[0466]
例如,tsrc语法的残差信息可以包括针对当前块的变换系数的语法元素。这里,变换系数可以被称为残差系数。
[0467]
例如,语法元素可以包括针对变换系数的上下文编码语法元素和/或旁路编码语法元素。语法元素可以包括诸如sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag,abs_level_gtx_flag和/或abs_remainder的语法元素。
[0468]
例如,变换系数的上下文编码语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志;指示变换系数的符号的符号标志;用于针对变换系数的系数级别是否大于第一阈值的第一系数级别标志;和/或用于针对变换系数的系数级别的奇偶校验的奇偶校验级别标志。此外,例如,上下文编码的语法元素可以包括用于变换系数的系数级别是否大于第二阈值的第二系数级别标志;用于变换系数的系数级别是否大于第三阈值的第三系数级别标志;用于变换系数的系数级别是否大于第四阈值的第四系数级别标志;和/或用于变换系数的系数级别是否大于第五阈值的第五系数级别标志。这里,有效系数标志可以是sig_coeff_flag;符号标志可以是coeff_sign_flag;第一系数级别标志可以是abs_level_gt1_flag;奇偶校验级别标志可以是par_level_flag。另外,第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。第三系数级别标志可以是abs_level_gt5_flag或abs_level_gtx_flag;第四系数级别标志可以是abs_level_gt7_flag或abs_level_gtx_flag;第五系数级别标志可以是abs_level_gt9_flag或abs_level_gtx_flag。
[0469]
此外,例如,变换系数的旁路编码语法元素可以包括变换系数的值(或系数级别)的系数级别信息和/或表示变换系数的符号的符号标志。系数级别信息可以是abs_remainder和/或dec_abs_level,并且符号标志可以是ceff_sign_flag。
[0470]
解码设备基于接收到的针对当前块的预测信息来推导当前块的预测样本(s1130)。例如,解码设备可以基于根据接收到的预测信息而确定的帧间预测模式或帧内预
测模式来推导当前块的预测样本。例如,解码设备可以基于根据接收到的预测信息确定的帧间预测模式来推导当前块的运动信息。例如,解码设备可以构造针对当前块的运动信息候选列表,可以基于包括在预测信息中的运动信息候选索引信息在运动信息候选列表中选择一个运动信息候选,并可以基于所选运动信息候选推导当前块的运动信息。然后,例如,解码设备可以基于当前块的参考图片索引来推导当前块的参考图片,并且可以基于由参考图片上的当前块的运动矢量指示的参考块的样本来推导当前块的预测样本。运动信息可以包括当前块的参考图片索引和运动矢量。
[0471]
解码设备基于残差编码信息来推导当前块的残差样本(s1140)。例如,解码设备可以基于残差编码信息推导当前块的变换系数,并可以基于变换系数推导当前块的残差样本。
[0472]
例如,解码设备可以基于残差编码信息的语法元素推导当前块的变换系数。此后,解码设备可以基于变换系数推导当前块的残差样本。例如,当基于变换跳过标志推导变换未被应用于当前块时,即,当变换跳过标志的值为1时,解码设备可以将变换系数推导为当前块的残差样本。另选地,例如,当在不对当前块应用变换的情况下基于变换跳过标志推导时,即,当变换跳过标志的值为1时,解码设备可以对变换系数进行解量化以推导当前块的残差样本。另选地,例如,当在基于变换跳过标志对当前切片中的当前块应用变换的同时被推导时,即,当针对当前块的变换跳过标志的值为0时,解码设备可以对变换系数进行逆变换以推导当前块的残差样本。另选地,例如,当在基于变换跳过标志对当前块应用变换的同时被推导时,即,当变换跳过标志的值为0时,解码设备可以对变换系数进行解量化,并对经解量化的变换系数进行逆变换以推导当前块的残差样本。
[0473]
此外,例如,当将符号数据隐藏被应用于当前块时,可以基于当前cg中的有效变换系数的绝对值之和来推导当前块中的当前cg的第一有效变换系数的符号。例如,当有效变换系数的绝对值之和为偶数时,第一有效变换系数的符号可以被推导为正值,而当有效变换系数的绝对值之和为奇数时,第一有效变换系数的符号可以被推导为负值。
[0474]
解码设备基于预测样本和残差样本生成重构图片(s1150)。例如,解码设备可以基于预测样本和残差样本来生成当前块的重构样本和/或重构图片。例如,解码设备可以通过将预测样本和残差样本相加来生成重构样本。
[0475]
此后,如上所述,可以根据需要对重构图片应用诸如alf过程、sao和/或去块滤波的环路内滤波过程,以便于提高主观/客观视频质量。
[0476]
图12简要例示了用于执行根据本公开的图像解码方法的解码设备。图11中公开的方法可以由图12中公开的解码设备执行。具体地,例如,图12的解码设备的熵解码器可以执行图11的s1100至s1120,图12的解码设备的预测器可以执行图11的s1130,图12的解码设备的残差处理器可以执行图11的s1140,并且图12的解码设备的加法器可以执行图11的s1150。另外,尽管未示出,但是接收当前块的预测信息的处理可以由图12的解码设备的熵解码器来执行。
[0477]
根据本文档,如上所述,可以提高残差编码的效率。
[0478]
另外,根据本文档,可以根据符号数据隐藏启用标志来发信号通知tsrc启用标志,并且通过此,可以通过防止符号数据隐藏被用于tsrc未被启用的变换跳过块来提高编码效率,并且可以通过减少要被编码的比特量来提高整体残差编码效率。
[0479]
另外,根据本文档可以根据变换跳过启用标志和符号数据隐藏启用标志来发信号通知tsrc启用标志,并且通过此,可以通过防止符号数据隐藏用于未启用tsrc的变换跳过块来提高编码效率,并且可以通过减少待编码的比特量来提高总残差编码效率。
[0480]
在以上实施方式中,基于具有一系列步骤或方框的流程图描述了方法。本公开不限于以上步骤或方框的顺序。一些步骤或方框能够以与上述的其它步骤或方框不同的顺序执行或同时执行。此外,本领域技术人员将理解,流程图中所示的步骤不是排它的,并且可以还包括其它步骤,或者可以在不影响本公开的范围的情况下删除流程图中的一个或更多个步骤。
[0481]
在本说明书中所描述的实施方式可以通过被实现在处理器、微处理器、控制器或芯片上来执行。例如,每个图中所示的功能单元可以通过被实现在计算机、处理器、微处理器、控制器或芯片上来执行。在这种情况下,用于实现的信息(例如,关于指令的信息)或算法可以存储在数字存储介质中。
[0482]
另外,应用本公开的解码设备和编码设备可以被包括在如下装置中:多媒体广播发送/接收装置、移动通信终端、家庭影院视频装置、数字影院视频装置、监视相机、视频聊天装置、诸如视频通信的实时通信装置、移动流装置、存储介质、便携式摄像机、vod服务提供装置、过顶(ott)视频装置、互联网流服务提供装置、三维(3d)视频装置、电话会议视频装置、运输用户装置(例如,车辆用户装置、飞机用户装置和轮船用户装置)和医疗视频设备;并且应用本公开的解码设备和编码设备可以用于处理视频信号或数据信号。例如,过顶(ott)视频装置可以包括游戏机、蓝光播放器、互联网接入电视机、家庭影院系统、智能电话、平板电脑、数字视频记录仪(dvr)等。
[0483]
另外,应用本公开的处理方法能够以计算机执行的程序的形式产生,并且可以存储在计算机可读记录介质中。根据本公开的具有数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括其中存储计算机可读数据的所有类型的存储设备。计算机可读记录介质可以包括例如bd、通用串行总线(usb)、rom、prom、eprom、eeprom、ram、cd-rom、磁带、软盘和光学数据存储设备。另外,计算机可读记录介质包括以载波(例如,经由互联网的传输)形式实现的介质。另外,由编码方法生成的比特流可以存储在计算机可读记录介质中或通过有线/无线通信网络来传输。
[0484]
另外,本公开的实施方式可以根据程序代码利用计算机程序产品来实现,并且程序代码可以通过本公开的实施方式在计算机中执行。程序代码可以存储在计算机可读载体上。
[0485]
图13例示了应用本公开的内容流媒体系统的结构示图。
[0486]
应用本公开的实施方式的内容流媒体系统可以主要包括编码服务器、流传输服务器、网络服务器、媒体储存器、用户设备和多媒体输入设备。
[0487]
编码服务器将从诸如智能手机、相机或便携式摄像机等的多媒体输入设备输入的内容压缩为数字数据,以生成比特流并将比特流发送到流传输服务器。作为另一示例,当诸如智能手机、相机或便携式摄像机等的多媒体输入设备直接生成比特流时,可以省略编码服务器。
[0488]
可以通过应用了本公开的实施方式的编码方法或比特流生成方法来生成比特流,并且流传输服务器可以在发送或接收比特流的过程中临时存储比特流。
[0489]
流传输服务器基于用户请求通过网络服务器向用户设备发送多媒体数据,并且网络服务器用作向用户通知服务的媒介。当用户从网络服务器请求所需的服务时,网络服务器向流传输服务器递送该请求,并且流传输服务器向用户发送多媒体数据。在这种情况下,内容流媒体系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流媒体系统内的设备之间的命令/响应。
[0490]
流传输服务器可以从媒体储存器和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平稳的流服务,流传输服务器可以将比特流存储预定时间段。
[0491]
用户设备的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(pda)、便携式多媒体播放器(pmp)、导航仪、触屏pc、平板pc、超级本、可穿戴装置(例如,智能手表、智能眼镜和头戴式显示器)、数字tv、台式计算机和数字标牌等。内容流媒体系统内的每个服务器可以作为分布式服务器来操作,在这种情况下,从每个服务器接收的数据可以被分布。
[0492]
本公开中描述的权利要求能够以各种方式组合。例如,可以组合本公开的方法权利要求的技术特征以实现为装置,以及可以组合本公开的装置权利要求的技术特征以实现为方法。此外,可以组合本公开的方法权利要求的技术特征和装置权利要求的技术特征以实施为装置,以及可以组合本公开的方法权利要求的技术特征和装置权利要求的技术特征以实现为方法。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献