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

HMVP表的更新的制作方法

2022-07-14 05:11:58 来源:中国专利 TAG:

hmvp表的更新
1.相关申请的交叉引用
2.根据适用的专利法和/或依据巴黎公约的规则,本技术是为了及时要求2019年12月6日提交的国际专利申请no.pct/cn2019/123670的优先权和权益。国际专利申请no.pct/cn2019/123670的全部公开通过引用而并入作为本技术的公开的一部分。
技术领域
3.本专利文档涉及图像和视频编码和解码。


背景技术:

4.数字视频占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。


技术实现要素:

5.本文档公开了可以由视频编码器和解码器用来在视频编码或解码期间执行跨分量自适应环路滤波的技术。在一个示例方面,公开了一种视频处理的方法。
6.在一个示例方面,公开了一种视频处理的方法。该方法包括:执行视频的视频块和视频的比特流表示之间的转换;以及通过移除用于另一视频块的运动候选的表的第k个条目来选择性地更新该表,其中k是基于规则的正整数。
7.在一个示例方面,公开了一种视频处理的方法。该方法包括:执行视频的视频块和视频的比特流表示之间的转换;以及选择性地基于规则,通过移除用于另一视频块的运动候选的表中的现有候选而添加新候选来更新该表,其中该规则取决于现有候选的特性。
8.在一个示例方面,公开了一种视频处理的方法。该方法包括:执行视频的视频块和视频的比特流表示之间的转换;以及选择性地基于规则,通过在用于另一视频块的运动候选的表中从第0个位置起的第k个位置处添加基于转换的新候选来更新该表,其中k取决于规则。
9.在一个示例方面,公开了一种视频处理的方法。该方法包括:执行视频的视频处理单元的视频块和视频的比特流表示之间的转换;以及选择性地基于规则,更新用于另一视频块的运动候选的表,其中该规则取决于视频处理单元。
10.在一个示例方面,公开了一种视频处理的方法。该方法包括:维护包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行视频的当前视频块和视频的比特流表示之间的转换;以及通过移除表中的第k个条目并将运动候选添加到hmvp表中来更新该表,其中k是正整数并基于预定规则来确定,并且添加到hmvp表中的运动候选是从在转换期间推导的运动信息推导的。
11.在一个示例方面,公开了一种视频处理的方法。该方法包括:维护包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行视频的当前视频块和视频的比特流表示之间的转换;以及基于冗余候选在hmvp表中的位置,用运动候选更新该表,其中运动候选是
从在转换期间推导的运动信息推导的,并且冗余候选与运动候选相同或类似。
12.在一个示例方面,公开了一种视频处理的方法。该方法包括:维护包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行视频的当前视频块和视频的比特流表示之间的转换;以及通过将运动候选添加到hmvp表中的第k个条目来更新该表,其中添加到hmvp表中的运动候选是从在转换期间推导的运动信息推导的,并且,k是正整数并基于预定规则来确定。
13.在一个示例方面,公开了一种视频处理的方法。该方法包括:维护包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行视频的视频块的视频处理单元和视频的比特流表示之间的转换;以及基于与视频处理单元相关联的一个或多个规则来更新hmvp表,其中该规则从一个视频处理单元到另一个视频处理单元而改变。
14.在又一个示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实施上述方法的处理器。
15.在又一个示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实施上述方法的处理器。
16.在又一个示例方面,公开了一种存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现本文描述的方法之一。
17.这些以及其他特征在整个本文档中描述。
附图说明
18.图1示出了典型的hevc视频编码器(解码器建模元件用浅灰色阴影表示)。
19.图2示出了视频块分割的示例。
20.图3示出了mxm编解码单元或视频块的允许预测块的示例。
21.图4a-图4b示出了划分模式。
22.图5a-图5b示出了使用四叉树二叉树的划分模式示例。
23.图6(a)至(e)示出了各种块分割模式。
24.图7示出了merge候选列表构建的推导过程。
25.图8示出了空域merge候选的示例位置。
26.图9示出了被考虑用于空域merge候选的冗余检查的候选对。
27.图10a-图10b示出了n
×
2n和2n
×
n分割(partition)的第二pu的位置。
28.图11是用于时域merge候选的运动矢量缩放的图示。
29.图12示出了并置图片中的时域merge候选c0和c1的候选位置。
30.图13示出了组合的双向预测merge候选的示例。
31.图14示出了运动矢量预测候选的推导过程。
32.图15是用于空域运动矢量候选的运动矢量缩放的图示。
33.图16示出了基于历史的运动矢量预测(hmvp)的示例编解码流程。
34.图17示出了修改的merge列表构建过程。
35.图18a-图18b示出了基于冗余移除的hmvp更新方法(移除一个冗余运动候选)。
36.图19a-图19b示出了基于冗余移除的hmvp更新方法(移除一个冗余运动候选)的示例。
37.图20示出了cu和pu分割示例。
38.图21示出了在avs3中使用的当前块及其相邻(neighboring)块的示例。
39.图22a-图22d描绘了基于冗余移除的hmvp更新方法(表尺寸设置为l)的示例。
40.图23a-图23f描绘了hmvp表更新过程的示例。
41.图24是所公开的技术可以被实施的示例视频处理系统的框图。
42.图25是用于视频处理的示例硬件平台的框图。
43.图26是视频处理的示例方法的流程图。
44.图27是视频处理的示例方法的流程图。
45.图28是视频处理的示例方法的流程图。
46.图29是视频处理的示例方法的流程图。
47.图30是视频处理的示例方法的流程图。
具体实施方式
48.在本文档中使用章节标题是为了易于理解,而不是将每个章节中公开的技术和实施例的应用性仅限制于该章节。此外,在一些描述中使用h.266术语仅仅是为了易于理解,而不是为了限制所公开的技术的范围。因此,本文描述的技术也适用于其他视频编解码器设计。
49.1.介绍
50.本专利文档涉及视频编解码技术。具体地,它涉及图像/视频编解码中的运动矢量编解码。它可以被应用于现有的视频编解码标准(如hevc)、或者待完成的标准(多功能视频编解码)、中国音频和视频编解码标准的第三代(avs3)。它也可以适用于未来的视频编解码标准或视频编解码器。
51.2.简要描述
52.视频编解码标准主要通过众所周知的itu-t和iso/iec标准的发展而演进。itu-t制定了h.261和h.263,iso/iec制定了mpeg-1和mpeg-4visual,并且这两个组织联合制定了h.262/mpeg-2视频和h.264/mpeg-4高级视频编解码(avc)和h.265/hevc标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。典型的hevc编码器框架的示例在图1中描绘。
53.2.1.分割结构
54.2.1.1h.264/avc中的分割树结构
55.先前标准中的编解码层的核心是宏块,其包含16
×
16亮度样点块,并且在4:2:0颜色采样的通常情况下,包含两个对应的8
×
8色度样点块。
56.帧内编解码块使用空域预测来利用像素之间的空域相关性。定义了两个分割:16
×
16和4
×
4。
57.帧间编解码块通过估计图片之间的运动来使用时域预测而不是空域预测。可以针对16
×
16宏块或其任何子宏块分割(16
×
8、8
×
16、8
×
8、8
×
4、4
×
8、4
×
4)独立地估计运动(参见图2)。仅允许每一子宏块分割一个运动矢量(mv)。
58.2.1.2.hevc中的分割树结构
59.在hevc中,通过使用表示为编解码树的四叉树结构将ctu划分为cu以适应各种局
部特性。使用帧间图片(时域)还是帧内图片(空域)预测来编解码图片区域的决定是在cu级别进行的。可以根据pu划分类型将每个cu进一步划分为一个、两个或四个pu。在一个pu内部,应用相同的预测过程,并且基于pu将相关信息发送到解码器。在通过应用基于pu划分类型的预测过程来获得残差块之后,可以根据类似于cu的编解码树的另一个四叉树结构将cu分割为变换单元(tu)。hevc结构的关键特征中的一个是它具有多个分割概念,包括cu、pu和tu。
60.在下文中,使用hevc的混合视频编解码中涉及的各种特征如下突出显示。
61.1)编解码树单元和编解码树块(ctb)结构:hevc中的模拟结构是编解码树单元(ctu),其具有由编码器选择的尺寸并且可以大于传统宏块。ctu由亮度ctb和对应的色度ctb以及语法元素组成。亮度ctb的尺寸l
×
l可以选择为l=16、32或64个样点,其中更大的尺寸通常能够实现更好的压缩。hevc然后支持使用树结构和类似四叉树的信令将ctb分割为更小的块。
62.2)编解码单元(cu)和编解码块(cb):ctu的四叉树语法指定其亮度cb和色度cb的尺寸和位置。四叉树的根与ctu相关联。因此,亮度ctb的尺寸是亮度cb的最大支持尺寸。将ctu划分为亮度cb和色度cb是联合信令通知的。一个亮度cb和通常两个色度cb与相关联的语法一起形成编解码单元(cu)。ctb可以仅包含一个cu或者可以被划分以形成多个cu,并且每个cu具有分割成预测单元(pu)的相关联分割和变换单元(tu)的树。
63.3)预测单元和预测块(pb):使用帧间图片还是帧内图片预测来编解码图片区域的决定是在cu级别进行的。pu分割结构的根在cu级别。根据基本预测类型决定,亮度cb和色度cb然后可以进一步在尺寸上被划分,并且根据亮度和色度预测块(pb)而预测。hevc支持从64
×
64下至4
×
4个样点的可变pb尺寸。图3示出了m
×
m cu的允许的pb的示例。
64.4)tu和变换块:使用块变换对预测残差进行编解码。tu树结构的根在cu级别。亮度cb残差可以与亮度变换块(tb)相同,或者可以进一步划分为更小的亮度tb。这同样适用于色度tb。针对正方形tb尺寸4
×
4、8
×
8、16
×
16和32
×
32定义类似于离散余弦变换(discrete cosine transform,dct)的函数的整数基函数。对于亮度帧内图片预测残差的4
×
4变换,可替代地指定从离散正弦变换(discrete sine transform,dst)的形式推导的整数变换。
65.2.1.2.1.成为变换块和单元的树结构分割
66.对于残差编解码,cb可以被递归地分割为变换块(tb)。分割由残差四叉树信令通知。仅指定了正方形cb和tb分割,其中块可以被递归地划分为象限,如图4a-图4b所示。对于尺寸为m
×
m的给定亮度cb,标志信令通知其是否被划分为四个尺寸为m/2
×
m/2的块。如果可以进一步划分,如通过sps中指示的残差四叉树的最大深度信令通知的,则为每个象限(quadrant)分配指示其是否被划分为四个象限的标志。由残差四叉树产生的叶节点块是通过变换编解码进一步处理的变换块。编码器指示其将使用的最大和最小亮度tb尺寸。当cb尺寸大于最大tb尺寸时,划分是隐式的。当划分将导致亮度tb尺寸小于指示的最小值时,不划分是隐式的。除了当亮度tb尺寸为4
×
4时(在这种情况下,单个4
×
4色度tb用于由四个4
×
4亮度tb覆盖的区域),色度tb尺寸在每个维度中是亮度tb尺寸的一半。在帧内图片预测的cu的情况下,(在cb内或外部的)最近的相邻tb的解码样点被用作用于帧内图片预测的参考数据。
67.与先前标准相反,hevc设计允许tb跨越帧间图片预测的cu的多个pb,以最大化四叉树结构tb分割的潜在编解码效率益处。
68.2.1.2.2.父节点和子节点
69.根据四叉树结构划分ctb,四叉树结构的节点是编解码单元。四叉树结构中的多个节点包括叶节点和非叶节点。叶节点在树结构中没有子节点(即叶节点不被进一步划分)。非叶节点包括树结构的根节点。根节点对应于视频数据的初始视频块(例如,ctb)。对于多个节点中的每个相应的非根节点,相应的非根节点对应于视频块,该视频块是与相应的非根节点的树结构中的父节点相对应的视频块的子块。多个非叶节点中的每个相应的非叶节点在树结构中具有一个或多个子节点。
70.2.1.3.jem中具有更大ctu的四叉树加二叉树块结构
71.为了探索hevc以外的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索小组(jvet)。此后,jvet已经采用了许多新方法,并将其放入名为联合探索模型(jem)的参考软件中。
72.2.1.3.1.qtbt块分割结构
73.不同于hevc,qtbt结构移除了多个分割类型的概念,即,它移除了cu、pu和tu概念的分离,并且支持cu分割形状的更多灵活性。在qtbt块结构中,cu可以具有正方形或矩形形状。如图5a-图5b所示,首先通过四叉树结构分割编解码树单元(ctu)。通过二叉树结构进一步分割四叉树叶节点。在二叉树划分中有两种划分类型,对称水平划分和对称垂直划分。二叉树叶节点被称为编解码单元(cu),并且该分段用于预测和变换处理而无需任何进一步的分割。这意味着cu、pu和tu在qtbt编解码块结构中具有相同的块尺寸。在jem中,cu有时由不同颜色分量的编解码块(cb)组成,例如,一个cu在4:2:0色度格式的p条带和b条带的情况下包含一个亮度cb和两个色度cb,并且有时由单个分量的cb组成,例如,一个cu在i条带的情况下仅包含一个亮度cb或只包含两个色度cb。
74.为qtbt分割方案定义以下参数。
75.–
ctu尺寸:四叉树的根节点尺寸,与hevc中的概念相同。
76.–
minqtsize:最小允许的四叉树叶节点尺寸。
77.–
maxbtsize:最大允许的二叉树根节点尺寸。
78.–
maxbtdepth:最大允许的二叉树深度。
79.–
minbtsize:最小允许二叉树叶节点尺寸。
80.在qtbt分割结构的一个示例中,ctu尺寸被设置为128
×
128个亮度样点,且具有两个对应的64
×
64色度样点块,minqtsize被设置为16
×
16,maxbtsize被设置为64
×
64,minbtsize(针对宽度和高度两者)被设置为4
×
4,并且maxbtdepth被设置为4。四叉树分割首先应用于ctu以生成四叉树叶节点。四叉树叶节点可以具有从16
×
16(即minqtsize)至128
×
128(即ctu尺寸)的尺寸。如果叶四叉树节点为128
×
128,则它不会通过二叉树被进一步划分,因为它的尺寸超过maxbtsize(即64
×
64)。否则,叶四叉树节点可以通过二叉树被进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。当二叉树深度达到maxbtdepth(即4)时,不考虑进一步的划分。当二叉树节点的宽度等于minbtsize(即4)时,不考虑进一步的水平划分。类似地,当二叉树节点的高度等于minbtsize时,不考虑进一步的垂直划分。二叉树的叶节点通过预测和变换过程被进一步处理,而无需任何进一步
的分割。在jem中,最大ctu尺寸为256
×
256个亮度样点。
81.图5a示出了通过使用qtbt进行块分割的示例,并且图5b示出了对应的树表示。实线指示四叉树划分,并且虚线指示二叉树划分。在二叉树的每个划分(即,非叶)节点中,信令通知一个标志以指示使用哪种划分类型(即,水平或垂直),其中0指示水平划分,并且1指示垂直划分。对于四叉树划分,不需要指示划分类型,因为四叉树划分总是水平和垂直地划分块以产生具有相同尺寸的4个子块。
82.另外,qtbt方案支持亮度和色度具有单独的qtbt结构的能力。目前,对于p条带和b条带,一个ctu中的亮度ctb和色度ctb共享相同的qtbt结构。然而,对于i条带,通过qtbt结构将亮度ctb分割为cu,并且通过另一个qtbt结构将色度ctb分割为色度cu。这意味着i条带中的cu由亮度分量的编解码块或两个色度分量的编解码块组成,并且p条带或b条带中的cu由所有三个颜色分量的编解码块组成。
83.在hevc中,小块的帧间预测被限制,以减少运动补偿的存储器访问,使得对于4
×
8块和8
×
4块不支持双向预测,并且对于4
×
4块不支持帧间预测。在jem的qtbt中,这些限制被移除。
84.2.1.4.vvc的三叉树
85.如所提出的,支持除了四叉树和二叉树之外的树类型。在实施方式中,引入了两个以上的三叉树(tt)分割,即水平和垂直中心侧三叉树,如图6(d)和(e)所示。
86.图6(a)四叉树分割6(b)垂直二叉树分割6(c)水平二叉树分割6(d)垂直中心侧三叉树分割6(e)水平中心侧三叉树分割。
87.有两个级别的树,区域树(四叉树)和预测树(二叉树或三叉树)。首先通过区域树(region tree,rt)对ctu进行分割。可以用预测树(prediction tree,pt)进一步划分rt叶。还可以用pt进一步划分pt叶,直到达到最大pt深度。pt叶是基本编解码单元。为方便起见,它仍被称为cu。cu不能被进一步划分。预测和变换都以与jem相同的方式应用于cu。整个分割结构被命名为“多类型树”。
88.2.2.hevc/h.265中的帧间预测
89.每个帧间预测的pu具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。还可以使用inter_pred_idc信令通知两个参考图片列表中的一个的使用。运动矢量可以被显式地编解码为相对于预测值(predictor)的增量(delta),这样的编解码模式被称为amvp模式。
90.当以跳过模式对cu进行编解码时,一个pu与cu相关联,并且不存在显著的残差系数、没有编解码的运动矢量增量或参考图片索引。指定merge模式,由此从相邻pu获得当前pu的运动参数,包括空域和时域候选。merge模式可以应用于任何帧间预测的pu,而不仅应用于跳过模式。merge模式的可选方案是运动参数的显式传输,其中每个pu显式地信令通知运动矢量、每个参考图片列表的对应参考图片索引、以及参考图片列表使用。
91.当信令指示要使用两个参考图片列表中的一个时,从一个样点块产生pu。这被称为“单向预测”。单向预测可用于p条带和b条带两者。
92.当信令指示要使用参考图片列表中的两者时,从两个样点块产生pu。这被称为“双向预测”。双向预测仅可用于b条带。
93.下文提供了关于hevc中指定的帧间预测模式的细节。描述将以merge模式开始。
94.2.2.1.merge模式
95.2.2.1.1.merge模式的候选的推导
96.当使用merge模式预测pu时,从比特流解析指向merge候选列表中的条目的索引并将其用于检索运动信息。该列表的构建在hevc标准中指定,并且可以根据以下步骤的序列概述:
97.·
步骤1:初始候选推导
98.ο步骤1.1:空域候选推导
99.ο步骤1.2:空域候选的冗余检查
100.ο步骤1.3:时域候选推导
101.·
步骤2:附加候选插入
102.ο步骤2.1:创建双向预测候选
103.ο步骤2.2:插入零运动候选
104.这些步骤也在图7中示意性描绘。对于空域merge候选推导,在位于五个不同位置的候选当中选择最多四个merge候选。对于时域merge候选推导,在两个候选当中选择最多一个merge候选。由于在解码器处假设每个pu的恒定数量的候选,因此当候选的数量未达到在条带头中信令通知的merge候选的最大数量(maxnummergecand)时,生成附加候选。由于候选的数量是恒定的,因此使用截断一元二值化(unary binarization,tu)来对最佳merge候选的索引进行编码。如果cu的尺寸等于8,则当前cu的所有pu共享单个merge候选列表,其与2n
×
2n预测单元的merge候选列表相同。
105.在下文中,详细描述了与前述步骤相关联的操作。
106.2.2.1.2.空域候选推导
107.在对空域merge候选的推导中,在位于图8中描绘的位置的候选当中选择最多四个merge候选。推导的顺序是a1、b1、b0、a0和b2。仅当位置a1、b1、b0、a0的任何pu不可用(例如,因为它属于另一个条带或片)或者是帧内编解码时,才考虑位置b2。在添加位置a1处的候选之后,对剩余候选的添加进行冗余检查,其确保具有相同运动信息的候选被排除在列表之外,从而改进编解码效率。为了降低计算复杂性,在所提到的冗余检查中不考虑所有可能的候选对。相反,只考虑与图9中的箭头链接的对,并且仅当用于冗余检查的对应候选没有相同的运动信息,则候选才被添加到列表中。重复运动信息的另一个源是与不同于2n
×
2n的分割相关联的“第二pu”。作为示例,图10a-图10b分别描绘了n
×
2n和2n
×
n的情况下的第二pu。当当前pu被分割为n
×
2n时,位置a1处的候选不被考虑用于列表构建。实际上,通过添加该候选将导致两个预测单元具有相同的运动信息,这对于在编解码单元中只具有一个pu是冗余的。类似地,当当前pu被分割为2n
×
n时,不考虑位置b1。
108.2.2.1.3.时域候选推导
109.在该步骤中,仅一个候选被添加到列表。具体地,在对该时域merge候选的推导中,基于属于与给定参考图片列表内的当前图片具有最小poc(picture order count,图片顺序计数)差的图片的并置pu来推导缩放运动矢量。在条带头中显式地信令通知要用于推导并置pu的参考图片列表。如13中的虚线所示获得时域merge候选的缩放运动矢量,该缩放运动矢量使用poc距离tb和td从并置pu的运动矢量缩放,其中tb被定义为当前图片的参考图片与当前图片之间的poc差,并且td被定义为并置图片的参考图片与并置图片之间的poc
差。时域merge候选的参考图片索引被设置为等于零。在hevc规范中描述了缩放过程的实际实现。对于b条带,两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1)被获得并组合,以产生双向预测merge候选。
110.图11是用于时域merge候选的运动矢量缩放的图示。
111.在属于参考帧的并置pu(y)中,在候选c0和c1之间选择时域候选的位置,如图12中所描绘的。如果位置c0处的pu不可用、是帧内编解码的、或者在当前ctu外部,则使用位置c1。否则,位置c0用于对时域merge候选的推导中。
112.2.2.1.4.附加候选插入
113.除了空时merge候选之外,存在两种附加类型的merge候选:组合的双向预测merge候选和零merge候选。通过利用空时merge候选来生成组合的双向预测merge候选。组合的双向预测merge候选仅用于b条带。通过将初始候选的第一参考图片列表运动参数与另一个初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。作为示例,图13描绘了当具有mvl0和refidxl0或mvl1和refidxl1的原始列表(左边)中的两个候选用于创建被添加到最终列表(右边)的组合的双向预测merge候选时的情况。有许多关于被考虑来生成这些附加merge候选的组合的规则。
114.插入零运动候选以填充merge候选列表中的剩余条目,并因此达到maxnummergecand容量。这些候选具有零空域位移和参考图片索引,其从零开始并且每当新的零运动候选被添加到列表时增加。由这些候选使用的参考帧的数量对于单向预测和双向预测分别是1和2。最终,不对这些候选执行冗余检查。
115.2.2.1.5.用于并行处理的运动估计区域
116.为了加速编码过程,可以并行执行运动估计,由此同时推导给定区域内部的所有预测单元的运动矢量。从空域邻域推导merge候选可能干扰并行处理,因为一个预测单元不能从相邻pu推导运动参数,直到其相关联的运动估计被完成。为了缓和编解码效率和处理时延之间的折衷,hevc定义了运动估计区域(motion estimation region,mer),其尺寸使用“log2_parallel_merge_level_minus2”语法元素在图片参数集中被信令通知。当定义了mer时,落入相同区域的merge候选被标记为不可用,并且因此在列表构建中不考虑。
117.7.3.2.3图片参数集rbsp语法
118.7.3.2.3.1通用图片参数集rbsp语法
[0119][0120]
log2_parallel_merge_level_minus2加2指定变量log2parmrglevel的值,其用于第8.5.3.2.2条中指定的merge模式的亮度运动矢量的推导过程和第8.5.3.2.3条中指定的空域merge候选的推导过程中。log2_parallel_merge_level_minus2的值应当在0至ctblog2sizey-2(含端点)的范围内。
[0121]
变量log2parmrglevel被推导如下:
[0122]
log2parmrglevel=log2_parallel_merge_level_minus2 2
ꢀꢀꢀ
(7-37)
[0123]
注3-log2parmrglevel的值指示merge候选列表的并行推导的内置能力。例如,当log2parmrglevel等于6时,可以并行推导64
×
64块中包含的所有预测单元(pu)和编解码单元(cu)的merge候选列表。
[0124]
2.2.2.amvp模式下的运动矢量预测
[0125]
运动矢量预测利用运动矢量与相邻pu的空时相关性,其用于运动参数的显式传输。它通过首先检查左方、上方时域上相邻的pu位置的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测值,并发送指示所选择的候选的对应索引。与merge索引信令类似,使用截断一元来编码最佳运动矢量候选的索引。在这种情况下要被编码的最大值为2(参见图14)。在以下章节中,提供了关于运动矢量预测候选的推导过程的细节。
[0126]
2.2.2.1.运动矢量预测候选的推导
[0127]
图14概述了运动矢量预测候选的推导过程。
[0128]
在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,基于位于如图8所描绘的五个不同位置的每个pu的运动矢量,最终推导两个运动矢量候选。
[0129]
对于时域运动矢量候选推导,从基于两个不同的并置位置而推导的两个候选选择一个运动矢量候选。在产生第一空时候选列表之后,移除列表中的重复的运动矢量候选。如果潜在候选的数量大于二,则从列表移除其相关联的参考图片列表内的参考图片索引大于1的运动矢量候选。如果空时运动矢量候选的数量小于二,则将附加的零运动矢量候选添加到列表。
[0130]
2.2.2.2.空域运动矢量候选
[0131]
在对空域运动矢量候选的推导中,在从位于如图8所描绘的位置的pu推导的五个潜在候选当中考虑最多两个候选。那些位置与运动merge的位置相同。当前pu的左侧的推导顺序被定义为a0、a1、以及缩放a0、缩放a1。当前pu的上侧的推导顺序被定义为b0、b1、b2、缩放b0、缩放b1、缩放b2。对于每一侧,因此存在可用作运动矢量候选的四种情况,其中两种情况不需要使用空域缩放,并且两种情况使用空域缩放。四种不同的情况概述如下。
[0132]
·
没有空域缩放
[0133]-(1)相同的参考图片列表,以及相同的参考图片索引(相同的poc)
[0134]-(2)不同的参考图片列表,但是相同的参考图片(相同的poc)
[0135]
·
空域缩放
[0136]-(3)相同的参考图片列表,但是不同的参考图片(不同的poc)
[0137]-(4)不同的参考图片列表,以及不同的参考图片(不同的poc)
[0138]
首先检查非空域缩放情况,然后空域缩放。当不管参考图片列表如何,poc在相邻pu的参考图片与当前pu的参考图片之间不同时,考虑空域缩放。如果左边候选的所有pu都不可用或者是帧内编解码的,则允许针对上面运动矢量的缩放以帮助对左边和上边mv候选的并行推导。否则,针对上面运动矢量不允许空域缩放。
[0139]
在空域缩放过程中,以与时域缩放类似的方式缩放相邻pu的运动矢量,如图15所描绘的。主要差异是参考图片列表和当前pu的索引被给出作为输入;实际缩放过程与时域缩放的过程相同。
[0140]
2.2.2.3.时域运动矢量候选
[0141]
除了参考图片索引推导之外,用于推导时域merge候选的所有过程与用于推导空域运动矢量候选的所有过程相同(参见图12)。向解码器信令通知参考图片索引。
[0142]
2.2.2.4.merge/amvp信息的信令通知
[0143]
对于amvp模式,可以在比特流中信令通知四个部分,即,预测方向、参考索引、mvd和mv预测值候选索引(在下面的语法表中突出显示)。而对于merge模式,可能只需要信令通知merge索引。
[0144]
语法表:
[0145]
7.3.6.1通用条带段头语法
[0146][0147]
7.3.8.6预测单元语法
[0148][0149]
7.3.8.9运动矢量差语法
[0150][0151]
语义
[0152]
five_minus_max_num_merge_cand指定从5减去的条带中支持的merge mvp候选的最大数量。merge mvp候选的最大数量maxnummergecand被推导如下:
[0153]
maxnummergecand=5-five_minus_max_num_merge_cand
ꢀꢀꢀ
(2-1)
[0154]
maxnummergecand的值必须在1至5(含端点)的范围内。
[0155]
merge_flag[x0][y0]指定是否从相邻的帧间预测分割推断出当前预测单元的帧间预测参数。阵列索引x0、y0指定所考虑的预测块的左上方亮度样点相对于图片的左上方亮度样点的位置(x0,y0)。
[0156]
当merge_flag[x0][y0]不存在时,它被推断如下:
[0157]-如果cupredmode[x0][y0]等于mode_skip,则merge_flag[x0][y0]被推断为等于1。
[0158]-否则,merge_flag[x0][y0]被推断为等于0。
[0159]
merge_idx[x0][y0]指定merge候选列表的merge候选索引,其中x0、y0指定所考虑的预测块的左上方亮度样点相对于图片的左上方亮度样点的位置(x0,y0)。
[0160]
2.3.vvc中的帧间模式编解码
[0161]
在vvc中,平移运动和仿射运动以不同的方式处理。对于平移运动,采用增强的amvp和merge设计。
[0162]
2.3.1.基于历史的运动矢量预测(hmvp)
[0163]
与merge列表设计不同,在vvc中,采用基于历史的运动矢量预测(hmvp)方法,其中维护hmvp表以存储来自先前编解码块的运动信息。这样的方法也被称为基于查找表的mvp方法。
[0164]
可以在各种实施例中实施基于lut的运动矢量预测技术以提供具有更高编解码效率的视频编解码,该技术使用存储有至少一个运动候选的一个或多个表(例如,查找表)来预测块的运动信息。查找表是可以用于包括运动候选以预测块的运动信息的表的示例,并且其他实施方式也是可能的。每个lut可以包括一个或多个运动候选,每个运动候选与对应的运动信息相关联。运动候选的运动信息可以包括预测方向、参考索引/图片、运动矢量、lic标志、仿射标志、运动矢量推导(mvd)精度和/或mvd值中的部分或全部。运动信息还可以包括块位置信息,以指示运动信息来自哪个块。
[0165]
在针对各种实施方式描述的以下示例中阐述了基于所公开的技术的基于lut的运动矢量预测,其可以增强现有和未来的视频编解码标准。因为lut允许基于历史数据(例如,已经被处理的块)来执行编码/解码过程,所以基于lut的运动矢量预测也可以被称为基于历史的运动矢量预测(hmvp)方法。在基于lut的运动矢量预测方法中,在编码/解码过程期间维护具有来自先前编解码块的运动信息的一个或多个表。存储在lut中的这些运动候选被称为hmvp候选。在一个块的编码/解码期间,lut中的关联运动信息可以被添加到运动候选列表(例如,merge/amvp候选列表),并且在编码/解码一个块之后,lut可以被更新。然后,更新的lut用于对后续块进行编解码。也就是说,lut中运动候选的更新基于块的编码/解码顺序。
[0166]
在hmvp中,存储先前编解码的运动信息。先前编解码块的运动信息被定义为hmvp候选。多个hmvp候选被存储在名为hmvp表的表中,并且该表在编码/解码过程期间被即时(on-the-fly)维护。当开始编码/解码新的片/lcu行/条带时,hmvp表被清空。每当存在帧间编解码块和非子块、非三角形预测模式(非tpm)时,关联运动信息被添加到表的最后一个条目作为新的hmvp候选。图16中描绘了总体编解码流程。
[0167]
2.3.1.1.常规merge列表构建过程
[0168]
常规merge列表(用于平移运动)的构建可以根据以下步骤的序列概述:
[0169]
·
步骤1:推导空域merge候选
[0170]
·
步骤1:推导时域merge候选(tmvp,时域运动矢量预测)
[0171]
·
步骤2:插入hmvp候选
[0172]
·
步骤3:插入成对平均候选
[0173]
·
步骤4:默认运动候选
[0174]
hmvp候选可以用于amvp和merge候选列表构建过程中。图17描绘了修改的merge候选列表构建过程(以蓝色突出显示)。当merge候选列表在tmvp候选插入之后未满时,存储在hmvp表中的hmvp候选可以用来填充merge候选列表。考虑到一个块通常在运动信息方面与最近的相邻块具有更高的相关性,表中的hmvp候选以索引的降序被插入。表中的最后一个条目首先被添加到列表,而第一个条目被添加到最后。类似地,冗余移除被应用于hmvp候选。一旦可用merge候选的总数达到允许信令通知的merge候选的最大数量,merge候选列表构建过程就终止。
[0175]
注意,所有空域/时域/hmvp候选都应当以非ibc模式进行编解码。否则,不允许将其添加到常规merge候选列表。
[0176]
hmvp表包含多达5个运动候选,并且它们中的每一个是唯一的。
[0177]
2.3.1.2.修剪过程
[0178]
仅当用于冗余检查的对应候选不具有相同的运动信息时,候选才被添加到列表。这样比较过程被称为修剪过程。
[0179]
空域候选之间的修剪过程取决于tpm对当前块的使用。
[0180]
当当前块不以tpm模式(例如,常规merge、mmvd、ciip)进行编解码时,利用空域merge候选的hevc修剪过程(即,五次修剪)。
[0181]
2.3.1.3.hmvp表更新
[0182]
在以非tpm、非子块模式对帧间编解码块进行解码之后,hmvp表被更新。可以首先将当前块的运动信息与hmvp表中的所有可用hmvp候选进行修剪。
[0183]
计数器被分配给hmvp表,其记录表中可用hmvp候选的数量。如果hmvp表被重置,它被初始化为0。
[0184]
在更新过程期间有三种情况,如何处理每种情况描述如下:
[0185]
1.如果找到一个相同的候选,则冗余候选从表中移除,并且所有剩余候选以索引减1被向前推动。然后当前块的运动信息在所有现有候选之后被添加到hmvp表。计数器保持不变。
[0186]
2.如果没有找到相同的候选并且表未满,则当前块的运动信息在所有现有候选之后被添加到hmvp表。计数器增加1。
[0187]
3.如果没有找到相同的候选并且表已满,则hmvp表中的第一个条目被移除,所有剩余候选以索引减1被向前推动。当前块的运动信息在所有现有候选之后被添加到hmvp表。计数器保持不变。
[0188]
第一种情况和最后两种情况分别在图18a-图18b和图19a-图19b中进一步描绘。
[0189]
图18a示出了当找到冗余候选,并且lut在添加新的运动候选之前已满的情况。
[0190]
图18b示出了当找到冗余候选,并且lut在添加新的运动候选之前未满的情况。
[0191]
图18a-图18b示出了基于冗余移除的hmvp更新方法(移除一个冗余运动候选)。
[0192]
(图19a)没有找到冗余候选,并且lut在添加新的运动候选之前已满,而图19b没有找到冗余候选,并且lut在添加新的运动候选之前未满。
[0193]
相关规范被定义如下:
[0194]
8.5.2.16基于历史的运动矢量预测值候选列表的更新过程
[0195]
该过程的输入为:
[0196]

