用于利用三角形预测进行视频编解码的方法和装置与流程

文档序号:28421191发布日期:2022-01-11 22:07阅读:113来源:国知局
用于利用三角形预测进行视频编解码的方法和装置与流程
用于利用三角形预测进行视频编解码的方法和装置
1.相关申请的交叉引用
2.本技术要求享受于2019年5月10日递交的、名称为“video coding with triangle prediction”的美国临时申请no.62/846,560的优先权,其全部内容通过引用的方式被并入以用于所有目的。
技术领域
3.概括而言,本技术涉及视频编解码和压缩,并且具体地但不限于用于在视频编解码中使用三角形预测单元(即,几何分区预测单元的特殊情况)进行运动补偿预测的方法和装置。


背景技术:

4.数字视频由各种电子设备支持,诸如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能手机、视频电话会议设备、视频流式传输设备等。电子设备通过实现视频压缩/解压缩来发送、接收、编码、解码和/或存储数字视频数据。数字视频设备实现视频编解码技术,诸如在由通用视频编解码(vvc)、联合探索测试模型(jem)、mpeg-2、mpeg-4、itu-t h.263、itu-th.264/mpeg-4(第10部分,高级视频编解码(avc))、itu-t h.265/高效视频编解码(hevc)定义的标准以及此类标准的扩展中描述的那些技术。
5.视频编解码通常使用利用在视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测)。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化对视频质量的降级。随着不断发展的视频服务变得可用,需要具有更好编解码效率的编码技术。
6.视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测以减少或移除在视频数据中固有的冗余。对于基于块的视频编解码,将视频帧分割为一个或多个条带,每个条带具有多个视频块,其也可以被称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu),或者递归地拆分成较小的cu,直到达到预定义的最小cu大小。每个cu(也被称为叶cu)包含一个或多个变换单元(tu),并且每个cu还包含一个或多个预测单元(pu)。每个cu可以以帧内、帧间或ibc模式来进行编解码。视频帧的已帧内编码(i)条带中的视频块是使用相对于相同视频帧内的相邻块中的参考样点的空间预测进行编码的。视频帧的已帧间编码(p或b)条带中的视频块可以使用相对于相同视频帧内的相邻块中的参考样点的空间预测,或者使用相对于其它先前和/或未来参考视频帧中的参考样点的时间预测。
7.基于先前已经编码的参考块(例如,相邻块)的空间或时间预测产生用于要被编解码的当前视频块的预测块。寻找参考块的过程可以通过块匹配算法来完成。表示要被编解码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成预测块的参考帧中的参考块的运动矢量和残差块来对已帧间编码的块进行编码。确定运动矢量的过程通常被称为运动估计。根据帧内预测模式和残差块对已帧内编码块进行编码。为
了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而产生残差变换系数,然后可以量化残差变换系数。可以对最初排列在二维阵列中的已量化的变换系数进行扫描以产生变换系数的一维矢量,并且然后将其熵编码到视频比特流中以实现甚至更多的压缩。
8.然后,将已编码的视频比特流保存在计算机可读存储介质(例如,闪存)中,以供具有数字视频能力的另一电子设备访问或直接地以有线或无线方式发送给该电子设备。然后,电子设备通过例如解析已编码视频比特流以从比特流中获得语法元素并且至少部分地基于从比特流中获得的语法元素而从已编码视频比特流将数字视频数据重建为其原始格式来执行视频解压缩(这是与上述视频压缩相反的过程),并且在电子设备的显示器上呈现已重建的数字视频数据。
9.随着数字视频质量从高清到4kx2k或者甚至8kx4k,要被编码/解码的视频数据的量呈指数增长。就如何在保持已解码的视频数据的图像质量的同时更高效地编码/解码视频数据而言,这是一个持续的挑战。
10.在联合视频专家组(jvet)会议中,jvet定义了通用视频编解码(vvc)和vvc测试模型1(vtm1)编码方法的初稿。决定包括具有使用二元和三元拆分编码块结构的嵌套的多类型树的四叉树,作为vvc的初始新编解码特征。此后,在jvet会议期间已经开发了用于实现编码方法和草案vvc解码过程的参考软件vtm。


技术实现要素:

