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

帧内块复制模式下块矢量的范围约束的制作方法

2022-04-14 05:28:15 来源:中国专利 TAG:

帧内块复制模式下块矢量的范围约束
1.相关申请的交叉引用
2.根据适用的专利法和/或巴黎公约的规定,提出本技术是为了及时要求于2019年9月5日提交的国际专利申请第pct/cn2019/104485号的优先权和权益。出于法律的所有目的,上述申请的全部公开内容通过引用并入作为本技术的公开内容的一部分。
技术领域
3.本专利文档涉及视频编解码和解码技术、装置和系统。


背景技术:

4.尽管视频压缩不断发展,数字视频仍然占据因特网和其它数字通信网络上的最大的带宽使用。随着能够接收和显示视频的所连接的用户装置的数量增加,预计数字视频使用的带宽需求将继续增长。


技术实现要素:

5.装置、系统和方法涉及数字视频处理,并且特别是帧内块复制(ibc)的通用虚拟缓冲区。描述的方法可以应用到现有的视频编解码标准(例如,高性能视频编解码(hevc))以及未来视频编解码标准或视频编码器二者。
6.在一个代表性方面,所公开的技术可以用来提供视频处理的方法。该方法包括:根据缓冲区分配规则在视频的视频图片的当前视频块与视频的编解码表示之间进行转换,其中转换使用帧内块复制(ibc)模式,该模式下基于与当前视频块相同的视频条带的样点值来导出当前视频块的预测,并且其中,样点值由块矢量确定;其中,缓冲区分配规则指定为使用ibc模式的转换而分配的虚拟缓冲区大于用于存储为确定块矢量而搜索的一部分视频图片的存储器的最小尺寸。
7.在另一个示例方面,公开一种视频处理的方法。该方法包括:对于视频的当前图片的当前视频块与视频的编解码表示之间的转换,根据位置规则从参考块确定当前视频块的预测块;以及基于确定进行转换;其中,位置规则指定参考块相对于当前图片的虚拟管线数据单元(vpdu)行或虚拟管线数据单元列的可允许位置。
8.在另一个方面,公开另一种视频处理的方法。该方法包括:对于视频的视频图片的当前视频块与视频的编解码表示之间的转换,根据规则确定用于预测当前视频块的块矢量和/或块矢量差的范围;以及基于该决定进行转换,其中,块矢量指示当前视频块与视频图像中用于对当前视频块进行预测编解码的参考区域之间的位移。
9.在再一个代表性方面,上述方法以处理器可进行的代码方式进行实施并被存储在计算机可读介质中。
10.在再一个代表性方面,公开了配置或可操作为进行上述方法的装置。装置可以包括编程以实现该方法的处理器。
11.在再一个代表性方面,视频解码器设备可以实现本文中所描述的方法。
12.公开的技术的上述或其他方面和特征将在附图、说明书和权利要求书中更为详细地描述。
附图说明
13.图1示出了当前图片参考的示例。
14.图2示出了jvet-m0407中的动态参考区域的示例。
15.图3示出了具有整形的解码流程的流程图。
16.图4示出了跨过vpdu列和vpdu行的参考块的示例。
17.图5a、5b和5c示出了视频处理的示例方法的流程图。
18.图6是实现本文档中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。
19.图7是其中可实现所公开的技术的示例视频处理系统的框图。
20.图8a至图8c是基于所公开的技术的一些实现方式的硬件平台的示例的框图。
具体实施方式
21.所公开的技术的实施例可以应用到现有视频编解码标准(例如,hevc、h.265)和未来标准以改善压缩性能。章节标题用在本文档中来改善说明书的可读性,并且不以任何方式将讨论和实施例(和/或实现方式)仅限制于相应章节。
22.2视频编解码介绍
23.由于对更高分辨率视频的需求不断增长,视频编解码方法和技术普遍存在于当代技术中。视频编码器典型地包括压缩或解压缩数字视频的电子电路或软件,并且继续地改进以提供更高编解码效率。视频编码器将未压缩视频转换成压缩格式或反之亦然。在视频质量、用于表示视频的(由比特率确定的)数据量、编码和解码算法的复杂度、对数据丢失和错误的灵敏度、易于编辑、随机存取、与端到端延迟(等待时间)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高性能视频编解码(hevc)标准(还称为h.265或mpeg-h第2部分)、待制定的通用视频编解码标准、或者其他当前和/或未来视频编解码标准。
24.视频编解码标准主要是通过众所周知的itu-t和iso/iec标准的发展而得以演进。itu-t制作了h.261和h.263标准,iso/iec制作了mpeg-1和mpeg-4 visual标准,并且两个组织联合制作了h.262/mpeg-2视频标准和h.264/mpeg-4高级视频编解码(advanced video coding,avc)标准和h.265/hevc标准。从h.262开始,视频编解码标准基于混合视频编解码结构,其中利用时域预测加变换编解码。为了探索hevc之外的未来视频编解码技术,由vceg和mpeg于2015年联合成立联合视频探索团队(jvet)。从那时起,jvet采用了许多新方法并将其纳入名为联合探索模型(jem)的参考软件[3][4]。2018年4月,vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间的联合视频专家团队(jvet)成立,致力于vvc标准,目标是与hevc相比降低50%比特率。
[0025]
2.1 hevc/h.265中的帧间预测
[0026]
每个帧间预测的pu具有对于一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc来信令通知对两个参考图片列表中
一个的使用。运动矢量可以明确地被编解码为相对于预测符的增量。
[0027]
当使用跳过(skip)模式来编解码cu时,一个pu与该cu相关联,并且不存在显著的残差系数,不存在编解码的运动矢量增量或参考图片索引。指定merge模式,由此从邻域pu(包括空域和时域候选)中获得当前pu的运动参数。merge模式可以应用于任何帧间预测的pu,而不仅适用于跳过模式。merge模式的替代方案是运动参数的显式传输,其中,每个pu显式地信令通知:运动矢量(更确切地,相比于运动矢量预测符的运动矢量差(mvd))、每个参考图片列表的对应参考图片索引、以及参考图片列表使用。这样的模式在本公开中被命名为高级运动矢量预测(amvp)。
[0028]
当信令通知指示要使用两个参考图片列表中的一者时,pu从样点的一个块产生。这被称为“单向预测”。单向预测可用于p条带和b条带的二者。
[0029]
当信令通知指示要使用参考图片列表中的二者时,pu从样点的两个块产生。这被称为“双向预测”。双向预测仅可用于b条带。
[0030]
以下文本提供hevc中指定的帧间预测模式。将从merge模式开始描述。
[0031]
2.2当前图片参考
[0032]
hevc屏幕内容编解码扩展(hevc-scc)和当前vvc测试模型(vtm-3.0)已经采用了当前图片参考(cpr),或曾经被命名为帧内块复制(ibc)。ibc将运动补偿的构思从帧间编解码扩展到了帧内编解码。如图1所展示,当应用cpr时,当前块由同一图片中的参考块预测。在编解码或解码当前块之前,必须已经重建了参考块中的样点。尽管cpr对于大多数相机捕获的序列效率不高,但是它示出了屏幕内容的显著编解码增益。原因在于屏幕内容图片中有很多重复的图案,诸如图标和文本字符。cpr可以有效地移除这些重复图案之间的冗余。在hevc-scc中,如果帧间编解码的编解码单元(cu)选择当前图片作为其参考图片,则帧间编解码的编解码单元(cu)可以应用cpr。在这种情况下,mv重命名为块矢量(bv),并且bv始终具有整数像素精度。为了与主配置文件(profile)hevc兼容,当前图片在解码图片缓冲区(dpb)中被标记为“长期”参考图片。应当注意,类似地,在多视图/3d视频编解码标准中,视图间参考图片也被标记为“长期”参考图片。
[0033]
在bv找到其参考块之后,可以通过复制参考块来生成预测。可以通过从原始信号中减去参考像素来得到残差。然后可以如其他编解码模式下一样应用变换和量化。
[0034]
然而,当参考块在图片的外部,或与当前块重叠,或在重建区域的外部,或在受一些约束限制的有效区域的外部时,没有定义部分或所有像素值。基本上,存在处理这样的问题的两种解决方案。一种是例如在比特流一致性中不允许这样的情况。另一种是对那些未定义的像素值应用填充。以下子章节详细描述了解决方案。
[0035]
2.3 hevc屏幕内容编解码扩展中的cpr
[0036]
在hevc的屏幕内容编解码扩展中,当块使用当前图片作为参考时,应保证整个参考块在可用的重建区域内,如以下规范文本所指示:
[0037]
变量offsetx和offsety导出如下:
[0038]
offsetx=(chromaarraytype==0)?0:(mvclx[0]&0x7?2:0)(8-104)
[0039]
offsety=(chromaarraytype==0)?0:(mvclx[1]&0x7?2:0)(8-105)
[0040]
比特流一致性的要求是,当参考图片为当前图片时,亮度运动矢量mvlx应遵守以下约束:
[0041]-当调用节6.4.1中指定的z扫描顺序块可用性的导出过程时,将(xcurr,ycurr)设置为等于(xcb,ycb)并将相邻的亮度位置(xnby,ynby)设置为等于(xpb (mvlx[0]>>2)-offsetx,ypb (mvlx[1]>>2)-offsety)作为输入,输出应等于true。
[0042]-当调用节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。
[0043]-以下条件中的一者或二者应为真:
[0044]-(mvlx[0]>>2) npbw xb1 offsetx的值小于或等于0。
[0045]-(mvlx[1]>>2) npbh yb1 offsety的值小于或等于0。
[0046]-以下条件应为真:
[0047]
(xpb (mvlx[0]>>2) npbsw-1 offsetx)/ctbsizey-xcb/ctbsizey<=ycb/ctbsizey-(ypb (mvlx[1]>>2) npbsh-1 offsety)/ctbsizey
ꢀꢀ
(8-106)
[0048]
因此,将不会发生参考块与当前块重叠或参考块在图片的外部的情况。无需填充参考或预测块。
[0049]
2.4 vvc测试模型中的cpr/ibc
[0050]
在当前的vvc测试模型(即vtm-3.0设计)中,整个参考块应使用当前的编解码树单元(ctu),并且不与当前块重叠。因此,不需要填充参考或预测块。
[0051]
当启用双树时,分割结构从亮度ctu到色度ctu可以不同。因此,对于4∶2∶0颜色格式,一个色度块(例如,cu)可以对应于已被划分为多个亮度cu的一个共位的亮度区域。
[0052]
仅当以下条件为真时,色度块才可以仅使用cpr模式编解码:
[0053]
(1)共位亮度块内的每个亮度cu应使用cpr模式编解码
[0054]
(2)首先将亮度4
×
4块的bv中的每一个转换为色度块的bv,并且色度块的bv是有效的bv。
[0055]
如果两个条件中的任何一个为假,则色度块不应使用cpr模式编解码。
[0056]
注意到,“有效bv

