用于视频编码的方法、装置和存储介质与流程
未命名
09-29
阅读:70
评论:0
用于视频编码的方法、装置和存储介质
1.本技术是申请号为202080016499.9、申请日为2020年3月12日、题目为“用于三角形预测的视频编解码的方法和装置”的发明申请的分案申请。
技术领域
2.本技术总体涉及视频编解码和压缩,并且具体地但不限于在视频编解码中用于使用三角形预测单元(即,几何分割预测单元的特殊情况)的运动补偿预测的方法和装置。
背景技术:
3.各种电子设备(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流设备等)都支持数字视频。电子设备通过实施视频压缩/解压缩来发送、接收、编码、解码和/或存储数字视频数据。数字视频设备实施视频编解码技术,诸如由通用视频编码(vvc)、联合探索测试模型(jem)、mpeg-2、mpeg-4、itu-t h.263、itu-t h.264/mpeg-4、part 10、高级视频编码(avc)、itu-t h.265/高效视频编码(hevc)定义的标准及此类标准的扩展中所描述的那些技术。
4.视频编解码通常使用利用了视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测)。视频编解码技术的重要目标在于将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的降级。随着不断发展的视频服务变得可用,需要具有更好编解码效率的编解码技术。
5.视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测来减少或移除视频数据中固有的冗余。对于基于块的视频编码,将视频帧划分为一个或更多个条带,每个条带具有多个视频块,视频块也可被称为编码树单元(ctu)。每个ctu可包含一个编码单元(cu)或者递归地被划分为更小的cu直到达到预定义的最小cu尺寸为止。每个cu(也称为叶cu)包含一个或多个变换单元(tu)并且每个cu还包含一个或多个预测单元(pu)。可以以帧内、帧间或ibc模式对每个cu进行编码。视频帧的帧内编码(i)条带中的视频块使用关于同一视频帧内的相邻块中的参考样点的空间预测来进行编码。视频帧的帧间编码(p或b)条带中的视频块可使用关于同一视频帧内的相邻块中的参考样点的空间预测或关于其它先前参考视频帧和/或未来参考视频帧中的参考样点的时间预测。
6.基于先前已被编码的参考块(例如,邻近块)的空间预测或时间预测得出用于待编码的当前视频块的预测块。找到参考块的过程可通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据残差块和指向参考帧中的形成预测块的参考块的运动矢量来对帧间编码块进行编码。确定运动矢量的过程通常被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而得出残差变换系数,残差变换系数然后可被量化。最初以二维阵列布置的量化的变换系数可被扫描以产生变换系数的一维矢量,然后被熵编码为视频比特流以实现甚至更大的压缩。
7.然后,将已编码的视频比特流保存于计算机可读存储介质(例如,闪存存储器)中,以由具有数字视频能力的另一电子设备访问或者有线或无线地直接发送到电子设备。然后,电子设备执行视频解压缩(其为与上文描述的视频压缩相反的过程),例如,通过对已编码的视频比特流进行解析来从比特流获得语义元素,并且至少部分地基于从比特流获得的语义元素从已编码的视频比特流将数字视频数据重建为其原始格式,并且电子设备在电子设备的显示器上呈现重建的数字视频数据。
8.随着数字视频质量从高清变为4k
×
2k或甚至8k
×
4k,待编码/解码的视频数据量呈指数增长。在如何在保持解码视频数据的图像质量的同时能够更有效率地对视频数据进行编码/解码方面,是一个长久挑战。
9.在联合视频专家组(jvet)会议中,jvet定义了通用视频编码(vvc)的第一草案和vvc测试模型1(vtm1)编码方法。决定包括使用二划分和三划分编码块结构的具有嵌套多类型树的四叉树作为vvc的初始新编码特征。从那时起,在jvet会议期间已经研发了用于实现编解码方法的参考软件vtm和草拟vvc解码过程。
技术实现要素:
10.一般来说,本公开描述了在视频编解码中与使用作为几何分割预测单元的特殊情况的三角形预测单元的运动补偿预测相关的技术的示例。
11.根据本公开的第一方面,提供了一种用于视频编解码的方法,包括:将视频图片分割为多个编码单元(cu),其中所述多个cu中的至少一个cu进一步被分割为两个预测单元(pu),所述两个pu包括至少一个几何形状pu;构建包括多个候选的第一合并列表,其中每个候选包括一个或更多个运动矢量;并且获得用于所述几何形状pu的单向预测合并列表,其中所述单向预测合并列表包括多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的相应候选的一个运动矢量。
12.根据本公开的第二方面,提供了一种用于视频编解码的装置,包括:处理器;以及存储器,被配置为存储可由处理器执行的指令;其中处理器在执行所述指令时被配置为:将视频图片分割为多个编码单元(cu),其中所述多个cu中的至少一个cu进一步被分割为两个预测单元(pu),所述两个pu包括至少一个几何形状pu;构建包括多个候选的第一合并列表,其中每个候选包括一个或更多个运动矢量;并且获得用于所述几何形状pu的单向预测合并列表,其中所述单向预测合并列表包括多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的相应候选的一个运动矢量。
13.根据本公开的第三方面,提供了一种非暂态计算机可读存储介质,包括存储在其中的指令,其中在由处理器执行所述指令时,所述指令使所述处理器进行以下操作:将视频图片分割为多个编码单元(cu),其中所述多个cu中的至少一个cu进一步被分割为两个预测单元(pu),所述两个pu包括至少一个几何形状pu;构建包括多个候选的第一合并列表,其中每个候选包括一个或更多个运动矢量;并且获得用于所述几何形状pu的单向预测合并列表,其中所述单向预测合并列表包括多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的相应候选的一个运动矢量。
附图说明
14.将通过参照附图中所示的具体示例来呈现本公开的示例的更详细的描述。鉴于这些附图仅描绘了一些示例,并且因此不被认为是对范围的限制,将通过使用附图利用附加的特征和细节来描述和解释示例。
15.图1是示出根据本公开的一些实施方式的示例性视频编码器的框图。
16.图2是示出根据本公开的一些实施方式的示例性视频解码器的框图。
17.图3是示出根据本公开的一些实施方式的四叉树加二叉树(qtbt)结构的示意图。
18.图4是示出根据本公开的一些实施方式的划分为ctu的图片的示例的示意图。
19.图5是示出根据本公开的一些实施方式的多类型树划分模式的示意图。
20.图6是示出根据本公开的一些实施方式的将cu划分为三角形预测单元的示意图。
21.图7是示出根据本公开的一些实施方式的邻近块的位置的示意图。
22.图8是示出根据本公开的一些实施方式的空间合并候选的位置的示意图。
23.图9是示出根据本公开的一些实施方式的时间合并候选的运动矢量缩放的示意图。
24.图10是示出根据本公开的一些实施方式的时间合并候选的候选位置的示意图。
25.图11a至图11b是示出根据本公开的一些实施方式的用于三角形预测模式的单向预测运动矢量(mv)选择的示例的示意图。
26.图12a至图12d是示出根据本公开的一些实施方式的用于三角形预测模式的单向预测mv选择的示例的示意图。
27.图13是示出根据本公开的一些实施方式的用于视频编解码的示例性装置的框图。
28.图14是示出根据本公开的一些实施方式的用于使用三角形预测单元的运动补偿预测的视频编解码的示例性过程的流程图。
具体实施方式
29.现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,可使用各种替代方案。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
30.贯穿本说明书对“一个实施例”、“实施例”、“示例”、“一些实施例”、“一些示例”或类似语言的引用表示所描述的特定特征、结构或特性被包括在至少一个实施例或示例中。除非另有明确说明,否则结合一个或一些实施例描述的特征、结构、元件或特性也适用于其它实施例。
31.在整个公开内容中,除非另有明确说明,否则术语“第一”、“第二”、“第三”等都用作仅用于提及相关元件(例如,设备、组件、组合物、步骤等)的命名,而不指示任何空间或时间顺序。例如,“第一设备”和“第二设备”可指两个单独形成的设备,或者同一设备的两个部分、组件或操作状态,并且可被任意命名。
32.如本文所使用的,取决于上下文,术语“如果”或“当......时”可被理解为表示“在......时”或“响应于......”。这些术语如果出现在权利要求中,则可不指示相关限制或特征是有条件的或可选的。
33.术语“模块”、“子模块”、“电路”、“子电路”、“电路系统”、“子电路系统”、“单元”或“子单元”可包括存储可由一个或更多个处理器执行的代码或指令的存储器(共享、专用或组合)。模块可包括具有或不具有存储的代码或指令的一个或更多个电路。模块或电路可包括直接或间接连接的一个或更多个组件。这些组件可以或可不物理地附接到彼此或彼此相邻定位。
34.单元或模块可纯粹通过软件、纯粹通过硬件或通过硬件和软件的组合来实现。在纯软件实施方式中,例如,单元或模块可包括直接或间接链接在一起的功能上相关的代码块或软件组件,以便执行特定功能。
35.图1展示了示出可与使用基于块的处理的许多视频编解码标准结合使用的示例性的基于块的混合视频编码器100的框图。在编码器100中,视频帧被分割为多个视频块以进行处理。对于每个给定视频块,基于帧间预测方法或帧内预测方法来形成预测。在帧间预测中,基于来自先前重建帧的像素点,通过运动估计和运动补偿来形成一个或多个预测值。在帧内预测中,基于当前帧中的重建像素点来形成预测值。通过模式决策,可选择最佳预测值来预测当前块。
36.将表示当前视频块与其预测值之间的差的预测残差发送到变换电路102。然后将变换系数从变换电路102发送到量化电路104以用于熵减少。然后将量化的系数馈送到熵编码电路106以生成压缩的视频比特流。如图1所示,来自帧间预测电路和/或帧内预测电路112的预测相关信息110(诸如视频块分割信息、运动矢量、参考图片索引和帧内预测模式)也通过熵编码电路106被馈送并保存到压缩的视频比特流114中。
37.在编码器100中,为了预测的目的,还需要解码器相关电路以便重建像素点。首先,通过反量化116和逆变换电路118重建预测残差。该重建的预测残差与块预测值120组合以生成当前视频块的未经滤波的重建像素点。
38.空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编码的邻近块的样点(其被称为参考样点)的像素来预测当前视频块。
39.时间预测(也被称为“帧间预测”)使用来自已经编码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。通常通过指示当前cu与其时间参考之间的运动的量和方向的一个或更多个运动矢量(mv)来用信号发送给定编码单元(cu)或编码块的时间预测信号。此外,如果支持多个参考图片,则另外发送一个参考图片索引,其中该参考图片索引用于识别时间预测信号来自参考图片存储器中的哪个参考图片。
40.在执行空间和/或时间预测之后,编码器100中的帧内/帧间模式决策电路121例如基于率失真优化方法来选择最佳预测模式。然后从当前视频块减去块预测值120;并且使用变换电路102和量化电路104对所得到的预测残差进行去相关。所得到的量化的残差系数通过反量化电路116被反量化并且通过逆变换电路118被逆变换以形成重建残差,接着将重建残差加回到预测块以形成cu的重建信号。在将重建cu放入图片缓冲器117的参考图片存储器中并用于对后面的视频块进行编解码之前,可对重建cu进一步应用环路滤波115,诸如去块滤波器、样点自适应偏移(sao)和/或自适应环路滤波器(alf)。为了形成输出视频比特流114,将编码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数全部发送到熵编码单元106,以进一步压缩和打包以形成比特流。
41.例如,去块滤波器在avc、hevc以及vvc的目前版本中可用。在hevc中,将被称为样
点自适应偏移(sao)的附加环路滤波器定义用于进一步提高编码效率。在vvc标准的当前版本中,正在被积极地研究被称为自适应环路滤波器(alf)的另外的环路滤波器,并且它很有可能被包括在最终标准中。
42.这些环路滤波器操作是可选的。执行这些操作有助于提高编码效率和视觉质量。它们也可根据由编码器100呈现的决策被关闭,以节省计算复杂度。
43.应注意,帧内预测通常基于未经滤波的重建像素点,而帧间预测基于经过滤波的重建像素点(在编码器100打开这些滤波器选项的情况下)。
44.图2是示出可与许多视频编解码标准结合使用的示例性的基于块的视频解码器200的框图。该解码器200类似于驻留在图1的编码器100中的重建相关部分。在解码器200中,首先通过熵解码202对输入的视频比特流201进行解码,以导出量化的系数等级和预测相关信息。然后通过反量化204和逆变换206对量化的系数等级进行处理,以获得重建的预测残差。在帧内/帧间模式选择器212中实现的块预测值机制被配置为基于经解码的预测信息来执行帧内预测208或运动补偿210。通过使用求和器214对来自逆变换206的重建预测残差和由块预测值机制生成的预测输出进行求和来获得一组未经滤波的重建像素点。
45.在将重建块存储在用作参考图片存储器的图片缓冲器213中之前,重建块可进一步通过环路滤波器209。图片缓冲器213中的重建视频可被发送以驱动显示设备以及用于预测后面的视频块。在打开环路滤波器209的情况下,对这些重建像素执行滤波操作以导出最终的重建视频输出222。
46.上文所提及的视频编码/解码标准(诸如vvc、jem、hevc、mpeg-4、part 10)在概念上类似。例如,它们都使用基于块的处理。下面阐述一些标准中的块分割方案。
47.hevc是以基于混合块的运动补偿变换编码架构为基础。用于压缩的基本单元被称为编码树单元(ctu)。对于4:2:0色度格式,最大ctu尺寸被定义为多达64乘64亮度像素和两个32乘32色度像素的块。每个ctu可包含一个编码单元(cu)或递归地被划分为四个较小cu,直到达到预定义的最小cu尺寸为止。每个cu(也称为叶cu)包含一个或多个预测单元(pu)和变换单元(tu)树。
48.一般来说,除单色内容外,ctu可包括一个亮度编码树块(ctb)和两个对应的色度ctb;cu可包括一个亮度编码块(cb)和两个对应的色度cb;pu可包括一个亮度预测块(pb)和两个对应的色度pb;并且tu可包括一个亮度变换块(tb)和两个对应的色度tb。然而,可能发生例外,这是因为对于亮度和色度两者,最小tb尺寸是4
×
4(即,对于4:2:0颜色格式不支持2
×
2色度tb)并且不管对应的帧内亮度cb中的帧内亮度pb的数量如何,每个帧内色度cb总是仅具有一个帧内色度pb。
49.对于帧内cu,亮度cb可通过一个或四个亮度pb预测,并且两个色度cb中的每一个色度cb总是通过一个色度pb预测,其中每个亮度pb具有一个帧内亮度预测模式,并且两个色度pb共享一个帧内色度预测模式。此外,对于帧内cu,tb尺寸不能大于pb尺寸。在每个pb中,应用帧内预测以从tb的邻近重建样点预测pb内部的每个tb的样点。对于每个pb,除了33个方向帧内预测模式之外,还支持dc模式和平面模式以分别预测平坦区域和逐渐变化的区域。
50.对于每个帧间pu,可选择包括帧间、跳过和合并的三种预测模式中的一个。一般而言,引入运动矢量竞争(mvc)方案以从包括空间运动候选和时间运动候选的给定候选集合
中选择运动候选。对于运动估计的多个参考使得在2个可能的重建参考图片列表(即列表0和列表1)中找到最佳参考。对于帧间模式(称为amvp模式,其中amvp代表高级运动矢量预测),发送帧间预测指示符(列表0、列表1或双向预测)、参考索引、运动候选索引、运动矢量差(mvd)和预测残差。对于跳过模式和合并模式,仅发送合并索引,并且当前pu从由编码的合并索引所参考的邻近pu继承帧间预测指示符、参考索引和运动矢量。在跳过编码的cu的情况下,残差信号也被省略。
51.联合探索测试模型(jem)建立在hevc测试模型之上。hevc的基本编码和解码流程在jem中保持不变;然而,最重要的模块(包括块结构、帧内和帧间预测、残差变换、环路滤波器和熵编解码的模块)的设计元素被稍微修改,并且添加了另外的编码工具。jem中包括以下新的编码特征。
52.在hevc中,通过使用表示为编码树的四叉树结构将ctu划分为cu以适应各种局部特性。使用图片间(时间)预测还是使用图片内(空间)预测对图片区域进行编码的决定是在cu级做出的。可根据pu划分类型进一步将每个cu划分为一个、两个或四个pu。在一个pu内部,应用相同的预测过程,并且基于pu将相关信息发送到解码器。在通过基于pu划分类型应用预测过程而获得残差块之后,可根据cu的类似于编码树的另一四叉树结构将cu分割为变换单元(tu)。hevc结构的关键特征之一是它具有包括cu、pu和tu的多个分割概念。
53.图3是示出根据本公开的一些实施方式的四叉树加二叉树(qtbt)结构的示意图。
54.qtbt结构去除了多个分割类型的概念,即,它去除了对cu、pu和tu概念的区分,并且支持对于cu分割形状的更大灵活性。在qtbt块结构中,cu可具有正方形或矩形形状。如图3中所示,首先通过四元树(即,四叉树)结构对编码树单元(ctu)进行分割。可通过二叉树结构进一步对四叉树叶节点进行分割。在二叉树划分中存在两种划分类型:对称水平划分和对称垂直划分。二叉树叶节点被称为编码单元(cu),并且这样的分区用于预测和变换处理而不再进行任何进一步分割。这意味着cu、pu和tu在qtbt编码块结构中具有相同的块尺寸。在jem中,cu有时由不同颜色分量的编码块(cb)组成,例如,在4:2:0色度格式的p和b条带的情况下,一个cu包含一个亮度cb和两个色度cb,并且cu有时由一个分量的cb组成,例如,在i条带的情况下,一个cu仅包含一个亮度cb或仅包含两个色度cb。
55.针对qtbt分割方案定义以下参数。
[0056]-ctu size:四叉树的根节点尺寸,与hevc中的概念相同;
[0057]-minqtsize:允许的最小四叉树叶节点尺寸;
[0058]-maxbtsize:允许的最大二叉树根节点尺寸;
[0059]-maxbtdepth:允许的最大二叉树深度;
[0060]-minbtsize:允许的最小二叉树叶节点尺寸。
[0061]
在qtbt分割结构的一个示例中,ctu尺寸被设置为128
×
128亮度样点与两个对应的64
×
64色度样点块(具有4:2:0色度格式),minqtsize被设置为16
×
16,maxbtsize被设置为64
×
64,minbtsize(针对宽度和高度两者)被设置为4
×
4,并且maxbtdepth被设置为4。首先将四叉树分割应用于ctu以产生四叉树叶节点。四叉树叶节点可具有从16
×
16(即,minqtsize)到128
×
128(即,ctu size)的尺寸。如果四叉树叶节点是128
×
128,则由于尺寸超过maxbtsize(即,64
×
64),所以它将不通过二叉树被进一步划分。否则,四叉树叶节点可通过二叉树被进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为
0。当二叉树深度达到maxbtdepth(即,4)时,不考虑进一步划分。当二叉树节点具有等于minbtsize的宽度(即,4)时,不考虑进一步水平划分。类似地,当二叉树节点具有等于minbtsize的高度时,不考虑进一步垂直划分。通过预测和变换处理进一步处理二叉树的叶节点,而不再进行任何进一步分割。在jem中,最大ctu尺寸为256
×
256亮度样点。
[0062]
在图3中示出了通过使用qtbt方案的块分割的示例以及对应的树表示。实线指示四叉树划分,并且虚线指示二叉树划分。如图3中所示,首先通过四叉树结构对编码树单元(ctu)300进行分割,并且通过四叉树结构或二叉树结构进一步对四个四叉树叶节点302、304、306、308中的三个进行分割。例如,通过四叉树划分进一步对四叉树叶节点306进行分割;通过二叉树划分将四叉树叶节点304进一步分割为两个叶节点304a、304b;并且还通过二叉树划分进一步对四叉树叶节点302进行分割。在二叉树的每个划分(即,非叶)节点中,标示一个标志以指示使用哪个划分类型(即,水平或垂直),其中0指示水平划分并且1指示垂直划分。例如,对于四叉树叶节点304,标示为0以指示水平划分,并且对于四叉树叶节点302,标示为1以指示垂直划分。对于四叉树划分,不需要指示划分类型,这是因为四叉树划分总是水平和垂直地对块进行划分以产生具有相等尺寸的4个子块。
[0063]
另外,qtbt方案支持亮度和色度具有单独的qtbt结构的能力。当前,对于p和b条带,一个ctu中的亮度和色度ctb共享同一qtbt结构。然而,对于i条带,亮度ctb通过qtbt结构被分割为cu,并且色度ctb通过另一qtbt结构被分割为色度cu。这表示i条带中的cu由亮度分量的编码块或两个色度分量的编码块组成,并且p或b条带中的cu由全部三个颜色分量的编码块组成。
[0064]
在联合视频专家组(jvet)会议中,jvet定义了通用视频编码(vvc)的第一草案和vvc测试模型1(vtm1)编码方法。决定包括使用二划分和三划分编码块结构的具有嵌套多类型树的四叉树作为vvc的初始新编码特征。
[0065]
在vvc中,图片分割结构将输入视频划分为被称为编码树单元(ctu)的块。使用具有嵌套多类型树结构的四叉树将ctu划分为编码单元(cu),其中叶编码单元(cu)定义了共享相同的预测模式(例如,帧内或帧间)的区域。这里,术语“单元”定义了图像的覆盖所有分量的区域;术语“块”用于定义覆盖特定分量(例如亮度)的区域,并且在考虑色度采样格式(诸如4:2:0)时可在空间位置上不同。
[0066]
将图片分割为ctu
[0067]
图4是示出根据本公开的一些实施方式的划分为ctu的图片的示例的示意图。
[0068]
在vvc中,图片被划分为ctu序列,并且ctu概念与hevc的ctu概念相同。对于具有三个样点阵列的图片,ctu由n
×
n的亮度样点块以及两个对应的色度样点块组成。图4示出划分为ctu 402的图片400的示例。
[0069]
ctu中的亮度块的最大允许尺寸被指定为128
×
128(尽管亮度变换块的最大尺寸为64
×
64)。
[0070]
使用树结构对ctu进行分割
[0071]
图5是示出根据本公开的一些实施方式的多类型树划分模式的示意图。
[0072]
在hevc中,通过使用表示为编码树的四元树结构将ctu划分为cu以适应各种局部特性。使用图片间(时间)预测还是使用图片内(空间)预测对图片区域进行编码的决定是在叶cu级做出的。可根据pu划分类型进一步将每个叶cu划分为一个、两个或四个pu。在一个pu
内部,应用相同的预测过程,并且基于pu将相关信息发送到解码器。在通过基于pu划分类型应用预测过程而获得残差块之后,可根据cu的类似于编码树的另一四元树结构将叶cu划分为变换单元(tu)。hevc结构的关键特征之一是它具有包括cu、pu和tu的多个分割概念。
[0073]
在vvc中,使用二划分和三划分分区结构的具有嵌套多类型树的四叉树来代替多个分割单元类型的概念,即,它去除了对cu、pu和tu概念的区分(除具有对于最大变换长度来说太大的尺寸的cu需要这种概念的区分之外),并且支持对于cu分割形状的更大灵活性。在编码树结构中,cu可具有正方形或矩形形状。首先通过四元树(即,四叉树)结构对编码树单元(ctu)进行分割。然后,可通过多类型树结构进一步对四元树叶节点进行分割。如图5所示,在多类型树结构中存在四种划分类型:垂直二划分502(split_bt_ver)、水平二划分504(split_bt_hor)、垂直三划分506(split_tt_ver)和水平三划分508(split_tt_hor)。多类型树叶节点被称为编码单元(cu),并且除非cu对于最大变换长度来说太大,否则此分区用于预测和变换处理而不再进行任何进一步分割。这表示,在大多数情况下,cu、pu和tu在具有嵌套多类型树编码块结构的四叉树中具有相同的块尺寸。当最大支持变换长度小于cu的颜色分量的宽度或高度时,出现例外。在vtm1中,cu由不同颜色分量的编码块(cb)组成,例如,一个cu包含一个亮度cb和两个色度cb(除非视频是单色的,即,仅具有一个颜色分量)。
[0074]
将cu分割为多个预测单元
[0075]
在vvc中,对于基于上文所述的结构分割出的每个cu,可对整个cu块或者以下面段落中所解释的子块方式执行块内容的预测。这种预测的操作单元被称为预测单元(或pu)。
[0076]
在帧内预测(或帧内部预测)的情况下,pu的尺寸通常等于cu的尺寸。换句话说,对整个cu块执行预测。对于帧间预测(或帧之间预测),pu的尺寸可等于或小于cu的尺寸。换句话说,存在cu可被划分为多个pu以用于预测的情况。
[0077]
pu尺寸小于cu尺寸的一些示例包括仿射预测模式、高级时间级运动矢量预测(atmvp)模式和三角形预测模式等。
[0078]
在仿射预测模式下,cu可被划分为多个4
×
4pu以用于预测。可针对每个4
×
4pu推导运动矢量并且可相应地对4
×
4pu执行运动补偿。在atmvp模式下,cu可被划分为一个或多个8
×
8pu以用于预测。针对每个8
×
8pu推导运动矢量并且可相应地对8
×
8pu执行运动补偿。在三角形预测模式下,cu可被划分为两个三角形形状预测单元。针对每个pu推导运动矢量并且相应地执行运动补偿。对于帧间预测,支持三角形预测模式。下面阐述三角形预测模式的更多细节。
[0079]
三角形预测模式(或三角形分割模式)
[0080]
图6是示出根据本公开的一些实施方式的将cu划分为三角形预测单元的示意图。
[0081]
三角形预测模式的概念是针对运动补偿预测引入三角形分区。三角形预测模式也可被命名为三角形预测单元模式或三角形分割模式。如图6所示,cu 602或604在对角线或反对角线方向上(即,如在cu 602中示出的从左上角到右下角的划分或如在cu 604中示出的从右上角到左下角的划分)被划分为两个三角形预测单元pu1和pu2。cu中的每个三角形预测单元使用其自己的从单向预测候选列表推导的单向预测运动矢量和参考帧索引进行帧间预测。在预测三角形预测单元之后,对对角线边缘执行自适应加权过程。然后,将变换和量化过程应用于整个cu。注意,该模式仅被应用于当前vvc中的跳过和合并模式。尽管在图6中,cu被示出为正方形块,但是三角形预测模式也可被应用于非正方形(即,矩形)形状cu。
[0082]
单向预测候选列表可包括一或更多个候选,并且每个候选可以是运动矢量。因此,贯穿本公开,术语“单向预测候选列表”、“单向预测运动矢量候选列表”和“单向预测合并列表”可互换使用;并且术语“单向预测合并候选”和“单向预测运动矢量”也可互换使用。
[0083]
单向预测运动矢量候选列表
[0084]
图7是示出根据本公开的一些实施方式的邻近块的位置的示意图。
[0085]
在一些示例中,单向预测运动矢量候选列表可包括两个到五个单向预测运动矢量候选。在一些其他示例中,有可能是其他数量。它是从邻近块推导的。如图7中所示,单向预测运动矢量候选列表是从包括五个空间邻近块(1到5)和两个时间同位块(6到7)的七个邻近块推导的。将七个邻近块的运动矢量收集到第一合并列表中。然后,根据特定顺序基于第一合并列表运动矢量来形成单向预测候选列表。基于所述顺序,首先在单向预测运动矢量候选列表中放入来自第一合并列表的单向预测运动矢量,接着是双向预测运动矢量的参考图片列表0或l0运动矢量,然后是双向预测运动矢量的参考图片列表1或l1运动矢量,再接着是双向预测运动矢量的l0和l1运动矢量的平均运动矢量。此时,如果候选的数量仍然小于目标数量(其在当前vvc中为5),则将零运动矢量添加到列表以满足目标数量。
[0086]
针对每个三角形pu基于其运动矢量推导预测因子。值得注意的是,所推导的预测因子覆盖比实际三角形pu更大的区域,使得沿两个三角形pu的共享对角线边缘存在两个预测因子的重叠区域。将加权过程应用于两个预测因子之间的对角线边缘区域,以推导cu的最终预测。当前用于亮度样点和色度样点的加权因子分别是{7/8,6/8,5/8,4/8,3/8,2/8,1/8}和{6/8,4/8,2/8}。
[0087]
常规合并模式运动矢量候选列表
[0088]
根据当前vvc,在整个cu被预测而不被划分为多于一个pu的常规合并模式下,使用与用于三角形预测模式的过程不同的过程来构建运动矢量候选列表或合并候选列表。
[0089]
图8是示出根据本公开的一些实施方式的空间合并候选的位置的示意图,如图8所示,首先,基于来自邻近块的运动矢量来选择空间运动矢量候选。在对当前块802的空间合并候选的推导中,在位于如图8中所描绘的位置中的候选中选择最多四个合并候选。推导的顺序是a1→
b1→
b0→
a0→
(b2)。仅当位置a1、b1、b0、a0的任何pu不可用或被帧内编解码时才考虑位置b2。
[0090]
接下来,推导时间合并候选。在时间合并候选的推导中,基于属于给定参考图片列表内的与当前图片具有最小图片顺序计数(poc)差的图片的同位pu来推导经缩放的运动矢量。在条带头中显式地标示将被用于推导同位pu的参考图片列表。图9示出了根据本公开的一些实施方式的时间合并候选的运动矢量缩放,如图9中的虚线所示,获得时间合并候选的经缩放的运动矢量。使用poc距离tb和td从同位pu col_pu的运动矢量对时间合并候选的经缩放的运动矢量进行缩放,其中tb被定义为当前图片curr_pic的参考图片curr_ref与当前图片curr_pic之间的poc差,并且td被定义为同位图片col_pic的参考图片col_ref与同位图片col_pic之间的poc差。时间合并候选的参考图片索引被设置为等于零。在hevc草案规范中描述了缩放过程的实际实现。对于b条带,获得并组合两个运动矢量(针对参考图片列表0的一个以及针对参考图片列表1的另一个)以形成双向预测合并候选。
[0091]
图10是示出根据本公开的一些实施方式的时间合并候选的候选位置的示意图。
[0092]
如图10中所描绘的,在两个候选位置c3和h之间选择同位pu的位置。如果位置h处
的pu不可用,或被帧内编解码,或在当前ctu外部,则位置c3用于推导时间合并候选。否则,位置h用于推导时间合并候选。
[0093]
在将空间和时间运动矢量两者插入到如上文所描述的合并候选列表中之后,添加基于历史的合并候选。所谓的基于历史的合并候选包括来自先前编解码的cu的那些运动矢量,这些运动矢量被维护在单独的运动矢量列表中,并且基于特定规则进行管理。
[0094]
在插入基于历史的候选之后,如果合并候选列表未满,则将成对平均运动矢量候选进一步添加到列表中。如其名称所示,通过对已经在当前列表中的候选进行平均来构建这种类型的候选。更具体地,基于特定顺序或规则,每次采用合并候选列表中的两个候选,并且将该两个候选的平均运动矢量附加到当前列表。
[0095]
在插入成对平均运动矢量之后,如果合并候选列表仍未满,则将添加零运动矢量以填满列表。
[0096]
使用常规合并列表构建过程来构建用于三角形预测的第一合并列表
[0097]
当前vvc中的三角形预测模式在其形成预测值的整个过程中与常规合并预测模式共享一些相似性。例如,在两种预测模式下,需要至少基于当前cu的邻近空间运动矢量和同位运动矢量来构建合并列表。同时,三角形预测模式还具有与常规合并预测模式不同的一些方面。
[0098]
例如,尽管在三角形预测模式和常规合并预测模式下需要构建合并列表,但是获得这样的列表的详细过程不同。
[0099]
这些差异导致编解码器实现的额外成本,这是因为需要额外的逻辑。构建合并列表的过程和逻辑可在三角形预测模式和常规合并预测模式之间被统一和共享。
[0100]
在一些示例中,在形成用于三角形预测模式的单向预测(也称为单预测)合并列表时,在将新运动矢量添加到合并列表中之前,针对已经在列表中的那些运动矢量完全地修剪新运动矢量。换句话说,将新运动矢量与已经在单向预测合并列表中的每个运动矢量进行比较,并且仅当新运动矢量与合并列表中的每个运动矢量不同时才将新运动矢量添加到列表中。否则,不将新运动矢量添加到列表中。
[0101]
根据本公开的一些示例,在三角形预测模式下,可从常规合并模式运动矢量候选列表(可被称为常规合并列表)获得或构建单向预测合并列表。
[0102]
更具体地,为了构建用于三角形预测模式的合并候选列表,首先基于用于常规合并预测的合并列表构建过程来构建第一合并列表。第一合并列表包括多个候选,每个候选是运动矢量。然后,使用第一合并列表中的运动矢量进一步构建或导出用于三角形预测模式的单向预测合并列表。
[0103]
应注意,在这种情况下构建的第一合并列表可选择与一般合并模式或常规合并模式的列表大小不同的列表大小。在本公开的一个示例中,第一合并列表具有与一般合并模式的列表相同的大小。在本公开的另一示例中,所构建的第一合并列表具有与一般合并模式的列表大小不同的列表大小。
[0104]
从第一合并列表构建单向预测合并列表
[0105]
根据本公开的一些示例,可基于以下方法之一从第一合并列表构建或导出用于三角形预测模式的单向预测合并列表。
[0106]
在本公开的示例中,为了构建或导出单向预测合并列表,首先检查第一合并列表
中的候选的预测列表0运动矢量并且将其选择到单向预测合并列表中。如果在此过程之后单向预测合并列表未满(例如,此列表中的候选的数量仍小于目标数量),则检查第一合并列表中的候选的预测列表1运动矢量并且将其选择到单向预测合并列表中。如果单向预测合并列表仍然未满,则将预测列表0零矢量添加到单向预测合并列表中。如果单向预测合并列表仍然未满,则将预测列表1零矢量添加到单向预测合并列表中。
[0107]
在本公开的另一示例中,对于第一合并列表中的每个候选,将其预测列表0运动矢量和预测列表1运动矢量以交错方式添加到单向预测合并列表中。更具体地,对于第一合并列表中的每个候选,如果候选是单向预测运动矢量,则将其直接添加到单向预测合并列表中。否则,如果候选是第一合并列表中的双向预测运动矢量,则首先将其预测列表0运动矢量添加到单向预测合并列表中,接着添加其预测列表1运动矢量。一旦检查并添加完第一合并列表中的所有运动矢量候选,而单向预测合并列表依然未满,就可添加单向预测零运动矢量。例如,对于每个参考帧索引,可将预测列表0零运动矢量和预测列表1零运动矢量单独添加到单向预测合并列表中,直到列表填满为止。
[0108]
在本公开的又一示例中,首先将来自第一合并列表的单向预测运动矢量选择到单向预测合并列表中。如果单向预测合并列表在此过程之后未满,则对于第一合并列表中的每个双向预测运动矢量,首先将其预测列表0运动矢量添加到单向预测合并列表中,接着添加其预测列表1运动矢量。在此过程之后,如果单向预测合并列表依然未满,则可添加单向预测零运动矢量。例如,对于每个参考帧索引,可将预测列表0零运动矢量和预测列表1零运动矢量单独添加到单向预测合并列表中,直到所述列表填满为止。
[0109]
在以上描述中,当将单向预测运动矢量添加到单向预测合并列表中时,可执行运动矢量修剪过程以确保将被添加的新运动矢量不同于已经在单向预测合并列表中的那些运动矢量。也可按照部分的方式执行这样的运动矢量修剪过程以获得较低复杂度,例如,仅针对已经在单向预测合并列表中的一些而非全部运动矢量检查将被添加的新运动矢量。在极端情况下,在所述过程中不执行运动矢量修剪(即,运动矢量比较操作)。
[0110]
基于图片预测配置从第一合并列表构建单向预测合并列表
[0111]
在本公开的一些示例中,可基于当前图片是否使用后向预测以自适应方式来构建单向预测合并列表。例如,根据当前图片是否使用后向预测,可使用不同的方法来构建单向预测合并列表。如果所有参考图片的图片顺序计数(poc)值不大于当前图片的poc值,则表示当前图片不使用后向预测。
[0112]
在本公开的示例中,在当前图片不使用后向预测时,或在确定当前图片不使用后向预测后,首先检查第一合并列表中的候选的预测列表0运动矢量并且将其选择到单向预测合并列表中,随后是那些候选的预测列表1运动矢量;如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可检查第一合并列表中的每个候选的预测列表0运动矢量和预测列表1运动矢量并且按照如上所述的交错方式将其选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,接着添加第一候选的预测列表1运动矢量,然后添加第二候选的预测列表0运动矢量,接着添加第二候选的预测列表1运动矢量,等等。在过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
[0113]
在本公开的另一示例中,如果当前图片不使用后向预测,则首先检查第一合并列
表中的候选的预测列表1运动矢量并且将其选择到单向预测合并列表中,接着是那些候选的预测列表0运动矢量;如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可检查第一合并列表中的每个候选的预测列表0运动矢量和预测列表1运动矢量并且按照如上所述的交错方式将其选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,接着添加第一候选的预测列表1运动矢量,然后添加第二候选的预测列表0运动矢量,接着添加第二候选的预测列表1运动矢量,等等。在过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
[0114]
在本公开的又一示例中,如果当前图片不使用后向预测,则仅首先检查第一合并列表中的候选的预测列表0运动矢量并且将其选择到单向预测合并列表中,如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可检查第一合并列表中的每个候选的预测列表0运动矢量和预测列表1运动矢量并且按照如上所述的交错方式将其选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,接着添加第一候选的预测列表1运动矢量,然后添加第二候选的预测列表0运动矢量,接着添加第二候选的预测列表1运动矢量,等等。在过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
[0115]
在本公开的又一示例中,如果当前图片不使用后向预测,则仅首先检查第一合并列表中的候选的预测列表1运动矢量并且将其选择到单向预测合并列表中,如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可检查第一合并列表中的每个候选的预测列表0运动矢量和预测列表1运动矢量并且按照如上所述的交错方式将其选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,接着添加第一候选的预测列表1运动矢量,然后添加第二候选的预测列表0运动矢量,接着添加第二候选的预测列表1运动矢量,等等。在过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
[0116]
在不创建单向预测合并列表的情况下使用第一合并列表进行三角形预测
[0117]
在以上示例中,通过将来自第一合并列表的运动矢量选择到单向预测合并列表中来构建用于三角形预测的单向预测合并列表。然而,在实践中,可按照不同的方式(物理地形成单向预测(或单预测)合并列表或不物理地形成单向预测(或单预测)合并列表)实现方法。在一些示例中,可直接使用第一合并列表而无需物理地创建单向预测合并列表。例如,可基于特定顺序仅对第一合并列表中的每个候选的列表0运动矢量和/或列表1运动矢量设置索引并且直接从第一合并列表对其进行访问。
[0118]
例如,可从解码器或其他电子设备/组件获得第一合并列表。在其它示例中,在基于用于常规合并预测的合并列表构建过程构建包括多个候选(每个候选是一个或更多个运动矢量)的第一合并列表之后,不构建单向预测合并列表,而是使用包括多个参考索引(每个参考索引是对第一合并列表中的候选的运动矢量的参考)的预定义索引列表来导出用于三角形预测模式的单向合并候选。索引列表可被认为是用于三角形预测的单向预测合并列表的表示,并且单向预测合并列表至少包括第一合并列表中与参考索引相应的候选的子集。应注意,索引的顺序可遵循在构建单向预测合并列表的示例中描述的任何选择顺序。实际上,这样的索引列表可按照不同的方式实现。例如,它可显式地实现为列表。在其他示例中,它也可在特定逻辑和/或程序功能中实现或获得,而不显式地形成任何列表。
[0119]
在本公开的一些示例中,可基于当前图片是否使用后向预测来按照自适应方式确定索引列表。例如,可根据当前图片是否使用后向预测(即,基于当前图片的图片顺序计数(poc)与参考图片的poc的比较结果)来排列索引列表中的参考索引。如果所有参考图片的图片顺序计数(poc)值不大于当前图片的poc值,则表示当前图片不使用后向预测。
[0120]
在本公开的一个示例中,在当前图片不使用后向预测时,第一合并列表中的候选的预测列表0运动矢量被用作单向预测合并候选,并根据与它们在第一合并列表中相同的索引顺序被设置索引。也就是说,在确定当前图片的poc大于参考图片的poc中的每个poc后,根据第一合并列表中的候选的列表0运动矢量的相同顺序来排列参考索引。否则,如果当前图片使用后向预测,则第一合并列表中的每个候选的列表0运动矢量和列表1运动矢量被用作单向预测合并候选,并基于交错方式被设置索引,即,先是第一合并列表中的第一候选的列表0运动矢量,接着是第一候选的列表1运动矢量,然后是第二候选的列表0运动矢量,接着是第二候选的列表1运动矢量,等等。也就是说,在确定当前图片的poc小于参考图片的poc中的至少一个后,在第一合并列表中的每个候选是双向预测运动矢量的情况下,根据第一合并列表中的每个候选的列表0运动矢量和列表1运动矢量的交错方式来排列参考索引。在第一合并列表中的候选是单向运动矢量的情况下,将零运动矢量设置索引为在该候选的运动矢量之后的单向预测合并候选。这确保对于当前图片使用后向预测的情况,第一合并列表中的每个候选(不管其是双向预测运动矢量还是单向预测运动矢量)提供两个单向运动矢量作为单向预测合并候选。
[0121]
在本公开的另一示例中,在当前图片不使用后向预测时,第一合并列表中的候选的预测列表0运动矢量被用作单向预测合并候选,并根据与它们在第一合并列表中相同的索引顺序被设置索引。否则,如果当前图片使用后向预测,则第一合并列表中的每个候选的列表0运动矢量和列表1运动矢量被用作单向预测合并候选,并基于如上所述的交错方式被设置索引,即,先是第一合并列表中的第一候选的列表0运动矢量,接着是第一候选的列表1运动矢量,然后是第二候选的列表0运动矢量,接着是第二候选的列表1运动矢量,等等。在第一合并列表中的候选是单向运动矢量的情况下,将运动矢量加上特定运动偏移设置索引为在该候选的运动矢量之后的单向预测合并候选。
[0122]
因此,在第一合并列表中的候选是单向运动矢量的情况下,在确定当前图片的poc小于参考图片的poc中的至少一个后,根据以下的交错方式来排列参考索引:第一合并列表中的每个候选的运动矢量、零运动矢量、或运动矢量加上偏移。
[0123]
在以上过程中,当检查将被添加到单向预测合并列表中的新运动矢量时,可完全地或部分地执行修剪。当部分地执行时,这表示将新运动矢量与已经在单向预测合并列表中的一些运动矢量而非全部运动矢量进行比较。在极端情况下,在过程中不执行运动矢量修剪(即,运动矢量比较操作)。
[0124]
还可基于当前图片是否使用后向预测,在形成单向预测合并列表时自适应地执行运动矢量修剪。例如,本公开的对于与基于图片预测配置的索引列表确定相关的示例,在当前图片不使用后向预测时,完全地或部分地执行运动矢量修剪操作。在当前图片使用后向预测时,不执行运动矢量修剪操作。
[0125]
选择用于三角形预测模式的单向预测合并候选
[0126]
除了上述示例之外,还公开了单向预测合并列表构建或单向预测合并候选选择的
其他方式。
[0127]
在本公开的一个示例中,一旦构建了用于常规合并模式的第一合并列表,就可根据以下规则选择单向预测合并候选用于三角形预测:
[0128]
对于第一合并列表中的运动矢量候选,其列表0运动矢量或列表1运动矢量中的一个且仅一个用于三角形预测;
[0129]
对于第一合并列表中的给定运动矢量候选,如果该运动矢量候选在列表中的合并索引值为偶数,则其列表0运动矢量在可用的情况下用于三角形预测,并且在此运动矢量候选不具有列表0运动矢量的情况下,其列表1运动矢量用于三角形预测;以及
[0130]
对于第一合并列表中的给定运动矢量候选,如果该运动矢量候选在列表中的合并索引值为奇数,则其列表1运动矢量在可用的情况下用于三角形预测,并且在此运动矢量候选不具有列表1运动矢量的情况下,其列表0运动矢量用于三角形预测。
[0131]
图11a示出用于三角形预测模式的单向预测运动矢量(mv)选择(或单向预测合并候选选择)的示例。在示例中,在第一合并列表中导出的前5个合并mv候选被从0到4设置索引;并且每一行具有两列,分别表示第一合并列表中的候选的列表0运动矢量和列表1运动矢量。列表中的每个候选可被单向预测或双向预测。对于单向预测候选,其仅具有列表0运动矢量或列表1运动矢量,而不是具有两者。对于双向预测候选,其具有列表0运动矢量和列表1运动矢量两者。在图11a中,对于每个合并索引,标记有“x”的运动矢量是在它们可用的情况下首先用于三角形预测的那些运动矢量。如果标记为“x”的运动矢量不可用,则与相同合并索引相应的未被标记的运动矢量将用于三角形预测。
[0132]
上述概念可被扩展到其他示例。图11b示出用于三角形预测模式的单向预测运动矢量(mv)选择的另一示例。根据图11b,用于选择用于三角形预测的单向预测合并候选的规则如下:
[0133]
对于第一合并列表中的运动矢量候选,其列表0运动矢量或列表1运动矢量中的一个且仅一个用于三角形预测;
[0134]
对于第一合并列表中的给定运动矢量候选,如果该运动矢量候选在列表中的合并索引值为偶数,则其列表1运动矢量在可用的情况下用于三角形预测,并且在此运动矢量候选不具有列表1运动矢量的情况下,其列表0运动矢量用于三角形预测;以及
[0135]
对于第一合并列表中的给定运动矢量候选,如果该运动矢量候选在列表中的合并索引值为奇数,则其列表0运动矢量在可用的情况下用于三角形预测,并且在这个运动矢量候选不具有列表0运动矢量的情况下,其列表1运动矢量用于三角形预测。
[0136]
在一些示例中,其它不同顺序可被定义并且用于从第一合并列表中的那些运动矢量候选中选择用于三角形预测的单向预测合并候选。更具体地,对于第一合并列表中的给定运动矢量候选,当该运动矢量候选可用于三角形预测时首先使用其列表0运动矢量还是列表1运动矢量的决策不必如上所述取决于第一合并列表中的候选的索引值的奇偶性。例如,还可以使用以下规则:
[0137]
对于第一合并列表中的运动矢量候选,其列表0运动矢量或列表1运动矢量中的一个且仅一个用于三角形预测;
[0138]
基于某个的预定义模式,对于第一合并列表中的若干运动矢量候选,其列表0运动矢量在可用的情况下用于三角形预测,并且在不存在列表0运动矢量的情况下,相应的列表
1运动矢量用于三角形预测;以及
[0139]
基于相同的预定义模式,对于第一合并列表中的其余运动矢量候选,其列表1运动矢量在可用的情况下用于三角形预测,并且在不存在列表1运动矢量的情况下,相应的列表0运动矢量用于三角形预测。
[0140]
图12a至图12d示出在用于三角形预测模式的单向预测运动矢量(mv)选择中的预定义模式的一些示例。对于每个合并索引,标记有“x”的运动矢量是在它们可用的情况下首先用于三角形预测的那些运动矢量。如果标记为“x”的运动矢量不可用,则与相同合并索引相应的未被标记的运动矢量将用于三角形预测。
[0141]
在图12a中,对于第一合并列表中的前三个运动矢量候选,首先检查它们的列表0运动矢量。仅当列表0运动矢量不可用时,相应的列表1运动矢量用于三角形预测。对于第一合并列表中的第四运动矢量候选和第五运动矢量候选,首先检查它们的列表1运动矢量。仅当列表1运动矢量不可用时,相应的列表0运动矢量用于三角形预测。图12b至图12d示出从第一合并列表中选择单向预测合并候选的三种其他模式。附图中所示的示例不是限制性的,并且存在另外的示例。例如,也可使用图12a至图12d中所示的那些模式的水平和/或垂直镜像版本。
[0142]
可直接从第一合并列表对选择的单向预测合并候选设置索引和访问;或者可将这些选择的单向预测合并候选放入用于三角形预测的单向预测合并列表。导出的单向预测合并列表包括多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的相应候选的一个运动矢量。根据本公开的一些示例,第一合并列表中的每个候选包括列表0运动矢量和列表1运动矢量中的至少一个,并且每个单向预测合并候选可以是第一合并列表中的相应候选的列表0运动矢量和列表1运动矢量中的一个运动矢量。每个单向预测合并候选与整数值的合并索引相关联;并且基于针对单向预测合并候选的预设规则来选择列表0运动矢量和列表1运动矢量。
[0143]
在一个示例中,对于具有偶数合并索引值的每个单向预测合并候选,选择第一合并列表中具有相同合并索引的相应候选的列表0运动矢量作为单向预测合并候选;并且对于具有奇数合并索引值的每个单向预测合并候选,选择第一合并列表中具有相同合并索引的相应候选的列表1运动矢量。在另一示例中,对于具有偶数合并索引值的每个单向预测合并候选,选择第一合并列表中具有相同合并索引的相应候选的列表1运动矢量;并且对于具有奇数合并索引值的每个单向预测合并候选,选择第一合并列表中具有相同合并索引的相应候选的列表0运动矢量。
[0144]
在又一示例中,对于每个单向预测合并候选,在确定第一合并列表中的相应候选的列表1运动矢量可用的情况下,选择列表1运动矢量作为单向预测合并候选;并且在确定列表1运动矢量不可用的情况下,选择第一合并列表中的相应候选的列表0运动矢量。
[0145]
在又一示例中,对于具有在第一范围内的合并索引值的每个单向预测合并候选,选择第一合并列表中的相应候选的列表0运动矢量作为单向预测合并候选;并且对于具有在第二范围内的合并索引值的每个单向预测合并候选,选择第一合并列表中的相应候选的列表1运动矢量。
[0146]
在上述过程中,也可执行运动矢量修剪。可完全地或部分地完成这种修剪。当部分地执行时,这表示将新运动矢量与已经在单向预测合并列表中的一些运动矢量而非全部运
动矢量进行比较。这还可表示在用作三角形预测的合并候选之前,仅需要检查一些而非全部新运动矢量进行修剪。一个特定示例是在将第二运动矢量用作三角形预测的合并候选之前,仅针对第一运动矢量检查第二运动矢量来进行修剪,而非检查所有其它运动矢量来进行修剪。在极端情况下,在该过程中不执行运动矢量修剪(即,运动矢量比较操作)。
[0147]
尽管针对三角形预测模式描述了本公开中的形成单向预测合并列表的方法,但这些方法适用于类似种类的其它预测模式。例如,在cu沿着非完全对角线的线被分割为两个pu的更一般的几何分割预测模式下,两个pu可具有诸如三角形、楔形或梯形形状的几何形状。在此类情况下,按照与三角形预测模式中类似的方式形成每个pu的预测,本文中所描述的方法同样适用。
[0148]
图13是示出根据本公开的一些实施方式的用于视频编解码的装置的框图。装置1300可以是终端,诸如移动电话、平板计算机、数字广播终端、平板设备或个人数字助理。
[0149]
如图13所示,装置1300可包括以下组件中的一个或更多个:处理组件1302、存储器1304、电源组件1306、多媒体组件1308、音频组件1310、输入/输出(i/o)接口1312、传感器组件1314和通信组件1316。
[0150]
处理组件1302通常控制装置1300的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作有关的操作。处理组件1302可包括用于执行指令以完成上述方法的全部或部分步骤的一个或多个处理器1320。此外,处理组件1302可包括用于促进处理组件1302与其他组件之间的交互的一个或多个模块。例如,处理组件1302可包括用于促进多媒体组件1308与处理组件1302之间的交互的多媒体模块。
[0151]
存储器1304被配置为存储不同类型的数据以支持装置1300的操作。此类数据的示例包括用于在装置1300上操作的任何应用或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器1304可由任何类型的易失性或非易失性存储设备或其组合来实现,并且存储器1304可以是静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、闪存、磁盘或光盘。
[0152]
电源组件1306为装置1300的不同组件供电。电源组件1306可包括电源管理系统、一个或更多个电源以及与为装置1300生成、管理和分配电力相关联的其他组件。
[0153]
多媒体组件1308包括在装置1300和用户之间提供输出接口的屏幕。在一些示例中,屏幕可包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,则屏幕可被实现为从用户接收输入信号的触摸屏。触摸面板可包括用于感测触摸面板上的触摸、滑动和手势的一个或更多个触摸传感器。触摸传感器不仅可感测触摸或滑动动作的边界,而且可检测与触摸或滑动操作相关的持续时间和压力。在一些示例中,多媒体组件1308可包括前置相机和/或后置相机。当装置1300处于诸如拍摄模式或视频模式的操作模式时,前置相机和/或后置相机可接收外部多媒体数据。
[0154]
音频组件1310被配置为输出和/或输入音频信号。例如,音频组件1310包括麦克风(mic)。当装置1300处于操作模式(诸如呼叫模式、录音模式和语音识别模式)时,麦克风被配置为接收外部音频信号。接收的音频信号可进一步被存储在存储器1304中或经由通信组件1316被发送。在一些示例中,音频组件1310还包括用于输出音频信号的扬声器。
[0155]
i/o接口1312提供处理组件1302与外围接口模块之间的接口。上述外围接口模块
可以是键盘、点击轮、按钮等。这些按钮可包括但不限于主页按钮、音量按钮、启动按钮和锁定按钮。
[0156]
传感器组件1314包括用于在装置1300的不同方面中提供状态评估的一个或更多个传感器。例如,传感器组件1314可检测装置1300的开/关状态和组件的相对位置。例如,组件是装置1300的显示器和键盘。传感器组件1314还可检测装置1300或装置1300的组件的位置变化、用户在装置1300上接触的存在或离开、装置1300的方向或加速度/减速度、以及装置1300的温度变化。传感器组件1314可包括被配置为在没有任何物理触摸的情况下检测附近物体的存在的接近传感器。传感器部件1314还可包括光学传感器,诸如在成像应用中使用的cmos或ccd图像传感器。在一些示例中,传感器组件1314还可包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
[0157]
通信组件1316被配置为促进装置1300与其它设备之间的有线或无线通信。装置1300可基于诸如wifi、4g或其组合的通信标准来接入无线网络。在示例中,通信组件1316经由广播信道从外部广播管理系统接收广播信号或广播相关信息。在示例中,通信组件1316还可包括用于促进短距离通信的近场通信(nfc)模块。例如,nfc模块可基于射频识别(rfid)技术、红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术和其他技术来实现。
[0158]
在示例中,装置1300可由专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件中的一个或更多个来实现,以执行上述方法。
[0159]
非暂时性计算机可读存储介质可以是例如硬盘驱动器(hdd)、固态驱动器(ssd)、闪存、混合驱动器或固态混合驱动器(sshd)、只读存储器(rom)、光盘只读存储器(cd-rom)、磁带、软盘等。
[0160]
图14是示出根据本公开的一些实施方式的用于使用三角形预测单元的运动补偿预测的视频编解码的示例性过程的流程图。
[0161]
在步骤1402,处理器1320将视频图片分割为多个编码单元(cu),其中多个cu中的至少一个cu被进一步分割为两个预测单元(pu)。两个pu可包括至少一个几何形状pu。例如,几何形状pu可包括一对三角形形状pu、一对楔形形状pu或其它几何形状pu。
[0162]
在步骤1404,处理器1320构建包括多个候选的第一合并列表,其中每个候选包括一个或更多个运动矢量。例如,处理器1320可基于用于常规合并预测的合并列表构建过程来构建第一合并列表。处理器1320也可从其他电子设备或存储器获得第一合并列表。
[0163]
在步骤1406中,处理器1320获得或导出用于三角形形状pu的单向预测合并列表;其中单向预测合并列表包括多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的相应候选的一个运动向量。
[0164]
在一些示例中,提供一种用于视频编解码的装置。该装置包括处理器1320;以及存储器1304,被配置为存储可由处理器执行的指令;其中处理器在执行指令时被配置为执行如图14所示的方法。
[0165]
在一些其他示例中,提供了一种非暂时性计算机可读存储介质1304,其具有存储在其中的指令。当指令由处理器1320执行时,指令使处理器执行如图14所示的方法。
[0166]
本公开的描述已经出于说明的目的被呈现,并且不旨在穷举或限于本公开。受益
于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。
[0167]
选择和描述示例是为了解释本公开的原理,并且使本领域的其它技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在被包括在本公开的范围内。
技术特征:
1.一种用于视频编码的方法,包括:将视频图片分割为多个块;构建包括多个候选的第一合并列表,其中每个候选包括一个或更多个运动矢量;从第一合并列表直接获得多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的相应候选的一个运动矢量;基于所述多个单向预测合并候选的运动矢量来获得当前块的预测值;基于所述预测值,形成视频比特流输出,其中第一合并列表的候选包括针对当前块的空间合并候选和时间合并候选的运动矢量,其中第一合并列表中的每个候选包括列表0运动矢量和列表1运动矢量中的至少一个,并且每个单向预测合并候选包括第一合并列表中的每个候选的列表0运动矢量和列表1运动矢量中的一个运动矢量,并且第一合并列表中的每个候选的列表0运动矢量和/或列表1运动矢量基于特定顺序被设置索引并且直接从第一合并列表被访问。2.如权利要求1所述的方法,其中所述第一合并列表基于用于常规合并预测的合并列表构建过程被构建。3.根据权利要求1所述的方法,其中每个单向预测合并候选与整数值的合并索引相关联;并且列表0运动矢量和列表1运动矢量基于针对单向预测合并候选的预设规则被选择。4.根据权利要求3所述的方法,其中具有合并索引值的每个单向预测合并候选包括第一合并列表中的具有相同合并索引的相应候选的列表0运动矢量或列表1运动矢量。5.根据权利要求3所述的方法,其中在确定第一合并列表中的所述相应候选的列表0运动矢量可用的情况下,具有偶数合并索引值的每个单向预测合并候选包括所述相应候选的列表0运动矢量;或在确定第一合并列表中的所述相应候选的列表0运动矢量不可用的情况下,具有偶数合并索引值的每个单向预测合并候选包括所述相应候选的列表1运动矢量。6.根据权利要求3所述的方法,其中在确定第一合并列表中的所述相应候选的列表1运动矢量可用的情况下,具有奇数合并索引值的每个单向预测合并候选包括所述相应候选的列表1运动矢量;或在确定第一合并列表中的所述相应候选的列表1运动矢量不可用的情况下,具有奇数合并索引值的每个单向预测合并候选包括所述相应候选的列表0运动矢量。7.根据权利要求3所述的方法,其中具有在第一范围内的合并索引值的每个单向预测合并候选包括第一合并列表中的所述相应候选的列表0运动矢量;并且具有在第二范围内的合并索引值的每个单向预测合并候选包括第一合并列表中的所述相应候选的列表1运动矢量。8.一种用于视频编码的装置,包括:一个或更多个处理器;以及存储器,被配置为存储能够由所述一个或更多个处理器执行的指令;其中所述一个或更多个处理器在执行所述指令时被配置为执行根据权利要求1至7中任意一项所述的用于视频编码的方法。9.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储由具有一个或更多个处理器的计算装置执行的多个指令,其中,所述多个指令在由所述一个或更
多个处理器执行时,使所述计算装置根据权利要求1至7中任意一项所述的用于视频编码的方法生成视频比特流并将生成的视频比特流存储在所述非暂时性计算机可读存储介质中。10.一种计算机程序产品,所述计算机程序产品中的指令被至少一个处理器运行以执行如权利要求1到7中任意一项所述的用于视频编码的方法。
技术总结
提供了用于视频编码的方法、装置和存储介质。所述方法包括:将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU进一步被分割为两个预测单元(PU),所述两个PU包括至少一个几何形状PU;构建包括多个候选的第一合并列表,其中每个候选包括一个或更多个运动矢量;并且获得用于所述几何形状PU的单向预测合并列表,其中所述单向预测合并列表包括多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的相应候选的一个运动矢量。量。量。
技术研发人员:王祥林 陈漪纹 修晓宇 马宗全
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2020.03.12
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种用于密封仓内气缸推动装置的制作方法 下一篇:煤矿矿道巡查机器人的制作方法