11.概括而言,本公开内容描述了涉及在视频编解码中使用几何形状的预测单元进行运动补偿预测的技术的示例。
12.根据本公开内容的第一方面,提供了一种用于利用几何预测进行视频编解码的方法,包括:将视频图片分割为多个编码单元(cu),所述多个cu中的至少一个cu被进一步分割为两个预测单元(pu),所述两个pu包括至少一个几何形状的pu;基于用于常规合并预测的合并列表构建过程,来构建包括多个候选的第一合并列表,其中,所述多个候选中的每个候选是包括列表0运动矢量或列表1运动矢量或两者的运动矢量;接收用信号通知的第一索引值,所述第一索引值用于指示从所述第一合并列表中选择的第一候选;接收用信号通知的第二索引值,所述第二索引值用于指示从所述第一合并列表中选择的第二候选;接收用信号通知的第一二进制标志,所述第一二进制标志用于指示所述第一候选的列表0运动矢量还是所述第一候选的列表1运动矢量被选择用于所述几何预测的第一pu;以及基于所述第一二进制标志并且基于当前图片是否使用后向预测来推断第二二进制标志,所述第二二进制标志用于指示所述第二候选的列表0运动矢量还是所述第二候选的列表1运动矢量被选择用于所述几何预测的第二pu。
13.根据本公开内容的第二方面,一种用于利用几何预测进行视频编解码的方法,包括:将视频图片分割为多个编码单元(cu),所述多个cu中的至少一个cu被进一步分割为两个预测单元(pu),所述两个pu包括至少一个几何形状的pu;基于用于常规合并预测的合并列表构建过程,来构建包括多个候选的第一合并列表,其中,所述多个候选中的每个候选是包括列表0运动矢量或列表1运动矢量或两者的运动矢量;接收用信号通知的第一索引值,所述第一索引值用于指示从所述第一合并列表中选择的第一候选;接收用信号通知的第二索引值,所述第二索引值用于指示从所述第一合并列表中选择的第二候选;推断所述第一
候选的列表0运动矢量还是所述第一候选的列表1运动矢量被选择用于所述几何预测的第一pu;以及推断所述第二候选的列表0运动矢量还是所述第二候选的列表1运动矢量被选择用于所述几何预测的第二pu。
14.根据本公开内容的第三方面,提供了一种用于利用几何预测进行视频编解码的装置,包括:一个或多个处理器;以及存储器,其被配置为存储由所述一个或多个处理器可执行的指令;其中,所述一个或多个处理器在执行所述指令时被配置为:将视频图片分割为多个编码单元(cu),所述多个cu中的至少一个cu被进一步分割为两个预测单元(pu),所述两个pu包括至少一个几何形状的pu;基于用于常规合并预测的合并列表构建过程,来构建包括多个候选的第一合并列表,其中,所述多个候选中的每个候选是包括列表0运动矢量或列表1运动矢量或两者的运动矢量;接收用信号通知的第一索引值,所述第一索引值用于指示从所述第一合并列表中选择的第一候选;接收用信号通知的第二索引值,所述第二索引值用于指示从所述第一合并列表中选择的第二候选;接收用信号通知的第一二进制标志,所述第一二进制标志用于指示所述第一候选的列表0运动矢量还是所述第一候选的列表1运动矢量被选择用于所述几何预测的第一pu;以及基于所述第一二进制标志并且基于当前图片是否使用后向预测来推断第二二进制标志,所述第二二进制标志用于指示所述第二候选的列表0运动矢量还是所述第二候选的列表1运动矢量被选择用于所述几何预测的第二pu。
附图说明
15.将通过参考在附图中所示的特定示例来呈现对本公开内容的示例的更具体的描述。鉴于这些附图仅描绘了一些示例,并且因此不被认为在范围上进行限制,将通过使用附图,以额外的特定性和细节来描述和解释这些示例。
16.图1是示出根据本公开内容的一些实现的示例性视频编码器的框图。
17.图2是示出根据本公开内容的一些实现的示例性视频解码器的框图。
18.图3是示出根据本公开内容的一些实现的四叉树加二叉树(qtbt)结构的示意图。
19.图4是示出根据本公开内容的一些实现的划分为ctu的图片的示例的示意图。
20.图5是示出根据本公开内容的一些实现的多类型树拆分模式的示意图。
21.图6是示出根据本公开内容的一些实现的将cu拆分成三角形预测单元的示意图。
22.图7是示出根据本公开内容的一些实现的相邻块的位置的示意图。
23.图8是示出根据本公开内容的一些实现的空间合并候选的位置的示意图。
24.图9是示出根据本公开内容的一些实现的用于时间合并候选的运动矢量缩放的示意图。
25.图10是示出根据本公开内容的一些实现的时间合并候选的候选位置的示意图。
26.图11a是示出根据本公开内容的一些实现的用于三角形预测模式的单向预测运动矢量(mv)选择的一个示例的示意图。
27.图11b是示出根据本公开内容的一些实现的用于三角形预测模式的单向预测运动矢量(mv)选择的另一示例的示意图。
28.图12a是示出根据本公开内容的一些实现的用于三角形预测模式的单向预测mv选择的一个示例的示意图。
29.图12b是示出根据本公开内容的一些实现的用于三角形预测模式的单向预测mv选
择的另一示例的示意图。
30.图12c是示出根据本公开内容的一些实现的用于三角形预测模式的单向预测mv选择的另一示例的示意图。
31.图12d是示出根据本公开内容的一些实现的用于三角形预测模式的单向预测mv选择的另一示例的示意图。
32.图13是示出根据本公开内容的一些实现的用于三角形预测模式的单向预测mv选择的示例的示意图。
33.图14是示出根据本公开内容的一些实现的用于视频编解码的示例性装置的框图。
34.图15是示出根据本公开内容的一些实现的用于使用几何预测单元进行运动补偿预测的视频编解码的示例性过程的流程图。
具体实施方式
35.现在将详细参考具体实现,其示例在附图中示出。在以下详细描述中,阐述了许多非限制性的具体细节,以帮助理解本文所呈现的主题。但是,对于本领域的普通技术人员将显而易见的是,可以使用各种替代方式。例如,对于本领域的普通技术人员将显而易见的是,本文呈现的主题可以在具有数字视频能力的许多类型的电子设备上实现。
36.贯穿本说明书对“一个实施例”、“一实施例”、“一示例”、“一些实施例”、“一些示例”或类似语言的引用意味着所描述的特定特征、结构或特性被包括在至少一个实施例或示例中。除非另有明确规定,否则结合一个或一些实施例描述的特征、结构、元素或特性也适用于其它实施例。
37.贯穿本公开内容,术语“第一”、“第二”、“第三”等均被用作仅用于引用相关元素(例如,设备、组件、组成、步骤等)的命名,而不暗示任何空间或时间顺序,除非另有明确规定。例如,“第一设备”和“第二设备”可以指代两个单独形成的设备、或相同设备的两个部分、组件或操作状态,并且可以任意地命名。
38.如本文所使用的,术语“如果”或“当
……
时”可以根据上下文被理解为“在
……
时”或“响应于”。这些术语如果出现在权利要求中可能并不指示相关限制或特征是有条件的或可选的。
39.术语“模块”、“子模块”、“电路”、“子电路”、“电路系统”、“子电路系统”、“单元”或“子单元”可以包括存储可以由一个或多个处理器执行的代码或指令的存储器(共享、专用或组)。模块可以包括一个或多个电路,其具有或不具有存储的代码或指令。模块或电路可以包括直接地或间接地连接的一个或多个组件。这些组件可以彼此物理地附接或可以彼此不物理地附接,或者可以或可以不被定位为邻近彼此。
40.单元或模块可以纯通过软件、纯通过硬件或者通过硬件和软件的组合来实现。例如,在纯软件实现中,单元或模块可以包括直接或间接地链接在一起的功能相关的代码块或软件组件,以便执行特定功能。
41.图1示出了示例性基于块的混合视频编码器100的框图,示例性基于块的混合视频编码器100可以与使用基于块的处理的许多视频编解码标准结合使用。在编码器100中,视频帧被分割为多个视频块以进行处理。对于每个给定视频块,基于帧间预测方法或帧内预测方法来形成预测。在帧间预测中,一个或多个预测值是基于来自先前重建的帧的像素,通
过运动估计和运动补偿来形成的。在帧内预测中,预测值是基于当前帧中的已重建像素来形成的。通过模式决策,可以选择最佳预测值来预测当前块。
42.将表示当前视频块与其预测值之间的差的预测残差发送给变换电路102。然后,将变换系数从变换电路102发送给量化电路104以进行熵降低。然后,将量化系数馈送到熵编码电路106以生成压缩的视频比特流。如图1中所示,还通过熵编码电路106馈送来自帧间预测电路和/或帧内预测电路112的预测相关信息110(诸如视频块分割信息、运动矢量、参考图片索引和帧内预测模式),并且将其保存到已压缩视频比特流114中。
43.在编码器100中,还需要与解码器相关的电路,以便重建像素以用于预测目的。首先,通过逆量化116和逆变换电路118来重建预测残差。该已重建预测残差与块预测值120组合以生成用于当前视频块的未经滤波的重建像素。
44.空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已编码相邻块(其被称为参考样点)的样点的像素来预测当前视频块。
45.时间预测(也被称为“帧间预测”)使用来自已编码的视频图片的重建像素来预测当前视频块。时间预测减少了在视频信号中固有的时间冗余。用于给定编码单元(cu)或编码块的时间预测信号通常通过一个或多个运动矢量(mv)用信号通知,其指示当前cu与其时间参考之间的运动量和运动方向。此外,如果支持多个参考图片,则另外发送一个参考图片索引,该索引用于标识时间预测信号来自参考图片存储单元中的哪个参考图片。
46.在执行空间和/或时间预测之后,编码器100中的帧内/帧间模式决策电路121例如基于率失真优化方法来选择最佳预测模式。然后,从当前视频块中减去块预测值120;并且使用变换电路102和量化电路104来将所得到的预测残差解相关。所得到的量化残差系数由逆量化电路116进行逆量化,并且由逆变换电路118进行逆变换以形成重建残差,然后将重建残差加回预测块以形成cu的重建信号。此外,环路滤波115(诸如去块滤波器、采样自适应偏移(sao)和/或自适应环路滤波器(alf))可以在重建cu被放入图片缓冲器117的参考图片存储单元中并且用于编码未来视频块之前被应用于重建cu。为了形成输出视频比特流114,编码模式(帧间或帧内)、预测模式信息、运动信息和量化残差系数全部被发送给熵编码单元106以被进一步压缩和打包以形成比特流。
47.例如,去块滤波器可在avc、hevc以及vvc的当前版本中获得。在hevc中,定义了被称为sao(采样自适应偏移)的额外环路滤波器,以进一步提高编解码效率。在vvc标准的当前版本中,被称为alf(自适应环路滤波器)的另一环路滤波器正在积极研究中,并且其很有可能被纳入最终标准中。
48.这些环路滤波器操作是可选的。执行这些操作有助于提高编解码效率和视觉质量。它们也可以作为编码器100呈现的决策而被关闭,以节省计算复杂度。
49.应当注意的是,帧内预测通常是基于未经滤波的重建像素的,而帧间预测是基于经滤波的重建像素的(如果编码器100打开这些滤波器选项的话)。
50.图2是示出可以结合许多视频编解码标准来使用的示例性基于块的视频解码器200的框图。该解码器200类似于驻留在图1的编码器100中的重建相关部分。在解码器200中,首先通过熵解码202对传入视频比特流201进行解码,以推导出量化系数级别和预测相关信息。然后,通过逆量化204和逆变换206来处理量化系数级别,以获得重建预测残差。在帧内/帧间模式选择器212中实现的块预测值机制被配置为基于已解码的预测信息来执行
帧内预测208或运动补偿210。通过使用加法器214来将来自逆变换206的重建预测残差和由块预测值机制生成的预测输出相加,获得未滤波的重建像素集合。
51.重建块在其被存储在充当参考图片存储单元的图片缓冲器213中之前,可以进一步通过环路滤波器209。图片缓冲器213中的重建视频可以被发送以驱动显示设备,以及用于预测未来的视频块。在打开环路滤波器209的情形下,对这些重建像素执行滤波操作以推导出最终重建视频输出222。
52.上面提及的视频编码/解码标准(诸如vvc、jem、hevc、mpeg-4第10部分)在概念上是相似的。例如,它们都使用基于块的处理。下面详细说明一些标准中的块分割方案。
53.hevc是基于混合的基于块的运动补偿变换编解码架构的。用于压缩的基本单元被称为编码树单元(ctu)。最大ctu大小被定义为高达64乘64个亮度像素、以及针对4:2:0色度格式的两个32乘32个色度像素块。每个ctu可以包含一个编码单元(cu),或者被递归地拆分成四个较小的cu,直到达到预定义的最小cu大小。每个cu(也被称为叶cu)包含一个或多个预测单元(pu)和变换单元(tu)树。
54.通常,除了单色内容之外,ctu可以包括一个亮度编码树块(ctb)和两个对应的色度ctb;cu可以包括一个亮度编码块(cb)和两个对应的色度cb;pu可以包括一个亮度预测块(pb)和两个对应的色度pb;并且tu可以包括一个亮度变换块(tb)和两个对应的色度tb。然而,可能出现例外情况,因为用于亮度和色度二者的最小tb大小为4x4(即,对于4:2:0色彩格式,不支持2x2色度tb),并且每个帧内色度cb始终仅具有一个帧内色度pb,而不管对应的帧内亮度cb中的帧内亮度pb的数量如何。
55.对于帧内cu,亮度cb可以通过一个或四个亮度pb进行预测,并且两个色度cb中的每一者始终通过一个色度pb进行预测,其中,每个亮度pb具有一种帧内亮度预测模式,并且两个色度pb共享一种帧内色度预测模式。此外,对于帧内cu,tb大小不能大于pb大小。在每个pb中,应用帧内预测以从tb的相邻重建样点来预测pb内的每个tb的样点。对于每个pb,除了33种方向帧内预测模式之外,还支持dc和平面模式以分别预测平坦区域和渐变区域。
56.对于每个帧间pu,可以选择包括帧间、跳过和合并的三种预测模式之一。一般来说,引入运动矢量竞争(mvc)方案以从包括空间和时间运动候选的给定候选集中选择运动候选。对运动估计的多个参考允许在2个可能的重建参考图片列表(即,列表0和列表1)中找到最佳参考。对于帧间模式(被称为amvp模式,其中,amvp表示高级运动矢量预测),发送帧间预测指示符(列表0、列表1或双向预测)、参考索引、运动候选索引、运动矢量差(mvd)和预测残差。关于跳过模式和合并模式,仅发送合并索引,并且当前pu从已编码合并索引所引用的相邻pu继承帧间预测指示符、参考索引和运动矢量。在跳过经编码cu的情况下,也省略残差信号。
57.联合探索测试模型(jem)被构建在hevc测试模型之上。hevc的基本编码和解码流程在jem中保持不变;然而,大多数重要模块的设计元素(包括块结构、帧内和帧间预测、残差变换、环路滤波器和熵编解码的模块)都进行了稍微修改,并且添加了额外的编解码工具。在jem中包括以下新的编解码功能。
58.在hevc中,通过使用被表示为编码树的四叉树结构来将ctu拆分为cu,以适应各种局部特性。在cu级别作出是使用图片间(时间)预测还是使用图片内(空间)预测来对图片区域进行编解码的决策。根据pu拆分类型,每个cu可以被进一步拆分为一个、两个或四个pu。
在一个pu内,应用相同的预测过程,并且以pu为基础将相关信息发送给解码器。在通过基于pu拆分类型而应用预测过程来获得残差块之后,可以根据类似于用于cu的编码树的另一四叉树结构来将cu分割为变换单元(tu)。hevc结构的关键特征之一是其具有包括cu、pu和tu的多个分区概念。
59.图3是示出根据本公开内容的一些实现的四叉树加二叉树(qtbt)结构的示意图。
60.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,并且有时由单个分量的cb组成,例如,在i条带的情况下,一个cu仅包含一个亮度cb或仅包含两个色度cb。
61.为qtbt分区方案定义了以下参数。
[0062]-ctu大小:四叉树的根节点大小,与hevc中的概念相同;
[0063]-minqtsize:最小允许的四叉树叶节点大小;
[0064]-maxbtsize:最大允许的二叉树根节点大小;
[0065]-maxbtdepth:最大允许的二叉树深度;
[0066]-minbtsize:最小允许的二叉树叶节点大小。
[0067]
在qtbt分区结构的一个示例中,ctu大小被设置为128x128个亮度样点,其具有两个对应的64x64个色度样点块(具有4:2:0色度格式),minqtsize被设置为16x16,maxbtsize被设置为64x64,minbtsize(对于宽度和高度两者)被设置为4x4,并且maxbtdepth被设置为4。首先将四叉树分区应用于ctu以生成四叉树叶节点。四叉树叶节点可以具有从16x16(即,minqtsize)到128x128(即,ctu大小)的大小。如果四叉树叶节点为128x128,则将不通过二叉树对其进行进一步拆分,因为该大小超过了maxbtsize(即,64x64)。否则,可以通过二叉树进一步分割四叉树叶节点。因此,四叉树叶节点也是二叉树的根节点,并且其具有为0的二叉树深度。当二叉树深度达到maxbtdepth(即,4)时,不考虑进一步的拆分。当二叉树节点具有等于minbtsize(即,4)的宽度时,不考虑进一步的水平拆分。类似地,当二叉树节点具有等于minbtsize的高度时,不考虑进一步的垂直拆分。二叉树的叶节点通过预测和变换处理进一步处理,而无需任何进一步的分割。在jem中,最大ctu大小为256x256个亮度样点。
[0068]
在图3中示出了通过使用qtbt方案的块分割以及对应的树表示的示例。实线指示四叉树拆分,而虚线指示二叉树拆分。如图3中所示,首先通过四叉树结构对编码树单元(ctu)300进行分割,并且通过四叉树结构或二叉树结构对四个四叉树叶节点302、304、306、308中的三个进行进一步分割。例如,通过四叉树拆分对四叉树叶节点306进一步分割;通过二叉树拆分来将四叉树叶节点304进一步分割为两个叶节点304a、304b;并且也通过二叉树拆分对四叉树叶节点302进一步分割。在二叉树的每个拆分(即,非叶)节点中,用信号通知一个标志以指示使用哪种拆分类型(即,水平或垂直),其中,0指示水平拆分,而1指示垂直拆分。例如,对于四叉树叶节点304,用信号通知0以指示水平拆分,而对于四叉树叶节点
302,用信号通知1以指示垂直拆分。对于四叉树拆分,无需指示拆分类型,因为四叉树拆分始终水平地且垂直地拆分块,以产生具有相等大小的4个子块。
[0069]
此外,qtbt方案支持亮度和色度具有单独的qtbt结构的能力。目前,对于p和b条带,一个ctu中的亮度和色度ctb共享相同的qtbt结构。然而,对于i条带,通过qtbt结构来将亮度ctb分割为cu,并且通过另一qtbt结构来将色度ctb分割为色度cu。这意味着i条带中的cu由亮度分量的编码块或两个色度分量的编码块组成,而p或b条带中的cu由所有三个色彩分量的编码块组成。
[0070]
在联合视频专家组(jvet)会议上,jvet定义了通用视频编解码(vvc)和vvc测试模型1(vtm1)编码方法的初稿。决定包括具有使用二元和三元拆分编码块结构的嵌套的多类型树的四叉树作为vvc的初始的新编解码特征。
[0071]
在vvc中,图片分割结构将输入视频划分为被称为编码树单元(ctu)的块。使用具有嵌套的多类型树结构的四叉树来将ctu拆分为编码单元(cu),其中叶编码单元(cu)定义了共享相同预测模式(例如,帧内或帧间)的区域。此处,术语“单元”定义了图像的覆盖所有分量的区域;术语“块”用于定义覆盖特定分量(例如,亮度)的区域,并且在考虑色度采样格式(诸如4:2:0)时,在空间位置上可能不同。
[0072]
将图片分割为ctu
[0073]
图4是示出根据本公开内容的一些实现的被划分为ctu的图片的示例的示意图。
[0074]
在vvc中,图片被划分为一系列ctu,并且ctu的概念与hevc的ctu的概念相同。对于具有三个样点阵列的图片,ctu由nxn亮度样点块以及两个对应的色度样点块组成。图4示出了被划分为ctu 402的图片400的示例。
[0075]
ctu中的亮度块的最大允许大小被指定为128x128(尽管亮度变换块的最大大小为64x64)。
[0076]
使用树结构对ctu进行分割
[0077]
图5是示出根据本公开内容的一些实现的多类型树拆分模式的示意图。
[0078]
在hevc中,通过使用被表示为编码树的四元树结构来将ctu拆分为cu,以适应各种局部特性。在叶cu级别作出是使用图片间(时间)预测还是使用图片内(空间)预测来对图片区域进行编解码的决策。根据pu拆分类型,每个叶cu可以被进一步拆分为一个、两个或四个pu。在一个pu内,应用相同的预测过程,并且以pu为基础将相关信息发送给解码器。在通过基于pu拆分类型而应用预测过程来获得残差块之后,可以根据与用于cu的编码树类似的另一四元树结构来将叶cu分割为变换单元(tu)。hevc结构的关键特征之一是其具有包括cu、pu和tu的多个分区概念。
[0079]
在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(除非视频是单色的,即,仅具有一个色彩分量)。
[0080]
将cu分割为多个预测单元
[0081]
在vvc中,对于基于上面示出的结构而分割的每个cu,可以对整个cu块或以在以下段落中解释的子块方式执行块内容的预测。这样的预测的操作单元被称为预测单元(或pu)。
[0082]
在帧内预测(intra prediction)(或帧内预测(intra-frame prediction))的情况下,pu的大小通常等于cu的大小。换句话说,对整个cu块执行预测。对于帧间预测(inter prediction)(或帧间预测(inter-frame prediction)),pu的大小可以等于或小于cu的大小。换句话说,存在其中cu可以被拆分为多个pu进行预测的情况。
[0083]
使pu大小小于cu大小的一些示例包括仿射预测模式、高级时间级运动矢量预测(atmvp)模式和三角形预测模式等。
[0084]
在仿射预测模式下,cu可以被拆分为多个4x4 pu以进行预测。可以针对每个4x4 pu来推导运动矢量,并且可以相应地对4x4 pu执行运动补偿。在atmvp模式下,cu可以被拆分为一个或多个8x8 pu以进行预测。针对每个8x8 pu推导运动矢量,并且可以相应地对8x8 pu执行运动补偿。在三角形预测模式下,cu可以被拆分为两个三角形形状的预测单元。针对每个pu推导运动矢量,并且相应地执行运动补偿。针对帧间预测支持三角形预测模式。下文示出了三角形预测模式的更多细节。
[0085]
三角形预测模式(或三角形分割模式)
[0086]
图6是示出根据本公开内容的一些实现的将cu拆分为三角形预测单元的示意图。
[0087]
三角形预测模式的概念是引入用于运动补偿预测的三角形分区。三角形预测模式也可以被称为三角形预测单元模式或三角形分区模式。如图6中所示,cu 602或604在对角线或反对角线方向上被拆分为两个三角形预测单元pu1和pu2(即,如cu 602中所示从左上角到右下角进行拆分,或如cu 604中所示从右上角到左下角进行拆分)。cu中的每个三角形预测单元使用其自己的单向预测运动矢量和参考帧索引进行帧间预测,所述单向预测运动矢量和参考帧索引是从单向预测候选列表而推导的。在预测三角形预测单元之后,对对角线边缘执行自适应加权过程。然后,将变换和量化过程应用于整个cu。应注意的是,该模式仅被应用于当前vvc中的跳过和合并模式。尽管在图6中cu被示为正方形块,但是三角形预测模式也可以被应用于非正方形(即,矩形)形状cu。
[0088]
单向预测候选列表可以包括一个或多个候选,并且每个候选可以是运动矢量。因此,贯穿本公开内容,术语“单向预测候选列表”、“单向预测运动矢量候选列表”和“单向预测合并列表”可以可互换地使用;并且术语“单向预测合并候选”和“单向预测运动矢量”也可以可互换地使用。
[0089]
单向预测运动矢量候选列表
[0090]
图7是示出根据本公开内容的一些实现的相邻块的位置的示意图。
[0091]
在一些示例中,单向预测运动矢量候选列表可以包括两个到五个单向预测运动矢
量候选。在一些其它示例中,其它数字也是可能的。其是从相邻块推导的。如图7中所示,从包括五个空间相邻块(1到5)和两个时间同位块(6到7)的七个相邻块来推导单向预测运动矢量候选列表。七个相邻块的运动矢量被收集到第一合并列表中。然后,基于第一合并列表运动矢量,根据特定顺序来形成单向预测候选列表。基于该顺序,首先将来自第一合并列表的单向预测运动矢量放入单向预测运动矢量候选列表中,然后跟随着双向预测运动矢量的参考图片列表0或l0运动矢量,并且然后是双向预测运动矢量的参考图片列表1或l1运动矢量,并且然后跟随着双向预测运动矢量的l0和li运动矢量的平均运动矢量。此时,如果候选数量仍然小于目标数量(在当前vvc中,其为5个),则向该列表中添加零运动矢量以满足目标数量。
[0092]
基于三角形pu中的每一者的运动矢量,来针对每个三角形pu推导预测值。值得注意的是,所推导出的预测值覆盖与实际三角形pu相比更大的面积,使得沿着两个三角形pu的共享对角线边缘存在两个预测值的重叠区域。对两个预测值之间的对角线边缘区域应用加权过程,以推导用于cu的最终预测。当前用于亮度和色度样点的加权因子分别为{7/8、6/8、5/8、4/8、3/8、2/8、1/8}和{6/8、4/8、2/8}。
[0093]
三角形预测模式语法和信令
[0094]
此处,三角形预测模式是使用三角形预测标志而用信号通知的。当cu在跳过模式或合并模式下进行编解码时,用信号通知三角形预测标志。对于给定的cu,如果三角形预测标志具有为1的值,则其意味着对应的cu是使用三角形预测模式进行编解码的。否则,该cu是使用除了三角形预测模式之外的预测模式进行编解码的。
[0095]
例如,在跳过模式或合并模式下有条件地用信号通知三角形预测标志。首先,在序列参数集(或sps)中用信号通知三角形预测工具启用/禁用标志。只有当该三角形预测工具启用/禁用标志为真时,才在cu级别用信号通知三角形预测标志。其次,仅在b条带中允许三角形预测工具。因此,仅在b条带中,在cu级别用信号通知三角形预测标志。第三,仅针对大小等于或大于某个门限的cu来用信号通知三角形预测模式。如果cu具有小于该门限的大小,则不用信号通知三角形预测标志。第四,如果cu不是在子块合并模式(其包括仿射模式和atmvp模式两者)下进行编解码的,则仅针对该cu来用信号通知三角形预测标志。在上面列出的四种情况中,当没有用信号通知三角形预测标志时,在解码器侧推断其为0。
[0096]
当用信号通知三角形预测标志时,其是使用具有特定上下文的上下文自适应二进制算术编解码(cabac)熵编解码器来用信号通知的。上下文是基于当前cu的顶部和左侧块的三角形预测标志值而形成的。
[0097]
为了对用于当前块(或当前cu)的三角形预测标志进行编解码(即,编码器或解码),推导来自顶部和左侧块(或cu)的三角形预测标志,并且将其值相加。这将导致对应于以下情况的三种可能的上下文:
[0098]
1)左侧块和顶部块两者都具有为0的三角形预测标志;
[0099]
2)左侧块和顶部块两者都具有为1的三角形预测标志;
[0100]
3)其它情况。
[0101]
对于这三种上下文中的每一种,维护单独的概率。一旦针对当前块确定了上下文值,则使用对应于该上下文值的cabac概率模型来对当前块的三角形预测标志进行编解码。
[0102]
如果三角形预测标志为真,则用信号通知三角形分区朝向标志,以指示该分区是
从左上角到右下角还是从右上角到左下角而定向的。
[0103]
然后,用信号通知两个合并索引值以分别指示用于三角形预测的第一和第二单向预测合并候选的合并索引值。这两个合并索引值用于分别从上述单向预测运动矢量候选列表中定位用于第一和第二分区的两个合并候选。对于三角形预测,要求两个合并索引值是不同的,使得两个三角形分区的两个预测值可以彼此不同。结果,直接用信号通知第一合并索引值。为了用信号通知第二合并索引值,如果其小于第一合并索引值,则直接用信号通知其值。否则,在用信号通知解码器之前,将其值减去1。在解码器侧,第一合并索引被直接解码并使用。为了解码第二合并索引值,首先从cabac引擎解码被表示为“idx”的值。如果idx小于第一合并索引值,则第二合并索引值将等于idx的值。否则,第二合并索引值将等于(idx+1)。
[0104]
常规合并模式运动矢量候选列表
[0105]
根据当前vvc,在常规合并模式(其中,整个cu被预测而不被拆分为一个以上的pu)下,使用与三角形预测模式的过程不同的过程来构建运动矢量候选列表或合并候选列表。
[0106]
首先,如图8中所指示的,基于来自相邻块的运动矢量来选择空间运动矢量候选,图8是示出根据本公开内容的一些实现的空间合并候选的位置的示意图。在当前块802的空间合并候选的推导中,在位于如图8中描绘的位置的候选中选择最多四个合并候选。推导的顺序为a1→
b1→
b0→
a0→
(b2)。仅当位置a1、b1、b0、a0的任何pu不可用或是帧内编解码的时,才考虑位置b2。
[0107]
接下来,推导时间合并候选。在时间合并候选的推导中,基于属于在给定参考图片列表内与当前图片具有最小图片顺序计数(poc)差的图片的同位pu来推导缩放运动矢量。在条带头中显式地用信号通知用于推导同位pu的参考图片列表。如通过图9中的虚线所示,获得用于时间合并候选的缩放运动矢量,图9示出了根据本公开内容的一些实现的用于时间合并候选的运动矢量缩放。使用poc距离tb和td将用于时间合并候选的缩放运动矢量从同位pu col_pu的运动矢量进行缩放,其中,tb被定义为当前图片的参考图片curr_ref与当前图片curr_pic之间的poc差,并且td被定义为同位图片的参考图片col_ref与同位图片col_pic之间的poc差。时间合并候选的参考图片索引被设置为等于零。在hevc草案规范中描述了缩放过程的实际实现。对于b条带,获得两个运动矢量(一个用于参考图片列表0,而另一个用于参考图片列表1)并且将其组合以形成双向预测合并候选。
[0108]
图10是示出根据本公开内容的一些实现的用于时间合并候选的候选位置的示意图。
[0109]
如图10中所描绘的,在两个候选位置c3与h之间选择同位pu的位置。如果位置h处的pu不可用,或者是帧内编解码的,或者在当前ctu之外,则位置c3用于推导时间合并候选。否则,位置h用于推导时间合并候选。
[0110]
在如上所述将空间和时间运动矢量两者插入到合并候选列表中之后,添加基于历史的合并候选。所谓的基于历史的合并候选包括来自先前编解码的cu的那些运动矢量,这些运动矢量被维护在单独的运动矢量列表中,并且基于某些规则进行管理。
[0111]
在插入基于历史的候选之后,如果合并候选列表未满,则将两两的平均运动矢量候选进一步添加到列表中。顾名思义,这种类型的候选是通过对已经在当前列表中的候选进行平均来构建的。更具体地,基于特定顺序或规则,每次取合并候选列表中的两个候选,
并且将这两个候选的平均运动矢量附加到当前列表中。
[0112]
在插入两两的平均运动矢量之后,如果合并候选列表仍然未满,则将添加零运动矢量以使列表是满的。
[0113]
使用常规合并列表构建过程来构建用于三角形预测的第一合并列表
[0114]
当前vvc中的三角形预测模式与常规合并预测模式在形成预测值的其总体过程中共享一些相似之处。例如,在两种预测模式下,需要至少基于当前cu的相邻空间运动矢量和同位运动矢量来构建合并列表。同时,三角形预测模式还具有不同于常规合并预测模式的一些方面。
[0115]
例如,尽管在三角形预测模式和常规合并预测模式两者下都需要构建合并列表,但是获得这样的列表的详细过程是不同的。
[0116]
由于需要额外的逻辑,这些差异给编解码器实现带来额外的成本。在三角形预测模式与常规合并预测模式之间可以统一和共享构建合并列表的过程和逻辑。
[0117]
在一些示例中,在形成用于三角形预测模式的单向预测(uni-directional prediction)(也被称为单向预测(uni-prediction))合并列表时,在将新的运动矢量添加到合并列表中之前,对照已经在列表中的那些运动矢量,来对新的运动矢量进行完全地修剪。换句话说,将新的运动矢量与已经在单向预测合并列表中的每个运动矢量进行比较,并且仅当其与该合并列表中的每个运动矢量不同时才添加到该列表中。否则,不将新的运动矢量添加到该列表中。
[0118]
根据本公开内容的一些示例,在三角形预测模式下,可以从常规合并模式运动矢量候选列表(其可以被称为常规合并列表)获得或构建单向预测合并列表。
[0119]
更具体地,为了构建用于三角形预测模式的合并候选列表,首先基于用于常规合并预测的合并列表构建过程来构建第一合并列表。第一合并列表包括多个候选,每个候选都是运动矢量。然后,使用第一合并列表中的运动矢量来进一步构建或推导用于三角形预测模式的单向预测合并列表。
[0120]
应当注意的是,在这种情况下构建的第一合并列表可以选择不同于一般合并模式或常规合并模式的列表大小的列表大小。在本公开内容的一个示例中,第一合并列表具有与一般合并模式的大小相同的大小。在本公开内容的另一示例中,所构建的第一合并列表具有不同于一般合并模式的列表大小的列表大小。
[0121]
从第一合并列表来构建单向预测合并列表
[0122]
根据本公开内容的一些示例,用于三角形预测模式的单向预测合并列表可以是基于以下方法之一而从第一合并列表构建或推导的。
[0123]
在本公开内容的示例中,为了构建或推导单向预测合并列表,首先对第一合并列表中的候选的预测列表0运动矢量进行检查并且将其选择到单向预测合并列表中。如果在该过程之后单向预测合并列表未满(例如,该列表中的候选数量仍然小于目标数量),则对第一合并列表中的候选的预测列表1运动矢量进行检查并且将其选择到单向预测合并列表中。如果单向预测合并列表仍然未满,则将预测列表0零矢量添加到单向预测合并列表中。如果单向预测合并列表仍然未满,则将预测列表1零矢量添加到单向预测合并列表中。
[0124]
在本公开内容的另一示例中,对于第一合并列表中的每个候选,将其预测列表0运动矢量和预测列表1运动矢量以交错方式添加到单向预测合并列表中。更具体地,对于第一
合并列表中的每个候选,如果候选是单向预测运动矢量,则将其直接添加到单向预测合并列表中。否则,如果候选是第一合并列表中的双向预测运动矢量,则首先将其预测列表0运动矢量添加到单向预测合并列表中,之后跟随着其预测列表1运动矢量。一旦检查并且添加了第一合并列表中的所有运动矢量候选,但是单向预测合并列表尚未满,则可以添加单向预测零运动矢量。例如,对于每个参考帧索引,可以将预测列表0零运动矢量和预测列表1零运动矢量分别添加到单向预测合并列表中,直到列表是满的为止。
[0125]
在本公开内容的又一示例中,首先将来自第一合并列表的单向预测运动矢量选择到单向预测合并列表中。如果在该过程之后单向预测合并列表未满,则对于第一合并列表中的每个双向预测运动矢量,首先将其预测列表0运动矢量添加到单向预测合并列表中,之后跟随着其预测列表1运动矢量。在该过程之后,如果单向预测合并列表尚未满,则可以添加单向预测零运动矢量。例如,对于每个参考帧索引,可以将预测列表0零运动矢量和预测列表1零运动矢量分别添加到单向预测合并列表中,直到列表是满的为止。
[0126]
在上面的描述中,当将单向预测运动矢量添加到单向预测合并列表中时,可以执行运动矢量修剪过程以确保要被添加的新运动矢量不同于已经在单向预测合并列表中的那些运动矢量。为了较低的复杂度,还可以按照部分方式来执行这样的运动矢量修剪过程,例如,仅对照已经在单向预测合并列表中的一些但不是所有运动矢量来检查要被添加的新运动矢量。在极端情况下,在该过程中不执行运动矢量修剪(即,运动矢量比较操作)。
[0127]
基于图片预测配置来从第一合并列表构造单向预测合并列表
[0128]
在本公开内容的一些示例中,可以基于当前图片是否使用后向预测来以自适应方式构建单向预测合并列表。例如,根据当前图片是否使用后向预测,可以使用不同的方法来构建单向预测合并列表。如果所有参考图片的图片顺序计数(poc)值不大于当前图片的poc值,则意味着当前图片不使用后向预测。
[0129]
在本公开内容的示例中,在当前图片不使用后向预测时,或者在确定当前图片不使用后向预测时,首先对第一合并列表中的候选的预测列表0运动矢量进行检查并且选择到单向预测合并列表中,之后跟随着那些候选的预测列表1运动矢量;并且如果单向预测合并列表仍然未满,则可以添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上所述以交错方式对第一合并列表中的每个候选的预测列表0和列表1运动矢量进行检查并且选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,之后跟随着第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,之后跟随着第二候选的预测列表1运动矢量,以此类推。在该过程结束时,如果单向预测合并列表仍然未满,则可以添加单向预测零矢量。
[0130]
在本公开内容的另一示例中,如果当前图片不使用后向预测,则首先对第一合并列表中的候选的预测列表1运动矢量进行检查并且选择到单向预测合并列表中,之后跟随着那些候选的预测列表0运动矢量;并且如果单向预测合并列表仍然未满,则可以添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上所述以交错方式对第一合并列表中的每个候选的预测列表0和列表1运动矢量进行检查并且选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,之后跟随着第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,之后跟随着第二候选的预测列表1运动矢量,以此类推。在该过程结束时,如果单向预测合并列表仍然未满,则可
以添加单向预测零矢量。
[0131]
在本公开内容的又一示例中,如果当前图片不使用后向预测,则首先仅对第一合并列表中的候选的预测列表0运动矢量进行检查并且选择到单向预测合并列表中,并且如果单向预测合并列表仍然未满,则可以添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上所述以交错方式对第一合并列表中的每个候选的预测列表0和列表1运动矢量进行检查并且选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,之后跟随着第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,之后跟随着第二候选的预测列表1运动矢量,以此类推。在该过程结束时,如果单向预测合并列表仍然未满,则可以添加单向预测零矢量。
[0132]
在本公开内容的另一示例中,如果当前图片不使用后向预测,则首先仅对第一合并列表中的候选的预测列表1运动矢量进行检查并且选择到单向预测合并列表中,并且如果单向预测合并列表仍然未满,可以添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上所述以交错方式对第一合并列表中的每个候选的预测列表0和列表1运动矢量进行检查并且选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,之后跟随着第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,之后跟随着第二候选的预测列表1运动矢量,以此类推。在该过程结束时,如果单向预测合并列表仍然未满,则可以添加单向预测零矢量。
[0133]
在本公开内容的另一示例中,在当前图片不使用后向预测时,第一合并列表中的候选的预测列表0运动矢量被用作单向预测合并候选,其是根据与其在第一合并列表中相同的索引顺序进行索引的。否则,如果当前图片使用后向预测,则第一合并列表中的每个候选的列表0和列表1运动矢量被用作单向预测合并候选,其是基于如上所述的交错方式进行索引的,即,第一合并列表中的第一候选的列表0运动矢量,之后跟随着第一候选的列表1运动矢量,然后是第二候选的列表0运动矢量,然后是第二候选的列表1运动矢量,以此类推。在第一合并列表中的候选是单向运动矢量的情况下,在单向预测合并列表中在该候选之后对零运动矢量进行索引。这确保针对当前图片使用后向预测的情况,第一合并列表中的每个候选(无论其是双向或单向预测运动矢量)都可以提供两个单向运动矢量作为单向预测合并候选。
[0134]
在本公开内容的另一示例中,在当前图片不使用后向预测时,第一合并列表中的候选的预测列表0运动矢量被用作单向预测合并候选,其是根据与其在第一合并列表中相同的索引顺序进行索引的。否则,如果当前图片使用后向预测,则第一合并列表中的每个候选的列表0和列表1运动矢量被用作单向预测合并候选,其是基于如上所述的交错方式进行索引的,即,第一合并列表中的第一候选的列表0运动矢量,之后跟随着第一候选的列表1运动矢量,然后是第二候选的列表0运动矢量,然后是第二候选的列表1运动矢量,以此类推。在第一合并列表中的候选是单向运动矢量的情况下,在单向预测合并列表中在该候选之后对相同的运动矢量加上特定运动偏移进行索引。
[0135]
在以上描述中,尽管其被描述为将来自第一合并列表的运动矢量选择到单向预测合并列表中,但是该方法在实践中可以以不同的方式来实现,其中物理地形成单向预测合并列表或者非物理地形成单向预测合并列表。例如,可以直接使用第一合并列表,而不是物理地创建单向预测合并列表。例如,第一合并列表中的每个候选的那些列表0和/或列表1运
动矢量可以简单地基于特定顺序进行索引,并且直接从第一合并列表进行访问。应当注意的是,这样的索引顺序可以遵循在上面那些示例中描述的相同选择顺序。这意味着,在给定用于以三角形预测模式进行编解码的pu的合并索引的情况下,其对应的单向预测合并候选可以直接从第一合并列表中获得,而无需物理地形成单向预测合并列表。
[0136]
在该过程中,当检查要被添加到列表中的新运动矢量时,可以完全地或部分地执行修剪。当部分地执行修剪时,这意味着将新运动矢量与已经在单向预测合并列表中的一些而不是所有运动矢量进行比较。在极端情况下,在该过程中不执行运动矢量修剪(即,运动矢量比较操作)。
[0137]
在形成单向预测合并列表时,还可以基于当前图片是否使用后向预测来自适应地执行这样的运动矢量修剪。例如,对于在该章节中以上描述的本公开内容的所有示例,在当前图片不使用后向预测时,完全地或部分地执行运动矢量修剪操作。在当前图片使用后向预测时,在形成单向预测合并列表时不执行运动矢量修剪操作。
[0138]
使用第一合并列表进行三角形预测,而不创建单向预测合并列表
[0139]
在以上示例中,通过将来自第一合并列表的运动矢量选择到单向预测合并列表中,来构建用于三角形预测的单向预测合并列表。然而,在实践中,这些方法可以以不同的方式来实现,其中物理地形成单向预测(uni-directional prediction)(或单向预测(uni-prediction))合并列表或者非物理地形成单向预测合并列表。在一些示例中,可以直接使用第一合并列表,而无需物理地创建单向预测合并列表。例如,第一合并列表中的每个候选的列表0和/或列表1运动矢量可以简单地基于特定顺序进行索引,并且直接从第一合并列表进行访问。
[0140]
例如,可以从解码器或其它电子设备/组件获得第一合并列表。在其它示例中,在基于用于常规合并预测的合并列表构建过程来构建包括多个候选(每个候选是一个或多个运动矢量)的第一合并列表之后,不构建单向预测合并列表,而是替代地,使用包括多个参考索引的预定义的索引列表(每个参考索引是对第一合并列表中的候选的运动矢量的引用)来推导用于三角形预测模式的单向合并候选。索引列表可以被视为用于三角形预测的单向预测合并列表的表示,并且单向预测合并列表至少包括第一合并列表中的与参考索引相对应的候选子集。应当注意的是,索引顺序可以遵循在其中构建单向预测合并列表的示例中描述的任何选择顺序。在实践中,这样的索引列表可以以不同的方式来实现。例如,其可以显式地被实现为列表。在其它示例中,其也可以在某些逻辑和/或程序功能中实现或获得,而不显式地形成任何列表。
[0141]
在本公开内容的一些示例中,可以基于当前图片是否使用后向预测,来以自适应方式确定索引列表。例如,索引列表中的参考索引可以根据当前图片是否使用后向预测(即,基于当前图片的图片顺序计数(poc)和参考图片的poc的比较结果)来排列。如果所有参考图片的图片顺序计数(poc)值不大于当前图片的poc值,则意味着当前图片不使用后向预测。
[0142]
在本公开内容的一个示例中,在当前图片不使用后向预测时,第一合并列表中的候选的预测列表0运动矢量被用作单向预测合并候选,其是根据与其在第一合并列表中相同的索引顺序进行索引的。也就是说,在确定当前图片的poc大于参考图片的poc中的每个poc时,参考索引是根据第一合并列表中的候选的列表0运动矢量的相同顺序来排列的。否
则,如果当前图片使用后向预测,则第一合并列表中的每个候选的列表0和列表1运动矢量被用作单向预测合并候选,其是基于交错方式进行索引的,即,在第一合并列表中的第一候选的列表0运动矢量之后跟随着第一候选的列表1运动矢量,并且然后是第二候选的列表0运动矢量,之后跟随着第二候选的列表1运动矢量,以此类推。也就是说,在确定当前图片的poc小于参考图片的poc中的至少一个poc时,参考索引是根据第一合并列表中的每个候选的列表0和列表1运动矢量的交错方式来排列的,其中,候选是双向预测运动矢量。在其中第一合并列表中的候选是单向运动矢量的情况下,零运动矢量被索引为在该候选的运动矢量之后的单向预测合并候选。这确保对于其中当前图片使用后向预测的情况,第一合并列表中的每个候选(无论其是双向或单向预测运动矢量)都提供两个单向运动矢量作为单向预测合并候选。
[0143]
在本公开内容的另一示例中,在当前图片不使用后向预测时,第一合并列表中的候选的预测列表0运动矢量被用作单向预测合并候选,其是根据与其在第一合并列表中相同的索引顺序进行索引的。否则,如果当前图片使用后向预测,则第一合并列表中的每个候选的列表0和列表1运动矢量被用作单向预测合并候选,其是基于如上所述的交错方式进行索引的,即,在第一合并列表中的第一候选的列表0运动矢量之后跟随着第一候选的列表1运动矢量,并且然后是第二候选的列表0运动矢量,之后跟随着第二候选的列表1运动矢量,以此类推。在其中第一合并列表中的候选是单向运动矢量的情况下,运动矢量加上特定运动偏移被索引为在该候选的运动矢量之后的单向预测合并候选。
[0144]
因此,在其中第一合并列表中的候选是单向运动矢量的情况下,在确定当前图片的poc小于参考图片的poc中的至少一个poc时,参考索引是根据以下的交错方式来排列的:第一合并列表中的每个候选的运动矢量、以及零运动矢量或运动矢量加上偏移。
[0145]
在以上过程中,当检查要被添加到单向预测合并列表中的新运动矢量时,可以完全地或部分地执行修剪。当部分地执行修剪时,这意味着将新运动矢量与已经在单向预测合并列表中的一些而不是所有运动矢量进行比较。在极端情况下,在该过程中不执行运动矢量修剪(即,运动矢量比较操作)。
[0146]
在形成单向预测合并列表时,还可以基于当前图片是否使用后向预测来自适应地执行运动矢量修剪。例如,对于与基于图片预测配置的索引列表确定有关的本公开内容的示例,在当前图片不使用后向预测时,完全地或部分地执行运动矢量修剪操作。在当前图片使用后向预测时,不执行运动矢量修剪操作。
[0147]
选择用于三角形预测模式的单向预测合并候选
[0148]
除了上述示例之外,还公开了单向预测合并列表构建或单向预测合并候选选择的其它方式。
[0149]
在本公开内容的一个示例中,一旦构建了用于常规合并模式的第一合并列表,就可以根据以下规则选择用于三角形预测的单向预测合并候选:
[0150]
对于第一合并列表中的运动矢量候选,其列表0或列表1运动矢量中的一个且仅一个用于三角形预测;
[0151]
对于第一合并列表中的给定运动矢量候选,如果列表中的其合并索引值为偶数,则其列表0运动矢量用于三角形预测(如果其是可用的话),并且在该运动矢量候选不具有列表1运动矢量的情况下,其列表0运动矢量用于三角形预测;以及
[0152]
对于第一合并列表中的给定运动矢量候选,如果列表中的其合并索引值为奇数,则其列表1运动矢量用于三角形预测(如果其是可用的话),并且在该运动矢量候选不具有列表1运动矢量的情况下,其列表0运动矢量用于三角形预测。
[0153]
图11a示出了用于三角形预测模式的单向预测运动矢量(mv)选择(或单向预测合并候选选择)的示例。在该示例中,在第一合并列表中推导的前5个合并mv候选是从0到4被索引;并且每一行具有两列,其分别表示用于第一合并列表中的候选的列表0和列表1运动矢量。该列表中的每个候选可以是单向预测的或双向预测的。对于单向预测候选,其仅具有列表0或列表1运动矢量,但不具有两者。对于双向预测候选,其具有列表0和列表1运动矢量两者。在图11a中,对于每个合并索引,以“x”标记的运动矢量是首先用于三角形预测的那些运动矢量(如果它们是可用的话)。如果以“x”标记的运动矢量是不可用的,则对应于相同合并索引的未被标记的运动矢量将用于三角形预测。换句话说,根据该方法,在给定用于在三角形预测模式下编解码的pu的合并索引值的情况下,该索引值可以直接用于在第一合并列表中定位合并候选;然后,根据索引值的奇偶性(即,如果其是偶数或奇数),基于上述规则来为pu选择在第一合并列表中定位的合并候选的列表0或列表1运动矢量。在此过程中不需要物理地形成单向预测合并列表。
[0154]
以上概念可以被扩展到其它示例。图11b示出了用于三角形预测模式的单向预测运动矢量(mv)选择的另一示例。根据图11b,用于选择用于三角形预测的单向预测合并候选的规则如下:
[0155]
对于第一合并列表中的运动矢量候选,其列表0或列表1运动矢量中的一个且仅一个用于三角形预测;
[0156]
对于第一合并列表中的给定运动矢量候选,如果列表中的其合并索引值为偶数,则其列表1运动矢量用于三角形预测(如果其是可用的话),并且在该运动矢量候选不具有列表1运动矢量的情况下,其列表0运动矢量用于三角形预测;以及
[0157]
对于第一合并列表中的给定运动矢量候选,如果列表中的其合并索引值为奇数,则其列表0运动矢量用于三角形预测(如果其是可用的话),并且在该运动矢量候选不具有列表0运动矢量的情况下,其列表1运动矢量用于三角形预测。
[0158]
在一些示例中,可以定义其它不同的顺序,并且将其用于从第一合并列表中的那些运动矢量候选中选择用于三角形预测的单向预测合并候选。更具体地,对于第一合并列表中的给定运动矢量候选,首先使用其列表0还是列表1运动矢量(当可用于三角形预测时)的决策不必取决于如上所述的第一合并列表中的候选的索引值的奇偶性。例如,也可以使用以下规则:
[0159]
对于第一合并列表中的运动矢量候选,其列表0或列表1运动矢量中的一个且仅一个用于三角形预测;
[0160]
基于特定预定义模式,对于第一合并列表中的多个运动矢量候选,其列表0运动矢量用于三角形预测(如果可用的话),并且在列表0运动矢量不存在的情况下,对应的列表1运动矢量用于三角形预测;以及
[0161]
基于相同的预定义模式,对于第一合并列表中的剩余运动矢量候选,其列表1运动矢量用于三角形预测(如果可用的话),并且在列表1运动矢量不存在的情况下,对应的列表0运动矢量用于三角形预测。
[0162]
图12a到12d示出了用于三角形预测模式的单向预测运动矢量(mv)选择中的预定义模式的一些示例。对于每个合并索引,以“x”标记的运动矢量是首先用于三角形预测的那些运动矢量(如果它们是可用的话)。如果以“x”标记的运动矢量是不可用的,则对应于相同合并索引的未被标记的运动矢量用于三角形预测。
[0163]
在图12a中,对于第一合并列表中的前三个运动矢量候选,首先检查其列表0运动矢量。仅当列表0运动矢量是不可用的时,对应的列表1运动矢量才用于三角形预测。对于第一合并列表中的第四和第五运动矢量候选,首先检查其列表1运动矢量。仅当列表1运动矢量是不可用的时,对应的列表0运动矢量才用于三角形预测。图12b到12d示出了在从第一合并列表中选择单向预测合并候选时的三种其它模式。在这些图中所示的示例并不进行限制,并且存在另外的示例。例如,也可以使用在图12a到12d中所示的那些模式的水平和/或垂直镜像版本。
[0164]
可以直接从第一合并列表对所选择的单向预测合并候选进行索引和访问;或者,可以将这些选择的单向预测合并候选放入用于三角形预测的单向预测合并列表中。所推导出的单向预测合并列表包括多个单向预测合并候选,并且每个单向预测合并候选包括第一合并列表中的对应候选的一个运动矢量。根据本公开内容的一些示例,第一合并列表中的每个候选包括列表0运动矢量和列表1运动矢量中的至少一者,并且每个单向预测合并候选可以是第一合并列表中的对应候选的列表0和列表1运动矢量中的单个一者。每个单向预测合并候选与整数值的合并索引相关联;并且基于用于单向预测合并候选的预设规则来选择列表0和列表1运动矢量。
[0165]
在一个示例中,对于具有偶数合并索引值的每个单向预测合并候选,选择在第一合并列表中具有相同合并索引的对应候选的列表0运动矢量作为单向预测合并候选;而对于具有奇数合并索引值的每个单向预测合并候选,选择在第一合并列表中具有相同合并索引的对应候选的列表1运动矢量。在另一示例中,对于具有偶数合并索引值的每个单向预测合并候选,选择在第一合并列表中具有相同合并索引的对应候选的列表1运动矢量;而对于具有奇数合并索引值的每个单向预测合并候选,选择在第一合并列表中具有相同合并索引的对应候选的列表0运动矢量。
[0166]
在又一示例中,对于每个单向预测合并候选,在确定列表1运动矢量是可用的时,选择第一合并列表中的对应候选的列表1运动矢量作为单向预测合并候选;而在确定列表1运动矢量不可用时,选择第一合并列表中的对应候选的列表0运动矢量。
[0167]
在又一示例中,对于具有在第一范围内的合并索引值的每个单向预测合并候选,选择第一合并列表中的对应候选的列表0运动矢量作为单向预测合并候选;而对于具有在第二范围内的合并索引值的每个单向预测合并候选,选择第一合并列表中的对应候选的列表1运动矢量。
[0168]
直接从第一合并列表中选择用于三角形预测模式的单向预测合并候选
[0169]
图13示出了本公开内容的另一示例。一旦构建了用于常规合并模式的第一合并列表,就直接从该列表中选择用于三角形预测的单向预测运动矢量。为了指示用于三角形预测的特定列表0或列表1运动矢量,首先用信号通知索引值以指示从第一合并列表中选择了哪个候选。然后,用信号通知在以下描述中被称为l0ll_flag的二进制参考列表指示标志,以指示从第一合并列表中选择的候选的列表0还是列表1运动矢量被选择用于三角形预测
的第一分区。相同的信令方法用于指示用于三角形预测的第二分区的第二列表0或列表1运动矢量。例如,针对经三角形模式编码的cu而用信号通知的语法可以包括index1、l0l1_flag1、index2、l0l1_flag2。此处,indexl和index2是分别针对第一和第二分区而从第一合并列表中选择的两个候选的合并索引值。l0l1_flag1是用于第一分区的二进制标志,以指示选择了基于indexl从第一合并列表中所选择的候选的列表0还是列表1运动矢量。l0l1_flag2是用于第二分区的二进制标志,以指示选择了基于index2从第一合并列表中所选择的候选的列表0还是列表1运动矢量。值得一提的是,在实践中,可以根据本公开内容的方法来使用上述语法的不同信令顺序。在一个示例中,信令顺序可以遵循index1