1/16分数样点精度的亮度运动矢量mvl0和mvl1,
[0197]

参考索引refidxl0和refidxl1,
[0198]

预测列表利用标志predflagl0和predflagl1,
[0199]

双向预测权重索引bcwidx,
[0200]

半样点插值滤波器索引hpelifidx。
[0201]
mvp候选hmvpcand包括亮度运动矢量mvl0和mvl1、参考索引refidxl0和refidxl1、预测列表利用标志predflagl0和predflagl1、双向预测权重索引bcwidx和半样点插值滤波器索引hpelifidx。
[0202]
候选列表hmvpcandlist通过以下有序步骤使用候选hmvpcand进行修改:
[0203]
1.变量identicalcandexist被设置为等于false,并且变量removeidx被设置为等于0。
[0204]
2.当numhmvpcand大于0时,对于每个索引hmvpidx(其中hmvpidx=0..numhmvpcand-1),以下步骤适用,直到identicalcandexist等于true:
[0205]

当hmvpcand和hmvpcandlist[hmvpidx]具有相同的运动矢量和相同的参考索引时,identicalcandexist被设置为等于true,并且removeidx被设置为等于hmvpidx。
[0206]
3.候选列表hmvpcandlist被更新如下:
[0207]

如果identicalcandexist等于true或者numhmvpcand等于5,则以下适用:
[0208]

