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

用于视频编解码的运动矢量预测的制作方法

2022-02-22 02:15:17 来源:中国专利 TAG:

用于视频编解码的运动矢量预测
1.相关申请的交叉引用
2.本技术基于2019年6月13日提交的临时申请第62/861,315号并要求享有其优先权,该临时申请的全部内容通过引用整体并入本文。
技术领域
3.本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码中的运动矢量预测的方法和装置。


背景技术:

4.各种视频编解码技术可以用来压缩视频数据。视频编解码是根据一种或多种视频编解码标准执行的。例如,视频编解码标准包括通用视频编解码(vvc)、联合探索测试模型(jem)、高效视频编解码(h.265/hevc)、高级视频编解码(h.264/avc)、运动图像专家组(mpeg)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等),预测方法利用了视频图像或序列中存在的冗余。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。


技术实现要素:

5.本公开的示例提供了用于视频编解码中的运动矢量预测的方法和装置。
6.根据本公开的第一方面,提供了一种解码视频信号的方法。该方法可以包括:在解码器处,从视频信号获得视频块。该方法还可以包括:在解码器处,基于视频块获得空间相邻块。空间相邻块可以包括多个左侧空间相邻块和多个上方空间相邻块。该方法可以包括:在解码器处,基于多个左侧空间相邻块,获得最多一个左侧非缩放运动矢量预测值(mvp)。该方法还可以包括:在解码器处,基于多个上方空间相邻块,获得最多一个上方非缩放mvp。该方法可以包括:在解码器处并且通过降低选择从空间相邻块导出的已缩放mvp的可能性,基于视频块、多个左侧空间相邻块、多个上方空间相邻块来导出mvp候选列表。mvp候选列表可以包括最多一个左侧非缩放mvp和最多一个上方非缩放mvp。该方法可以另外包括:在解码器处,基于mvp候选列表接收最佳mvp。编码器从mvp候选列表中选择最佳mvp。该方法可以包括:在解码器处,基于最佳mvp获得视频块的预测信号。
7.根据本公开的第二方面,提供了一种用于解码视频信号的计算设备。该计算设备可以包括一个或多个处理器、存储由该一个或多个处理器可执行的指令的非暂时性计算机可读存储器。一个或多个处理器可以被配置为:从视频信号获得视频块。一个或多个处理器可以被进一步配置为:基于视频块获得空间相邻块。空间相邻块可以包括多个左侧空间相邻块和多个上方空间相邻块。一个或多个处理器可以被配置为:基于多个左侧空间相邻块获得最多一个左侧非缩放运动矢量预测值(mvp)。一个或多个处理器还可以被配置为:基于多个上方空间相邻块获得最多一个上方非缩放mvp。一个或多个处理器可以被配置为:通过降低选择从空间相邻块导出的已缩放mvp的可能性,基于视频块、多个左侧空间相邻块、多
个上方空间相邻块来导出mvp候选列表。mvp候选列表可以包括最多一个左侧非缩放mvp和最多一个上方非缩放mvp。一个或多个处理器可以另外被配置为:基于mvp候选列表接收最佳mvp。编码器从mvp候选列表中选择最佳mvp。一个或多个处理器可以被配置为:基于最佳mvp获得视频块的预测信号。
8.根据本公开的第三方面,提供了一种其中存储有指令的非暂时性计算机可读存储介质。当指令由装置的一个或多个处理器执行时,指令可以使装置执行:在解码器处,从视频信号获得视频块。指令可以使装置执行:在解码器处,基于视频块获得空间相邻块。空间相邻块可以包括多个左侧空间相邻块和多个上方空间相邻块。指令可以进一步使装置执行:在解码器处,基于多个左侧空间相邻块,获得最多一个左侧非缩放运动矢量预测值(mvp)。指令可以使装置执行:在解码器处,基于多个上方空间相邻块,获得最多一个上方非缩放mvp。指令可以另外使装置执行:在解码器处并且通过降低选择从空间相邻块导出的已缩放mvp的可能性,基于视频块、多个左侧空间相邻块、多个上方空间相邻块导出mvp候选列表。mvp候选列表可以包括最多一个左侧非缩放mvp和最多一个上方非缩放mvp。指令还可以使装置执行:在解码器处,基于mvp候选列表接收最佳mvp。编码器从mvp候选列表中选择最佳mvp。指令还可以使装置执行:在解码器处,在获得基于历史的mvp之后,获得从空间相邻块导出的已缩放mvp。
附图说明
9.被并入并构成本说明书的一部分的附图示出了与本公开一致的示例,并且与描述一起用于解释本公开的原理。
10.图1是根据本公开的示例的编码器的框图。
11.图2是根据本公开的示例的解码器的框图。
12.图3是图示了根据本公开的示例的用于空间mvp候选和时间mvp候选的候选位置的示图。
13.图4是图示了根据本公开的示例的用于空间运动矢量候选的运动矢量缩放的示图。
14.图5是图示了根据本公开的示例的用于时间合并候选的运动矢量缩放的示图。
15.图6是根据本公开的示例的解码视频信号的方法。
16.图7是根据本公开的示例的导出mvp候选列表的方法。
17.图8是图示了根据本公开的示例的与用户接口耦合的计算环境的示图。
具体实施方式
18.现在将详细参考示例实施例,其示例在附图中示出。以下描述参照附图,除非另有描写,否则不同附图中的相同数字代表相同或相似的元素。以下对实施例的描述中阐述的实现方式并不代表与本公开一致的所有实现方式。相反,它们仅仅是与所附权利要求中记载的与本公开相关的方面一致的装置和方法的示例。
19.本公开中使用的术语仅用于描述特定实施例的目的,而并不旨在限制本公开。如在本公开和所附权利要求中使用的,单数形式“一种”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还应理解,本文中使用的术语“和/或”旨在表示并包括相关联的
所列项目中的一个或多个项目的任何或所有可能的组合。
20.应当理解,虽然本文可以使用“第一”、“第二”、“第三”等术语来描述各种信息,但是信息不应当受这些术语的限制。这些术语仅用于将一类信息与另一类信息区分开。例如,在不背离本公开的范围的情况下,第一信息可以称为第二信息;并且类似地,第二信息也可以称为第一信息。如本文所使用的,取决于上下文,术语“如果”可以被理解为意指“当
……
时”或“一经
……”
或“响应于判断”。
21.视频编解码系统
22.从概念上讲,上面提及的视频编解码标准是相似的。例如,它们都使用基于块的处理并且共享相似的视频编解码框图来实现视频压缩。
23.图1示出了用于vvc的基于块的视频编码器的总体示图。具体地,图1示出了典型的编码器100。编码器100具有视频输入110、运动补偿112、运动估计114、帧内/帧间模式决策116、块预测值140、加法器128、变换130、量化132、预测相关信息142、帧内预测118、图片缓冲器120、逆量化134、逆变换136、加法器126、存储器124、环路滤波器122、熵编解码138和比特流144。
24.在编码器100中,视频帧被分割成多个视频块以进行处理。对于每个给定的视频块,基于帧间预测方法或帧内预测方法形成预测。
25.预测残差,其代表当前视频块(视频输入110的一部分)与其预测值(块预测值140的一部分)之间的差,从加法器128被发送到变换130。变换系数然后从变换130被发送到量化132以用于熵减少。量化系数然后被馈送到熵编解码138以生成压缩的视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142(诸如视频块分割信息、运动矢量(mv)、参考图片索引、以及帧内预测模式)也通过熵编解码138馈送并保存到压缩的比特流144中。压缩的比特流144包括视频比特流。
26.在编码器100中,还需要与解码器相关的电路系统,以便为了预测目的而重建像素。首先,通过逆量化134和逆变换136重建预测残差。该重建的预测残差与块预测值140组合,以生成针对当前视频块的未滤波的重建像素。
27.空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中已经编解码的相邻块的样本(称为参考样本)的像素,来预测当前视频块。
28.时间预测(也称为“帧间预测”)使用来自已经编解码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。针对给定编解码单元(cu)或编解码块的时间预测信号通常由一个或多个mv用信号发送,mv指示当前cu与其时间参考之间的运动的量和方向。进一步地,如果支持多个参考图片,则另外发送一个参考图片索引,其用于标识时间预测信号来自参考图片存储装置中的哪个参考图片。
29.运动估计114摄入视频输入110和来自图片缓冲器120的信号,并且向运动补偿112输出运动估计信号。运动补偿112摄入视频输入110、来自图片缓冲器120的信号、以及来自运动估计114的运动估计信号,并且向帧内/帧间模式决策116输出运动补偿信号。
30.在空间和/或时间预测被执行之后,编码器100中的帧内/帧间模式决策116选择最佳预测模式,例如,基于率失真优化方法。块预测值140然后从当前视频块中被减去,并且使用变换130和量化132对所得的预测残差去相关。所得的量化残差系数由逆量化134进行逆量化并由逆变换136进行逆变换以形成重建残差,重建残差然后被加回到预测块以形成cu
的重建信号。此外,在重建的cu被放入图片缓冲器120的参考图片存储装置中并用于对未来的视频块进行编解码之前,可以在重建的cu上应用环路滤波122,诸如去块滤波器、样本自适应偏移(sao)、和/或自适应环路滤波器(alf)。为了形成输出视频比特流144,编解码模式(帧间或帧内)、预测模式信息、运动信息、以及量化残差系数都被发送到熵编解码单元138,以进一步压缩和打包以形成比特流。
31.在编码器中,视频帧被分割为块以进行处理。对于每个给定的视频块,基于帧间预测或帧内预测来形成预测。在帧间预测中,可以基于来自先前重建的帧的像素,通过运动估计和运动补偿来形成预测值。在帧内预测中,可以基于当前帧中的重建像素来形成预测值。通过模式决策,可以选择最佳预测值来预测当前块。
32.预测残差(即,当前块与其预测值之间的差)被发送到变换模块。变换系数然后被发送到量化模块以用于熵减少。量化系数被馈送到熵编解码模块以生成压缩的视频比特流。如图1所示,来自帧间和/或帧内预测模块的预测相关信息(诸如块分割信息、运动矢量、参考图片索引和帧内预测模式等)也经过熵编解码模块并保存到比特流中。
33.在编码器中,还需要与解码器相关的模块,以便为了预测目的而重建像素。首先,通过逆量化和逆变换重建预测残差。这种重建的预测残差与块预测值组合,以生成针对当前块的未滤波的重建像素。
34.为了改进编解码效率和视觉质量,通常使用环路滤波器。例如,去块滤波器在avc、hevc以及当前的vvc中可用。在hevc中,定义了称为sao(样本自适应偏移)的附加环路滤波器,以进一步改进编解码效率。在最新的vvc中,正在积极研究另一种称为alf(自适应环路滤波器)的环路滤波器,并且它很有可能被包括在最终标准中。
35.图2示出了用于vvc的视频解码器的总体框图。具体地,图2示出了典型的解码器200框图。解码器200具有比特流210、熵解码212、逆量化214、逆变换216、加法器218、帧内/帧间模式选择220、帧内预测222、存储器230、环路滤波器228、运动补偿224、图片缓冲器226、预测相关信息234和视频输出232。
36.解码器200类似于位于图1的编码器100中的重建相关部分。在解码器200中,首先通过熵解码212对传入的视频比特流210进行解码,以导出量化系数级别和预测相关信息。然后通过逆量化214和逆变换216处理量化系数级别,以获得重建的预测残差。在帧内/帧间模式选择器220中实现的块预测值机制被配置为基于解码的预测信息执行帧内预测222或运动补偿224。通过使用求和器218,将来自逆变换216的重建的预测残差和由块预测值机制生成的预测输出求和,来获得一组未滤波的重建像素。
37.在重建块被存储在用作参考图片存储库的图片缓冲器226中之前,重建块可以进一步经过环路滤波器228。图片缓冲器226中的重建视频可以被发送以驱动显示设备,以及用于预测未来的视频块。在环路滤波器228开启的情况下,对这些重建像素执行滤波操作以导出最终重建的视频输出232。
38.图2示出了用于这些标准的典型解码器框图。可以看到,它与位于编码器中的重建相关部分几乎相同。
39.在解码器中,首先通过熵解码模块对比特流解码,以导出量化系数级别和预测相关信息。然后通过逆量化模块和逆变换模块处理量化系数级别,以获得重建的预测残差。基于解码的预测信息,通过帧内预测或运动补偿过程来形成块预测值。通过将重建的预测残
差和块预测值求和来获得未滤波的重建像素。在环路滤波器开启的情况下,对这些像素执行滤波操作以导出最终重建视频以用于输出。
40.通用视频编解码(vvc)
41.在第10届jvet会议(2018年4月10-20日,美国圣地亚哥)上,jvet明确了通用视频编解码(vvc)的第一份草案和vvc测试模型1(vtm1)编码方法。决定包括具有使用二元和三元拆分编解码块结构的嵌套多类型树的四叉树,作为vvc的初始新编解码特征。从那时起,在jvet会议期间,已经开发了用于实现编码方法和草案vvc解码过程的参考软件vtm。
42.图片分割结构将输入视频划分成块,称为编解码树单元(ctu)。使用具有嵌套多类型树结构的四叉树将ctu拆分为编解码单元(cu),其中叶编解码单元(cu)定义共享相同预测模式(例如,帧内或帧间)的区域。在本文档中,术语“单元”定义了覆盖所有分量的图像区域;术语“块”用于定义覆盖特定分量(例如,亮度)的区域,并且在考虑色度采样格式(诸如4:2:0)时可能会在空间位置上有所不同。
43.vvc中的运动矢量预测
44.运动矢量预测利用相邻cu的运动矢量的空间和时间相关性,其用于运动参数的显式传输。它通过首先检查左侧相邻块位置、上方相邻块位置和时间相邻块位置(如下面描述的图3所示)以及基于历史的mv的可用性,来构建运动矢量预测值(mvp)候选列表。它然后去除冗余候选并添加零矢量,以使候选列表具有恒定长度。然后,编码器可以从候选列表中选择最佳预测值并发送指示所选候选的对应索引。最佳运动矢量候选的索引然后被编码到比特流中。在以下章节中,提供了有关mvp候选的导出过程的细节。
45.图3示出了针对空间mvp候选a0、a1、b0、b1和b2以及时间mvp候选t0和t1的候选位置。
46.运动矢量预测值候选的导出
47.在vvc中,mvp候选列表是通过按顺序包括以下候选来构建的:
48.(1)从左侧空间相邻cu(a0

a1)导出最多一个非缩放mvp。
49.(2)如果没有来自左侧的非缩放mvp可用,则从左侧空间相邻cu(a0

a1)导出最多一个已缩放mvp。
50.(3)从上方空间相邻cu(b0

b1

b2)导出最多一个非缩放mvp。
51.(4)如果相邻块a0和a1两者均是不可用或是以帧内模式被编解码的,则从上方空间相邻cu(b0

b1

b2)导出最多一个已缩放mvp。
52.(5)有条件的修剪。
53.(6)从时间同位cu(t0

t1)导出最多一个mvp。
54.(7)从fifo表中导出最多两个基于历史的mvp。
55.(8)导出最多两个零mv。
56.当存在从空间块导出的两个mvp候选时,进行第5项“有条件的修剪”。将两个mvp候选相互比较,并且当它们相同时,从mvp候选列表中去除一个。帧间mvp列表的大小固定为2。对于以帧间预测但是非合并模式编解码的每个cu,标志被编解码以指示使用哪个mvp候选。
57.在运动矢量预测中,考虑三种类型的mvp候选:空间mvp候选、时间mvp候选、以及基于历史的mvp候选。对于空间mvp候选导出,基于每个块的位于五个不同位置(如图3所描绘)的运动矢量,导出最多两个mvp候选。对于时间mvp候选导出,从基于两个不同的共位位置导
出的两个候选中选择最多一个mvp候选。如果mvp候选的数量小于2,则将附加的零运动矢量候选添加到列表以使其为2。
58.空间运动矢量预测值候选
59.在空间运动矢量预测值候选的导出中,可以在至多五个潜在候选中选择最多两个候选,至多五个潜在候选是从如图3所描绘地定位的块导出的。这些块位置与用于针对合并模式导出mvp候选的那些块位置相同。对于位于当前块左侧的那些块(包括a0、a1),它们的mv检查顺序定义为a0、a1,以及已缩放a0、已缩放a1。这里的已缩放a0、已缩放a1分别指代块a0、a1的已缩放mv。对于位于当前块上方的那些块(包括b0、b1、b2),它们的mv检查顺序定义为b0、b1、b2、已缩放b0、已缩放b1、已缩放b2。对于每一侧,在导出运动矢量候选时有四种情况要检查,其中两种情况不要求空间mv缩放,而另外两种情况要求空间mv缩放。四种不同的情况总结如下。
60.不要求空间mv缩放的情况:
61.(1)mv具有相同参考图片列表和相同参考图片索引(相同poc)。
62.(2)mv具有不同参考图片列表但具有相同参考图片(相同poc)。
63.要求空间mv缩放的情况:
64.(3)mv具有相同参考图片列表但具有不同参考图片(不同poc)。
65.(4)mv具有不同参考图片列表和不同参考图片(不同poc)。
66.首先检查无空间mv缩放的情况(上面的情况1和2),之后是要求空间mv缩放的情况(上面的情况3和4)。更具体地,对于mv,检查顺序根据以下步骤:
67.从块a0、a1中,通过按依次顺序检查以下情况,导出最多一个mv候选:a0情况1

