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

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

2021-10-16 02:29:00 来源:中国专利 TAG:专利申请 申请 韩国 解码 在此

图像信号编码/解码方法及其设备
1.本技术是申请日为2019年11月8日的pct国际专利申请pct/kr2019/015199进入中国国家阶段的中国专利申请号201980063279.9、发明名称为“图像信号编码/解码方法及其设备”的分案申请。
2.相关申请的交叉引用
3.本技术基于申请号为10

2018

0136308、申请日为2018年11月8日的韩国专利申请提出,并要求该韩国专利申请的优先权,该韩国专利申请的全部内容在此引入本技术作为参考。
4.本技术基于申请号为10

2018

0148874、申请日为2018年11月27日的韩国专利申请提出,并要求该韩国专利申请的优先权,该韩国专利申请的全部内容在此引入本技术作为参考。
技术领域
5.本发明涉及视频信号编码/解码方法及其设备。


背景技术:

6.随着显示面板越来越大的趋势,逐渐需要画质更高的视频服务。高清视频服务的最大问题在于数据量大幅增加,为了解决这种问题,正在积极进行用于提高视频压缩率的研究。作为代表性示例,在2009 年,运动图像专家组(motion picture experts group,mpeg)和国际电信联盟

电信(internationaltelecommunication union

telecommunication,itu

t)旗下的视频编码专家组(video coding experts group, vceg)建立了视频编码联合协作团队jct

vc(joint collaborative team on video coding)。jct

vc提出了视频压缩标准hevc(高效视频编码,high efficiency video coding)并于2013年1月25日获得批准,其压缩性能约是h.264/avc的2倍。随着高清视频服务的急剧发展,hevc的性能也逐渐暴露出其局限性。


技术实现要素:

7.要解决的技术问题
8.本发明的目的在于提供一种在编码/解码视频信号时使用预测区域运动信息列表来导出合并候选的方法和用于执行所述方法的设备。
9.本发明的目的在于提供一种在编码/解码视频信号时检测在预测区域运动信息列表中包括的预测区域合并候选与在合并候选列表中包括的合并候选之间的冗余度的冗余检测方法。
10.本发明的目的在于提供一种在编码/解码视频信号时导出在合并处理区域中包括的块的合并候选的方法以及一种用于执行所述方法的设备。
11.本发明要实现的技术问题不限于以上提及的技术问题,并且本发明所属技术领域的普通技术人员将通过以下描述清楚理解未提到的其他技术问题。
12.技术方案
13.根据本发明的视频信号解码/编码方法包括以下步骤:从当前块的相邻块导出当前块的合并候选;将所导出的合并候选添加到合并候选列表;以及当已添加到所述合并候选列表的合并候选的数量小于阈值时,将在预测区域运动信息列表中包括的至少一个预测区域合并候选添加到所述合并候选列表;基于所述合并候选列表来导出所述当前块的运动信息;以及基于所导出的运动信息对所述当前块执行运动补偿。在这种情况下,可以基于所述预测区域合并候选的运动信息与在所述合并候选列表中包括的合并候选的运动信息之间的比较结果,确定是否将所述预测区域合并候选添加到所述合并候选列表。
14.在根据本发明的视频信号解码/编码方法中,可以对所述合并候选列表中的索引小于或等于阈值的至少一个合并候选执行所述比较。
15.在根据本发明的视频信号解码/编码方法中,可以对从位于所述当前块左侧的左侧相邻块导出的合并候选或从位于所述当前块上方的上方相邻块导出的合并候选中的至少一者执行所述比较。
16.在根据本发明的视频信号解码/编码方法中,当确定在所述合并候选列表中存在具有与第一预测区域合并候选相同的运动信息的合并候选时,不将所述第一预测区域合并候选添加到所述合并候选列表,并且可以基于在所述预测区域运动信息列表中包括的第二预测区域合并候选的运动信息与在所述合并候选列表中包括的合并候选的运动信息之间的比较结果,确定是否将所述第二预测区域合并候选添加到所述合并候选列表。
17.在根据本发明的视频信号解码/编码方法中,可以跳过关于所述第二预测区域合并候选的运动信息是否与具有与所述第一预测区域合并候选相同的运动信息的合并候选的运动信息相同的判定。
18.在根据本发明的视频信号解码/编码方法中,在所述预测区域合并候选中包括的预测区域合并候选的数量与所述预测区域合并候选的索引之间的差值小于或等于阈值。
19.根据本发明的视频信号解码/编码方法可以进一步包括以下步骤:将基于所述当前块的运动信息导出的当前预测区域合并候选添加到所述预测区域运动信息列表。在这种情况下,当存在与所述当前预测区域合并候选相同的预测区域合并候选时,可以删除与所述当前预测区域合并候选相同的预测区域合并候选,并且可以将最大索引分配给所述当前预测区域合并候选。
20.以上对本发明简要概述的特征仅是稍后将描述的本发明的详细说明的示例性实施方式,并不限定本发明的范围。
21.有益效果
22.根据本发明,可以通过提供一种使用预测区域运动信息列表来导出合并候选的方法来提高帧间预测效率。
23.根据本发明,可以通过简化预测区域合并候选与合并候选之间的冗余检测来提高帧间预测效率。
24.根据本发明,可以通过提供一种导出在合并处理区域中包括的块的合并候选的方法来提高帧间预测效率。
25.在本发明中可获得的效果不限于上述效果,并且本发明所属技术领域的普通技术人员将通过以下描述清楚理解未提到的其他效果。
附图说明
26.图1是本发明实施例的视频编码器(encoder)的框图。
27.图2是本发明实施例的视频解码器(decoder)的框图。
28.图3是示出本发明实施例的基本编码树单元的图。
29.图4(a)、4(b)、4(c)、4(d)、4(e)是示出编码块的多种划分类型的图。
30.图5是示出编码树单元的划分模式的图。
31.图6是本发明实施例的帧间预测方法的流程图。
32.图7是示出对象的非线性运动的图。
33.图8是展示了根据本发明实施例的基于仿射运动的帧间预测方法的流程图。
34.图9是示出每个仿射运动模型的仿射种子向量的示例的图。
35.图10是示出在4参数运动模型下的子块的仿射向量的示例的图。
36.图11是在合并模式下导出当前块的运动信息的过程的流程图。
37.图12是示出了用于导出合并候选的候选块的示例的图。
38.图13是示出了参考样本的位置的图。
39.图14是示出了用于导出合并候选的候选块的示例的图。
40.图15是示出了改变参考样本的位置的示例的图。
41.图16是示出改变参考样本的位置的示例的图。
42.图17是展示了用于更新预测区域运动信息列表的过程的流程图。
43.图18是示出了更新预测区域合并候选列表的实施例的图。
44.图19是示出了更新已存储的预测区域合并候选的索引的示例的图。
45.图20是示出了代表性子块的位置的图。
46.图21示出了针对每个帧间预测模式生成预测区域运动信息列表的示例的图。
47.图22是示出了将长期运动信息列表中包括的预测区域合并候选添加到合并候选列表的示例的图。
48.图23是示出了仅对一些合并候选执行冗余检测的示例的图。
49.图24是示出了跳过对特定合并候选的冗余检测的示例的图。
50.图25是示出了将在与当前块相同的合并处理区域中包括的候选块设置为不可用作合并候选的示例的图。
51.图26是示出了临时运动信息列表的图。
52.图27是示出了将预测区域运动信息列表和临时运动信息列表合并的示例的图。
53.图28和图29是示出了编码区域合并候选包括块的地址信息的示例的图。
54.图30和图31是示出了将具有与当前块相同的地址信息的编码区域合并候选设置为不可用作当前块的合并候选的示例的图。
具体实施方式
55.以下,参照附图详细说明本发明的实施例。
56.视频的编码及解码以块为单位来执行。例如,可以对编码块、变换块或预测块执行变换、量化、预测、环内滤波或重建等编码/解码处理。
57.以下,将要编码/解码的块称为“当前块”。例如,根据当前编码/解码处理步骤,当
前块可以表示编码块、变换块或预测块。
58.另外,本说明书中使用的术语“单元”表示用于执行特定编码/解码过程的基本单元,并且“块”可以被理解为表示预定大小的样本阵列。除非另有说明,“块”和“单元”可互换使用。例如,在稍后描述的实施例中,编码块和编码单元可被理解为具有相同的含义。
59.图1是本发明实施例的视频编码器(encoder)的框图。
60.参照图1,视频编码设备100可以包括图像划分部110、预测部120、125、变换部130、量化部135、重排部160、熵编码部165、逆量化部140、逆变换部145、滤波器部150及存储器155。
61.图1所示的各部件单独示出以便表示视频编码设备中相互不同的特征性功能,并不表示各部件由分离的硬件或单一软件组件构成。即,对于各部件而言,为了便于说明,以排列各个部件的方式使得各部件中的至少两个部件合并成一个部件或者使得一个部件划分成多个部件,并由此执行功能,只要不脱离本发明的本质,这种整合各部件的实施例及使得各部件分离的实施例也属于本发明的权利范围。
62.而且,部分结构要素并不是在本发明中执行本质功能的必要结构要素,而是仅用于提高性能的可选结构要素。本发明可以通过仅包括除了仅用于提高性能的结构要素之外的实现本发明的本质所需的部件来实施,并且仅包括除了仅用于提高性能的选择性结构要素之外的必要结构要素的结构也属于本发明的权利范围。
63.图像划分部110可以将输入的图像划分为至少一个处理单元。在这种情况下,处理单元可以是预测单元(prediction unit:pu),也可以是变换单元(transform unit:tu),还可以是编码单元(coding unit: cu)。图像划分部110将一个图像划分为多个编码单元、预测单元及变换单元的组合,可以基于预定标准 (例如,成本函数)选择一个编码单元、预测单元及变换单元组合来对图像进行编码。
64.例如,可以将一个图像划分为多个编码单元。为了将图像分割为编码单元,可以使用如四叉树结构 (quad tree structure)的递归树状结构,可以将一个视频或最大编码单元(largest coding unit)作为根(root) 而将编码单元划分为可具有相当于划分的编码单元数量的子节点的另外编码单元。根据某些限制不再被划分的编码单元将成为叶节点。即,当假设一个编码单元只能实现正方形划分时,一个编码单元可最多被划分为4个其他编码单元。
65.以下,在本发明的实施例中,编码单元可意味着执行编码的单元,还可意味着执行解码的单元。
66.可以将一个编码单元内的预测单元分割为相同大小的正方形或矩形中的至少一个等形状,也可以将一个编码单元内的一个预测单元中分割为具有与另一个预测单元不同的形状和/或大小。
67.当基于编码单元执行帧内预测的预测单元并非是最小编码单元的情况下,可以执行帧内预测,而无需分割为多个预测单元n
×
n。
68.预测部120、125可以包括执行帧间预测的帧间预测部120和执行帧内预测的帧内预测部125。可以确定对于预测单元使用帧间预测还是执行帧内预测,并基于各预测方法确定具体信息(例如,帧内预测模式、运动向量、参考图像等)。在这种情况下,执行预测的处理单元有可能与确定预测方法及具体内容的处理单元不同。例如,可以由预测单元确定预测
方法和预测模式等,并且可以由变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以输入到变换部130。并且,可以将用于预测的预测模式信息、运动向量信息等与残差值一同在熵编码部165中进行编码并传送至解码器。当使用特定的编码模式时,也可以通过直接对原始块进行编码并传送至解码器,而不通过预测部120、125生成预测块。
69.帧间预测部120可以基于当前图像的上一个图像或下一个图像中的至少一个图像的信息来预测出预测单元,在一些情况下,还可以基于当前图像内已编码的一部分区域的信息来预测出预测单元。帧间预测部120可以包括参考图像插值部、运动预测部、运动补偿部。
70.参考图像插值部从存储器155接收参考图像信息,并且可以从参考图像生成整数像素或以下的像素信息。对于亮度像素而言,为了以1/4像素单元生成整数像素以下的像素信息,可以使用滤波器系数不同的基于dct的8阶插值滤波器(dct

based interpolation filter)。对于色度信号而言,为了以1/8像素单元生成整数像素以下的像素信息,可以使用滤波器系数不同的基于dct的4阶插值滤波器(dct

basedinterpolation filter)。
71.运动预测部可以基于通过参考图像插值部进行插值的参考图像来执行运动预测。用于计算运动向量的方法可以使用全搜索块匹配算法(fbma,full search

based block matching algorithm)、三步搜索法(tss, three step search)、新三步搜索算法(nts,new three

step search algorithm)等多种方法。运动向量可以基于插值的像素来具有以1/2像素或1/4像素为单位的运动向量值。可以在运动预测部中通过采取不同的运动预测方法来预测当前预测单元。运动预测方法可以使用跳过(skip)方法、合并(merge)方法、高级运动向量预测(amvp,advanced motion vector prediction)方法、帧内块拷贝(intra block copy) 方法等多种方法。
72.帧内预测部125可以基于作为当前图像内的像素信息的当前块周边的参考像素信息来生成预测单元。在当前预测单元的相邻块是已执行帧间预测的块并且在参考像素是已执行帧间预测的像素的情况下,可以将已执行帧间预测的块中所包括的参考像素用作周边的已执行帧内预测的块的参考像素信息。即,在参考像素不可用的情况下,可以使用可用的参考像素中的至少一个参考像素来代替不可用的参考像素信息。
73.在帧内预测中,预测模式可以具有按预测方向使用参考像素信息的角度预测模式和在执行预测时不使用方向信息的非角度模式。用于预测亮度信息的模式和用于预测色度信息的模式可以不同,为了预测色度信息,可以应用用于预测亮度信息而使用的帧内预测模式信息或所预测到的亮度信号信息。
74.当执行帧内预测时,若预测单元的大小与变换单元的大小相同,则可以基于存在于预测单元的左侧的像素、存在于左上方的像素、存在于上方的像素来对预测单元执行帧内预测。但是,当执行帧内预测时,若预测单元的大小与变换单元的大小不同,则可以使用基于变换单元的参考像素来执行帧内预测。并且,可以应用仅对最小编码单元使用n
×
n划分的帧内预测。
75.帧内预测方法可以在根据预测模式来对参考像素应用自适应帧内平滑(ais,adaptive intra smoothing) 滤波器之后生成预测块。用于参考像素的自适应帧内平滑滤波器的类型可能不同。为了执行帧内预测方法,可以从存在于当前预测单元周边的预测单元的帧内预测模式预测出当前预测单元的帧内预测模式。在使用从周边预测单元预测到的
模式信息来预测当前预测单元的预测模式的情况下,若当前预测单元与周边预测单元的帧内预测模式相同,则可以使用预定的标志信息来传送表示当前预测单元与周边预测单元的预测模式相同的信息,若当前预测单元与周边预测单元的预测模式不同,则可以通过执行熵编码来对当前块的预测模式信息进行编码。
76.并且,可以生成将包括作为基于在预测部120、125中所生成的预测单元来执行预测的预测单元与预测单元的原始块之间的差值的残差值信息的残差块。可以向变换部130输入所生成的残差块。
77.在变换部130中,可以使用离散余弦变换(dct,discrete cosine transform)或离散正弦变换(dst, discrete sine transform)等的变换方法来对原始块和包括通过预测部120、125生成的预测单元之间的残差值(residual)信息的残差块进行变换。其中,dct变换核包括dct2或dct8中的至少一个,dst变换核包括dst7。可以基于为了生成残差块而使用的预测单元的帧内预测模式信息来确定要应用dct还是应用dst来变换残差块。还可以跳过对残差块的变换。可以对表示是否对于残差块的变换进行跳过的标志进行编码。对于大小在阈值以下的残差块、亮度分量或色度分量(4:4:4格式以下),可允许变换跳过。
78.量化部135可以对在变换部130中变换为频域的值进行量化。量化系数可以根据块或视频的重要性而改变。可以向逆量化部140和重排部160提供在量化部135中计算的值。
79.重排部160可以对量化的残差值执行系数值的重排。
80.重排部160可以通过系数扫描(coefficient scanning)方法来将2维的块形状系数变更为1维的向量形式。例如,重排部160可以使用z字形扫描(zig

zag scan)方法扫描dc系数乃至高频域的系数,并将其改变为1维向量形式。根据变换单元的大小及帧内预测模式,代替z字形扫描,还可以使用沿着列方向扫描2维块形状系数的垂直扫描和沿着行方向扫描2维块形状系数的水平扫描。即,可以根据变换单元的大小及帧内预测模式来确定使用z字形扫描、垂直方向扫描及水平方向扫描中的哪一种扫描方法。
81.熵编码部165可以基于通过重排部160计算出的值来执行熵编码。例如,熵编码可以使用指数哥伦布码(exponential golomb)、上下文自适应变长编码(cavlc,context

adaptive variable length coding)、上下文自适应二进制算术编码(cabac,context

adaptive binary arithmetic coding)等的多种编码方法。
82.熵编码部165可以对源自重排部160及预测部120、125的编码单元的残差值系数信息及块类型信息、预测模式信息、划分单元信息、预测单元信息及传送单元信息、运动向量信息、参考帧信息、块的插值信息、滤波信息等多种信息进行编码。
83.可以在熵编码部165对从重排部160输入的编码单元的系数值进行熵编码。
84.逆量化部140及逆变换部145对在量化部135量化的多个值进行逆量化,并对在变换部130变换的值进行逆变换。在逆量化部140及逆变换部145中生成的残差值可以通过与由预测部120、125中包括的运动预测部、运动补偿部及帧内预测部所预测的预测单元合并来生成重建块(reconstructed block)。
85.滤波器部150可以包括去块滤波器、偏移校正部、自适应环路滤波器(alf,adaptive loop filter) 中的至少一个。
86.去块滤波器可消除因块之间的边界而在重建的图像中生成的块失真。为了判断是否执行去块,能够基于块中所包括的几个列或行所包括的像素来判断是否对当前块应用去
块滤波器。在对块应用去块滤波器的情况下,可以根据所需的去块滤波强度来应用强滤器(strong filter)或弱滤器(weak filter)。并且,在使用去块滤波器的过程中,当执行垂直滤波及水平滤波时,可以同步处理水平方向滤波及垂直方向滤波。
87.偏移校正部可以按像素单位来对执行去块的视频中的与原本视频之间的偏移进行校正。为了对指定图像进行偏移校正,可以使用如下方法,即,在将视频中所包括的像素划分为预定数量的区域之后,确定要执行偏移的区域,并对相应区域应用偏移,或者将各个像素的边缘信息考虑在内来应用偏移。
88.自适应环路滤波(alf,adaptive loop filtering)可以基于对经过滤波的重建图像和原来的视频进行比较的值来执行。将视频中包括的像素划分成预定的组之后,可以通过确定要用于相应组的一个滤波器来对每个组有区别地执行滤波。与是否应用自适应环路滤波相关的信息和亮度信号可按编码单元(codingunit,cu)进行传送,所要应用的自适应环路滤波器的形状及滤波器系数可以根据各个块而不同。并且,还能够应用相同类型(固定类型)的自适应环路滤波器,而不管被应用的块的特性如何。
89.存储器155可以存储通过滤波器部150计算的重建块或图像,可以在执行帧间预测时向预测部120、 125提供所存储的重建块或图像。
90.图2是本发明实施例的视频解码器(decoder)的框图。
91.参照图2,视频解码器200可以包括熵解码部210、重排部215、逆量化部220、逆变换部225、预测部230、预测部235、滤波器部240、存储器245。
92.在从视频编码器输入视频比特流时,可以按与视频编码器相反的步骤对所输入的比特流进行解码。
93.熵解码部210可按与视频编码器的熵编码部中执行熵编码的步骤相反的步骤进行熵解码。例如,与视频编码器中执行的方法相对应地,可以应用指数哥伦布码(exponential golomb)、上下文自适应变长编码(cavlc,context

adaptive variable length coding)、上下文自适应二进制算术编码(cabac, context

adaptive binary arithmetic coding)等多种方法。
94.熵解码部210可以对与编码器执行的帧内预测及帧间预测相关的信息进行解码。
95.重排部215能够基于在编码部中对借助熵解码部210进行熵解码的比特流进行重排的方法来执行重排。可以将由1维向量形式表示的多个系数重建成2维的块形状的系数来进行重排。重排部215接收与在编码部执行的系数扫描相关的信息,可以通过基于在相应编码部执行的扫描顺序来进行逆向扫描的方法执行重排。
96.逆量化部220可以基于编码器所提供的量化参数和重排的块的系数值来执行逆量化。
97.逆变换部225可以对视频编码器执行的量化结果执行逆离散余弦变换、逆离散正弦变换,所述逆离散余弦变换、逆离散正弦变换属于在变换部执行的变换的逆变换,即对于离散余弦变换、离散正弦变换的逆变换。其中,dct变换核可以包括dct2或dct8中的至少一个,dst变换核可以包括dst7。可替代地,若在视频编码器中跳过变换,则在逆变换部225可以不执行逆变换。逆变换可以基于在视频编码器中确定的传送单元来执行。在视频解码器的逆变换部225中,可以根据预测方法、当前块的大小及预测方向等多个信息选择性地执行变换方法(例如,dct或dst)。
98.预测部230、235能够基于由熵解码部210提供的与预测块生成相关的信息和由存储器245提供的之前解码的块或图像信息来生成预测块。
99.如上所述,当以与视频编码器中的操作相同的方式执行帧内预测时,若预测单元的大小与变换单元的大小相同,则基于存在于预测单元的左侧的像素、存在于左上方的像素、存在于上方的像素来对预测单元执行帧内预测,若执行帧内预测时的预测单元的大小与变换单元的大小不同,则可以使用基于变换单元的参考像素来执行帧内预测。并且,还可以应用仅对最小编码单元使用n
×
n划分的帧内预测。
100.预测部230、235可以包括预测单元判定部、帧间预测部及帧内预测部。预测单元判定部接收从熵解码部210输入的预测单元信息、帧内预测方法的预测模式信息、帧间预测方法的运动预测相关信息等多种信息,根据当前编码单元对预测单元进行分类,可确定预测单元是在执行帧间预测还是在执行帧内预测。帧间预测部230可以使用由视频编码器提供的当前预测单元的帧间预测所需的信息,并基于当前预测单元所属的当前图像的上一个图像或下一个图像中的至少一个图像中所包括的信息来对当前预测单元执行帧间预测。可替代地,还可以基于在当前预测单元所属的当前图像内已重建的一部分区域的信息来执行帧间预测。
101.为了执行帧间预测,能够基于编码单元来判断相应编码单元中所包括的预测单元的运动预测方法是跳过模式(skip mode)、合并模式(merge mode)、高级运动向量预测模式(amvp mode)、帧内块拷贝模式中的哪种模式。
102.帧内预测部235可以基于当前图像内的像素信息来生成预测块。当预测单元为已执行帧内预测的预测单元时,能够基于由视频编码器提供的预测单元的帧内预测模式信息来执行帧内预测。帧内预测部235 可以包括自适应帧内平滑(ais,adaptive intra smoothing)滤波器、参考像素插值部、dc滤波器。自适应帧内平滑滤波器是对当前块的参考像素执行滤波的部分,并且可以根据当前预测单元的预测模式确定是否应用滤波器。可以使用由视频编码器提供的预测单元的预测模式及自适应帧内平滑滤波器信息来对当前块的参考像素执行自适应帧内平滑滤波。若当前块的预测模式为不执行自适应帧内平滑滤波的模式,则可以不应用自适应帧内平滑滤波器。
103.对于参考像素插值部而言,若预测单元的预测模式为基于对参考像素进行插值的像素值来执行帧内预测的预测单元,则可以通过对参考像素进行插值来生成整数值或以下的像素单位的参考像素。若当前预测单元的预测模式为以不对参考像素进行插值的方式生成预测块的预测模式,则可不对参考像素进行插值。若当前块的预测模式为dc模式,则dc滤波器可以通过滤波来生成预测块。
104.可以向滤波器部240提供重建的块或图像。滤波器部240可以包括去块滤波器、偏移校正部、alf。
105.可以从视频编码器接收与是否对相应块或图像应用去块滤波器相关的信息及与在应用去块滤波器时应用强滤子还是弱滤子相关的信息。从视频解码器的去块滤波器接收由视频编码器提供的与去块滤波器相关的信息,并且可以在视频解码器对相应块执行去块滤波。
106.偏移校正部能够基于编码时用于视频的偏移校正的类型及偏移量信息等来对已重建的视频执行偏移校正。
107.可以基于由编码器提供的与是否应用alf相关的信息、alf系数信息等来将alf应用于编码单元。这种alf信息可以通过被包括在特定的参数集中来提供。
108.存储器245存储已重建的图像或块,使得所述图像或块可用作参考图像或参考块,并且可以向输出部提供已重建的图像。
109.图3是示出本发明实施例的基本编码树单元的图。
110.可以将大小最大的编码块定义为编码树块。一个图像可被划分为多个编码树单元(coding tree unit, ctu)。编码树单元是大小最大的编码单元,还可被称为最大编码单元(lcu,largest coding unit)。图3 示出了将一个图像划分为多个编码树单元的示例。
111.编码树单元的大小可以以图像级或序列级定义。为此,可以通过图像参数集或序列参数集来用信号发送表示编码树单元的大小的信息。
112.例如,序列内整个图像的编码树单元的大小可以设置为128
×
128。可替代地,可以将图像级的128
×ꢀ
128或256
×
256中的任一个确定为编码树单元的大小。例如,可以将第一图像中编码树单元的大小设置为128
×
128,并且可以将第二图像中编码树单元的大小设置为256
×
256。
113.可以通过划分编码树单元来生成编码块。编码块表示用于进行编码/解码处理的基本单元。例如,可按不同编码块执行预测或者变换,或者可按不同编码块确定预测编码模式。其中,预测编码模式表示生成预测图像的方法。例如,预测编码模式可以包括画面内预测(intra prediction,帧内预测)、画面间预测 (inter prediction,帧间预测)、当前图像参考(current picture referencing,cpr,或帧内块拷贝(intra blockcopy,ibc))或组合预测(combined prediction)。针对编码块,可以使用帧内预测、帧间预测、当前图像参考或组合预测中的至少一种预测编码模式来生成与编码块相关的预测块。
114.可以通过比特流用信号发送表示当前块的预测编码模式的信息。例如,所述信息可以是指示预测编码模式为帧内模式还是帧间模式的1比特标志。可仅在当前块的预测编码模式被确定为帧间模式的情况下使用当前图像参考或组合预测。
115.当前图像参考用于将当前图像设置为参考图像,并从当前图像内的已编码/解码的区域获得当前块的预测块。其中,当前图像意味着包括当前块的图像。可以通过比特流用信号发送表示是否对当前块应用当前图像参考的信息。例如,所述信息可以是1比特标志。当所述标志为真时,可以将当前块的预测编码模式确定为当前图像参考,当所述标志为假时,可以将当前块的预测模式确定为帧间预测。
116.可替代地,可以基于参考图像索引确定当前块的预测编码模式。例如,当参考图像索引指向当前图像时,可以将当前块的预测编码模式确定为当前参考图像。当参考图像索引指向其他图像而不是当前图像时,可以将当前块的预测编码模式确定为帧间预测。即,当前图像参考是使用当前图像内已编码/解码的区域的信息的预测方法,并且帧间预测是使用已编码/解码的其他图像的信息的预测方法。
117.组合预测表示由帧内预测、帧间预测及当前图像参考中的两种以上组合而成的编码模式。例如,在应用组合预测的情况下,可以基于帧内预测、帧间预测或当前图像参考中的一种来生成第一预测块,并且可以基于另一种来生成第二预测块。若生成第一预测块和第二预测块,则可以通过第一预测块和第二预测块的平均运算或加权和运算来生成最终预测块。可以通过比特流用信号发送表示是否应用组合预测的信息。所述信息可以是1比特标
志。
118.图4(a)、4(b)、4(c)、4(d)、4(e)是示出编码块的多种划分类型的图。
119.可以基于四叉树划分、二叉树划分或三叉树划分将编码块划分为多个编码块。还可以基于四叉树划分、二叉树划分或三叉树划分将所划分的编码块再次划分为多个编码块。
120.四叉树划分是指将当前块划分为4个块的划分技术。作为四叉树划分的结果,可以将当前块划分为4 个正方形分区(参考图4(a)部分中的“split_qt”)。
121.二叉树划分是指将当前块划分为2个块的划分技术。可以将沿着垂直方向(即,使用横穿当前块的垂直线)将当前块划分为两个块的过程称为垂直方向二叉树划分,可以将沿着水平方向(即,使用横穿当前块的水平线)将当前块划分为两个块的过程称为水平方向二叉树划分。可以在经过二叉树划分后将当前块划分为2个非正方形分区。图4(b)部分中的“split_bt_ver”表示垂直方向二叉树划分结果,并且图4(c)部分中的“split_bt_hor”表示水平方向二叉树划分结果。
122.三叉树划分是指将当前块划分为3个块的划分技术。可以将沿着垂直方向(即,使用横穿当前块的两个垂直线)将当前块划分为三个块的过程称为垂直方向三叉树划分,可以将沿着水平方向(即,使用横穿当前块的两个水平线)将当前块划分为三个块的过程称为水平方向三叉树划分。可以在经过三叉树划分后将当前块划分为3个非正方形分区。在这种情况下,位于当前块的中心的分区的宽度/高度可以是其他分区的宽度/高度的2倍。图4(d)部分中的“split_tt_ver”表示垂直方向三叉树划分结果,并且图4(e)部分中的“split_tt_hor”表示水平方向三叉树划分结果。
123.可以将编码树单元的划分次数定义为划分深度(partitioning depth)。可以以序列或图像级确定编码树单元的最大划分深度。由此,编码树单元的最大划分深度可根据不同序列或图像而变得不同。
124.可替代地,可单独确定对于多个划分技术的每一个的最大划分深度。例如,允许四叉树划分的最大划分深度可以与允许二叉树划分和/或三叉树划分的最大划分深度不同。
125.编码器可以通过比特流用信号发送表示当前块的划分形状或划分深度中的至少一个的信息。解码器可以基于从比特流中解析的信息来确定编码树单元的划分形状及划分深度。
126.图5是示出编码树单元的划分模式的图。
127.可以将使用四叉树划分、二叉树划分和/或三叉树划分等划分技术来划分编码块的过程称为多叉树划分(multi tree partitioning)。
128.可以将通过对编码块应用多叉树划分而生成的编码块称为多个下游编码块。当编码块的划分深度为k 时,多个下游编码块的划分深度设置为k 1。
129.另一方面,针对划分深度为k 1的多个编码块,可以将划分深度为k的编码块称为上游编码块。
130.可以基于上游编码块的划分形状或相邻编码块的划分类型中的至少一个来确定当前编码块的划分类型。其中,相邻编码块与当前编码块相邻,其可以包括当前编码块的上方相邻块、左侧相邻块或与左上角相邻的相邻块中的至少一个。其中,划分类型可以包括是否划分四叉树、是否划分二叉树、二叉树划分方向、是否划分三叉树或三叉树划分方向中的
至少一个。
131.为了确定编码块的划分形状,可以通过比特流用信号发送表示编码块是否被划分的信息。所述信息为1比特标志“split_cu_flag”,当所述标志为真时,表示通过多叉树划分技术来划分编码块。
132.当“split_cu_flag”为真时,可以通过比特流用信号发送表示编码块是否被四叉树划分的信息。所述信息为1比特标志“split_qt_flag”,当所述标志为真时,编码块可被划分为4个块。
133.例如,在图5所示的示例中图示了随着编码树单元被四叉树划分来生成划分深度为1的4个编码块。并且,图示了对作为四叉树划分的结果而生成的4个编码块中的第一个编码块及第四个编码块再次应用四叉树划分。最终,可以生成划分深度为2的4个编码块。
134.并且,可以通过对划分深度为2的编码块再次应用四叉树划分来生成划分深度为3的编码块。
135.在未对编码块应用四叉树划分时,可以通过考虑编码块的大小、编码块是否位于图像边界处、最大划分深度或相邻块的划分形状中的至少一个来确定对所述编码块执行二叉树划分还是三叉树划分。当确定对所述编码块执行二叉树划分或三叉树划分时,可以通过比特流用信号发送表示划分方向的信息。所述信息可以是1比特标志“mtt_split_cu_vertical_flag”。可以基于所述标志来确定划分方向是垂直方向还是水平方向。另外,可以通过比特流用信号发送表示对所述编码块应用二叉树划分或三叉树划分中的哪一个的信息。所述信息可以是1比特标志“mtt_split_cu_binary_flag”。可以基于所述标志来确定对所述编码块应用二叉树划分还是三叉树划分。
136.例如,在图5所示的示例中图示了对划分深度为1的编码块应用垂直方向二叉树划分,对作为所述划分结果而生成的编码块中的左侧编码块应用垂直方向三叉树划分,对右侧编码块应用垂直方向二叉树划分。
137.帧间预测是指使用前一图像的信息来预测当前块的预测编码模式。例如,可以将前一图像内与当前块相同位置的块(以下称为同位置块,collocated block)设置为当前块的预测块。以下,将基于位置与当前块相同的块生成的预测块称为同位置预测块(collocated prediction block)。
138.另一方面,若存在于前一图像中的对象已经移动至当前图像中的其他位置,则可以使用对象的运动来有效预测当前块。例如,若可以通过比较前一图像和当前图像来知晓对象的移动方向及大小,则可以考虑对象的运动信息来生成当前块的预测块(或预测图像)。以下,可以将使用运动信息生成的预测块称为运动预测块。
139.可以通过从当前块减去预测块来生成残差块(residual block)。在这种情况下,当存在对象的运动时,可以通过使用运动预测块来代替同位置预测块,由此减少残差块的能量,从而可提高残差块的压缩性能。
140.如上所述,可以将使用运动信息生成预测块的过程称为运动补偿预测。在大部分的帧间预测中,可以基于运动补偿预测来生成预测块。
141.运动信息可以包括运动向量、参考图像索引、预测方向或双向加权值索引中的至少一个。运动向量表示对象的移动方向及大小。参考图像索引指定参考图像列表中包括的多个参考图像中的当前块的参考图像。预测方向是指单向l0预测、单向l1预测或双向预测
(l0预测及l1预测)中的任一个。可以根据当前块的预测方向来使用l0方向的运动信息或l1方向的运动信息中的至少一个。双向加权值索引指定用于l0预测块的加权值及应用于l1预测块的加权值。
142.图6是本发明实施例的帧间预测方法的流程图。
143.参考图6,帧间预测方法包括如下的步骤:确定当前块的帧间预测模式(s601);根据所确定的帧间预测模式来获得当前块的运动信息(s602);以及基于所获得的运动信息来对当前块执行运动补偿预测 (s603)。
144.其中,帧间预测模式表示用于确定当前块的运动信息的多种技术,可以包括使用平移(translation) 运动信息的帧间预测模式和使用仿射(affine)运动信息的帧间预测模式。例如,使用平移运动信息的帧间预测模式可以包括合并模式及高级运动向量预测模式,使用仿射运动信息的帧间预测模式可以包括仿射合并模式及仿射运动向量预测模式。根据帧间预测模式,可以基于与当前块相邻的相邻块或从比特流中解析的信息来确定当前块的运动信息。
145.以下,详细说明使用仿射运动信息的帧间预测方法。
146.图7是示出对象的非线性运动的图。
147.视频内对象的运动有可能是非线性运动。例如,如图7所示的示例,可能发生摄像机放大(zoom

in)、缩小(zoom

out)、旋转(rotation)或仿射变换等对象的非线性运动。当发生对象的非线性运动时,无法通过平移运动向量来有效表示对象的运动。由此,在发生对象的非线性运动的部分,可以通过使用仿射运动来代替平移运动,由此提高编码效率。
148.图8是展示了根据本发明实施例的基于仿射运动的帧间预测方法的流程图。
149.可以基于从比特流解析的信息来确定是否对当前块应用基于仿射运动的帧间预测技术。具体地,可以基于表示是否对当前块应用仿射合并模式的标志或表示是否对当前块应用仿射运动向量预测模式的标志中的至少一个来确定是否对当前块应用基于仿射运动的帧间预测技术。
150.当将基于仿射运动的帧间预测技术应用于当前块时,可以确定当前块的仿射运动模型(s801)。仿射运动模型可以由6参数仿射运动模型或4参数仿射运动模型中的至少一个来确定。6参数仿射运动模型使用6个参数来表示仿射运动,4参数仿射运动模型使用4个参数来表示仿射运动。
151.公式1为使用6个参数表示仿射运动的情况。仿射运动表示与通过仿射种子向量确定的预定区域的平移运动。
152.【公式1】
153.v
x
=ax