的定义具有以下约束:
[0057]
(1)由bv标识的参考块内的所有样点应在限制的搜索范围内(例如,应在当前vvc设计中的同一ctu内)。
[0058]
(2)由bv标识的参考块内的所有样点均已经重建。
[0059]
2.5 jvet-l0297/jvet-m0407/jvet-m0408中的cpr/ibc
[0060]
在vtm3.0中,cpr/ibc的参考区域仅限制于当前ctu,最大为128x128。jvet-l0297/jvet-m0407/jvet-m0408提出了以下方法:动态改变参考区域以将存储器重新用于存储cpr/ibc的参考样点,使得cpr/ibc块可以具有更多参考候选,而cpr/ibc的参考缓冲区可以从一个ctu保留或减少。
[0061]
图2示出了方法,其中块为64x64,并且ctu包含4个64x64块。当编解码64x64块时,可以将先前的3个64x64块用作参考。这样,解码器仅需要存储4个64x64块来支持cpr/ibc。vtm4.0中采用了上述方法。
[0062]
假设当前亮度cu相对于图片的左上角的位置是(x,y)并且块矢量是(bvx,bvy)。在当前设计中,可以通过以下判断bv是否有效:亮度位置((x bvx)>>6<<6 (1<<7),(y bvy)>>6<<6)尚未重建,并且((x bvx)>>6<<6 (1<<7),(y bvy)>>6<<6)不
等于(x>>6<<6,y>>6<<6)。
[0063]
2.6 jvet-o1170中提议的虚拟ibc缓冲区
[0064]
引入虚拟缓冲区构思以帮助描述用于ibc预测模式的参考区域。对于ctu尺寸为ctbsize,我们表示wibcbuf=128*128/ctbsize,并且限定虚拟ibc缓冲区ibcbuf,其中宽度为wibcbuf,和高度为ctbsize。因此,
[0065]-对于ctu尺寸为128x128,ibcbuf的尺寸也是128x128。
[0066]-对于ctu尺寸为64x64,ibcbuf的尺寸为256x64。
[0067]-对于ctu尺寸为32x32,ibcbuf的尺寸为512x32。
[0068]
注意到,vpdu的宽度和高度均为min(ctbsize,64)。我们表示wv=min(ctbsize,64)。
[0069]
虚拟ibc缓冲区ibcbuf维持如下。
[0070]
(1)在开始解码每个ctu行时,用值(-1)刷新整个ibcbuf。
[0071]
(2)在开始解码相对于图片的左上角的vpdu(xvpdu,yvpdu)时,设置ibcbuf[x][y]=-1,其中x=xvpdu%wibcbuf,...,xvpdu%wibcbuf wv-1;y=yvpdu%ctbsize,...,yvpdu%ctbsize wv-1。
[0072]
(3)解码后,cu包含相对于图片的左上方的(x,y),设置ibcbuf[x%wibcbuf][y%ctbsize]=recsample[x][y]
[0073]
因此,比特流约束可以简单地描述为
[0074]
比特流一致性的要求是,对于bv,ibcbuf[(x bv[0])%wibcbuf][(y bv[1])%ctbsize]不应等于-1。
[0075]
在ibc参考缓冲区的构思的情况下,它还通过避免参考帧间插值和运动补偿过程(包括子块过程)来简化解码过程中的文本。
[0076]
2.7 vpdu
[0077]
虚拟管线数据单元(vpdu)在图片中限定为非重叠的单元。在硬件解码器中,连续vpdu同时由多个管线阶段处理。在大多数管线阶段中,vpdu尺寸大致与缓冲区尺寸成比例,因此保持vpdu的尺寸较小是重要的。在大多数硬件解码器中,可以将vpdu尺寸设置为最大变换块(tb)尺寸。但是,在vvc中,三叉树(tt)和二叉树(bt)分割可能导致vpdu尺寸增加。
[0078]
为了将vpdu尺寸保持为64x64亮度样点,在vtm5中应用了以下规范性分割限制(具有语法信令通知修改):
[0079]-对于宽度或高度等于128或者宽度和高度二者都等于128的cu,不允许tt划分。
[0080]-对于n≤64(即宽度等于128且高度小于128)的128xn cu,不允许水平bt。
[0081]-对于n≤64(即,高度等于128且宽度小于128)的nx128 cu,不允许垂直bt。
[0082]
在vvc中,通常约定vpdu的宽度和高度为亮度样点中的min(64,ctbsizey)。因此,对于ctb/ctu尺寸为64x64、128x128或256x256,vpdu尺寸为64x64。对于ctb/ctu尺寸为32x32,vpdu尺寸为32x32。
[0083]
2.8用于帧内块复制的缓冲区管理和块矢量编解码
[0084]
各种ibc缓冲区功能及其对应管理的细节被描述在pct/cn2019/093552中,将其作为参考并入。
[0085]
2.9 jvet-m0427中的环路整形(ilr)
[0086]
环路整形(in-loop reshaping,ilr)的基本思想是将原始(在第一域中)信号(预测/重建信号)转换为第二域(整形域)。
[0087]
环路亮度整形器实现为一对查找表(lut),但是两个lut中仅一个需要被信令通知,因为另一个可以从信令通知的lut中计算出。每个lut是一维的10比特、1024条目的映射表(1d-lut)。一个lut是前向lutfwdlut,其将输入的亮度代码值yi映射到更改的值yr:yr=fwdlut[yi]。另一个lut是反向lut invlut,其将更改的编解码值yr映射到映射到映射到(表示的重建值为yi)。
[0088]
2.9.1 pwl模型
[0089]
概念上,分段线性(pwl)通过以下方式来实现:
[0090]
令x1、x2为两个输入枢转点(pivot point),并且y1、y2为它们对应的整体输出枢转点。用于在x1和x2之间的任何输入值x的输出值y可以通过以下等式插值:
[0091]
y=((y2-y1)/(x2-x1))*(x-x1) y1
[0092]
在固定点实现方式中,等式可以重写为:
[0093]
y=((m*x 2fp_prec-1)>>fp_prec) c
[0094]
在此,m是标量,c是偏移量,fp_prec是用于指定精度的恒定值。
[0095]
注意到,在ce-12软件中,pwl模型用于预先计算1024个条目的fwdlut和invlut映射表;但是pwl模型还允许实现在不预先计算lut的情况下即时(on-the-fly)计算相同的映射值。
[0096]
2.9.2测试ce12-2
[0097]
2.9.2.1亮度整形
[0098]
环路亮度整形的测试2(即提议中的ce12-2)提供了较低复杂度的管线,其还消除了帧间条带重建中逐块的帧内预测的解码等待时间。对于帧间和帧内条带二者,都在整形域中进行帧内预测。
[0099]
无论条带类型如何,总是在整形域中进行帧内预测。通过这样的布置,可以在完成先前tu重建之后立即开始帧内预测。这样的布置还可以为帧内模式提供统一过程,而无需取决于条带。图3示出了基于模式的ce12-2解码过程的框图。
[0100]
ce12-2还测试了亮度和色度残差缩放的16段的分段线性(pwl)模型,而不是ce12-1的32段的pwl模型。
[0101]
在ce12-2中使用环路亮度整形器进行帧间条带重建(较浅的阴影块表示整形域中的信号:亮度残差;预测的帧内亮度;以及重建的帧内亮度)
[0102]
2.9.2.2亮度相关的色度残差缩放
[0103]
亮度相关的色度残差缩放是使用固定点整数运算实现的乘法过程。色度残差缩放补偿亮度信号与色度信号的相互作用。色度残差缩放适用于tu级别。更具体地,如下适用:
[0104]-对于帧内,将重建的亮度取平均。
[0105]-对于帧间,将预测亮度取平均。
[0106]
平均值用于标识pwl模型中的索引。该索引标识缩放因子cscaleinv。色度残差乘以该数目。
[0107]
注意到,色度缩放因子是从前向映射的预测亮度值而不是重建亮度值计算出的。
[0108]
2.9.2.3 ilr边信息的信号通知
[0109]
(当前)在片组头(类似于alf)中发送参数。据说,这些占用40-100比特。
[0110]
以下规范基于jvet-l1001的版本9。添加的语法以“