对于每个索引i,其中(i=(removeidx 1)..(numhmvpcand-1)),hmvpcandlist[i-1]被设置为等于hmvpcandlist[i]。
[0209]

hmvpcandlist[numhmvpcand-1]被设置为等于hmvpcand。
[0210]

否则(identicalcandexist等于false并且numhmvpcand小于5),以下适用:
[0211]

hmvpcandlist[numhmvpcand ]被设置为等于hmvpcand。
[0212]
2.3.2.平移运动的amvp列表构建
[0213]
hmvp在没有修剪的情况下被引入到amvp列表。
[0214]
2.4.vvc中的帧内块复制(ibc)模式
[0215]
在ibc,共享amvp和merge列表,也就是说,利用相同的构建过程。对于4x4块,只有ibc hmvp表中的hmvp候选和零块矢量(bv)被添加到候选列表。对于其他情况,两个空域ibc候选、hmvp候选和零bv在部分修剪的情况下按顺序添加。
[0216]
在对ibc编解码块进行解码之后,ibc hmvp表被相应地更新,以用于帧间模式的hmvp表的更新过程的类似方式。
[0217]
对应的规范被提供如下:
[0218]
8.5.2.6基于历史的块矢量预测值候选列表的更新过程
[0219]
该过程的输入为:
[0220]