by e
154.v
y
=cx dy f
155.当使用6个参数表示仿射运动时,可以表示复杂的运动,但是对各个参数进行编码时所需的比特数增加,这会降低编码效率。由此,还可以使用4个参数表示仿射运动。公式2为使用4个参数表示仿射运动的情况。
156.【公式2】
157.v
x
=ax

by e
158.v
y
=bx ay f
159.可以对用于确定当前块的仿射运动模型的信息进行编码并且可以通过比特流用信号发送。例如,所述信息可以是1比特标志“affine_type_flag”。所述标志的值为0表示应用4参数仿射运动模型,所述标志的值为1表示应用6参数仿射运动模型。所述标志可以以片、图块或块(例如,编码块或编码树单元) 为单位进行编码。当以片级用信号发送标志时,可以对所述片中所属的所有块应用以所述片级确定的仿射运动模型。
160.可替代地,可以基于当前块的仿射帧间预测模式来确定当前块的仿射运动模型。例如,当应用仿射合并模式时,可以将当前块的仿射运动模型确定为4参数运动模型。另一方面,当应用仿射运动向量预测模式时,可以对用于确定当前块的仿射运动模型的信息进行编码并且可以通过比特流用信号发送。例如,在对当前块应用仿射运动向量预测模式时,可以基于1比特标志“affine_type_flag”来确定当前块的仿射运动模型。
161.接下来,可以导出当前块的仿射种子向量(s802)。当选择4参数仿射运动模型时,可以导出当前块的两个控制点上的运动向量。另一方面,当选择6参数仿射运动模型时,可以导出当前块的三个控制点上的运动向量。可以将控制点上的运动向量称为仿射种子向量。控制点可以包括当前块的左上角、右上角或左下角中的至少一个。
162.图9是示出每个仿射运动模型的仿射种子向量的示例的图。
163.在4参数仿射运动模型中,可以导出与左上角、右上角或左下角中的两个相关的仿射种子向量。例如,如图9(a)部分所示的示例,当选择4参数仿射运动模型时,可以通过使用与当前块的左上角(例如,左上样本(x0,y0))相关的仿射种子向量sv0和与当前块的右上角(例如,右上样本(x1,y1))相关的仿射种子向量sv1来导出仿射向量。还可以使用与左下角相关的仿射种子向量来代替与左上角相关的仿射种子向量,或者还可以使用与左下角相关的仿射种子向量来代替与右上角相关的仿射种子向量。
164.在6参数仿射运动模型中,可以导出与左上角、右上角及左下角相关的仿射种子向量。例如,如图9 (b)部分所示的示例,当选择6参数仿射运动模型时,可以通过使用与当前块的左上角(例如,左上样本(x0,y0))相关的仿射种子向量sv0、与当前块的右上角(例如,右上样本(x1,y1))相关的仿射种子向量sv1及与当前块的左上角(例如,左上样本(x2,y2))相关的仿射种子向量sv2来导出仿射向量。
165.在稍后所述的实施例中,在4参数仿射运动模型下,将左上控制点及右上控制点的仿射种子向量分别称为第一仿射种子向量及第二仿射种子向量。在稍后所述的使用第一仿射种子向量及第二仿射种子向量的实施例中,第一仿射种子向量及第二仿射种子向量中的至少一个可替换为左下控制点的仿射种子向量(第三仿射种子向量)或右下控制点的仿射种子向量(第四仿射种子向量)。
166.并且,在6参数仿射运动模型下,将左上控制点、右上控制点及左下控制点的仿射种子向量分别称为第一仿射种子向量、第二仿射种子向量及第三仿射种子向量。在稍后所述的使用第一仿射种子向量、第二仿射种子向量及第三仿射种子向量的实施例中,第一仿射种子向量、第二仿射种子向量及第三仿射种子向量中的至少一个可替换为右下控制点的仿射种子向量(第四仿射种子向量)。
167.可以使用仿射种子向量来按不同子块导出仿射向量(s803)。其中,仿射向量表示基于仿射种子向量导出的平移运动向量。可以将子块的仿射向量称为仿射子块运动向量或子块运动向量。
168.图10是示出在4参数运动模型下的子块的仿射向量的示例的图。
169.可以基于控制点的位置、子块的位置及仿射种子向量而导出子块的仿射向量。例如,公式3表示导出仿射子块向量的示例。
170.【公式3】
[0171][0172][0173]
在所述公式3中,(x,y)表示子块的位置。其中,子块的位置表示子块中所包括的参考样本的位置。参考样本可以是位于子块的左上角的样本,或者是x轴或y轴坐标中的至少一个位于中心位置的样本。(x0,y0)表示第一控制点的位置,并且(sv
0x
,sv
0y
)表示第一仿射种子向量。另外,(x1,y1)表示第二控制点的位置,并且(sv
1x
,sv
1y
)表示第二仿射种子向量。
[0174]
当第一控制点及第二控制点分别与当前块的左上角及右上角相对应时,可以将x1‑
x0设置为与当前块的宽度相同的值。
[0175]
之后,可以使用各个子块的仿射向量来对各个子块执行运动补偿预测(s804)。在执行运动补偿预测后,可以生成与各个子块相关的预测块。可以将子块的预测块设置为当前块的预测块。
[0176]
接下来,详细说明使用平移运动信息的帧间预测方法。
[0177]
可从当前块的其他块的运动信息中导出当前块的运动信息。其中,其他块可以是比起当前块更优先地以帧间预测进行编码/解码的块。可以将当前块的运动信息设置为与其他块的运动信息相同的情况定义为合并模式。并且,可以将其他块的运动向量设置为当前块的运动向量的预测值情况定义为运动向量预测模式。
[0178]
图11是在合并模式下导出当前块的运动信息的过程的流程图。
[0179]
可以导出当前块的合并候选(s1101)。当前块的合并候选可从在当前块之前以帧间预测进行编码/解码的块导出。
[0180]
图12是示出了用于导出合并候选的候选块的示例的图。
[0181]
候选块可以包括包含与当前块相邻的样本的相邻块或包含不与当前块相邻的样本的非相邻块中的至少一者。在下文中,将用于确定候选块的样本指定为参考样本。另外,将与当前块相邻的参考样本称为相邻参考样本,将不与当前块相邻的参考样本称为非相邻参考样本。
[0182]
相邻参考样本可以包括在当前块的最左侧列的相邻列中、或当前块的最上方行的相邻行中。例如,若当前块的左上样本的坐标为(0,0),则包括(

1,h

1)位置上的参考样本的块、包括(w

1,

1)位置上的参考样本的块、包括(w,

1)位置上的参考样本的块、包括(

1,h)位置上的参考样本的块或包括(

1,

1)位置上的参考样本的块中的至少一个可用作候选块。参考附图,可以将索引为0至4的相邻块用作候选块。
[0183]
非相邻参考样本表示与当前块相邻的参考样本之间的x轴距离或y轴距离中的至少一者具有预定义的值的样本。例如,可以将包含与左侧参考样本之间的x轴距离为预定义的值的参考样本的块、包含与上方参考样本之间的y轴距离为预定义的值的非相邻样本的
块、或包含与左上参考样本之间的x轴距离及y轴距离为预定义的值的非相邻样本的块中的至少一者用作候选块。预定义的值可以是4、8、12、16 等整数。参考附图,可以将索引为5至26的块中的至少一个用作候选块。
[0184]
可以将与相邻参考样本不在同一垂直线、水平线或对角线上的样本设置为非相邻参考样本。
[0185]
图13是示出了参考样本的位置的图。
[0186]
如图13所示的示例,可以将上方非相邻参考样本的x坐标设置为与上方相邻参考样本的x坐标不同。例如,当上方相邻参考样本的位置为(w

1,

1)时,可以将沿y轴与上方相邻参考样本相隔n的上方非相邻参考样本的位置设置为((w/2)

1,
‑1‑
n),并且可以将沿y轴与上方相邻参考样本相隔2n的上方非相邻参考样本的位置设置为(0,
‑1‑
2n)。即,非相邻参考样本的位置可以基于相邻参考样本的位置和与相邻参考样本之间的距离来确定。
[0187]
在下文中,将候选块中的包含相邻参考样本的候选块称为相邻块,包含非相邻参考样本的块称为非相邻块。
[0188]
在当前块与候选块之间的距离大于或等于阈值时,可以将所述候选块设置为不可用作合并候选。所述阈值可以基于编码树单元的大小来确定。例如,可以将所述阈值设置为编码树单元的高度(ctu_height)、或在编码树单元的高度加上或减去偏移值而得的值(例如,ctu_height
±
n)。偏移值n为编码器及解码器中预定义的值,可以设置为4、8、16、32或ctu_height。
[0189]
在当前块的y轴坐标与候选块中包括的样本的y轴坐标之间的差值大于阈值时,可以将候选块确定为不可用作合并候选。
[0190]
可替代地,可以将不属于与当前块相同的编码树单元的候选块设置为不可用作合并候选。例如,在参考样本超出当前块所属的编码树单元的上边界时,可以将包括参考样本的候选块设置为不可用作合并候选。
[0191]
如果,在当前块的上边界与编码树单元的上边界相邻时,多个候选块被确定为不可用作合并候选,由此会降低当前块的编码/解码效率。为了解除如上问题,可以设置候选块,以使位于当前块的上方的候选块的数量多于位于当前块的左侧的候选块的数量。
[0192]
图14是示出了用于导出合并候选的候选块的示例的图。
[0193]
如图14所示的示例,可以将属于当前块的上方n个块列的上方块和属于当前块的左侧m个块列的左侧块设置为候选块。此时,通过将m设置为大于n,可以将左侧候选块的数量设置为大于上方候选块的数量。
[0194]
例如,可以将当前块内参考样本的y轴坐标与可用作候选块的上方块的y轴坐标之间的差值设置为不超过当前块的高度的n倍。另外,可以将当前块内参考样本的x轴坐标和可用作候选块的左侧块的x 轴坐标之间的差值设置为不超过当前块的宽度的m倍。
[0195]
例如,如图14所示的示例中,示出了将属于当前块的上方两个块列的块和属于当前块的左侧五个块列的块设置为候选块。
[0196]
作为另一例,当候选块不属于与当前块相同的编码树单元时,可以代替所述候选块而利用属于与当前块相同的编码树单元的块、或包含与所述编码树单元的边界相邻的参考样本的块来导出合并候选。
[0197]
图15是示出了改变参考样本的位置的示例的图。
[0198]
当参考样本包括在与当前块不同的编码树单元,并且所述参考样本与所述编码树单元的边界不相邻时,可以代替所述参考样本而利用与所述编码树单元的边界相邻的参考样本来确定候选块参考样本。
[0199]
例如,在图15(a)和图15(b)所示的示例中,在当前块的上边界与编码树单元的上边界彼此接触时,当前块上方的参考样本属于与当前块不同的编码树单元。可以用与编码树单元的上边界相邻的样本来替换属于与当前块不同的编码树单元的参考样本中不与编码树单元的上边界相邻的参考样本。
[0200]
例如,如图15(a)的示例所示,位置6处的参考样本被替换为位于编码树单元的上边界的位置6' 处的样本,如图15(b)的示例所示,位置15处的参考样本被替换为位于编码树单元的上边界的位置15' 处的样本。此时,替换样本的y坐标可以改变为编码树单元的相邻位置,替换样本的x坐标可以设置为与参考样本相同。例如,6'位置的样本可以具有与6位置的样本相同的x坐标,15'位置的样本可以具有与15位置的样本相同的x坐标。
[0201]
可替代地,可以将在参考样本的x坐标中加上或减去偏移值而得到的值设置为替换样本的x坐标。例如,当位于当前块的上方的相邻参考样本和非相邻参考样本的x坐标相同时,可以将在参考样本的x 坐标中加上或减去偏移值而得到的值设置为替换样本的x坐标。这是为了防止用于替换非相邻参考样本的替换样本与其他非相邻参考样本或相邻参考样本处于相同的位置。
[0202]
图16是示出改变参考样本的位置的示例的图。
[0203]
在用位于编码树单元的边界的样本来替换包括在与当前块不同的编码树单元中且与编码树单元的边界不相邻的参考样本时,可以将在参考样本的x坐标中加上或减去偏移值而得到的值设置为替换样本的x 坐标。
[0204]
例如,在图16所示的示例中,位置6处的参考样本和位置15处的参考样本可以被分别替换为具有同与编码树单元的上边界相邻的行相同的y坐标的、位置6'处的样本和位置15'处的样本。此时,6'位置的样本的x坐标可以设置为与6位置的参考样本的x坐标的差值为w/2的值,15'位置的样本的x坐标可以设置为与15位置的参考样本的x坐标的差值为w