a0情况2

a1情况1

a1情况2

a0情况3

a0情况4

a1情况3

a1情况4。
68.通过按依次顺序检查以下情况,从块b0、b1、b2导出最多一个mv候选:b0情况1

b0情况2

b1情况1

b1情况2

b2情况1

b2情况2。
69.如果没有从步骤1中导出mv候选,则通过按依次顺序检查以下情况,从块b0、b1、b2导出最多一个mv候选:b0情况3

b0情况4

b1情况3

b1情况4

b2情况3

b2情况4。
70.如果mvp候选的数量小于二,则附加的零运动矢量候选被添加到列表以使其为二。
71.当相邻块的参考图片的poc与当前块的poc不同时,无论参考图片列表如何,都需要空间mv缩放。如在以上步骤中可以看出的,如果当前块左侧的块的mv不可用(例如,块不可用或所有这些块都是帧内编解码的),则允许对当前块上侧的那些块的运动矢量进行mv缩放。否则,不允许对上方块的运动矢量进行空间mv缩放。作为结果,在整个mv预测候选导出过程中,只需要最多一次空间mv缩放。
72.在空间mv缩放过程中,如(下面描述的)图4所描绘的,相邻块的运动矢量以与用于时间mv缩放的类似方式被缩放。
73.图4示出了用于空间运动矢量候选的运动矢量缩放的图示。该图示包括410neigh_ref、420curr_ref、430curr_pic、440neighbor_pu、450curr_pu、460tb和470td。410neigh_ref是用于运动矢量缩放的相邻参考。420curr_ref是用于运动矢量缩放的当前参考。430是用于运动矢量缩放的当前图片。440neighbor_pu是用于运动矢量缩放的相邻预测单元。450curr_pu是用于运动矢量缩放的当前预测单元。460tb是当前图片的参考图片与当前图片之间的poc差。470td是相邻参考图片与当前图片之间的poc差。
74.时间运动矢量预测值候选
75.在时间mvp候选的导出中,从参考图片列表中的先前编解码图片中的同位块的mv导出已缩放运动矢量。包含用于导出时间mvp候选的同位块的图片在以下描述中被称为“同位图片”。为了导出时间运动候选,首先将条带头部中的显式标志(collocated_from_l0_flag)发送到解码器,以指示同位图片是从列表0还是列表1中选择的。进一步发送同位参考索引(collocated_ref_idx),以指示选择该列表中的哪个图片作为用于导出时间运动矢量预测值候选的同位图片。时间mvp候选的l0 mv和l1 mv根据预定义的顺序独立地导出,如表1中所示。
76.在表1中,collocatedpicturelist是用信号发送以指示同位图片从哪个预测列表被定位的语法。如(下面描述的)图5中的虚线所示,获得用于时间mvp候选的已缩放运动矢量。其是使用poc距离tb和td从共位块的选定运动矢量缩放的,其中tb定义为当前图片的参考图片与当前图片之间的poc差,而td定义为共位图片的参考图片与共位图片之间的poc差。时间合并候选的参考图片索引被设置为等于零。hevc规范中描述了缩放过程的实际实现。对于b条带,两个运动矢量(一个用于参考图片列表0,而另一个用于参考图片列表1)被获得并且被组合以形成双向预测合并候选。
77.表1hevc中用于从针对tmvp的同位块导出时间mvp候选的算法
[0078][0079][0080]
图5示出了用于时间合并候选的运动矢量缩放的图示。该图示包括510neigh_ref、520curr_ref、530curr_pic、540col_pic、550curr_pu、560col_pu、570tb和580td。510neigh_ref是用于运动矢量缩放的相邻参考图片。520curr_ref是用于运动矢量缩放的当前参考。530curr_pic是用于运动矢量缩放的当前图片。540col_pic是用于运动矢量缩放的同位图片。550curr_pu是用于运动矢量缩放的当前预测单元。560col_pu是用于运动矢量缩放的同位预测单元。570tb是当前图片的参考图片与当前图片之间的poc差。580td是相邻参考图片与当前图片之间的poc差。
[0081]
在同位图片中,在如图3中描绘的t0和tl之间选择用于导出时间候选的同位块。如果位置t0处的块是不可用的,或者是帧内编解码的,或者在当前ctu之外,则使用位置t1。否则,在导出时间合并候选时使用位置t0。
[0082]
基于历史的合并候选导出
[0083]
基于历史的mvp(hmvp)在空间mvp和tmvp之后被添加到合并列表。在该方法中,存储在表中的先前编解码的块的运动信息可以用作用于当前块的mvp。这样的mvp被称为hmvp。在编码/解码过程期间维护包含多个hmvp候选的表。当遇到新的ctu行时,该表被重置(清空)。每当cu以非子块帧间预测模式被编解码时,cu的相关联的运动信息都会作为新的hmvp候选被添加到表的最后一个条目。
[0084]
用于运动矢量预测的空间运动矢量缩放
[0085]
在mvp的当前设计中,可以导出最多一个已缩放空间mv候选。由于mv缩放过程在其复杂度方面并非微不足道的,因此设计了一种新方案以进一步降低在导出mvp时使用空间mv缩放的可能性。
[0086]
运动矢量预测改进
[0087]
在本公开中,提出了若干方法以在复杂度或编解码效率方面改进运动矢量预测。注意,所提出的各方法可以独立或联合应用。
[0088]
图6示出了根据本公开的解码视频信号的方法。该方法可以例如应用于解码器。
[0089]
在步骤610中,解码器可以从视频信号中获得视频块。
[0090]
在步骤612中,解码器可以基于视频块获得空间相邻块。例如,空间相邻块可以包括多个左侧空间相邻块和多个上方空间相邻块。
[0091]
在步骤614中,解码器可以基于多个左侧空间相邻块获得最多一个左侧非缩放运动矢量预测值(mvp)。
[0092]
在步骤616中,解码器可以基于多个上方空间相邻块获得最多一个上方非缩放mvp。
[0093]
在步骤618中,解码器可以通过降低选择从空间相邻块导出的已缩放mvp的可能性,基于视频块、多个左侧空间相邻块、多个上方空间相邻块来导出mvp候选列表。例如,mvp候选列表可以包括最多一个左侧非缩放mvp和最多一个上方非缩放mvp。
[0094]
在步骤620中,解码器可以基于mvp候选列表接收最佳mvp,其中编码器从mvp候选列表中选择最佳mvp。在一个示例中,最佳mvp可以由编码器基于成本值来选择。例如,对于一些编码器设计,编码器可以使用每个mvp候选来导出选定mvp与通过运动估计导出的mv之间的mv差。对于每个mvp候选,使用例如mv差和选定mvp的mvp索引的比特来计算成本值。选择具有最佳成本值(例如,最小成本)的mvp候选作为最终mvp,并且将其mvp索引编解码到比特流中。
[0095]
在步骤622中,解码器可以基于最佳mvp获得视频块的预测信号。
[0096]
根据第一方面,为了降低选择/导出已缩放mvp的可能性,提出了在构建mvp候选列表时将已缩放空间mvp放到更靠后的位置。用于从空间相邻块导出已缩放mvp的条件可以与当前vvc中的条件相同或不同。
[0097]
在一个示例中,用于从空间相邻块导出已缩放mvp的条件保持与当前vvc中的条件相同。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0098]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0099]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0100]
3)有条件的修剪。
[0101]
4)从时间同位块(t0

t1)导出最多一个mvp。
[0102]
5)从fifo表中导出最多两个基于历史的mvp。
[0103]
6)如果没有来自左侧相邻块的非缩放mvp可用,则从左侧空间相邻块(a0

a1)导出最多一个已缩放mvp。
[0104]
7)如果相邻块a0和a1中的任一个都不可用或者它们以帧内模式编解码,则从上方空间相邻块(b0

b1

b2)导出最多一个已缩放mvp。
[0105]
8)导出最多两个零mv。
[0106]
在另一示例中,用于从空间相邻块导出已缩放mvp的条件被去除。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0107]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0108]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0109]
3)有条件的修剪。
[0110]
4)从时间同位块(t0

t1)导出最多一个mvp。
[0111]
5)从fifo表中导出最多两个基于历史的mvp。
[0112]
6)从左侧空间相邻块(a0

a1)导出最多一个已缩放mvp。
[0113]
7)从上方空间相邻块(b0

b1

b2)导出最多一个已缩放mvp。
[0114]
8)导出最多两个零mv。
[0115]
在第三示例中,用于从空间相邻块导出已缩放mvp的条件从当前vvc中的条件修改得出。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0116]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0117]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0118]
3)有条件的修剪。
[0119]
4)从时间同位块(t0

t1)导出最多一个mvp。
[0120]
5)从fifo表中导出最多两个基于历史的mvp。
[0121]
6)从左侧空间相邻块(a0

a1)导出最多一个已缩放mvp。
[0122]
7)如果相邻块a0和a1中的任一个都不可用或者它们以帧内模式编解码,则从上方空间相邻块(b0

b1

b2)导出最多一个已缩放mvp。
[0123]
8)导出最多两个零mv。
[0124]
在第四示例中,用于从空间相邻块导出已缩放mvp的条件从当前vvc中的条件修改得出。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0125]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0126]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0127]
3)有条件的修剪。
[0128]
4)从时间同位块(t0

t1)导出最多一个mvp。
[0129]
5)从fifo表中导出最多两个基于历史的mvp。
[0130]
6)从左侧空间相邻块a0导出最多一个已缩放mvp。
[0131]
7)从左侧空间相邻块a1导出最多一个已缩放mvp。
[0132]
8)从上方空间相邻块b0导出最多一个已缩放mvp。
[0133]
9)从上方空间相邻块b1导出最多一个已缩放mvp。
[0134]
10)从上方空间相邻块b2导出最多一个已缩放mvp。
[0135]
11)导出最多两个零mv。
[0136]
根据第二方面,为了降低选择/导出已缩放mvp的可能性,提出了在构建mvp候选列表时,将时间mvp和已缩放空间mvp两者放到更靠后的位置。用于从空间相邻块导出已缩放mvp的条件可以与当前vvc中的条件相同或不同。
[0137]
在一个示例中,用于从空间相邻块导出已缩放mvp的条件保持与当前vvc中相同。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0138]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0139]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0140]
3)有条件的修剪。
[0141]
4)从fifo表中导出最多两个基于历史的mvp。
[0142]
5)从时间同位块(t0

t1)导出最多一个mvp。
[0143]
6)如果没有来自左侧相邻块的非缩放mvp可用,则从左侧空间相邻块(a0

a1)导出最多一个已缩放mvp。
[0144]
7)如果相邻块a0和a1中的任一个都不可用或者它们以帧内模式编解码,则从上方空间相邻块(b0

b1

b2)导出最多一个已缩放mvp。
[0145]
8)导出最多两个零mv。
[0146]
在另一示例中,用于从空间相邻块导出已缩放mvp的条件被去除。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0147]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0148]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0149]
3)有条件的修剪。
[0150]
4)从fifo表中导出最多两个基于历史的mvp。
[0151]
5)从时间同位块(t0

t1)导出最多一个mvp。
[0152]
6)从左侧空间相邻块(a0

a1)导出最多一个已缩放mvp。
[0153]
7)从上方空间相邻块(b0

b1

b2)导出最多一个已缩放mvp。
[0154]
8)导出最多两个零mv。
[0155]
在第三示例中,用于从空间相邻块导出已缩放mvp的条件从当前vvc中的条件修改得出。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0156]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0157]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0158]
3)有条件的修剪。
[0159]
4)从fifo表中导出最多两个基于历史的mvp。
[0160]
5)从时间同位块(t0

t1)导出最多一个mvp。
[0161]
6)从左侧空间相邻块(a0

a1)导出最多一个已缩放mvp。
[0162]
7)如果相邻块a0和a1中的任一个都不可用或者它们以帧内模式编解码,则从上方
空间相邻块(b0

b1

b2)导出最多一个已缩放mvp。
[0163]
8)导出最多两个零mv。
[0164]
在第四示例中,用于从空间相邻块导出已缩放mvp的条件从当前vvc中的条件修改得出。mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0165]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0166]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0167]
3)有条件的修剪。
[0168]
4)从fifo表中导出最多两个基于历史的mvp。
[0169]
5)从时间同位块(t0

t1)导出最多一个mvp。
[0170]
6)从左侧空间相邻块a0导出最多一个已缩放mvp。
[0171]
7)从左侧空间相邻块a1导出最多一个已缩放mvp。
[0172]
8)从上方空间相邻块b0导出最多一个已缩放mvp。
[0173]
9)从上方空间相邻块b1导出最多一个已缩放mvp。
[0174]
10)从上方空间相邻块b2导出最多一个已缩放mvp。
[0175]
11)导出最多两个零mv。
[0176]
根据第三方面,为了降低选择/导出已缩放mvp的可能性,提出了从mvp候选列表中排除已缩放空间mvp候选。
[0177]
图7示出了根据本公开的导出mvp候选列表的方法。该方法例如可以应用于解码器。
[0178]
在步骤710中,当存在从空间相邻块导出的两个mvp相同候选时,解码器可以从mvp候选列表中修剪两个mvp相同候选中的一个。
[0179]
在步骤712中,解码器可以从时间同位块中获得最多一个mvp。时间同位块包括同位块t0和同位块t1。
[0180]
在步骤714中,解码器可以从fifo表中获得最多两个基于历史的mvp。fifo表包括先前编解码的块。
[0181]
在步骤716中,解码器可以获得最多两个等于0的mv。
[0182]
在一个示例中,mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0183]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0184]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0185]
3)有条件的修剪。
[0186]
4)从时间同位块(t0

t1)导出最多一个mvp。
[0187]
5)从fifo表中导出最多两个基于历史的mvp。
[0188]
6)导出最多两个零mv。
[0189]
在另一示例中,mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0190]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0191]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0192]
3)有条件的修剪。
[0193]
4)从fifo表中导出最多两个基于历史的mvp。
[0194]
5)从时间同位块(t0

t1)导出最多一个mvp。
[0195]
6)导出最多两个零mv。
[0196]
根据第四方面,为了降低选择/导出已缩放mvp的可能性,提出了从mvp候选列表中排除已缩放空间mvp候选和tmvp两者。
[0197]
在一个示例中,mvp候选列表是通过使用一个或多个处理器执行以下动作来构建的。
[0198]
1)从左侧空间相邻块(a0

a1)导出最多一个非缩放mvp。
[0199]
2)从上方空间相邻块(b0

b1

b2)导出最多一个非缩放mvp。
[0200]
3)有条件的修剪。
[0201]
4)从fifo表中导出最多两个基于历史的mvp。
[0202]
5)导出最多两个零mv。
[0203]
值得注意的是,在上面说明的所有这些方面和/或示例中,当mvp候选列表已满时,导出过程停止。
[0204]
图8示出了与用户接口860耦合的计算环境810。计算环境810可以是数据处理服务器的一部分。计算环境810包括处理器820、存储器840和i/o接口850。
[0205]
处理器820通常控制计算环境810的整体操作,诸如与显示、数据获取、数据通信和图像处理相关联的操作。处理器820可以包括一个或多个处理器以执行指令来执行上文描述的方法中的所有或一些步骤。此外,处理器820可以包括促进处理器820与其他组件之间的交互的一个或多个模块。处理器可以是中央处理器(cpu)、微处理器、单片机、gpu等。
[0206]
存储器840被配置为存储各种类型的数据以支持计算环境810的操作。存储器840可以包括预定软件842。这种数据的示例包括指令,指令用于对计算环境810、视频数据集、图像数据等操作的任何应用或方法。存储器840可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,诸如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、闪速存储器、磁盘或光盘。
[0207]
i/o接口850提供处理器820和外围接口模块(诸如键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。i/o接口850可以与编码器和解码器耦合。
[0208]
在一些实施例中,还提供了一种包括多个程序的非暂时性计算机可读存储介质,该多个程序诸如包括在存储器840中,由计算环境810中的处理器820可执行,以用于执行上文描述的方法。例如,非暂时性计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘、光学数据存储设备等。
[0209]
非暂时性计算机可读存储介质中存储有多个程序以由具有一个或多个处理器的计算设备执行,其中多个程序在由一个或多个处理器执行时使计算设备执行上文描述的用于运动预测的方法。
[0210]
在一些实施例中,计算环境810可以利用用于执行上述方法的一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、图形处理单元(gpu)、控制器、微控制器、微处理器、或其他电子
组件来实现。
[0211]
本公开的描述是为了说明的目的而呈现的,而并不旨在穷举或限制于本公开。许多修改、变化和替代实现方式对于受益于前述描述和相关附图中呈现的教导的本领域普通技术人员将是显而易见的。
[0212]
选择和描述示例是为了解释本公开的原理并使本领域的其他技术人员能够理解本公开的各种实现方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实现方式。因此,将理解,本公开的范围不限于所公开的实现方式的具体示例,并且修改和其他实现方式旨在被包括在本公开的范围内。
再多了解一些

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

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

相关文献