亮度块矢量bvl,以1/16分数样点精度。
[0221]
候选列表hmvpibccandlist通过以下有序步骤进行修改:
[0222]
1.变量identicalcandexist被设置为等于false,并且变量removeidx被设置为等于0。
[0223]
2.当numhmvpibccand大于0时,对于每个索引hmvpidx(其中hmvpidx=0..numhmvpibccand-1),以下步骤适用,直到identicalcandexist等于true:
[0224]

当bvl等于hmvpibccandlist[hmvpidx]时,identicalcandexist被设置为等于true,并且removeidx被设置为等于hmvpidx。
[0225]
3.候选列表hmvpibccandlist被更新如下:
[0226]

如果identicalcandexist等于true或者numhmvpibccand等于5,则以下适用:
[0227]

对于每个索引i,(其中i=(removeidx 1)..(numhmvpibccand-1)),hmvpibccandlist[i-1]被设置为等于hmvpibccandlist[i]。
[0228]

hmvpibccandlist[numhmvpibccand-1]被设置为等于bvl。
[0229]

否则(identicalcandexist等于false并且numhmvpibccand小于5),以下适用:
[0230]

hmvpibccandlist[numhmvpibccand ]被设置为等于bvl。
[0231]
2.5.avs2中的编解码结构
[0232]
与hevc类似,avs2也采用基于cu、pu和tu的编解码/预测/变换结构的构思。首先,图片被划分为最大编解码单元(lcu),其由2n
×
2n个样点组成。一个lcu可以是单个cu,或者可以以四叉树分割结构被划分为四个更小的cu;如图20所示,cu可以被递归划分,直到其达到最小cu尺寸限制。一旦cu分层树的划分完成,叶节点cu就可以被进一步划分为pu。pu是用于帧内和帧间预测的基本单元,并且允许多个不同的形状来编码不规则图像模式,如图20所示。
[0233]
图20示出了(a)avs2中的最大可能的递归cu结构。(lcu尺寸=64,最大分层深度=4)。(b)avs2中的跳过、帧内模式和帧间模式的可能pu划分,包括对称和非对称预测(对于帧内预测,d=1,2;并且对于帧间预测,d=0,1,2)。
[0234]
2.6.avs3中的帧间预测
[0235]
类似于hevc,有两种帧间编解码帧类型,p帧和b帧。p帧是使用单个参考图片的前向预测帧,而b帧是使用两个参考帧的包括前向、后向、双向预测和对称预测的双向预测帧。在b帧中,除了传统的前向、后向、双向和跳过/直接预测模式之外,对称预测被定义为特殊的双向预测模式,其中只有一个前向运动矢量(mv)被编解码,并且后向mv基于图片顺序计数(poc)距离从前向mv推导出。对称模式可以有效地表示对象的线性运动模型。
[0236]
2.6.1.基于多运动模型的跳过/直接模式
[0237]
当前块的skip模式的运动信息从先前解码块推导出,并且没有残差信息被编码。类似于skip模式,direct模式没有要发送的运动信息,而预测残差和模式信息被发送。
[0238]
作为其中利用仅来自一个时域预测块(cusubtypeidx等于0)的运动信息的传统skip和direct模式的扩展,在avs2和avs3中引入了四个附加的基于运动模型的skip和direct模式,即,双向direct/skip模式(cusubtypeidx等于1)、对称direct/skip模式(cusubtypeidx等于2)、后向direct/skip模式(cusubtypeidx等于3)和前向direct/skip模式(cusubtypeidx等于4)。
[0239]
设计了一种基于优先级的运动信息推导方法,其考虑了块的运动模型(预测方
向)。将更高的优先级分配给与当前块具有相同运动模型的相邻块的运动信息。
[0240]
对于四个附加的基于运动模型的跳过/直接模式中的每一个,运动信息推导过程可以被划分为按顺序执行的三个步骤。
[0241]
1)运动模型匹配搜索:如图21所示,在位置f、g、c、a、b、d处找到与当前块具有相同运动模型的相邻块的初始过程以该顺序进行。一旦找到与当前块共享相同运动模型的第一块,就将该块的运动信息分配给当前块。
[0242]
2)人工搜索:在不存在与当前块共享相同运动模型的相邻块的情况下(即,从步骤1中没有找到结果),进行人工构建当前块的运动信息的第二过程。该过程从一个运动模型到另一个而变化。
[0243]
a.对于双向direct/skip模式,对有多少空域邻居以前向编解码(由n
fw
表示)以及有多少空域邻居以后向编解码(由n
bw
表示)进行计数。如果n
fw
和n
bw
都等于或大于1,则第一前向和第一后向预测块的运动信息的组合被分配给当前块。搜索顺序与第一步相同,即,从位置f、g、c、a、b和d开始。
[0244]
b.对于对称direct/skip模式,按顺序执行以下步骤
[0245]