1的值。
[0205]
不同于图15和图16所示的示例,位于当前块的最上方行的上方的行的y坐标或编码树单元的上边界的y坐标还可以被设置为替换样本的y坐标。
[0206]
虽然未图示,但是还可以基于编码树单元的左边界来确定代替参考样本的样本。例如,当参考样本不包括在与当前块相同的编码树单元中,并且不与编码树单元的左边界相邻时,可以将所述参考样本替换为与编码树单元的左边界相邻的样本。此时,替换样本可以具有与参考样本相同的y坐标,或者可以具有在参考样本的y坐标中加上或差值偏移值而获取的y坐标。
[0207]
之后,可以将包含替换样本的块设置为候选块,并基于所述候选块导出当前块的合并候选。
[0208]
还可从与当前块不同的图像中所包括的时间相邻块导出合并候选。例如,可从同位置图像中所包括的同位置块导出合并候选。
[0209]
可以将合并候选的运动信息设置为与候选块的运动信息相同。例如,可以将候选块的运动向量、参考图像索引、预测方向或双向加权值索引中的至少一个设置为合并候选
的运动信息。
[0210]
可以生成包括合并候选的合并候选列表(s1102)。所述合并候选可以分类为从与当前块相邻的相邻块中导出的相邻合并候选、以及从非相邻块中导出的非相邻合并候选。
[0211]
可按照预定顺序分配合并候选列表内的多个合并候选的索引。例如,分配给相邻合并候选的索引可以具有比分配给非相邻合并候选的索引更小的值。可替代地,基于图12或图14所示的每个块的索引,可以将索引分配给每个合并候选。
[0212]
当合并候选列表中包括多个合并候选时,可以选择所述多个合并候选中的至少一个(s1103)。此时,可以通过比特流用信号发送指示当前块的运动信息是否是从相邻合并候选中导出的信息。所述信息可以是1比特标志。例如,可以通过比特流用信号发送指示当前块的运动信息是否是从相邻合并候选中导出的语法元素isadjancentmergeflag。当语法元素isadjancentmergeflag的值为1时,当前块的运动信息可以基于相邻合并候选来导出。另一方面,当语法元素isadjancentmergeflag的值为0时,当前块的运动信息可以基于非相邻合并候选来导出。
[0213]
表1示出了包括语法元素isadjancentmergeflag的语法表。
[0214]
表1
[0215]
[0216][0217]
可以通过比特流用信号发送用于指定多个合并候选中的任一个的信息。例如,可以通过比特流用信号发送指示合并候选列表中包括的合并候选中的任一个索引的信息。
[0218]
当isadjacentmergeflag为1时,可以用信号发送用于确定相邻合并候选中的任一个的语法元素 merge_idx。可以将语法元素merge_idx的最大值设置为与相邻合并候选的数量的差值为1的值。
[0219]
当isadjacentmergeflag为0时,可以用信号发送用于确定非相邻合并候选中的任一个的语法元素na_merge_idx。语法元素na_merge_idx指示将非相邻合并候选的索引与相邻合并候选的数量求差而获得的值。解码器可以通过将根据na_merge_idx确定的索引加上相邻合并候选的数量来选择非相邻合并候选。
[0220]
当在合并候选列表中包括的合并候选的数量小于阈值时,可以将在预测区域运动信息列表中包括的合并候选添加到合并候选列表。其中,阈值可以是从合并候选列表可以包括的最大合并候选的数量或最大合并候选的数量减去偏移量的值。偏移量可以是1或2等整数。帧间运动信息列表可以包括基于在当前块之前进行编码/解码的块来导出的合并候选。
[0221]
预测区域运动信息列表包括从基于当前图像中的帧间预测来编码/解码的块中导出的合并候选。例如,可以将在预测区域运动信息列表中包括的合并候选的运动信息设置为等于基于帧间预测来编码/解码的块的运动信息。其中,运动信息可以包括运动向量、参考图像索引、预测方向或双向加权值索引中的至少一个。
[0222]
为了便于解释,将在预测区域运动信息列表中包括的合并候选称为预测区域合并候选。
[0223]
可以通过编码器和解码器来预定义预测区域运动信息列表可以包括的合并候选的最大数量。例如,预测区域运动信息列表可以包括的合并候选的最大数量可以是1、2、3、4、5、6、7、8或更多(例如, 16)。
[0224]
可替代地,可以通过比特流用信号发送指示预测区域运动信息列表可以包括的合并候选的最大数量的信息。所述信息以序列级、图像级或片级用信号发送。所述信息可以指示预测区域运动信息列表可以包括的合并候选的最大数量。可替代地,所述信息可以指示预测区域运动信息列表可以包括的合并候选的最大数量与合并候选者列表可以包括的合并候选的最大数量之间的差值。
[0225]
可替代地,可以根据图像的大小、片的大小、或编码树单元的大小来确定预测区域运动信息列表中的合并候选的最大数量。
[0226]
可以以图像、片(slice)、瓦片(tile)、砖块(brick)、编码树单元、或编码树单元线(行或列)为单位来初始化预测区域运动信息列表。例如,如果片被初始化,则预测区域运动信息列表也被初始化,并且预测区域运动信息列表可能不包括任何合并候选。
[0227]
可替代地,可以通过比特流用信号发送指示是否要初始化预测区域运动信息列表的信息。所述信息可以以片级、瓦片级、砖块级或块级用信号发送。在信息指示要初始化预
测区域运动信息列表之前,可以使用已配置的预测区域运动信息列表。
[0228]
可替代地,可以通过图像参数集或片头(slice header)来用信号发送关于初始预测区域合并候选的信息。即使片被初始化,预测区域运动信息列表也可以包括初始预测区域合并候选。因此,预测区域合并候选可以用于作为片中的最先编码/解码目标的块。
[0229]
可替代地,可以将在前一编码树单元的预测区域运动信息列表中包括的预测区域合并候选设置为初始预测区域合并候选。例如,在前一编码树单元的预测区域运动信息列表中包括的预测区域合并候选中,可以将索引最小的预测区域合并候选或索引最大的预测区域合并候选设置为初始预测区域合并候选。
[0230]
块是根据编码/解码顺序来编码/解码的,并且基于帧间预测来编码/解码的块可以根据编码/解码的顺序依次设置为预测区域合并候选。
[0231]
图17是展示了用于更新预测区域运动信息列表的过程的流程图。
[0232]
在对当前块执行帧间预测时(s1701),可以基于当前块来导出预测区域合并候选(s1702)。可以将预测区域合并候选的运动信息设置等于当前块的运动信息。
[0233]
在预测区域运动信息列表为空时(s1703),可以将基于当前块导出的预测区域合并候选添加到预测区域运动信息列表(s1704)。
[0234]
在预测区域运动信息列表已经包括所述预测区域合并候选时(s1703),可以对当前块的运动信息(或基于当前块导出的预测区域合并候选)进行冗余检测(s1705)。冗余检测是用于确定已存储在预测区域运动信息列表中的预测区域合并候选的运动信息是否与当前块的运动信息相同。可以对已存储在预测区域运动信息列表中的所有预测区域合并候选执行冗余检测。可替代地,可以对已存储在预测区域运动信息列表中的预测区域合并候选中的索引大于阈值或小于阈值的预测区域合并候选执行冗余检测。
[0235]
在不包括具有与当前块的运动信息相同的运动信息的帧间预测合并候选时,可以将基于当前块导出的预测区域合并候选添加到预测区域运动信息列表(s1708)。可以基于帧间合并候选的运动信息(例如,运动向量和/或参考图像索引等)是否相同来确定帧间合并候选是否相同。
[0236]
在这种情况下,在预测区域运动信息列表中已经存储了最大数量的预测区域合并候选时(s1706),删除最早的预测区域合并候选(s1707),并且可以将基于当前块导出的预测区域合并候选添加到预测区域运动信息列表(s1708)。在此,最早的预测区域合并候选可以是索引最大的预测区域合并候选或索引最小的预测区域合并候选。
[0237]
每个预测区域合并候选都可以由索引标识。当将从当前块导出的预测区域合并候选添加到预测区域运动信息列表时,将最小的索引(例如,0)分配给所述预测区域合并候选,并且可以将已存储的预测区域合并候选的索引增加1。在这种情况下,如果预测区域运动信息列表已经存储了最大数量的帧间预测合并候选,则移除索引最大的预测区域合并候选。
[0238]
可替代地,当从当前块导出的预测区域合并候选添加到预测区域运动信息列表时,可以将最大的索引分配给所述预测区域合并候选。例如,当已存储在预测区域运动信息列表中的帧间预测合并候选的数量小于最大值时,可以将具有与已存储的帧间预测合并候选的数量相同的值的索引分配给所述预测区域合并候选。可替代地,当已存储在预测区域运动信息列表中的帧间预测合并候选的数量与最大值相同时,可以将从最大值减去1得到
的索引分配给所述预测区域合并候选。此外,移除索引最小的预测区域合并候选,并且剩余的已存储的预测区域合并候选的索引可以减小1。
[0239]
图18是示出了更新预测区域合并候选列表的实施例的图。
[0240]
假设在将从当前块导出的预测区域合并候选添加到预测区域合并候选列表时,将最大的索引分配给预测区域合并候选。此外,假设预测区域合并候选列表中已经存储了最大数量的预测区域合并候选。
[0241]
当将从当前块导出的预测区域合并候选hmvpcand[n 1]添加到预测区域合并候选列表hmvpcandlist 时,删除已存储的预测区域合并候选中索引最小的预测区域合并候选hmvpcand[0],并且可以将剩余的预测区域合并候选的索引减小1。另外,可以将从当前块中导出的预测区域合并候选hmvpcand[n 1]的索引设置为最大值(在图18所示的示例中为n)。
[0242]
在已存储与基于当前块导出的预测区域合并候选相同的预测区域合并候选时(s1705),可以不将基于当前块导出的预测区域合并候选添加到预测区域运动信息列表(s1709)。
[0243]
可替代地,在将基于当前块导出的预测区域合并候选添加到预测区域运动信息列表时,可以移除已存储的与预测区域合并候选相同的预测区域合并候选。在这种情况下,获得了与新更新已存储的预测区域合并候选的索引相同的效果。
[0244]
图19是示出了更新已存储的预测区域合并候选的索引的示例的图。
[0245]
当已存储的与基于当前块导出的预测区域合并候选mvcand相同的帧间预测合并候选的索引为hidx 时,删除所述已存储的帧间预测合并候选的索引,并且索引大于hidx的帧间预测合并候选的索引可以减小1。例如,在图19所示的示例中,示出了将与mvcand相同的hmvpcand[2]从预测区域运动信息列表 hvmpcand列表中删除,并且hmvpcand[3]至hmvpcand[n]的索引各减小1。
[0246]
另外,可以将基于当前块导出的预测区域合并候选mvcand添加到预测区域运动信息列表的末尾。
[0247]
可替代地,可以更新分配给已存储的与基于当前块导出的预测区域合并候选相同的预测区域合并候选的索引。例如,可以将已存储的预测区域合并候选的索引改变为最小值或最大值。
[0248]
可以设置为不将在预定区域中包括的块的运动信息添加到预测区域运动信息列表。例如,可以不将基于在合并处理区域中包括的块的运动信息导出的预测区域合并候选添加到预测区域运动信息列表。由于未定义合并处理区域中包括的块的编码/解码顺序,因此将这些块中任一个的运动信息用于其他块的帧间预测是不合适的。因此,可以不将基于在合并处理区域中包括的块导出的预测区域合并候选添加到预测区域运动信息列表。
[0249]
可替代地,可以设置为不将小于预设大小的块的运动信息添加到预测区域运动信息列表。例如,可以不将基于宽度或高度小于4或8的编码块的运动信息或大小为4
×
4的编码块的运动信息导出的预测区域合并候选添加到预测区域运动信息列表。
[0250]
当以子块为单位执行运动补偿预测时,可以基于在当前块中包括的多个子块中的代表性子块的运动信息来导出预测区域合并候选。例如,当将子块合并候选用于当前块时,可以基于子块中的代表性子块的运动信息来导出预测区域合并候选。
[0251]
子块的运动向量可按以下顺序导出。首先,可以选择当前块的合并候选列表所包
括的合并候选中的任一个,并且可以基于选择的合并候选的运动向量来导出初始移位向量(shvector)。并且,通过将编码块内各个子块的参考样本(例如,左上样本或中间位置样本)的位置(xsb,ysb)加上初始移位向量,可以导出参考样本的位置为(xcolsb,ycolsb)的移位子块。以下公式4示出了用于导出移位子块的公式。
[0252]
【公式4】
[0253]
(xcolsb,ycolsb)=(xsb shvector[0]>>4,ysb shvector[1]>>4)
[0254]
接下来,将与包括(xcolsb,ycolsb)的子块中心位置相对应的同位置块的运动向量设置为包括(xsb, ysb)的子块的运动向量。
[0255]
代表性子块可意味着包括当前块的左上样本或中心样本的子块。
[0256]
图20是示出了代表性子块的位置的图。
[0257]
图20(a)示出了将位于当前块左上方的子块设置为代表性子块的示例,图20(b)示出了将位于当前块的中心的子块设置为代表性子块的示例。当以子块为单位执行运动补偿预测时,可以基于包括当前块的左上样本的子块或包括当前块的中心样本的子块的运动向量来导出当前块的预测区域合并候选。
[0258]
可以基于当前块的帧间预测模式来确定是否将当前块用作预测区域合并候选。例如,可以将基于仿射运动模型来编码/解码的块设置为不可用作为预测区域合并候选。由此,即使当前块通过帧间预测进行编码/解码,当前块的帧间预测模式为仿射预测模式时,也不会基于当前块更新帧间预测运动信息列表。
[0259]
可替代地,可以基于在基于仿射运动模型来编码/解码的块中包括的子块中的至少一个子块向量来导出预测区域合并候选。例如,可以使用位于当前块左上方的子块、位于当前块的中心的子块或位于当前块右上方的子块来导出预测区域合并候选。可替代地,可以将多个子块的子块向量的平均值设置为预测区域合并候选的运动向量。
[0260]
可替代地,可以根据基于仿射运动模型来编码/解码的块的仿射种子向量的平均值来导出预测区域合并候选。例如,可以将当前块的第一仿射种子向量、第二仿射种子向量和第三仿射种子向量中的至少一个的平均值设置为预测区域合并候选的运动向量。
[0261]
可替代地,可以针对每个帧间预测模式配置预测区域运动信息列表。例如,可以定义以下各项中的至少一项:针对通过帧内块拷贝来编码/解码的块的预测区域运动信息列表、针对基于平移运动模型来编码/解码的块的预测区域运动信息列表、针对基于仿射运动模型来编码/解码的块的预测区域运动信息列表。根据当前块的帧间预测模式,可以选择多个预测区域运动信息列表中的任何一个。
[0262]
图21示出了针对每个帧间预测模式生成预测区域运动信息列表的示例的图。
[0263]
当基于非仿射运动模型来对块进行编码/解码时,可以将基于所述块导出的预测区域合并候选mvcand 添加到预测区域非仿射运动信息列表hmvpcandlist。另一方面,当基于仿射运动模型来对块进行编码/ 解码时,可以将基于所述块导出的预测区域合并候选mvafcand添加到预测区域仿射运动信息列表 hmvpafcandlist。
[0264]
可以将基于仿射运动模型来编码/解码的块的仿射种子向量存储在从所述块导出的预测区域合并候选中。因此,可以将预测区域合并候选用作用于导出当前块的仿射种子向量的合并候选。
[0265]
除了上述预测区域运动信息列表之外,还可以定义另外的预测区域运动信息列
表。除了上述预测区域运动信息列表(下文中称为第一预测区域运动信息列表)以外,还可以定义长期运动信息列表(下文中称为第二预测区域运动信息列表)。其中,长期运动信息列表包括长期合并候选。
[0266]
当第一预测区域运动信息列表和第二预测区域运动信息列表两者都为空时,首先,可以将预测区域合并候选添加到第二预测区域运动信息列表。仅在第二预测区域运动信息列表中可用的预测区域合并候选的数量达到最大数量之后,才可以将预测区域合并候选添加到第一预测区域运动信息列表。
[0267]
可替代地,可以将一个帧间预测合并候选添加到第二预测区域运动信息列表和第一预测区域运动信息列表两者。
[0268]
在这种情况下,可以不再更新已经完成配置的第二预测区域运动信息列表。可替代地,当解码区域大于或等于片的预定比率时,可以更新第二预测区域运动信息列表。可替代地,可以每n个编码树单元线更新第二预测区域运动信息列表。
[0269]
另一方面,可以每当生成通过帧间预测来编码/解码的块时更新第一预测区域运动信息列表。然而,可以设置为不使用添加到第二预测区域运动信息列表的预测区域合并候选来更新第一预测区域运动信息列表。
[0270]
可以通过比特流用信号发送用于选择第一预测区域运动信息列表和第二预测区域运动信息列表中的任何一个的信息。当在合并候选列表中包括的合并候选的数量小于阈值时,可以将由所述信息指示的预测区域运动信息列表中包括的合并候选添加到合并候选列表。
[0271]
可替代地,可以基于当前块的大小和形状、帧间预测模式、是否启用了双向预测、是否启用了运动向量细化或是否启用了三角形划分来选择预测区域运动信息列表。
[0272]
可替代地,即使添加了在第一预测区域运动信息列表中包括的预测区域合并候选,如果在合并候选列表中包括的合并候选的数量小于合并的最大数量,则可以将在第二预测区域运动信息列表中包括的预测区域合并候选添加到合并候选列表。
[0273]
图22是示出了将长期运动信息列表中包括的预测区域合并候选添加到合并候选列表的示例的图。
[0274]
当在合并候选列表中包括的合并候选的数量小于最大数量时,可以将在第一预测区域运动信息列表 hmvpcandlist中包括的预测区域合并候选添加到合并候选列表。如果即使将在第一预测区域运动信息列表中包括的预测区域合并候选添加到合并候选列表,在合并候选列表中包括的合并候选的数量也小于最大数量,则可以将在长期运动信息列表hmvpltcand列表中包括的预测区域合并候选添加到合并候选列表。
[0275]
表2示出了将在长期运动信息列表中包括的预测区域合并候选添加到合并候选列表的过程。
[0276]
表2
[0277][0278][0279]
预测区域合并候选可以被设置为除了运动信息之外还包括另外的信息。例如,对于预测区域合并候选,可以另外地存储块的大小、形状或划分信息。在构造当前块的合并候选列表时,在帧间合并候选中仅使用大小、形状或分区信息与当前块相同或类似的帧间合并候选,或者可以将大小、形状或分区信息与当前块相同或类似的帧间合并候选优先添加到合并候选列表。
[0280]
可替代地,可以针对块的大小、形状或划分信息中的每一者生成预测区域运动信息列表。在多个预测区域运动信息列表中,可以通过使用与当前块的形状、大小或划分信息相对应的预测区域运动信息列表来生成当前块的合并候选列表。
[0281]
当在当前块的合并候选列表中包括的合并候选的数量小于阈值时,可以将在预测区域运动信息列表中包括的预测区域合并候选添加到合并候选列表。所述添加过程按索引的升序或降序执行。例如,可以首先将索引最大的预测区域合并候选添加到合并候选列表。
[0282]
当期望将在预测区域运动信息列表中包括的预测区域合并候选添加到合并候选列表时,可以在预测区域合并候选与已存储在合并候选列表中的合并候选之间执行冗余检测。
[0283]
例如,表3示出了将预测区域合并候选添加到合并候选列表的过程。
[0284]
表3
[0285][0286]
可以仅对在预测区域运动信息列表中包括的一些预测区域合并候选执行冗余检测。例如,可以仅对索引大于阈值或等于阈值的预测区域合并候选执行冗余检测。可替代地,可仅对索引最大的n个合并候选或索引最小的n个合并候选执行冗余检测。
[0287]
可替代地,可仅对合并候选列表中已存储的合并候选中的一些执行冗余检测。例如,可仅对索引为阈值以上或阈值以下的合并候选或从特定位置的块中导出的合并候选执行冗余检测。其中,特定位置可以包括当前块的左侧相邻块、上方相邻块、右上相邻块或左下相邻块中的至少一个。
[0288]
图23是示出了仅对一些合并候选执行冗余检测的示例的图。
[0289]
当期望将预测区域合并候选hmvpcand[j]添加到合并候选列表时,可以对所述预测区域合并候选与具有最大索引的两个合并候选mergemandcandlist[nummerge

2]和mergecandlist[nummerge

1]执行冗余检测。其中,nummerge可以表示可用的空间合并候选及时间合并候选的数量。
[0290]
与图中所示的示例不同,当期望将预测区域合并候选hmvpcand[j]添加到合并候选列表时,可以对所述预测区域合并候选与具有最小索引的最多两个合并候选执行冗余检测。例如,可确认mergecandlist[0] 及mergecandlist[1]是否与hmvpcand[j]相同。
[0291]
可替代地,可以仅对从特定位置导出的合并候选执行冗余检测。例如,可以仅对从位于当前块左侧的相邻块导出的合并候选或从位于当前块上方的相邻块导出的合并候选中的至少一个执行冗余检测。当在合并候选列表中不存在从特定位置处导出的合并候选时,可以在不进行冗余检测的情况下将预测区域合并候选添加到合并候选列表中。
[0292]
当期望将预测区域合并候选hmvpcand[j]添加到合并候选列表时,可以对所述预测区域合并候选与具有最大索引的两个合并候选mergemandcandlist[nummerge

2]和mergecandlist[nummerge

1]执行冗余检测。其中,nummerge可以表示可用的空间合并候选及时间合并候选的数量。
[0293]
可以仅对一些预测区域合并候选执行与合并候选的冗余检测。例如,可以仅对在预测区域运动信息列表中包括的预测区域合并候选中的具有较大索引的n个预测区域合并候选或具有较小索引的n个预测区域合并候选执行冗余检测。例如,可以仅对在预测区域运动信息列表中包括的预测区域合并候选的数量与索引之间的差值小于或等于阈值的预测区域合并候选执行冗余检测。当阈值是2时,可以仅对在预测区域运动信息列表中包括的预测区域合并候选中的具有最大索引值的三个预测区域合并候选执行冗余检测。对于除了这三个预测区域合并候选之外的预测区域合并候选,可以跳过冗余检测。当跳过冗余检测时,可以将预测区域合并候选添加到合并候选列表,而不管所述预测区域合并候选是否具有与合并候选相同的运动信息。
[0294]
另一方面,可以设置为仅对在预测区域运动信息列表中包括的预测区域合并候选的数量与索引之间的差值等于或大于阈值的预测区域合并候选执行冗余检测。
[0295]
可以在编码器和解码器中预定义对其执行冗余检测的预测区域合并候选的数量。例如,阈值可以是诸如0、1或2等整数。
[0296]
可替代地,可以基于在合并候选列表中包括的合并候选的数量以及在预测区域运动信息列表中包括的预测区域合并候选的数量中的至少一者来确定阈值。
[0297]
当找到与第一预测区域合并候选相同的合并候选并且对第二预测区域合并候选进行冗余检测时,可以跳过同与第一预测区域合并候选相同的合并候选的冗余性检测。
[0298]
图24是示出了跳过对特定合并候选的冗余检测的示例的图。
[0299]
当期望将具有索引i的预测区域合并候选hmvpcand[i]添加到合并候选列表时,在
预测区域合并候选与已存储在合并候选列表中的合并候选之间执行冗余检测。在这种情况下,当找到与预测区域合并候选 hmvpcand[i]相同的合并候选mergecand列表[j]时,可以在索引为i