l0l1_flag1

index2

l0l1_flag2;在另一示例中,信令顺序可以遵循index1

index2

l0l1_flag1

l0l1_flag2;等等
[0170]
在以上信令方法中,如利用在图13中的矩形框中的符号“x”所指示的每个列表0和/或列表1运动矢量可以被指示/用信号通知给解码器以用于推导用于第一分区的预测,并且利用在图13中的矩形框中的符号“x”指示的每个列表0和/或列表1运动矢量也可以被指示/用信号通知给解码器,以用于在三角形预测模式下推导用于第二分区的预测。结果,从第一合并列表中选择单向预测运动矢量变得非常灵活。在给定大小为n个候选的第一合并列表的情况下,可以针对两个三角形分区中的每一个使用多达2n个单向预测运动矢量。在三角形预测模式下用于两个分区的两个合并索引值不必彼此不同。换句话说,它们可以采用相同的值。可以直接用信号通知索引值,而无需在用信号通知之前进行调整。更具体地,与当前在vvc中定义的内容不同,将第二索引值直接用信号通知给解码器,而无需在用信号通知之前对该值执行任何调整。
[0171]
在本公开内容的另一示例中,当两个索引值相同时,不必用信号通知用于第二分区的二进制标志l0l1_flag2。相反,其被推断为具有相对于用于第一分区的二进制标志l0l1_flagl的相反的值。换句话说,在这种情况下,l0l1_flag2可以取值(l-l0l1_flag1)。
[0172]
在本公开内容的另一示例中,l0l1_flag2和l0l1_flag2可以被编解码为cabac上下文二进制位。用于l0l1_flag1的上下文可以与用于l0l1_flag2的上下文分开。在每个上下文下的cabac概率可以在视频序列的开始处和/或在图片的开始处和/或在瓦片组的开始处进行初始化。在本公开内容的这个示例下,可以使用不同的上下文建模方法来对这两个标志进行编解码。在一种方法中,用于第二标志的上下文模型选择可以取决于第一标志的值。换句话说,可以使用至少两个上下文模型来对第二标志进行编解码,其中,上下文模型是基于用信号通知的第一标志的值来选择的。在另一种方法中,根据当前图片是否使用后向预测,可以以不同的方式来对在每个上下文模型下的cabac概率进行初始化。在图片使用后向预测的情况下,可以针对标志将概率初始化得较高,以指示选择了特定列表运动矢量,例如,列表0或列表1。在一个示例中,如果图片不使用后向预测,则与图片使用后向预测的情况相比,针对标志使用更高的初始概率来指示选择了列表0运动矢量。换句话说,可以基于图片是否使用后向预测来定义初始概率,以适应如下的事实:当图片不使用后向预测时,在几何预测中更可能选择那些候选的列表0运动矢量。在另一种方法中,第一标志可被编解码为旁路二进制位(即,经cabac编解码的二进制位,其具有等于0或等于1的等概率),并且仅第二标志被编解码为上下文二进制位。值得注意的是,此处提到的方法可以单独地或联合地使用。
[0173]
在本公开内容的另一示例中,当由合并索引值和相关联的l0l1_flag指示的运动矢量不存在时,可以替代地使用单向预测零运动矢量。
[0174]
在本公开内容的另一示例中,当由合并索引值和相关联的l0l1_flag指示的运动矢量不存在时,可以替代地使用由相同合并索引值指示的但是来自另一列表的对应运动矢量,即,列表(1-l0l1_flag)。
[0175]
在本公开内容的另一示例中,对于经三角形模式编码的cu,不用信号通知与第二索引(即,index2)相关联的第二l0l1_flag(即,l0l1_flag2),而总是进行推断。在这种情况下,仍然需要用信号通知index1、l0l1_flag1和index2语法。在一种方法中,对l0l1_flag2的推断是基于l0l1_flag1的值以及当前图片是否使用后向预测的。更具体地,对于经三角形模式编码的cu,如果当前图片使用后向预测,则l0l1_flag2的值被推断为l0l1_flag1的相反的二进制值(即,1-l0l1_flag1);如果当前图片不使用后向预测,则l0l1_flag2的值被推断为与l0l1_flag1相同。另外,如果当前图片不使用后向预测,则可以进一步强制index2的值不同于indexl的值,因为两个运动矢量(其中针对每个三角形分区有一个)都来自相同的预测列表。如果index2具有等于index1的值,则这意味着相同的运动矢量将用于两个三角形分区,这从编解码效率的角度来看不是有用的。在这种情况下,在用信号通知index2的值时,可以在索引二值化之前执行对index2的值的对应调整,这与在当前针对index2信令的vvc设计中是相同的。例如,在index1的实际值小于index2的实际值的情况下,使用对应于(index2-1)的cabac二值化码字来用信号通知index2的值;否则,使用对应于index2的cabac二值化码字来用信号通知index2的值。相应地,在解码器侧,如果用信号通知的index2值小于用信号通知的index1值,则index2的实际值被设置为等于用信号通知的index2值;否则,index2的实际值被调整为等于用信号通知的index2值加1。值得一提的是,基于本公开内容的这个新示例,替代地,强制index2具有不同于indexl的值也可以被应用于当前图片使用后向预测以及用于cabac二值化的相同index2值调整的情况。
[0176]
在本公开内容的另一示例中,对于经三角形模式编码的cu,不用信号通知l0l1_flag中的任一者。相反,它们都是推断出来的。在这种情况下,仍然需要用信号通知index1和index2语法,其分别表示从第一合并列表中针对第一和第二分区选择的两个候选的合并索引值。在给定合并候选索引值的情况下,在确定来自第一列表的对应合并候选的列表0运动矢量还是列表1运动矢量被选择用于三角形模式预测时,可以定义某些方法。在一种方法中,对于index1,在确定来自哪个预测列表的合并候选的运动矢量被选择用于三角形模式预测时使用在图11a中所示的模式;而对于index2,在确定来自哪个预测列表的合并候选的运动矢量被选择用于三角形模式预测时使用在图11b中所示的模式。换句话说,如果index1是偶数值,则选择列表0运动矢量,而如果index1是奇数值,则选择列表1运动矢量。对于index2,如果其是偶数值,则选择列表1运动矢量;而如果其是奇数值,则选择列表0运动矢量。在与特定预测列表相对应的运动矢量不存在的情况下,可以替代地使用某个默认运动矢量,例如,零运动矢量,或者来自另一预测列表的对应候选的运动矢量等等。值得一提的是,当前的本公开内容还涵盖了在确定来自哪个预测列表的合并候选的运动矢量被选择用于三角形模式预测时,在图11a中所示的模式用于index2,而图11b用于indexl的情况。
[0177]
在以上过程中,尽管在本公开内容的所有示例中使用了包含5个合并候选的第一合并列表进行说明,但是在实践中,第一合并列表的大小可以不同地定义,例如,6、或4、或
一些其它值。在本公开内容中描述的所有方法同样适用于第一合并列表具有除了5之外的大小的情况。
[0178]
在以上过程中,也可以执行运动矢量修剪。这样的修剪可以完全地或部分地进行。当部分地执行时,这意味着将新运动矢量与已经在单向预测合并列表中的一些而不是所有运动矢量进行比较。这也可以意味着,在用作用于三角形预测的合并候选之前,仅需要检查一些而不是所有的新运动矢量以进行修剪。一个具体示例是,在将第二运动矢量用作用于三角形预测的合并候选之前,仅对照第一运动矢量检查第二运动矢量以进行修剪,而不检查所有其它运动矢量以进行修剪。在极端情况下,在该过程中不执行运动矢量修剪(即,运动矢量比较操作)。
[0179]
尽管本公开内容中的形成单向预测合并列表的方法是关于三角形预测模式描述的,但是这些方法适用于类似种类的其它预测模式。例如,在更一般的几何分区预测模式(其中,cu沿着不完全对角的线而被分割为两个pu)下,这两个pu可以具有诸如三角形、楔形或梯形形状之类的几何形状。在这样的情况下,以与三角形预测模式中类似的方式形成每个pu的预测,本文描述的方法同样适用。
[0180]
图14是示出根据本公开内容的一些实现的用于视频编解码的装置的框图。装置1400可以是终端,诸如移动电话、平板计算机、数字广播终端、平板设备或个人数字助理。
[0181]
如图14中所示,装置1400可以包括以下组件中的一个或多个组件:处理组件1402、存储器1404、电源组件1406、多媒体组件1408、音频组件1410、输入/输出(i/o)接口1312、传感器组件1314和通信组件1416。
[0182]
处理组件1402通常控制装置1400的总体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作有关的操作。处理组件1402可以包括用于执行指令以完成以上方法的全部或部分步骤的一个或多个处理器1420。此外,处理组件1402可以包括用于促进处理组件1402与其它组件之间的交互的一个或多个模块。例如,处理组件1402可以包括多媒体模块,以促进多媒体组件1308与处理组件1402之间的交互。
[0183]
存储器1404被配置为存储不同类型的数据以支持装置1400的操作。此类数据的示例包括用于在装置1400上操作的任何应用或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器1404可以由任何类型的易失性或非易失性存储设备或其组合来实现,并且存储器1404可以是静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁性存储器、闪存、磁盘或压缩光盘。
[0184]
电源组件1406为装置1400的不同组件供电。电源组件1306可以包括电源管理系统、一个或多个电源以及与为装置1400生成、管理和分配功率相关联的其它组件。
[0185]
多媒体组件1408包括在装置1400与用户之间提供输出接口的屏幕。在一些示例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,则屏幕可以被实现为接收来自用户的输入信号的触摸屏。触摸面板可以包括用于感测触摸面板上的触摸、滑动和手势的一个或多个触摸传感器。触摸传感器不仅可以感测触摸或滑动动作的边界,而且可以检测与触摸或滑动操作相关的持续时间和压力。在一些示例中,多媒体组件1408可以包括前置摄像头和/或后置摄像头。当装置1400处于诸如拍摄模式或视频模式之类的操作模式时,前置摄像头和/或后置摄像头可以接收外部多媒体数据。
[0186]
音频组件1410被配置为输出和/或输入音频信号。例如,音频组件1410包括麦克风(mic)。当装置1400处于诸如呼叫模式、记录模式和语音识别模式之类的操作模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1404中或经由通信组件1416进行发送。在一些示例中,音频组件1410还包括用于输出音频信号的扬声器。
[0187]
i/o接口1412提供处理组件1402与外围接口模块之间的接口。以上外围接口模块可以是键盘、点击轮、按钮等。这些按钮可以包括但不限于主页按钮、音量按钮、开始按钮和锁定按钮。
[0188]
传感器组件1414包括用于提供在不同方面针对装置1400的状态评估的一个或多个传感器。例如,传感器组件1414可以检测装置1400的开/关状态和组件的相对位置。例如,这些组件是装置1400的显示器和小键盘。传感器组件1414还可以检测装置1400或装置1400的组件的位置变化、用户在装置1400上的接触的存在或不存在、装置1400的朝向或加速/减速以及装置1400的温度变化。传感器组件1414可以包括被配置为在没有任何物理接触的情况下检测附近对象的存在的接近度传感器。传感器组件1414还可以包括光学传感器,诸如在成像应用中使用的cmos或ccd图像传感器。在一些示例中,传感器组件1414还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
[0189]
通信组件1416被配置为促进装置1400与其它设备之间的有线或无线通信。装置1400可以基于诸如wifi、4g或其组合之类的通信标准接入无线网络。在示例中,通信组件1416经由广播信道从外部广播管理系统接收广播信号或广播相关信息。在示例中,通信组件1416还可以包括用于提升短程通信的近场通信(nfc)模块。例如,nfc模块可以基于射频识别(rfid)技术、红外数据关联(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术和其它技术来实现。
[0190]
在示例中,装置1400可以由以下各者中的一者或多者来实现:用于执行以上方法的专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器、或其它电子元件。
[0191]
非暂时性计算机可读存储介质可以是例如硬盘驱动器(hdd)、固态驱动器(ssd)、闪存、混合驱动器或固态混合驱动器(sshd)、只读存储器(rom)、压缩光盘只读存储器(cd-rom)、磁带、软盘等。
[0192]
图15是示出根据本公开内容的一些实现的用于使用几何预测单元进行运动补偿预测的视频编解码的示例性过程的流程图。
[0193]
在步骤1501中,处理器1420将视频图片分割为多个编码单元(cu),其中的至少一个cu被进一步分割为两个预测单元(pu)。两个pu可以包括至少一个几何形状的pu。例如,几何形状的pu可以包括一对三角形形状的pu、一对楔形形状的pu或其它几何形状的pu。
[0194]
在步骤1502中,处理器1420构建包括多个候选的第一合并列表,每个候选包括一个或多个运动矢量:列表0运动矢量或列表1运动矢量。例如,处理器1420可以基于用于常规合并预测的合并列表构建过程来构建第一合并列表。处理器1420也可以从其它电子设备或存储装置获得第一合并列表。
[0195]
在步骤1503中,处理器1420接收用信号通知的第一索引值,其用于指示从第一合并列表中选择的第一候选。
[0196]
在步骤1504中,处理器1420接收用信号通知的第二索引值,其用于指示从第一合并列表中选择的第二候选。
[0197]
在步骤1505中,处理器1420接收用信号通知的第一二进制标志,所述第一二进制标志被使用第一上下文自适应二进制算术编解码(cabac)上下文建模方法编码为指示选择第一候选的列表0运动矢量还是第一候选的列表1运动矢量来用于几何预测的第一pu。
[0198]
在步骤1506中,处理器1420接收用信号通知的第二二进制标志,所述第二二进制标志被使用第二cabac上下文建模方法编码为指示选择第二候选的列表0运动矢量还是第二候选的列表1运动矢量来用于几何预测的第二pu。
[0199]
在一些示例中,提供了一种用于视频编解码的装置。该装置包括:处理器1420;以及存储器1404,其被配置为存储由处理器可执行的指令;其中,处理器在执行指令时被配置为执行如图15中所示的方法。
[0200]
在一些其它示例中,提供了一种非暂时性计算机可读存储介质1404,其具有存储在其中的指令。当指令由处理器1420执行时,指令使得处理器执行如图15中所示的方法。
[0201]
已经出于说明的目的而呈现了本公开内容的描述,并且其并不旨在是详尽的或限于本公开内容。许多修改、变化和替代实现对于本领域的普通技术人员将是显而易见的,其具有在前述描述和相关联的附图中呈现的教导的好处。
[0202]
选择和描述了各示例,以便解释本公开内容的原理,并且使得本领域的其它技术人员能够理解本公开内容以用于各种实现,并且最佳地利用基本原理和具有适于预想的特定用途的各种修改的各种实现。因此,将理解的是,本公开内容的范围不限于所公开的实现的具体示例,并且修改和其它实现旨在被包括在本公开内容的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1