对有多少空域邻居以双向编解码进行计数,由n
bi
表示
[0246]

如果n
bi
等于或大于2,则以f、g、c、a、b和d的扫描顺序的最后一个块(等于以d、b、a、c、g和f的扫描顺序的第一个块)的相邻双向预测块的运动信息的运动信息被分配给当前块。
[0247]

否则(如果n
bi
小于2),如果n
bw
等于或大于1,其中n
bw
表示有多少空域邻居以后向编解码,则第一后向预测块的运动信息的后向运动矢量(由mve1表示)被分配给当前块,并且前向运动矢量mve0被设置为等于clip3(-32768,32767,-mve1)。搜索顺序与第一步相同,即,从位置f、g、c、a、b和d开始。
[0248]

否则(如果n
bi
小于2且n
bw
小于1),如果n
fw
等于或大于1,其中n
fw
表示有多少空域邻居以前向编解码,第一前向预测块的运动信息的前向运动矢量(由mve0表示)被分配给当前块,并且后向运动矢量mve1被设置为等于clip3(-32768,32767,-mve0)。搜索顺序与第一步相同,即,从位置f、g、c、a、b和d开始。
[0249]
c.对于后向direct/skip模式,对有多少空域邻居以双向编解码进行计数,由n
bi
表示。最后一个相邻双向预测块的后向运动信息被分配给当前块。搜索顺序与第一步相同,即,从位置f、g、c、a、b和d开始。
[0250]
d.对于前向direct/skip模式,对有多少空域邻居以双向编解码进行计数,由n
bi
表示。最后一个相邻双向预测块的前向运动信息被分配给当前块。搜索顺序与第一步相同,即,从位置f、g、c、a、b和d开始。
[0251]
3)默认mv构建:只有当步骤1)和步骤2)都无法找到可用的运动矢量时,才调用该步骤。在avs2/avs3中,以下适用:
[0252]
a.对于双向/对称跳过/直接模式,针对前向和后向都设置零运动矢量。
[0253]
b.对于后向direct/skip模式,后向运动矢量被设置为零mv,即,(0,0)。
[0254]
c.对于前向direct/skip模式,前向运动矢量被设置为零mv,即,(0,0)。
[0255]
由于存在多个skip和direct模式,因此需要在信令通知skip和direct模式的运动模型时带来一些边信息。在avs2参考软件rd3.0中,率失真优化方法用于选择编码块的模
式。当计算新的skip和direct模式的rd代价时,考虑边信息以产生更准确的代价值。
[0256]
2.6.2.avs3的hmvp
[0257]
avs3和vvc中hmvp设计的基本思想是相同的。然而,与vvc不同,merge/amvp列表中的hmvp候选索引由于空域/时域候选之间的修剪而动态改变,在avs3中,hmvp候选被固定为从对于b条带等于4至11并且对于p条带等于2至9的索引开始。
[0258]
表1.p图片的子cu类型
[0259][0260]
表2.b图片的子cu类型
[0261][0262]
更新过程与vvc中的相同。
[0263]
3.所公开的技术解决方案解决的技术问题的示例
[0264]
hmvp更新过程的当前设计具有以下问题:
[0265]
1.它遵循这样的假设,即,更早添加的候选具有更低的机会被选择作为后续块的mvp。然而,这并不总是正确的。
[0266]
4.技术和实施例的列表
[0267]
下面的列表应该被视为解释一般构思的示例。这些项不应该以狭隘的方式解释。此外,这些项可以以任何方式组合。该idf和其他idf之间的组合也适用。
[0268]
在本文档中,hmvp表是存储候选的表,其中候选不限于运动候选(例如,具有预测方向、参考索引/图片、运动矢量、lic标志、仿射标志、mvd精度、mvd值、块位置信息、ibc编解码块的块矢量(bv)),它也可以是帧内模式候选或其他。
[0269]
假设hmvp表尺寸由l表示,并且表中的每个候选与范围[0,l-1]内的索引相关联。
[0270]
1.在hmvp表更新处理期间,代替移除hmvp表中首先(最早)添加的候选(例如,候选索引可能被设置为0),提出移除hmvp表中的第k个条目(即,索引等于k的hmvp候选),其中k是非零整数值。
[0271]
a.在一个示例中,k是预定义的,例如,它被设置为1。
[0272]
b.在一个示例中,k取决于hmvp表尺寸,即,要被存储在hmvp表中的候选的最大数量。
[0273]
c.在一个示例中,k取决于如何利用hmvp表。
[0274]
i.在一个示例中,当更新用于帧间编解码块的hmvp表时,k可以被设置为k0,并且当更新用于ibc编解码块的hmvp表时,k可以被设置为k1,其中k0不等于k1。
[0275]
ii.在一个示例中,当更新用于帧内编解码块的hmvp表时,k可以被设置为等于k2。k2可以不等于k1或/和k0。
[0276]
d.在一个示例中,k取决于编解码信息,诸如块维度、块位置、表已经被更新了多少次、表已经被更新的次数的奇偶性。
[0277]
e.在一个示例中,k可以在比特流中被信令通知,诸如在序列/视频/图片/条带/片/子图片/图块(brick)/其他视频处理单元级别。
[0278]
i.在一个示例中,k可以在sps/pps/图片头/条带头/vps/dps中被信令通知。
[0279]
ii.在一个示例中,零从要为k信令通知的可能值中排除。
[0280]
f.在一个示例中,对于hmvp表中的每个条目,可以进一步分配变量,诸如以指示候选的频率。
[0281]
i.此外,可替代地,可以根据变量来确定要从表中移除哪个条目(例如,k的决定)。
[0282]
g.在一个示例中,k可以即时自适应地改变。
[0283]
i.在一个示例中,对于第一视频区域,k可以被设置为第一值,并且对于第二视频区域,k可以被设置为第二值,其中第一值和第二值不同。
[0284]
ii.此外,可替代地,第一值或第二值可以等于0。
[0285]
h.此外,可替代地,以上方法可以在某些条件下应用。
[0286]
i.在一个示例中,当用新候选更新hmvp表时,如果表已满,并且在hmvp表中没有冗余候选(即,hmvp表中的候选与新候选相同或类似),则hmvp表中的第k个条目被移除。
[0287]
ii.在一个示例中,当用新候选更新hmvp表时,如果在hmvp表中有冗余候选(即,hmvp表中的候选与新候选相同或类似),并且冗余候选与等于0的索引相关联,则hmvp表中的第k个条目被移除。
[0288]
2.如何用新候选更新hmvp表可以取决于冗余(或类似)候选在表的何处(例如,冗余候选的索引)。
[0289]
a.在一个示例中,如果冗余候选与等于n(例如,n=0或l-1)的索引相关联,则冗余
候选可以首先被修改并存储在hmvp表中。
[0290]
i.在一个示例中,与冗余候选相关联的运动矢量/bv可以通过添加一个或多个偏移或者被缩放来修改。
[0291]
ii.在一个示例中,在更新的hmvp表中,修改的冗余候选可以与相同的索引(即,n)相关联。
[0292]
3.当新候选用于更新hmvp表时,代替总是在修剪之后在所有现有候选之后添加新候选,提出将新候选添加到不是最后一个条目的倒数第k个条目(例如,索引等于l-1-k)。
[0293]
a.在一个示例中,k小于或等于t,其中t是已经在表中的候选的数量。
[0294]
b.如何添加新候选可以取决于hmvp表中冗余hmvp候选的索引。
[0295]
c.在一个示例中,k是预定义的,例如,1。
[0296]
i.在一个示例中,新候选被添加作为索引设置为(l-2)的候选,其中k=1。
[0297]
d.在一个示例中,k取决于hmvp表尺寸,即,要被存储在hmvp表中的候选的最大数量。
[0298]
e.在一个示例中,k取决于如何利用hmvp表。
[0299]
i.在一个示例中,当更新用于帧间编解码块的hmvp表时,k可以被设置为k0,并且当更新用于ibc编解码块的hmvp表时,k可以被设置为k1,其中k0不等于k1。
[0300]
ii.在一个示例中,当更新用于帧内编解码块的hmvp表时,k可以被设置为等于k2。k2可以不等于k1或/和k0。
[0301]
f.在一个示例中,k取决于编解码信息,诸如块维度、块位置、表已经被更新了多少次、表已经被更新的次数的奇偶性。
[0302]
g.在一个示例中,k可以在比特流中被信令通知,诸如在序列/视频/图片/条带/片/子图片/图块/其他视频处理单元级别。
[0303]
i.在一个示例中,k可以在sps/pps/图片头/条带头/vps/dps中被信令通知。
[0304]
h.在一个示例中,对于hmvp表中的每个条目,可以进一步分配变量,诸如以指示候选的频率。
[0305]
i.此外,可替代地,可以根据变量来确定要从表中移除哪个条目(例如,k的决定)。
[0306]
i.在一个示例中,k可以即时自适应地改变。
[0307]
i.在一个示例中,对于第一视频区域,k可以被设置为第一值,并且对于第二视频区域,k可以被设置为第二值,其中第一值和第二值不同。
[0308]
ii.此外,可替代地,第一值或第二值可以等于0。
[0309]
j.在一个示例中,k可以取决于修剪结果,例如,在被更新之前,hmvp表中是否有一个相同或类似的候选。
[0310]
4.用于更新hmvp表的规则可以从一个视频处理单元到另一个视频处理单元而改变。
[0311]
a.在一个示例中,对于第一规则,应用修剪,并且对于第二规则,应用非修剪。
[0312]
b.在一个示例中,对于第一规则,应用部分修剪(即,将要被添加的新候选与表中的部分现有候选进行比较),并且对于第二规则,应用完全修剪(即,将要被添加的新候选与表中的所有现有候选进行比较)。
[0313]
c.在一个示例中,它可以取决于将如何使用hmvp表,例如,对于利用hmvp表的预测
模式的块。
[0314]
d.在一个示例中,编解码信息可以包括编解码模式信息。
[0315]
i.在一个示例中,当更新用于帧间编解码块的hmvp表时,可以应用以上方法或现有方法(根据修剪结果的自适应顺序),并且当更新用于ibc编解码块的hmvp表时,可以应用fifo规则。
[0316]
5.是否和/或如何应用上述项目符号可以取决于编解码信息。
[0317]
a.在一个示例中,编解码信息可以包括编解码模式信息。
[0318]
i.在一个示例中,当更新用于帧间编解码块的hmvp表时,可以应用以上方法,并且当更新用于ibc编解码块的hmvp表时,可以应用现有方法。
[0319]
5.实施例示例
[0320]
5.1描绘hmvp表更新过程的图的示例
[0321]
在图22c中,hmvp表更新过程被修改用于当表已满并且在hmvp表中的现有候选当中没有找到冗余候选时的情况。
[0322]
图22a示出了以下情况:找到冗余候选,并且lut在添加新的运动候选之前已满。
[0323]
图22b示出了以下情况:找到冗余候选,并且lut在添加新的运动候选之前未满。
[0324]
图22c示出了以下情况:没有找到冗余候选,并且lut在添加新的运动候选之前已满。
[0325]
图22d示出了以下情况:没有找到冗余候选,并且lut在添加新的运动候选之前未满。
[0326]
在图23a-图23f中,hmvp表更新过程(对应于第4节的项目符号1中的k=1)被修改用于以下情况:
[0327]
当表已满,并且在hmvp表中的现有候选中没有找到冗余候选时,请参考图23e。
[0328]
当表已满,并且找到冗余候选为hmvp表中的第一个候选(hmvp0)时,请参考图23c。
[0329]
当表未满,并且找到冗余候选为hmvp表中的第一个候选(hmvp0)时,请参考图23d。
[0330]
图23a示出了以下情况:找到冗余候选(索引不等于0),并且lut在添加新的运动候选之前已满。
[0331]
图23b示出了以下情况:找到冗余候选(索引不等于0),并且lut在添加新的运动候选之前未满。
[0332]
图23c示出了以下情况:找到冗余候选(索引等于0),并且lut在添加新的运动候选之前已满。
[0333]
图23d示出了以下情况:找到冗余候选(索引等于0),并且lut在添加新的运动候选之前未满。
[0334]
图23e示出了以下情况:没有找到冗余候选,并且lut在添加新的运动候选之前已满。
[0335]
图23f示出了以下情况:没有找到冗余候选,并且lut在添加新的运动候选之前未满。
[0336]
5.2.avs3规范之上的实施例#1
[0337]
删除的文本标记有删除线,并且新添加的文本突出显示。
[0338]
9.16更新历史运动信息表
[0339]
完成当前预测单元的解码后,如果当前预测单元是帧内预测单元且不是仿射预测单元,当numofhmvpcand大于0时,根据当前预测块的运动信息更新历史运动信息表hmvpcandidatelist否则,不执行本条定义的操作。
[0340]
a)将hmvpidx初始化为0。
[0341]
b)如果cnthmvp等于0,则hmvpcandidatelist[cnthmvp]等于当前预测单元的运动信息,cnthmvp加1。
[0342]
c)否则,根据9.15定义的方法判断当前预测块的运动信息和hmvpcandidatelist[hmvpidx]是否相同:
[0343]
1)如果运动信息相同,执行步骤d),否则,hmvpidx加1。
[0344]
2)如果hmvpidx小于cnthmvp,执行步骤c);否则,执行步骤d)。
[0345]
d)如果hmvpidx小于cnthmvp,则:
[0346]
1)i从hmvpidx到cnthmvp-1,令hmvpcandidatelist[i]等于hmvpcandidatelist[i 1];
[0347]
2)hmvpcandidatelist[cnthmvp-1]等于当前预测单元的运动信息。否则,如果hmvpidx等于cnthmvp且cnthmvp等于numofhmvpcand,则:
[0348]
1)i从1到cnthmvp-1,令hmvpcandidatelist[i]等于hmvpcandidatelist[i 1];
[0349]
2)hmvpcandidatelist[cnthmvp-1]等于当前预测单元的运动信息。否则,如果hmvpidx等于cnthmvp且cnthmvp小于numofhmvpcand,则hmvpcandidatelist[cnthmvp]等于当前预测单元的运动信息,cnthmvp加1。
[0350]
5.3.vvc规范之上的实施例#1
[0351]
8.5.2.6基于历史的块矢量预测值候选列表的更新过程该过程的输入为:
[0352]

