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

图像编码/解码方法及其设备与流程

2022-07-16 16:28:07 来源:中国专利 TAG:

图像编码/解码方法及其设备
1.本技术是2019年11月14日提交的国际申请日为2018年3月13日的申请号为201880031909.x(pct/kr2018/002952)的,发明名称为“图像编码/解码方法及其设备”的专利申请的分案申请。
技术领域
2.本公开涉及静止图像或运动图像处理方法,并且更具体地,涉及用于对变换后的残差信号进行编码/解码的方法及其支持该方法的设备。


背景技术:

3.压缩编码指的是经由通信线路发送数字化信息的一系列信号处理技术,或者以适用于存储介质的形式存储信息的技术。包括图片、图像、音频等等的媒体可以是用于压缩编码的目标,并且具体地,对图片执行压缩编码的技术被称为视频图像压缩。
4.下一代视频内容被假定为具有高空间分辨率、高帧速率和场景表示的高维度的特征。为了处理这样的内容,将导致在存储器存储、存储器存取速率和处理能力方面的急剧增长。
5.因此,需要设计一种有效率地处理下一代视频内容的编译工具。


技术实现要素:

6.技术问题
7.本公开的目的是提出一种用于对变换后的残差信号进行编码/解码的方法。
8.此外,本公开的目的是提出一种用于在来自变换块的分割系数组当中配置扫描顺序以便对残差信号执行熵编译的方法。
9.此外,本公开的目的是提出一种用于在来自变换块的分割系数组中的系数中配置扫描顺序以便对残差信号执行熵编译的方法。
10.本公开的技术目的不限于上述技术目的,并且本领域的普通技术人员将从以下描述中清楚地认识到以上未提及的其他技术目的。
11.技术方案
12.在本公开的一方面,一种图像编码方法可以包括:通过对当前块的残差信号执行变换和量化来生成量化的变换块;将量化的变换块分割成多个系数组;确定表示系数组的系数当中的扫描顺序的第一扫描顺序;以及根据第一扫描顺序和表示多个系数组当中的扫描顺序的第二扫描顺序对量化的变换块的系数进行熵编码。
13.优选地,确定第一扫描顺序可以包括:基于系数组的左上系数确定系数组的各个系数当中的距离值;以及根据预定顺序将扫描索引分配给具有相同距离值的系数同时顺序地增加距离值。
14.优选地,确定系数组的各个系数当中的距离值可以包括:当系数组是非正方形块时,基于系数组的宽度和高度的比率确定表示在每个系数的水平方向上的坐标值的增加量
的水平增量和表示垂直方向上的坐标值的增加量的垂直增量,并且各个系数的距离值可以由通过求和水平增量和垂直增量而获得的值来确定。
15.优选地,当系数组的宽度大于高度时,水平增量可以被确定为1并且垂直增量可以被确定为2,并且当系数组的高度大于宽度时,可以将水平增量确定为2并且将垂直增量确定为1。
16.优选地,将量化的变换块分割成多个系数组可以包括:将量化的变换块进行分层分割,以及将分割的量化的变换块分割成具有较低深度的系数组,并且第二扫描顺序可以包括来自量化的变换块的具有各个深度的系数组当中的扫描顺序。
17.优选地,当量化变换块是非正方形块时,可以将量化变换块分割成由特定数量的系数构成的系数组,并且可以根据量化的变换块的宽度和高度的比率来确定特定数量。
18.在本公开的另一方面,一种用于解码图像的方法可以包括:将当前处理块分割成多个系数组;确定表示系数组的系数当中的扫描顺序的第一扫描顺序;对从编码器输出的比特流进行熵解码以生成量化的变换系数;以及根据第一扫描顺序和表示多个系数组当中的扫描顺序的第二扫描顺序排列量化变换块的系数以生成当前处理块的量化变换块。
19.在本公开的另一方面中,确定第一扫描顺序的步骤可以包括:基于系数组的左上系数来确定系数组的各个系数当中的距离值;以及根据预定的顺序将扫描索引分配给具有相同的距离值的系数同时顺序地增加距离值。
20.优选地,确定系数组的各个系数当中的距离值可以包括:当系数组是非正方形块时,基于系数组的宽度和高度的比率确定表示每个系数的水平方向上的坐标值的增加量的水平增量和表示垂直方向上的坐标值的增加量的垂直增量,并且可以由通过求和水平增量和垂直增量而获得的值来确定各个系数的距离值。
21.优选地,当系数组的宽度大于高度时,水平增量可以被确定为1并且垂直增量可以被确定为2,并且当系数组的高度大于宽度时,可以将水平增量确定为2并且将垂直增量确定为1。
22.优选地,将当前处理块分割成多个系数组可以包括:分层地分割当前处理块;以及将分割的当前处理块分割成具有较低深度的系数组,并且第二扫描顺序可以包括来自当前处理块的具有各个深度的系数组当中的扫描顺序。
23.优选地,当当前处理块是非正方形块时,可以将当前处理块分割成由特定数量的系数构成的系数组,并且可以根据当前处理块的高度和宽度的比率来确定特定数量。
24.在本发明的又一方面,一种用于解码图像的设备可以包括:系数组分割单元,该系数组分割单元将当前处理块分割成多个系数组;和扫描顺序确定单元,该扫描顺序确定单元确定表示系数组的系数当中的扫描顺序的第一扫描顺序;变换系数生成单元,该变换系数生成单元对从编码器输出的比特流进行熵解码以生成量化的变换系数;以及变换块生成单元,该变换块生成单元根据表示第一扫描顺序和多个系数组当中的扫描顺序的第二扫描顺序来排列量化的变换块的系数以生成当前处理块的量化变换块。
25.有益效果
26.根据本公开的实施例,可以在编码静止图像或运动图像时节省残差信号的量。
27.此外,根据本公开的实施例,残差信号的量被节省以增强编码/解码效率。
28.此外,根据本公开的实施例,有效地配置变换系数的扫描顺序以减少编译变换系
数所需的数据量。
29.此外,根据本公开的实施例,通过考虑非正方形块形状来配置变换系数的扫描顺序,以减少编译变换系数所需的数据量并增强压缩性能。
30.在本公开中可获得的优点不限于上述效果,并且本领域的技术人员从以下描述中将清楚地理解其他未提及的优点。
附图说明
31.在此作为说明书的一部分而包括用于帮助理解本公开的附图提供本公开的实施例,并通过以下描述来描述本公开的技术特征。
32.图1图示作为应用本公开的实施例的编码器的示意性框图,在该编码器中执行静止图像或视频信号的编码。
33.图2图示作为应用本公开的实施例的解码器的示意性框图,在该解码器中执行静止图像或视频信号的解码。
34.图3是用于描述可以应用于本公开的编译单元的分割结构的图。
35.图4是用于描述可以应用于本公开的预测单元的图。
36.图5图示作为应用本公开的实施例的用于对残差信号进行编码的方法。
37.图6图示作为应用本公开的实施例的用于解码残差信号的方法。
38.图7是图示作为应用本公开的实施例的用于以系数组为单位扫描变换系数的方法的图。
39.图8是图示作为应用本公开的实施例的每个系数组的变换系数的扫描顺序的图。
40.图9和图10是用于描述作为应用本公开的实施例的用于确定变换块的分割结构和变换系数的扫描顺序的方法的图。
41.图11是图示作为应用本公开的实施例的表示块中的系数的位置的一个示例的图。
42.图12和图13是图示根据本公开的实施例的取决于块中的变换系数的位置的扫描顺序的图。
43.图14和图15是作为应用本公开的实施例的用于描述用于确定非正方形块的系数的扫描顺序的方法的图。
44.图16和图17是作为应用本公开的实施例的用于描述用于以超像素为单位确定非正方形块的系数的扫描顺序的方法的图。
45.图18是图示作为应用本公开的实施例的用于确定系数组的扫描顺序的方法的图。
46.图19图示根据本公开的实施例的用于编码图像的方法。
47.图20图示根据本公开的实施例的用于解码图像的方法。
48.图21图示根据本公开的实施例的用于解码图像的设备。
具体实施方式
49.在下文中,将参考附图描述本公开的优选实施例。下面将结合附图进行描述的描述是为了描述本公开的示例性实施例,并且旨在不描述可以实现本公开的唯一实施例。以下描述包括特定细节以便提供对本公开的完美理解。然而,应理解,对于本领域的技术人员而言,可以在没有特定细节的情况下实现本公开。
50.在某些情况下,为了防止本公开的技术概念不清楚,可以省略公知的结构或设备,或者可以以设备的结构的核心功能为中心来描绘框图。
51.此外,尽管在本公开中尽可能多地选择当前广泛使用的通用术语作为术语,但是在特定情况下使用由申请人任意选择的术语。因为在这种情况下术语的含义将在说明书的相应部分中清楚地描述,所以应理解,本公开将不会仅由仅在本公开的描述中使用的术语来简单地解释,而是应找出术语的意义。
52.可以提供以下描述中使用的特定术语以帮助理解本公开。此外,在本公开的技术概念的范围内,可以将特定术语修改为其他形式。例如,信号、数据、样本、图片、帧、块等可以在每个编译过程中被适当地替换和解释。
53.在下文中,在本公开中,“块”或“单元”可以意指其中执行诸如预测、变换和/或量化的编码/解码处理并且可以以样本(或像素)的多维阵列配置样本的单元。
[0054]“块”或“单元”可以意指亮度分量的样本的多维阵列,并且可以意指色度分量的样本的多维阵列。此外,块或单元可以被统称为亮度分量的样本的多维阵列和色度分量的样本的多维阵列。
[0055]
例如,“块”或“单元”可以被解释为包括下述的意义,即,所有编译块(cb),意指要被编码/解码的样本的阵列;编译树块(ctb),通过多个编译块组成;预测块(pb)(或者预测单元(pu)),意指应用相同预测的样本的阵列;以及变换块(tb)(或变换单元(tu)),意指应用相同变换的样本的阵列。
[0056]
此外,除非在本公开中另外提及,否则“块”或“单元”可以解释为包括在对亮度分量和/或色度分量的样本的阵列进行编码/解码的过程期间使用的语法结构的含义。在此,语法结构意指以特定顺序存在于比特流中的0个或者更多个元素的语法元素,并且语法元素意指以比特流表示的数据元素。
[0057]
例如,“块”或“单元”可以被解释为包括下述的意义,即,所有编译单元(cu),包括编译块(cb)和被用于编码编译块(cb)的语法结构;编译树单元(cu),由多个编译单元构成;预测单元(pu),包括预测块(pb)和被用于预测预测块(pb)的语法结构;以及变换单元(tu),包括变换块(tb)和被用于变换变换块(tb)的语法结构。
[0058]
此外,在本公开中,“块”或“单元”不特别限于正方形或矩形样本(像素)的阵列,并且可以意指具有三个或更多个顶点的多边形样本(或像素)的阵列。在这种情况下,“块”或“单元”可以称为多边形块或多边形单元。
[0059]
图1图示作为本公开应用于的实施例的执行静止图像或者视频信号编码的编码器的示意性框图。
[0060]
参考图1,编码器100可以包括视频分段单元110、减法器115、变换单元120、量化单元130、解量化单元140、逆变换单元150、滤波单元160、解码的图片缓冲器(dpb)单元170、预测单元180和熵编码单元190。此外,预测单元180可以包括帧间预测单元(inter-prediction unit)181和帧内预测单元(intra-prediction unit)182。
[0061]
视频分段单元110将输入给编码器100的输入视频信号(或者图片或者帧)分割为一个或多个块。
[0062]
减法器115通过从输入视频信号中减去由预测单元180(即,由帧间预测单元181或者帧内预测单元182)输出的预测信号(或者预测块)来生成残差信号(或者残差块)。生成的
残差信号(或者残差块)被发送给变换单元120。
[0063]
变换单元120通过将变换方案(例如,离散余弦变换(dct)、离散正弦变换(dst)、基于图的变换(gbt)或者卡南-洛伊夫变换(klt))应用于残差信号(或者残差块)来生成变换系数。在这种情况下,通过使用应用于残差块的预测模式和基于残差块的大小所确定的变换方案来执行变换,变换单元120可以生成变换系数。
[0064]
量化单元130量化变换系数,并且将其发送给熵编码单元190,并且熵编码单元190执行量化信号的熵编码操作,以及将其作为比特流输出。
[0065]
同时,由量化单元130输出的量化的信号可以用于生成预测信号。例如,可以通过经由解量化单元140和逆变换单元150将解量化和逆变换应用于量化信号来重建残差信号。可以通过将重建的残差信号与由帧间预测单元181或者帧内预测单元182输出的预测信号相加来生成重建的信号(或者重建的块)。
[0066]
同时,在这样的压缩过程期间,邻近块通过不同的量化参数来量化。因此,显示块边缘的伪影(artifact)可能出现。这样的现象被称为块伪影,其是用于评估图像质量的重要因素中的一个。为了减少这样的伪影,可以执行滤波过程。经由这样的滤波过程,块伪影被除去,并且当前图片的误差同时被降低,从而改善图像质量。
[0067]
滤波单元160将滤波应用于重建的信号,并且经由回放设备将其输出,或者将其发送给解码的图片缓冲器170。发送给解码的图片缓冲器170的滤波的信号可以在帧间预测单元181中用作参考图片。如上所述,可以以图片间预测模式,使用滤波的图片作为参考图片来改善编码速率以及图像质量。
[0068]
解码的图片缓冲器170可以存储滤波的图片,以便在帧间预测单元181中将其用作参考图片。
[0069]
帧间预测单元181参考重建的图片来执行时间预测和/或空间预测,以便除去时间冗余和/或空间冗余。在这种情况下,块伪影或者环形伪影可能出现,因为用于执行预测的参考图片是变换的信号,当其被预先地编码/解码时,其在块单元中经历量化或者解量化。
[0070]
这里,因为用于执行预测的参考图片是在先前时间以块为单位进行编码/解码的信号,所以可能存在块状伪像或环形伪像。
[0071]
因此,帧间预测单元181可以通过应用低通滤波器来以子像素为单位在像素之间内插信号,以解决由于这种信号的不连续性或量化引起的性能下降或增强对运动预测的预测。在此,子像素是指通过应用内插滤波器而生成的虚拟像素,并且整数像素是指存在于重建图片中的实际像素。作为内插方法,可以采用线性内插、双线性内插、维纳滤波器等。
[0072]
将内插滤波器应用于重建的图片以提高预测的精度。例如,帧间预测单元181将内插滤波器应用于整数像素以生成插值像素,并且可以通过使用由插值像素构成的内插块来执行预测。
[0073]
帧内预测单元182通过参考要进行当前编码的块附近的样本来预测当前块。帧内预测单元182可以执行以下处理以便执行帧内预测。首先,可以准备参考样本,这是生成预测信号所必需的。另外,可以通过使用准备的参考样本来生成预测信号(预测块)。此后,对预测模式进行编码。在这种情况下,可以通过参考样本填充和/或参考样本过滤来制备参考样本。因为参考样本经历预测和重建过程,所以可能存在量化误差。因此,可以针对用于帧内预测的每个预测模式执行参考样本滤波处理,以减小这种误差。
[0074]
通过帧间预测单元181或帧内预测单元182生成的预测信号(或预测块)可以用于生成重建信号(或重建块)或用于生成残差信号(或残差块)。
[0075]
图2图示作为本公开应用于的实施例的执行静止图像或者视频信号解码的解码器的示意性框图。
[0076]
参考图2,解码器200可以包括熵解码单元210、解量化单元220、逆变换单元230、加法器235、滤波单元240、解码的图片缓冲器(dpb)250和预测单元260。此外,预测单元260可以包括帧间预测单元261和帧内预测单元262。
[0077]
此外,经由解码器200输出的重建的视频信号可以经由回放设备来回放。
[0078]
解码器200可以接收由在图1中示出的编码器100输出的信号(即,比特流)。熵解码单元210对接收的信号执行熵解码操作。
[0079]
解量化单元220使用量化步长信息(quantization step size information)从熵解码的信号获得变换系数。
[0080]
逆变换单元230通过应用逆变换方案对变换系数进行逆变换来获得残差信号(或者残差块)。
[0081]
加法器235将获取的残差信号(或者残差块)添加到从预测单元260(即,帧间预测单元261或者帧内预测单元262)输出的预测信号(或者预测块),以生成重建的信号(或者重建的块)。
[0082]
滤波单元240将滤波应用于重建的信号(或者重建的块),并且将滤波的信号输出给回放设备,或者将滤波的信号发送给解码的图片缓冲器250。发送给解码的图片缓冲器250的滤波的信号可以在帧间预测单元261中用作参考图片。
[0083]
在本说明书中,在编码器100的滤波单元160、帧间预测单元181和帧内预测单元182中描述的实施例可以分别同等地应用于解码器的滤波单元240、帧间预测单元261和帧内预测单元262。
[0084]
块分割结构
[0085]
通常,基于块的图像压缩方法被在静止图像或者视频的压缩技术(例如,hevc)中使用。基于块的图像压缩方法是通过将其分割为特定块单元来处理图像的方法,并且可以降低存储器使用和计算的负载。
[0086]
图3是描述可以应用于本公开的编译单元的分割结构的图。
[0087]
编码器将单个图像(或者图片)分割为方格形式的编译树单元(ctu),并且按照光栅扫描顺序逐个地编码ctu。
[0088]
在hevc中,ctu的大小可以被确定为64
×
64、32
×
32和16
×
16中的一个。编码器可以基于输入视频信号的分辨率或者输入视频信号的特征来选择和使用ctu的大小。ctu包括用于亮度分量的编译树块(ctb)和用于与其相对应的两个色度分量的ctb。
[0089]
一个ctu可以以四叉树结构分割。也就是说,一个ctu可以被分割为每个具有正方形形式并且具有一半水平大小和一半垂直大小的四个单元,从而能够生成编译单元(cu)。四叉树结构的这样的分割可以递归地执行。也就是说,以四叉树结构从一个ctu分等级地分割cu。
[0090]
cu指的是用于输入视频信号的处理过程(例如,执行帧内/帧间预测的编译)的基本单位。cu包括用于亮度分量的编译块(cb)和用于与亮度分量相对应的两个色度分量的
cb。在hevc中,cu大小可以被确定为64
×
64、32
×
32、16
×
16和8
×
8中的一个。
[0091]
参考图3,四叉树的根节点与ctu有关。四叉树被分割,直到达到叶节点。叶节点对应于cu。
[0092]
对此进行更详细地描述。ctu对应于根节点,并且具有最小的深度(即,深度=0)值。根据输入视频信号的特征,ctu可能不能被分割。在这种情况下,ctu对应于cu。
[0093]
ctu可以以四叉树形式分割。因此,生成下节点,也就是说,深度1(深度=1)。此外,属于具有深度1的下节点并且不再分割的节点(即,叶节点)对应于cu。例如,在图3(b)中,对应于节点a、b和j的cu(a)、cu(b)和cu(j)已经从ctu分割一次,并且具有深度1。
[0094]
具有深度1的节点中的至少一个可以以四叉树形式分割。因此,生成具有深度1的下节点(即,深度=2)。此外,属于具有深度2的下节点并且不再分割的节点(即,叶节点)对应于cu。例如,在图3(b)中,对应于节点c、h和i的cu(c)、cu(h)和cu(i)已经从ctu分割两次,并且具有深度2。
[0095]
此外,具有深度2的节点中的至少一个可以以四叉树形式再次分割。因此,生成具有深度3(即,深度=3)的下节点。此外,属于具有深度3的下节点并且不再分割的节点(即,叶节点)对应于cu。例如,在图3(b)中,对应于节点d、e、f和g的cu(d)、cu(e)、cu(f)和cu(g)已经从ctu分割三次,并且具有深度3。
[0096]
在编码器中,cu的最大大小或者最小大小可以基于视频图像的特征(例如,分辨率)或者通过考虑编码速率来确定。此外,有关最大或者最小大小的信息或者能够得到该信息的信息可以被包括在比特流中。具有最大大小的cu被称为最大编译单元(lcu),并且具有最小大小的cu被称为最小编译单元(scu)。
[0097]
此外,具有树结构的cu可以以预定的最大深度信息(或者最大等级信息)分等级地分割。此外,每个分割的cu可以具有深度信息。由于深度信息表示分割计数和/或cu的程度,其可以包括有关cu大小的信息。
[0098]
由于lcu被以四叉树形状分割,所以scu的大小可以通过使用lcu的大小和最大深度信息来获得。或者,相反地,lcu的大小可以通过使用scu的大小和树的最大深度信息来获得。
[0099]
对于单个cu,表示是否相应的cu被分割的信息(例如,分割的cu标志(split_cu_flag))可以转发给解码器。这个分割的信息被包括在除了scu之外的所有cu中。例如,当表示是否分割的标志的值是“1”时,相应的cu被进一步分割为四个cu,并且当表示是否分割的标志的值是“0”时,相应的cu不再分割,并且可以执行用于相应的cu的处理过程。
[0100]
如上所述,cu是执行帧内预测或者帧间预测的编译的基本单位。hevc在预测单元(pu)中分割cu,以更加有效地编译输入视频信号。
[0101]
pu是用于生成预测块的基本单位,并且即使在单个cu中,预测块也可以以pu为单位以不同的方式生成。但是,对于属于单个cu的pu不一起使用帧内预测和帧间预测,并且属于单个cu的pu通过相同的预测方法(即,帧内预测或者帧间预测)来编译。
[0102]
pu不以四叉树结构分割,但是在单个cu中以预定的形状分割一次。这些将通过参考以下的附图来描述。
[0103]
图4是描述可以应用于本公开的预测单元的图。
[0104]
根据是使用帧内预测模式还是使用帧间预测模式作为pu所属于的cu的编译模式,
pu被不同地分割。
[0105]
图4(a)图示使用帧内预测模式时的pu,并且图4(b)图示使用帧间预测模式时的pu。
[0106]
参考图4(a),假设单个cu的大小是2n
×
2n(n=4、8、16和32),单个cu可以被分割为两种类型(即,2n
×
2n或者n
×
n)。
[0107]
在这种情况下,如果单个cu被分割为2n
×
2n形状的pu,则这指的是仅一个pu存在于单个cu中。
[0108]
同时,如果单个cu被分割为n
×
n形状的pu,则单个cu被分割为四个pu,并且对于每个pu单元生成不同的预测块。但是,只有在用于cu的亮度分量的cb的大小是最小大小(即,cu是scu的情形)时,可以执行这样的pu分割。
[0109]
参考图4(b),假设单个cu的大小是2n
×
2n(n=4、8、16和32),单个cu可以被分割为八个pu类型(即,2n
×
2n、n
×
n、2n
×
n、n
×
2n、nl
×
2n、nr
×
2n、2n
×
nu和2n
×
nd)。
[0110]
像在帧内预测中一样,只有在用于cu的亮度分量的cb的大小是最小大小(即,cu是scu的情形)时,可以执行n
×
n形状的pu分割。
[0111]
帧间预测以在水平方向上分割的2n
×
n形状和以在垂直方向上分割的n
×
2n形状来支持pu分割。
[0112]
此外,帧间预测支持nl
×
2n、nr
×
2n、2n
×
nu和2n
×
nd形状的pu分割,其是不对称运动分割(amp)。在这种情况下,“n”指的是2n的1/4值。但是,如果pu所属于的cu是最小大小的cu,则amp可以不被使用。
[0113]
为了在单个ctu中有效率地编码输入视频信号,可以经由如下的处理过程基于最小速率失真值来确定编译单元(cu)、预测单元(pu)和变换单元(tu)的最佳分割结构。例如,关于在64
×
64ctu中的最佳cu分割过程,可以经由从64
×
64大小的cu到8
×
8大小的cu的分割过程来计算速率失真成本。详细的过程如下。
[0114]
1)生成最小速率失真值的pu和tu的最佳分割结构通过对64
×
64大小的cu执行帧间/帧内预测、变换/量化、解量化/逆变换和熵编码来确定。
[0115]
2)pu和tu的最佳分割结构被确定以将64
×
64cu分割为32
×
32大小的四个cu,并且生成用于每个32
×
32cu的最小速率失真值。
[0116]
3)pu和tu的最佳分割结构被确定以进一步将32
×
32cu分割为16
×
16大小的四个cu,并且生成用于每个16
×
16cu的最小速率失真值。
[0117]
4)pu和tu的最佳分割结构被确定以进一步将16
×
16cu分割为8
×
8大小的四个cu,并且生成用于每个8
×
8cu的最小速率失真值。
[0118]
5)通过将在过程3)中获得的16
×
16cu的速率失真值与在过程4)中获得的四个8
×
8cu的速率失真值的增加比较来确定在16
×
16块中的cu的最佳分割结构。也以相同的方式对于剩余的三个16
×
16cu来执行这个过程。
[0119]
6)通过将在过程2)中获得的32
×
32cu的速率失真值与在过程5)中获得的四个16
×
16cu的速率失真值的增加比较来确定在32
×
32块中的cu的最佳分割结构。也以相同的方式对于剩余的三个32
×
32cu执行这个过程。
[0120]
7)最后,在64
×
64块中cu的最佳分割结构通过将在过程1)中获得的64
×
64cu的速率失真值与在过程6)中获得的四个32
×
32cu的速率失真值的增加比较来确定。
[0121]
在帧内预测模式中,预测模式被选择为pu单元,并且在实际的tu单元中对选择的预测模式执行预测和重建。
[0122]
tu指的是执行实际的预测和重建的基本单位。tu包括用于亮度分量的变换块(tb)和用于与亮度分量相对应的两个色度分量的tb。
[0123]
在图3的示例中,像在一个ctu被以四叉树结构分割以生成cu的示例中一样,从要编译的一个cu以四叉树结构分等级地分割tu。
[0124]
因为tu被以四叉树结构分割,所以从cu分割的tu可以被分割为更小和更低的tu。在hevc中,tu的大小可以被确定为32
×
32、16
×
16、8
×
8和4
×
4中的一个。
[0125]
返回参考图3,四叉树的根节点被假设为与cu相关。四叉树被分割,直到达到叶节点,并且叶节点对应于tu。
[0126]
对此进行更详细的描述。cu对应于根节点,并且具有最小的深度(即,深度=0)值。根据输入图像的特征,cu可能不能被分割。在这种情况下,cu对应于tu。
[0127]
cu可以以四叉树形式分割。因此,生成具有深度1(深度=1)的下节点。此外,属于具有深度1的下节点并且不再分割的节点(即,叶节点)对应于tu。例如,在图3(b)中,对应于节点a、b和j的tu(a)、tu(b)和tu(j)已经从cu分割一次,并且具有深度1。
[0128]
具有深度1的节点的至少一个可以再次以四叉树形式分割。因此,生成具有深度2(即,深度=2)的下节点。此外,属于具有深度2的下节点并且不再分割的节点(即,叶节点)对应于tu。例如,在图3(b)中,对应于节点c、h和i的tu(c)、tu(h)和tu(i)已经从cu分割两次并且具有深度2。
[0129]
此外,具有深度2的节点的至少一个可以以四叉树形式再次分割。因此,生成具有深度3(即,深度=3)的下节点。此外,属于具有深度3的下节点并且不再分割的节点(即,叶节点)对应于cu。例如,在图3(b)中,对应于节点d、e、f和g的tu(d)、tu(e)、tu(f)和tu(g)已经从cu分割三次,并且具有深度3。
[0130]
具有树结构的tu可以以预定的最大深度信息(或者最大等级信息)分等级地分割。此外,每个分割的tu可以具有深度信息。该深度信息可以包括有关tu的大小的信息,因为其指示分割数目和/或tu的程度。
[0131]
表示是否相应的tu已经相对于一个tu被分割的信息(例如,分割的tu标记“split_transform_flag”)可以传送给解码器。分割信息被包括在除了最小大小的tu之外的所有tu中。例如,如果表示是否tu已经被分割的标志的值是“1”,则相应的tu被分割为四个tu。如果表示是否tu已经被分割的标志的值是“0”,则相应的tu不再分割。
[0132]
残差信号的编码/解码
[0133]
通过帧内预测单元或帧间预测单元预测的块来区分输入图像,并且发送与预测有关的信息和用于差分的残差信号以在解码器中重建图像。将参考下面给出的附图对此进行更详细地描述。
[0134]
图5图示作为应用本公开的实施例的用于对残留信号进行编码的方法。
[0135]
参考图5,编码器(编码设备)对残差信号(或残差块)进行变换(s501)。残差信号是指与由帧内预测单元或帧间预测单元从输入图像预测的信号相区别的信号。残差信号是空间域的信号,并被变换到频域以消除信号之间的相关性,并将能量集中在低频区域。在这种情况下,编码器可以通过应用诸如dct、dst、gbt、klt等的变换技术来生成变换系数。
[0136]
编码器对变换系数进行量化(s502)。缩放和/或量化变换后的信号以便减小信号的幅度。
[0137]
编码器将变换块分割成子块(s503)。编码器可将变换块分割成具有预定恒定大小的子块(例如,具有4
×
4大小的子块)。
[0138]
编码器扫描量化的变换系数,并根据扫描顺序对系数进行编码(s504)。即,根据预定顺序对量化的变换系数进行熵编码并发送给解码器。
[0139]
这里,扫描顺序可以对应于右上对角线扫描顺序、水平扫描顺序、垂直扫描顺序等。
[0140]
编码器可以通过在最后一个有效系数(最后一个非零系数)的位置处开始,沿反方向扫描变换系数,直到达到所谓的dc系数的坐标系数(0,0)为止。在这种情况下,可以根据右上对角线扫描顺序来扫描每个子块中的量化变换系数,并且进一步地,类似地,也可以根据右上对角线扫描顺序来扫描各个子块。
[0141]
在这种情况下,可以对用于识别变换块中的最后有效系数的位置(即,列的位置和行的位置)的信息进行编码。
[0142]
解码器可以通过在编码器中反向执行处理来获取重建图像。将参考下面给出的附图对此进行更详细地描述。
[0143]
图6图示作为应用本公开的实施例的用于解码残差信号的方法。
[0144]
参考图6,解码器(解码设备)对系数进行解码(s601)。即,解码器对从编码器输出的信号(即,比特流)执行熵解码,以获取量化的变换系数。
[0145]
解码器按扫描顺序定位量化的变换系数,并对变换系数进行逆量化(s602)。即,解码器可以根据预定顺序将通过熵解码重建的各个量化的变换系数排列在残差信号阵列中。
[0146]
如上所述,扫描顺序可以对应于右上对角线扫描顺序、水平扫描顺序、垂直扫描顺序等。
[0147]
如上所述,可以通过比特流用信号发送表示根据变换块中的扫描顺序的最后有效系数(即,非零系数)的位置的信息。解码器解析以上信息,以根据变换块中的扫描顺序来导出最后有效系数(即,非零系数)的列的位置和行的位置。
[0148]
解码器可以通过在最后一个有效系数(即非零系数)的位置处开始,沿反方向扫描变换系数,直到到达所谓的dc系数的坐标(0,0)为止。在这种情况下,可以按照与右上对角线扫描顺序相反的顺序来扫描每个子块中的量化变换系数,并且此外,也可以按照与右上对角线扫描顺序相反的顺序来类似地扫描各个子块。
[0149]
解码器可以根据如上所述的扫描顺序对量化的变换系数进行逆量化。
[0150]
解码器对逆量化的变换系数进行逆变换(s603)。即,解码器可以通过应用逆变换技术来对变换系数进行逆变换并且获取残差信号。
[0151]
这样,通过熵解码重建的各个系数可以根据扫描顺序被排列在残差信号阵列中,并且可以通过逆量化和逆变换重建成空间域的残差信号。另外,重建的残差信号与预测信号组合,并且然后通过滤波过程作为重建图像输出。
[0152]
实施例1
[0153]
在本公开的实施例中,编码器/解码器可以分层地配置变换系数的扫描顺序。换句话说,编码器/解码器可以将变换块(或残差块或扫描处理块)分割成系数组,并且然后以分
割的系数组为单位执行扫描。系数组可以被称为子块、子组、子系数组等。
[0154]
编码器/解码器可以在根据扫描顺序以从变换块分割的系数组为单位扫描变换系数的同时扫描每个系数组中的变换系数。例如,系数组可以是具有4
×
4大小的块。将参照下面的图7对此进行描述。
[0155]
图7是图示作为应用本公开的实施例的用于以系数组为单位扫描变换系数的方法的图。
[0156]
参考图7,假设当前块(即,变换块)的大小是8
×
8,并且系数组被确定为4
×
4个块。在这种情况下,例如,编码器/解码器可以按照cg1 701、cg3 703、cg2 702和cg4 704的顺序扫描系数组。此外,编码器/解码器可以根据类似于系数组之间的扫描顺序的对角线扫描顺序扫描每个系数组中的系数。
[0157]
当具有图7的8
×
8的大小的当前块被表达为cg0(1)并且具有4
×
4的大小的系数组被表达为cg1(1,k),k=1,...,4(其中k表示扫描顺序)时,图7的系数组可以满足下面的等式1。
[0158]
[等式1]
[0159]
cg1(1,1)=cg 1,cg1(1,2)=cg 3,cg1(1,3)=cg 2,cg1(1,4)=cg 4
[0160]
假设扫描从图7和等式1中的与低频对应的系数(即,dc系数)开始,但是可以从实际编码/解码过程中最后扫描的系数组执行编码/解码。此外,在这种情况下,可以通过使用相同的扫描顺序来扫描系数组中的系数,并且可以从被定位在扫描顺序中最后的系数开始执行编码/解码。
[0161]
即,当执行针对变换系数的熵编译时,可以按照cg4 704、cg2702、cg3 703和cg1 701的顺序对系数组进行编码,并且在这种情况下,定位在左上端处的dc分量系数可以被最后编码。
[0162]
在本公开中,基于如等式1中那样首先扫描在左上端处的dc分量的方法来描述实施例,但是本公开不限于此,并且可以应用反向扫描顺序。即使当在实际编译过程中应用反向扫描顺序时,也可以应用本公开提出的方法。在这种情况下,可以根据正向扫描顺序通过使用将在下面描述的等式9导出反向扫描顺序。
[0163]
图8是示出作为应用本公开的实施例的每个系数组的变换系数的扫描顺序的图。
[0164]
参考图8,当前块801、系数组802、803、804和805以及每个系数组中的系数的层次关系可以表示为树结构。在这种情况下,编码器/解码器可以按照从左侧到右侧的顺序执行扫描,并且根据深度优先搜索方法执行扫描。
[0165]
具有树结构的叶节点表示当前块801中的系数的位置。每个系数的位置可以表示为由行方向索引和列方向索引构成的1
×
2行向量。
[0166]
在本公开中,系数组可以写为cgd(i0,i1,...,id)。在此,ik(k=0,1,...,d)表示对应系数组的k深度的扫描索引。此外,d表示树结构中相应系数组的深度。
[0167]
图9和图10是用于描述作为应用本公开的实施例的用于确定变换块的分割结构和变换系数的扫描顺序的方法的图。
[0168]
参考图9,假定当前处理块是具有16
×
16大小的块。在这种情况下,编码器/解码器可以递归地(或分层地)分割当前处理块(即,将当前处理块分割层深度2或更大),以便执行变换系数的扫描。当如图9(c)中所示递归地分割当前处理块时,当前处理块的分割结构可
以以图14中所图示的树形表示。
[0169]
参考图10,从左侧到右侧扫描具有树形结构的叶节点,以执行对所有变换系数的扫描。即,可以从具有树结构的叶节点的左侧到右侧确定扫描顺序。
[0170]
在本公开中,叶系数组表示包括具有图10中的树结构的叶节点(即,系数组中的变换系数)的最低深度系数组(即,图10中的深度2的系数组)。叶系数组不再被分割成具有更低深度的系数组。此外,在分割成树结构的块结构中,随着分割次数的增加,深度增加。具有较低深度的节点表示从深度值相对较大的节点,即,具有较高深度的节点,分割的节点。
[0171]
cgd(i0,i1,...,id)的扫描顺序可以如下面的等式2所示被表达。
[0172]
[等式2]
[0173]
其中h=cgd(i0,i1,...,id)的高度并且w=cgd(i0,i1,...,id)的宽度。
[0174]
参考图2,每个行向量[r
i ci](i=1,...,h
×
w)表示h
×
w块中变换系数的位置。ri表示行索引,并且ci表示列索引(1≤ri≤h,1≤ci≤w)。
[0175]
在本公开中,假定所有2d块的行索引和列索引从1开始。在等式2中,τ(cgd(i0,i1,...,id))表示相应系数组中的系数的扫描顺序。即,可以以从[r
1 c1]到[r
hxw c
hxw
]的顺序扫描相应位置处的系数。
[0176]
如上所述,因为构成等式2的τ(cgd(i0,i1,...,id))的每个行向量表示变换系数在具有h
×
w大小的块中的位置,所以将用于具有深度d的系数组cgd(i0,i1,...,id)的变换块(即,cg0(1))中的行索引偏移和列索引偏移添加到组成τ(cgd(i0,i1,...,id))的所有列向量以获取变换块中的扫描顺序。在这种情况下,可以通过使用下面的等式3来计算行索引偏移和列索引偏移。
[0177]
[等式3]
[0178][0179]
参考等式3,v
rel
(cg
d 1
(i0,i1,...,i
d 1
))表示表示当前变换块的cgd(i0,i1,...,id)的相对位置的列向量。例如,在上面的图9中,v
rel
(cg2(1,1,4))=[8 8]可以被建立并且v(cg2(1,2,2))=v(cg1(1,2)) v
rel
(cg2(1,2,2))=[12 0] [0 8]=[12 8]可以被建立。
[0180]
将向量1定义为1=[1 1
ꢀ…ꢀ
1]
t
时,可以使用下面的等式4计算cgd(i0,i1,...,id)的扫描顺序。
[0181]
[等式4]
[0182]
s(cgd(i0,i1,...,id))=τ(cgd(i0,i1,...,id)) 1
·
v(cgd(i0,i1,...,id))
[0183]
当cgd(i0,i1,...,id)是叶系数组时,可以通过使用上面的等式4来计算所有块(即,变换块)中的扫描顺序。即,所有块中的扫描顺序等于通过上述等式2计算出的系数组中的扫描顺序与通过上述等式3计算出的系数组的偏移量(即,1
·
v(cgd(i0,i1,...,id)))之和。
[0184]
当cgd(i0,i1,...,id)不是叶系数组时,可以使用下面的等式5来计算变换块中的扫描顺序。
[0185]
[等式5]
[0186]
其中n=cgd(i0,i1,...,id)中的cg数量并且d≥0
[0187]
所有块cg0(1)的扫描顺序可以表达为s(cg0(i0))。在这种情况下,s(cg0(i0))的行索引可以表示扫描索引,并且s(cg0(i0))的每个行向量可以表示所有块中的对应扫描索引的位置。
[0188]
图11是图示作为应用本公开的实施例的表示块中的系数的位置的一个示例的图。
[0189]
参考图11,可以通过使用栅格扫描顺序(即,行优先顺序和词典编纂的顺序)来表示系数在块中的位置。如图11中所图示,可以根据扫描顺序将索引值分配给各个系数的位置。另外,表示图11的系数的位置的索引值可以如下面的等式6中所示表达。
[0190]
[等式6]
[0191]
其中w=cg0(i0)的宽度并且d≥0
[0192]
当在块中的变换系数的位置中根据包括上述栅格扫描顺序的随机扫描顺序来指配表示系数位置的索引时,可以如下面的等式7所示来表达扫描顺序。
[0193]
[等式7]
[0194]
其中f:r
l
×2→rl
,l=(cg0(i0)的高度)
×
(cg0(i0)的宽度)
[0195]
当时,等式7可以总结为如等式6中所示。
[0196]
本公开中提出的扫描顺序可以通过以上等式2至7中描述的方案来描述。当通过上述方案这样描述扫描顺序时,可以由以下分量确定扫描顺序。
[0197]
1)在每个深度(即,0或更大)中对系数组进行递归分割
[0198]
2)确定分割系数组的扫描顺序
[0199]
3)确定叶系数组的变换系数的扫描顺序
[0200]
当确定分量时,可以通过使用等式2至7来确定扫描顺序。因此,本公开提出一种通过确定分量来配置适当的扫描顺序的方法。
[0201]
包括所有适用的扫描顺序矩阵的集合可以被表达,如下面的等式8所示。
[0202]
[等式8]
[0203][0204]
这里,表示集合,其中收集适用于这些块的所有扫描顺序矩阵。另外,块可以具有各种大小或形状(例如,4
×
4、4
×
8、16
×
4、16
×
16、32
×
8等)。另外,可以将通过上述等式5导出的s(cg0(i0))可以作为的元素被包括。
[0205]
在实施例中,编码器/解码器可以通过使用关于当前处理块的邻近块的信息来选择中的特定的扫描顺序,并且通过使用所选择的扫描顺序来执行扫描。关于邻近块的信息可以是例如存在于左块或上块中的非零系数的数量或最后非零系数的位置。此外,可以通过使用关于在紧接当前处理块之前编码的块的信息来确定当前处理块的扫描顺序。
[0206]
在实施例中,编码器/解码器可以根据当前处理块的大小或形状来确定(或应用)扫描顺序。例如,编码器/解码器可以将应用于具有4
×
8大小的块,并且可以将应用于具有8
×
16大小的块。
[0207]
在实施例中,编码器/解码器可以在适用于具有特定大小或形状的块的扫描顺序的集合(即,的子集)当中选择并应用特定的扫描顺序。在这种情况下,编码器可以向解码器用信号发送以序列、图片、条带、ctu、编译块或变换块(或变换单元)为单位选择的扫描顺序的索引。
[0208]
当对变换系数执行熵编码时,除了正向扫描顺序之外,还可以应用反向扫描顺序。可以通过使用下面的等式9来计算反向扫描顺序。
[0209]
[等式9]
[0210]
当cgd(i0,i1,...,id)=leaf cg时,sb(cgd(i0,i1,...,id))=τb(cgd(i0,i1,...,id)) 1
·
v(cgd(i0,i1,...,id)),否则
[0211]
,其中n=cgd(i0,i1,...,id)中的cg数量并且d≥0
[0212]
这里,p表示仅反对角分量具有1的值的置换矩阵。可以通过使用置换矩阵来导出与正向扫描顺序相反的扫描顺序。
[0213]
实施例2
[0214]
在本公开的实施例中,编码器/解码器可以基于系数组的大小或形状来确定系数组中各个系数的扫描顺序。即,编码器/解码器可以根据块的大小或形状来确定上述等式2的系数组中的系数的扫描顺序。
[0215]
图12和图13是图示根据本公开的实施例的取决于块中的变换系数的位置的扫描顺序的图。
[0216]
参考图12,编码器/解码器可以按照对角线扫描顺序以d值增加的顺序扫描系数。在此,d表示基于左上系数的对应系数的距离。编码器/解码器可以从左下侧到右上侧在具有相同d值的位置处扫描系数。
[0217]
这里,可以将d值确定为d=dx dy,并且如图12(b)中所图示,dx和dy分别表示水平增量(或水平坐标)和垂直增量(或垂直坐标)。
[0218]
如上所述,编码器/解码器可以将反向扫描顺序应用于对变换系数执行熵编译。在
这种情况下,其中d值为6的系数到其中d值为0的系数可以被扫描并且以与图12(a)中所图示的箭头方向相反的从右上侧到左下侧扫描。在本公开中,主要描述前向扫描顺序,但是在执行熵编码时,编码器/解码器可以遵循反向扫描顺序或前向扫描顺序。
[0219]
具有相同d值的位置可以对应于在频率方面具有相等相位的系数的位置。因此,编码器/解码器可以将随机顺序指配给具有相同d值的位置处的系数。例如,编码器/解码器可以以[4 1]、[3 2]、[2 3]和[1 4](每个位置由行向量表达),[1 4]、[2 3]、[3 2]和[4 1]或[2 3]、[3 2]、[1 4]和[4 1]的顺序扫描行位置,在该行位置中,图12(a)的d值是3。
[0220]
此外,编码器/解码器可以被配置成如图13中所图示从右侧到左侧扫描每条反对角线,不同于图12(a)的示例。
[0221]
下面的表1示出用于确定对角线扫描顺序的伪代码的一个示例。
[0222]
[表1]
[0223][0224]
参考表1,编码器/解码器可以通过从最左下角位置的系数到最右上角位置的系数分配扫描索引同时将d值从0增加1来确定扫描顺序。在此,sypos和sxpos表示分别表示从行索引和列索引中减去1所获得的值的参数。也就是说,假设sypos和sxpos从0开始。
[0225]
在表1中,假定从左下侧扫描由d值指定的对角线,但是可以配置代码以从右上侧扫描对角线,如图13中所描述。
[0226]
在上述表1中,“while loop”是根据相对于由d值指定的对角线的扫描顺序确定表示扫描信息的参数(或矩阵)。该参数可以是表示扫描顺序的参数(scan_order)或表示扫描位置的参数(scan_pos)。分配给块的每个位置(即,scan_order矩阵的分量)的扫描索引被存储在scan_order矩阵中。另外,在scan_pos矩阵中,每个行索引对应于扫描索引,并且块中的系数位置以行向量的形式存储在每个行中。
[0227]
当通过现有方法(例如,hevc)将扫描顺序分配给系数的位置时,当当前处理块是非正方形块时,水平或垂直频率增加率可能无法被有效反映。
[0228]
具体地,当将可分离的变换应用于非正方形块时,垂直方向的变换基向量的长度和水平方向的变换基向量的长度可以彼此不同。例如,当当前处理块是具有2n
×
n大小的块时,可以将具有2n
×
2n大小的dct应用于垂直方向,并且可以将具有n
×
n大小的dct应用于水平方向。在这种情况下,每当系数的垂直坐标增加1时,频率在高度方向上增加1/(2n)*π,而每当系数的水平坐标增加1时,频率在宽度方向上增加1/(n)*π。
[0229]
在描述本公开提出的方法时,主要描述m
×
n块是具有高度m和宽度n的块,但是本公开不限于此,并且m
×
n块可以表示宽度和高度分别为m和n的块。
[0230]
在非正方形块的情况下,当通过现有方法将扫描顺序类似地应用于系数的位置时,频率增加率可能无法有效地反映在水平方向或垂直方向上。结果,可能无法正常执行从高频分量到低频分量的扫描,并且图像的压缩性能可能下降。
[0231]
因此,本公开提出一种用于将扫描顺序分配给非正方形块中各个位置处的系数以解决该问题并有效地反映水平方向或垂直方向上的频率增加率的方法。
[0232]
甚至对于非正方形块,可以通过使用上面的图12和表1中描述的方法来获取扫描顺序。例如,当当前处理块是具有4
×
8大小的块时,高度和宽度可以分别被配置成4和8,作为函数的输入参数,并且当执行表1的函数时,相应的扫描顺序可以被获取。
[0233]
图14和图15是作为应用本公开的实施例的用于描述用于确定非正方形块的系数的扫描顺序的方法的图。
[0234]
如上所述,当将可分离变换应用于非正方形块时,垂直方向(即,行方向)的变换基向量的长度和水平方向(即,列方向)的变换基向量的长度可能会彼此不同。
[0235]
参考图14,假设当前处理块是具有4
×
8大小的块。在这种情况下,可以将4
×
4大小的dct应用于垂直方向,并且可以将8
×
8大小的dct应用于水平方向。当假设在变换系数被定位在左上端处时变换系数表示低频分量并且在变换系数被定位在右下端时变换系数表示高频分量时,在图14(a)的4x 8块的情况下,垂直方向(或高度方向)的频率增量可以是水平方向(或宽度方向)的频率增量的两倍。
[0236]
因此,取决于变换系数的位置的dx和dy可以如图14(b)所示配置。另外,编码器/解码器可以以d值以具有相同d(在这种情况下,d=dx dy)值的位置的系数的单位增加的顺序来配置扫描顺序。在反向扫描顺序的情况下,编码器/解码器可以以d值减小的顺序配置扫描顺序。
[0237]
在本公开中,扫描线可以指代在具有相同d值的位置处的系数。即,具有相同的d值的系数可以被包括在相同的扫描线中。
[0238]
可以在属于同一扫描线的系数之间分配随机扫描顺序。当从左侧到右侧扫描系数时,扫描索引可以被分配给如图14(c)中所图示的各个位置处的系数。
[0239]
参考图15,假定当前处理块是具有8
×
4大小的块。除了水平频率增量和垂直频率增量彼此不同之外,编码器/解码器可以通过与上述方法相同的方法通过配置d值来确定扫描顺序。
[0240]
下面的表2示出用于通过应用图14和图15中描述的方法来获取扫描顺序的伪代码的一个示例。
[0241]
[表2]
[0242]
[0243][0244]
参考表2,sh是表示垂直增量(即,dy)的参数,并且sw是表示水平增量(即,dx)的参数。其他参数与上表1相同。另外,向下取整(floor)函数返回最大大小等于或小于作为因子给出的数字的整数值,并且舍入(round)函数返回通过四舍五入作为因子给出的数字而获得的整数值。编码器/解码器通过使用当前处理块的宽度和高度的比率来配置sh值和sw值,并将扫描索引分配给最左下位置的系数到最右上位置的系数同时将d值从0增加1来确定扫描顺序。
[0245]
在本公开的实施例中,编码器/解码器可以以特定数量的系数为单位对系数进行分组,并且然后通过应用各种扫描顺序来扫描系数。下面参考图16对此进行描述。
[0246]
图16和图17是作为应用本公开的实施例的用于描述用于确定以超像素为单位的非正方形块的系数的扫描顺序的方法的图。
[0247]
参考图16,假设当前处理块是具有4
×
8大小的块。编码器/解码器可以以超像素为单位分割当前处理块。在此,超像素可以表示特定数量的系数(或像素)的集合,并且可以根
据当前块的宽度与高度的比率来确定特定数量。可以将超像素称为子块、子组、系数组、子系数组等。因为当前块的宽度与高度之比为2,所以通过两个像素可以构成超像素。
[0248]
编码器/解码器可以使用超像素来配置正方形块,通过使用上面的图7至图13中描述的方法来确定以超像素为单位的扫描顺序,并在超像素中根据随机顺序扫描系数。
[0249]
编码器/解码器可以按照对角线扫描顺序以超像素为单位对具有4
×
4大小的正方形块应用扫描顺序,如图16中所图示,并在每个超像素中从左侧到右侧应用扫描顺序。
[0250]
参考图17,假设当前处理块是具有8
×
4大小的块。类似地,编码器/解码器可以以超像素为单位分割当前处理块。因为高度是宽度的两倍,所以编码器/解码器可以通过在垂直方向(或高度方向)上对两个系数进行分组来配置超像素。
[0251]
下面的表3示出用于通过应用图16和17中描述的方法来获取扫描顺序的伪代码的一个示例。
[0252]
[表3]
[0253]
[0254][0255]
参考表3,splen是表示超像素的长度的参数。可以根据当前处理块的宽度和高度来确定splen。例如,当高度大于宽度时,可以将超像素确定为在垂直方向上较长的超像素,而当宽度大于高度时,可以将超像素确定为在水平方向上较长的超级像素。另外,norm_length是表示以超像素为单位配置的块(即,正方形块)的一侧的长度的参数。在上面的表3中,“while loop”中的“for-loop”将扫描索引分配给超像素中各个位置的系数。
[0256]
编码器/解码器除该扫描顺序外还可以应用各种扫描顺序。例如,编码器/解码器可以通过使用具有特定大小(例如,4
×
8、16
×
8、32
×
32等等)的块变换系数的统计获取关于在各自位置处的系数的非零系数的数量信息。另外,编码器/解码器可以基于所获取的非零系数的数量以对应数量的降序(或升序)来确定系数的扫描顺序。
[0257]
当cgd(i0,i1,...,id)的高度和宽度分别为h和w时,如上述等式2所示,编码器/解码器可以表示适用于如下面的等式10中所示的h
×
w块的扫描顺序的集合。
[0258]
[等式10]
[0259][0260]
这里,表示适用的扫描顺序的集合。另外,可以表示扫描顺序并且可以对应于上面的图7至图17中描述的扫描顺序。等式2的τ(cgd(i0,i1,...,id))满足
[0261]
实施例3
[0262]
在本公开的实施例中,提出一种用于确定系数组的扫描顺序的方法。例如,编码器/解码器可以确定针对图9(c)中构成cg1(1,1)的四个系数组的扫描顺序。
[0263]
编码器/解码器可以按照对角线扫描顺序来扫描扫描组,如图9(c)中所图示。此外,编码器/解码器可以在确定系数组之间的扫描顺序时应用上面示例1和2中描述的扫描方法,并且应用具有随机顺序的扫描顺序。
[0264]
图18是图示作为应用本公开的实施例的用于确定系数组的扫描顺序的方法的图。
[0265]
参考图18,编码器/解码器可以被配置成类似地使用系数组的扫描顺序和系数组中系数的扫描顺序,或者被配置成单独使用各个扫描顺序。
[0266]
作为一个示例,参考图18(a),编码器/解码器可以将系数组分割成具有4
×
2大小
的块,在系数组之间应用通过使用上述表2生成的扫描顺序,并且在每个系数组中应用通过使用上述表1生成的扫描顺序。
[0267]
作为另一示例,参考图18(b),编码器/解码器可以将系数组分割成具有2
×
4大小的块,并且应用与系数组之间的扫描顺序和系数组中的系数之间的扫描顺序相似的通过使用上述表2生成的扫描顺序。
[0268]
作为又一示例,参考图18(c),编码器/解码器可以将系数组分割成具有2
×
4大小的块,在系数组之间应用通过使用上述表2生成的扫描顺序,并且在每个系数组中应用通过上述表3生成的扫描顺序。
[0269]
图19图示根据本公开的实施例的用于编码图像的方法。
[0270]
编码器对当前处理块的残差信号执行变换和量化,以生成量化的变换块(s1901)。可以类似于上述图5中描述的步骤s501和s502来执行步骤s1901。
[0271]
编码器将量化的变换块分割成多个系数组(s1902)。
[0272]
如在上面的图9和图10中所描述的,编码器可以递归地(或分层地)分割当前处理块,以便扫描变换系数。例如,将量化的变换块分割成多个系数组可以包括分层地分割量化的变换块并且将量化的变换块分割成具有较低深度的系数组,并且第二扫描顺序可以包括从量化的变换块中分割的具有各个深度的系数组当中的扫描顺序。
[0273]
此外,如上面的图16和17中所描述的,编码器可以以特定数目的系数为单位对系数进行分组,并且然后通过应用各种扫描顺序来扫描系数。即,当量化变换块是非正方形块时,可以将量化变换块分割成由特定数目的系数构成的系数组,并且可以根据量化的变换块的宽度和高度的比率来确定特定数目。
[0274]
编码器确定表示系数组的系数之间的扫描顺序的第一扫描顺序(s1903)。
[0275]
编码器可以通过应用上面的图12至图18中描述的方法来确定第一扫描顺序。例如,步骤s1903可以包括:基于系数组的左上系数来确定系数组的各个系数的距离值;以及根据预定顺序将扫描索引分配给具有相同距离值的系数同时顺序地增大距离值。
[0276]
进一步,如上面的图14和15中所描述的,编码器可以将扫描顺序分配给非正方形块中各个位置处的系数,以便有效地反映水平方向或垂直方向上的频率增加率。例如,确定系数组的各个系数的距离值的步骤可以包括:基于系数组的宽度和高度的比率确定表示每个系数的水平方向上的坐标值的增加量的水平增量和表示垂直方向上的坐标值的增加量的垂直增量,并且可以通过使用通过将水平增量和垂直增量求和而获得的值来确定各个系数的距离值。
[0277]
此外,当系数组的宽度大于高度时,可以将水平增量确定为1,并且将垂直增量确定为2,并且当系数组的高度大于宽度时,可以将水平增量确定为2,并且将垂直增量确定为2。
[0278]
可以由编码器预定义(或配置)第一扫描顺序,并且编码器可以以图片、条带、ctu、编译单元或变换单元为单位将第一扫描顺序发送到解码器。
[0279]
此外,编码器可以确定表示多个系数组当中的扫描顺序的第二扫描顺序。在这种情况下,步骤s1903可以包括确定第二扫描顺序,并且编码器可以通过应用上面的图12至图18中描述的方法来确定第二扫描顺序。可以由编码器预定义(或配置)第二扫描顺序,并且编码器可以以图片、条带、ctu、编译单元或变换单元为单位将第二扫描顺序发送到解码器。
[0280]
编码器根据第一扫描顺序和表示多个系数组当中的扫描顺序的第二扫描顺序对量化的变换块的系数进行熵编码(s1904)。
[0281]
图20图示根据本公开的实施例的用于解码图像的方法。
[0282]
解码器将当前处理块分割成多个系数组(s2001)。
[0283]
如上面的图9和图10在上面所描述的,解码器可以递归地(或分层地)分割当前处理块,以便扫描变换系数。例如,将当前处理块分割成多个系数组可以包括:分层地分割当前处理块,以及将当前处理块分割成具有较低深度的系数组,并且第二扫描顺序可以包括从当前处理块中分割的具有各个深度的系数组当中的扫描顺序。
[0284]
此外,如上面的图16和图17中所描述,解码器可以以特定数目的系数为单位对系数进行分组,并且然后通过应用各种扫描顺序来扫描系数。即,当当前处理块是非正方形块时,可以将当前处理块分割成由特定数量的系数构成的系数组,并且可以根据当前的处理块的宽度和高度的比率确定特定数量。
[0285]
解码器确定表示系数组的系数之间的扫描顺序的第一扫描顺序(s2002)。
[0286]
解码器可以通过应用上面的图12至图18中描述的方法来确定第一扫描顺序。例如,步骤s2002可以包括,基于系数组的左上系数来确定系数组的各个系数的距离值;以及根据预定顺序将扫描索引分配给具有相同距离值的系数,同时顺序地增大距离值。
[0287]
此外,如上面的图14和15中所描述的,解码器可以将扫描顺序分配给非正方形块中各个位置处的系数,以便有效地反映水平方向或垂直方向上的频率增加率。例如,确定系数组的各个系数的距离值可以包括:基于系数组的宽度和高度的比率确定表示每个系数的水平方向上的坐标值的增加量的水平增量和表示垂直方向上的坐标值的增加量的垂直增量,并且可以通过使用将水平增量和垂直增量求和而获得的值来确定各个系数的距离值。
[0288]
此外,当系数组的宽度大于高度时,可以将水平增量确定为1,并且将垂直增量确定为2,并且当系数组的高度大于宽度时,将可以将水平增量确定为2,并且将垂直增量确定为2。
[0289]
第一扫描顺序可以由解码器预先定义(或配置),并且解码器可以以图片、条带、ctu、编码单元或变换单元为单位将第一扫描顺序发送到解码器。
[0290]
此外,解码器可以确定表示多个系数组当中的扫描顺序的第二扫描顺序。在这种情况下,步骤s2002可以包括确定第二扫描顺序,并且解码器可以通过应用上面的图12至图18中描述的方法来确定第二扫描顺序。第二扫描顺序可以由解码器预定义(或配置),并且可以以图片、条带、ctu、编译单元或变换单元为单位从编码器发送至解码器。
[0291]
解码器对从编码器输出的比特流进行熵解码,以生成量化的变换系数(s2003)。可以类似于上面图6中描述的步骤s601来执行步骤s2003。
[0292]
解码器根据第一扫描顺序和表示多个系数组当中的扫描顺序的第二扫描顺序排列量化变换块的系数,以生成当前处理块的量化变换块(s2004)。
[0293]
另外,解码器可以通过对量化的变换块进行解量化来获取变换块。解量化方法可以采用已知技术,并且将省略其详细描述。在根据上述实施例的图像解码方法中,可以省略或增加一些步骤,并且即使按照所描述的顺序,图像解码方法也不受限制。此外,步骤s2003和s2004可以分别执行或同时执行。
[0294]
图21图示根据本公开的实施例的用于解码图像的设备。
[0295]
在图21中,为了便于描述,将系数组分割单元2101、扫描顺序确定单元2102、变换系数生成单元2103和变换块生成单元2104图示为单独的块,但是系数组分割单元2101、扫描顺序确定单元2102、变换系数生成单元2103和变换块生成单元2104可以被实现为包括在编码器和/或解码器中的组件。
[0296]
参考图21,根据该实施例的用于解码图像的设备实现上面的图5至图20中提出的功能、过程和/或方法,并且还执行下面将描述的缩放和变换过程。具体地,解码设备可以被配置成包括系数组分割单元2101、扫描顺序确定单元2102、变换系数生成单元2103和变换块生成单元2104。
[0297]
在图21中图示的用于解码图像的设备的详细组件仅是一个示例,并且一些图示的详细组件可以被包括在另一详细组件中并且一起被实现,并且未图示的另一组件可以被添加并一起实现。
[0298]
系数组分割单元2101将当前处理块分割为多个系数组。
[0299]
如在上面的图9和图10中所描述的,系数组分割单元2101可以递归地(或分层地)分割当前处理块,以便扫描变换系数。例如,系数组分割单元2101分层地分割当前处理块以将当前处理块分割成具有较低深度的系数组,并且第二扫描顺序可以包括从当前处理块分割的具有各个深度的系数组当中的扫描顺序。
[0300]
进一步,如上面的图16和图17中所描述的,系数组分割单元2101可以以特定数目的系数为单位对系数进行分组,并且然后通过应用各种扫描顺序来扫描系数。即,当当前处理块是非正方形块时,可以将当前处理块分割成由特定数量的系数构成的系数组,并且可以根据当前处理块的宽度和高度的比率确定特定数量。
[0301]
扫描顺序确定单元2102确定表示系数组的系数之间的扫描顺序的第一扫描顺序。
[0302]
扫描顺序确定单元2102可以通过应用上面的图12至图18中描述的方法确定第一扫描顺序。例如,扫描顺序确定单元2102可以基于系数组的左上系数来确定系数组的各个系数的距离值,并且根据预定顺序将扫描索引分配给具有相同距离值的系数并且依次增加距离值。
[0303]
另外,如上面的14图15中所描述的,扫描顺序确定单元2103可以将扫描顺序分配给非正方形块中各个位置处的系数,以便有效地反映水平方向或垂直方向上的频率增加率。例如,扫描顺序确定单元2102可以基于系数组的宽度和高度的比率来确定表示每个系数的水平方向上的坐标值的增加量的水平增量和表示垂直方向上的坐标值的增加量的垂直增量,并且可以通过使用将水平增量和垂直增量相加而获得的值来确定各个系数的距离值。
[0304]
此外,当系数组的宽度大于高度时,可以将水平增量确定为1,并且将垂直增量确定为2,并且当系数组的高度大于宽度时,将可以将水平增量确定为2并且将垂直增量确定为2。
[0305]
第一扫描顺序可以由解码器预先定义(或配置),并且解码器可以以图片、条带、ctu、编译单元或变换单元为单位将第一扫描顺序发送到解码器。
[0306]
此外,扫描顺序确定单元2102可以确定表示多个系数组当中的扫描顺序的第二扫描顺序。换句话说,扫描顺序确定单元2102可以包括确定第二扫描顺序,并且扫描顺序确定单元2102可以通过应用上面的图12至图18中描述的方法来确定第二扫描顺序。此外,第二
扫描顺序可以由解码器预定义(或配置),并且可以以图片、条带、ctu、编译单元或变换单元为单位从编码器发送到解码器。
[0307]
变换系数生成单元2103对从编码器输出的比特流进行熵解码,以生成量化的变换系数。在这种情况下,可以应用与图6中描述的步骤s601相同的方法。
[0308]
变换块生成单元2104根据第一扫描顺序和表示多个系数组当中的扫描顺序的第二扫描顺序来排列量化的变换块的系数以生成当前处理块的量化的变换块。
[0309]
在上述实施例中,本公开的组件和特征以预定形式组合。除非另有明确说明,否则每个组件或特征都应视为选项。每个组件或特征可以被实现为不与其他组件或特征相关联。此外,可以通过关联一些组件和/或特征来配置本公开的实施例。本公开的实施例中描述的操作的顺序可以被改变。任何实施例的一些组件或特征可以被包括在另一实施例中,或者被与另一实施例相对应的组件和特征所代替。显而易见的是,在权利要求中未明确引用的权利要求被组合以形成实施例,或者在申请之后通过修改被包括在新的权利要求中。
[0310]
本公开的实施例可以通过硬件、固件、软件或其组合来实现。在通过硬件实现的情况下,根据硬件实现,可以通过使用一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器等来实现本文描述的示例性实施例。
[0311]
在通过固件或软件实现的情况下,本公开的实施例可以以执行上述功能或操作的模块、过程、函数等形式来实现。可以将软件代码存储在存储器中并由处理器执行。存储器可以被定位在处理器内部或外部,并且可以通过各种手段向处理器发送数据或从处理器接收数据。
[0312]
对于本领域的技术人员显而易见的是,在不脱离本公开的本质特征的情况下,本公开可以以其他特定形式来体现。因此,前述详细描述不应在所有方面解释为限制性的,而应被示例性地考虑。本公开的范围应该由所附权利要求的合理解释来确定,并且在本公开的等同范围内的所有修改都包括在本公开的范围内。
[0313]
[工业实用性]
[0314]
在上文中,出于说明的目的公开本公开的优选实施例,并且在下文中,本领域的技术人员将在随附的权利要求中公开的本公开的技术精神和技术范围内对各种其他实施例进行修改、改变、替换或添加。
再多了解一些

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

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

相关文献