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

使用非紧邻临近块的帧内块复制的制作方法

2023-03-03 09:37:06 来源:中国专利 TAG:

使用非紧邻临近块的帧内块复制
1.相关申请的交叉引用
2.根据适用的《专利法》和/或《巴黎公约》的规定,本技术及时要求于2020年6月5日提交的国际专利申请号pct/cn2020/094716的优先权和利益。出于法律上的所有目的,将前述申请的全部公开以引用方式并入本文,作为本技术公开的一部分。
技术领域
3.本技术文件涉及图像和视频编解码和解码。


背景技术:

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


技术实现要素:

5.本文件公开了使用非紧邻临近块的帧内块复制(intra block copy,ibc)技术,图像和视频编码器、解码器可以使用该技术来执行图像或视频编码、解码或处理。
6.在一个示例方面,公开了一种视频处理方法。该方法包括:对于视频的当前视频块和所述视频的比特流之间的转换,将对应于所述当前视频块的一个或多个非紧邻临近块的一个或多个块矢量插入到所述当前视频块的运动候选的表中,该插入是基于规则,该规则规定检查所述一个或多个非紧邻临近块的运动候选的顺序;以及基于运动候选的所述表执行所述转换。
7.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和所述视频的比特流之间的转换,将对应于所述当前视频块的一个或多个非紧邻临近块的一个或多个块矢量插入到所述当前视频块的运动候选的表中,其中,所述插入是基于来自(i)基于历史的块矢量预测hbvp候选的表的块矢量的可用性,或者,基于来自(ii)所述当前视频块的紧邻临近块的块矢量的可用性;以及基于运动候选的所述表执行所述转换。
8.在另一个示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和所述视频的比特流之间的转换,确定一维块矢量搜索中的块矢量分量的范围是基于所述当前视频块的属性;以及基于所述确定执行所述转换。
9.在又一示例方面,公开了一种视频编码器装置。视频编码器包括处理器,处理器被配置为实现上述方法。
10.在又一示例方面,公开了一种视频解码器装置。视频解码器包括配置为实现上述方法。
11.在又一示例方面,公开了一种计算机可读介质,其上存储有代码。代码以处理器可执行代码的形式实现本文描述的方法之一。
12.本文件对这些特征和其他特征进行了描述。
附图说明
13.图1示出了帧内块复制(ibc)的示例。
14.图2示出了空域merge候选的位置的示例。
15.图3示出了非紧邻临近块的示例。
16.图4示出了非紧邻临近块的另一示例。
17.图5示出了可以实施本公开各种技术的示例性视频处理系统的框图。
18.图6是用于视频处理的示例性硬件平台的框图
19.图7是图示可以实施本公开一些实施例的示例性视频编解码系统的框图。
20.图8是图示可以实施本公开一些实施例的示例性编码器的框图。
21.图9是图示可以实施本公开一些实施例的示例性解码器的框图。
22.图10-12示出了示例性视频处理方法的流程图。
具体实施方式
23.在本文中,使用章节标题是为了易于理解,并且不将每个章节中公开的技术和实施例的应用性仅限于该章节。此外,在一些描述中使用h.266术语只是为了易于理解而不是为了限制所公开技术的范围。因此,这里描述的技术也适用于其他视频编解码器协议和设计。
24.1.简介
25.本文件中描述的技术可用于编码和解码视觉媒体数据,例如图像或视频,在本文件中通常称为视频。具体而言,与视频编解码中的块内复制有关。可以应用于现有的视频编解码标准中,例如hevc或即将完成的标准(多功能视频编解码,音频视频标准3)。也可以用于未来的视频编解码标准或视频编解码器。
26.2.初步讨论
27.视频编解码标准主要通过众所周知的itu-t和iso/iec标准的发展而演变。itu-t制定了h.261和h.263,iso/iec制定了mpeg-1和mpeg-4visual,这两个组织联合制定了h.264/mpeg-2视频和h.264/mepg-4高级视频编解码(advanced video coding,avc)和h.265/hevc标准。自h.262以来,视频编解码标准是基于混合视频编解码结构,其中时域预测加变换编解码被使用。为了探索hevc之外的未来视频编解码技术,联合视频探索团队(joint video exploration team,jvet)于2015年由vceg和mpeg联合成立。此后,jvet采用了许多新方法,并将其应用于名为联合探索模型(joint exploration model,jem)的参考软件中。2018年4月,vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间成立了联合视频专家团队(joint video expert team,jvet),以致力于与hevc相比降低50%比特率的vvc标准。
28.vvc草案的最新版本,即多功能视频编解码(草案9),可在以下网址找到:
29.http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/18_alpbach/wg11/jvet-r2001-v10.zip
30.vvc的最新参考软件,名为vtm,可在以下网址找到:
31.https://vcgit.hhi.fraunhofer.de/jvet/vvcsoftware_vtm/tags/vtm-9.0
32.2.1基于历史的merge候选推导
33.将基于历史的mvp(history-based mvp,hmvp)merge候选被添加到空域mvp和tmvp之后的merge表中。在该方法中,先前编解码块的运动信息被存储在表中,并被用作当前cu的mvp。具有多个hmvp候选的表在编码/解码过程中被保持。当遇到新的ctu行时,该表被重置(清空)。每当存在非子块帧内编解码cu时,相关联的运动信息作为新的hmvp候选被添加到该表的最后一个条目。
34.hmvp表的尺寸s被设置为6,这表明最多可向表中添加6个基于历史的mvp(hmvp)候选。当将新的运动候选被插入到表中时,使用约束的先进先出(first-in-first-out,fifo)规则,其中,首先应用冗余检查来查找表中是否存在相同的hmvp。如果找到相同的hmvp,则将其从表中删除,然后向前移动所有的hmvp候选。
35.hmvp候选可被用于merge候选表构建过程。按顺序检查表中最新的几个hmvp候选,并在候选表中将其插入到tmvp候选之后。冗余检查应用于hmvp候选到空域或时域merge候选。
36.为了减少冗余检查操作的次数,引入了以下简化:
37.1)用于merge表生成的hmpv候选的数量是否被设置为(n《=4)?m:(8-n),其中n指示merge表中现有候选的数量,m指示表中可用hmvp候选的数量。
38.2)一旦可用merge候选的总数达到最大允许merge候选减1,则终止来自hmvp的merge候选表的构建过程。
39.hmvp思想也扩展到帧内块复制(模式)中的块矢量预测。
40.2.2帧内块复制
41.帧内块复制(ibc),也称为当前图片参考,已在hevc屏幕内容编解码扩展(hevc screen content coding extensions,hevc-scc)和当前vvc测试模型(vtm-4.0)中被采用。ibc将运动补偿的概念从帧间编解码扩展到帧内编解码。如图1所示,当应用ibc时,当前块由同一图片中的参考块预测。在当前块被编解码或解码之前,参考块中的样点必须已经被重构。虽然ibc对于大多数摄像机拍摄的序列来说效率不高,但ibc展示出了对屏幕内容的显著编解码增益。原因是屏幕内容图片中有很多重复的图案,例如图标和文本字符。ibc可以有效地消除这些重复图案之间的冗余。在hevc-scc中,如果选择当前图片作为参考图片,则帧间编解码编解码单元(coding unit,cu)可以应用ibc。在这种情况下,mv被重命名为块矢量(block vector,bv),bv始终具有整数像素精度。为了与主档次hevc兼容,当前图片在解码图片缓冲区(decoded picture buffer,dpb)中被标记为“长期”参考图片。应当注意,类似地,在多视点/3d视频编解码标准中,视点间参考图片也被标记为“长期”参考图片。
42.在bv找到其参考块之后,可以通过复制参考块来生成预测。可以通过从原始信号中减去参考像素来获得残差。然后,可以像在其他编解码模式中那样应用变换和量化。
43.然而,当参考块在图片之外,或者与当前块重叠,或者在重构区域之外,或在某些约束限制的有效区域之外时,部分或全部像素值不被定义。基本上,有两种解决方案来处理这样的问题。一种是禁止这种情况,例如在比特流一致性方面。另一种是对那些未定义的像素值应用填充。以下分节详细介绍了解决方案。
44.2.3hevc屏幕内容编解码扩展中的ibc
45.在hevc的屏幕内容编解码扩展中,当块使用当前图片作为参考时,应确保整个参考块在可用的重构区域内,如以下规范文本所示:
46.变量offsetx和offsety的推导如下:
47.offsetx=(chromaarraytype==0)?0:(mvclx[0]&0x7?2:0)
ꢀꢀ
(8-104)
[0048]
offsety=(chromaarraytype==0)?0:(mvclx[1]&0x7?2:0)
ꢀꢀ
(8-105)
[0049]
比特流一致性的要求是,当参考图片是当前图片时,亮度运动矢量mvlx应遵守以下约束:
[0050]