亮度块矢量bvl,以1/16分数样点精度。
[0353]
候选列表hmvpibccandlist通过以下有序步骤进行修改:
[0354]
4.变量identicalcandexist被设置为等于false,并且变量removeidx被设置为等于0。
[0355]
5.当numhmvpibccand大于0时,对于每个索引hmvpidx(其中hmvpidx=0..numhmvpibccand-1),以下步骤适用,直到identicalcandexist等于true:
[0356]

当bvl等于hmvpibccandlist[hmvpidx]时,identicalcandexist被设置为等于true,并且removeidx被设置为等于hmvpidx。
[0357]
6.候选列表hmvpibccandlist被更新如下:
[0358]

如果identicalcandexist等于false并且numhmvpibccand等于5,则removeidx被设置为1。
[0359]

如果identicalcandexist等于true或者numhmvpibccand等于5,则以下适用:
[0360]

对于每个索引i,(其中i=(removeidx 1)..(numhmvpibccand-1)),hmvpibccandlist[i-1]被设置为等于hmvpibccandlist[i]。
[0361]

hmvpibccandlist[numhmvpibccand-1]被设置为等于bvl。
[0362]

否则(identicalcandexist等于false并且numhmvpibccand小于5),以下适用:
[0363]

hmvpibccandlist[numhmvpibccand ]被设置为等于bvl。
[0364]
8.5.2.16.基于历史的运动矢量预测值候选列表的更新过程
[0365]
该过程的输入为:
[0366]