为前缀。
[0111]
7.3.2.1序列参数集rbsp语法
[0112][0113][0114]
7.3.3.1一般片组头语法
[0115][0116]
添加新的语法表的片组整形器模型:
[0117][0118]
在一般字列参数集rbsp语义中,添加以下语义:
[0119]
sps_reshaper_enabled_flag等于1指定整形器用在编解码视频序列(cvs)中。
sps_reshaper_enabled_flag等于0表示整形器没有用在cvs中。
[0120]
在片组头语法中,添加以下语义
[0121]
tile_group_reshaper_model_present_flag等于1指定tile_group_reshaper_model()存在于片组头中。tile_group_reshaper_model_present_flag等于0指定tile_group_reshaper_model()不存在于片组头中。当不存在tile_group_reshaper_model_present_flag时,则将其推断为等于0。
[0122]
tile_group_reshaper_enabled_flag等于1指定为当前片组启用整形器。tile_group_reshaper_enabled_flag等于0指定为当前片组没有启用整形器。当不存在tile_group_reshaper_enable_flag时,则将其推断为等于0。
[0123]
tile_group_reshaper_chroma_residual_scale_flag等于1指定为当前片组启用色度残差缩放。tile_group_reshaper_chroma_residual_scale_flag等于0指定为当前片组没有启用色度残差缩放。当不存在tile_group_reshaper_chromaresidual_scale_flag时,则将其推断为等于0。
[0124]
添加tile_group_reshaper_model()语法
[0125]
reshape_model_min_bin_idx指定在整形器构建过程中要使用的最小二进制数(bin)(或段)索引。reshape_model_min_bin_idx的值应在0到maxbinidx的范围中(含端值)。maxbinidx的值应等于15。
[0126]
reshape_model_delta_max_bin_idx指定最大允许的二进制数(或段)索引maxbinidx减去在整形器构建过程中要使用的最大二进制数索引。reshape_model_max_bin_idx的值设置为等于maxbinidx-reshape_model_delta_max_bin_idx。
[0127]
reshaper_model_bin_delta_abs_cw_prec_minus1加1指定用于表示语法reshape_model_bin_delta_abs_cw[i]的比特数目。
[0128]
reshape_model_bin_delta_abs_cw[i]指定第i个二进制数的绝对差量码字值。
[0129]
reshaper_model_bin_delta_sign_cw_flag[i]指定reshape_model_bin_delta_abs_cw[i]的符号,如下:
[0130]-如果reshape_model_bin_delta_sign_cw_flag[i]等于0,则对应的变量rspdeltacw[i]为正值。
[0131]-否则(reshape_model_bin_delta_sign_cw_flag[i]不等于0),对应的变量rspdeltacw[i]为负值。
[0132]
当不存在reshape_model_bin_delta_sign_cw_flag[i]时,则将其推断为等于0。
[0133]
变量rspdeltacw[i]=(12*reshape_model_bin_delta_sign_cw[i])*reshape_model_bin_delta_abs_cw[i];
[0134]
变量rspcw[i]按如下步骤导出:
[0135]
变量orgcw设置为等于(1<<bitdepthy)/(maxbinidx 1)。
[0136]-如果reshaper_model_min_bin_idx<=i<=reshaper_model_max_bin_idx
[0137]
则rspcw[i]=orgcw rspdeltacw[i]。
[0138]-否则,rspcw[i]=0。
[0139]
如果bitdepthy的值等于10,则rspcw[i]的值应在32到2*orgcw-1的范围中。
[0140]
变量inputpivot[i]其中i的范围在0到maxbinidx 1内(含端值)导出如下:
[0141]
inputpivot[i]=i*orgcw
[0142]
变量reshapepivot[i],其中i的范围在0到maxbinidx 1内(含端值),变量scalecoef[i]和invscalecoeff[i],其中i的范围在0到maxbinidx内(含端值),导出如下:
[0143][0144]
变量chromascalecoef[i],其中i的范围在0到maxbinidx内(含端值),导出如下:
[0145]
chromaresidualscalelut[64]={16384,16384,16384,16384,16384,16384,16384,8192,8192,8192,8192,5461,5461,5461,5461,4096,4096,4096,4096,3277,3277,3277,3277,2731,2731,2731,2731,2341,2341,2341,2048,2048,2048,1820,1820,1820,1638,1638,1638,1638,1489,1489,1489,1489,1365,1365,1365,1365,1260,1260,1260,1260,1170,1170,1170,1170,1092,1092,1092,1092,1024,1024,1024,1024};
[0146]
shiftc=11
[0147]
如果(rspcw[i]==0)
[0148]
则chromascalecoef[i]=(1<<shiftc)
[0149]-否则(rspcw[i]!=0),则chromascalecoef[i]=chromaresidualscalelut[rspcw[i]>>1]
[0150]
2.9.2.4 ilr的使用
[0151]
在编码器侧,首先将每个图片(或片组)转换为整形域。并且所有编解码过程都在整形域中进行。对于帧内预测,邻域块是在整形域中;对于帧间预测,首先将参考块(从解码图片缓冲区的原始域生成的)转换为整形域。然后生成残差并将其编解码到比特流。
[0152]
在整个图片(或片组)完成编码/解码之后,将整形域中的样点转换为原始域,然后应用去块(deblocking)滤波器和其他滤波器。
[0153]
在以下情况下,对预测信号的前向整形被禁用:
[0154]

