图像编码/解码设备、存储介质及数据传输设备的制作方法
未命名
10-21
阅读:53
评论:0
图像编码/解码设备、存储介质及数据传输设备
1.本技术是原案申请号为201980070397.2的发明专利申请(国际申请号:pct/kr2019/012996,申请日:2019年10月4日,发明名称:用于编码变换系数的方法及其装置)的分案申请。
技术领域
2.本公开涉及图像编码系统的变换系数编码方法及其设备。
背景技术:
3.如今,在各个领域中对诸如4k、8k或更高的超高清(uhd)图像/视频这样的高分辨率和高质量图像/视频的需求已经不断增长。随着图像/视频数据变成更高分辨率和更高质量,与传统图像数据相比,所发送的信息量或比特量增加。因此,当使用诸如传统有线/无线宽带线这样的介质来发送图像数据或者使用现有存储介质来存储图像/视频数据时,其传输成本和存储成本增加。
4.另外,如今,对于诸如虚拟现实(vr)、人工现实(ar)内容或全息图等这样的沉浸式媒体的兴趣和需求正在增加,并且对图像特征与诸如游戏图像这样的真实图像的图像特征不同的图像/视频的广播正在增加。
5.因此,需要有效地压缩并发送或存储以及再现具有如上所述的各种特征的高分辨率和高质量图像/视频的信息的高效图像/视频压缩技术。
技术实现要素:
6.技术目的
7.本公开提供用于提高图像编码效率的方法和设备。
8.本公开还提供用于提高残差编码的效率的方法和设备。
9.本公开还提供用于提高变换系数水平编码的效率的方法和设备。
10.本公开还提供用于不以子块为单位而以变换块为单位执行残差编码的方法和设备。
11.本发明还提供能够通过确定(或改变)关于量化变换系数的变换系数水平的奇偶性的奇偶性水平标志、以及与变换系数水平是否大于第一阈值有关的第一变换系数水平标志的解码顺序来提高编码效率的方法和设备。
12.本发明还提供通过将残差信息中包括的当前块内的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量、以及第二变换系数水平标志的数量之和限制为预定最大值或更小来提高编码效率的方法和设备。
13.本公开还提供通过将残差信息中包括的当前块内的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量、以及第二变换系数水平标志的数量之和限制为预定最大值或更小来减少要基于上下文编码的数据的方法和设备。
14.技术方案
15.根据本公开的实施方式,提供了由解码设备执行的图像解码方法。该方法包括:接收包括残差信息的比特流;基于比特流中包括的残差信息,推导当前块的量化变换系数;基于量化变换系数,推导当前块的残差样本;以及基于当前块的残差样本生成重构图片,其中残差信息包括基于上下文编码的上下文语法元素,其中,推导量化变换系数基于上下文并且基于上下文语法元素的预定最大值来对上下文语法元素进行解码,并且其中通过变换块的单位来确定最大值。
16.根据本公开的另一实施方式,提供了用于执行图像解码的解码设备。解码设备包括:熵解码器,其接收包括残差信息的比特流,并且基于包括在比特流中的残差信息来推导当前块的量化变换系数;逆变换器,其基于量化变换系数来推导当前块的残差样本;以及加法器,其基于当前块的残差样本来生成重构图片,其中残差信息包括基于上下文编码的上下文语法元素,其中,由熵解码器执行的推导量化变换系数基于上下文并且基于上下文语法元素的预定最大值来对上下文语法元素进行解码,并且其中通过变换块的单位来确定最大值。
17.根据本公开的又一实施方式,提供了由编码设备执行的图像编码方法。该方法包括:推导当前块的残差样本;基于当前块的残差样本推导量化变换系数;以及对包括关于量化变换系数的信息的残差信息进行编码,其中残差信息包括基于上下文编码的上下文语法元素,其中,推导量化变换系数基于上下文并且基于上下文语法元素的预定最大值来对上下文语法元素进行编码,并且其中通过变换块的单位来确定最大值。
18.根据本公开的又一实施方式,提供了用于执行图像编码的编码设备。该编码设备包括:减法器,其推导当前块的残差样本;量化器,其基于当前块的残差样本,推导量化变换系数;以及熵编码器,其对包括关于量化变换系数的信息的残差信息进行编码,其中,由熵编码器执行的推导量化变换系数基于上下文并且基于上下文语法元素的预定最大值来对上下文语法元素进行编码,并且其中通过变换块的单位来确定最大值。
19.根据本公开的又一实施方式,提供了一种解码器可读存储介质,其存储关于使视频解码设备执行根据一些实施方式的解码方法的指令的信息。
20.根据本公开的又一实施方式,提供了一种解码器可读存储介质,其存储关于使视频解码设备执行根据实施方式的解码方法的指令的信息。根据本公开,可以提高整体图像/视频压缩效率。
21.技术效果
22.根据本公开,可以提高整体图像/视频压缩效率。
23.根据本公开,可以提高残差编码的效率。
24.根据本公开,可以不以子块为单位而是以变换块为单位执行残差编码。
25.根据本公开,可以提高变换系数水平编码的效率。
26.根据本公开,通过确定(或改变)关于量化变换系数的变换系数水平的奇偶性的奇偶性水平标志、以及与变换系数水平是否大于第一阈值有关的第一变换系数水平标志的解码顺序,可以提高编码效率。
27.本公开能够通过将包括在残差信息中的当前块内的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量、以及第二变换系数水平标志的数量之和限制为预定最大值或更小,来提高编码效率。
28.本公开能够通过将包括在残差信息中的当前块内的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量、以及第二变换系数水平标志的数量之和限制为预定最大值或更小,来减少要基于上下文编码的数据。
附图说明
29.图1示意性地表示可以应用本公开的视频/图像编码系统的示例。
30.图2是示意性地例示可以应用本公开的视频/图像编码设备的配置的图。
31.图3是示意性地例示可以应用本公开的视频/图像解码设备的配置的图。
32.图4是例示根据实施方式的cabac编码系统的框图的图。
33.图5是例示4
×
4块中的变换系数的示例的图。
34.图6是例示根据示例的残差编码方法的控制流程图。
35.图7是示出根据实施方式的编码设备的操作的流程图。
36.图8是示出根据实施方式的编码设备的配置的框图。
37.图9是示出根据实施方式的解码设备的操作的流程图。
38.图10是示出根据实施方式的解码设备的配置的框图。
39.图11是可以应用本公开的实施方式的内容流传输系统的示例。
具体实施方式
40.尽管本公开可能易于进行各种修改并且包括各种实施方式,但是其具体实施方式已在附图中通过示例的方式示出,并且现在将对其进行详细描述。然而,这并不旨在将本公开限制于本文中公开的具体实施方式。本文中使用的术语只是出于描述特定实施方式的目的,而不旨在限制本公开的技术思路。单数形式可以包括复数形式,除非上下文中另外清楚指示。诸如“包括”、“包含”等这样的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、组件或其组合,因此不应该被理解为预先排除了存在或添加一个或更多个不同特征、数字、步骤、操作、元件、组件或其组合的可能性。
41.此外,为了方便描述彼此不同的特性功能,独立地例示了本文中描述的附图上的各组件,然而,并不意指各组件由单独的硬件或软件来实现。例如,可以组合这些组件中的任何两个或更多个以形成单个组件,并且任何单个组件可以被划分成多个组件。其中组件被组合和/或划分的实施方式将落入本公开的专利权的范围,只要它们不脱离本公开的实质即可。
42.下文中,将在参照附图的同时更详细地说明本公开的优选实施方式。另外,在附图上,相同的附图标记用于相同的组件,并且将省略对相同组件的重复描述。
43.图1示意性地呈现可以应用本公开的视频/图像编码系统的示例。
44.本文件涉及视频/图像编码。例如,本文件中公开的方法/实施方式可以应用于以通用视频编码(vvc)、evc(基本视频编码)标准、aomedia video 1(av1)标准、第二代音频视频编码标准(avs2)或下一代视频/图像编码标准(例如,h.267或h.268等)中公开的方法。
45.本文件提出了视频/图像编码的各种实施方式,并且除非另外提到,否则这些实施方式可以彼此组合地执行。
46.在本文件中,视频可以是指随时间推移的一系列图像。图片通常是指表示特定时
间区域中的一副图像的单元,并且切片/图块(tile)是在编码中构成图片的一部分的单元。切片/图块可以包括一个或更多个编码树单元(ctu)。一个图片可以由一个或更多个切片/图块组成。一个图片可以由一个或更多个图块组组成。一个图块组可以包括一个或更多个图块。块部(brick)可以表示图片中的图块内的ctu行的矩形区域。图块可以被分割成多个块部,块部中的每一个由图块内的一个或更多个ctu行组成。没有被分割成多个块部的图块也可以称为块部。块部扫描是以下的分割图片的ctt的特定顺序排序:可以在块部中按ctu光栅扫描对ctu进行排序,可以按图块的块部的光栅扫描对图块内的块部进行连续排序,并且可以按图片的图块的光栅扫描对图片中的图块进行连续排序。图块是图片中的特定图块列和特定图块行内的ctu的矩形区域。图块列是高度等于图片的高度并且宽度由图片参数集中的语法元素指定的ctu的矩形区域。图块行是高度由图片参数集中的语法元素指定并且宽度等于图片的宽度的ctu的矩形区域。块部扫描是以下的分割图片的ctu的特定顺序排序:在图块中按ctu光栅扫描对ctu进行连续排序,而按图片的图块的光栅扫描对图片中的图块进行连续排序。切片包括可以被排他性地包含在单个nal单元中的图片的整数个块部。切片可以由多个完整图块组成或者仅由一个图块的连续序列的完整块部组成。在本文件中,可以将图块组与切片互换地使用。例如,在本文件中,图块组/图块组头可以被称为切片/切片头。
47.像素或pel可以意指构成一个图片(或图像)的最小单元。另外,“样本”可以被用作与像素对应的术语。样本通常可以表示像素或像素的值,并且可以仅表示亮度分量的像素/像素值,或仅表示色度分量的像素/像素值。
48.单元可以表示图像处理的基本单元。单元可以包括图片的特定区域和与该区域相关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。在一些情况下,可以将单元与诸如块或区域这样的术语互换地使用。在通常情况下,m
×
n块可以包括m列和n行的样本(样本阵列)或变换系数的集合(或阵列)。
49.在该文件中,术语“/”和“,”应该被解释为指示“和/或”。例如,表述“a/b”可以意指“a和/或b”。另外,“a、b”可以意指“a和/或b”。另外,“a/b/c”可以意指“a、b和/或c中的至少一个”。另外,“a/b/c”可以意指“a、b和/或c中的至少一个”。
50.另外,在该文件中,术语“或”应该被解释为指示“和/或”。例如,表述“a或b”可以包括1)仅a、2)仅b和/或3)a和b二者。换句话说,本文件中的术语“或”应该被解释为指示“另外地或另选地”。
51.参照图1,视频/图像编码系统可以包括第一装置(源装置)和第二装置(接收装置)。源装置可以经由数字存储介质或网络以文件或流传输的形式将编码后的视频/图像信息或数据传递到接收装置。
52.源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以被称为视频/图像编码设备,并且解码设备可以被称为视频/图像解码设备。发送器可以被包括在编码设备中。接收器可以被包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。
53.视频源可以通过捕获、合成或生成视频/图像的处理来获得视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以
包括例如计算机、平板计算机和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以被生成相关数据的处理取代。
54.编码设备可以对输入视频/图像进行编码。编码设备可以执行诸如针对压缩和编码效率的预测、变换和量化这样的一系列过程。编码后的数据(编码后的视频/图像信息)可以以比特流的形式输出。
55.发送器可以通过数字存储介质或网络以文件或流传输的形式将以比特流的形式输出的编码后的视频/图像信息或数据发送到接收装置的接收器。数字存储介质可以包括诸如usb、sd、cd、dvd、蓝光、hdd、ssd等这样的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并且将接收/提取的比特流发送到解码设备。
56.解码设备可以通过执行与编码设备的操作对应的诸如反量化、逆变换和预测这样的一系列过程来解码视频/图像。
57.渲染器可以渲染解码后的视频/图像。可以通过显示器显示渲染后的视频/图像。
58.图2是示意性地描述可以应用本公开的视频/图像编码设备的配置的图。下文中,所谓的视频编码设备可以包括图像编码设备。
59.参照图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作为内部/外部组件。
60.图像分割器210将输入到编码设备200的输入图像(或图片或帧)分割成一个或更多个处理器。例如,处理器可以被称为编码单元(cu)。在这种情况下,可以从编码树单元(ctu)或最大编码单元(lcu)开始根据四叉树二叉树三叉树(qtbttt)结构来递归地分割编码单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编码单元划分成深度更深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,随后可以应用二叉树结构和/或三叉树结构。另选地,可以首先应用二叉树结构。可以基于不再被分割的最终编码单元来执行根据本文件的编码过程。在这种情况下,可以基于根据图像特性的编码效率将最大编码单元用作最终编码单元,或者如果必要,可以将编码单元递归地分割成深度更深的编码单元并且可以将最佳大小的编码单元用作最终编码单元。这里,编码过程可以包括随后将描述的预测、变换和重构的过程。作为另一示例,处理单元还可以包括预测单元(pu)或变换单元(tu)。在这种情况下,可以从上述的最终编码单元划分或分割预测单元和变换单元。预测单元可以是样本预测的单元,并且变换单元可以是用于推导变换系数的单元和/或用于根据变换系数推导残差信号的单元。
61.在一些情况下,可以将单元和诸如块或区域这样的术语互换地使用。在常规情况下,m
×
n块可以表示由m列和n行组成的样本或变换系数的集合。样本通常可以表示像素或
像素的值,可以仅表示亮度分量的像素/像素值,或仅表示色度分量的像素/像素值。样本可以被用作与针对像素或pel的一个图片(或图像)对应的术语。
62.在编码设备200中,从输入图像信号(原始块、原始样本阵列)中减去从帧间预测器221或帧内预测器222输出的预测信号(预测块、预测样本阵列)以生成残差信号(残差块、残差样本阵列),并且所生成的残差信号被发送到变换器232。在这种情况下,如所示出的,在编码设备200中从输入图像信号(原始块、原始样本阵列)中减去预测信号(预测块、预测样本阵列)的单元可以被称为减法器231。预测器可以对要处理的块(下文中,被称为“当前块”)执行预测,并且可以生成包括针对当前块的预测样本的预测块。预测器可以确定以当前块或cu为基础应用帧内预测还是帧间预测。如随后在对每种预测模式的描述中所描述的,预测器可以生成诸如预测模式信息这样的与预测相关的各种信息,并且将所生成的信息发送到熵编码器240。关于预测的信息可以在熵编码器240中被编码并且以比特流的形式被输出。
63.帧内预测器222可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的附近或者可以与当前块分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。非定向模式可以包括例如dc模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33种定向预测模式或65种定向预测模式。然而,这仅仅是示例,并且根据设置,可以使用更多或更少的定向预测模式。帧内预测器222可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
64.帧间预测器221可以基于参考图片上的运动向量所指定的参考块(参考样本阵列)来推导针对当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括参考块的参考图片和包括时间邻近块的参考图片可以相同或不同。时间邻近块可以被称为并置参考块、并置cu(colcu)等,并且包括时间邻近块的参考图片可以被称为并置图片(colpic)。例如,帧间预测器221可以基于邻近块来配置运动信息候选列表,并且生成指示哪个候选被用于推导当前块的运动向量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器221可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式下,与合并模式不同,不能发送残差信号。在运动向量预测(mvp)模式的情况下,邻近块的运动向量可以被用作运动向量预测项,并且可以通过发信号通知运动向量差来指示当前块的运动向量。
65.预测器220可以基于以下所描述的各种预测方法来生成预测信号。例如,预测器不仅可以将帧内预测或帧间预测应用于对一个块预测,而且可以同时应用帧内预测和帧间预测。这可以被称为组合的帧间和帧内预测(ciip)。另外,预测器可以基于块内复制(ibc)预测模式或调色板模式,以便对块进行预测。ibc预测模式或调色板模式可以被用于游戏等的内容图像/视频编码(例如,屏幕内容编码(scc))。尽管ibc基本上在当前图片中执行预测,但是其执行方式与帧间预测的相似之处在于,在当前图片中推导参考块。即,ibc可以使用本文件中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测
的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。
66.通过预测器(包括帧间预测器221和/或帧内预测器222)生成的预测信号可以被用于生成重构信号或者生成残差信号。变换器232可以通过向残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen-lo
è
ve变换(klt)、基于图的变换(gbt)或有条件非线性变换(cnt)中的至少一种。这里,gbt意指当用曲线图表示像素之间的关系信息时从曲线图获得的变换。cnt是指基于使用所有先前重构的像素生成的预测信号而产生的变换。另外,变换处理可以被应用于大小相同的正方形像素块,或者可以应用于大小可变的块而非正方形的块。
67.量化器233可以对变换系数进行量化并且将它们发送到熵编码器240,并且熵编码器240可以对量化后的信号(关于量化变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以被称为残差信息。量化器233可以基于系数扫描顺序将块类型的量化变换系数重新布置成一维向量形式,并且基于一维向量形式的量化变换系数来生成关于量化变换系数的信息。可以生成关于变换系数的信息。熵编码器240可以执行诸如例如指数哥伦布(exponential golomb)、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等这样的各种编码方法。熵编码器240可以对除了量化变换系数(例如,语法元素的值等)之外的视频/图像重构所需的信息一起或分别进行编码。编码后的信息(例如,编码后的视频/图像信息)可以以比特流的形式以nal(网络抽象层)为单位进行发送或存储。视频/图像信息还可以包括关于诸如适应参数集(aps)、图片参数集(pps)、序列参数集(sps)、视频参数集(vps)这样的各种参数集的信息。另外,视频/图像信息还可以包括常规约束信息。在本文件中,从编码设备发送到/发信号通知给解码设备的信息和/或语法元素可以被包括在视频/图片信息中。视频/图像信息可以通过上述编码过程进行编码并且被包括在比特流中。可以通过网络传输比特流,或者可以将其存储在数字存储介质中。网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如usb、sd、cd、dvd、蓝光、hdd、ssd等这样的各种存储介质。发送从熵编码器240输出的信号的发送器(未示出)或存储信号的存储单元(未示出)可以被包括为编码设备200的内部/外部元件,另选地,发送器可以被包括在熵编码器240中。
68.从量化器233输出的量化变换系数可以被用于生成预测信号。例如,通过利用反量化器234和逆变换器235向量化变换系数应用反量化和逆变换,可以重构残差信号(残差块或残差样本)。加法器250将重构后的残差信号与从帧间预测器221或帧内预测器222输出的预测信号相加,以生成重构信号(重构图片、重构块、重构样本阵列)。如果在诸如应用跳过模式的情况下没有针对要处理的块的残差时,可以将预测块用作重构块。加法器250可以被称为重构器或重构块生成器。所生成的重构信号可以被用于当前块中的要处理的下一块的帧内预测,并且如下面说描述地,可以被用于通过滤波进行的下一图片的帧间预测。
69.此外,在图片编码和/或重构期间,可以应用具有色度缩放的亮度映射(lmcs)。
70.滤波器260可以通过向重构信号应用滤波来改善主观/客观图像质量。例如,滤波器260可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且将修改后的重构图片存储在存储器270中,尤其是存储器270的dpb中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环形滤波器、双边滤波器等。如随后在对每种滤波方法的描
述中所讨论的,滤波器260可以生成与滤波相关的各种信息,并且将所生成的信息发送到熵编码器240。关于滤波的信息可以在熵编码器240中被编码并且以比特流的形式被输出。
71.发送到存储器270的修改后的重构图片可以被用作帧间预测器221中的参考图片。当通过编码设备应用帧间预测时,可以避免编码设备200和解码设备之间的预测失配,并且可以提高编码效率。
72.存储器270的dpb可以存储修改后的重构图片,以便用作帧间预测器221中的参考图片。存储器270可以存储从中推导(或编码了)当前图片中的运动信息的块的运动信息和/或已经重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器221,并且被用作空间邻近块的运动信息或时间邻近块的运动信息。存储器270可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送到帧内预测器222。
73.图3是例示可以应用本文件的实施方式的视频/图像解码设备的配置的示意图。
74.参照图3,解码设备300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350和存储器360。预测器330可以包括帧内预测器331和帧间预测器332。残差处理器320可以包括反量化器321和逆变换器322。根据实施方式,熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由硬件组件(例如,解码器芯片组或处理器)构造。另外,存储器360可以包括解码图片缓冲器(dpb),或者可以由数字存储介质构造。硬件组件还可以包括存储器360作为内部/外部组件。
75.当输入包括视频/图像信息的比特流时,解码设备300可以与据此在图2的编码设备中处理视频/图像信息的处理对应地重构图像。例如,解码设备300可以基于与从比特流获得的块分割相关信息来推导单元/块。解码设备300可以使用在编码设备中应用的处理器来执行解码。因此,解码的处理器可以是例如编码单元,并且可以从编码树单元或最大编码单元根据四叉树结构、二叉树结构和/或三叉树结构对编码单元进行分割。可以用编码单元推导一个或更多个变换单元。可以通过再现设备来再现通过解码设备300解码并输出的重构图像信号。
76.解码设备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中的至少一个。
77.反量化器321可以对量化变换系数进行反量化并输出变换系数。反量化器321可以将量化变换系数重新布置为二维块的形式。在这种情况下,可以基于在编码设备中执行的系数扫描顺序来执行重新布置。反量化器321可以使用量化参数(例如,量化步长信息)对量化变换系数执行反量化,并且获得变换系数。
78.逆变换器322对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
79.预测器可以对当前块执行预测,并且生成包括针对当前块的预测样本的预测块。预测器可以基于从熵解码器310输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且可以确定特定的帧内/帧间预测模式。
80.预测器330可以基于下面描述的各种预测方法来生成预测信号。例如,预测器不仅可以将帧内预测或帧间预测应用于对一个块预测,而且可以同时应用帧内预测和帧间预测。这可以被称为组合的帧间和帧内预测(ciip)。另外,预测器可以基于块内复制(ibc)预测模式或调色板模式,以对块进行预测。ibc预测模式或调色板模式可以被用于游戏等的内容图像/视频编码(例如,屏幕内容编码(scc))。尽管ibc基本上在当前图片中执行预测,但是其执行方式与帧间预测的相似之处在于,在当前图片中推导参考块。即,ibc可以使用本文件中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。
81.帧内预测器331可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的附近或者可以与当前块分开。在帧内预测中,预测模式可以包括多种非定向模式和多种定向模式。帧内预测器331可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
82.帧间预测器332可以基于参考图片上的运动向量所指定的参考块(参考样本阵列)来推导针对当前块的预测块。此时,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。例如,帧间预测器332可以基于邻近块来配置运动信息候选列表,并且基于接收到的候选选择信息来推导当前块的运动向量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。
83.加法器340可以通过将所获得的残差信号与从预测器(帧间预测器332或帧内预测器331)输出的预测信号(预测块、预测样本阵列)相加来生成重构信号(重构图片、重构块、重构样本阵列)。如果诸如在应用跳过模式的情况下没有针对要处理的块的残差时,可以将预测块用作重构块。
84.加法器340可以被称为重构器或重构块生成器。所生成的重构信号可以被用于当前图片中的要处理的下一块的帧内预测,如下面描述地可以通过滤波来输出,或者可以被用于下一图片的帧间预测。
85.此外,在图片解码处理中可以应用具有色度缩放的亮度映射(lmcs)。
86.滤波器350可以通过向重构后的信号应用滤波来改善主观/客观图像质量。例如,滤波器350可以通过向重构图片应用各种滤波方法来生成修改后的重构图片,并且可以将修改后的重构图片存储到存储器360中,尤其是发送到存储器360的dpb中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环形滤波器、双边滤波器等。
87.存储在存储器360的dpb中的(修改后的)重构图片可以被用作帧间预测器332中的参考图片。存储器360可以存储从中推导(或解码了)当前图片中的运动信息的块的运动信息和/或已经重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器332,以被用作空间邻近块的运动信息或时间邻近块的运动信息。存储器360可以存储当前图片中的重构块的重构样本,并且将重构样本传送到帧内预测器331。
88.在本公开中,在编码设备200的滤波器260、帧间预测器221和帧内预测器222中描述的实施方式可以与解码设备300的滤波器350、帧间预测器332和帧内预测器331相同或者被分别应用以对应于解码设备300的滤波器350、帧间预测器332和帧内预测器331。这同样可以应用于帧间预测器332和帧内预测器331。
89.如上所述,执行预测,以便提高执行视频编码时的压缩效率。据此,可以生成包括针对作为编码目标块的当前块的预测样本的预测块。这里,预测块包括空间域(或像素域)中的预测样本。可以在编码设备和解码设备中相同地推导预测块,并且编码设备可以通过向解码设备发信号通知并非原始块本身的原始样本值而是关于原始块与预测块之间的残差的信息(残差信息)来提高图像编码效率。解码设备可以基于残差信息来推导包括残差样本的残差块,通过将残差块与预测块相加来生成包括重构样本的重构块,并且生成包括重构块的重构图片。
90.可以通过变换过程和量化过程来生成残差信息。例如,编码设备可以推导原始块与预测块之间的残差块,通过对残差块中所包括的残差样本(残差样本阵列)执行变换过程来推导变换系数,并且通过对变换系数执行量化过程来推导量化变换系数,使得它可以(通过比特流)向解码设备发信号通知关联的残差信息。这里,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核、量化参数等。解码设备可以基于残差信息来执行量化/反量化过程并且推导残差样本(或残差样本块)。解码设备可以基于预测块和残差块来生成重构块。编码设备可以通过对量化变换系数进行反量化/逆变换来推导残差块以便作为下一个图片的帧间预测的参考,并且可以基于此来生成重构图片。
91.图4示出了用于对单个语法元素进行编码的上下文自适应二进制算术编码(cabac)的框图,作为例示了根据实施方式的cabac编码系统的框图的图。
92.在输入信号是非二值化的语法元素的情况下,cabac的编码处理首先通过二值化
将输入信号变换为二值化的值。在输入信号已经是二值化的值的情况下,输入信号绕过二值化且不经历二值化,并且输入到编码引擎。这里,将构成二进制值的每个二进制数0或1称为bin。例如,在二值化后的二进制串为“110”的情况下,1、1和0中的每一个都称为bin。语法元素的bin可以是语法元素的值。
93.二值化的bin被输入到常规编码引擎或旁路编码引擎。
94.常规编码引擎将反映概率值的上下文模型指派给相对应的bin,并根据指派的上下文模型对bin进行编码。在对每个bin执行编码之后,常规编码引擎可以更新bin的概率模型。如此编码的bin被称为上下文编码的bin。
95.旁路编码引擎省略了估计输入bin的概率的处理以及在编码之后更新已经应用于bin的概率模型的处理。旁路编码引擎通过对输入到其中的bin进行编码同时应用均匀概率分布而不是指派上下文,从而提高了编码速度。如此编码的bin被称为旁路bin。
96.熵编码可以确定是通过常规编码引擎还是通过旁路编码引擎执行编码,并且切换编码路径。熵解码以相反的顺序执行与编码的处理相同的处理。
97.此外,在实施方式中,基于诸如transform_skip_flag、last_sig_coeff_x_prefix,last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、par_level_flag、rem_abs_gt1_flag、rem_abs_gt2_flag、abs_remainder、coeff_sign_flag、mts_idx等的语法元素来对(量化)的变换系数进行编码和/或解码。下面的表1示出了根据示例的与残差数据编码有关的语法元素。
98.[表1]
[0099]
[0100]
[0101][0102]
transform_skip_flag指示是否跳过关联块的变换。关联块可以是编码块(cb)或变换块(tb)。关于变换(和量化)和残差编码处理,cb和tb可以互换使用。例如,如上所述,可以推导cb的残差样本,并且可以通过对残差样本进行变换和量化来推导(量化的)变换系数。并且,通过残差编码处理,可以生成并发信号通知高效地指示(量化的)变换系数的位置、大小或符号(sign)等的信息(例如,语法元素)。量化变换系数可以简称为变换系数。通常,在cb不大于最大tb的情况下,cb的大小可以与tb的大小相同,并且在这种情况下,要被变换(和量化)并进行残差编码的目标块可以称为cb或tb。此外,在cb大于最大tb的情况下,可以将要进行变换(和量化)和残差编码的目标块称为tb。尽管在下文中以示例的方式描述了与残差编码有关的语法元素以变换块(tb)为单位进行发信号通知,但是如上所述,tb和编码块(cb)可以互换使用。
[0103]
在一个实施方式中,基于语法元素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)和/或特定帧内/帧间预测模式来确定扫描顺序。
[0104]
接下来,在将变换块划分为4
×
4子块之后,可将coded_sub_block_flag的一位语法元素用于每个4
×
4子块,以指示当前子块中是否存在非零系数。
[0105]
如果coded_sub_block_flag的值为0,则没有更多信息要发送,因此,可以终止针对当前子块的编码处理。相反,如果coded_sub_block_flag的值为1,则可以继续执行针对sig_coeff_flag的编码处理。由于包括最后非零系数的子块不需要对coded_sub_block_flag进行编码,并且包括变换块的dc信息的子块具有包括非零系数的高概率,因此可以假定coded_sub_block_flag具有值1,而没有被编码。
[0106]
如果因为coded_sub_block_flag的值为1而确定当前子块中存在非零系数,则相反,可以根据扫描顺序对具有二进制值的sig_coeff_flag进行编码。可以根据扫描顺序针对每个系数编码1位语法元素sig_coeff_flag。如果当前扫描位置处的变换系数的值不为0,则sig_coeff_flag的值可以为1。这里,在包括最后非零系数的子块的情况下,由于不需要针对最后非零系数对sig_coeff_flag进行编码,因此可以省略针对sig_coeff_flag的编码处理。仅当sig_coeff_flag为1时,可以执行水平信息编码,并且可以在水平信息编码处理中使用四个语法元素。更具体地,每个sig_coeff_flag[xc][yc]可以指示在当前tb中的每个变换系数位置(xc,yc)处的对应变换系数的水平(值)是否为非零。在实施方式中,sig_coeff_flag可以对应于有效系数标志的示例,该有效系数标志指示量化变换系数是否为非零有效系数。
[0107]
在对sig_coeff_flag进行编码之后残差的水平值可以与下面的式1中的相同。也就是说,指示要编码的水平值的语法元素remabslevel可以如下面的式1所示。这里,coeff是指实际的变换系数值。
[0108]
[式1]
[0109]
remabslevel=|coeff|-1
[0110]
通过par_level_flag,可以如下面的式2所示对式1中写入的remabslevel的最低有效系数(lsb)值进行编码。这里,par_level_flag[n]可以指示在扫描位置n处的变换系数水平(值)的奇偶性。在par_level_flag编码之后,要编码的变换系数水平值remabslevel可以被更新为如下面的式3所示。
[0111]
[式2]
[0112]
par_level_flag=remabslevel&1
[0113]
[式3]
[0114]
remabslevel’=remabslevel》》1
[0115]
rem_abs_gt1_flag可以指示对应的扫描位置n处的remabslevel'是否大于1,并且rem_abs_gt2_flag可以指示对应的扫描位置n处的remabslevel'是否大于2。可以仅当rem_abs_gt2_flag为1时对abs_remainder执行编码。当总结实际变换系数值coeff与每个语法元素之间的关系时,例如可以是下面的式4,并且下面的表2示出了与式4有关的示例。另外,
可以使用1位符号coeff_sign_flag对每个系数的符号进行编码。|coeff|可以指示变换系数水平(值),并且可以表示为变换系数的abslevel。
[0116]
[式4]
[0117]
|coeff|=sig_coeff_flag+par_level_flag+2*(rem_abs_gt1_flag+rem_abs_gt2_flag+abs_remainder)
[0118]
[表2]
[0119]
|coeff|sig_coeff_flagpar_level_flagrem_abs_gt1_flagrem_abs_gt2_flagabs_remainder00
ꢀꢀꢀꢀ
1100
ꢀꢀ
2110 31010 4111051011061111071011181111191011210111121110113
………………
[0120]
在实施方式中,par_level_flag指示关于量化变换系数的变换系数水平的奇偶性的奇偶性水平标志的示例,rem_abs_gt1_flag指示关于变换系数水平是否大于第一阈值的第一变换系数水平标志的示例,并且rem_abs_gt2_flag可以指示关于变换系数水平是否大于第二阈值的第二变换系数水平标志的示例。
[0121]
另外,在另一实施方式中,rem_abs_gt2_flag可以被称为rem_abs_gt3_flag,并且在另一实施方式中,可以基于abslevel_gtx_flag[n][j]来表示rem_abs_gt1_flag和rem_abs_gt2_flag。abs_level_gtx_flag[n][j]可以是指示在扫描位置n处的变换系数水平的绝对值(或向右移位1的变换系数水平)的绝对值是否大于(j<<1)+1的标志。在一个示例中,rem_abs_gt1_flag可以执行与abs_level_gtx_flag[n][0]相同和/或相似的功能,并且rem_abs_gt2_flag可以执行与abs_level_gtx_flag[n][1]相同和/或相似的功能。也就是说,abs_level_gtx_flag[n][0]可以对应于第一变换系数水平标志的示例,而abs_level_gtx_flag[n][1]可以对应于第二变换系数水平标志的示例。(j<<1)+1可以根据情况用预定的阈值(例如第一阈值和第二阈值)代替。
[0122]
图5是例示4
×
4块中的变换系数的示例的图。
[0123]
图5的4
×
4块示出了量化系数的示例。图5中所示的方框可以是4
×
4变换块、或8
×
8、16
×
16、32
×
32或64
×
64变换块的4
×
4子块。图5的4
×
4块可以是亮度块或色度块。图5的反对角线扫描系数的编码结果可以例如在表3中示出。在表3中,scan_pos指示根据反对角线扫描的系数的位置。scan_pos 15是在4
×
4块中首先被扫描的系数,即,在右下角的系数,而scan_pos0是最后被扫描的系数,即,在左上角的系数。此外,在一个实施方式中,scan_pos可以被称为扫描位置。例如,scan_pos 0可以被称为扫描位置0。
[0124]
[表3]
[0125]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag 001 0101101rem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 1011111rem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 00111abs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
012ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0126]
如表1中所述,在实施方式中,4
×
4子块单元的主要语法元素可以包括sig_coeff_flag、par_level_flag、rem_abs_gtl_flag、rem_abs_gt2_flag、abs_remainder和coeff_sign_flag等。在它们当中,sig_coeff_flag、par_level_flag、rem_abs_gtl_flag和rem_abs_gt2_flag可以是使用常规编码引擎编码的上下文编码的bin,并且abs_remainder和coeff_sign_flag可以是使用旁路编码引擎编码的旁路bin。
[0127]
上下文编码的bin可以指示高数据依赖性,因为它在处理先前的bin的同时使用更新的概率状态和范围。也就是说,由于上下文编码的bin可以在执行当前bin的所有编码/解码之后执行下一个bin的编码/解码,因此可能难以并行处理。此外,读取概率间隔并确定当前状态可能会花费大量时间。因此,在实施方式中,可以提出通过减少上下文编码的bin的数量并增加旁路bin的数量来提高cabac吞吐量的方法。
[0128]
在实施方式中,可以以反向扫描顺序对系数水平信息进行编码。也就是说,可以从单元块的右下角的系数开始,沿左上方向对其进行扫描、然后进行编码。在示例中,在反向扫描顺序中首先被扫描的系数水平(level)可以指示较小的值。发信号通知首先扫描的系数的par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag可以减少用于指示系数水平的二值化bin的长度,并且可以使用预定上下文基于先前编码的上下文通过算术编码来高效地编码每个语法元素。
[0129]
然而,在某些系数水平(即,位于单元块的左上角的系数水平)具有较大值的情况下,发信号通知par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag可能对于提高压缩性能没有帮助。使用par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag可能会相反降低编码效率。
[0130]
在一个实施方式中,通过快速将编码为上下文编码的bin的语法元素(par_level_flag、rem_abs_gt1_flag、rem_abs_gt2_flag)切换为使用旁路编码引擎编码(即,编码为旁路bin)的abs_remainder语法元素,可以减少上下文编码的bin的数量。
[0131]
也就是说,根据本公开的实施方式,可以限制上下文编码的bin的数量,并且当一个子块内的根据(反向)扫描顺序编码的上下文编码的bin的数量达到限制值时,则可以跳过针对(当前)量化变换系数的sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和/或rem_abs_gt2_flag中的至少一个的上下文编码。在这种情况下,在跳过上下文编码的语法元素中处理的量化变换系数的值可以被包括在abs_remainder语法元素中,并且基于旁路进行编码。通过这样,可以提高残差编码中的吞吐量。在本公开中,可以以变换单元(tu)或变换块(tb)内的子块为单位来限制上下文编码的bin的数量,或者以包括子块的变换块(tb)或变换单元(tu)为单位来限制上下文编码的bin的数量。
[0132]
在实施方式中,可以限制用rem_abs_gt2_flag编码的系数的数量。在4
×
4块中显
式编码的rem_abs_gt2_flag的最大数量可以是16。也就是说,可以针对绝对值大于2的所有系数来编码rem_abs_gt2_flag,根据实施方式,可以仅对于根据扫描顺序的绝对值大于2的前n个系数(即,具有rem_abs_gt1_flag等于1的系数),来编码rem_abs_gt2_flag。n可以由编码设备选择或者可以设置为从0到16的任意值。表4示出了当n为1时上述实施方式的示例。根据实施方式,在4
×
4块中,可以将rem_abs_gt2_flag的编码数量减少下面的表4中用x指示的数量,因此可以减少上下文编码的bin的数量。当与表3进行比较时,可以如下表4所示改变未执行rem_abs_gt2_flag的编码的扫描位置的系数的abs_remainder的值。
[0133]
[表4]
[0134]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag
ꢀꢀꢀꢀ
00 1 0101101rem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 1011111rem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 xxxxxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
00123ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0135]
在实施方式中,可以限制用rem_abs_gt1_flag编码的系数的数量。在4
×
4块中显式编码的rem_abs_gt2_flag的数量可以高达16。也就是说,可以针对绝对值大于0的所有系数对rem_abs_gt1_flag进行编码,根据一个实施方式,针对根据扫描顺序的绝对值大于0的前m个系数(即,sig_coeff_flag等于1的系数),可以对rem_abs_gt1_flag进行编码。m可以由编码设备选择或者可以被设置为从0到16的任意值。表5示出了当m为4时的上述实施方式的示例。如果未对rem_abs_gt1_flag进行编码,则也不对rem_abs_gt2_flag进行编码,因此根据实施方式,可以将rem_abs_gt1_flag和rem_abs_gt2_flag的编码的数量减少4
×
4块中由x指示的数量,因此可以减少上下文编码的bin的数量。当与表3进行比较时,如以下表6所示,可以改变未执行rem_abs_gt1_flag的编码的扫描位置的系数的rem_abs_gt2_flag和abs_remainder的值。表6示出了当m为8时实施方式的适用示例。
[0136]
[表5]
[0137]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag
ꢀꢀꢀꢀ
00 1 0101101rem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 1xxxxxxrem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 xxxxxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
011234ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0138]
[表6]
[0139]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag0010101101rem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 10111xxrem_abs_gt2_flag 0 001xxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
034
ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0140]
在一个实施方式中,可以组合分别限制rem_abs_gt1_flag和rem_abs_gt2_flag的数量的上述实施方式。指示关于rem_abs_gt1_flag的数量的限制的m和指示关于rem_abs_gt2_flag的数量的限制的n二者都可以具有从0到16的值,但是n可以与m相同或小于m。表7示出了当m为8并且n为1的本实施方式的示例。由于在用x标记的位置处未执行对应语法元素的编码,因此可以减少上下文编码的bin的数量。
[0141]
[表7]
[0142]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag
ꢀꢀꢀꢀ
00 1 0101101rem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 10111xxrem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 xxxxxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
00134ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0143]
在实施方式中,可以限制用par_level_flag编码的系数的数量。4
×
4块中显式编码的par_level_flags的数量的最大值可以为16。也就是说,可以对绝对值大于0的所有系数进行par_level_flag的编码。在一个实施方式中,可以仅针对根据扫描顺序的绝对值大于0的前l个系数(即,sig_coeff_flag等于1的系数)来对par_level_flag进行编码。l可以由编码设备选择或者可以设置为从0到16的任意值。表8示出了当l为8时实施方式的应用示例。根据上述实施方式,par_level_flag的编码的数量可以减少在4
×
4块中用x指示的数量,因此可以减少上下文编码的bin的数量。当与表3进行比较时,可以如下表8所示改变未执行par_level_flag的编码的扫描位置的系数的rem_abs_gt1_flag、rem_abs_gt2_flag和abs_remainder的值。
[0144]
[表8]
[0145]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag
ꢀꢀꢀꢀ
00 1 01011xxrem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 1011111rem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 00111abs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
047ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0146]
在一个实施方式中,可以组合各自限制par_level_flag和rem_abs_gt2_flag的数量的上述实施方式。指示关于par_level_flag的数量的限制的l和指示关于rem_abs_gt2_flag的数量的限制的n二者都可以具有从0到16的值。表9示出了当l为8且n为1时本实施方式的应用示例。由于在用x标记的位置处未执行对应语法元素的编码,因此可以减少上下文编码的bin的数量。
[0147]
[表9]
[0148]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag
ꢀꢀꢀꢀ
00 1 01011xx
rem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 1011111rem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 xxxxxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
00158ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0149]
在一个实施方式中,可以组合各自限制par_level_flag和rem_abs_gt1_flag的数量的上述实施方式。指示关于par_level_flag的数量的限制的l和指示关于rem_abs_gt1_flag的数量的限制的m二者都可以具有从0到16的值。表10示出了当l为8且m为8时的本实施方式的应用示例。由于在用x标记的位置处未执行对应语法元素的编码,因此可以减少上下文编码的bin的数量。
[0150]
[表10]
[0151]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag
ꢀꢀꢀꢀ
00 1 01011xxrem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 10111xxrem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 001xxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
069ceoff_sign_flag010 0110010
[0152]
在一个实施方式中,可以组合各自限制par_level_flag、em_abs_gt1_flag和rem_abs_gt2_flag的数量的上述实施方式。指示关于par_level_flag的数量限制的l、指示关于rem_abs_gt1_flag的数量限制的m、以及指示关于rem_abs_gt2_flag的数量限制的n都可以具有从0到16的值,但是n可以与m相同或小于m。表11示出当l为8、m为8且n为1时本实施方式的应用示例。由于在用x标记的位置处未执行对应语法元素的编码,因此可以减少上下文编码的bin的数量。
[0153]
[表11]
[0154]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111par_level_flag 00 1 01011xxrem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 10111xxrem_abs_gt2_flag 0xxxxxabs_remainder00169ceoff_sign_flag0100110010
[0155]
在一个实施方式中,可以提出限制sig_coeff_flag、par_level_flag和rem_abs_gt1_flag的数量之和的方法。假设sig_coeff_flag、par_level_flag和rem_abs_gtl_flag的数量之和被限制为k,则k可以具有从0到48的值。在本实施方式中,当sig_coeff_flag、par_level_flag和rem_abs_gt1_flag的数量之和超过k时,sig_coeff_flag、par_level_flag和rem_abs_gt1_flag未被编码,并且rem_abs_gt2_flag也可以不编码。表12示出了将k限制为30的情况。
[0156]
[表12]
[0157]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag00001101011111xx
par_level_flag
ꢀꢀꢀꢀ
00 1 01011xxrem_abs_gt1_flag
ꢀꢀꢀꢀ
00 0 10111xxrem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0 001xxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0710ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0158]
在实施方式中,可以将限制sig_coeff_flag、par_level_flag和rem_abs_gt1_flag的数量之和的方法与上述限制rem_abs_gt2_flag的数量的方法组合。假设sig_coeff_flag、par_level_flag和rem_abs_gtl_flag的数量之和被限制为k,并且rem_abs_gt2_flag的数量被限制为n,则k的值可以从0到48,并且n的值可以从0到16。表13示出了将k限制为30并且将n限制为2的情况。
[0159]
[表13]
[0160]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag00001101011111xxpar_level_flag00101011xxrem_abs_gt1_flag
ꢀꢀ
00 0 10111xxrem_abs_gt2_flag
ꢀꢀꢀꢀ
00xxxxabs_remainder
ꢀꢀꢀ
01710ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0161]
在实施方式中,可以按照par_level_flag和rem_abs_gt1_flag的顺序执行编码,但是在本实施方式中,可以通过改变编码顺序按照rem_abs_gt1_flag和par_level_flag的顺序执行编码。如果以此方式改变par_level_flag和rem_abs_gt1_flag的编码顺序,则在对sig_coeff_flag进行编码之后对rem_abs_gt1_flag进行编码,并且仅当rem_abs_gt1_flag为l时才可以对par_level_flag进行编码。因此,实际变换系数值coeff与每个语法元素之间的关系可以如以下式5所示进行改变。下面的表14示出了其中par_level_flag和rem_abs_gt__flag的编码顺序被改变的情况的示例。与表2相比,在下面的表14中,当|coeff|为1时,par_level_flag不被编码,因此可以存在吞吐量和编码方面的优势。当然,在表14中,当|coeff|为2时,与表2不同,应该对rem_abs_gt2_flag进行编码,并且与表2不同,当|coeff|为4时应该对abs_remainder进行编码。但是,因为|coeff|等于1可以比|coeff|等于2或4更频繁地出现,所以与表2相比,当根据表14时可以表现出更高的吞吐量和编码性能。可以在下表15中示出图5的4
×
4子块的编码的结果。
[0162]
[式5]
[0163]
|coeff|=sig_coeff_flag+rem_abs_gt1_flag+par_level_flag+2*(rem_abs_gt2_flag+abs_remainder)
[0164]
[表14]
[0165]
|coeff|sig_coeff_flagrem_abs_gt1_flagpar_level_flagrem_abs_gt2_flagabs_remainder00
ꢀꢀꢀꢀ
110
ꢀꢀꢀ
21100 31110 411010511110
61101171111181101291111210110131111113
………………
[0166]
[表15]
[0167]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111rem_abs_gt1_flag
ꢀꢀ
0011111111par_level_flag
ꢀꢀꢀꢀꢀꢀꢀ
0 1010010rem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀ
0 0001111abs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0113ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0168]
在一个实施方式中,改变了par_level_flag和rem_abs_gt1_flag的编码顺序,因此当按照sig_coeff_flag、rem_abs_gt1_flag、par_level_flag、rem_abs_gt2_flag、abs_remainder、coeff_sign_flag的顺序执行编码时,可以提出限制coeff_sign_flag、rem_abs_gt1_flag和par_level_flag的数量之和的方法。也就是说,在本实施方式中,通过改变编码顺序,可以按照rem_abs_gt1_flag和par_level_flag的顺序执行编码,并且当sig_coeff_flag、rem_abs_gt1_flag和par_level_flag的数量之和被限制为k时,k可以具有从0到48的值。在本实施方式中,当不再对sig_coeff_flag、rem_abs_gt1_flag和par_level_flag进行编码时,也可以不对rem_abs_gt2_flag进行编码。表16示出了将k限制为25的情况。
[0169]
[表16]
[0170]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111xxxrem_abs_gt1_flag
ꢀꢀꢀꢀ
00 1 1111xxxpar_level_flag
ꢀꢀꢀꢀꢀꢀ
01010xxxrem_abs_gt2_flag
ꢀꢀꢀꢀꢀ
00001xxxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
06710ceoff_sign_flag
ꢀꢀꢀꢀ
01 00110010
[0171]
在实施方式中,sig_coeff_flag、rem_abs_gt1_flag和par_level_flag可以以一种“for循环”以(残差)语法进行编码。即使三个语法元素(sig_coeff_flag、rem_abs_gt1_flag和par_level_flag)的数量之和不超过k并且三个语法元素之和不刚好为k,也可以在相同的扫描位置处停止编码。下表17示出了在k被限制为27的情况。在编码被执行到扫描位置3时,sig_coeff_flag、rem_abs_gt1_flag和par_level_flag的数量之和为25。虽然它是不超过k的值,但是因为编码设备此时不知道scan_pos 2的系数水平的值,所以不知道scan_pos 2中的上下文编码的bin的数量将是1到3中的哪个值。因此,编码设备可以对编码直至scan_pos 3并终止编码。尽管k值不同,但是在表16和下表17中,编码结果可以相同。
[0172]
[表17]
[0173]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111xxxrem_abs_gt1_flag0011111xxxpar_level_flag
ꢀꢀꢀꢀꢀꢀ
01010xxxrem_abs_gt2_flag 00001xxxabs_remainder 06710ceoff_sign_flag0100110010
[0174]
在一个实施方式中,可以提出改变par_level_flag和remabs_gt1_flag的编码顺序并限制rem_abs_gt2_flag的数量的方法。也就是说,按照sig_coeff_flag、rem_abs_gt1_flag、par_level_flag、rem_abs_gt2_flag、abs_remainder、coeff_sign_flag的顺序执行编码,并且可以限制用rem_abs_gt2_flag编码的系数的数量。
[0175]
在4
×
4块中显式编码的rem_abs_gt2_flag的最大数量为16。也就是说,可以对绝对值大于2的所有系数进行rem_abs_gt2_flag的编码。相反,在本实施方式中,可以仅针对根据扫描顺序的绝对值等于或大于2的前n个系数(即,rem_abs_gt1_flag等于1的系数)来对rem_abs_gt2_flag进行编码。n可以由编码设备选择,或者可以设置为从0到16的任意值。下面的表18示出了当n为2时本实施方式的应用示例。在4
×
4块中,对rem_abs_gt2_flag的编码的数量可以减少用x指示的数量,因此可以减少上下文编码的bin的数量。与表15相比,如下表18所示可以改变未对rem_abs_gt2_flag执行编码的扫描位置的系数abs_remainder的值。
[0176]
[表18]
[0177]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111111rem_abs_gt1_flag
ꢀꢀꢀꢀ
00 1 1111111par_level_flag
ꢀꢀꢀꢀꢀꢀꢀ
0 1010010rem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀꢀ
0 0xxxxxxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
001224ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0178]
在实施方式中,可以提出改变par_level_flag和rem_abs_gt1_flag的编码顺序,并分别限制sig_coeff_flag、rem_abs_gt1_flag和par_level_flag的数量之和以及rem_abs_gt2_flag的数量的方法。在一个示例中,当以sig_coeff_flag、rem_abs_gt1_flag、par_level_flag、rem_abs_gt2_flag、abs_remainder、coeff_sign_flag的顺序执行编码时,可以组合上述限制sig_coeff_flag、rem_abs_gt1和par_level_flag的数量之和的方法以及限制rem_abs_gt2_flag的数量的方法。假设sig_coeff_flag、rem_abs_gt1_flag和par_level_flag的数量之和被限制为k,并且rem_abs_gt2_flag的数量被限制为n,则k的值可以从0到48,n的值可以从0到16。表19示出了将k限制为25并且将n限制为2的情况。
[0179]
[表19]
[0180]
scan_pos1514131211109876543210coefficients00001-10203-2-346-710sig_coeff_flag0000110101111xxxrem_abs_gt1_flag 00 1 1111xxxpar_level_flag0 1010xxx
rem_abs_gt2_flag
ꢀꢀꢀꢀꢀꢀ
0 0xxxxxxabs_remainder
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
0016710ceoff_sign_flag
ꢀꢀꢀꢀ
01 0 0110010
[0181]
在下文中,提出了以变换块为单位来控制上下文编码的bin的数量的方法。
[0182]
可以以4
×
4或2
×
2子块为单位对变换块中的变换系数信息进行编码。在本实施方式中,不是以子块为单位而是以变换块为单位来控制上下文编码的bin的数量。如上所述,上下文编码的语法元素可以包括所述sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和/或rem_abs_gt2_flag中的至少一个。另外,在下文中,上下文编码的bin可以指示针对所述sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和/或rem_abs_gt2_flag中的至少一个的上下文编码的bin。
[0183]
图6是例示出根据本公开的示例的残差编码方法的控制流程图。
[0184]
在图6中,numsblkregbin可以是指控制可以在一个子块中使用的上下文编码的bin的最大数量的阈值。因此,numsblkregbin可以具有从0到(子块中包括的像素的数量
×
在上下文编码的bin中编码的语法元素的数量)的值,并且在本实施方式中不限于特定值。
[0185]
例如,由numsblkregbin指示的上下文编码的bin的最大数量可以限制针对所有sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag的上下文编码的bin的数量。作为另一示例,由numsblkregbin指示的上下文编码的bin的最大数量可以限制针对语法元素sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag中的一些的上下文编码的bin的数量。
[0186]
当在一个子块编码中编码的上下文编码的bin的数量小于预定的numsblkregbin时,用于下一个子块编码的numsblkregbin可以被增加以差值。这样,如果需要,可以减轻对下一个子块编码中的上下文编码的bin的数量的限制。
[0187]
根据本实施方式,与仅以子块的单位限制上下文编码的bin的数量的技术相比,由于反映了每个子块中的变换系数的特性并且可以将可变的numsblkregbin应用于每个子块,因此上下文编码的bin的数量可以受到更多限制,并且编码性能可以不显著下降。
[0188]
也就是说,根据本实施方式,上下文编码的bin的最大数量被限制为阈值,但是在具有值为零的许多(量化)变换系数的块(例如,右子块或下子块)中保存的上下文编码的bin的数量可以反映在下一个子块中。因此,可以在位于左上和左上附近(低频区域)的子块中执行相对大数量的上下文编码。
[0189]
通过这样,可以保持在整个变换块中执行的上下文编码的数量,并且在自适应地提高变换块的低频区域中的编码增益的同时提高总体吞吐量。
[0190]
numsblkregbin在整个编码中可以具有相同的值,或者可以根据变换块的大小而具有各种值。此外,numsblkregbin可以由编码设备确定并且发信号通知给解码设备。另外,当应用用于以子块为单位限制上下文编码的bin的数量的技术时,numsblkregbin的数量可以被限制为等于或小于由该技术限制的上下文编码的bin的数量的限制值。
[0191]
参照图6,根据本实施方式的控制方法总结如下。
[0192]
首先,设置可以在一个子块中使用的上下文编码的bin的最大数量(numsblkregbin)(s600)。
[0193]
然后,编码器加载第一子块,即,第一子块数据(s610),并且基于numsblkregbin对子块进行编码(s620)。
[0194]
此后,通过从numsblkregbin中减去编码的上下文编码的bin的数量而获得的值被更新至用于下一个子块的numsblkregbin(s630)。
[0195]
以这种方式,可以在某个编码方向上对变换块中的所有子块进行编码。
[0196]
如果下一个子块不是最后子块(s640),则下一个子块的数据被上载(s650),并且可以基于numsblkregbin对上载的子块进行编码。
[0197]
图7是示出根据实施方式的编码设备的操作的流程图,并且图8是示出根据实施方式的编码设备的配置的框图。
[0198]
根据图7和图8的编码设备可以执行与根据图9和图10的解码设备的操作对应的操作。因此,稍后将在图9和10中描述的解码设备的操作可以类似地应用于根据图7和图8的编码设备。
[0199]
在图7中公开的每个步骤可以由图2中公开的编码设备200来执行。更具体地,s700可以由图2中公开的减法器231来执行,s710可以由图2中公开的量化器233来执行,并且s720可以由图2中公开的熵编码器240执行。此外,根据s700至s720的操作是基于以上在图4至图6中描述的内容中的一些。因此,对于与上述图2和图4至图6中所述的内容重复的特定内容的说明将在下文中省略或简要说明。
[0200]
如图8所示,根据实施方式的编码设备可以包括减法器231、变换器232、量化器233和熵编码器240。然而,在一些情况下,图8所示的所有组件对编码设备而言可能不是必需的,并且编码设备可以由比图8所示的组件更多或更少的组件来实现。
[0201]
在根据实施方式的编码设备中,减法器231、变换器232、量化器233和熵编码器240中的每一个可以由单独的芯片来实施,或者至少两个或更多个组件可以通过一个芯片来实施。
[0202]
根据实施方式的编码设备可以推导当前块的残差样本(s700)。更具体地,编码设备的减法器231可以推导当前块的残差样本。
[0203]
根据实施方式的编码设备可以基于当前块的残差样本来推导量化变换系数(s710)。更具体地,编码设备的量化器233可以基于当前块的残差样本来推导量化变换系数。
[0204]
根据实施方式的编码设备可以对包括关于量化变换系数的信息的残差信息进行编码(s720)。更具体地,编码设备的熵编码器240可以对包括关于量化变换系数的信息的残差信息进行编码。
[0205]
在一个实施方式中,残差信息可以包括针对量化变换系数的变换系数水平的奇偶性的奇偶性水平标志和与变换系数水平是否大于阈值的有关的第一变换系数水平标志。在一个示例中,奇偶性水平标志可以指示par_level_flag,第一变换系数水平标志可以指示rem_abs_gt1_flag或abs_level_gtx_flag[n][0],并且第二变换系数水平标志可以指示rem_abs_gt2_flag或abs_level_gtx_flag[n][1]。
[0206]
在实施方式中,对残差信息进行编码包括:基于量化变换系数来推导奇偶性水平标志的值和第一变换系数水平标志的值,并且对第一变换系数水平标志进行编码并对奇偶性水平标志进行编码。
[0207]
在实施方式中,可以在对奇偶性水平标志进行编码之前执行对第一变换系数水平标志的编码。例如,编码设备可以在对par_level_flag进行编码之前对rem_abs_gt1_flag
或abs_level_gtx_flag[n][0]执行编码。
[0208]
在实施方式中,残差信息可以进一步包括:有效系数标志,其指示量化变换系数是否为非零有效系数;以及第二变换系数水平标志,其与量化变换系数的变换系数水平是否大于第二阈值有关。在一个示例中,有效系数标志可以指示sig_coeff_flag。
[0209]
残差信息可以包括基于上下文编码的上下文语法元素,并且上下文语法元素可以包括有效系数标志、奇偶性水平标志、第一变换系数水平标志和第二变换系数水平标志。
[0210]
在实施方式中,推导量化变换系数可以基于上下文语法元素的预定最大值来对上下文语法元素进行基于上下文的编码。
[0211]
也就是说,包括在残差信息中的当前块内的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量和第二变换系数水平标志的数量之和可以小于或等于预定最大值。
[0212]
该最大值可以是当前块内与当前子块有关的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量和第二变换系数水平标志的数量之和的最大值。
[0213]
在实施方式中,可以以变换块为单位确定最大值。当前块可以是作为变换单元的变换块内的子块,以子块为单位执行量化变换系数的编码,并且可以基于在以子块为单位对量化变换系数进行编码时以变换块为单位确定的最大值来对残差信息当中的上下文语法元素进行编码。
[0214]
在实施方式中,可以基于当前块(或当前块内的当前子块)的大小来确定该阈值。如果当前块是变换块,则可以基于变换块的大小来确定阈值。
[0215]
根据另一实施方式,当前块可以是变换块内的子块,并且可以以子块为单位来控制阈值。例如,在对子块进行编码时,可以确定允许的阈值,并且当对上下文语法元素进行编码时,可以根据与子块对应的阈值来对上下文语法元素进行编码。
[0216]
在实施方式中,当基于由系数扫描顺序确定的第0量化变换系数至第n量化变换系数推导的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量和第二变换系数水平标志的数量之和达到预定最大值时,则针对由系数扫描顺序确定的第(n+1)量化变换系数,可以省略有效系数标志、第一变换系数水平标志、奇偶性水平标志和第二变换系数水平标志的显式信令,并且可以基于包括在残差信息中的系数水平信息的值来推导第(n+1)量化变换系数的值。
[0217]
例如,当基于由系数扫描顺序确定的第0量化变换系数(或第一量化变换系数)至第n量化变换系数(或第n量化变换系数)推导的sig_coeff_flag的数量、rem_abs_gt1_flag(或abs_level_gtx_flag[n][0])的数量、par_level_flags的数量和rem_abs_gt2_flag(或abs_level_gtx_flag[n][1])的数量之和达到预定最大值时,则针对由系数扫描顺序确定的第(n+1)量化变换系数,可以省略sig_coeff_flag、rem_abs_gt1_flag(或abs_level_gtx_flag[n][0])、par_level_flag、abs_level_gtx_flag[n][1]和rem_abs_gt2_flag(或abs_level_gtx_flag[n][1])的显式信令,并且可以基于残差信息中包括的abs_remainder或dec_abs_level的值来推导第(n+1)量化变换系数的值。
[0218]
在实施方式中,包括在残差信息中的有效系数标志、第一变换系数水平标志、奇偶性水平标志和第二变换系数水平标志可以是基于上下文编码的,并且系数水平信息可以是
基于旁路编码的。
[0219]
根据图7和图8的编码设备和编码设备的操作方法,编码设备推导当前块的残差样本(s700),基于当前块的残差样本来推导量化变换系数(s710),并且对包括关于量化变换系数的信息的残差信息进行编码(s720),其中,残差信息包括关于量化变换系数的变换系数水平的奇偶性的奇偶性水平标志,和与变换系数水平是否大于第一阈值有关的第一变换系数水平标志,并且编码残差信息包括:基于量化变换系数来推导奇偶性水平标志的值和第一变换系数水平标志的值,以及对第一变换系数水平标志进行编码,并且在对奇偶性水平标志进行编码之前执行对第一变换系数水平标志的编码。也就是说,根据本公开,通过确定(或改变)关于量化变换系数的变换系数水平的奇偶性的奇偶性水平标志以及与变换系数水平是否大于第一阈值有关的第一变换系数水平标志的解码顺序,可以提高编码效率。
[0220]
图9是示出根据示例的解码设备的操作的流程图,并且图10是示出根据示例的解码设备的配置的框图。
[0221]
图9中公开的每个步骤可以由图3中公开的解码设备300执行。更具体地,s900和s910可以由图3中公开的熵解码器310执行,s920可以由图3中公开的反量化器321和/或逆变换器322执行,并且s930可以由图3中公开的加法器340来执行。另外,根据s900至s930的操作基于以上参照图4至图6描述的内容中的一些。因此,对于与上述图3至图6中所述的内容重复的特定内容的说明将在下文中被省略或简要说明。
[0222]
如图10所示,根据实施方式的解码设备可以包括熵解码器310、反量化器321、逆变换器322和加法器340。然而,在一些情况下,图10所示的所有组件对于解码设备而言可能不是必需的,并且解码设备可以由比图10中所示的组件更多或更少的组件来实现。
[0223]
在根据实施方式的解码设备中,熵解码器310、反量化器321、逆变换器322和加法器340中的每一个可以由单独的芯片实施,或者至少两个或更多个组件可以通过单个芯片来实施。
[0224]
根据实施方式的解码设备可以接收包括残差信息的比特流(s900)。更具体地,解码设备的熵解码器310可以接收包括残差信息的比特流。
[0225]
根据实施方式的解码设备可以基于包括在比特流中的残差信息来推导当前块的量化变换系数(s910)。更具体地,解码设备的熵解码器310可以基于包括在比特流中的残差信息来推导当前块的量化变换系数。
[0226]
根据实施方式的解码设备可以基于量化变换系数来推导当前块的残差样本(s920)。更具体地,解码设备的反量化器321可以基于反量化处理从量化变换系数中推导变换系数,并且解码设备的逆变换器322可以对变换系数进行逆变换,并且推导当前块的残差样本。
[0227]
根据实施方式的解码设备可以基于当前块的残差样本来生成重构图片(s930)。更具体地,解码设备的加法器340可以基于当前块的残差样本来生成重构图片。
[0228]
在一个实施方式中,残差信息可以包括关于量化变换系数的变换系数水平的奇偶性的奇偶性水平标志和与变换系数水平是否大于第一阈值有关的第一变换系数水平标志。在一个示例中,奇偶性水平标志可以指示par_level_flag,第一变换系数水平标志可以指示rem_abs_gt1_flag或abs_level_gtx_flag[n][0],并且第二变换系数水平标志可以指示rem_abs_gt2_flag或abs_level_gtx_flag[n][1]。
[0229]
在实施方式中,推导残差信息包括:基于量化变换系数来推导奇偶性水平标志的值和第一变换系数水平标志的值,并且第一变换系数水平标志进行编码并对奇偶性水平标志进行解码。
[0230]
在实施方式中,可以在对奇偶性位标志进行解码之前执行对第一变换系数水平标志的解码。例如,解码设备可以在对par_level_flag进行解码之前,对rem_abs_gt1_flag或abs_level_gtx_flag[n][0]执行解码。
[0231]
在实施方式中,残差信息可以进一步包括:有效系数标志,其指示量化变换系数是否为非零有效系数;以及第二变换系数水平标志,其与量化变换系数的变换系数水平是否大于第二阈值有关。在一个示例中,有效系数标志可以指示sig_coeff_flag。
[0232]
残差信息可以包括基于上下文的编码的上下文语法元素,并且上下文语法元素可以包括有效系数标志、奇偶性水平标志、第一变换系数水平标志和第二变换系数水平标志。
[0233]
在实施方式中,推导量化变换系数可以基于上下文语法元素的预定最大值来对上下文语法元素进行基于上下文的解码。
[0234]
换句话说,包括在残差信息中的当前块内的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量和第二变换系数水平标志的数量之和可以小于或等于预定最大值。
[0235]
该最大值可以是与当前块内的当前子块有关的量化变换系数的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量和第二变换系数水平标志的数量之和的最大值。
[0236]
在实施方式中,可以以变换块为单位确定最大值。当前块可以是作为变换单元的变换块内的子块,可以以子块为单位执行量化变换系数的编码,并且可以基于在以子块为单位对量化变换系数进行编码时以变换块为单位确定的最大值来对残差信息当中的上下文语法元素进行解码。
[0237]
在实施方式中,可以基于当前块(或当前块内的当前子块)的大小来确定该阈值。如果当前块是变换块,则可以基于变换块的大小来确定阈值。
[0238]
根据另一实施方式,当前块可以是变换块内的子块,并且可以以子块为单位来控制阈值。例如,在解码子块时,可以确定允许的阈值,并且当解码上下文语法元素时,可以根据与子块对应的阈值来解码上下文语法元素。
[0239]
在实施方式中,当基于由系数扫描顺序确定的第0量化变换系数至第n量化变换系数推导的有效系数标志的数量、第一变换系数水平标志的数量、奇偶性水平标志的数量和第二变换系数水平标志的数量之和达到预定最大值时,则针对由系数扫描顺序确定的第(n+1)量化变换系数,可以省略有效系数标志、第一变换系数水平标志、奇偶性水平标志和第二变换系数水平标志的显式信令,并且可以基于包括在残差信息中的系数水平信息的值来推导第(n+1)量化变换系数的值。
[0240]
例如,当基于由系数扫描顺序确定的第0量化变换系数(或第一量化变换系数)至第n量化变换系数(或第n量化变换系数)推导的sig_coeff_flag的数量、rem_abs_gt1_flag(或abs_level_gtx_flag[n][0])的数量、par_level_flags的数量和rem_abs_gt2_flag(或abs_level_gtx_flag[n][1])的数量之和达到预定最大值时,则针对由系数扫描确定的第(n+1)量化变换系数,可以省略sig_coeff_flag、rem_abs_gt1_flag(或abs_level_gtx_
flag[n][0])、par_level_flag、abs_level_gtx_flag[n][1]和rem_abs_gt2_flag(或abs_level_gtx_flag[n][1])的显式信令,并且可以基于残差信息中包括的abs_remainder或dec_abs_level的值来推导第(n+1)量化变换系数的值。
[0241]
在实施方式中,包括在残差信息中的有效系数标志、第一变换系数水平标志、奇偶性水平标志和第二变换系数水平标志可以是基于上下文编码的,并且系数水平信息可以是基于旁路编码的。
[0242]
根据图9和图10所示的解码设备和解码设备的操作方法,解码设备接收包括残差信息的比特流(s900),基于包括在比特流中的残差信息来推导针对当前块的量化变换系数(s910),基于量化变换系数来推导当前块的残差样本(s920),并基于当前块的残差样本生成重构图片(s930),其中,残差信息包括关于量化变换系数的变换系数水平的奇偶性的奇偶性水平标志和与变换系数水平是否大于第一阈值有关的第一变换系数水平标志,并且推导量化变换系数包括:解码变换系数水平标志,解码奇偶性水平标志,以及基于经解码的奇偶性水平标志的值和经解码的第一变换系数水平标志的值来推导量化变换系数,并且在对奇偶性水平标志进行解码之前执行第一变换系数水平标志的解码。也就是说,根据本公开,通过确定(或改变)关于量化变换系数的变换系数的变换系数水平的奇偶性的奇偶性水平标志以及与变换系数水平是否大于第一阈值有关的第一变换系数水平标志的解码顺序,可以提高编码效率。
[0243]
虽然在上述实施方式中,基于具有一系列步骤或框图的流程图描述了方法,但是本公开不限于上述步骤或框图的顺序,并且特定步骤可以与其它步骤同时出现或以与上述顺序不同的顺序发生。此外,本领域普通技术人员可以理解,流程图中所示的步骤不是穷举性的,并且可以并入另一步骤或可以删除该流程图中的一个或更多个步骤,而不会影响本公开的范围。
[0244]
根据本公开的前述方法可以以软件形式实现,并且根据本公开的编码设备和/或解码设备可以被包括在例如电视、计算机、智能手机、机顶盒和显示设备的用于执行图像处理的设备中。
[0245]
当本公开中的实施方式以软件实现时,上述方法可以被实施为用于执行上述功能的模块(过程或功能等)。这些模块可以存储在存储器中并且可以由处理器执行。存储器可以在处理器内部或外部,并且可以以各种众所周知的方式连接到处理器。处理器可以包括专用集成电路(asic)、不同的芯片组、逻辑电路和/或数据处理器。存储器可以包括只读存储器(rom)、随机存取存储器(ram)、闪存、存储卡、存储介质和/或另一存储装置。也就是说,本公开中描述的实施方式可以在处理器、微处理器、控制器或芯片上实施和执行。例如,每个附图中所示的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实施和执行。在这种情况下,可以将用于实施方式的信息(例如,关于指令的信息)或算法存储在数字存储介质中。
[0246]
此外,应用本公开的解码设备和编码设备可以包括在多媒体广播收发器、移动通信终端、家庭影院视频装置、数字影院视频装置、监视摄像机、视频聊天装置、实时通信装置(例如,视频通信)、移动流传输装置、存储介质、便携式摄像机、视频点播(vod)服务提供装置、顶置(ott)视频装置、互联网流传输服务提供装置、三维(3d)视频装置、虚拟现实装置、增强现实(augmented reality)装置、视频电话视频装置、运输工具终端(例如,车辆(包括
自动驾驶汽车)终端、飞机终端、轮船终端等)和医疗视频装置中,并且可以用于处理视频信号或数据信号。例如,顶置(ott)视频装置可以包括游戏机、蓝光播放器、互联网访问电视、家庭影院系统、智能电话、平板pc和数字视频记录仪(dvr)等。
[0247]
另外,可以以由计算机执行的程序的形式来产生应用本公开的处理方法,并且将其存储在计算机可读记录介质中。具有根据本公开的数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括其中存储有计算机可读数据的各种存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光盘(bd)、通用串行总线(usb)、rom、prom、eprom、eeprom、ram、cd-rom、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波形式实施的介质(例如,通过互联网的传输)。另外,可以将通过编码方法生成的比特流存储在计算机可读记录介质中,或者通过有线或无线通信网络来发送所生成的比特流。
[0248]
另外,本公开的实施方式可以通过程序代码实施为计算机程序产品,并且可以通过本公开的实施方式在计算机中执行程序代码。程序代码可以存储在计算机可读载体上。
[0249]
图11表示可以应用本文档的内容流传输系统的示例。
[0250]
参照图11,应用本文档的内容流传输系统通常可以包括编码服务器、流传输服务器、web服务器、媒体储存器、用户装置和多媒体输入装置。
[0251]
编码服务器用于将从多媒体输入装置(例如,智能电话、相机和便携式摄像机等)输入的内容压缩为数字数据,以生成比特流,并将其发送到流传输服务器。作为另一示例,在多媒体输入装置(例如,智能电话、相机和便携式摄像机等)直接生成比特流的情况下,可以省略编码服务器。
[0252]
可以通过应用本文档的编码方法或比特流生成方法来生成比特流。并且,流传输服务器可以在发送或接收比特流的过程中临时存储比特流。
[0253]
流传输服务器基于用户的请求通过web服务器将多媒体数据发送到用户设备,web服务器用作通知用户存在哪些服务的工具。当用户请求用户想要的服务时,web服务器将请求传送到流传输服务器,并且流传输服务器将多媒体数据发送给用户。就此而言,内容流传输系统可以包括单独的控制服务器,并且在这种情况下,控制服务器用于控制内容流传输系统中的各个设备之间的命令/响应。
[0254]
流传输服务器可以从媒体储存器和/或编码服务器接收内容。例如,在从编码服务器接收到内容的情况下,可以实时接收内容。在这种情况下,流传输服务器可以将比特流存储预定时间段,以平稳地提供流传输服务。
[0255]
例如,用户设备可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(pda)、便携式多媒体播放器(pmp)、导航、板式pc、平板pc、超级本、可穿戴装置(例如,手表型终端(智能手表)、眼镜型终端(智能眼镜)、头戴式显示器(hmd))、数字tv、台式计算机或数字标牌等。
[0256]
内容流传输系统中的每个服务器可以作为分布式服务器来操作,并且在这种情况下,可以以分布式方式处理每个服务器接收的数据。
技术特征:
1.一种图像解码设备,所述图像解码设备包括:存储器;以及至少一个处理器,所述至少一个处理器连接至所述存储器,所述至少一个处理器被配置为:接收包括残差信息的比特流;基于所述比特流中包括的所述残差信息来推导当前块的量化变换系数;基于所述量化变换系数来推导所述当前块的残差样本;以及基于所述当前块的所述残差样本来生成重构图片,其中,所述残差信息包括基于上下文编码的上下文语法元素,其中,基于所述当前块的上下文编码的bin的最大值来对所述上下文语法元素进行解码,其中,通过变换块的单位来确定所述最大值,其中,所述上下文语法元素包括与所述量化变换系数是否为非零有效系数有关的有效系数标志、与所述量化变换系数的变换系数水平的奇偶性有关的奇偶性水平标志、与所述变换系数水平是否大于第一阈值有关的第一变换系数水平标志、以及与所述变换系数水平是否大于第二阈值有关的第二变换系数水平标志,并且其中,所述最大值是所述有效系数标志的数量、所述奇偶性水平标志的数量、所述第一变换系数水平标志的数量、以及所述第二变换系数水平标志的数量之和的最大值。2.根据权利要求1所述的图像解码设备,其中,基于所述变换块的大小来确定所述最大值。3.根据权利要求1所述的图像解码设备,其中,当基于由系数扫描顺序确定的第0量化变换系数至第n量化变换系数推导的所述有效系数标志的数量、所述第一变换系数水平标志的数量、所述奇偶性水平标志的数量、以及所述第二变换系数水平标志的数量之和达到所述最大值时,则针对由所述系数扫描顺序确定的第(n+1)量化变换系数,省略有效系数标志、第一变换系数水平标志、奇偶性水平标志、以及第二变换系数水平标志的显式信令,并且基于包括在所述残差信息中的系数水平信息的值来推导所述第(n+1)量化变换系数的值。4.根据权利要求3所述的图像解码设备,其中,包括在所述残差信息中的所述有效系数标志、所述第一变换系数水平标志、所述奇偶性水平标志、以及所述第二变换系数水平标志是基于上下文编码的,并且所述系数水平信息是基于旁路编码的。5.根据权利要求1所述的图像解码设备,其中,所述当前块是所述变换块内的子块。6.根据权利要求1所述的图像解码设备,其中,为了推导所述量化变换系数,所述至少一个处理器被配置为:对所述第一变换系数水平标志和所述奇偶性水平标志进行解码;以及基于所解码的所述奇偶性水平标志的值和所解码的所述第一变换系数水平标志的值来推导所述量化变换系数,并且其中,在所述奇偶性水平标志的解码之前,解码所述第一变换系数水平标志。7.一种图像编码设备,所述图像编码设备包括:存储器;以及
至少一个处理器,所述至少一个处理器连接至所述存储器,所述至少一个处理器被配置为:推导当前块的残差样本;基于所述当前块的所述残差样本来推导量化变换系数;以及对包括关于所述量化变换系数的信息的残差信息进行编码,其中,所述残差信息包括基于上下文编码的上下文语法元素,其中,基于所述当前块的上下文编码的bin的最大值来对所述上下文语法元素进行编码,其中,通过变换块的单位来确定所述最大值,其中,所述上下文语法元素包括与所述量化变换系数是否为非零有效系数有关的有效系数标志、与所述量化变换系数的变换系数水平的奇偶性有关的奇偶性水平标志、与所述变换系数水平是否大于第一阈值有关的第一变换系数水平标志、以及与所述变换系数水平是否大于第二阈值有关的第二变换系数水平标志,并且其中,所述最大值是所述有效系数标志的数量、所述奇偶性水平标志的数量、所述第一变换系数水平标志的数量、以及所述第二变换系数水平标志的数量之和的最大值。8.根据权利要求7所述的图像编码设备,其中,基于所述变换块的大小来确定所述最大值。9.根据权利要求7所述的图像编码设备,其中,当基于由系数扫描顺序确定的第0量化变换系数至第n量化变换系数推导的所述有效系数标志的数量、所述第一变换系数水平标志的数量、所述奇偶性水平标志的数量、以及所述第二变换系数水平标志的数量之和达到所述最大值时,则针对由所述系数扫描顺序确定的第(n+1)量化变换系数,省略有效系数标志、第一变换系数水平标志、奇偶性水平标志、以及第二变换系数水平标志的显式信令,并且基于包括在所述残差信息中的系数水平信息的值来推导所述第(n+1)量化变换系数的值。10.根据权利要求9所述的图像编码设备,包括在所述残差信息中的所述有效系数标志、所述第一变换系数水平标志、所述奇偶性水平标志和所述第二变换系数水平标志是基于上下文编码的,并且所述系数水平信息是基于旁路编码的。11.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储由图像编码设备生成的比特流,所述图像编码设备包括:存储器;以及至少一个处理器,所述至少一个处理器连接至所述存储器,所述至少一个处理器被配置为:推导当前块的残差样本;基于所述当前块的所述残差样本来推导量化变换系数;以及对包括关于所述量化变换系数的信息的残差信息进行编码,其中,所述残差信息包括基于上下文编码的上下文语法元素,其中,基于所述当前块的上下文编码的bin的最大值对所述上下文语法元素进行编码,其中,通过变换块的单位来确定所述最大值,其中,所述上下文语法元素包括与所述量化变换系数是否为非零有效系数有关的有效
系数标志、与所述量化变换系数的变换系数水平的奇偶性有关的奇偶性水平标志、与所述变换系数水平是否大于第一阈值有关的第一变换系数水平标志、以及与所述变换系数水平是否大于第二阈值有关的第二变换系数水平标志,并且其中,所述最大值是所述有效系数标志的数量、所述奇偶性水平标志的数量、所述第一变换系数水平标志的数量、以及所述第二变换系数水平标志的数量之和的最大值。12.一种用于传输图像的数据的设备,所述设备包括:至少一个处理器,所述至少一个处理器被配置为获得由图像编码方法生成的比特流;以及发送器,所述发送器被配置为传输包括所述比特流的数据,其中,所述图像编码方法包括以下操作:推导当前块的残差样本;基于所述当前块的所述残差样本来推导量化变换系数;以及对包括关于所述量化变换系数的信息的残差信息进行编码,其中,所述残差信息包括基于上下文编码的上下文语法元素,其中,基于所述当前块的上下文编码的bin的最大值对所述上下文语法元素进行编码,其中,通过变换块的单位来确定所述最大值,其中,所述上下文语法元素包括与所述量化变换系数是否为非零有效系数有关的有效系数标志、与所述量化变换系数的变换系数水平的奇偶性有关的奇偶性水平标志、与所述变换系数水平是否大于第一阈值有关的第一变换系数水平标志、以及与所述变换系数水平是否大于第二阈值有关的第二变换系数水平标志,并且其中,所述最大值是所述有效系数标志的数量、所述奇偶性水平标志的数量、所述第一变换系数水平标志的数量、以及所述第二变换系数水平标志的数量之和的最大值。
技术总结
本申请涉及图像编码/解码设备、存储介质及数据传输设备。根据本发明的图像解码设备包括:存储器;以及至少一个处理器,所述至少一个处理器连接至所述存储器,所述至少一个处理器被配置为:接收包括残差信息的比特流;基于所述比特流中包括的所述残差信息来推导当前块的量化变换系数;基于所述量化变换系数来推导所述当前块的残差样本;以及基于所述当前块的所述残差样本来生成重构图片。所述残差样本来生成重构图片。所述残差样本来生成重构图片。
技术研发人员:崔情娥 柳先美 金昇焕 崔璋元 许镇
受保护的技术使用者:LG电子株式会社
技术研发日:2019.10.04
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种中药生产用翻炒烘干设备的制作方法 下一篇:一种HLA抗原的制备方法与流程