以1/16分数样点精度的亮度运动矢量mvl0和mvl1,
[0367]

参考索引refidxl0和refidxl1,
[0368]

预测列表利用标志predflagl0和predflagl1,
[0369]

双向预测权重索引bcwidx,
[0370]

半样点插值滤波器索引hpelifidx。
[0371]
mvp候选hmvpcand包括亮度运动矢量mvl0和mvl1、参考索引refidxl0和refidxl1、预测列表利用标志predflagl0和predflagl1、双向预测权重索引bcwidx和半样点插值滤波器索引hpelifidx。
[0372]
候选列表hmvpcandlist通过以下有序步骤使用候选hmvpcand进行修改:
[0373]
1.变量identicalcandexist被设置为等于false,并且变量removeidx被设置为等于0。
[0374]
2.当numhmvpcand大于0时,对于每个索引hmvpidx(其中hmvpidx=0..numhmvpcand-1),以下步骤适用,直到identicalcandexist等于true:
[0375]

当hmvpcand和hmvpcandlist[hmvpidx]具有相同的运动矢量和相同的参考索引时,identicalcandexist被设置为等于true,并且removeidx被设置为等于hmvpidx。
[0376]
3.候选列表hmvpcandlist被更新如下:
[0377]

如果identicalcandexist等于false并且numhmvpibccand等于5,则removeidx被设置为1。
[0378]

如果identicalcandexist等于true或者numhmvpcand等于5,则以下适用:
[0379]

对于每个索引i,其中(i=(removeidx 1)..(numhmvpcand-1)),hmvpcandlist[i-1]被设置为等于hmvpcandlist[i]。
[0380]

hmvpcandlist[numhmvpcand-1]被设置为等于hmvpcand。
[0381]

否则(identicalcandexist等于false并且numhmvpcand小于5),以下适用:
[0382]