当调用条款6.4.1中规定的z扫描顺序块的可用性的推导过程时,其中(xcurr,ycurr)设置为等于(xcb,ycb)以及临近亮度位置(xnby,ynby)设置为等于(xpb (mvlx[0]》》2)-offsetx,ypb (mvlx[1]》》2)-offsety)作为输入,输出应等于true。
[0051]

当调用条款6.4.1中规定的z扫描顺序块的可用性的推导过程时,其中(xcurr,ycurr)设置为等于(xcb,ycb)以及临近亮度位置(xnby,ynby)设置为等于(xpb (mvlx[0]》》2) npbw-1 offsetx,ypb (mvlx[1]》》2) npbh-1 offsety)作为输入,输出应等于true。
[0052]

以下一个或两个条件应为真:
[0053]

(mvlx[0]》》2) npbw xb1 offsetx的值小于或等于0。
[0054]

(mvlx[1]》》2) npbh yb1 offsety的值小于或等于0。
[0055]

以下条件应为真:
[0056]
(xpb (mvlx[0]》》2) npbsw-1 offsetx)/ctbsizey-xcurr/ctbsizey《=
[0057]
ycurr/ctbsizey-(ypb (mvlx[1]》》2) npbsh-1 offsety)/ctbsizey
ꢀꢀ
(8-106)
[0058]
因此,不会发生参考块与当前块重叠或参考块在图片之外的情况。不需要填充参考块或预测块。
[0059]
2.4vvc测试模型中的ibc
[0060]
在当前vvc测试模型(即vtm-4.0设计)中,整个参考块应与当前编解码树单元(coding tree unit,ctu)一致,且不与当前块重叠。因此,不需要填充参考块或预测块。ibc标志被编解码为当前cu的预测模式。因此,每个cu总共有三种预测模式:mode_intra、mode_inter和mode_ibc。
[0061]
2.4.1ibc merge模式
[0062]
在ibc merge模式下,指向ibc merge候选表中条目的索引是从比特流中解析的。ibc merge表的构建可以被总结为按照以下步骤次序进行:
[0063]
·
步骤1:推导空域候选。
[0064]
·
步骤2:插入基于历史的块矢量预测(history-based block vectorprediction,hbvp)候选。
[0065]
·
步骤3:插入成对平均候选。
[0066]
在空域merge候选的推导中,从位于图2所示的位置的候选中选择最多四个merge候选。推导的顺序为a1、b1、b0、a0和b2。位置b2仅在位置a1、b1,b0和a0的任何pu不可用(例如,因为b2属于另一个条带或片)或未使用ibc模式编解码时才被考虑。在添加位置a1处的候选之后,对剩余候选的插入进行冗余检查,以确保排除表中具有相同运动信息的候选,从而提高编解码效率。为了降低计算复杂性,在提到的冗余检查中并没有考虑所有可以的候选对。相反,仅考虑图2中用箭头连接的对,并且如果用于冗余检查的对应候选不具有相同的运动信息,候选只被添加到表中。
[0067]
插入空域候选后,如果ibc merge表的尺寸仍然小于最大ibc merge表的尺寸,则
可以插入来自hbvp表的ibc候选。在插入hbvp候选时需要执行冗余检查。
[0068]
最后,将成对平均候选插入ibc merge表中。
[0069]
当merge候选所标识的参考块在图片之外,或与当前块重叠,或在重构区域之外,或在某些约束所限制的有效区域之外时,merge候选被称为无效merge候选。
[0070]
需要注意的是,无效merge候选可以被插入ibc merge表中。
[0071]
2.4.2ibc amvp模式
[0072]
在ibc高级运动矢量预测(advanced motion vector prediction,amvp)模式中,指向ibc amvp表中条目的amvp索引是从比特流中解析的。ibc amvp表的构建可以被总结为按照以下步骤次序进行:
[0073]
·
步骤1:推导空域候选。
[0074]
о检查a0、a1,直到找到可用的候选。
[0075]
о检查b0、b1、b2,直到找到可用的候选。
[0076]
·
步骤2:插入hbvp候选。
[0077]
·
步骤3:插入零候选。
[0078]
插入空域候选后,如果ibc amvp表的尺寸仍然小于最大ibc amvp表的尺寸,则可以插入来自hbvp表的ibc候选。
[0079]
最后,将零候选插入ibc amvp表中。
[0080]
2.5在avs3中的ibc amvp模式
[0081]
在音频视频编解码标准3(audio video coding standard 3,avs3)中,保持hbvp表以存储先前编解码块的bv。对于hbvp表的每个条目,除了bv之外,还存储与bv相关联的块的信息,包括块的宽度和高度以及块的左上样点的坐标(相对于图片的左上样点)。同时,在条目中还存储指示遇到bv多少次的计数器。在下文中,块的左上样点的坐标也被用作块的坐标。
[0082]
在ibc amvp模式中,当为当前块构建ibc amvp(高级运动矢量预测)表时,首先,按照顺序检查hbvp表中的bv,并将其分为7类。每个类最多可以包含一个bv,如果将多个bv分类到同一个类中,则该类使用最新检查的bv。
[0083]
·
对于bv,如果与bv相关的块的尺寸(例如,宽度*高度)大于或等于64,则将其归入第0类。
[0084]
·
对于bv,如果其计数器大于或等于3,则将其归入第一类。
[0085]
·
对于bv,还按照以下顺序进行分类:
[0086]
о如果其水平坐标小于当前块的水平坐标,并且其垂直坐标小于当前块的垂直坐标,则将其归入第四类,例如左上类。
[0087]
о否则,如果其水平坐标大于或等于当前块的水平坐标加上当前块的宽度,则将其归入第五类,例如右上类。
[0088]
о否则,如果其垂直坐标大于或等于当前块的垂直坐标加上当前块的高度,则将其归入第六类,例如左下类。
[0089]
о否则,如果其垂直坐标小于当前块的垂直坐标,则将其归入第三类,例如上类。
[0090]
о否则,如果其水平坐标小于当前块的水平坐标,则将其归入第二类,例如左类。
[0091]
第二,0-6类bv被按照顺序插入amvp表。如果类不为空,则在用已经插入的amvp候
选进行修剪之后,可以将相应的bv添加到amvp表中。
[0092]
在bv预估过程中,首先确定初始bv。然后,成功执行一维垂直bv搜索、一维水平bv搜索和二维bv搜索,以找到最佳bv。每个bv搜索阶段从相同的初始bv开始。在一维垂直bv搜索中,垂直bv分量被约束为小于或等于y