1的预测区域合并候选hmvpcand[i

1] 与合并候选之间执行冗余检测,而不将预测区域合并候选hmvpcand[i]添加到合并候选列表。在这种情况下,可以跳过在预测区域合并候选hmvpcand[i

1]与合并候选mergecandlist[j]之间的冗余检测。
[0300]
例如,在图24所示的示例中,确定hmvpcand[i]与mergecandlist[2]相同。由此,hmvpcand[i]不添加到合并候选列表,可以对hmvpcand[i

1]执行冗余检测。在这种情况下,可跳过hvmpcand[i

1]与 mergecandlist[2]之间的冗余检测。
[0301]
当在当前块的合并候选列表中包括的合并候选的数量小于阈值时,除了预测区域合并候选之外,还可以进一步包括成对合并候选和零合并候选中的至少一者。成对合并候选是指将两个以上合并候选的运动向量的平均值作为运动向量的合并候选,零合并候选是指运动向量为0的合并候选。
[0302]
当前块的合并候选列表可按以下顺序添加合并候选。
[0303]
空间合并候选

时间合并候选

预测区域合并候选

(预测区域仿射合并候选)

成对合并候选

零合并候选
[0304]
空间合并候选是指从相邻块或非相邻块中的至少一个导出的合并候选,时间合并候选是指从前一参考图像导出的合并候选。预测区域仿射合并候选列表示从利用仿射运动模型来编码/解码的块导出的预测区域合并候选。
[0305]
预测区域运动信息列表也可以在运动向量预测模式下使用。例如,当在当前块的运动向量预测候选列表中包括的运动向量预测候选的数量小于阈值时,可以将在预测区域运动信息列表中包括的预测区域合并候选设置为当前块的运动向量预测候选。具体地,可以将预测区域合并候选的运动向量设置为运动向量预测候选。
[0306]
若选择当前块的运动向量预测候选列表所包括的运动向量预测候选中的任一个,则将选择的候选设置为当前块的运动向量预测值。之后,对当前块的运动向量残差值进行解码之后,可以通过将运动向量预测值和运动向量残差值相加来获得当前块的运动向量。
[0307]
当前块的运动向量预测候选列表可按以下顺序构造。
[0308]
空间运动向量预测候选