hmvpcandlist[numhmvpcand ]被设置为等于hmvpcand。
[0383]
图24是示出可以在其中实施本文公开的各种技术的示例视频处理系统1900的框图。各种实施方式可以包括系统1900的一些或所有组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入1902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(passive optical network,pon)等的有线接口和诸如wi-fi或蜂窝接口的无线接口。
[0384]
系统1900可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件1904。编解码组件1904可以将来自输入1902的视频的平均比特率减小到编解码组件1904的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储,或者经由如由组件1906表示的通信连接而发送。在输入1902处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件1908用于生成像素值或传送到显示接口1910的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编码结果的对应的解码工具或操作将
由解码器执行。
[0385]
外围总线接口或显示接口的示例可以包括通用串行总线(universal serial bus,usb)、或高清晰度多媒体接口(high definition multimedia interface,hdmi)、或显示端口(displayport)等。存储接口的示例包括sata(serial advanced technology attachment,串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
[0386]
图25是视频处理装置3600的框图。装置3600可以用来实施本文描述的方法中的一种或多种。装置3600可以体现在智能电话、平板电脑、计算机、物联网(internet of things,iot)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604、以及视频处理硬件3606。(多个)处理器3602可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)3604可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件3606可以用来以硬件电路实施本文档中描述的一些技术。
[0387]
接下来提供一些实施例优选的解决方案列表。
[0388]
以下解决方案示出了在先前章节(例如,项目符号1)中讨论的技术的示例实施例。
[0389]
1.一种视频处理的方法(例如,图26中描绘的方法2600),包括:执行(2602)视频的视频块和视频的比特流表示之间的转换;以及通过移除用于另一视频块的运动候选的表的第k个条目来选择性地更新(2604)该表,其中k是基于规则的正整数。例如,规则指定完成更新的条件和不执行更新(例如,当没有要被添加的新候选时)的条件。
[0390]
2.根据解决方案1所述的方法,其中,规则指定k=1。
[0391]
3.根据解决方案1所述的方法,其中,规则指定k取决于表的尺寸。
[0392]
4.根据解决方案1所述的方法,其中,规则指定k取决于视频块的转换的特性。
[0393]
5.根据解决方案1所述的方法,其中,规则指定执行更新的条件。
[0394]
6.根据解决方案5所述的方法,其中,条件是该表不具有与新候选类似的冗余候选,并且规则指定移除表中的第k个条目。
[0395]
7.根据解决方案5所述的方法,其中,条件是该表包括与新候选类似的冗余候选,并且冗余候选对应于索引0,并且其中规则指定移除表中的第k个条目。
[0396]
以下解决方案示出了在先前章节(例如,项目符号2)中讨论的技术的示例实施例。
[0397]
8.一种视频处理的方法,包括:执行视频的视频块和视频的比特流表示之间的转换;以及选择性地基于规则,通过移除用于另一视频块的运动候选的表中的现有候选而添加新候选来更新该表,其中该规则取决于现有候选的特性。
[0398]
9.根据解决方案8所述的方法,其中,现有候选的特性是现有候选的索引。
[0399]
以下解决方案示出了在先前章节(例如,项目符号3)中讨论的技术的示例实施例。
[0400]
10.一种视频处理的方法,包括:执行视频的视频块和视频的比特流表示之间的转换;以及选择性地基于规则,通过在用于另一视频块的运动候选的表中从第0个位置起的第k个位置处添加基于转换的新候选来更新该表,其中k取决于规则。
[0401]
11.根据解决方案10所述的方法,其中,规则指定k取决于表中冗余候选的索引。
[0402]
12.根据解决方案10所述的方法,其中,k=1,或者k取决于表的尺寸。
[0403]
以下解决方案示出了在先前章节(例如,项目符号5)中讨论的技术的示例实施例。
[0404]
13.一种视频处理的方法,包括:执行视频的视频处理单元的视频块和视频的比特流表示之间的转换;以及选择性地基于规则,更新用于另一视频块的运动候选的表,其中该规则取决于视频处理单元。
[0405]
14.根据解决方案13所述的方法,其中,规则指定修剪是否被应用于对视频处理单元的更新。
[0406]
15.根据解决方案13-14中任一项所述的方法,其中,取决于视频处理单元的特性,规则是指定应用部分修剪的第一规则或指定应用完全修剪的第二规则中的一个。
[0407]
16.根据解决方案1-15中任一项所述的方法,其中,该表是基于历史的运动矢量预测表。
[0408]
17.根据解决方案1-16中任一项所述的方法,其中,执行转换包括编码视频以生成编解码表示。
[0409]
18.根据解决方案1-16中任一项所述的方法,其中,执行转换包括对编解码表示进行解析和解码以生成视频。
[0410]
19.一种视频解码装置,包括被配置为实施根据解决方案1至18中的一项或多项所述的方法的处理器。
[0411]
20.一种视频编码装置,包括被配置为实施根据解决方案1至18中的一项或多项所述的方法的处理器。
[0412]
21.一种存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实施根据解决方案1至18中任一项所述的方法。
[0413]
22.一种本文档中描述的方法、装置或系统。
[0414]
图27示出了用于视频处理的示例方法的流程图。该方法包括维护(2702)包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行(2704)视频的当前视频块和视频的比特流表示之间的转换;以及通过移除表中的第k个条目并将运动候选添加到hmvp表中来更新(2706)该表,其中k是正整数并且基于预定规则来确定,并且添加到hmvp表中的运动候选是从在转换期间推导的运动信息推导的。
[0415]
在一些示例中,执行转换至少部分基于hmvp表。
[0416]
在一些示例中,预定规则指定k是预定义的。
[0417]
在一些示例中,k被设置为1。
[0418]
在一些示例中,预定规则指定k取决于hmvp表的尺寸。
[0419]
在一些示例中,预定规则指定k取决于视频块的转换的一个或多个特性。
[0420]
在一些示例中,当hmvp表用于帧间编解码块时,k被设置为k0,并且当hmvp表用于ibc编解码块时,k被设置为k1,其中k0不等于k1。
[0421]
在一些示例中,当hmvp表用于帧内编解码块时,k被设置为等于k2,其中k2不等于k1或/和k0。
[0422]
在一些示例中,预定规则指定k取决于与当前视频块相关联的编解码信息、表已经被更新了多少次以及表已经被更新的次数的奇偶性中的至少一个,其中编解码信息包括块维度和块位置中的至少一个。
[0423]
在一些示例中,k在序列级别、视频级别、图片级别、条带级别、片级别、子图片级别、图块级别或其他视频处理单元级别中的至少一个的比特流中被信令通知。
[0424]
在一些示例中,对于表中的每个条目,变量被分配以指示与该条目相关联的候选的频率,其中预定规则指定k根据变量来确定。
[0425]
在一些示例中,预定规则指定k即时自适应地改变。
[0426]
在一些示例中,对于第一视频区域,k被设置为第一值,并且对于第二视频区域,k被设置为第二值,其中第一值和第二值不同。
[0427]
在一些示例中,第一值或第二值等于0。
[0428]
在一些示例中,该更新在某些条件下被应用。
[0429]
在一些示例中,当用运动候选更新该表时,如果表已满并且表中没有冗余候选,则表中的第k个条目被移除,其中冗余候选与新候选相同或类似。
[0430]
在一些示例中,当用运动候选更新该表时,如果表中有冗余候选并且冗余候选与等于0的索引相关联,则表中的第k个条目被移除,其中冗余候选与新候选相同或类似。
[0431]
图28示出了用于视频处理的示例方法的流程图。该方法包括维护(2802)包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行(2804)视频的当前视频块和视频的比特流表示之间的转换;以及基于冗余候选在hmvp表中的位置,用运动候选更新(2806)该表,其中运动候选是从在转换期间推导的运动信息推导的,并且冗余候选与运动候选相同或类似。
[0432]
在一些示例中,执行转换至少部分基于hmvp表。
[0433]
在一些示例中,如果冗余候选与hmvp表中等于n的索引相关联,则冗余候选首先被修改并存储在表中,n是整数。
[0434]
在一些示例中,n=0或l-1,其中l是hmvp表的尺寸。
[0435]
在一些示例中,与冗余候选相关联的运动矢量或块矢量通过添加一个或多个偏移或者被缩放来修改。
[0436]
在一些示例中,在更新的hmvp表中,修改的冗余候选与相同的索引n相关联。
[0437]
图29示出了用于视频处理的示例方法的流程图。该方法包括维护(2902)包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行(2904)视频的当前视频块和视频的比特流表示之间的转换;以及通过将运动候选添加到hmvp表中的第k个条目来更新(2906)该表,其中添加到hmvp表中的运动候选是从在转换期间推导的运动信息推导的,并且k是正整数并且基于预定规则来确定。
[0438]
在一些示例中,执行转换至少部分基于hmvp表。
[0439]
在一些示例中,预定规则指定k小于或等于t,其中t是已经在hmvp表中的候选的数量。
[0440]
在一些示例中,如何添加运动候选取决于冗余候选在hvmp表中的索引,其中冗余候选与运动候选相同或类似。
[0441]
在一些示例中,预定规则指定k是预定义的。
[0442]
在一些示例中,k被设置为1。
[0443]
在一些示例中,运动候选被添加作为索引设置为(l-2)的候选,其中l是hmvp表的尺寸。
[0444]
在一些示例中,预定规则指定k取决于hmvp表的尺寸。
[0445]
在一些示例中,预定规则指定k取决于视频块的转换的一个或多个特性。
[0446]
在一些示例中,当hmvp表用于帧间编解码块时,k被设置为k0,并且当hmvp表用于ibc编解码块时,k被设置为k1,其中k0不等于k1。
[0447]
在一些示例中,当hmvp表用于帧内编解码块时,k被设置为等于k2,其中k2不等于k1或/和k0。
[0448]
在一些示例中,预定规则指定k取决于与当前视频块相关联的编解码信息、表已经被更新了多少次以及表已经被更新的次数的奇偶性中的至少一个,其中编解码信息包括块维度和块位置中的至少一个。
[0449]
在一些示例中,k在序列级别、视频级别、图片级别、条带级别、片级别、子图片级别、图块级别或其他视频处理单元级别中的至少一个的比特流中被信令通知。
[0450]
在一些示例中,对于hmvp表中的每个条目,变量被分配以指示与该条目相关联的候选的频率,其中预定规则指定k根据变量来确定。
[0451]
在一些示例中,预定规则指定k即时自适应地改变。
[0452]
在一些示例中,对于第一视频区域,k被设置为第一值,并且对于第二视频区域,k被设置为第二值,其中第一值和第二值不同。
[0453]
在一些示例中,第一值或第二值等于0。
[0454]
在一些示例中,预定规则指定k取决于修剪结果,该修剪结果指示在被更新之前,hmvp表中是否有一个相同或类似的候选。
[0455]
图30示出了用于视频处理的示例方法的流程图。该方法包括维护(3002)包括至少一个运动候选的基于历史的运动矢量预测(hmvp)表;执行(3004)视频的当前视频块和视频的比特流表示之间的转换;以及基于与视频处理单元相关联的一个或多个规则来更新(3006)hmvp表,其中该规则从一个视频处理单元到另一个视频处理单元而改变。
[0456]
在一些示例中,执行转换至少部分基于hmvp表。
[0457]
在一些示例中,对于第一规则,应用修剪,并且对于第二规则,应用非修剪。
[0458]
在一些示例中,对于第一规则,应用部分修剪,并且对于第二规则,应用完全修剪。
[0459]
在一些示例中,规则根据视频处理单元的转换的一个或多个特性来确定。
[0460]
在一些示例中,一个或多个特性包括处理单元的预测模式。
[0461]
在一些示例中,规则基于视频处理单元的编解码模式信息来确定。
[0462]
在一些示例中,当hmvp表用于帧间编解码块时,该规则从一个视频处理单元到另一个视频处理单元而改变,或者规则指定根据修剪结果的自适应顺序。
[0463]
在一些示例中,当hmvp表用于ibc编解码块时,规则是fifo规则。
[0464]
在一些示例中,该更新取决于与视频块相关联的编解码信息。
[0465]
在一些示例中,编解码信息包括编解码模式信息。
[0466]
在一些示例中,该转换从比特流表示生成视频的视频块。
[0467]
在一些示例中,该转换从视频的视频块生成比特流表示。
[0468]
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间应用视频压缩算法,反之亦然。如语法所定义的,当前视频块的比特流表示可以例如对应于并置或者散布在比特流内不同位置的比特。例如,可以根据变换的和编解码的误差残差值并且还使用比特流中的头和其他字段中的比特来编码宏块。
[0469]
本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中、或者在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中、或者在它们中的一个或多个的组合中被实施。所公开的以及其他实施例可以被实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。
[0470]
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
[0471]
本文档书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0472]
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可换式磁盘;磁光盘;以及cd rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0473]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可能要求保护的范围的限制,而是作为特定于特定技术的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求
保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
[0474]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
[0475]
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。
再多了解一些

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

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

相关文献