h。类似地,在一维水平bv搜索中,水平bv分量被约束为小于或等于x

w。
[0093]
3.公开的技术方案解决的技术问题
[0094]
1.当构造ibc merge表或amvp表时不使用非紧邻临近块的块矢量(block vector,bv),这是低效的。
[0095]
2.在avs3中,当对hbvp表中的bv进行分类时,将与bv相关联的块尺寸(例如,块的宽度*高度)与固定值(例如,64)进行比较,以确定bv是否应被分为第0类,而不管当前块的尺寸,这可能是不合理的。
[0096]
3.在avs3中,在一维bv搜索阶段对垂直bv分量和水平bv分量应用非常严格的约束,这是低效的。
[0097]
4.示例解决方案和实施例
[0098]
以下项目应作为解释一般概念的示例。不应狭隘地解释这些项目。此外,这些项目可以以任何方式组合。
[0099]
将当前块的坐标(例如,块的左上样点的坐标)表示为(x,y),将当前块的宽度和高度分别表示为w和h。将非紧邻临近样点的坐标表示为(x

deltax,y

deltay),其中deltax和deltay是正整数、负整数或0,非紧邻临近块是覆盖样点的s1*s2(s1和s2是整数,例如,s1=s2=4)块。
[0100]
1、提出可以将非紧邻临近块的bv插入ibc merge表或/和ibc amvp表中。
[0101]
a、在一个示例中,非紧邻临近块的位置可以取决于当前块的宽度或/和高度。
[0102]
i.例如,当构建ibc merge表或/和ibc amvp表时,可以检查覆盖位置(x

m,y

m)、(x

m,y h/2)、(x

m,y h)、(x w/2,y

m)、(x w,y

m)的非紧邻临近块,其中m是整数,如图3所示。例如,m=8。
[0103]
1.或者,在构建ibc merge表或/和ibc amvp表时,可以检查覆盖位置(x

m,y

m)、(x

m,y h

1)、(x

m,y h)、(x w

1,y

m)、(x w,y

m)的非紧邻临近块。
[0104]
2.或者,可选地,在构建ibc merge表或/和ibc amvp表时,可以检查覆盖位置(x

m,y)、(x,y

m)、(x

m,y 3*h/2)、(x

m,y 2*h)、(x 3*w/2,y

m)、(x 2*w,y

m)的非紧邻临近块。
[0105]
ii.例如,在构建ibc merge表或/和ibc amvp表时,可以检查覆盖位置(x
–m–
1,y
–m–
1)、(x
–m–
1,y
–m–
1 (h m)/2)、(x
–m–
1,y h)、(x
–m–
1 (w m)/2,y
–m–
1)、(x w,y
–m–
1)的非紧邻临近块,其中m是整数,如图4所示。例如,m=8。
[0106]
1.或者,在构建ibc merge表或/和ibc amvp表时,可以检查覆盖位置(x
–m–
1,y
–m–
1)、(x
–m–
1,y h

1)、(x
–m–
1,y h)、(x w

1,y
–m–
1)、(x w,y
–m–
1)的非紧邻临近块。
[0107]
2.或者,可选地,在构建ibc merge表或/和ibc amvp表时,可以检查覆盖位置(x
–m–
1,y)、(x,y
–m–
1)、(x
–m–
1,y
–m–
1 3*(h m)/2)、(x
–m–
1,y 2*h m)、(x
–m–
1 3*(w m)/2,y
–m–
1)、(x 2*w m,y
–m–
1)的非紧邻临近块。
[0108]
b、在一个示例中,检查多少非紧邻临近块可以取决于当前块的形状或尺寸。
[0109]
c、在一个示例中,检查多少非紧邻临近块可以取决于当前块的坐标。
[0110]
2、提出了非紧邻临近块的检查顺序可以取决于临近块相对于当前块的相对位置。
[0111]
a、在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左上临近块、右上临近块,左下临近块、上临近块以及左临近块。
[0112]
i.例如,按照(x

m,y

m)、(x w,y

m)、(x

m,y h)、(x w/2,y

m)、(x

m,y h/2)的顺序检查覆盖位置(x

m,y

m)、(x

m,y h/2)、(x

m,y h)、(x w/2,y

m)、(x w,y

m)的非紧邻临近块。
[0113]
ii.例如,按照(x
–m–
1,y
–m–
1)、(x w,y
–m–
1)、(x
–m–
1,y h)、(x

m (w m)/2,y
–m–
1)、(x
–m–
1,y

m (h m)/2)的顺序检查覆盖位置(x
–m–
1,y
–m–
1)、(x
–m–
1,y

m (h m)/2)、(x
–m–
1,y h)、(x

m (w m)/2,y
–m–
1)、(x w,y
–m–
1)的非紧邻临近块。
[0114]
b、在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左临近块、上临近块、左上临近块、右上临近块和左下临近块。
[0115]
i.例如,按照(x

m,y h/2)、(x w/2,y

m)、(x

m,y

m)、(x w,y

m)、(x

m,y h)的顺序检查覆盖位置(x

m,y

m)、(x

m,y h/2)、(x

m,y h)、(x w/2,y

m)、(x w,y

m)的非紧邻临近块。
[0116]
ii.例如,按照(x
–m–
1,y

m (h m)/2)、(x

m (w m)/2,y
–m–
1)、(x
–m–
1,y
–m–
1)、(x w,y
–m–
1)、(x
–m–
1,y h)的顺序检查覆盖位置(x
–m–
1,y
–m–
1)、(x
–m–
1,y

m (h m)/2)、(x
–m–
1,y h)、(x

m (w m)/2,y
–m–
1)、(x w,y
–m–
1)的非紧邻临近块。
[0117]
c、在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左临近块、上临近块、右上临近块、左下临近块和左上临近块。
[0118]
d、在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左下临近块、左临近块、右上临近块、上临近块和左上临近块。
[0119]
e、在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左上临近块、左临近块、上临近块、右上临近块和左下临近块。
[0120]
f、在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左上临近块、上临近块,左临近块、右上临近块和左下临近块。
[0121]
g、在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的上临近块、左临近块、左上临近块,右上临近块和左下临近块。
[0122]
h、在一个示例中,非紧邻临近块可以被分为多个组,以预定义的顺序检查每个组中的候选,并且来自一个组的最多n个(n是整数,例如,n=1)候选可以被插入ibc merge表或/和ibc amvp表中。
[0123]
i.例如,非紧邻临近块可以被分为两组:{左下、左}-临近块,{右上、上、左上}-临近块。
[0124]
ii.例如,非紧邻临近块可以被分为两组:{左下、左、左上}-临近块、{右上、上}-临近块。
[0125]
i、在一个示例中,非紧邻临近块的检查顺序可以取决于从临近块到当前块的距离。
[0126]
i.例如,该距离可以被定义为从临近块的左上样点到当前块的左上样点的距离。
[0127]
1.该距离可以被定义为从临近块的左上样点到当前块的左上样点的水平距离和
垂直距离之和。
[0128]
2.该距离可以被定义为从临近块的左上样点到当前块的左上样点的水平距离平方和垂直距离平方的总和。
[0129]
ii.例如,可以按距离升序检查非紧邻临近块。
[0130]
iii.例如,可以按距离降序检查非紧邻临近块。
[0131]
j、在一个示例中,非紧邻临近块的检查顺序可以取决于当前块的尺寸或形状。
[0132]
i.例如,对于具有w>m1*h(例如,m1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更高的优先级。
[0133]
ii.例如,对于具有w>m1*h(例如,m1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更低的优先级。
[0134]
iii.例如,对于具有h>m1*w(例如,m1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更高的优先级。
[0135]
iv.例如,对于具有h>m1*w(例如,m1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更低的优先级。
[0136]
k、在一个示例中,非紧邻临近块的检查顺序可以取决于临近块的尺寸。
[0137]
i.例如,可以按尺寸(宽度*高度)升序检查非紧邻临近块。
[0138]
ii.例如,可以按尺寸(宽度*高度)降序检查非紧邻临近块。
[0139]
3、提出将非紧邻临近块的bv插入ibc merge表或/和ibc amvp表可以取决于来自hbvp表中bv的可用性或/和紧邻临近块bv的可用性。
[0140]
a、在一个示例中,在来自hbvp表中的bv之后插入非紧邻临近块的bv。
[0141]
i.或者,在来自hbvp表中的bv之前插入非紧邻临近块的bv。
[0142]
ii.或者,非紧邻临近块的bv与来自hbvp表中的bv交错相间排列。
[0143]
b、在一个示例中,在紧邻临近块的bv之后插入非紧邻临近块中的bv。
[0144]
i.或者,在紧邻临近块的bv之前插入非紧邻临近块的bv。
[0145]
ii.或者,非紧邻临近块的bv与紧邻临近块的bv交错相间排列。
[0146]
c、在一个示例中,在插入来自hbvp表中的bv或/和紧邻临近块的bv之后,当ibc merge/amvp表中没有空条目时,不插入非紧邻临近块的bv。
[0147]
d、在一个示例中,可以以与来自hbvp表中的bv类似的方式将非紧邻临近块的bv分为多个类。
[0148]
i.例如,可以根据临近块与当前块的相对位置将非紧邻临近块分类为5个类,包括左上类、右上类、左下类、上类和左类。一个或多个非紧邻临近块可以被分为一个类。
[0149]
ii.在一个示例中,当hbvp表不包含第一类别中的任何可用的bv时,可以使用属于第一类别(如果可用)的非紧邻临近块的bv代替。
[0150]
1.在一个示例中,可以按照预定义的顺序检查属于第一类别的一个或多个非紧邻临近块的bv,直到找到可用bv或者检查完所有的bv。
[0151]
2.可以按照预定义的顺序检查属于第一类别的一个或多个非紧邻临近块的bv,直到将第一类别中的bv插入ibcmerge/amvp表或检查完所有的bv。
[0152]
iii.在一个示例中,当存在既来自hbvp表又属于第一类别的非紧邻临近块的可用bv时,使用哪个bv可以取决于从与bv相关联的块到当前块的距离(类似于项目2.e中定义
的)。
[0153]
1.例如,可以按照距离降序检查bv,直到找到可用bv或者检查完所有的bv。
[0154]
2.例如,可以按照距离降序检查bv,直到将bv插入ibcmerge/amvp表或检查完所有的bv。
[0155]
3.例如,可以按照距离升序检查bv,直到找到可用bv或者检查完所有的bv。
[0156]
4.例如,可以按照距离升序检查bv,直到将bv插入ibcmerge/amvp表或检查完所有bv。
[0157]
e、在一个示例中,当hbvp表不包含第一类别中的任何可用bv(例如,第一类别可以是第0、第1、第2、第3、第4、第5或第6类中的一个)时,非紧邻临近块的bv可以用于第一类别。
[0158]
i.在一个示例中,当hbvp表不包含第一类别中的任何可用bv时,可以按照顺序检查第一组非紧邻临近块的bv,直到找到可用bv,或者检查完所有的bv。
[0159]
ii.在一个示例中,当hbvp表不包含第二类别中的任何可用bv时,可以按照顺序检查第二组非紧邻临近块的bv,直到找到可用bv。当第一类别与第二类别不同时,第一组非紧邻临近块可以与第二组非紧邻临近块不同。
[0160]
1.或者,第一组非紧邻临近块可以与第二组非紧邻临近块相同。
[0161]
iii.在一个示例中,如果非紧邻临近块属于第一非紧邻临近块组,则它可以不属于与第一非紧邻临近块组不同的第二非紧邻临近块组。
[0162]
iv.在一个示例中,当第一非紧邻临近块的bv用于第一类别时,可以不对第二类别再次检查该bv。
[0163]
1.或者,当对于第一类别检查第一非紧邻临近块的bv时,可以不对第二类别再次检查该bv。
[0164]
f、在一个示例中,在插入来自非紧邻临近块的bv之前,可以将bv与已经插入ibc merge/amvp表中的一个或多个bv进行比较。
[0165]
i.在一个示例中,如果来自非紧邻临近块的bv与已插入ibcmerge/amvp表的一个或多个bv中的一个相同,则不将其插入ibcmerge/amvp中。
[0166]
ii.在一个示例中,如果来自非紧邻临近块的bv与已插入ibcmerge/amvp表的一个或多个bv中的一个相似,则不将其插入ibcmerge/amvp中。
[0167]
iii.在一个示例中,可以对来自非紧邻临近块的一个或多个bv进行这种比较。
[0168]
iv.或者,不进行比较。
[0169]
4、提出可以根据与bv相关联的块尺寸(表示为bvblksize)和当前块的尺寸(表示为curblksize)来决定是否将来自hbvp表的bv分为第n(n是非负整数,例如,n=0)类。
[0170]
a、在一个示例中,当bvblksize大于或等于因子*curblksize时,bv可以被分类为第n类,其中因子是正数。例如,因子等于1。
[0171]
b、在一个示例中,当bvblksize大于因子*curblksize时,bv可以被分类为第n类,其中因子是正数。例如,因子等于1。
[0172]
c、在一个示例中,当bvblksize小于或等于因子*curblksize时,bv可以被分类为第n类,其中因子是正数。例如,因子等于1。
[0173]
d、在一个示例中,当bvblksize小于因子*curblksize时,bv可以被分类为第n类,其中因子是正数。例如,因子等于1。
[0174]
e、在一个示例中,当bvblksize等于因子*curblksize时,bv可以被分类为第n类,其中因子是正数。例如,因子等于1。
[0175]
f、或者,可以根据与bv相关联的块尺寸和当前块的尺寸来决定来自hbvp表中的bv是否应被分类为第n类。
[0176]
5、提出了在一维bv搜索中bv分量的范围可以仅取决于当前块的坐标。
[0177]
a、或者,此外,在一维bv搜索中bv分量的范围可以不取决于当前块的尺寸。
[0178]
b、在一个示例中,在一维垂直bv搜索中,垂直bv分量被约束为小于或等于y

n1(n1是整数,例如,n1=0、8或-8)。
[0179]
c、在一个示例中,在一维水平bv搜索中,水平bv分量被约束为小于或等于x

n2(n2是整数,例如n2=0、8或-8)。
[0180]
d、或者,在一维bv搜索中bv分量的范围可以同时取决于当前块的尺寸和坐标。
[0181]
i.例如,在一维垂直bv搜索中,垂直bv分量被约束为小于或等于y h

n1(n1是整数,例如,n1=0、8或-8)。
[0182]
ii.例如,在一维水平bv搜索中,水平bv分量被约束为小于或等于x w

n2(n2是整数,例如n2=0、8或-8)。
[0183]
图5示出了可以实施本公开各种技术的示例视频处理系统5000的框图。各种实现可以包括系统5000的一些或所有组件。系统5000可以包括用于接收视频内容的输入5002。视频内容可以以原始或未压缩格式(例如,8或10比特多分量像素值)接收,或者可以以压缩或编码格式接收。输入5002可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括例如以太网、无源光网络(passive optical network,pon)等的有线接口和例如wi-fi或蜂窝接口的无线接口。
[0184]
系统5000可以包括编解码组件5004,编解码组件5004可以实现本公开中描述的各种编解码或编码方法。编解码组件5004可以降低从输入5002到编解码组件5004的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件5004的输出可以被存储,或者经由如组件5006所表示的通信连接而被传输。在输入5002处接收到的视频的存储或通信的比特流(或编解码)表示可以由组件5008使用,组件5008用于生成发送到显示接口5010的像素值或可显示视频。从比特流表示生成用户可观看视频的过程有时称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但应当理解,编解码工具或操作在编码器处使用,并且反转编码结果的相应解码工具或操作将由解码器执行。
[0185]
外围总线接口或显示接口的示例可以包括通用串行总线(universal serial bus,usb)或高清多媒体接口(high definition multimedia interface,hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本公开中描述的技术可以实施在各种电子设备中,例如移动电话、笔记本电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
[0186]
图6是视频处理装置6000的框图。装置6000可用于实现本公开中描述的一种或多种方法。装置6000可以位于智能手机、平板电脑、计算机、物联网(internet of things,iot)接收器等中。装置6000可以包括一个或多个处理器6002、一个或多个存储器6004和视频处理硬件6006。(多个)处理器6002可以被配置为实现本公开中描述的一种或多种方法
(例如,在图10-11中)。(多个)存储器6004可用于存储用于实现本公开描述的方法和技术的数据和代码。视频处理硬件6006可以在硬件电路中使用以实现本公开中描述的一些技术。在一些实施例中,硬件6006可以部分或全部位于一个或多个处理器6002中,例如图形处理器。
[0187]
图7是说明可利用本公开的技术的示例视频编解码系统100的框图。
[0188]
如图7所示,视频编解码系统100可以包括源设备110和目标设备120。源设备110可生成编码视频数据,源设备110可被称为视频编码设备。目标设备120可解码由源设备110产生的编码视频数据,目标设备120可称为视频解码装置。源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0189]
视频源112可以包括例如视频捕获设备的源、从视频内容提供者接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或这些源的组合。视频数据可以包括一幅或多幅图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的位序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编解码表示。关联数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发射器。编码的视频数据可以通过网络130a经由i/o接口116直接发送到目标设备120。编码的视频数据也可以存储在存储介质/服务器130b上以供目标设备120访问。
[0190]
目标设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0191]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取已编码的视频数据。视频解码器124可解码已编码的视频数据。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目标设备120集成,或者可以在目标设备120的外部,目标设备120被配置为与外部显示设备接口。
[0192]
视频编码器114和视频解码器124可以根据视频压缩标准操作,例如高效视频编码(hevc)标准、多功能视频编码(vvc)标准和其他当前和/或其他标准。
[0193]
图8是说明视频编码器200的示例的框图,视频编码器200可以是图7中说明的系统100中的视频编码器114。
[0194]
视频编码器200可以配置为执行本公开的任何或所有技术。在如图8所示的示例中,视频编码器200包括多个功能组件。本公开中所描述的技术可在视频编码器200的各种组件之间共享。在一些示例中,处理器可以配置为执行本公开中所描述的技术中的任一或全部。
[0195]
视频编码器200的功能组件可以包括分割单元201、可以包括模式选择单元203的预测单元202、运动估计单元204、运动补偿单元205和帧内预测单元206、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编解码单元214。
[0196]
在其他示例中,视频编码器200可包括更多、更少或不同功能的组件。在一个示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
[0197]
此外,例如运动估计单元204和运动补偿单元205之类的一些组件可以是高度集成的,但是出于描述的目的而在图8的示例中被分开表示。
[0198]
分割单元201可将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块的尺寸。
[0199]
模式选择单元203可以例如基于误差结果来选择编解码模式(帧内或帧间)之一,并将所得帧内或帧间编解码块提供给残差生成单元207以生成残差块数据并且重构单元212重构编解码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(ciip)模式的组合,其中预测是基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
[0200]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的除了与当前视频块相关联的图片之外的图片的运动信息和解码样点来确定当前视频块的预测视频块。
[0201]
运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在i条带、p条带还是b条带中。
[0202]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以对当前视频块的参考视频块搜索表0或1的参考图片。运动估计单元204可接着产生指示表0或表1中包含参考视频块的参考图片的参考索引和指示当前视频块与参考视频块之间的空间位移的运动矢量。运动估计单元204可输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0203]
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以对当前视频块的参考视频块搜索表0中的参考图片,并且还可以对当前视频块的参考视频块搜索表1中的参考图片。运动估计单元204可接着产生指示表0和表1中的参考图片的参考索引,其包含参考视频块和指示参考视频块与当前视频块之间的空间位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0204]
在一些示例中,运动估计单元204可以输出完整的运动信息集以用于解码器的解码处理。
[0205]
在一些示例中,运动估计单元204可以不输出当前视频的完整的运动信息集。相反,运动估计单元204可参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可确定当前视频块的运动信息与临近视频块的运动信息足够相似。
[0206]
在一个示例中,运动估计单元204可在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块具有与另一视频块相同的运动信息的值。
[0207]
在另一示例中,运动估计单元204可在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(motion vector difference,mvd)。运动矢量差表示当前视频块的运动矢量与指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0208]
如上所述,视频编码器200可以预测性地信令通知运动矢量。可由视频编码器200
实施的预测信令技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令通知。
[0209]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其他视频块的解码样点生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0210]
残差产生单元207可通过从当前视频块减去(例如,由负号指示)当前视频块的(多个)预测视频块来产生当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
[0211]
在其他示例中,对于当前视频块,例如在跳过模式中,可以不存在当前视频块的残差数据,并且残差生成单元207可以不执行减法运算。
[0212]
变换处理单元208可通过对与当前视频块相关联的残差视频块应用一个或多个变换来生成当前视频块的一个或多个变换系数视频块。
[0213]
在变换处理单元208产生与当前视频块相关联的变换系数视频块之后,量化单元209可基于与当前视频块相关联的一个或多个量化参数(quantization parameter,qp)值来量化与当前视频块相关联的变换系数视频块。
[0214]
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到来自预测单元202生成的一个或多个预测视频块的对应样点,以产生存储在缓冲器213中的与当前块相关联的重构视频块。
[0215]
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
[0216]
熵编解码单元214可以从视频编码器200的其他功能组件接收数据。当熵编解码单元214接收数据时,熵编解码单元214可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
[0217]
图9是说明可以说明视频解码器300的示例的框图,视频解码器300可以是图7所示的系统100中的视频解码器114。
[0218]
视频解码器300可以配置为执行本公开的任何或所有技术。在图9所示的示例中,视频解码器300包括多个功能组件。本公开中所描述的技术可在视频解码器300的各种组件之间共享。在一些示例中,处理器可以配置为执行本公开中所描述的技术中的任一或全部。
[0219]
在如图9所示的示例,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与关于视频编码器200(图8)描述的编码通道相反的解码通道。
[0220]
熵解码单元301可以取得编码比特流。编码比特流可以包括熵编码的视频数据(例如,编码的视频数据块)。熵解码单元301可以解码熵编码的视频数据,并且根据熵解码的视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片表索引和其他运动信息的运动信息。例如,运动补偿单元302可以通过执行amvp和merge模式来确定这样的信息。
[0221]
运动补偿单元302可以产生运动补偿块,可以基于插值滤波器执行插值。用于以子像素精度的插值滤波器的标识符可以包括在语法元素中。
[0222]
运动补偿单元302可使用在视频块的编码期间由视频编码器200使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可根据接收的语法信息来确定由视频编码器200使用的插值滤波器并且使用插值滤波器来产生预测块。
[0223]
运动补偿单元302可以使用一些语法信息来确定用于对编码的视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸,分割信息描述编码视频序列的图片的每个宏块如何被分割,模式指示如何编码每个分割,每个帧间编解码块的一个或多个参考帧(和参考帧表),以及解码编码视频序列的其他信息。
[0224]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域紧邻块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化视频块系数进行逆量化,即去量化。逆变换单元303应用逆变换。
[0225]
重构单元306可将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加以形成解码块。如果需要,还可以应用去方块滤波器来滤波解码的块,以便去除块状伪影。然后将解码的视频块存储在缓冲器307中,该缓冲器为随后的运动补偿/帧内预测提供参考块并且还产生用于在显示设备上呈现的解码视频。
[0226]
图10-12示出了可以在例如图5-9所示的实施例中实现上述技术方案的示例方法。
[0227]
图10示出了视频处理的示例方法1000的流程图。方法1000包括,在操作1010,对于视频的当前视频块和视频的比特流之间的转换,将对应于当前视频块的一个或多个非紧邻临近块的一个或多个块矢量插入到当前视频块的运动候选的表中,该插入是基于规则,该规则规定检查一个或多个非紧邻临近块的运动候选的顺序。
[0228]
方法1000包括,在操作1020,基于运动候选的表执行转换。
[0229]
图11示出了视频处理的示例方法1100的流程图。方法1100包括,在操作1110,对于视频的当前视频块和视频的比特流之间的转换,将对应于当前视频块的一个或多个非紧邻临近块的一个或多个块矢量插入到当前视频块的运动候选的表中,该插入是基于来自(i)基于历史的块矢量预测(hbvp)候选的表的块矢量的可用性,或者,基于来自(ii)当前视频块的紧邻临近块的块矢量的可用性。
[0230]
方法1100包括,在操作1120,基于运动候选的表执行转换。
[0231]
图12显示了视频处理的示例方法1200的流程图。方法1200包括,在操作1210,对于视频的当前视频块和视频的比特流之间的转换,确定一维块矢量搜索中的块矢量分量的范围是基于当前视频块的属性。
[0232]
方法1200包括在操作1220,基于确定执行转换。
[0233]
以下解决方案示出了前一节中讨论的技术的示例实施例(例如,项目1-5)。
[0234]
接下来提供一些实施例优选的解决方案列表。
[0235]
1.一种视频处理方法,包括:对于视频的当前视频块和所述视频的比特流之间的转换,将对应于所述当前视频块的一个或多个非紧邻临近块的一个或多个块矢量插入到所述当前视频块的运动候选的表中,其中,所述插入是基于规则,所述规则规定检查所述一个或多个非紧邻临近块的运动候选的顺序;以及基于运动候选的所述表执行所述转换。
[0236]
2.解决方案1所述的方法,其中,所述表包括帧内块复制(ibc)merge表。
[0237]
3.解决方案1所述的方法,其中,所述表包括帧内块复制ibc高级运动矢量预测amvp表。
[0238]
4.解决方案1-3任一所述的方法,其中,所述顺序是基于所述一个或多个非紧邻临近块相对于所述当前视频块的位置,并且其中,所述位置是基于所述当前视频块的宽度w或高度h。
[0239]
5.解决方案求4所述的方法,其中,在构建所述ibc merge表时,被检查的所述一个或多个非紧邻临近块包括覆盖位置(x-m,y h/2)或(x w/2,y

m)的视频块,其中,m是整数。
[0240]
6.解决方案5所述的方法,其中,m=8。
[0241]
7.解决方案4所述的方法,其中,在构建所述表时,被检查的所述一个或多个非紧邻临近块包括覆盖位置(x

m,y

m)、(x

m,y h

1)、(x

m,y h)、(x w

1,y

m)或(x w,y

m)的视频块,其中,m是整数。
[0242]
8.解决方案4所述的方法,其中,在构建所述表时,被检查的所述一个或多个非紧邻临近块包括覆盖位置(x

m,y)、(x,y-m)、(x

m,y 3*h/2)、(x

m,y 2*h)、(x 3*w/2,y

m)或(x 2*w,y

m)的视频块,其中,m是整数。
[0243]
9.解决方案4所述的方法,其中,在构建所述表时,被检查的所述一个或多个非紧邻临近块包括覆盖位置(x
–m–
1,y
–m–
1)、(x
–m–
1,y
–m–
1 (h m)/2)、(x
–m–
1,y h)、(x
–m–
1 (w m)/2,y
–m–
1)或(x w,y
–m–
1)的视频块,其中,m是整数。
[0244]
10.解决方案1-3任一所述的方法,其中,所述一个或多个非紧邻临近块的数量是基于所述当前视频块的形状或尺寸。
[0245]
11.解决方案1-3任一所述的方法,其中,所述一个或多个非紧邻临近块的数量是基于所述当前视频块的坐标。
[0246]
12.一种视频处理方法,包括:对于视频的当前视频块和所述视频的比特流之间的转换,将对应于所述当前视频块的一个或多个非紧邻临近块的一个或多个块矢量插入到所述当前视频块的运动候选的表中,其中,所述插入是基于来自(i)基于历史的块矢量预测hbvp候选的表的块矢量的可用性,或者,基于来自(ii)所述当前视频块的紧邻临近块的块矢量的可用性;以及基于运动候选的所述表执行所述转换。
[0247]
13.解决方案12所述的方法,其中,所述表包括帧内块复制(ibc)merge表。
[0248]
14.解决方案12所述的方法,其中,所述表包括帧内块复制ibc高级运动矢量预测amvp表。
[0249]
15.解决方案12-14任一所述的方法,其中,在来自所述hbvp候选的表的块矢量之后,对应于所述一个或多个非紧邻临近块的所述一个或多个块矢量被插入到运动候选的所述表中。
[0250]
16.解决方案12-14任一所述的方法,其中,在插入来自(i)所述hbvp候选的表的块矢量,或者,来自(ii)所述当前视频块的所述紧邻临近块的块矢量之后,响应于所述运动候选所述的表不包括非空条目,不将对应于所述一个或多个非紧邻临近块的所述一个或多个块矢量插入到所述运动候选的所述表中。
[0251]
17.解决方案12-14任一所述的方法,其中,在来自所述hbvp候选的表的所述块矢量之前,对应于所述一个或多个非紧邻临近块的所述一个或多个块矢量被插入到所述运动候选的表中。
[0252]
18.解决方案12-14任一所述的方法,其中,对应于所述一个或多个非紧邻临近块的所述一个或多个块矢量与来自所述hbvp候选的表的所述块矢量交错相间以插入到所述
运动候选的表中。
[0253]
19.解决方案12-14任一所述的方法,其中,在来自所述紧邻临近块的所述块矢量之后,对应于所述一个或多个非紧邻临近块的所述一个或多个块矢量被插入到所述运动候选的表中。
[0254]
20.解决方案12-14任一所述的方法,其中,在来自所述紧邻临近块的所述块矢量之前,对应于所述一个或多个非紧邻临近块的所述一个或多个块矢量被插入到所述运动候选的表中。
[0255]
21.解决方案12-14任一所述的方法,其中,对应于所述一个或多个非紧邻临近块的所述一个或多个块矢量与来自所述紧邻临近块的所述块矢量交错相间以插入到所述运动候选的表中。
[0256]
22.解决方案12-14任一所述的方法,还包括:将对应于所述当前视频块的所述一个或多个非紧邻临近块的所述一个或多个块矢量分类成n个类别,其中,n是非负整数,并且其中,来自所述hbvp候选的表的所述块矢量已被分成所述n个类别。
[0257]
23.解决方案22所述的方法,其中,n=5,并且其中,所述分类是基于临近块与所述当前视频块的相对位置。
[0258]
24.解决方案23所述的方法,其中,所述n个类别包括左上类、右上类、左下类、上类和左类。
[0259]
25.解决方案22所述的方法,其中,所述n个类别是基于与所述块矢量相关的块尺寸(表示为bvblksize)和所述当前视频块的尺寸(表示为curblksize)。
[0260]
26.解决方案25所述的方法,其中,所述bvblksize大于或等于因子
×
curblksize,并且其中,所述因子是非负整数。
[0261]
27.解决方案26所述的方法,其中,所述因子等于1。
[0262]
28.一种视频处理方法,包括:对于视频的当前视频块和所述视频的比特流之间的转换,确定一维块矢量搜索中的块矢量分量的范围是基于所述当前视频块的属性;以及基于所述确定执行所述转换。
[0263]
29.解决方案28所述的方法,其中,所述属性包括当前视频块的坐标,并且其中,所述属性能够确定所述范围。
[0264]
30.解决方案28所述的方法,其中,所述属性与所述当前视频块的尺寸不同。
[0265]
31.解决方案28所述的方法,其中,所述块矢量bv分量是垂直bv分量,并且所述一维块矢量bv搜索是一维垂直bv搜索,其中,所述垂直bv分量被约束为小于或等于y-n1,并且其中,n1为整数。
[0266]
32.解决方案31所述的方法,其中,n1等于-8、0或8。
[0267]
33.解决方案1-32任一所述的方法,其中,所述转换包括从所述比特流中解码所述当前视频块。
[0268]
34.解决方案1-32任一所述的方法,其中,所述转换包括将所述当前视频块编码到所述比特流中。
[0269]
35.一种将表示视频的比特流存储到计算机可读记录介质中的方法,包括:根据解决方案1-32中任一项或多项所述的方法从所述视频生成所述比特流;以及将所述比特流存储在所述计算机可读记录介质中。
[0270]
36.一种视频处理装置,包括处理器,所述处理器被配置为实施解决方案1-35中任一项或多项所述的方法。
[0271]
37.一种其上存储有指令的计算机可读介质,其中,所述指令在被执行时,使处理器实施解决方案1-35中任一项或多项所述的方法。
[0272]
38.一种计算机可读介质,存储有解决方案1-35中任一项或多项生成的所述比特流。
[0273]
39.一种存储比特流的视频处理装置,其中,所述视频处理装置被配置为实施解决方案1-35中任一项或多项所述的方法。
[0274]
接下来提供一些实施例优选的另一解决方案的列表。
[0275]
p1.一种视频处理方法,包括通过根据规则添加与所述当前视频块的一个或多个非紧邻块相对应的一个或多个块矢量,为视频的视频块和所述视频的编解码表示之间的转换构建运动候选的表,并基于所述运动候选的表执行所述转换。
[0276]
p2.解决方案p1的方法,其中,所述表包括帧内块复制merge表。
[0277]
p3.解决方案p1至p2中任一项所述的方法,其中,所述表包括高级运动矢量预测表。
[0278]
p4.解决方案p1至p3中任一项所述的方法,其中,所述规则规定基于所述一个或多个非紧邻临近块相对于所述当前视频块的位置来检查所述一或多个非紧邻块的运动候选的顺序。
[0279]
p5.解决方案p4所述的方法,其中,所述顺序包括首先检查所述当前块的左上临近块,然后检查右上临近块、然后检查左下临近块、然后检查上临近块和左临近块。
[0280]
p6.解决方案p4的方法,其中,所述顺序包括:当前块的左临近块、上临近块、左上临近块、右上临近块和左下临近块。
[0281]
p7.一种视频处理方法,包括:对于视频的当前视频块和所述视频的比特流表示之间的转换,确定是否满足一个或多个非紧邻临近块的一个或多个块矢量的块矢量的条件,其中,所述条件取决于来自基于历史的块矢量预测表的块矢量的可用性或紧邻临近块的块矢量的可用性;以及根据所述确定执行所述转换。
[0282]
p8.解决方案p7所述的方法,其中,添加所述一个或多个非紧邻临近块的所述块矢量的所述条件是将所有基于历史的块矢量插入到所述表中。
[0283]
p9.一种视频处理方法,包括:对于视频的当前视频块和所述视频的编解码表示之间的转换,确定基于历史的块矢量预测(hbvp)表中的块矢量是否根据取决于与所述块矢量相关联的块尺寸或所述当前视频块的尺寸的规则被分类为第n类;以及基于所述确定执行所述转换。
[0284]
p10.解决方案p9所述的方法,其中,所述规则规定,在与所述块矢量相关联的所述块尺寸是所述当前视频块的所述尺寸的因子倍数的情况下对所述块矢量进行分类。
[0285]
p11.解决方法p10所述的方法,其中,所述因子等于1。
[0286]
p12.一种视频处理方法,包括:对于视频的当前视频块和所述视频的编解码表示之间的转换,基于规则确定一维搜索范围以确定块矢量,所述规则是基于所述当前视频块的属性;以及根据所述确定执行所述转换。
[0287]
p13.解决方案p12所述的方法,其中,所述属性包括所述当前视频块的坐标,并且
其中,所述属性能够确定所述搜索范围。
[0288]
p14.解决方案p12所述的方法,其中所述属性包括所述当前视频块的尺寸。
[0289]
p15.解决方案p1至p14中任一项所述的方法,其中,所述执行所述转换包括对所述视频进行编码以生成所述编解码表示。
[0290]
p16.解决方案p1至p14中任一项所述的方法,其中,所述执行所述转换包括解析和解码所述编解码表示以生成所述视频。
[0291]
p17.一种视频解码装置,包括处理器,所述处理器被配置为执行解决方案p1至p16中的一个或多个所述的方法。
[0292]
p18.一种视频编码设备,包括处理器,所述处理器被配置为执行解决方案p1至p16中的一个或多个所述的方法。
[0293]
p19.一种其上存储有计算机代码的计算机程序产品,当所述代码被处理器执行时,所述代码使所述处理器执行解决方案p1至p16中任一所述的方法。
[0294]
在本文件中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示转换为对应的比特流表示期间应用,反之亦然。例如,如语法所定义的,当前视频块的比特流表示(或简述为比特流)可以对应于在比特流内共位的或分布在不同位置的比特。例如,宏块可以根据变换和编解码的误差残差值进行编码,并且还可以在比特流中的标头和其他字段中使用比特。
[0295]
本文件中描述的公开和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文件中所公开的结构及其结构等效体,或其中一个或多个的组合。公开的内容和其他实施例可以实施为一个或多个计算机程序产品,即一个或多个编码在有形的且非易失的计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
[0296]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0297]
本文件中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0298]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本组件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0299]
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0300]
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0301]
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献