时间运动向量预测候选

帧间预测区域合并候选

(帧间预测区域仿射合并候选)

零运动向量预测候选
[0309]
空间运动向量预测候选是指从相邻块或非相邻块中的至少一个导出的运动向量预测候选,时间运动向量预测候选是指从前一参考图像中导出的运动向量预测候选。预测区域仿射合并候选列表示从利用仿射运动模型来编码/解码的块导出的预测区域运动向量预测候选。零运动向量预测候选表示运动向量的值为0的候选。
[0310]
可以指定大小大于编码块的合并处理区域。合并处理区域中包括的编码块不依次编码/解码,而也可以并行处理。其中,不依次编码/解码是指未指定编码/解码顺序。由此,可以独立地处理合并处理区域中包括的块的编码/解码过程。可替代地,合并处理区域中包括的块可以共享合并候选。其中,合并候选可以基于合并处理区域来导出。
[0311]
根据所述特征,还可以将合并处理区域称为并行处理区域、合并共享区域(shared merge region,smr) 或合并估计区域(mer,merge estimation region)。
[0312]
当前块的合并候选可以基于编码块来导出。然而,在当前块被包括在大小大于当
前块的合并处理区域中时,可以将被包括在与当前块相同的合并处理区域中的候选块设置为不可用作合并候选。
[0313]
图25是示出了将在与当前块相同的合并处理区域中包括的候选块设置为不可用作合并候选的示例的图。
[0314]
在图25所示的左边示例中,在对cu5进行编码/解码时,可以将包括与cu5相邻的参考样本的块设置为候选块。在这种情况下,可以将在与cu5相同的合并处理区域中包括的候选块x3和x4设置为不可用作cu5的合并候选。另一方面,可以将在与cu5相同的合并处理区域中不包括的候选块x0、x1和 x2设置为可用作合并候选。
[0315]
在图25所示的右边示例中,在对cu8进行编码/解码时,可以将包括与cu8相邻的参考样本的块设置为候选块。在这种情况下,可以将在与cu8相同的合并处理区域中包括的候选块x6、x7和x8设置为不可用作合并候选。另一方面,可以将在与cu8相同的并行合并区域中不包括的候选块x5和x9设置为可用作合并候选。
[0316]
合并处理区域可以是正方形或非正方形。可以通过比特流来用信号发送用于确定合并处理区域的信息。所述信息可以包括指示合并处理区域的形状的信息和指示合并处理区域的大小的信息中的至少一者。在合并处理区域为非正方形时,可以通过比特流用信号发送指示合并处理区域的大小的信息、指示合并处理区域的宽度和/或高度的信息以及指示合并处理区域的宽度与高度之比的信息中的至少一者。
[0317]
合并处理区域的大小可以基于通过比特流用信号发送的信息、图像分辨率、片(slice)大小或瓦片(tile) 大小中的至少一者来确定。
[0318]
在对合并处理区域中包括的块执行运动补偿预测时,可以将基于已经执行过运动补偿预测的块的运动信息导出的预测区域合并候选添加到预测区域运动信息列表。
[0319]
然而,在将从合并处理区域中包括的块中导出的预测区域合并候选添加到预测区域运动信息列表的情况下,当对在合并处理区域中的另一块(其实际上会在所述块被编码/解码之后被编码/解码)进行编码 /解码时,可能存在使用从所述块中导出的预测区域合并候选的情况。即,虽然在对合并处理区域中包括的块进行编码/解码时应当排除块之间的依赖性,但是可能存在使用在合并处理区域中包括的另一块的运动信息来执行运动预测补偿的情况。为了解决所述问题,即使对合并处理区域中包括的块进行的编码/解码已经完成,也可以不将编码/解码后的块的运动信息添加到预测区域运动信息列表。
[0320]
可替代地,在对合并处理区域中包括的块执行运动补偿预测时,可以按预定义的顺序将从所述块中导出的预测区域合并候选添加到预测区域运动信息列表。在此,预定义的顺序可以根据在合并处理区域或编码树单元中编码块的扫描顺序来确定。所述扫描顺序可以是光栅扫描、水平扫描、垂直扫描或z字形扫描中的至少一种。可替代地,预定义的顺序可以基于具有各块的运动信息或相同运动信息的块的数量来确定。
[0321]
可替代地,可以在包括双向运动信息的预测区域合并候选之前将包括单向运动信息的预测区域合并候选添加到预测区域合并列表。另一方面,可以在包括单向运动信息的预测区域合并候选之前将包括双向运动信息的预测区域合并候选添加到预测区域合并候选列表。
[0322]
可替代地,可以根据合并处理区域或编码树单元内的高使用频率或低使用频率的顺序来将预测区域合并候选添加到预测区域运动信息列表。
[0323]
在合并处理区域中包括当前块并且当前块的合并候选列表中包括的合并候选的数量小于最大数量时,可以将预测区域运动信息列表中包括的预测区域合并候选添加到合并候选列表。在这种情况下,可以设置为不将从与当前块相同的合并处理区域中包括的块中导出的预测区域合并候选添加到当前块的合并候选列表。
[0324]
可替代地,在合并处理区域中包括当前块时,可以设置为不使用在预测区域运动信息列表中包括的预测区域合并候选。即,即使在当前块的合并候选列表中包括的合并候选的数量小于最大数量,也可以不将在预测区域运动信息列表中包括的预测区域合并候选添加到合并候选列表。
[0325]
可以配置合并处理区域或编码树单元的预测区域运动信息列表。该预测区域运动信息列表起到临时存储在合并处理区域中包括的块的运动信息的作用。为了区分一般预测区域运动信息列表与合并处理区域或编码树单元的预测区域运动信息列表,将合并处理区域或编码树单元的预测区域运动信息列表称为临时运动信息列表。另外,将存储在临时运动信息列表中的预测区域合并候选称为临时合并候选。
[0326]
图26是示出了临时运动信息列表的图。
[0327]
可以配置编码树单元或合并处理区域的临时运动信息列表。在已经对编码树单元或合并处理区域中包括的当前块执行过运动补偿预测时,可以不将所述块的运动信息添加到帧间预测运动信息列表 hmvpcandlist。反而,可以将从所述块中导出的临时合并候选添加到临时运动信息列表 hmvpmercandlist。即,可以不将添加到临时运动信息列表的临时合并候选添加到预测区域运动信息列表。由此,预测区域运动信息列表可能不包括基于在编码树单元或合并处理区域中包括的块的运动信息导出的预测区域合并候选。
[0328]
可以将临时运动信息列表可以包括的合并候选的最大数量设置为与预测区域运动信息列表可以包括的合并候选的最大数量相同。可替代地,临时运动信息列表可以包括的合并候选的最大数量可以根据编码树单元或合并处理区域的大小来确定。
[0329]
可以将在编码树单元或合并处理区域中包括的当前块设置为不使用相应编码树单元或相应合并处理区域的临时运动信息列表。即,在当前块的合并候选列表中包括的合并候选的数量小于阈值时,将预测区域运动信息列表中包括的预测区域合并候选添加到合并候选列表,并且可以不将在临时运动信息列表中包括的临时合并候选添加到合并候选列表。因此,可以不将在与当前块相同的编码树单元或合并处理区域中包括的其他块的运动信息用于对当前块的运动补偿预测。
[0330]
在完成了对编码树单元或合并处理区域中包括的所有块的编码/解码时,可以将预测区域运动信息列表和临时运动信息列表合并。
[0331]
图27是示出了将预测区域运动信息列表和临时运动信息列表合并的示例的图。
[0332]
在完成了对在编码树单元或合并处理区域中包括的所有块的编码/解码时,如图27的示例所示,可以用临时运动信息列表中包括的临时合并候选来更新预测区域运动信息列表。
[0333]
在这种情况下,可以以插入到临时运动信息列表中的顺序(即,以索引值的升序或降序)将在临时运动信息列表中包括的临时合并候选添加到预测区域运动信息列表。
[0334]
作为另一示例,可以以预定义的顺序将在临时运动信息列表中包括的临时合并候选添加到预测区域运动信息列表。
[0335]
在此,预定义的顺序可以根据在合并处理区域或编码树单元中编码块的扫描顺序来确定。所述扫描顺序可以是光栅扫描、水平扫描、垂直扫描或z字形扫描中的至少一种。可替代地,预定义的顺序可以基于具有各块的运动信息或相同运动信息的块的数量来确定。
[0336]
可替代地,可以在包括双向运动信息的临时合并候选之前将包括单向运动信息的临时合并候选添加到预测区域合并列表。另一方面,可以在包括单向运动信息的临时合并候选之前将包括双向运动信息的临时合并候选添加到预测区域合并候选列表。
[0337]
可替代地,可以根据合并处理区域或编码树单元内的高使用频率或低使用频率的顺序来将临时合并候选添加到预测区域运动信息列表。
[0338]
当将包括在临时运动信息列表中的临时合并候选添加到预测区域运动信息列表时,可以执行对临时合并候选的冗余检测。例如,当已在预测区域运动信息列表中存储了与在临时运动信息列表中包括的临时合并候选相同的预测区域合并候选时,可以不将临时合并候选添加到预测区域运动信息列表。在这种情况下,可以对在预测区域运动信息列表中包括的一些预测区域合并候选执行冗余检测。例如,可以对索引大于或等于阈值的帧间预测合并候选执行冗余检测。例如,当临时合并候选与索引大于或等于预定义值的预测区域合并候选相同时,可以不将临时合并候选添加到预测区域运动信息列表。
[0339]
可以限制将从与当前块的编码树单元或合并处理区域相同的编码树单元或合并处理区域中包括的块中导出的预测区域合并候选用作当前块的合并候选。为此,对于预测区域合并候选,可以另外地存储块的地址信息。块的地址信息包括以下各项中的至少一项:块的位置、块的地址、块的索引、包括块的合并处理区域的位置、包括块的合并处理区域的地址、包括块的合并处理区域的索引、包括块的编码树区域的位置、包括块的编码树区域的地址、以及包括块的编码树区域的索引。
[0340]
图28和图29是示出了编码区域合并候选包括块的地址信息的示例的图。
[0341]
通过帧间预测来编码的块的运动信息可以被存储为编码区域合并候选的运动信息。例如,块的运动向量mv可以被存储为编码区域合并候选的运动向量mvcand,并且块的参考图像索引refidx可以被存储为编码区域合并候选的参考图像索引refidxcand。
[0342]
另外,对于编码区域合并候选,可以进一步存储块的地址信息。例如,可以另外地存储块的地址 blk_adr、包括块的合并处理区域的地址mer_addr、或包括块的编码树单元的地址ctu_addr。
[0343]
在图28所示的示例中,示出了对于编码区域合并候选,存储运动向量mvcand、参考图像索引 refidxcand和合并处理区域的地址mer_addr。
[0344]
对于所述编码区域合并候选,可以存储多个地址信息。在图29所示的示例中,示出了对于编码区域合并候选,存储运动向量mvcand、参考图像索引refidxcand、合并处理区域的地址mer_addr和编码树单元的地址ctu_addr。
[0345]
可以通过将当前块的地址与编码区域合并候选的地址进行比较来确定编码区域合并候选是否可以用作当前块的合并候选。例如,当包括当前块的合并处理区域的索引与由编码区域合并候选指示的合并处理区域的索引相同时,可以将编码区域合并候选设置为不可用作为当前块的合并候选。可替代地,当包括当前块的编码树区域的索引与由编码区域合并候选指示的编码树区域的索引相同时,可以将编码区域合并候选设置为不可用作为当前块的合并候选。即,可以不将从与当前块的合并处理区域或编码树单元相同的合并处
理区域或编码树单元中包括的块导出的编码区域合并候选、或者从与当前块相邻的块导出的编码区域合并候选添加到当前块的合并候选列表。
[0346]
图30和图31是示出了将具有与当前块相同的地址信息的编码区域合并候选设置为不可用作当前块的合并候选的示例的图。
[0347]
在当前块所属的合并处理区域的索引是2时,可以将从属于索引为2的合并处理区域的块导出的编码区域合并候选设置为不可用作为当前块的合并候选。在图30所示的示例中,由于索引为5的编码区域合并候选hvmpcand[5]的地址信息指示为索引2,因此可以将编码区域合并候选设置为不可用作为当前块的合并候选。
[0348]
在当前块所属的编码树单元的索引是2并且当前块所属的合并处理区域的索引是1时,可以将从与当前块的编码树单元和合并处理区域相同的编码树单元和合并处理区域中包括的块导出的编码区域合并候选设置为不可用作当前块的合并候选。在图31所示的示例中,在索引为5的编码区域合并候选 hvmpcand[5]的情况下,由于编码树单元的索引指示为2并且合并处理区域的索引指示为1,因此可以将所述编码区域合并候选设置为不可用作当前块的合并候选。
[0349]
作为另一示例,当由编码区域合并候选指示的地址信息与当前块的地址信息之间的差值大于或等于阈值时,可以将编码区域合并候选设置为不可用。例如,当由编码区域合并候选指示的编码树单元的地址或索引与当前块所属的编码树单元的地址或索引之间的差值大于或等于阈值时,可以将编码区域合并候选设置为不可用。
[0350]
可替代地,作为另一示例,当由编码区域合并候选指示的地址信息与当前块的地址信息之间的差值小于或等于阈值时,可以将编码区域合并候选设置为不可用。例如,当由编码区域合并候选指示的地址或索引与当前块的地址或索引之间的差值小于或等于阈值时,可以将编码区域合并候选设置为不可用。即,可以将从与当前块相邻的块导出的编码区域合并候选设置为不可用作为当前块的合并候选。
[0351]
当要将从当前块导出的编码区域合并候选添加到编码区域运动信息列表时,可以执行冗余检测。在这种情况下,冗余检测可以是确定从当前块导出的编码区域合并候选的运动信息和地址信息与已存储在编码区域运动信息列表中的编码区域合并候选的运动信息和地址信息是否相同。例如,当已存储了具有与从当前块导出的编码区域合并候选相同的运动向量、参考图像索引和地址信息的编码区域合并候选时,可以不将从当前块导出的编码区域合并候选添加到编码区域运动信息列表。可替代地,当已存储了具有与从当前块导出的编码区域合并候选相同的运动向量、参考图像索引和地址信息的编码区域合并候选时,可以删除已存储的编码区域合并候选,并且可以将从当前块导出的编码区域合并候选添加到编码区域运动信息列表。在这种情况下,可以将最大索引或最小索引分配给从当前块导出的编码区域合并候选。
[0352]
可替代地,可以设置为在检测冗余时不考虑地址信息是否相同。例如,即使从当前块导出的编码区域合并候选的地址信息与已存储在编码区域运动信息列表中的编码区域合并候选的地址信息不同,但如果这两个编码区域合并候选的运动信息相同,则也可以不将从当前块导出的编码区域合并候选添加到编码区域运动信息列表。可替代地,如果虽然从当前块导出的编码区域合并候选的地址信息与已存储在编码区域运动信息列表中的编码区域合并候选的运动信息(地址信息)相同,但是地址信息(运动信息) 不同,则可以删除
已存储的编码区域合并候选,并且可以将从当前块导出的编码区域合并候选添加到编码区域运动信息列表。在这种情况下,可以将最大索引或最小索引分配给从当前块导出的编码区域合并候选。
[0353]
帧内预测是使用当前块周边已编码/解码的重建样本来预测当前块。在这种情况下,当前块的帧内预测可以使用应用环内滤波器之前的重建样本。
[0354]
帧内预测技术包括基于矩阵(matrix)的帧内预测及考虑与周边重建样本的方向性的一般帧内预测。可以通过比特流用信号发送指示当前块的帧内预测技术的信息。所述信息可以是1比特标志。可替代地,基于当前块的位置、大小、形状或相邻块的帧内预测技术中的至少一个,可以确定当前块的帧内预测技术。例如,当当前块跨过图像边界存在时,当前块设置为不应用基于矩阵的帧内预测。
[0355]
基于矩阵的帧内预测是基于编码器及解码器中已存储的矩阵与当前块周边的重建样本之间的矩阵乘法来获得当前块的预测块的方法。可以通过比特流用信号发送用于指定已存储的多个矩阵中的任一个的信息。解码器可以基于所述信息及当前块的大小来确定用于当前块的帧内预测的矩阵。
[0356]
一般帧内预测是基于非角度帧内预测模式或角度帧内预测模式来获得与当前块相关的预测块的方法。
[0357]
可以通过将原始图像与预测图像相减来导出所导出的残差图像。在这种情况下,将残差图像变更为频域时,即使移除频率分量中的高频率分量,也不会大幅降低视频的主观画质。由此,若将高频率分量的值变小或者将高频率分量的值设置为0,则具有在不引起明显视觉失真的情况下提高压缩效率的效果。反映以上特性,可以对当前块进行变换以将残差图像分解为2维频率分量。可以使用离散余弦变换(dct, discrete cosine transform)或离散正弦变换(dst,discrete sine transform)等变换技术来执行所述变换。
[0358]
使用dct或dst变换当前块之后,可以再次对变换的当前块进行变换。在这种情况下,基于dct 或dst的变换可定义为第一变换,再次对应用第一变换的块进行变换的过程可称为第二变换。
[0359]
第一变换可以使用多个变换核候选中的任一个来执行。例如,可以使用dct2、dct8或dct7中的任一个来执行第一变换。
[0360]
针对水平方向及垂直方向还可以使用不同的变换核。还可以通过比特流用信号发送表示水平方向的变换核及垂直方向的变换核的组合的信息。
[0361]
第一变换及第二变换的执行单元会不同。例如,可以对8
×
8块执行第一变换,并且可以对变换的8
×ꢀ
8块中的大小为4
×
4的子块执行第二变换。在这种情况下,还可以将不执行第二变换的剩余区域的变换系数设置为0。
[0362]
可替代地,可以对4
×
4块执行第一变换,并且可以对包括变换的4
×
4块的大小为8
×
8的区域可执行第二变换。
[0363]
可以通过比特流用信号发送表示是否执行第二变换的信息。
[0364]
在解码器中可执行第二变换的逆变换(第二逆变换),并且可以对其结果执行第一变换的逆变换(第一逆变换)。作为第二逆变换及第一逆变换的执行结果,可以获得当前块的残差信号。
[0365]
量化用于减少块的能量,并且量化过程包括将变换系数除以特定常数的过程。所述常数可由量化参数来导出,并且量化参数可定义为1至63之间的值。
[0366]
若在编码器中执行变换及量化,则解码器可以通过逆量化及逆变换来获得残差块。在解码器中将预测块和残差块加起来,可以获得当前块的重建块。
[0367]
若获得当前块的重建块,则可以通过环内滤波(in

loop filtering)来减少在量化及编码过程中产生的信息丢失。环内滤波器可以包括去块滤波器(deblocking filter)、样本自适应偏移滤波器(sample adaptiveoffset filter,sao)或自适应环路滤波器(adaptive loop filter,alf)中的至少一个。
[0368]
将以解码过程或编码过程为中心描述的实施例用于编码过程或解码过程也包括在本发明的范围内。以与所描述的不同的顺序来改变按预定顺序描述的多个实施例也包括在本发明的范围内。
[0369]
已经基于一系列的步骤或流程图来描述实施例,但这并不限定发明的时间序列顺序,并且根据需要可同时执行或者按另外顺序执行。并且,在上述实施例中,构成框图的结构要素(例如,单元、模块等) 还可分别实现为硬件设备或软件,并且多个结构要素可以组合实施为单个硬件设备或软件。所述实施例可以通过程序指令的形式实施,所述程序指令可以由各种计算机部件执行并记录在计算机可读记录介质中。所述计算机可读记录介质可单独包括或组合包括程序指令、数据文件、数据结构等。计算机可读记录介质的示例可以包括硬盘、软盘及磁带等磁性介质、cd

rom、dvd等光学记录介质、如软式光盘 (floptical disk)的磁

光介质(magneto

optical media)及rom、ram、闪速存储器等等以存储程序指令并执行该指令的方式专门配置的硬件设备。所述硬件设备可以被配置为作为一个或多个软件模块进行操作以执行根据本发明的处理,另一方面亦然。
[0370]
工业实用性
[0371]
本发明可以应用于对视频进行编码/解码的电子设备。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