mv精度约束
1.相关申请的交叉引用
2.根据巴黎公约适用的专利法和/或规则,本技术旨在及时要求2019年1月12日提交的国际专利申请no.pct/cn2019/071503和2019年3月6日提交的国际专利申请no.pct/cn2019/077171的优先权和利益。国际专利申请no.pct/cn2019/071503和no.pct/cn2019/077171的全部公开内容通过引用而并入作为本技术公开内容的一部分。
技术领域
3.本文档涉及视频编解码技术。
背景技术:
4.数字视频占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的联网用户设备的数量增加,预计数字视频使用的带宽需求将继续增长。
技术实现要素:
5.所公开的技术可以由其中使用块形状插值顺序技术来改善插值的视频解码器或编码器实施例使用。
6.在一个示例方面,公开了一种视频比特流处理的方法。该方法包括:确定第一视频块的形状;基于第一视频块的形状来确定插值顺序,该插值顺序指示执行水平插值和垂直插值的次序;以及根据插值顺序来按次序对第一视频块执行水平插值和垂直插值,以重构第一视频块的解码表示。
7.在另一个示例方面,一种视频比特流处理的方法,包括:确定与第一视频块相关的运动矢量的特性;基于运动矢量的特性来确定插值顺序,该插值顺序指示执行水平插值和垂直插值的次序;以及根据插值顺序来按次序对第一视频块执行水平插值和垂直插值,以重构第一视频块的解码表示。
8.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:由处理器确定第一视频块的大小特性;由处理器基于对大小特性的确定来确定第一插值滤波器要被应用于第一视频块;以及使用第一插值滤波器来执行第一视频块的进一步处理。
9.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:由处理器确定第一视频块的第一特性;由处理器基于第一特性来确定第一插值滤波器要被应用于第一视频块;使用第一插值滤波器来执行第一视频块的进一步处理;由处理器确定第二视频块的第二特性;由处理器基于第二特性来确定第二插值滤波器要被应用于第二视频块,第一插值滤波器和第二插值滤波器是不同的短抽头滤波器;以及使用第二插值滤波器来执行第二视频块的进一步处理。
10.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:由处理器确定第一视频块的特性,该特性包括以下中的一个或多个:第一视频块的大小信息、第一视频块的预测方向、或第一视频块的运动信息;基于对第一视频块的特性的确定,将与第一
视频块相关的运动矢量(mv)取整为整数像素精度或半像素精度;以及使用被取整的运动矢量来执行第一视频块的进一步处理。
11.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:由处理器确定第一视频块是以merge模式编解码的;基于对第一视频块是以merge模式编解码的确定,将与第一视频块相关的运动信息取整为整数精度以生成修改后的运动信息;以及使用修改后的运动信息对第一视频块执行运动补偿过程。
12.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:确定第一视频块的特性,该特性是以下中的一个或两个:第一视频块的尺寸或第一视频块的形状;将与第一视频块相关的运动矢量修改为整数像素精度或半像素精度,以生成修改后的运动矢量;以及使用修改后的运动矢量来执行第一视频块的进一步处理。
13.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:确定第一视频块的特性,该特性是以下中的一个或两个:第一视频块的尺寸大小或第一视频块的预测方向;基于对第一视频块的特性的确定,确定mmvd边信息;以及使用mmvd边信息来执行第一视频块的进一步处理。
14.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:确定第一视频块的特性,该特性是以下中的一个或两个:第一视频块的尺寸或第一视频块的形状;将与第一视频块相关的运动矢量修改为整数像素精度或半像素精度,以生成修改后的运动矢量;以及使用修改后的运动矢量来执行第一视频块的进一步处理。
15.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:确定第一视频块的特性,该特性是以下中的一个或两个:第一视频块的尺寸或第一视频块的形状;基于对第一视频块的特性的确定,确定要被约束的半像素运动矢量(mv)分量或四分之一像素mv分量的阈值数量;以及使用阈值数量来执行第一视频块的进一步处理。
16.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:确定第一视频块的特性,该特性包括第一视频块的尺寸;基于对第一视频块的特性的确定,将与第一视频块相关的运动矢量(mv)从分数精度修改为整数精度;以及使用修改后的mv对第一视频块执行运动补偿。
17.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:确定第一视频块的第一大小;基于对第一大小的确定,确定与第一视频块相关的运动矢量(mv)的第一精度;确定第二视频块的第二大小,第一大小和第二大小是不同的大小;基于对第二大小的确定,确定与第二视频块相关的mv的第二精度,第一精度和第二精度是不同的精度;以及使用第一大小执行第一视频块的进一步处理并且使用第二大小执行第二视频块的进一步处理。
18.在另一个示例方面,公开了一种视频处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换确定第一块的特性;基于第一块的特性,确定具有用于第一块的插值的插值滤波器参数的滤波器;以及通过使用具有插值滤波器参数的滤波器来执行该转换。
19.在另一个示例方面,公开了一种视频处理的方法。该方法包括:针对视频的第一块和第一块的比特流表示之间的转换,从参考图片提取第一参考块的参考像素,其中,第一参考块小于第一块的运动补偿所需的第二参考块;用填充像素来填充第一参考块,以生成第
二参考块;以及通过使用所生成的第二参考块来执行该转换。
20.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换确定第一块的特性;基于第一块的特性对第一块的运动矢量(mv)执行取整过程;以及通过使用经取整的mv来执行该转换。
21.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换确定第一块的特性;使用具有第一精度的mv对第一块执行运动补偿;以及为第一块存储具有第二精度的mv;其中,第一精度不同于第二精度。
22.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换确定第一块的编解码模式;如果第一块的编解码模式满足预定规则,则对第一块的运动矢量(mv)执行取整过程;以及通过使用经取整的mv来执行第一块的运动补偿。
23.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换生成第一块的第一运动矢量(mv)候选列表;在将至少一个候选添加到第一mv候选列表中之前,对至少一个候选的mv执行取整过程;以及通过使用第一mv候选列表来执行该转换。
24.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换确定第一块的特性;基于第一块的特性来确定要被应用于第一块的约束参数,其中,约束参数约束第一块的分数运动矢量(mv)分量的最大数量;以及通过使用约束参数来执行该转换。
25.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括
26.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:获取在块的特性满足预定规则时不允许双向预测和单向预测中的至少一个的信令通知的指示;为视频的第一块和第一块的比特流表示之间的转换确定第一块的特性;以及当第一块的特性满足预定规则时,通过使用该指示来执行该转换。
27.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:信令通知在块的特性满足预定规则时不允许双向预测和单向预测中的至少一个的指示;为视频的第一块和第一块的比特流表示之间的转换确定第一块的特性;基于第一块的特性来执行该转换,其中,在该转换期间,当第一块的特性满足预定规则时,双向预测和单向预测中的至少一个被禁用。
28.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换确定分数运动矢量(mv)或运动矢量差(mvd)精度是否被允许用于第一块;基于该确定,信令通知第一块的高级运动矢量分辨率(amvr)参数;以及通过使用amvr参数来执行该转换。
29.在另一个示例方面,公开了一种用于视频比特流处理的方法。该方法包括:为视频的第一块和第一块的比特流表示之间的转换确定分数运动矢量(mv)或运动矢量差(mvd)精度是否被允许用于第一块;基于该确定,获取第一块的高级运动矢量分辨率(amvr)参数;以及通过使用amvr参数来执行该转换。
30.在另一个示例方面,上述方法可以由包括处理器的视频解码器装置实施。
31.在另一个示例方面,上述方法可以由包括用于在视频编码过程期间对编码视频进行解码的处理器的视频编码器装置实施。
32.在又一个示例方面,这些方法可以以处理器可执行指令的形式被体现并被存储在计算机可读程序介质上。
33.这些以及其他方面在本文档中进一步描述。
附图说明
34.图1是四叉树二叉树(quad tree binary tree,qtbt)结构的图示。
35.图2示出了merge候选列表构建的示例推导过程。
36.图3示出了空域merge候选的示例位置。
37.图4示出了考虑用于空域merge候选的冗余检查的候选对的示例。
38.图5a和图5b示出了n
×
2n和2n
×
n分割的第二预测单元(prediction unit,pu)的位置的示例。
39.图6是时域merge候选的运动矢量缩放的图示。
40.图7示出了时域merge候选的示例候选位置c0和c1。
41.图8示出了组合的双向预测merge候选的示例。
42.图9示出了运动矢量预测候选的推导过程的示例。
43.图10是空域运动矢量候选的运动矢量缩放的图示。
44.图11示出了用于编解码单元(coding unit,cu)的高级时域运动矢量预测(alternative temporal motion vector prediction,atmvp)的示例。
45.图12示出了具有四个子块(a
‑
d)的一个cu及其临近块(a
‑
d)的示例。
46.图13示出了一个示例中的提出的非相邻merge候选。
47.图14示出了一个示例中的提出的非相邻merge候选。
48.图15示出了一个示例中的提出的非相邻merge候选。
49.图16示出了用于四分之一样点亮度插值的整数样点和分数样点位置的示例。
50.图17是视频处理装置的示例的框图。
51.图18示出了视频编码器的示例实施方式的框图。
52.图19是视频比特流处理方法的示例的流程图。
53.图20是视频比特流处理方法的示例的流程图。
54.图21示出了插值之前的参考块的重复边界像素的示例。
55.图22是视频比特流处理方法的示例的流程图。
56.图23是视频比特流处理方法的示例的流程图。
57.图24是视频比特流处理方法的示例的流程图。
58.图25是视频比特流处理方法的示例的流程图。
59.图26是视频比特流处理方法的示例的流程图。
60.图27是视频比特流处理方法的示例的流程图。
61.图28是视频比特流处理方法的示例的流程图。
62.图29是视频比特流处理方法的示例的流程图。
63.图30是视频比特流处理方法的示例的流程图。
64.图31是视频比特流处理方法的示例的流程图。
65.图32是视频比特流处理方法的示例的流程图。
66.图33是视频比特流处理方法的示例的流程图。
67.图34是视频比特流处理方法的示例的流程图。
具体实施方式
68.本文档提供了可以由视频比特流的解码器使用的各种技术,以提高解压缩或解码的数字视频的质量。此外,视频编码器还可在编码过程期间实施这些技术,以便重构用于进一步编码的解码帧。
69.在本文档中使用章节标题是为了易于理解,并且不将实施例和技术限于相应的章节。如此以来,一个章节的实施例可以与其他章节的实施例相结合。
70.1.概述
71.该专利文档涉及视频编解码技术。具体地,它涉及视频编解码中的插值。它可以应用于现有的视频编解码标准,如hevc,或待定稿的标准(多功能视频编解码)。它也可能适用于未来的视频编解码标准或视频编解码器。
72.2.背景
73.视频编解码标准主要是通过熟知的itu
‑
t和iso/iec标准的发展演变而来的。itu
‑
t制作了h.261和h.263,iso/iec制作了mpeg
‑
1和mpeg
‑
4视觉,并且这两个组织联合制作了h.262/mpeg
‑
2视频和h.264/mpeg
‑
4高级视频编解码(avc)和h.265/hevc标准。自h.262年以来,视频编解码标准基于混合视频编解码结构,其中利用时域预测加变换编解码。为了探索hevc以外的未来视频编解码技术,由vceg和mpeg于2015年联合成立了联合视频探索组(jvet)。此后,jvet采用了许多新方法,并将其输入到名为联合探索模型(jem)的参考软件中。2018年4月,在vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间创建了联合视频专家组(jvet),目标是与hevc相比比特率降低50%的vvc标准。
74.图18是视频编码器的示例实施方式的框图。
75.2.1具有较大ctu的四叉树加二叉树(qtbt)块结构
76.在hevc中,通过使用表示为编解码树的四叉树结构将ctu划分为cu,以适应各种局部特征。在cu级别决定是否使用图片间(时域)或图片内(空域)预测对图片区域进行编解码。可以根据pu划分类型将每个cu进一步划分为一个、两个或四个pu。在一个pu内部,应用相同的预测过程,并且相关信息以pu为基础被发送到解码器。在基于pu划分类型通过应用预测处理而获得残差块之后,可以根据类似于用于cu的编解码树的另一四叉树结构将cu分割为变换单元(tu)。hevc结构的关键特征之一是它具有多个分区概念,包括cu、pu和tu。
77.qtbt结构移除了多个分区类型的概念,即它移除了cu、pu和tu概念的分离,并且支持cu分区形状的更大灵活性。在qtbt块结构中,cu可以具有正方形或矩形形状。如图1所示,首先通过四叉树结构来分割编解码树单元(ctu)。四叉树叶节点由二叉树结构进一步分割。在二叉树划分中,有两种划分类型,对称水平分割和对称垂直分割。二叉树叶子节点称为编解码单元(cu),该分段用于预测和变换处理,而无需任何进一步分割。这意味着在qtbt编解码块结构中,cu、pu和tu具有相同的块尺寸。在jem中,cu有时由不同色彩分量的编解码块(cb)组成,例如,在4:2:0色度格式的p和b条带的情况下,一个cu包含一个亮度cb和两个色
度cb,并且有时由单个分量的cb组成,例如,在i条带的情况下,一个cu仅包含一个亮度cb或仅包含两个色度cb。
78.为qtbt分割方案定义了以下参数。
79.–
ctu尺寸:四叉树的根节点尺寸,与hevc中的概念相同
80.–
minqtsize:最小允许四叉树叶节点尺寸
81.–
maxbtsize:最大允许二叉树根节点尺寸
82.–
maxbtdepth:最大允许二叉树深度
83.–
minbtsize:最小允许二叉树叶子节点尺寸
84.在qtbt分割结构的一个示例中,ctu尺寸被设置为具有两个相应的64
×
64色度样点块的128
×
128亮度样点,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亮度样点。
85.图1示出了通过使用qtbt进行块分割的示例,图1(右)示出了对应的树表示。实线表示四叉树划分,虚线表示二叉树划分。在二叉树的每个划分(即非叶)节点中,信令通知一个标志以指示使用哪种划分类型(即水平或垂直),其中0指示水平划分,并且1指示垂直划分。对于四叉树划分,由于四叉树划分总是在水平和垂直方向对块进行划分以产生具有相同尺寸的4个子块,因此无需指示划分类型。
86.此外,qtbt方案支持亮度和色度具有单独的qtbt结构的能力。当前,对于p和b条带,一个ctu中的亮度和色度ctb共享相同的qtbt结构。然而,对于i条带,亮度ctb通过qtbt结构被分割成cu,并且色度ctb通过另一qtbt结构被分割成色度cu。这意味着,i条带中的cu包括亮度分量的编解码块或两个色度分量的编解码块,并且p或b条带中的cu包括所有三个色彩分量的编解码块。
87.在hevc中,限制用于小块的帧间预测以减少运动补偿的存储器访问,使得对于4
×
8和8
×
4块不支持双向预测,并且对于4
×
4块不支持帧间预测。在jem的qtbt中,这些限制被移除。
88.2.2hevc/h.265的帧间预测
89.每个帧间预测的pu具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc来信令通知对两个参考图片列表之一的使用。运动矢量可以被显式地编解码为相对于预测值的增量。
90.当用跳过模式来编解码cu时,一个pu与该cu相关联,并且不存在显著的残差系数、没有编解码的运动矢量增量或参考图片索引。规定merge模式,由此从包括空域和时域候选的临近pu获得当前pu的运动参数。merge模式可以应用于任何帧间预测的pu,而不仅仅对于
跳跃模式。merge模式的可选方案是运动参数的显式传输,其中每一pu显式地信令通知运动矢量(更准确地,与运动矢量预测量相比的运动矢量差)、每个参考图片列表的对应参考图片索引和参考图片列表的使用。在本公开中,这样的模式被称为高级运动矢量预测(advanced motion vector prediction,amvp)。
91.当信令指示要使用两个参考图片列表之一时,从一个样点块中产生pu。这被称为“单向预测”。单向预测可用于p条带和b条带。
92.当信令指示要使用两个参考图片列表两者时,从两个样点块中产生pu。这被称为“双向预测”。双向预测仅可用于b条带。
93.以下文本提供了关于hevc中规定的帧间预测模式的详细信息。描述将从merge模式开始。
94.2.2.1merge模式
95.2.2.1.1merge模式的候选的推导
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.这些步骤也示意性地描绘在图2中。对于空域merge候选推导,在位于五个不同位置的候选当中选择最多四个merge候选。对于时域merge候选推导,在两个候选当中选择最多一个merge候选。由于在解码器处假设每个pu的恒定数量的候选,因此当从步骤1获得的候选的数量未达到在条带头中信令通知的merge候选的最大数量(maxnummergecand)时,生成附加候选。由于候选的数量是恒定的,因此使用截断一元二值化(truncated unary binarization,tu)对最佳merge候选的索引进行编码。如果cu的尺寸等于8,则当前cu的所有pu共享单个merge候选列表,其与2n
×
2n预测单元的merge候选列表相同。
105.在下文中,将详细描述与上述步骤相关联的操作。
106.2.2.1.2空域候选推导
107.在空域merge候选的推导中,在位于图3中描绘的位置的候选当中选择最多四个merge候选。推导的顺序是a1、b1、b0、a0和b2。仅当位置a1、b1、b0、a0的任何pu不可用(例如,因为它属于另一条带或片)或者是帧内编解码的时,才考虑位置b2。在添加位置a1处的候选之后,对剩余候选的添加进行冗余检查,其确保具有相同运动信息的候选被排除在列表之外,从而提高编解码效率。图4示出了考虑用于空域merge候选的冗余检查的候选对的示例。为了降低计算复杂度,在所提到的冗余检查中不考虑所有可能的候选对。相反,只考虑与图4中的箭头链接的对,并且如果用于冗余检查的对应候选没有相同的运动信息,则候选仅被添加到列表中。重复运动信息的另一源是与不同于2n
×
2n的分割相关联的“第二pu”。作为
示例,图5描绘了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,图片顺序计数)差的图片的并置(co
‑
located)pu来推导缩放运动矢量。在条带头中显式地信令通知要用于推导并置pu的参考图片列表。图5是时域merge候选的运动矢量缩放的图示。如在图5中由虚线所示的,获得了对时域merge候选的缩放运动矢量,该缩放运动矢量是使用poc距离tb和td从并置pu的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的poc差,并且td被定义为并置图片的参考图片与并置图片之间的poc差。时域merge候选的参考图片索引被设置为等于零。hevc规范中描述了缩放过程的实际实现。对于b条带,两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1)被获得并组合,以生成双向预测merge候选。
110.图6是用于时域merge候选的运动矢量缩放的图示。
111.在属于参考帧的并置pu(y)中,在候选c0和c1之间选择时域候选的位置,如图7所描绘的。如果位置c0处的pu不可用、是帧内编解码的、或者在当前ctu行(row)的外部,则使用位置c1。否则,在时域merge候选的推导中使用位置c0。
112.2.2.1.4附加候选插入
113.除了空域和时域的merge候选之外,存在两种附加类型的merge候选:组合的双向预测merge候选和零merge候选。通过利用空域和时域的merge候选来生成组合的双向预测merge候选。组合的双向预测merge候选仅用于b条带。通过将初始候选的第一参考图片列表运动参数与另一初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,则它们将形成新的双向预测候选。作为示例,图8描绘了当原始列表(在左边)中的两个候选(其具有mvl0和refidxl0或mvl1和refidxl1)用于创建被添加到最终列表(在右边)的组合的双向预测merge候选的情况。存在许多关于组合的规则,这些规则被考虑以生成这些附加merge候选。
114.插入零运动候选以填充merge候选列表中的剩余条目,并因此达到maxnummergecand容量。这些候选具有零空域位移和参考图片索引,该索引从零开始并且每次向列表中添加新的零运动候选时增加。这些候选使用的参考帧的数量对于单向预测和双向预测分别是1和2。最后,不对这些候选执行冗余检查。
115.2.2.1.5用于并行处理的运动估计区域
116.为了加速编码过程,可以并行执行运动估计,由此同时推导给定区域内部的所有预测单元的运动矢量。从空域邻域推导merge候选可能干扰并行处理,因为一个预测单元不能从临近pu推导运动参数,直到其相关联的运动估计完成。为了缓和编解码效率和处理时延之间的折衷(trade
‑
off),hevc定义了运动估计区域(motion estimation region,mer),使用“log2_parallel_merge_level_minus2”语法元素在图片参数集中信令通知mer的尺寸。当定义mer时,落入相同区域的merge候选被标记为不可用,并且因此在列表构建中不被
考虑。
117.2.2.2amvp
118.amvp利用运动矢量与临近pu的时空相关性,该时空相关性用于运动参数的显式传输。对于每个参考图片列表,通过首先检查左边、上边的时域临近的pu位置的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度,来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测量,并发送指示所选候选的对应索引。与merge索引信令类似,使用截断一元对最佳运动矢量候选的索引进行编码。在这种情况下,要编码的最大值是2(参见图9)。在接下来的章节中,将提供关于运动矢量预测候选的推导过程的细节。
119.2.2.2.1amvp候选的推导
120.图9概述了运动矢量预测候选的推导过程。
121.在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,最终基于位于如图3所描绘的五个不同位置的每个pu的运动矢量来推导两个运动矢量候选。
122.对于时域运动矢量候选推导,从基于两个不同并置位置而推导的两个候选中选择一个运动矢量候选。在产生第一时空候选列表之后,移除列表中的重复运动矢量候选。如果潜在候选的数量大于二,则从列表中移除相关联的参考图片列表内其参考图片索引大于1的运动矢量候选。如果时空运动矢量候选的数量小于二,则将附加的零运动矢量候选添加到列表。
123.2.2.2.2空域运动矢量候选
124.在空域运动矢量候选的推导中,在从位于如图3所描绘的位置的pu中推导的五个潜在候选当中考虑最多两个候选,那些位置与运动merge的位置相同。当前pu的左侧的推导顺序被定义为a0、a1、以及缩放a0、缩放a1。当前pu的上侧的推导顺序被定义为b0、b1、b2、缩放b0、缩放b1、缩放b2。因此对于每一侧,存在可以用作运动矢量候选的四种情况,其中两种情况不需要使用空域缩放,两种情况使用空域缩放。四种不同的情况概述如下:
125.·
没有空域缩放
126.‑
(1)相同的参考图片列表,以及相同的参考图片索引(相同的poc)
127.‑
(2)不同的参考图片列表,但是相同的参考图片(相同的poc)
128.·
空域缩放
129.‑
(3)相同的参考图片列表,但是不同的参考图片(不同的poc)
130.‑
(4)不同的参考图片列表,以及不同的参考图片(不同的poc)
131.首先检查非空域缩放情况,然后是空域缩放。当不管参考图片列表如何poc在临近pu的参考图片与当前pu的参考图片之间都不同时,考虑空域缩放。如果左边候选的所有pu都不可用或者都是帧内编解码的,则允许针对上边运动矢量的缩放以帮助对左边和上边mv候选的并行推导。否则,针对上边运动矢量不允许空域缩放。
132.图10是用于空域运动矢量候选的运动矢量缩放的图示。
133.如图10所描绘的,在空域缩放过程中,以与时域缩放类似的方式来缩放临近pu的运动矢量。主要差异在于参考图片列表和当前pu的索引被给定作为输入;实际缩放过程与时域缩放的过程相同。
134.2.2.2.3时域运动矢量候选
135.除了参考图片索引推导之外,用于推导时域merge候选的所有过程与用于推导空域运动矢量候选的过程相同(参见图7)。参考图片索引被信令通知给解码器。
136.2.3jem中的新的帧间merge候选
137.2.3.1基于子cu的运动矢量预测
138.在具有qtbt的jem中,每个cu对于每个预测方向最多可以有一个运动参数集。通过将大cu划分成子cu并且推导大cu的所有子cu的运动信息,在编码器中考虑两个子cu级别运动矢量预测方法。可选时域运动矢量预测(atmvp)方法允许每个cu从比并置参考图片中的当前cu小的多个块中提取运动信息的多个集合。在时空运动矢量预测(spatial
‑
temporal motion vector prediction,stmvp)方法中,通过使用时域运动矢量预测量和空域临近运动矢量来递归地推导子cu的运动矢量。
139.为了保持对于子cu运动预测的更准确的运动场,当前禁用参考帧的运动压缩。
140.2.3.1.1可选时域运动矢量预测
141.在可选时域运动矢量预测(atmvp)方法中,通过从比当前cu小的块提取运动信息(包括运动矢量和参考索引)的多个集合来修改运动矢量时域运动矢量预测(temporal motion vector prediction,tmvp)。如图11所示,子cu是正方形的n
×
n块(n默认被设置为4)。
142.atmvp分两个步骤来预测cu内的子cu的运动矢量。第一步骤是用所谓的时域矢量来识别参考图片中的对应块。参考图片也称为运动源图片。第二步骤是将当前cu划分成子cu,并从与每个子cu相对应的块中获得运动矢量以及每个子cu的参考索引,如图11所示。
143.在第一步骤中,参考图片和对应块由当前cu的空域临近块的运动信息确定。为了避免临近块的反复的扫描过程,使用当前cu的merge候选列表中的第一merge候选。第一可用运动矢量以及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,在atmvp中,与tmvp相比,可以更准确地识别对应块,其中对应块(有时称为并置块)总是相对于当前cu处于右下或中心位置。
144.在第二步骤中,通过向当前cu的坐标添加时域矢量,通过运动源图片中的时域矢量来识别子cu的对应块。对于每个子cu,其对应块的运动信息(覆盖中心样点的最小运动网格)用于推导子cu的运动信息。在识别对应的n
×
n块的运动信息之后,以与hevc的tmvp相同的方式将其转换成当前子cu的运动矢量和参考索引,其中运动缩放和其它过程适用。例如,解码器检查是否满足低延迟条件(即当前图片的所有参考图片的poc小于当前图片的poc),并且可能使用运动矢量mv
x
(例如,与参考图片列表x相对应的运动矢量)来预测每个子cu的运动矢量mv
y
(例如,其中x等于0或1,并且y等于1
‑
x)。
145.2.3.1.2时空运动矢量预测(stmvp)
146.在该方法中,按照光栅扫描顺序递归地推导子cu的运动矢量。图12示出了这个概念。让我们考虑8
×
8的cu,它包含4个4
×
4的子cu:a、b、c和d。当前帧中的临近的4
×
4块被标记为a、b、c和d。
147.子cu a的运动推导通过识别其两个空域邻居(neighbour)开始。第一邻居是子cu a上边的n
×
n块(块c)。如果这个块c不可用或是帧内编解码的,则检查子cu a上边的其它n
×
n块(从左到右,从块c开始)。第二邻居是子cu a左边的块(块b)。如果块b不可用或是帧内编解码的,则检查子cu a左边的其它块(从上到下,从块b开始)。从每个列表的临近块中获
得的运动信息被缩放到给定列表的第一参考帧。接下来,通过遵循如hevc规定的tmvp推导的相同过程来推导子块a的时域运动矢量预测量(tmvp)。在位置d处的并置块的运动信息被相应地提取和缩放。最后,在检索和缩放运动信息之后,对每个参考列表单独地平均所有可用的运动矢量(最多3个)。平均运动矢量被分配为当前子cu的运动矢量。
148.2.3.1.3子cu运动预测模式信令
149.子cu模式被启用作为附加merge候选,并且不需要附加语法元素来信令通知这些模式。两个附加merge候选被添加到每个cu的merge候选列表以表示atmvp模式和stmvp模式。如果序列参数集指示启用了atmvp和stmvp,则可以使用多达七个merge候选。附加merge候选的编码逻辑与hm中的merge候选的编码逻辑相同,这意味着,对于p条带或b条带中的每个cu,针对两个附加merge候选可能还需要两次rd检查。
150.在jem中,merge索引的所有二进制位(bin)都由cabac进行上下文编解码。而在hevc中,仅对第一二进制位进行上下文编解码,并且对剩余二进制数进行上下文旁路编解码。
151.2.3.2非相邻merge候选
152.高通提出从如图13中标记为6到49的不相邻的临近位置推导附加空域merge候选。推导出的候选在tmvp候选之后被添加到merge候选列表中。
153.腾讯提出从外部参考区域中相对于当前块的偏移为(
‑
96,
‑
96)的位置推导附加空域merge候选。
154.如图14所示,位置被标记为a(i,j)、b(i,j)、c(i,j)、d(i,j)和e(i,j)。每个候选b(i,j)或c(i,j)与先前的b或c候选相比在垂直方向上的偏移为16。每个候选a(i,j)或d(i,j)与先前的a或d候选相比在水平方向上的偏移为16。每个e(i,j)与先前的e候选相比在水平方向和垂直方向上的偏移均为16。从内部到外部检查候选。并且候选的顺序为a(i,j)、b(i,j)、c(i,j)、d(i,j)和e(i,j)。进一步研究是否可以进一步减少merge候选的数量。候选在tmvp候选之后被添加到merge候选列表中。
155.在一些示例中,如在图15中,可以根据它们在时域候选之后的数字顺序来检查从6到27的扩展空域位置。为了保存mv行缓冲区,所有空域候选都被限制在两个ctu行内。
156.2.4jem中的帧内预测
157.2.4.1具有67种帧内预测模式的帧内模式编解码
158.对于亮度插值滤波,8抽头可分离的基于dct的插值滤波器用于2/4精度样点,并且7抽头可分离的基于dct的插值滤波器用于1/4精度样点,如表1所示。
159.表1:用于第1/4亮度插值的8抽头dct
‑
if系数
160.位置滤波器系数1/4{
‑
1,4,
‑
10,58,17,
‑
5,1}2/4{
‑
1,4,
‑
11,40,40,
‑
11,4,
‑
1}3/4{1,
‑
5,17,58,
‑
10,4,
‑
1}
161.类似地,4抽头可分离的基于dct的插值滤波器用于色度插值滤波器,如表2所示。
162.表2:用于1/8色度插值的4抽头dct
‑
if系数
[0163][0164][0165]
对于4:2:2的垂直插值和对于4:4:4色度通道的水平和垂直插值,不使用表2中的奇数位置,从而导致第1/4色度插值。
[0166]
对于双向预测,在对两个预测信号求平均之前,将插值滤波器的输出的比特深度保持为14比特精度,而不管源比特深度如何。实际的求平均过程是利用比特深度减小过程隐式完成的:
[0167]
predsamples[x,y]=(predsamplesl0[x,y] predsamplesl1[x,y] offset)>>shift
[0168]
其中shift=(15
‑
bitdepth)and offset=1<<(shift
‑
1)
[0169]
如果运动矢量的水平分量和垂直分量都指向子像素位置,则总是首先执行水平插值,然后执行垂直插值。例如,要对图16所示的子像素j
0,0
进行插值,可以对子像素j
0,0
进行插值。在图16中,首先根据等式2
‑
1对b
0,k
(k=
‑
3,
‑
2,
…
3)进行插值,然后根据等式2
‑
2对j
0,0
进行插值。这里,shift1=min(4,bitdepthy
‑
8)且shift2=6。
[0170]
b
0,k
=(
‑
a
‑
3,k
4*a
‑
2,k
‑
11*a
‑
1,k
40*a
0,k
40*a
1,k
‑
11*a
2,k
4*a
3,k
‑
a
4,k
)>>shift1
ꢀꢀ
(2
‑
1)
[0171]
j
0,0
=(
‑
b
0,
‑3 4*b
0,
‑2‑
11*b
0,
‑1 40*b
0,0
40*b
0,1
‑
11*b
0,2
4*b
0,3
‑
b
0,4
)>>shift2
ꢀꢀ
(2
‑
2)
[0172]
可替代地,我们可以首先执行垂直插值,然后执行水平插值。在这种情况下,要对插值j
0,0
进行插值,首先根据等式2
‑
3对h
k,0
(k=
‑
3,
‑
2,
…
3)进行插值,然后根据等式2
‑
4对j
0,0
进行插值。当bitdepthy小于或等于8时,shift1为0,在第一插值阶段不会丢失任何内容,因此,最终插值结果不按插值顺序而变化。然而,当bitdepthy大于8时,shift1大于0。在这种情况下,当应用不同的插值顺序时,最终插值结果可能不同。
[0173]
h
k,0
=(
‑
a
k,
‑3 4*a
k,
‑2‑
11*a
k,
‑1 40*a
k,0
40
*
a
k,1
‑
11*a
k,2
4*a
k,3
‑
a
k,4
)>>shift1
ꢀꢀ
(2
‑
3)
[0174]
j
0,0
=(
‑
h
‑
3,0
4*h
‑
2,0
‑
11*h
‑
1,0
40*h
0,0
40*h
1,0
‑
11*h
2,0
4*h
3,0
‑
h
4,0
)>>shift2
ꢀꢀ
(2
‑
4)
[0175]
3.实施例解决的问题的示例
[0176]
对于亮度块尺寸w
×
h,如果我们总是首先执行水平插值,则所需的插值(每像素)如表3所示。
[0177]
表3:通过hevc/jem的w
×
h亮度分量所需的插值
[0178][0179]
另一方面,如果我们首先执行垂直插值,则所需的插值如表4所示。显然,最佳插值顺序是在表3和表4之间需要较小插值时间的顺序。
[0180]
表4:当反转插补顺序时w
×
h亮度分量所需的插值
[0181][0182]
对于色度分量,如果总是首先执行水平插值,则所需插值是((h 3)
×
w w
×
h)/(w
×
h)=2 3/h。如果我们总是首先执行垂直插值,则所需插值是((w 3)
×
h w
×
h)/(w
×
h)=2 3/w。
[0183]
如上所述,当输入视频的比特深度大于8时,不同的插值顺序会导致不同的插值结果。因此,应该在编码器和解码器两者中隐式地定义插值顺序。
[0184]
4.实施例的示例
[0185]
为了解决这些问题并提供其他益处,我们提出了依赖于形状的插值顺序。假设插值滤波器抽头(在运动补偿中)为n(例如,8、6、4或2),并且当前块尺寸为w
×
h。
[0186]
假设mmvd中允许的mvd的数量(诸如距离表的条目的数量)为m。注意,三角形模式被视为双向预测模式,并且与双向预测相关的以下技术也可以被应用于三角形模式。
[0187]
下面的详细示例应该被认为是解释一般概念的示例。这些示例不应该被狭义地解释。此外,这些示例可以以任何方式被组合。
[0188]
1.提出了插值顺序取决于当前编解码块形状(例如,编解码块是cu)。
[0189]
a.在一个示例中,对于宽度>高度的块(诸如在如仿射、atmvp或bio的基于子块的预测中使用的cu、pu或子块),首先执行垂直插值,然后执行水平插值,例如首先对像素d
k,0
、h
k,0
和n
k,0
进行插值,然后对e
0,0
至r
0,0
进行插值。j
0,0
的示例在等式2
‑
3和2
‑
4中示出。
[0190]
i.可替代地,对于宽度>=高度的块(诸如在如仿射、atmvp或bio的基于子块的预测中使用的cu、pu或子块),首先执行垂直插值,然后执行水平插值。
[0191]
b.在一个示例中,对于宽度<=高度的块(诸如在如仿射、atmvp或bio的基于子块的预测中使用的cu、pu或子块),首先执行水平插值,然后执行垂直插值。
[0192]
i.可替代地,对于宽度<高度的块(诸如在如仿射、atmvp或bio的基于子块的预测中使用的cu、pu或子块),首先执行水平插值,然后执行垂直插值。
[0193]
c.在一个示例中,亮度分量和色度分量都遵循相同的插值顺序。
[0194]
d.可替代地,当一个色度编解码块对应于多个亮度编解码块时(例如,对于4:2:0色彩格式,一个色度4
×
4块可以对应于两个8
×
4或4
×
8亮度块),亮度和色度可以使用不同的插值顺序。
[0195]
e.在一个示例中,当利用不同的插值顺序时,还可以相应地改变多个阶段中的缩放因子(即shift1和shift2)。
[0196]
2.此外,可替代地,提出了亮度分量的插值顺序还可以取决于mv。
[0197]
a.在一个示例中,如果垂直mv分量指向四分之一像素位置,并且水平mv分量指向半像素位置,则首先执行水平插值,然后执行垂直插值。
[0198]
b.在一个示例中,如果垂直mv分量指向半像素位置,并且水平mv分量指向四分之一像素位置,则首先执行垂直插值,然后执行水平插值。
[0199]
c.在一个示例中,所提出的方法仅被应用于正方形编解码块。
[0200]
3.提出了对于以merge模式(例如,规则merge列表、三角形merge列表、仿射merge列表或其他非帧内/非amvp模式)编解码的块,可以在调用运动补偿过程之前将相关联的运动信息修改为整数精度(例如,经由取整)。
[0201]
a.可替代地,可以从merge列表排除具有分数merge候选的merge候选。
[0202]
b.可替代地,当将从空域或时域块或者其他方式(诸如hmvp、成对双向预测merge候选)推导出的merge候选与分数运动矢量相关联时,在被添加到merge列表之前,分数运动矢量可以首先被修改为整数精度(例如,经由取整)。
[0203]
c.在一个示例中,可以动态地(on
‑
the
‑
fly)保持单独的hmvp表,以存储具有整数精度的运动候选。
[0204]
d.可替代地,仅当merge候选是双向预测候选时,才可以应用以上方法。
[0205]
e.在一个示例中,以上方法可以被应用于某些块大小,诸如4
×
16、16
×
4,4
×
8、8
×
4、4
×
4。
[0206]
f.在一个示例中,以上方法可以被应用于amvp编解码块,其中,可以用amvp候选替换merge候选。
[0207]
g.在一个示例中,以上方法可以被应用于某些块模式,诸如非仿射模式。
[0208]
4.提出了mmvd边信息(诸如距离表、方向)可以取决于块大小和/或预测方向(例如,单向预测或双向预测)。
[0209]
a.在一个示例中,可以定义或信令通知具有所有整数精度的距离表。
[0210]
b.在一个示例中,如果基本merge候选与分数精度的运动矢量相关联,则其可以首先被修改(诸如经由取整)为整数精度,然后用于推导用于运动补偿的最终运动矢量。
[0211]
5.提出了对于某些块尺寸或块形状,可以将mmvd模式下的mv约束为具有整数像素精度或半像素精度。
[0212]
a.在一个示例中,如果针对mmvd编解码块选择了整数像素精度,则可以首先将在mmvd中使用的基本merge候选修改为整数像素精度(诸如经由取整)。
[0213]
b.在一个示例中,如果针对mmvd编解码块选择了半像素精度,则可以将在mmvd中使用的基本merge候选修改为半像素精度(诸如经由取整)。
[0214]
i.在一个示例中,可以在基本merge列表构建过程中执行取整,因此,在修剪中使用取整后的mv。
[0215]
ii.在一个示例中,可以在基本merge列表构建过程之后执行取整,因此,在修剪中使用未取整的mv。
[0216]
c.在一个示例中,如果整数像素精度或半像素精度用于mmvd模式,则仅允许具有相同或更低精度的mvd。
[0217]
i.例如,如果整数像素精度用于mmvd模式,则仅允许整数像素精度、2像素精度或n像素精度(n>=1)mvd。
[0218]
d.在一个示例中,如果在mmvd模式下不允许k mvd,则可以修改mvd索引的二值化,因为最大mvd索引是m
–
k
–
1而不是m
–
1。同时,可以在cabac编解码中使用不同的上下文。
[0219]
e.在一个示例中,可以在mmvd模式下推导mv之后执行取整。
[0220]
f.该约束对于双向预测和单向预测可以不同。例如,该约束可以不被应用于单向预测中。
[0221]
g.该约束对于不同的块尺寸或块形状可以不同。
[0222]
6.提出了对于某些块尺寸或块形状,可以约束半像素mv分量或/和四分之一像素mv分量(例如,水平mv或垂直mv)的最大数量。
[0223]
a.在一个示例中,比特流应当符合该约束。
[0224]
b.该约束对于双向预测和单向预测可以不同。例如,该约束可以不被应用于单向预测中。
[0225]
i.例如,这样的约束可以被应用于双向预测的4
×
8或/和8
×
4或/和4
×
16或/和16
×
4块,然而,它可以不被应用于单向预测的4
×
8或/和8
×
4或/和4
×
16或/和16
×
4块。
[0226]
ii.例如,这样的约束可以被应用于双向预测和单向预测的4
×
4块。
[0227]
c.该约束对于不同的块尺寸或块形状可以不同。
[0228]
d.该约束可以被应用于三角形模式。
[0229]
i.例如,这样的约束可以被应用于在三角形模式下编解码的4
×
16或/和16
×
4块。
[0230]
e.在一个示例中,对于双向预测块,可以允许最多3个四分之一像素mv分量。
[0231]
f.在一个示例中,对于双向预测块,可以允许最多2个四分之一像素mv分量。
[0232]
g.在一个示例中,对于双向预测块,可以允许最多1个四分之一像素mv分量。
[0233]
h.在一个示例中,对于双向预测块,可以允许最多0个四分之一像素mv分量。
[0234]
i.在一个示例中,对于单向预测块,可以允许最多1个四分之一像素mv分量。
[0235]
j.在一个示例中,对于单向预测块,可以允许最多0个四分之一像素mv分量。
[0236]
k.在一个示例中,对于双向预测块,可以允许最多3个分数mv分量。
[0237]
l.在一个示例中,对于双向预测块,可以允许最多2个分数mv分量。
[0238]
m.在一个示例中,对于双向预测块,可以允许最多1个分数mv分量。
[0239]
n.在一个示例中,对于双向预测块,可以允许最多0个分数mv分量。
[0240]
o.在一个示例中,对于单向预测块,可以允许最多1个分数mv分量。
[0241]
p.在一个示例中,对于单向预测块,可以允许最多0个分数mv分量。
[0242]
7.提出了可以根据块的大小(例如,宽度和/或高度、宽度和高度的比率)或/和预测方向或/和运动信息将mv的一些分量取整为整数像素精度或半像素精度。
[0243]
a.在一个示例中,mv被取整为最接近的整数像素精度mv或/和半像素精度mv。
[0244]
b.在一个示例中,可以使用不同的取整方法。例如,可以使用向下取整、向上取整、向零取整或远零取整(rounding away from zero)。
[0245]
c.在一个示例中,如果块的尺寸(即,宽度*高度)小于(或大于)(和/或等于)阈值l(例如,l=16或64),则mv取整可以被应用于水平或/和垂直mv分量。
[0246]
d.在一个示例中,如果块的宽度(或高度)小于(和/或等于)阈值l1(例如,l1=4、8),则mv取整可以被应用于水平(或垂直)mv分量。
[0247]
e.在一个示例中,阈值l和l1对于双向预测块和单向预测块可以不同。例如,更小的阈值可以用于双向预测块。
[0248]
f.在一个示例中,如果宽度和高度之间的比率大于第一阈值或小于第二阈值(诸如对于如4
×
16或16
×
4的窄块),则可以应用mv取整。
[0249]
g.在一个示例中,仅当mv的水平和垂直分量都是分数的(即,它们指向分数像素位置而不是整数像素位置)时,才可以应用mv取整。
[0250]
h.是否应用mv取整可以取决于当前块是双向预测还是单向预测。
[0251]
i.例如,仅当当前块是双向预测的时,才可以应用mv取整。
[0252]
i.是否应用mv取整可以取决于预测方向(例如,来自列表0或列表1)和/或相关联的运动矢量。在一个示例中,对于双向预测块,是否应用mv取整对于不同的预测方向可以不同。
[0253]
i.在一个示例中,如果预测方向x(x=0或1)的mv在水平方向和垂直方向上均具有分数分量,则mv取整可以被应用于预测方向x的n个mv分量;否则,可以不应用mv取整。这里,n=0、1或2。
[0254]
ii.在一个示例中,如果n(n>=0)个mv分量具有分数精度,则mv取整可以被应用于n个mv分量中的m(0<=m<=n)个mv分量。
[0255]
1.n和m对于双向预测块和单向预测块可以不同。
[0256]
2.n和m对于不同的块尺寸(宽度或/和高度或/和宽度*高度)可以不同。
[0257]
3.例如,对于双向预测块,n等于4且m等于4。
[0258]
4.例如,对于双向预测块,n等于4且m等于3。
[0259]
5.例如,对于双向预测块,n等于4且m等于2。
[0260]
6.例如,对于双向预测块,n等于4且m等于1。
[0261]
7.例如,对于双向预测块,n等于3且m等于3。
[0262]
8.例如,对于双向预测块,n等于3且m等于2。
[0263]
9.例如,对于双向预测块,n等于3且m等于1。
[0264]
10.例如,对于双向预测块,n等于2且m等于2。
[0265]
11.例如,对于双向预测块,n等于2且m等于1。
[0266]
12.例如,对于双向预测块,n等于1且m等于1。
[0267]
13.例如,对于单向预测块,n等于2且m等于2。
[0268]
14.例如,对于单向预测块,n等于2且m等于1。
[0269]
15.例如,对于单向预测块,n等于1且m等于1。
[0270]
iii.在一个示例中,m个mv分量中的k个mv分量被取整为整数像素精度,并且m
‑
k个mv分量被取整为半像素精度,其中,k=0,1,
…
,m
–
1。
[0271]
j.是否应用mv取整对于不同的色彩分量(诸如y、cb和cr)可以不同。
[0272]
i.例如,是否以及如何应用mv取整可以取决于色彩格式,诸如4:2:0、4:2:2或4:4:4。
[0273]
k.是否和/或如何应用mv取整可以取决于块尺寸(或宽度、高度)、块形状、预测方向等。
[0274]
i.在一个示例中,4
×
16或/和16
×
4双向预测亮度块或/和单向预测亮度块的一些mv分量可以被取整为半像素精度。
[0275]
ii.在一个示例中,4
×
16或/和16
×
4双向预测亮度块或/和单向预测亮度块的一些mv分量可以被取整为整数像素精度。
[0276]
iii.在一个示例中,4
×
4单向预测亮度块或/和双向预测亮度块的一些mv分量可以被取整为整数像素精度。
[0277]
iv.在一个示例中,4
×
8或/和8
×
4双向预测亮度块或/和单向预测亮度块的一些mv分量可以被取整为整数像素精度。
[0278]
l.在一个示例中,mv取整可以不被应用于子块预测,诸如仿射预测。
[0279]
i.在替代示例中,mv取整可以被应用于诸如atmvp预测的子块预测。在这种情况下,每个子块被视为编解码块,以判断是否以及如何应用mv取整。
[0280]
8.提出了对于某些块尺寸,一个块的运动矢量应当在用于运动补偿之前(例如,如果它们为分数精度)被修改为整数精度。
[0281]
9.在一个示例中,对于某些块大小,所存储的运动矢量和用于运动补偿的运动矢量可以为不同的精度。
[0282]
a.在一个示例中,可以为具有某些块大小的块存储子像素精度(又称为分数精度,诸如1/4像素、1/16像素),但是运动补偿过程基于这些运动矢量的整数版本(诸如经由取整)。
[0283]
10.提出了可以在序列参数集/图片参数集/序列头/图片头/片头/片组头/ctu行/区域/其他高级语法中信令通知对某些块大小不允许双向预测的指示。
[0284]
a.可替代地,可以在序列参数集/图片参数集/序列头/图片头/片头/片组头/ctu行/区域/其他高级语法中信令通知对某些块大小不允许双向预测的指示。
[0285]
b.可替代地,可以在序列参数集/图片参数集/序列头/图片头/片头/片组头/ctu行/区域/其他高级语法中信令通知对某些块大小不允许双向预测和/或单向预测的指示。
[0286]
c.此外,可替代地,这样的指示可以仅被应用于某些模式,诸如非仿射模式。
[0287]
d.此外,可替代地,当对块不允许单向预测/双向预测时,可以相应地修改amvr索引的信令,诸如仅允许整数像素精度,或者相反可以利用不同的mv精度。
[0288]
e.此外,可替代地,以上方法(诸如项目符号3
‑
9)也可以适用。
[0289]
11.提出了一致性比特流应当遵循这样的规则,即对于某些块大小,对双向预测编解码块仅允许整数像素运动矢量。
[0290]
a.提出了一致性比特流应当遵循这样的规则,即对于某些块大小,对双向预测编解码块仅允许整数像素运动矢量。
[0291]
12.amvr标志的信令可以取决于是否对块允许分数运动矢量。
[0292]
a.在一个示例中,如果对于块不允许分数(即,1/4像素)mv/mvd精度,则可以跳过指示当前块的mv/mvd精度是否为1/4像素的标志并将其隐式地推导为假。
[0293]
13.在一个示例中,上述块大小为例如4
×
16、16
×
4、4
×
8、8
×
4、4
×
4。
[0294]
14.提出了可以根据块的大小(例如,宽度和/或高度、宽度和高度的比率)在插值中使用具有不同插值滤波器(例如,不同的滤波器抽头和/或不同的滤波器插值滤波器系数)的滤波器。
[0295]
a.不同的滤波器可以用于垂直插值和水平插值。例如,与用于水平插值的滤波器相比,更短的抽头滤波器可以被应用于垂直插值。
[0296]
b.在一个示例中,可以在某些情况下应用抽头少于vtm
‑
3.0中的插值滤波器的插值滤波器。抽头更少的这些插值滤波器也被称为“短抽头滤波器”。
[0297]
c.在一个示例中,如果块的尺寸(即,宽度*高度)小于(或大于)(和/或等于)阈值l(例如,l=16或64),则不同的滤波器(例如,短抽头滤波器)可以用于水平插值或/和垂直插值。
[0298]
d.在一个示例中,如果块的宽度(或高度)小于(和/或等于)阈值l1(例如,l1=4、8),则不同的滤波器(例如,短抽头滤波器)可以用于水平(或垂直)插值。
[0299]
e.在一个示例中,如果宽度和高度之间的比率大于第一阈值或小于第二阈值(诸如对于如4
×
16或16
×
4的窄块),则可以选择与用于其他种类的块的滤波器不同的滤波器(例如,短抽头滤波器)。
[0300]
f.在一个示例中,仅当mv的水平和垂直分量都是分数的(即,它们指向分数像素位置而不是整数像素位置)时,才可以使用短抽头滤波器。
[0301]
g.要使用哪个滤波器(例如,可以使用或不使用短抽头滤波器)可以取决于当前块是双向预测还是单向预测。
[0302]
i.例如,仅当当前块是双向预测时,才可以使用短抽头滤波器。
[0303]
h.要使用哪个滤波器(例如,可以使用或不使用短抽头滤波器)可以取决于预测方向(例如,来自列表0或列表1)和/或相关联的运动矢量。在一个示例中,对于双向预测块,是否使用短抽头滤波器对于不同的预测方向可以不同。
[0304]
i.在一个示例中,如果预测方向x(x=0或1)的mv在水平方向和垂直方向上均具有分数分量,则短抽头滤波器用于预测方向x;否则,不使用短抽头滤波器。
[0305]
ii.在一个示例中,如果n(n>=0)个mv分量具有分数精度,则短抽头滤波器可以被应用于n个mv分量中的m(0<=m<=n)个mv分量。
[0306]
1.n和m对于双向预测块和单向预测块可以不同。
[0307]
2.n和m对于不同的块尺寸(宽度或/和高度或/和宽度*高度)可以不同。
[0308]
3.例如,对于双向预测块,n等于4且m等于4。
[0309]
4.例如,对于双向预测块,n等于4且m等于3。
[0310]
5.例如,对于双向预测块,n等于4且m等于2。
[0311]
6.例如,对于双向预测块,n等于4且m等于1。
[0312]
7.例如,对于双向预测块,n等于3且m等于3。
[0313]
8.例如,对于双向预测块,n等于3且m等于2。
[0314]
9.例如,对于双向预测块,n等于3且m等于1。
[0315]
10.例如,对于双向预测块,n等于2且m等于2。
[0316]
11.例如,对于双向预测块,n等于2且m等于1。
[0317]
12.例如,对于双向预测块,n等于1且m等于1。
[0318]
13.例如,对于单向预测块,n等于2且m等于2。
[0319]
14.例如,对于单向预测块,n等于2且m等于1。
[0320]
15.例如,对于单向预测块,n等于1且m等于1。
[0321]
iii.不同的短抽头滤波器可以用于m个mv分量。
[0322]
1.在一个示例中,m个mv分量中的k个mv分量使用s1抽头滤波器,并且m
–
k个mv分量使用s2抽头滤波器,其中,k=0,1,...,m
‑
1。例如,s1等于6且s2等于4。
[0323]
i.在一个示例中,不同的滤波器(例如,短抽头滤波器)可以仅用于一些像素。例如,它们仅用于块的边界像素。
[0324]
i.例如,它们仅用于块的n1右列或/和n2左列或/和n3顶部行或/和n4底部行。
[0325]
j.是否使用短抽头滤波器对于单向预测块和双向预测块可以不同。
[0326]
k.是否使用短抽头滤波器对于不同的色彩分量(诸如y、cb和cr)可以不同。
[0327]
i.例如,是否以及如何应用短抽头滤波器可以取决于色彩格式,诸如4:2:0、4:2:2或4:4:4。
[0328]
l.不同的短抽头滤波器可以用于不同的块。所选择的短抽头滤波器可以取决于块尺寸(或宽度、高度)、块形状、预测方向等。
[0329]
i.在一个示例中,7抽头滤波器用于4
×
16或/和16
×
4双向预测亮度块或/和单向预测亮度块的水平插值和垂直插值。
[0330]
ii.在一个示例中,7抽头滤波器用于4
×
4单向预测亮度块或/和双向预测亮度块的水平(或垂直)插值。
[0331]
iii.在一个示例中,6抽头滤波器用于4
×
8或/和8
×
4双向预测亮度块或/和单向预测亮度块的水平插值和垂直插值。
[0332]
1.可替代地,6抽头滤波器和5抽头滤波器(或5抽头滤波器和6抽头滤波器)用于分别针对4
×
8或/和8
×
4双向预测亮度块或/和单向预测亮度块的水平插值和垂直插值中。
[0333]
m.不同的短抽头滤波器可以用于不同种类的运动矢量。
[0334]
i.在一个示例中,更长的抽头长度滤波器可以用于仅在一个方向(即,水平方向或
垂直方向)上具有分数分量的运动矢量,并且更短的抽头长度滤波器可以用于在水平方向和垂直方向上均具有分数分量的运动矢量。
[0335]
ii.例如,8抽头滤波器用于仅在一个方向上具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块,并且在项目符号3.h中描述的短抽头滤波器用于在两个方向上具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块。
[0336]
iii.在一个示例中,用于仿射运动的插值滤波器可以与用于平移运动矢量的插值滤波器不同。
[0337]
iv.在一个示例中,与用于平移运动矢量的插值滤波器相比,短抽头插值滤波器可以用于仿射运动。
[0338]
n.在一个示例中,短抽头滤波器可以不被应用于子块预测,诸如仿射预测。
[0339]
i.在替代示例中,短抽头滤波器可以被应用于子块预测,诸如atmvp预测。在这种情况下,每个子块被视为编解码块,以判断是否以及如何应用短抽头滤波器。
[0340]
o.在一个示例中,是否应用短抽头滤波器和/或如何应用抽头滤波器可以取决于块大小、编解码信息等。
[0341]
i.在一个示例中,当对块启用某个模式(诸如obmc、交织仿射预测模式)时,可以应用短抽头滤波器。
[0342]
15.提出了可以提取(w n
–1–
pw)*(w n
–1–
ph)个参考像素(而不是(w n
–
1)*(h n
–
1)个参考像素)以用于w
×
h块的运动补偿,其中,pw和ph不能都等于0。
[0343]
a.此外,在一个示例中,对于剩余参考像素(未提取,但运动补偿所需的),可以应用根据所提取的参考样点的填充或推导。
[0344]
b.此外,可替代地,参考块边界(顶部边界、左边界、底部边界和右边界)处的像素被重复以生成(w n
–
1)*(h n
–
1)块,其用于最终插值。示例如图21所示,在图中,w=8,h=4,n=7,pw=2并且ph=3。
[0345]
c.所提取的参考像素可以由(x mvxint
–
n/2 offset1,y mvyint
–
n/2 offset2)标识,其中,(x,y)是当前块的左上方位置,(mvxint,mvyint)是mv的整数部分,offset1和offset2是诸如
‑
2、
‑
1、0、1、2等的整数。
[0346]
d.在一个示例中,ph为零,并且仅左边界或/和右边界被重复。
[0347]
e.在一个示例中,pw为零,并且仅顶部边界或/和底部边界被重复。
[0348]
f.在一个示例中,pw和ph都大于零,并且首先左边界或/和右边界被重复,然后顶部边界或/和底部边界被重复。
[0349]
g.在一个示例中,pw和ph都大于零,并且首先顶部边界或/和底部边界被重复,然后左边界或/和右边界被重复。
[0350]
h.在一个示例中,左边界被重复m1次,并且右边界被重复pw
–
m1次,其中,m1是整数,并且m1>=0。
[0351]
i.可替代地,如果m1(或pw
‑
m1)大于1,则代替将第一左(或右)列重复m1次,可以利用多个列,诸如可以重复m1个左列(或pw
‑
m1个右列)。
[0352]
i.在一个示例中,顶部边界被重复m2次,并且底部边界被重复ph
‑
m2次,其中,m2是整数,并且m2>=0。
[0353]
i.可替代地,如果m2(或ph
‑
m2)大于1,则代替将第一顶部(或底部)行重复m2次,可以利用多个行,诸如可以重复m2个顶部行(或ph
‑
m2个底部行)。
[0354]
j.在一个示例中,一些默认值可以用于边界填充。
[0355]
k.在一个示例中,仅当mv的水平分量和垂直分量都是分数的(即,它们指向分数像素位置而不是整数像素位置)时,才可以使用这样的边界像素重复方法。
[0356]
l.在一个示例中,这样的边界像素重复方法可以被应用于一些或所有参考块。
[0357]
i.在一个示例中,如果预测方向x(x=0或1)的mv在水平方向和垂直方向上均具有分数分量,则这样的边界像素重复方法用于预测方向x;否则,不使用该方法。
[0358]
ii.在一个示例中,如果n(n>=0)个mv分量具有分数精度,则边界像素重复方法可以被应用于n个mv分量中的m(0<=m<=n)个mv分量。
[0359]
1.n和m对于双向预测块和单向预测块可以不同。
[0360]
2.n和m对于不同的块尺寸(宽度或/和高度或/和宽度*高度)可以不同。
[0361]
3.例如,对于双向预测块,n等于4且m等于4。
[0362]
4.例如,对于双向预测块,n等于4且m等于3。
[0363]
5.例如,对于双向预测块,n等于4且m等于2。
[0364]
6.例如,对于双向预测块,n等于4且m等于1。
[0365]
7.例如,对于双向预测块,n等于3且m等于3。
[0366]
8.例如,对于双向预测块,n等于3且m等于2。
[0367]
9.例如,对于双向预测块,n等于3且m等于1。
[0368]
10.例如,对于双向预测块,n等于2且m等于2。
[0369]
11.例如,对于双向预测块,n等于2且m等于1。
[0370]
12.例如,对于双向预测块,n等于1且m等于1。
[0371]
13.例如,对于单向预测块,n等于2且m等于2。
[0372]
14.例如,对于单向预测块,n等于2且m等于1。
[0373]
15.例如,对于单向预测块,n等于1且m等于1。
[0374]
iii.不同的边界像素重复方法可以用于m个mv分量。
[0375]
m.pw和/或ph对于不同的色彩分量(诸如y、cb和cr)可以不同。
[0376]
i.例如,是否以及如何应用边界像素重复可以取决于色彩格式,诸如4:2:0、4:2:2或4:4:4。
[0377]
n.在一个示例中,pw和/或ph对于不同的块尺寸或形状可以不同。
[0378]
iv.在一个示例中,对于4
×
16或/和16
×
4双向预测块或/和单向预测块,pw和ph被设置为等于1。
[0379]
v.在一个示例中,对于4
×
4双向预测或/和单向预测块,pw和ph被分别设置为等于0和1(或1和0)。
[0380]
vi.在一个示例中,对于4
×
8或/和8
×
4双向预测块或/和单向预测块,pw和ph被设置为等于2。
[0381]
1.可替代地,对于4
×
8或/和8
×
4双向预测块或/和单向预测块,pw和ph被分别设置为等于2和3(或3和2)。
[0382]
o.在一个示例中,pw和ph对于单向预测和双向预测可以不同。
[0383]
p.pw和ph对于不同种类的运动矢量可以不同。
[0384]
vii.在一个示例中,对于仅在一个方向(即水平方向或垂直方向)上具有分数分量的运动矢量,pw和ph可能更小(甚至为零),并且对于在水平和垂直方向上均具有分数分量的运动矢量,pw和ph可能更大。
[0385]
viii.例如,对于仅在一个方向上具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块,pw和ph被设置等于0,并且项目符号4.i所描述的pw和ph用于在两个方向上均具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块。
[0386]
图21示出了在插值之前重复参考块的边界像素的示例。
[0387]
16.所提出的方法可以被应用于某些模式、块尺寸/形状、和/或某些子块尺寸。
[0388]
a.所提出的方法可以被应用于某些模式,诸如双向预测模式。
[0389]
b.所提出的方法可以被应用于某些块尺寸。
[0390]
i.在一个示例中,其仅被应用于w
×
h<=t的块,其中w和h是当前块的宽度和高度。
[0391]
ii.在一个示例中,其仅被应用于h<=t的块。
[0392]
c.所提出的方法可以被应用于某个色彩分量(诸如仅亮度分量)。
[0393]
17.上述取整运算可以被定义为:
[0394]
a.shift(x,s)被定义为
[0395]
shift(x,s)=(x off)>>s
[0396]
b.signshift(x,s)被定义为
[0397][0398]
其中off是整数,诸如0或2
s
‑1。
[0399]
c.其可以被定义为在amvr过程、仿射过程或其他过程模块中用于运动矢量取整的那些。
[0400]
18.在一个示例中,如何对mv进行取整可以取决于mv分量。
[0401]
a.例如,mv的y分量被取整为整数像素,但mv的x分量不被取整。
[0402]
b.在一个示例中,mv可以在用于亮度分量的运动补偿之前被取整为整数像素,但是当色彩格式为4:2:0时,在用于色度分量的运动补偿之前被取整为2像素像素。
[0403]
19.提出了双线性滤波器用于针对一种或多种特定情况进行插值滤波,诸如:
[0404]
a.4
×
4单向预测;
[0405]
b.4
×
8双向预测;
[0406]
c.8
×
4双向预测;
[0407]
4.4
×
16双向预测;
[0408]
e.16
×
4双向预测;
[0409]
f.8
×
8双向预测;
[0410]
g.8
×
4单向预测;
[0411]
h.4
×
8单向预测;
[0412]
20.提出了当多假设预测被应用于一个块时,与应用于正常预测模式的那些滤波
器相比,可以应用短抽头或不同插值滤波器。
[0413]
a.在一个示例中,可以使用双线性滤波器。
[0414]
b.短抽头或第二插值滤波器可以被应用于涉及多个参考块的参考图片列表,而对于仅具有一个参考块的另一参考图片,可以应用与用于正常预测模式的滤波器相同的滤波器。
[0415]
c.所提出的方法可以在某些条件下被应用,诸如某个(某些)时域层,包含块的块/片/条带/图片的量化参数在一范围内(诸如大于阈值)。
[0416]
图17是视频处理装置1700的框图。装置1700可以用于实施本文描述的一种或多种方法。装置1700可以被体现在智能手机、平板电脑、计算机,物联网(iot)接收器等中。装置1700可以包括一个或多个处理器1702、一个或多个存储器1704、以及视频处理硬件1706。(多个)处理器1702可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)1704可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件1706可以用于在硬件电路中实施本文档中描述的一些技术。
[0417]
图19是视频比特流处理的方法1900的流程图。方法1900包括:确定(1905)视频块的形状;基于视频块来确定(1910)插值顺序,该插值顺序指示执行水平插值和垂直插值的次序;以及根据视频块的插值顺序来执行水平插值和垂直插值,以重构(1915)视频块的解码表示。
[0418]
图20是视频比特流处理的方法2000的流程图。方法2000包括:确定(2005)与视频块相关的运动矢量的特性;基于运动矢量的特性来确定(2010)视频块的插值顺序,该插值顺序指示执行水平插值和垂直插值的次序;以及根据视频块的插值顺序来执行水平插值和垂直插值,以重构(2015)视频块的解码表示。
[0419]
图22是视频比特流处理的方法2200的流程图。方法2200包括:确定(2205)第一视频块的大小特性;基于对大小特性的确定来确定(2210)第一插值滤波器要被应用于第一视频块;以及使用第一插值滤波器来执行(2215)第一视频块的进一步处理。
[0420]
图23是视频比特流处理的方法2300的流程图。方法2300包括:确定(2305)第一视频块的第一特性;基于对第一特性的确定来确定(2310)第一插值滤波器要被应用于第一视频块;使用第一插值滤波器来执行(2315)第一视频块的进一步处理;确定(2320)第二视频块的第二特性;基于第二特性来确定(2325)第二插值滤波器要被应用于第一视频块,第一插值滤波器和第二插值滤波器是不同的短抽头滤波器;以及使用第二插值滤波器来执行(2330)第二视频块的进一步处理。
[0421]
参考方法1900、2000、2200和2300,在本文档的第4节中描述了执行水平插值和垂直插值的次序的一些示例及其使用。例如,如第4节所述,在视频块的不同形状下,可以优先考虑首先执行水平插值或垂直插值中的一个。在一些实施例中,在垂直插值之前执行水平插值,并且在一些实施例中,在水平插值之前执行垂直插值。
[0422]
参考方法1900、2000、2200和2300,可以在其中可以通过使用与插值顺序相关的比特流生成规则来实现比特效率的视频比特流中编码视频块,其中该插值顺序也取决于视频块的形状。
[0423]
该方法可以包括,其中,对运动矢量进行取整包括以下中的一个或多个:取整为最接近的整数像素精度mv或取整为半像素精度mv。
[0424]
该方法可以包括,其中,对mv进行取整包括以下中的一个或多个:向下取整、向上取整、向零取整或远零取整。
[0425]
该方法可以包括,其中,大小信息表示第一视频块的尺寸小于阈值,并且对mv进行取整基于大小信息表示第一视频块的尺寸小于阈值而应用于水平mv分量或垂直mv分量中的一个或两个。
[0426]
该方法可以包括,其中,大小信息表示第一视频块的宽度或高度小于阈值,并且对mv进行取整基于大小信息表示第一视频块的宽度或高度小于阈值而应用于水平mv分量或垂直mv分量中的一个或两个。
[0427]
该方法可以包括,其中,阈值对于双向预测块和单向预测块是不同的。
[0428]
该方法可以包括,其中,大小信息表示第一视频块的宽度和高度之间的比率大于第一阈值或小于第二阈值,并且其中,对mv的取整基于对大小信息的确定。
[0429]
该方法可以包括,其中,对mv进行取整还基于mv的水平分量和垂直分量都是分数的。
[0430]
该方法可以包括,其中,对mv进行取整还基于第一视频块是双向预测或单向预测的。
[0431]
该方法可以包括,其中,对mv进行取整还基于与第一视频块相关的预测方向。
[0432]
该方法可以包括,其中,对mv进行取整还基于第一视频块的色彩分量。
[0433]
该方法可以包括,其中,对mv进行取整还基于第一视频块的尺寸、第一视频块的形状或第一视频块的预测形状。
[0434]
该方法可以包括,其中,对mv进行取整被应用于子块预测。
[0435]
该方法可以包括,其中,短抽头滤波器基于mv分量具有分数精度而应用于mv分量。
[0436]
该方法可以包括,其中,短抽头滤波器基于第一视频块的大小或第一视频块的编解码信息而应用。
[0437]
该方法可以包括,其中,短抽头滤波器基于第一视频块的模式而应用。
[0438]
该方法可以包括,其中,默认值用于与第一视频块相关的边界填充。
[0439]
该方法可以包括,其中,merge模式是以下中的一个或多个:规则merge列表、三角形merge列表、仿射merge列表、或者其他非帧内或非amvp模式。
[0440]
该方法可以包括,其中,具有分数merge候选的merge候选从merge列表中排除。
[0441]
该方法可以包括,其中,对运动信息进行取整包括将与分数运动矢量相关联的merge候选取整为整数精度,并且修改后的运动信息被插入到merge列表中。
[0442]
该方法可以包括,其中,运动信息是双向预测候选。
[0443]
该方法可以包括,其中,mmvd是矢量差的平均幅度。
[0444]
该方法可以包括,其中,运动矢量处于mmvd模式。
[0445]
该方法可以包括,其中,第一视频块是要与整数像素精度相关联的mmvd编解码块,并且其中,在mmvd中使用的基本merge候选经由取整被修改为整数像素精度。
[0446]
该方法可以包括,其中,第一视频块是要与半像素精度相关联的mmvd编解码块,并且其中,在mmvd中使用的基本merge候选经由取整被修改为半像素精度。
[0447]
该方法可以包括,其中,阈值数量是允许的半像素mv分量或四分之一像素mv分量的最大数量。
[0448]
该方法可以包括,其中,阈值数量在双向预测和单向预测之间是不同的。
[0449]
该方法可以包括,其中,不允许双向预测的指示在序列参数集、图片参数集、序列头、图片头、片头、片组头、ctu行、区域或其他高级语法中被信令通知。
[0450]
该方法可以包括,其中,该方法符合比特流规则,其中该比特流规则仅允许具有特定大小的双向预测编解码块的整数像素运动矢量。
[0451]
该方法可以包括,其中,第一视频块的尺寸为:4
×
6、16
×
4、4
×
8、8
×
4或4
×
4。
[0452]
该方法可以包括,其中,对运动信息进行修改或取整包括不同地修改不同的mv分量。
[0453]
该方法可以包括,其中,第一mv的y分量被修改或取整为整数像素,并且第一mv的x分量不被修改或取整。
[0454]
该方法可以包括,其中,第一mv的亮度分量被取整为整数像素,并且第一mv的色度分量被取整为2像素像素。
[0455]
该方法可以包括,其中,第一mv与具有作为4:2:0的色彩格式的视频块相关。
[0456]
该方法可以包括,其中,双边滤波器用于4
×
4单向预测、4
×
8双向预测、8
×
4双向预测、4
×
16双向预测、16
×
4双向预测、8
×
8双向预测、8
×
4单向预测或4
×
8单向预测。
[0457]
图24是视频处理的方法2400的流程图。方法2400包括:为视频的第一块和第一块的比特流表示之间的转换确定(2402)第一块的特性;基于第一块的特性,确定(2404)具有用于第一块的插值的插值滤波器参数的滤波器;以及通过使用具有插值滤波器参数的滤波器来执行(2406)该转换。
[0458]
在一些示例中,插值滤波器参数包括滤波器抽头和/或插值滤波器系数,并且插值包括垂直插值和水平插值中的至少一个。
[0459]
在一些示例中,滤波器包括抽头少于常规插值滤波器的短抽头滤波器。
[0460]
在一些示例中,常规插值滤波器具有8个抽头。
[0461]
在一些示例中,第一块的特性包括大小参数,其中该大小参数包括第一块的宽度、高度、宽度和高度的比率、宽度*高度的尺寸中的至少一个。
[0462]
在一些示例中,用于垂直插值的滤波器与用于水平插值的滤波器在抽头数量上不同。
[0463]
在一些示例中,用于垂直插值的滤波器具有比用于水平插值的滤波器更少的抽头。
[0464]
在一些示例中,用于水平插值的滤波器具有比用于垂直插值的滤波器更少的抽头。
[0465]
在一些示例中,当第一块的尺寸小于和/或等于阈值时,短抽头滤波器用于水平插值或/和垂直插值。
[0466]
在一些示例中,当第一块的尺寸大于和/或等于阈值时,短抽头滤波器用于水平插值或/和垂直插值。
[0467]
在一些示例中,当第一块的宽度小于和/或等于阈值时,短抽头滤波器用于水平插值,或者当第一块的高度小于和/或等于阈值,短抽头滤波器用于垂直插值。
[0468]
在一些示例中,当宽度和高度之间的比率大于第一阈值或小于第二阈值时,短抽头滤波器用于垂直插值和/或水平插值。
[0469]
在一些示例中,第一块的特性包括与第一块相关联的至少一个运动矢量(mv)。
[0470]
在一些示例中,仅当mv的水平分量和垂直分量都是分数的时,短抽头滤波器才用于插值。
[0471]
在一些示例中,第一块的特性包括指示第一块是双向预测还是单向预测的预测参数。
[0472]
在一些示例中,是否使用短抽头滤波器取决于预测参数。
[0473]
在一些示例中,仅当第一块是双向预测的时,短抽头滤波器才用于插值。
[0474]
在一些示例中,第一块的特性包括指示来自列表0或列表1的预测方向和/或相关联的运动矢量(mv)。
[0475]
在一些示例中,是否使用短抽头滤波器取决于第一块的预测方向和/或mv。
[0476]
在一些示例中,在第一块是双向预测块的情况下,是否使用短抽头滤波器对于不同的预测方向是不同的。
[0477]
在一些示例中,如果预测方向x(x为0或1)的mv在水平方向和垂直方向上均具有分数分量,则短抽头滤波器用于预测方向x;否则,不使用短抽头滤波器。
[0478]
在一些示例中,如果n个mv分量具有分数精度,则短抽头滤波器用于n个mv分量中的m个mv分量,其中,n、m是整数,并且0<=m<=n。
[0479]
在一些示例中,n和m对于双向预测块和单向预测块是不同的。
[0480]
在一些示例中,对于双向预测块,n等于4且m等于4,或者n等于4且m等于3,或者n等于4且m等于2,或者n等于4且m等于1,或者n等于3且m等于3,或者n等于3且m等于2,或者n等于3且m等于1,或者n等于2且m等于2,或者n等于2且m等于1,或者n等于1且m等于1。
[0481]
在一些示例中,对于单向预测块,n等于2且m等于2,或者n等于2且m等于1,或者n等于1且m等于1。
[0482]
在一些示例中,短抽头滤波器包括具有s1抽头的第一短抽头滤波器和具有s2抽头的第二短抽头滤波器,并且其中,m个mv分量中的k个mv分量使用第一短抽头滤波器,并且m个mv分量中的(m
–
k)个mv分量使用第二短抽头滤波器,其中,k是从0到m
–
1的范围内的整数,s1和s2是整数。
[0483]
在一些示例中,n和m对于块的不同大小参数是不同的,其中,大小参数包括块的宽度或/和高度或/和宽度*高度。
[0484]
在一些示例中,第一块的特性包括第一块的像素的位置。
[0485]
在一些示例中,是否使用短抽头滤波器取决于像素的位置。
[0486]
在一些示例中,短抽头滤波器仅用于第一块的边界像素。
[0487]
在一些示例中,短抽头滤波器仅用于第一块的n1右列或/和n2左列或/和n3顶部行或/和n4底部行,n1、n2、n3、n4是整数。
[0488]
在一些示例中,第一块的特性包括第一块的色彩分量。
[0489]
在一些示例中,是否使用短抽头滤波器对于第一块的不同色彩分量是不同的。
[0490]
在一些示例中,色彩分量包括y、cb和cr。
[0491]
在一些示例中,第一块的特性包括第一块的色彩格式。
[0492]
在一些示例中,是否以及如何应用短抽头滤波器取决于第一块的色彩格式。
[0493]
在一些示例中,色彩格式包括4:2:0、4:2:2或4:4:4。
[0494]
在一些示例中,滤波器包括具有不同抽头的不同的短抽头滤波器,并且不同的短抽头滤波器的选择基于块的特性。
[0495]
在一些示例中,7抽头滤波器被选择用于4
×
16或/和16
×
4双向预测亮度块或/和单向预测亮度块的水平插值和垂直插值。
[0496]
在一些示例中,7抽头滤波器被选择用于4
×
4单向预测亮度块或/和双向预测亮度块的水平插值或垂直插值。
[0497]
在一些示例中,6抽头滤波器被选择用于4
×
8或/和8
×
4双向预测亮度块或/和单向预测亮度块的水平插值和垂直插值。
[0498]
在一些示例中,6抽头滤波器和5抽头滤波器或者5抽头滤波器和6抽头滤波器被选择用于分别针对4
×
8或/和8
×
4双向预测亮度块或/和单向预测亮度块的水平插值和垂直插值。
[0499]
在一些示例中,滤波器包括具有不同抽头的不同的短抽头滤波器,并且不同的短抽头滤波器用于不同种类的运动矢量(mv)。
[0500]
在一些示例中,来自不同的短抽头滤波器的更长的抽头长度滤波器用于仅在水平方向或垂直方向中的一个上具有分数分量的mv,并且来自不同的短抽头滤波器的更短的抽头长度滤波器用于在水平方向和垂直方向上均具有分数分量的mv。
[0501]
在一些示例中,8抽头滤波器用于仅在水平方向或垂直方向中的一个上具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块,并且短抽头滤波器用于在两个方向上均具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块。
[0502]
在一些示例中,用于仿射运动的滤波器与用于平移运动矢量的滤波器不同。
[0503]
在一些示例中,与用于平移运动矢量的滤波器相比,用于仿射运动的滤波器具有更少的抽头。
[0504]
在一些示例中,短抽头滤波器不被应用于包括仿射预测的基于子块的预测。
[0505]
在一些示例中,短抽头滤波器被应用于包括高级时域运动矢量预测(atmvp)预测的基于子块的预测。
[0506]
在一些示例中,每个子块用作编解码块,以确定是否以及如何应用短抽头滤波器。
[0507]
在一些示例中,第一块的特性包括第一块的大小参数和编解码信息,并且是否以及如何应用短抽头滤波器取决于第一块的块大小和编解码信息。
[0508]
在一些示例中,当对第一块启用包括obmc和交织仿射预测模式中的至少一个的某个模式时,短抽头滤波器被应用。
[0509]
在一些示例中,该转换从比特流表示生成视频的第一/第二块。
[0510]
在一些示例中,该转换从视频的第一/第二块生成比特流表示。
[0511]
图25是视频处理的方法2500的流程图。方法2500包括:针对视频的第一块和第一块的比特流表示之间的转换,从参考图片提取(2502)第一参考块的参考像素,其中,第一参考块小于第一块的运动补偿所需的第二参考块;用填充像素来填充(2504)第一参考块,以生成第一块的运动补偿所需的第二参考块;以及通过使用所生成的第二参考块来执行(2506)该转换。
[0512]
在一些示例中,第一块的尺寸为w*h,第一参考块的尺寸为(w n
–1–
pw)*(h n
–1–
ph),并且第二参考块的尺寸为(w n
–
1)*(h n
–
1),其中,w是第一块的宽度,h是第一块的高度,n是用于第一块的插值滤波器抽头的数量,pw和ph是整数。
[0513]
在一些示例中,用填充像素来填充第一参考块以生成第二参考块的步骤包括:重复第一参考块的一个或多个边界处的像素作为填充像素,以生成第二参考块。
[0514]
在一些示例中,边界是第一参考块的顶部边界、左边界、底部边界和右边界。
[0515]
在一些示例中,w=8,h=4,n=7,pw=2并且ph=3。
[0516]
在一些示例中,顶部边界、左边界和右边界处的像素被重复一次,并且底部边界处的像素被重复两次。
[0517]
在一些示例中,所提取的参考像素由(x mvxint
–
n/2 offset1,y mvyint
–
n/2 offset2)标识,其中,(x,y)是第一块的左上方位置,(mvxint,mvyint)是第一块的运动矢量(mv)的整数部分,并且offset1和offset2是整数。
[0518]
在一些示例中,当ph为零时,仅第一参考块的左边界或/和右边界处的像素被重复。
[0519]
在一些示例中,当pw为零时,仅第一参考块的顶部边界或/和底部边界处的像素被重复。
[0520]
在一些示例中,当pw和ph都大于零时,首先第一参考块的左边界或/和右边界处的像素被重复,然后第一参考块的顶部边界或/和底部边界处的像素被重复,或者首先第一参考块的顶部边界或/和底部边界被重复,然后第一参考块的左边界或/和右边界被重复。
[0521]
在一些示例中,第一参考块的左边界处的像素被重复m1次,并且第一参考块的右边界处的像素被重复(pw
–
m1)次,其中,m1是整数,并且m1>=0。
[0522]
在一些示例中,第一参考块的m1个左列的像素或第一参考块的(pw
‑
m1)个右列的像素被重复,其中,m1>1或pw
‑
m1>1。
[0523]
在一些示例中,第一参考块的顶部边界处的像素被重复m2次,并且第一参考块的底部边界处的像素被重复(ph
‑
m2)次,其中,m2是整数,并且m2>=0。
[0524]
在一些示例中,第一参考块的m2个顶部行的像素或第一参考块的(ph
‑
m2)个底部行的像素被重复,其中,m2>1或pw
‑
m2>1。
[0525]
在一些示例中,当第一块的mv的水平分量和垂直分量都是分数的时,第一参考块的一个或多个边界处的像素被重复作为填充像素,以生成第二参考块。
[0526]
在一些示例中,当预测方向x(x为0或1)的mv在水平方向和垂直方向上均具有分数分量时,第一参考块的一个或多个边界处的像素被重复作为填充像素,以生成第二参考块。
[0527]
在一些示例中,第一参考块是第一块的部分或所有参考块中的任何一个。
[0528]
在一些示例中,如果预测方向x(x为0或1)的mv在水平方向和垂直方向上均具有分数分量,则第一参考块的一个或多个边界处的像素被重复作为填充像素,以生成预测方向x的第二参考块;否则,像素不被重复。
[0529]
在一些示例中,如果n2个mv分量具有分数精度,则第一参考块的一个或多个边界处的像素被重复作为填充像素,以生成n2个mv分量中的m个mv分量的第二参考块,其中,n2、m是整数,并且0<=m<=n2。
[0530]
在一些示例中,n2和m对于双向预测块和单向预测块是不同的。
[0531]
在一些示例中,n2和m对于不同的块尺寸是不同的,块尺寸与块的宽度或/和高度
或/和宽度*高度相关联。
[0532]
在一些示例中,对于双向预测块,n2等于4且m等于4,或者n2等于4且m等于3,或者n2等于4且m等于2,或者n2等于4且m等于1,或者n2等于3且m等于3,或者n2等于3且m等于2,或者n2等于3且m等于1,或者n2等于2且m等于2,或者n2等于2且m等于1,或者n2等于1且m等于1。
[0533]
在一些示例中,对于单向预测块,n2等于2且m等于2,或者n2等于2且m等于1,或者n2等于1且m等于1。
[0534]
在一些示例中,第一参考块的不同边界处的像素以不同的方式被重复作为填充像素,以生成m个mv分量的第二参考块。
[0535]
在一些示例中,当像素填充不用于水平mv分量时,当使用mv提取第一参考块时,pw被设置为等于零。
[0536]
在一些示例中,当像素填充不用于垂直mv分量时,当使用mv提取第一参考块时,ph被设置为等于零。
[0537]
在一些示例中,pw和/或ph对于第一块的不同色彩分量是不同的。
[0538]
在一些示例中,色彩分量包括y、cb和cr。
[0539]
在一些示例中,pw和/或ph对于不同的块尺寸或形状是不同的。
[0540]
在一些示例中,对于4
×
16或/和16
×
4双向预测块或/和单向预测块,pw和ph被设置为等于1。
[0541]
在一些示例中,对于4
×
4双向预测块或/和单向预测块,pw和ph被分别设置为等于0和1、或者1和0。
[0542]
在一些示例中,对于4
×
8或/和8
×
4双向预测块或/和单向预测块,pw和ph被设置为等于2。
[0543]
在一些示例中,对于4
×
8或/和8
×
4双向预测块或/和单向预测块,pw和ph被分别设置为等于2和3、或者3和2。
[0544]
在一些示例中,pw和ph对于单向预测和双向预测是不同的。
[0545]
在一些示例中,pw和ph对于不同种类的运动矢量是不同的。
[0546]
在一些示例中,对于仅在水平方向或垂直方向中的一个上具有分数分量的运动矢量(mv),pw和ph被设置为更小的值或等于零,并且对于在水平方向和垂直方向上均具有分数分量的mv,pw和ph被设置为更大的值。
[0547]
在一些示例中,对于仅在水平方向或垂直方向中的一个上具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块,pw和ph被设置为等于0。
[0548]
在一些示例中,pw和ph用于在水平方向和垂直方向上均具有分数mv分量的4
×
16或/和16
×
4或/和4
×
8或/和8
×
4或/和4
×
4双向预测块或/和单向预测块。
[0549]
在一些示例中,是否以及如何重复边界处的像素取决于第一块的色彩格式。
[0550]
在一些示例中,色彩格式包括4:2:0、4:2:2或4:4:4。
[0551]
在一些示例中,用填充像素来填充第一参考块以生成第二参考块的步骤包括:填充默认值作为填充像素,以生成第二参考块。
[0552]
在一些示例中,该转换从比特流表示生成视频的第一块。
[0553]
在一些示例中,该转换从视频的第一/第二块生成比特流表示。
[0554]
图26是视频处理的方法2600的流程图。方法2600包括:为视频的第一块和第一块的比特流表示之间的转换确定(2602)第一块的特性;基于第一块的特性对第一块的运动矢量(mv)执行(2604)取整过程;以及通过使用经取整的mv来执行(2606)该转换。
[0555]
在一些示例中,对mv执行取整过程包括将mv取整为整数像素精度或半像素精度。
[0556]
在一些示例中,mv被取整为最接近的整数像素精度mv或半像素精度mv。
[0557]
在一些示例中,对mv执行取整过程包括对mv的向上取整、向下取整、向零取整或远零取整。
[0558]
在一些示例中,第一块的特性包括大小参数,其中该大小参数包括第一块的宽度、高度、宽度和高度的比率、宽度*高度的尺寸中的至少一个。
[0559]
在一些示例中,当第一块的尺寸小于和/或等于阈值l时,对mv的水平或/和垂直分量执行取整过程。
[0560]
在一些示例中,当第一块的尺寸大于和/或等于阈值l时,对mv的水平或/和垂直分量执行取整过程。
[0561]
在一些示例中,当第一块的宽度小于和/或等于第二阈值l1时,对mv的水平分量执行取整过程,或者当第一块的高度小于和/或等于第二阈值l1,对mv的垂直分量执行取整过程。
[0562]
在一些示例中,阈值l和l1对于双向预测块和单向预测块是不同的。
[0563]
在一些示例中,当宽度和高度之间的比率大于第三阈值l3或小于第四阈值l4时,对mv执行取整过程。
[0564]
在一些示例中,当mv的水平分量和垂直分量都是分数的时,对mv执行取整过程。
[0565]
在一些示例中,第一块的特性包括指示第一块是双向预测还是单向预测的预测参数。
[0566]
在一些示例中,是否对mv执行取整过程取决于预测参数。
[0567]
在一些示例中,仅当第一块是双向预测的时,才对mv执行取整过程。
[0568]
在一些示例中,第一块的特性包括指示来自列表0或列表1的预测方向和/或相关联的mv。
[0569]
在一些示例中,是否对mv执行取整过程取决于第一块的预测方向和/或mv。
[0570]
在一些示例中,在第一块是双向预测块的情况下,是否对mv执行取整过程对于不同的预测方向是不同的。
[0571]
在一些示例中,如果预测方向x(x为0或1)的mv在水平方向和垂直方向上均具有分数分量,则针对预测方向x对n个mv分量执行取整过程,n是从0到2的范围内的整数;否则,不执行取整过程。
[0572]
在一些示例中,如果n1个mv分量具有分数精度,则对n1个mv分量中的m个mv分量执行取整过程,其中,n1、m是整数,并且0<=m<=n1。
[0573]
在一些示例中,n1和m对于双向预测块和单向预测块是不同的。
[0574]
在一些示例中,对于双向预测块,
[0575]
n1等于4且m等于4,或者
[0576]
n1等于4且m等于3,或者
[0577]
n1等于4且m等于2,或者
[0578]
n1等于4且m等于1,或者
[0579]
n1等于3且m等于3,或者
[0580]
n1等于3且m等于2,或者
[0581]
n1等于3且m等于1,或者
[0582]
n1等于2且m等于2,或者
[0583]
n1等于2且m等于1,或者
[0584]
n1等于1且m等于1。
[0585]
在一些示例中,对于单向预测块,
[0586]
n1等于2且m等于2,或者
[0587]
n1等于2且m等于1,或者
[0588]
n1等于1且m等于1。
[0589]
在一些示例中,n1和m对于不同的大小参数是不同的,其中该大小参数包括第一块的宽度、高度、宽度和高度的比率、宽度*高度的尺寸中的至少一个。
[0590]
在一些示例中,m个mv分量中的k个mv分量被取整为整数像素精度,并且m
‑
k个mv分量被取整为半像素精度,其中,k是从0到m
‑
1的范围内的整数。
[0591]
在一些示例中,第一块的特性包括第一块的色彩分量。
[0592]
在一些示例中,是否对mv执行取整过程对于第一块的不同的色彩分量是不同的。
[0593]
在一些示例中,色彩分量包括y、cb和cr。
[0594]
在一些示例中,第一块的特性包括第一块的色彩格式。
[0595]
在一些示例中,是否对mv执行取整过程取决于第一块的色彩格式。
[0596]
在一些示例中,色彩格式包括4:2:0、4:2:2或4:4:4。
[0597]
在一些示例中,是否和/或如何对mv执行取整过程取决于块的特性。
[0598]
在一些示例中,4
×
16或/和16
×
4双向预测亮度块或/和单向预测亮度块的一个或多个mv分量被取整为半像素精度。
[0599]
在一些示例中,4
×
16或/和16
×
4双向预测亮度块或/和单向预测亮度块的一个或多个mv分量被取整为整数像素精度。
[0600]
在一些示例中,4
×
4单向预测亮度块或/和双向预测亮度块的一个或多个mv分量被取整为整数像素精度。
[0601]
在一些示例中,4
×
8或/和8
×
4双向预测亮度块或/和单向预测亮度块的一个或多个mv分量被取整为整数像素精度。
[0602]
在一些示例中,第一块的特性包括第一块是否是用包括仿射预测模式和基于子块的时域运动矢量预测(sbtmvp)模式的基于子块的预测方法进行编解码的。
[0603]
在一些示例中,如果第一块是以仿射预测模式进行编解码的,则对mv的取整过程不被应用。
[0604]
在一些示例中,如果第一块是以sbtmvp模式进行编解码的,则对mv的取整过程被应用,并且对第一块的每个子块执行取整过程。
[0605]
在一些示例中,基于第一块的特性对第一块的运动矢量(mv)执行取整过程包括:当第一块的大小参数满足预定规则时,确定第一块的至少一个mv是否为分数精度;以及响
应于确定第一块的至少一个mv为分数精度,对至少一个mv执行取整过程,以生成具有整数精度的经取整的mv。
[0606]
在一些示例中,第一块的比特流表示遵循取决于第一块的大小参数的规则,其中,仅整数像素mv被允许用于双向预测编解码块。
[0607]
在一些示例中,第一块的大小参数为4
×
16、16
×
4、4
×
8、8
×
4或4
×
4。
[0608]
在一些示例中,通过使用经取整的mv来执行该转换包括:通过使用经取整的mv对第一块执行运动补偿。
[0609]
图27是视频处理的方法2700的流程图。方法2700包括:为视频的第一块和第一块的比特流表示之间的转换确定(2702)第一块的特性;使用具有第一精度的mv对第一块执行(2704)运动补偿;以及为第一块存储(2706)具有第二精度的mv;其中,第一精度不同于第二精度。
[0610]
在一些示例中,第一块的特性包括大小参数,其中该大小参数包括第一块的宽度、高度、宽度和高度的比率、宽度*高度的尺寸中的至少一个。
[0611]
在一些示例中,第一精度是整数精度,并且第二精度是分数精度。
[0612]
图28是视频处理的方法2800的流程图。方法2800包括:为视频的第一块和第一块的比特流表示之间的转换确定(2802)第一块的编解码模式;如果第一块的编解码模式满足预定规则,则对第一块的运动矢量(mv)执行(2804)取整过程;以及通过使用经取整的mv来执行(2806)第一块的运动补偿。
[0613]
在一些示例中,预定规则包括:第一块是以merge模式、非帧内模式或非高级运动矢量预测(amvp)模式进行编解码的。
[0614]
图29是视频处理的方法2900的流程图。方法2900包括:为视频的第一块和第一块的比特流表示之间的转换生成(2902)第一块的第一运动矢量(mv)候选列表;在将至少一个候选添加到第一mv候选列表中之前,对至少一个候选的mv执行(2904)取整过程;以及通过使用第一mv候选列表来执行(2906)该转换。
[0615]
在一些示例中,第一块是以merge模式、非帧内模式或非高级运动矢量预测(amvp)模式进行编解码的,并且mv候选列表包括merge候选列表和非merge候选列表。
[0616]
在一些示例中,具有分数mv的候选从第一mv候选列表中排除。
[0617]
在一些示例中,至少一个候选包括:从空域块推导的候选、从时域块推导的候选、从历史运动矢量预测(hmvp)表推导的候选、或成对双向预测merge候选。
[0618]
在一些示例中,该方法还包括:提供单独的hmvp表以存储具有整数精度的mv的候选。
[0619]
在一些示例中,该方法还包括:基于第一块的特性,对mv执行取整过程或者对候选列表中的候选的mv执行取整过程。
[0620]
在一些示例中,第一块的特性包括大小参数,其中该大小参数包括第一块的宽度、高度、宽度和高度的比率、宽度*高度的尺寸中的至少一个。
[0621]
在一些示例中,大小参数包括4
×
16、16
×
4、4
×
8、8
×
4、4
×
4中的至少一个。
[0622]
在一些示例中,第一块的特性包括指示第一块是双向预测还是单向预测的预测参数,并且对mv执行取整过程包括:仅当候选是双向预测候选时,才对mv执行取整过程或者对候选列表中的候选的mv执行取整过程。
[0623]
在一些示例中,第一块是以amvp模式进行编解码的,并且候选是amvp候选。
[0624]
在一些示例中,第一块是非仿射模式。
[0625]
图30是视频处理的方法3000的流程图。方法3000包括:为视频的第一块和第一块的比特流表示之间的转换确定(3002)第一块的特性;基于第一块的特性来确定(3004)要被应用于第一块的约束参数,其中,约束参数约束第一块的分数运动矢量(mv)分量的最大数量;以及通过使用约束参数来执行(3006)该转换。
[0626]
在一些示例中,mv分量包括水平mv分量和/或垂直mv分量中的至少一个,并且分数mv分量包括半像素mv分量、四分之一像素mv分量、具有比四分之一像素更细精度的mv分量中的至少一个。
[0627]
在一些示例中,第一块的特性包括指示第一块是双向预测还是单向预测的预测参数。
[0628]
在一些示例中,约束参数对于双向预测和单向预测是不同的。
[0629]
在一些示例中,约束参数不被应用于单向预测中。
[0630]
在一些示例中,当第一块是双向预测的4
×
8、8
×
4、4
×
16或16
×
4块时,约束参数被应用。
[0631]
在一些示例中,当第一块是单向预测的4
×
8、8
×
4、4
×
16或16
×
4块时,约束参数不被应用。
[0632]
在一些示例中,当第一块是单向预测的4
×
4块或双向预测的4
×
4块时,约束参数被应用。
[0633]
在一些示例中,对于双向预测块,分数mv分量的最大数量为3、2、1或0。
[0634]
在一些示例中,对于单向预测块,分数mv分量的最大数量为1或0。
[0635]
在一些示例中,对于双向预测块,四分之一像素mv分量的最大数量为3、2、1或0。
[0636]
在一些示例中,对于单向预测块,四分之一像素mv分量的最大数量为1或0。
[0637]
在一些示例中,第一块的特性包括形状和大小参数中的至少一个,其中该大小参数包括第一块的宽度、高度、宽度和高度的比率、宽度*高度的尺寸、以及形状中的至少一个。
[0638]
在一些示例中,约束参数对于第一块的不同尺寸或形状是不同的。
[0639]
在一些示例中,第一块的特性包括指示第一块的编解码模式的模式参数。
[0640]
在一些示例中,编解码模式包括三角形模式,其中在该三角形模式中当前被划分为两个分割,其中,每个分割具有至少一个mv。
[0641]
在一些示例中,当第一块是在三角形模式下编解码的4
×
16或16
×
4块时,约束参数被应用。
[0642]
图31是视频处理的方法3100的流程图。方法3100包括:获取(3102)在块的特性满足预定规则时不允许双向预测和单向预测中的至少一个的信令通知的指示;为视频的第一块和第一块的比特流表示之间的转换确定(3104)第一块的特性;以及当第一块的特性满足预定规则时,通过使用该指示来执行(3106)该转换。
[0643]
图32是视频处理的方法3200的流程图。方法3200包括:信令通知(3202)在块的特性满足预定规则时不允许双向预测和单向预测中的至少一个的指示;为视频的第一块和第一块的比特流表示之间的转换确定(3204)第一块的特性;基于第一块的特性来执行(3206)
该转换,其中,在该转换期间,当第一块的特性满足预定规则时,双向预测和单向预测中的至少一个被禁用。
[0644]
在一些示例中,该指示是在序列参数集/图片参数集/序列头/图片头/片头/片组头/编解码树单元(ctu)行/区域/其他高级语法中信令通知的。
[0645]
在一些示例中,第一块的特性包括大小参数,其中该大小参数包括第一块的宽度、高度、宽度和高度的比率、宽度*高度的尺寸、以及形状中的至少一个。
[0646]
在一些示例中,预定规则包括:第一块具有某些块大小。
[0647]
在一些示例中,第一块的特性包括指示第一块的编解码模式的模式参数。
[0648]
在一些示例中,预定规则包括:第一块是以非仿射模式编解码的。
[0649]
在一些示例中,当单向预测和双向预测中的至少一个不允许用于第一块时,第一块的高级运动矢量分辨率(amvr)参数的信令被相应地修改。
[0650]
在一些示例中,高级运动矢量分辨率(amvr)参数的信令被修改,使得仅整数像素精度被允许用于第一块。
[0651]
在一些示例中,高级运动矢量分辨率(amvr)参数的信令被修改,使得利用不同的运动矢量(mv)精度。
[0652]
在一些示例中,第一块的块大小为4
×
16、16
×
4、4
×
8、8
×
4、4
×
4中的至少一个。
[0653]
在一些示例中,第一块的比特流表示遵循取决于第一块的大小参数的规则,其中,仅整数像素mv被允许用于双向预测编解码块。
[0654]
图33是视频处理的方法3300的流程图。方法3300包括:为视频的第一块和第一块的比特流表示之间的转换确定(3302)分数运动矢量(mv)或运动矢量差(mvd)精度是否被允许用于第一块;基于该确定,信令通知(3304)第一块的高级运动矢量分辨率(amvr)参数;以及通过使用amvr参数来执行(3306)该转换。
[0655]
图34是视频处理的方法3400的流程图。方法3400包括:为视频的第一块和第一块的比特流表示之间的转换确定(3402)分数运动矢量(mv)或运动矢量差(mvd)精度是否被允许用于第一块;基于该确定,获取(3404)第一块的高级运动矢量分辨率(amvr)参数;以及通过使用amvr参数来执行(3406)该转换。
[0656]
在一些示例中,如果分数mv或mvd精度不允许用于第一块,则指示当前块的mv/mvd精度是否是分数精度的amvr参数被跳过,并隐式地推导为假。
[0657]
5.实施例
[0658]
在以下实施例中,pw和ph被设计用于4
×
16、16
×
4、4
×
4、8
×
4和4
×
8块。
[0659]
假设参考列表x中的块的mv为mvx,并且mvx的水平分量和垂直分量分别为mvx[0]和mvx[1],并且mvx[0]和mvx[1]的整数部分分别为mvxint[0]和mvxint[1],其中,x=0或1。假设插值滤波器抽头(在运动补偿中)为n(例如,8、6、4或2),并且当前块尺寸为w
×
h,并且当前块的位置(即,左上方像素的位置)为(x,y)。行和列的索引从1开始,例如,h个行包括第1,
…
,(h
–
1)行。
[0660]
仅当mvx[0]和mvx[1]都是分数的时,才执行以下边界像素重复过程。
[0661]
5.1实施例
[0662]
对于4
×
16和16
×
4单向预测块和双向预测块,对于预测方向x,pw和ph都被设置为等于1。首先,从参考图片提取(w n
–
2)*(h n
–
2)个参考像素,其中,参考像素的左上方位置
由(mvxint[0] x
–
n/2 1,mvxint[1] y
–
n/2 1)标识。然后,通过复制第(w n
‑
2)列来生成第(w n
‑
1)列。最后,通过复制第(h n
‑
2)行来生成第(h n
‑
1)行。
[0663]
对于4
×
4单向预测块,pw和ph被分别设置为等于0和1。首先,从参考图片提取(w n
–
1)*(h n
–
2)个参考像素,其中,参考像素的左上方位置由(mvxint[0] x
–
n/2 1,mvxint[1] y
–
n/2 1)标识。然后,通过复制第(h n
‑
2)行来生成第(h n
‑
1)行。
[0664]
对于4
×
8和8
×
4单向预测块和双向预测块,pw和ph被分别设置为等于2和3。首先,从参考图片提取(w n
–
3)*(h n
–
4)个参考像素,其中,参考像素的左上方位置由(mvxint[0] x
–
n/2 2,mvxint[1] y
–
n/2 2)标识。然后,第1列被复制到其左侧以获得w n
–
2个列,此后,通过复制第(w n
‑
2)列来生成第(w n
‑
1)列。最后,第1行被复制到其上侧以获得h n
‑
3个行,此后,通过复制第(h n
‑
3)来生成第(h n
‑
2)行和第(h n
‑
1)行。
[0665]
5.2实施例
[0666]
对于4
×
16和16
×
4单向预测块和双向预测块,对于预测方向x,pw和ph都被设置为等于1。首先,从参考图片提取(w n
–
2)*(h n
–
2)个参考像素,其中,参考像素的左上方位置由(mvxint[0] x
–
n/2 2,mvxint[1] y
–
n/2 2)标识。然后,第1列被复制到其左侧以获得w n
‑
1个列。最后,第1行被复制到其上侧以获得h n
‑
1个行。
[0667]
对于4
×
4单向预测块,pw和ph被分别设置为等于0和1。首先,从参考图片提取(w n
–
1)*(h n
–
2)个参考像素,其中,参考像素的左上方位置由(mvxint[0] x
–
n/2 1,mvxint[1] y
–
n/2 2)标识。然后,第1行被复制到其上侧以获得h n
‑
1个行。
[0668]
对于4
×
8和8
×
4单向预测块和双向预测块,pw和ph被分别设置为等于2和3。首先,从参考图片提取(w n
–
3)*(h n
–
4)个参考像素,其中,参考像素的左上方位置由(mvxint[0] x
–
n/2 2,mvxint[1] y
–
n/2 2)标识。然后,第1列被复制到其左侧以获得w n
‑
2个列,此后,通过复制第(w n
‑
2)列来生成第(w n
‑
1)列。最后,第1行被复制到其上侧以获得h n
‑
3个行,此后,通过复制第(h n
‑
3)行来生成第(h n
‑
2)行和第(h n
‑
1)行。
[0669]
应当理解,当被压缩的编解码单元的形状与传统的正方形块或半正方形的矩形块明显不同时,所公开的技术可以体现在视频编码器或解码器中以提高压缩效率。例如,使用诸如4
×
32或32
×
4尺寸的单元的长的或高的编解码单元的新的编解码工具可以受益于所公开的技术。
[0670]
本文档中描述的所公开的和其它解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。所公开的和其它实施例可以实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
[0671]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一个或多个计算机上执行。
[0672]
本文中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0673]
举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或者被可操作地耦合以从一个或多个大容量存储设备接收数据或向其传送数据或两者兼有。然而,计算机不需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd
‑
rom和dvd
‑
rom盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
[0674]
虽然本专利文档包含许多细节,但这些不应被解释为对任何发明或所要求保护的范围的限制,而是对特定发明的特定实施例所特有的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,甚至最初被要求这样来保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
[0675]
类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或顺序地执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应该理解为在所有实施例中都需要这种分离。
[0676]
仅描述了几个实施方式和示例,并且可以基于本专利文档中描述和图示的内容进行其它实施、增强和变化。
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。