当前块是帧内编解码的

当前块被编解码为cpr(当前图片参考,又称帧内块复制,ibc)
[0155]

当前块被编解码为组合帧间帧内模式(ciip),并且为帧内预测块禁用前向整形
[0156]
3现有实现方式的缺点
[0157]
在ibc虚拟缓冲区的当前设计中,存在一些问题。
[0158]
(1)没有定义当ctu尺寸大于128x128时如何维持ibc虚拟缓冲区。
[0159]
(2)虚拟缓冲区尺寸与参考样点尺寸之间的关系不清楚。
[0160]
4 ibc的一般虚拟缓冲区的示例方法
[0161]
由vsize表示vpdu的宽度和高度,例如vsize=min(64,ctbsizey),其中ctbsizey是亮度ctb/ctu宽度/高度。
[0162]
本公开的技术的实施例克服了现有实现方式的缺点,从而提供具有更高编解码效率的视频编解码。基于公开的技术的用于ibc的一般虚拟缓冲区的方法可以提高现有视频编解码标准和未来视频编解码标准二者,并且在下文中被阐明为各种实现方式所描述的示例。下文提供的本公开的技术的示例解释了总体构思,并且不意味着解释为限制。在示例中,除非明显相反地指示,否则可以组合这些示例中描述的各种特征。
[0163]
1.ibc虚拟缓冲区的尺寸(例如,其用于决定块矢量或映射样点的有效性)可以取决于vpdu尺寸、ctb/ctu尺寸。
[0164]
a.在一个示例中,虚拟缓冲区的宽度乘以高度可以是固定的,但是,虚拟缓冲区的宽度和/或高度可以取决于vpdu尺寸和/或ctb/ctu尺寸。
[0165]
b.在一个示例中,虚拟缓冲区的高度可以等于ctb/ctu的高度。
[0166]
i.此外,替代地,虚拟缓冲区的宽度可以被设置为(ibc虚拟缓冲区尺寸/ctb的高度)。
[0167]
c.在一个示例中,虚拟缓冲区的宽度可以等于ctb/ctu的宽度。
[0168]
d.在一个示例中,虚拟缓冲区的宽度可以是vpdu宽度的一倍或数倍。
[0169]
e.在一个示例中,虚拟缓冲区的高度可以是vpdu高度的一倍或数倍。
[0170]
2.提议分配与ibc bv搜索区域所需的存储器尺寸相比更大的ibc虚拟缓冲区尺寸。
[0171]
a.在一个示例中,ibc虚拟缓冲区尺寸可以大于用于ibc的vpdu存储器的总尺寸。
[0172]
i.在一个示例中,可以将一个以上ctu分配给ibc虚拟缓冲区。
[0173]
b.在一个示例中,ibc虚拟缓冲区尺寸的宽度可以是(128*128/ctbsizey ctbsizey)。
[0174]
c.在一个示例中,ibc虚拟缓冲区尺寸的宽度可以是(128*128/ctbsizey ctbsizey),并且ibc虚拟缓冲区尺寸的高度可以是ctbsizey。
[0175]
3.可以将用于ibc块的参考块限制为完全在某个vpdu行或vpdu列内
[0176]
a.在一个示例中,可以不允许参考块跨过不同的vpdu行。
[0177]
b.在一个示例中,可以不允许参考块跨过不同的vpdu列。
[0178]
c.在一个示例中,上述vpdu行或列可以与图片有关。
[0179]
d.在一个示例中,上述vpdu行或列可以与ibc虚拟缓冲区有关。
[0180]
e.替代地,此外,当由bv指向的参考块跨过两个或更多个ctu/ctb时,可以调用上述方法。
[0181]
4.用于ibc块的参考块可以跨过多个vpdu/跨过不同的vpdu行/vpdu列。但是,可能需要附加操作才能参考块中填充一些预测值。
[0182]
a.在一个示例中,可以利用一些默认值来填充一些预测值。
[0183]
5.范围约束可以应用于在ibc模式下使用的块矢量(bv)和/或块矢量差(bvd)。
[0184]
a.在一个示例中,bv/bvd的允许范围可以取决于当前ibc编解码块的位置,诸如相对于覆盖当前块的ctu/ctb的坐标。
[0185]
b.在一个示例中,块矢量可被限制在[-2m,2
m-1]的范围内
[0186]
c.在一个示例中,可以将精度转换之后的块矢量差限制在[-2n,2
n-1]的范围内
[0187]
d.在一个示例中,可以将精度转换之后的块矢量差限制在[-2n 1,2
n-1]的范围内
[0188]
e.在一个示例中,在比特流中信令通知的块矢量差可以被限制在[-2n,2
n-1]的范围内
[0189]
f.在一个示例中,在比特流中信令通知的块矢量差可以被限制在[-2n 1,2
n-1]的范围内
[0190]
g.在一个示例中,m设置为18或17或15。
[0191]
h.在一个示例中,n设置为17或16或14。
[0192]
i.在一个示例中,m和/或n可以取决于bv/运动矢量存储的精度和/或与块矢量差相关联的精度。
[0193]
j.在一个示例中,块矢量可以被约束在与用于帧间预测模式的运动矢量相同的范围内。
[0194]
k.在一个示例中,块矢量差可以被约束在与用于帧间预测模式的运动矢量矢量相同的范围内。
[0195]
l.在一个示例中,一致性比特流应满足:满足上述子项目符号。
[0196]
i.替代地,在将bv/bvd用于编码/解码块之前,可以将bv/bvd的剪切处理应用于解码的bv/bvd。
[0197]
6.映射到ibc虚拟缓冲区的可用样点的数目可以被限制。
[0198]
a.在一个示例中,映射到缓冲区的可用样点的最大数目可以小于ibc虚拟缓冲区尺寸。
[0199]
b.在一个示例中,当ctb/ctu尺寸大于64x64时,映射到ibc虚拟缓冲区的可用样点的最大数目可以是固定的。
[0200]
c.在一个示例中,映射到ibc虚拟缓冲区的可用样点的数目可以被限制为小于或等于vpdu中的样点的数目的一倍或数倍。
[0201]
i.在一个示例中,当ctu/ctb尺寸大于64x64时,映射到ibc虚拟缓冲区的可用样点的数量可以被限制为小于或等于vpdu中的样点的数目的三倍。
[0202]
7.可以以vpdu的间隔尺寸(granularity)进行映射到ibc虚拟缓冲区的ibc参考样点的不可用标记。
[0203]
a.在一个示例中,当样点需要被标记为不可用时,同一vpdu内的样点也可以被标记为不可用。
[0204]
b.在一个示例中,一个或多个vpdu可以被同时标记为不可用。
[0205]
c.在一个示例中,哪个vpdu的样点被标记为不可用可以取决于当前vpdu的位置。
[0206]
d.在一个示例中,哪个vpdu的样点被标记为不可用可以取决于先前或最近解码的vpdu的位置。
[0207]
8.当ctu/ctb尺寸大于64x64时,ibc参考可以是当前vpdu和三个最近解码的vpdu。
[0208]
a.在一个示例中,可以为映射到虚拟ibc缓冲区的每个vpdu维持索引,以跟踪每个
vpdu的解码顺序。
[0209]
9.可以维持计数器,以跟踪映射到缓冲区的可用vpdu的数目。
[0210]
a.在一个示例中,在开始解码每个ctu行时,将计数器重置为0,并且当已经解码映射到缓冲区的一个vpdu时,计数器增加1。
[0211]
b.在一个示例中,当计数器大于某一值——例如3时,映射到缓冲区的一个vpdu的样点可以被标记为不可用,并且计数器可以减1。
[0212]
10.当ctu/ctb尺寸为128x128时,对应的ibc虚拟缓冲区的尺寸可以为256x128。
[0213]
a.替代地,ibc虚拟缓冲区的尺寸可以是(k*64)x128,其中k>2。
[0214]
11.当ctu/ctb尺寸为256x256时,对应的ibc虚拟缓冲区的尺寸可以为64x256,以跟踪参考样点的可用性,即ibcbufw=64,ibcbufh=256。
[0215]
a.在一个示例中,在解码具有左上位置(x0,y0)的vpdu之前,ibc缓冲区中的对应的vpdu行(0,y0%256)将被设置为-1。
[0216]
12.当ctu/ctb尺寸为256x256时,对应的ibc虚拟缓冲区的尺寸可以为128x256,以跟踪参考样点的可用性,即ibcbufw=128,ibcbufh=256。
[0217]
a.在一个示例中,除某一vpdu行以外,缓冲区中的每个vpdu行仅可以保留一个vpdu(当前vpdu除外)。
[0218]
i.在一个示例中,除最后一个vpdu行以外,缓冲区中的每个vpdu行可以仅保留一个vpdu(当前vpdu除外)。
[0219]
5本公开的技术的示例实现方式
[0220]
5.1实施例#1
[0221]
当ctu尺寸为256x256时,将维持64x256 ibc虚拟缓冲区ibcbuf,即ibcbufw=64,ibcbufh=256。vpdu的尺寸为64x64,并且除当前vpdu以外,还使用了3个附加的vpdu的片上存储器来存储ibc参考样点。
[0222]
在开始解码ctu行时将缓冲区ibcbuf重置为-1。
[0223]
在开始解码具有相对于图片的左上角的左上位置(x0,y0)的新vpdu时,以下适用
[0224]
1)对于x=x0..x0 63,y=y0..y0 63,ibcbuf[x%ibcbufw][y%ibcbufh]=-1
[0225]
2)在解码cu之后,对于该cu中相对于图片的左上角的(x,y),将ibcbuf[x%ibcbufw][y%ibcbufh]设置为样点(x,y)在进行环路滤波(例如sao、去块、alf)之前的重建值。
[0226]
3)给定bv,(x,y)的参考为ibcbuf[(x bv[0])%ibcbufw][(y bv[1])%ibcbufh]
[0227]
比特流约束是以下两个条件为真
[0228]
1)给定wxh块,其相对于图片的左上方具有左上位置(x,y),则(y%ibcbufh) h<=ibcbufh
[0229]
2)ibcbuf[(x bv[0])%ibcbufw][(y bv[1])%ibcbufh]对于x=0..w-1,y=0..,h-1而言不应含有的无效像素值,例如,-1
[0230]
5.2实施例#2
[0231]
当ctu尺寸为256x256时,将维持128x256 ibc虚拟缓冲区ibcbuf,即ibcbufw=128,ibcbufh=256。vpdu的尺寸为64x64,并且除当前vpdu以外,还使用了3个附加的vpdu的片上存储器来存储ibc参考样点。
[0232]
在开始解码ctu行时将缓冲区ibcbuf重置为-1。xprevvpdu=0且yprevvpdu=0。
[0233]
在开始解码具有相对于图片的左上角的左上位置(x0,y0)的新vpdu时,以下适用
[0234]
1)如果(yprevvpdu 64)%ibcbufh不等于0,
[0235]
则对于x=x0..x0 63,y=y0..y0 63,ibcbuf[(x xprevvpdu-64)%ibcbufw][(y yprevvpdu)%ibcbufh]=-1
[0236]
2)否则((yprevvpdu 64)%ibcbufh等于0),
[0237]
则对于x=x0..x0 63,y=y0..y0 63,
[0238]
ibcbuf[(x xprevvpdu)%ibcbufw][(y yprevvpdu)%ibcbufh]=-1
[0239]
3)xprevvpdu=x0且yprevvpdu=y0
[0240]
比特流约束是以下两个条件为真
[0241]
1)给定wxh块,其相对于图片的左上方具有左上位置(x,y),则(y%ibcbufh) h<=ibcbufh
[0242]
2)ibcbuf[(x bv[0])%ibcbufw][(y bv[1])%ibcbufh]对于x=0..w-1,y=0..,h-1而言不应含有的无效像素值,例如,-1
[0243]
5.3实施例#3
[0244]
该实施例反映项目符号2。以加粗斜体表示的改变是基于vvc草案6文档jvet-o2001-ve。
[0245]
log2_min_luma_coding_block_size_minus2加2指定最小亮度编解码块尺寸。
[0246]
变量ctblog2sizey、ctbsizey、mincblog2sizey、mincbsizey、ibcbufwidthy、ibcbufwidthc和vsize的导出如下:
[0247]
ctblog2sizey=log2_ctu_size_minus5 5
ꢀꢀ
(7-15)
[0248]
ctbsizey=1<<ctblog2sizey
ꢀꢀ
(7-16)
[0249]
mincblog2sizey=log2_min_luma_coding_block_size_minus2 2(7-17)
[0250]
mincbsizey=1<<mincblog2sizey
ꢀꢀ
(7-18)
[0251][0252]
ibcbufwidthc=ibcbufwidthy/subwidthc
ꢀꢀ
(7-20)
[0253]
vsize=min(64,ctbsizey)
ꢀꢀ
(7-21)
[0254]
5.4实施例#4
[0255]
该实施例反映项目符号3。
[0256]
将(xcb,ycb)表示为当前块相对于图片的左上方的左上位置。块宽度和高度分别为w和h。该块的块矢量为(xbv,ybv)
[0257]
vpdu行相对于图片的约束:
[0258]
比特流约束是(xcb xbv)/vsize应等于(xcb xbv w-1/vsize)。
[0259]
vpdu列相对于图片的约束:
[0260]
比特流约束是(ycb ybv)/vsize应等于(ycb ybv h-1/vsize)。
[0261]
vpdu行相对于ibc缓冲区的约束:
[0262]
比特流约束是((xcb xbv)%ibcbufwidthy)/vsize应等于(((xcb xbv w-1)%ibcbufwidthy)/vsize)。
[0263]
vpdu列相对于ibc缓冲区的约束:
[0264]
比特流的约束是((ycb ybv)%ibcbufheighty)/vsize应等于(((ycb ybv h-1)%ibcbufheighty)/vsize).
[0265]
图4示出了跨过vpdu列和vpdu行的参考块的示例。如图4所示,对于当前cu(有格子块402),块(无图案块404)是跨过vpdu列的参考块,并且块(斜条纹块406)是跨过vpdu行的参考块。每个大块指示64x64 vpdu,并且绿色区域(608)指示可以用于ibc参考的重建的像素。
[0266]
如上所描述的示例可以并入下面所描述的方法的上下文中,例如方法500、520或540,该方法可以在视频解码器或视频编码器处实现。
[0267]
图5a示出了视频处理的示例性方法500的流程图。方法500包括,步骤502处,基于虚拟缓冲区的尺寸做出与块矢量或映射到虚拟缓冲区的一个或多个样点的有效性有关的决定,该虚拟缓冲区与基于参考块中的像素编解码的当前块相关联,当前图片包括当前块和参考块,并且虚拟缓冲区的尺寸是基于虚拟管线数据单元(vpdu)的尺寸,编解码树块(ctb)尺寸的尺寸或编解码树单元(ctu)的尺寸。
[0268]
方法500包括,步骤504处,基于该决定进行当前块与当前块的比特流表示之间的转换。
[0269]
图5b示出了视频处理的示例性方法520的流程图。方法520包括,步骤522处,对于基于参考块中的像素编解码的当前块,将参考块的一个或多个参考样点指派为不可用,一个或多个参考样点中的每一个被映射到虚拟缓冲区并且至少在与参考块相关联的当前虚拟管线数据单元(vpdu)中具有对应的样点,并且当前图片包括当前块和参考块。
[0270]
方法520包括,步骤524处,基于该指派进行当前块与当前块的比特流表示之间的转换。
[0271]
图5c示出了视频处理的示例性方法540的流程图。方法540包括,步骤542处,对于基于参考块中的像素编解码的当前块,基于编解码树块(ctb)的尺寸或当前块的编解码树单元(ctu)的尺寸确定与参考块相关联的虚拟缓冲区的尺寸,当前图片包括当前块和参考块。
[0272]
方法540包括,步骤544处,基于该确定进行当前块与当前块的比特流表示之间的转换。
[0273]
图6是视频处理设备600的框图。设备600可以用于实现文中所述的方法中的一个或多个。设备600可以实施为智能电话、平板计算机、物联网(iot)接收器等。设备600可以包括一个或多个处理器602、一个或多个存储器604和视频处理硬件606。(一个或多个)处理器602可以配置为实现本文档中所描述的一个或多个方法(包括但不限于方法400)。(一个或多个)存储器604可以用于存储数据和代码,该代码用于实现本文所描述的的方法和技术。视频处理硬件606可以用于在硬件电路中实现本文档中所描述的一些技术。在一些实施例中,硬件606可以至少部分位于处理器602,例如图形协处理器内。
[0274]
图7是可实现的本文中所公开的各种技术的示例视频处理系统700的框图。各种实现方式可以包括系统700中的一些或部分组件。系统700可以包括接收视频内容的输入702。视频内容可以以原始或未压缩的格式(例如8或10比特多分量像素值)接收,或者可以以压缩或编码的格式接收。输入702可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)和无线接口(诸如wi-fi或蜂窝接
口)。
[0275]
系统700可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件704。编解码组件704可以减少从输入702到编解码组件704的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。编解码组件704的输出可以被存储或经由所连接的通信来发送,如组件706所表示的。在输入702处接收的视频的存储或通信的比特流(或编解码)表示可以由组件708使用,以生成被发送到显示接口710的像素值或可显示视频。从比特流表示中生成用户可见的视频的过程有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且将由解码器进行反向编解码结果的对应解码工具或操作。
[0276]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或displayport等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子装置中,诸如移动电话、膝上型计算机、智能电话或其它能够进行数字数据处理和/或视频显示的装置。
[0277]
本公开的技术的一些实施例包括决定或确定禁用视频处理工具或模式。在示例中,当禁用视频处理工具或模式时,编码器在视频块到视频的比特流表示的转换中将不会使用的工具或模式。在另一个示例中,当禁用视频处理工具或模式时,解码器将利用使用基于决定或确定禁用的视频处理工具或模式尚未修改比特流的知识来处理比特流。
[0278]
在本文档中,术语“视频处理”可以指代视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到对应比特流表示的转换期间可以应用视频压缩算法,反之亦然。当前视频块的比特流表示或编解码表示例如可以对应于比特流内不同位置中共位或扩展的比特。例如,视频块可以在变换的和编解码的误差残差值方面而且使用标头中的比特和比特流中的其他字段进行编码。
[0279]
以下第一组条款可以与先前章节中列出的项目中描述的附加技术一起实现。
[0280]
1.一种视频处理的方法,包括:基于虚拟缓冲区的尺寸做出与块矢量或映射到虚拟缓冲区的一个或多个样点的有效性有关的决定,该虚拟缓冲区与基于参考块中的像素编解码的当前块相关联,其中,当前图片包括当前块和参考块,并且其中,虚拟缓冲区的尺寸是基于虚拟管线数据单元(vpdu)的尺寸,编解码树块(ctb)尺寸的尺寸或编解码树单元(ctu)的尺寸;基于该决定,在当前块和当前块的比特流表示之间进行转换。
[0281]
2.如条款1的方法,其中,虚拟缓冲区的高度与宽度的乘积是固定的,并且其中,高度或宽度是基于vpdu的尺寸、ctb的尺寸或ctu的尺寸。
[0282]
3.如条款1的方法,其中,虚拟缓冲区的宽度等于ctb的宽度或ctu的宽度。
[0283]
4.如条款1的方法,其中,虚拟缓冲区的宽度或高度分别是vpdu的宽度或高度的n倍,并且其中,n≥1是整数。
[0284]
5.如条款1的方法,其中,一个或多个样点的最大数目小于虚拟缓冲区的尺寸。
[0285]
6.如条款1的方法,其中,在确定ctb的尺寸或ctu的尺寸大于64
×
64时,固定一个或多个样点的最大数目。
[0286]
7.如条款1的方法,其中,一个或多个样点的数目小于或等于vpdu中的样点的数目的n倍,并且其中,n≥1是整数。
[0287]
8.如条款7的方法,其中,在确定ctb的尺寸或ctu的尺寸大于64
×
64时,n=3。
[0288]
9.一种视频处理的方法,包括:对于基于参考块中的像素编解码的当前块,将参考块的一个或多个参考样点指派为不可用,其中,一个或多个参考样点中的每一个被映射到虚拟缓冲区并且至少在与参考块相关联的当前虚拟管线数据单元(vpdu)中具有对应的样点,并且其中,当前图片包括当前块和参考块;以及基于该指派,在当前块与当前块的比特流表示之间进行转换。
[0289]
10.如条款9的方法,还包括:将当前vpdu中的对应样点指派为不可用。
[0290]
11.如条款10的方法,其中,指派对应的样点是基于当前vpdu的位置。
[0291]
12.如条款10的方法,其中,指定对应的样点是基于先前的vpdu或最近解码的vpdu的位置。
[0292]
13.如条款9的方法,其中,一个或多个参考样点中的每一个在三个最近解码的vpdu的每一个中具有对应的样点。
[0293]
14.一种视频处理的方法,包括:对于基于参考块中的像素编解码的当前块,基于编解码树块(ctb)的尺寸或当前块的编解码树单元(ctu)的尺寸确定与参考块相关联的虚拟缓冲区的尺寸,其中当前图片包括当前块和参考块;以及基于该确定,在当前块与当前块的比特流表示之间进行转换。
[0294]
15.如条款14的方法,其中,在确定ctb或ctu的尺寸为128
×
128时,虚拟缓冲区的尺寸为256
×
128。
[0295]
16.如条款14的方法,其中,在确定ctb或ctu的尺寸为256
×
256时,虚拟缓冲区的尺寸为64
×
256。
[0296]
17.如条款14的方法,其中,在确定ctb或ctu的尺寸为256
×
256时,虚拟缓冲区的尺寸为128
×
256。
[0297]
18.如条款1至17中任一项的方法,其中,基于包括当前块的当前图片中的参考块中的像素对当前块进行编解码是帧内块复制(ibc)操作,并且其中,虚拟缓冲区是ibc虚拟缓冲区。
[0298]
19.一种视频处理的方法,包括:对于视频的当前块的比特流表示与当前块之间的转换,分配比用于转换的块矢量搜索区域的最小尺寸更大的帧内块编解码(ibc)虚拟缓冲区尺寸;以及基于分配进行转换。
[0299]
20.如条款19的方法,其中,ibc缓冲区尺寸大于用于转换的虚拟管线数据单元存储器的总尺寸。
[0300]
21.如条款19-20中的任一项的方法,其中,ibc虚拟缓冲区尺寸的宽度是(128*128/ctbsizey ctbsizey)。
[0301]
22.一种视频处理的方法,包括:对于视频的当前块的比特流表示与当前块之间的转换,基于规则基于帧内块预测编解码来确定用于转换的参考块的尺寸;以及基于确定进行转换;其中,规则将参考块约束在虚拟管线数据单元(vpdu)列或虚拟管线数据单元行内。
[0302]
23.如条款22的方法,其中,规则不允许参考块跨越不同的vpdu行。
[0303]
24.如条款22的方法,其中,规则不允许参考块跨越不同的vpdu列。
[0304]
25.如条款22-24中的任一项的方法,其中,vpdu列或vpdu行与含有当前块的图片有关。
[0305]
26.如条款22-24中的任一项的方法,其中,vpdu列或vpdu行与帧内块复制虚拟缓冲区有关。
[0306]
27.如条款1-26中任一项的方法,其中,转换包括视频编解码,以从当前块生成比特流表示。
[0307]
28.如条款1-26中任一项的方法,其中,转换包括视频解码,以从比特流表示生成当前块。
[0308]
29.一种视频系统中的设备,包括处理器和其上具有指令的非暂时性存储器,其中,指令在由处理器执行时使得处理器实现条款1至28中任一项的方法。
[0309]
30.一种非暂时性计算机可读介质上存储的计算机程序产品,该计算机程序产品包括用于执行条款1至28中任一项的方法的程序代码。
[0310]
31.本文所描述的方法、设备或系统。
[0311]
以下第二组条款可以与先前章节中列出的项目中描述的附加技术一起实现(例如,实施例项目符号2-5)。
[0312]
1.一种视频处理的方法(例如,图8a所示的方法810),包括:根据缓冲区分配规则进行(812)视频的视频图片的当前视频块与视频的编解码表示之间的转换,其中,转换使用帧内块复制(ibc)模式,该模式下基于与当前视频块相同的视频条带的样点值来导出当前视频块的预测,并且其中,样点值由块矢量确定;其中,缓冲区分配规则指定为使用帧内块复制模式的转换而分配的虚拟缓冲区大于用于存储为确定块矢量而搜索的一部分视频图片的存储器的最小尺寸。
[0313]
2.如条款1的方法,其中,缓冲区分配规则还指定虚拟缓冲区大于用于转换的虚拟管线数据单元(vpdu)存储器的总尺寸。
[0314]
3.如条款2的方法,其中,缓冲区分配规则还指定虚拟缓冲区具有足以存储另一视频块的运动信息的尺寸。
[0315]
4.如条款1或2的方法,其中,虚拟缓冲区的宽度是((128*128/ctbsizey ctbsizey),其中ctbsizey是亮度编解码树单元或亮度编解码树块的尺寸。
[0316]
5.如条款1或2的方法,其中,虚拟缓冲区的高度是ctbsizey,其中ctbsizey是亮度编解码树单元或亮度编解码树块的尺寸。
[0317]
6.一种视频处理的方法(例如,图8b所示的方法820),包括:对于视频的当前图片的当前视频块与视频的编解码表示之间的转换,根据位置规则从参考块确定(822)当前视频块的预测块;以及基于确定进行(824)转换;其中,所述位置规则指定参考块相对于当前图片的虚拟管线数据单元(vpdu)行或虚拟管线数据单元列的可允许位置。
[0318]
7.如条款6的方法,其中,位置规则还指定参考块被约束虚拟管线数据单元行或虚拟管线数据单元列内。
[0319]
8.如条款7的方法,其中,位置规则还指定不允许参考块跨过虚拟管线数据单元的不同行或不同列。
[0320]
9.如条款6至8中任一项的方法,其中,位置规则指定相对于当前图片的虚拟管线数据单元行或虚拟管线数据单元列。
[0321]
10.如条款6至8中任一项的方法,其中,位置规则指定虚拟管线数据单元行或虚拟管线数据单元列与为所述转换而分配的帧内块复制虚拟缓冲区有关。
[0322]
11.如条款6的方法,其中,在参考块跨过两个或更多个编解码树单元和/或两个或更多个编解码树块的情况下调用所述确定。
[0323]
12.如条款6的方法,其中,位置规则还指定允许参考块跨过不同的虚拟管线数据单元行或不同的虚拟管线数据单元列。
[0324]
13.如条款12的方法,其中,如果允许参考块跨过不同的虚拟管线数据单元行或不同的虚拟管线数据单元列,则从附加操作获得用于预测当前视频块的一些预测值。
[0325]
14.如条款12的方法,其中,在允许参考块跨过不同的虚拟管线数据单元行或不同的虚拟管线数据单元列的情况下,使用默认值获得用于预测当前视频块的一些预测值。
[0326]
15.一种视频处理的方法(例如,图8c所示的方法830),包括:对于视频的视频图片的当前视频块与视频的编解码表示之间的转换,根据规则确定(832)用于预测当前视频块的块矢量和/或块矢量差的范围;以及基于该决定进行转换,其中,块矢量指示当前视频块与视频图像中用于对当前视频块进行预测编解码的参考区域之间的位移。
[0327]
16.如条款15的方法,其中,规则取决于当前视频块在编解码树单元或包括当前视频块的编解码树块内的位置。
[0328]
17.如条款15的方法,其中,规则指定块矢量在[-2m,2
m-1]的范围内,其中m是整数。
[0329]
18.如条款17的方法,其中,m为15或17或18。
[0330]
19.如条款15的方法,其中,规则指定块矢量差在[-2n,2
n-1]的范围内,其中n是整数。
[0331]
20.如条款19的方法,其中,块矢量差被包括在编解码表示中。
[0332]
21.如条款15的方法,其中,规则指定块矢量差在[-2n 1,2
n-1]的范围内,其中n是整数。
[0333]
22.如条款21的方法,其中,块矢量差被包括在编解码表示中。
[0334]
23.如条款19至22中任一项的方法,其中,n为14或16或17。
[0335]
24.如条款17或18的方法,其中,m取决于i)块矢量或运动矢量存储的精度,和/或ii)与块矢量差相关联的精度。
[0336]
25.如条款19至23中任一项的方法,其中,n取决于i)块矢量或运动矢量存储的精度,和/或ii)与块矢量差相关联的精度。
[0337]
26.如条款15的方法,其中,规则指定块矢量的范围与用于使用帧间预测模式编解码的另一视频块的运动矢量的范围相同。
[0338]
27.如条款15的方法,其中,规则指定块矢量差的范围与用于使用帧间预测模式编解码的另一视频块的运动矢量的范围相同。
[0339]
28.如条款16至27中的任一项的方法,其中,一致性比特流满足规则。
[0340]
29.如条款15的方法,其中,确定范围包括对块矢量和/或块矢量差进行剪切处理。
[0341]
30.如条款1至29中任一项的方法,其中,转换包括将视频编码成编解码表示。
[0342]
31.如条款1至29中任一项的方法,其中,转换包括解码编解码表示以生成视频。
[0343]
32.一种视频处理设备,包括配置为实现条款1至31中任一项或多项中所述的方法的处理器。
[0344]
33.一种存储程序代码的计算机可读介质,所述程序代码在进行时使得处理器实现条款1至31中任一项或多项中所述的方法。
[0345]
34.一种计算机可读介质,其存储根据上述方法中任一项生成的编解码表示或比特流表示。
[0346]
根据前述,将理解出于图示的目的已经描述本公开的技术的指定实施例,但是可以做出各种修改而不会偏离本发明的范围。相应地,本公开的技术不限于如所附权利要求所主张的。
[0347]
本专利文档中所描述的主题的实现方式和功能性操作可以被实现在各种系统、数字电子电路中或者在计算机软件、固件或硬件中,包含本说明书中所公开的结构以及其结构的等同物,或者它们中的一个或多个的组合。本说明书中所描述的主题的实现方式可以被实现为(多个)有形且非易失性计算机可读介质上所编码的一个或多个计算机程序产品,即计算机程序指令的一个或多个模块,用于由数据处理设备进行或者控制数据处理设备的操作。该计算机可读介质可以是机器可读存储装置、机器可读存储基板、存储器装置、影响机器可读可传播信号的复合物、或其一个或多个的组合。术语“数据处理单元”或“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。
[0348]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括独立程序或适合在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分中(例如,在标记语言文档中存储的一个或多个脚本)、在专用于所讨论的程序的单个文件中、或在多个协同文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署为在一个计算机上或者在多个计算机上进行,该多个计算机位于一个站点处或者分布跨越多个站点并由通信网络互连。
[0349]
可以由进行一个或多个计算机程序的一个或多个可编程处理器来进行在本说明书中所描述的过程和逻辑流,以通过在输入数据上操作并且产生输出来进行功能。也可以由专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))进行过程和逻辑流,并且设备可以实现为专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))。
[0350]
适合于计算机程序的执行的处理器包括例如通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者该两者接收指令和数据。计算机的基本元件是用于进行指令的处理器和用于存储指令和数据的一个或多个存储装置。通常,计算机还将包括用于存储数据的一个或多个海量存储装置(例如磁、磁光盘或光盘),或者可操作地耦合以从海量存储装置(例如磁、磁光盘或光盘)接收数据或者将数据传输到海量存储装置(例如磁、磁光盘或光盘),或者以上两者。但是,计算机不必具有这样的装置。适用于存储计算机程序指令和数据的计算机可读介质包含所有形式的非易失性存储器、介质和存储装置,包含例如半导体存储器装置(例如eprom、eeprom和闪速存储装置)。处理器和存储器可以由专用逻辑电路补充,或者合并在专用逻辑电路中。
[0351]
旨在于说明书与附图一起仅被示例性地考虑,其中示例性意味着示例。如本文所使用的,除非上下文明确指示,否则“或”的使用旨在于包括“和/或”。
[0352]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何发明或可要求保护的范围的限制,而是作为指定于特定发明的特定实施例的特征的描述。在本专利文档中,在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征还可以分别在多个实施例中来实现或者以各种合适的子组合来实现。此外,尽管特征可以如上文描述为以某些组合起作用并且甚至最初同样地要求,但是在某些情况下来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变化。
[0353]
类似地,尽管在附图中以特定次序描绘了操作,但这不应当理解为要求按所示的特定次序或顺序次序进行这样的操作或者进行所有示出的操作,以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分开不应被理解为在所有实施例中都要求这种分开。
[0354]
仅描述了几个实现方式和示例,并且可以基于本专利文档中描述和示出的内容来作出其它实现方式、增强和变型。
再多了解一些

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

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

相关文献