视频编解码中的预测类型信令的制作方法

文档序号:30236443发布日期:2022-06-01 21:15阅读:191来源:国知局
视频编解码中的预测类型信令的制作方法
视频编解码中的预测类型信令
1.相关申请的交叉引用
2.根据适用的专利法和/或根据《巴黎公约》的规则,本技术是为了及时要求于2019年10月12日提交的国际专利申请no.pct/cn2019/110902的优先权和利益而做出的。出于法律规定的所有目的,将上述申请的全部公开通过引用的方式并入,作为本技术公开的一部分。
技术领域
3.本专利文件涉及视频编解码技术、设备和系统。


背景技术:

4.目前,正在努力提高当前视频编解码器技术的性能,以提供更好的压缩比,或者提供允许较低复杂度或并行实现的视频编解码方案。业内专家最近提出了几种新的视频编解码工具,目前正在进行测试以确定其有效性。


技术实现要素:

5.描述了与数字视频编解码,特别是与运动矢量的管理有关的设备、系统和方法。所述方法可应用于现有视频编解码标准(例如,高效视频编解码(hevc)或多功能视频编解码)和未来的视频编解码标准或视频编解码器。
6.在一个代表性方面,所公开的技术可用于提供用于视频处理的方法。该方法包括:在视频和视频的比特流表示之间执行转换。比特流表示符合格式规则,该格式规则规定在比特流表示中分别指示解码器侧运动矢量细化编解码工具和双向光流编解码工具针对视频图片的的适用性。
7.在另一代表性方面,所公开的技术可用于提供用于视频处理的方法。该方法包括:在视频的视频图片和视频的比特流表示之间执行转换。比特流表示符合格式规则,该格式规则规定在与视频图片相对应的图片标头中指示编解码工具的使用。
8.在另一代表性方面,所公开的技术可用于提供用于视频处理的方法。该方法包括:在包含一个或多个视频单元的视频图片的视频和该视频的比特流表示之间执行转换。比特流表示符合格式规则,该格式规则规定图片标头中包括第一语法元素,以指示视频图片中的一个或多个视频单元中的至少一些的允许预测类型。
9.在另一个代表性方面,所公开的技术可用于提供用于视频处理的方法。该方法包括:执行当前视频块和当前视频块的编解码表示之间的转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸不同于当前视频块的分辨率和/或尺寸,则将相同的插值滤波器应用于使用当前视频块预测的一组相邻的或非相邻样点。
10.在另一个代表性方面,所公开的技术可用于提供用于视频处理的另一种方法。该方法包括:在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸与当前视频块的分辨率和/或尺寸不同,则其中使用当前视
频块预测的块仅允许使用与当前块相关的整数值运动信息。
11.在另一个代表性方面,所公开的技术可用于提供用于视频处理的另一种方法。该方法包括:在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸不同于当前视频块的分辨率和/或尺寸,则应用插值滤波器来导出使用当前视频块预测的块,并且其中基于规则选择插值滤波器。
12.在另一个代表性方面,所公开的技术可用于提供用于视频处理的另一种方法。该方法包括:在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸不同于当前视频块的分辨率和/或尺寸,则选择性地应用去块滤波器,其中根据与参考图片的分辨率和/或尺寸相对于当前视频块的分辨率和/或尺寸有关的规则设置去方块滤波器。
13.在另一个代表性方面,所公开的技术可用于提供用于视频处理的另一种方法。该方法包括:在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,根据基于当前视频块的维度的规则对当前视频块的参考图片进行重采样。
14.在另一个代表性方面,所公开的技术可用于提供用于视频处理的另一种方法。该方法包括:在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,取决于相对于当前视频块的分辨率/尺寸的当前视频块的参考图片的分辨率/尺寸,选择性地启动或禁止对当前视频块的编解码工具的使用。
15.在另一个代表性方面,所公开的技术可用于提供用于视频处理的另一种方法。该方法包括:在多个视频块和多个视频块的编解码表示之间执行转换,其中,在转换期间,为第一视频块定义第一一致性窗口,为第二视频块定义第二一致性窗口,并且其中,所述第一一致性窗口与所述第二一致性窗口的宽度和/或高度的比率符合至少基于一致性比特流的规则。
16.在另一个代表性方面,所公开的技术可用于提供用于视频处理的另一种方法。该方法包括:在多个视频块和多个视频块的编解码表示之间执行转换,其中,在转换期间,为第一视频块定义第一一致性窗口,为第二视频块定义第二一致性窗口,其中,所述第一一致性窗口与所述第二一致性窗口的宽度和/或高度的比率符合至少基于一致性比特流的规则。
17.此外,在一个代表性方面,公开了一种视频系统中的装置,该装置包括处理器和带有指令的非暂时性存储器。处理器执行时的指令使处理器实现所公开的方法中的任何一个或多个。
18.在一个代表性方面中,公开了一种视频解码装置,其包括配置成实现本文所述的方法的处理器。
19.在一个代表性方面中,公开了一种视频编码装置,其包括配置成实现本文所述的方法的处理器。
20.此外,还公开了存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行所公开的方法中的任何一个或多个的程序代码。
21.在附图、说明书和权利要求中更详细地描述了所公开技术的上述和其他方面和特征。
附图说明
22.图1示出了子块运动矢量(vsb)和运动矢量差的示例。
23.图2示出了划分为16个4x4区域的16x16视频块的示例。
24.图3a示出了样点中的特定位置的示例。
25.图3b示出了样点中特定位置的另一示例。
26.图3c示出了样点中特定位置的又一示例。
27.图4a示出了当前样点及其参考样点的位置的示例。
28.图4b示出了当前样点及其参考样点的位置的另一示例。
29.图5是用于实现本文档中描述的视觉媒体解码或视觉媒体编解码技术的硬件平台的示例的框图。
30.图6示出用于视频编解码的示例方法的流程图。
31.图7是其中可以实现所公开的技术的示例性视频处理系统的框图。
32.图8是示出示例性视频编解码系统的框图。
33.图9是示出根据本公开的一些实施例的编码器的框图。
34.图10是示出根据本公开的一些实施例的解码器的框图。
35.图11是根据本技术的用于视频处理的方法的流程图表示。
36.图12是根据本技术的用于视频处理的另一方法的流程图表示。
37.图13是根据本技术的另一种视频处理方法的流程图表示。
具体实施方式
38.1.hevc/h.265中的视频编解码
39.视频编解码标准主要是通过众所周知的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)成立,致力于vvc标准,目标是与hevc相比比特率降低50%。
40.2.概述
41.2.1自适应分辨率更改(arc)
42.avc和hevc不具有在不必引入idr或帧内随机访问点(irap)图片的情况下更改分辨率的能力;这种能力可以称为自适应分辨率更改(adaptive resolution change,arc)。在某些使用案例或应用场景中,可以受益于arc功能,其中包括:
[0043]-视频电话和会议中的速率适配:为了使编解码视频适应不断更改的网络状况,当网络状况变得更糟从而可用带宽变得更低时,编码器可以通过编码较小分辨率的图片来适应它。目前,只有在irap图片之后才能更改图片分辨率;这有几个问题。具有合理质量的irap图片将比帧间编解码图片大得多,并且解码起来也将相应地更加复杂:这会浪费时间和资源。如果解码器出于加载原因请求更改分辨率,则会出现问题。它还可能破坏低延迟缓
冲区条件,从而迫使音频重新同步,并且流的端到端延迟将增加,至少是暂时增加。这会给用户带来糟糕的体验。
[0044]-在多方视频会议中活动发言人的更改:对于多方视频会议,通常以比其他会议参与者的视频更大的视频尺寸显示活动发言人。当活动发言人更改时,可能还需要调整每个参与者的图片分辨率。当有源扬声器中频繁发生此类更改时,具有arc特征的需求变得尤为重要。
[0045]-流传输中的快速启动:对于流传输应用,通常在开始显示之前,该应用将缓冲多达一定长度的解码图片。以较小的分辨率启动比特流将允许应用在缓冲区中具有足够的图片以更快地开始显示。
[0046]
流传输中的自适应流切换:基于http的动态自适应流传输(dynamic adaptive streaming over http,dash)规范包括名为@mediastreamstructureid的特征。这使得能够在具有不可解码的前导图片(例如,hevc中的具有相关联的rasl图片的cra图片)的开放式gop随机访问点处在不同表示之间进行切换。当同一视频的两个不同表示具有不同的比特率但具有相同的空域分辨率,同时它们具有相同的@mediastreamstructureid值时,可以在具有相关联的rasl图片的cra图片上执行两种表示之间的切换,并且与可以以可接受的质量解码与切换处的cra图片相关联的rasl图片,从而实现无缝切换。使用arc,@mediastreamstructureid特征也可用于在具有不同空域分辨率的dash表示之间进行切换。
[0047]
arc也称为动态分辨率转换。
[0048]
arc也可以被视为参考图片重采样(rpr)的特殊情况,诸如h.263附件p。
[0049]
2.2 h.263附件p中的参考图片重采样
[0050]
该模式描述了在参考图片用于预测之前扭曲(warp)参考图片的算法。对于重采样具有与正在预测的图片不同的源格式的参考图片可能很有用。通过扭曲参考图片的形状、尺寸和位置,还可以将其用于全局运动估算或旋转运动估算。语法包括要使用的扭曲参数以及重采样算法。参考图片重采样模式的最简单操作级别是4重采样的隐式因子,因为仅fir滤波器需要用于上采样和下采样处理。在这种情况下,当新图片的尺寸(在图片标头中指示)与先前图片的尺寸不同时,由于理解了它的用法,因此不需要额外的信令开销。
[0051]
2.3.vvc中的一致性窗口
[0052]
vvc中的一致性窗口定义了一个矩形。一致性窗口内的样点属于感兴趣的图像。一致性窗口外的样点在输出时可能会被丢弃。
[0053]
当应用一致性窗口时,基于一致性窗口导出rpr中的缩放比。
[0054]
图片参数集rbsp语法
[0055][0056]
以亮度样点为单位指定参考pps的每个解码图片的宽度。pic_width_in_luma_samples不应等于0,应为max(8,mincbsizey)的整数倍,且应小于或等于pic_width_max_in_luma_samples。
[0057]
当subpics_present_flag等于1时,pic_width_in_luma_samples的值应等于pic_width_max_in_luma_samples。
[0058]
以亮度样点为单位指定参考pps的每个解码图片的高度。pic_height_in_luma_samples不应等于0,应为max(8,mincbsizey)的整数倍,且应小于或等于pic_height_max_in_luma_samples。
[0059]
当subpics_present_flag等于1时,pic_height_in_luma_samples的值应等于pic_height_max_in_luma_samples。
[0060]
让refpicwidthinlumasamples和refpicheightinlumasamples分别是参考该pps的当前图片的参考图片的pic_width_in_luma_samples和pic_height_in_luma_samples。满足以下所有条件是比特流一致性的要求,:
[0061][0062]
等于1表示一致性裁剪窗口偏移参数在sps中紧随其后。conformance_window_flag等于0表示一致性裁剪窗口偏移参数不存在。
[0063]
and以用于输出的图片坐标中指定的矩形区域的方式指定了从解码过程中输出的cvs中的图片样点。当conformance_window_flag等于0时,conf_win_left_offset,conf_win_right_offset,conf_win_top_offset和conf_win_bottom_offset的值推断为0。
[0064]
一致性裁剪窗口包含水平图片坐标从subwidthc*conf_win_left_offset到pic_width_in_luma_samples-(subwidthc*conf_win_right_offset+1)并且垂直图片坐标从subheightc*conf_win_top_offset到pic_height_in_luma_samples-(subheightc*conf_win_bottom_offset+1)(包含端点在内)的亮度样点。
[0065]
subwidthc*(conf_win_left_offset+conf_win_right_offset)的值应当小于pic_width_in_luma_samples,并且subheightc*(conf_win_top_offset+conf_win_bottom_offset)的值应当小于pic_height_in_luma_samples。
[0066]
变量picoutputwidthl和picoutputheightl推导如下:
[0067]
picoutputwidthl=pic_width_in_luma_samples
‑ꢀꢀ
(7-43)
[0068]
subwidthc*(conf_win_right_offset+conf_win_left_offset)
[0069]
picoutputheightl=pic_height_in_pic_size_units
[0070]-subheightc*(conf_win_bottom_offset+conf_win_top_offset)
[0071]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7-44)
[0072]
当chromaarraytype不等于0时,两个色度阵列的相应指定样点是具有图片坐标(x/subwidthc,y/subheightc)的样点,其中(x,y)是指定亮度样点的图片坐标。
[0073]
注意

一致性裁剪窗口偏移参数仅应用于输出。所有内部解码过程都应用于未裁剪的图片尺寸。
[0074]
设ppsa和ppsb是任意两个参考相同sps的pps。当ppsa和ppsb的pic_width_in_luma_samples和pic_height_in_luma_samples分别具有相同的值时,ppsa和ppsb应当分别具有相同的conf_win_left_offset,conf_win_right_offset,conf_win_top_offset,和
conf_win_bottom_offset的值,这是比特流一致性的要求。
[0075]
2.4.参考图片重采样(rpr)
[0076]
在一些实施例中,arc也称为参考图片重采样(rpr)。对于rpr,如果并置图片的分辨率与当前图片不同,则tmvp被禁用。此外,当参考图片与当前图片的分辨率不同时,双向光流(bdof)和解码器侧运动矢量细化(dmvr)被禁用。
[0077]
当参考图片具有不同于当前图片的分辨率时,为了处理正常mc,插值部分定义如下:
[0078]
8.5.6.3分数样点插值处理
[0079]
8.5.6.3.1概述
[0080]
该处理的输入包括:
[0081]

亮度位置(xsb,ysb),指定当前编解码子块相对于当前图片的左上亮度样点的左上样点,
[0082]

变量sbwidth,指定当前编解码子块的宽度,
[0083]

变量sbheight,指定当前编解码子块的高度,
[0084]

运动矢量偏移mvoffset,
[0085]

细化的运动矢量refmvlx,
[0086]

所选参考图片样点阵列refpiclx,
[0087]

半样点插值滤波器索引hpelifidx,
[0088]

双向光流标志bdofflag,
[0089]

变量cidx,指定当前块的颜色分量索引。
[0090]
该处理的输出包括:
[0091]

预测样点值的(sbwidth+brdextsize)x(sbheight+brdextsize)的阵列predsampleslx。
[0092]
预测块边界扩展尺寸brdextsize推导如下:
[0093]
brdextsize=(bdofflag||(inter_affine_flag[xsb][ysb]&&
[0094]
sps_affine_prof_enabled_flag))?2:0
ꢀꢀ
(8-752)
[0095]
变量frefwidth被设为等于以亮度样点为单位的参考图片的picoutputwidthl。
[0096]
变量frefheight被设为等于以亮度样点为单位的参考图片的picoutputheightl。
[0097]
运动矢量mvlx被设为等于(refmvlx-mvoffset)。
[0098]

如果cidx等于0,则以下适用:
[0099]

缩放因子及其固定点表示定义为
[0100]
hori_scale_fp=((frefwidth《《14)+(picoutputwidthl》》1))/picoutputwidthl
ꢀꢀ
(8-753)
[0101]
vert_scale_fp=((frefheight《《14)+(picoutputheightl》》1))/picoutputheightl
ꢀꢀ
(8-754)
[0102]

设(xintl,yintl)为以全样点单位给出的亮度位置并且(xfracl,yfracl)为以1/16样点单位给出的偏移。则这些变量在本节中仅用于指定参考样点阵列refpiclx内的分数点样点位置。
[0103]

用于参考样点填充的边界块的左上角坐标(xsbint
l
,ysbint
l
)被设为等于(xsb+(mvlx[0]》》4),ysb+(mvlx[1]》》4))。
[0104]

针对预测亮度样点阵列predsampleslx内的每个亮度样点位置
[0105]
(x
l
=0..sbwidth-1+brdextsize,y
l
=0..sbheight-1+brdextsize),
[0106]
对应的预测亮度样点值predsampleslx[x
l
][y
l
]推导如下:
[0107]

设(refxsb
l
,refysb
l
)和(refx
l
,refy
l
)为由以1/16样点单位给出的运动矢量(refmvlx[0],refmvlx[1])指向的亮度位置。变量refxsb
l
,refx
l
,refysb
l
,和refy
l
推导如下:
[0108]
refxsb
l
=((xsb《《4)+refmvlx[0])*hori_scale_fp
ꢀꢀ
(8-755)
[0109]
refx
l
=((sign(refxsb)*((abs(refxsb)+128)》》8)+x
l
*((hori_scale_fp+8)》》4))+32)》》6
ꢀꢀ
(8-756)
[0110]
refysb
l
=((ysb《《4)+refmvlx[1])*vert_scale_fp
ꢀꢀ
(8-757)
[0111]
refyl=((sign(refysb)*((abs(refysb)+128)》》8)+yl*((vert_scale_fp+8)》》4))+32)》》6
ꢀꢀ
(8-758)
[0112]

变量xint
l
,yint
l
,xfrac
l
和yfrac
l
推导如下:
[0113]
xint
l
=refx
l
》》4
ꢀꢀ
(8-759)
[0114]
yint
l
=refy
l
》》4
ꢀꢀ
(8-760)
[0115]
xfrac
l
=refx
l
&15
ꢀꢀ
(8-761)
[0116]
yfrac
l
=refy
l
&15
ꢀꢀ
(8-762)
[0117]

如果bdofflag等于真或(sps_affine_prof_enabled_flag等于真且inter_affine_flag[xsb][ysb]等于真),并且一个或多个下列条件为真,则预测亮度样点值predsampleslx[x
l
][y
l
]通过调用第8.5.6.3.3条中指定的亮度整数样点获取处理得出,以(xint
l
+(xfrac
l
》》3)-1),yint
l
+(yfrac
l
》》3)-1)和refpiclx作为输入。
[0118]

x
l
等于0。
[0119]

x
l
等于sbwidth+1。
[0120]
–yl
等于0。
[0121]
–yl
等于sbheight+1。
[0122]

否则,预测亮度样点值predsampleslx[xl][yl]通过调用第8.5.6.3.2条中规定的亮度样点8抽头插值滤波过程导出,以(xintl-(brdextsize》0?1:0),yintl-(brdextsize》0?1:0)),
[0123]
(xfracl,yfracl),(xsbint
l
,ysbint
l
),refpiclx,hpelifidx,sbwidth,sbheight和(xsb,ysb)作为输入。
[0124]

否则(cidx不等于0),则以下适用:
[0125]

设(xintc,yintc)是以全样点单位给出的色度位置并且(xfracc,yfracc)是以1/32样点单位给出的偏移。
[0126]
这些变量在本节中仅用于指定参考样点阵列refpiclx中的一般分数样点位置。
[0127]

用于参考样点填充的边界块的左上角坐标(xsbintc,ysbintc)被设为等于((xsb/subwidthc)+(mvlx[0]》》5),(ysb/subheightc)+(mvlx[1]》》5))。
[0128]

对于预测色度样点阵列predsampleslx内的每个色度样点位置(xc=0..sbwidth-1,yc=0..sbheight-1),对应的预测色度样点值predsampleslx[xc][yc]推导如下:
[0129]

设(refxsbc,refysbc)和(refxc,refyc)为由以1/32样点单位给出的运动矢量(mvlx[0],mvlx[1])指向的色度位置。变量refxsbc,refysbc,refxc和refyc推导如下:
[0130]
refxsbc=((xsb/subwidthc《《5)+mvlx[0])*hori_scale_fp
ꢀꢀ
(8-763)
[0131]
refxc=((sign(refxsbc)*((abs(refxsbc)+256)》》9)+xc*((hori_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-764)
[0132]
refysbc=((ysb/subheightc《《5)+mvlx[1])*vert_scale_fp(8-765)
[0133]
refyc=((sign(refysbc)*((abs(refysbc)+256)》》9)+yc*((vert_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-766)
[0134]

变量xintc,yintc,xfracc和yfracc推导如下:
[0135]
xintc=refxc》》5
ꢀꢀ
(8-767)
[0136]
yintc=refyc》》5
ꢀꢀ
(8-768)
[0137]
xfracc=refyc&31
ꢀꢀ
(8-769)
[0138]
yfracc=refyc&31
ꢀꢀ
(8-770)
[0139]

预测样点值predsampleslx[xc][yc]通过调用第8.5.6.3.4节中规定的处理导出,以(xintc,yintc),(xfracc,yfracc),(xsbintc,ysbintc),sbwidth,sbheight和refpiclx作为输入。
[0140]
8.5.6.3.2亮度样点插值滤波处理
[0141]
该处理的输入为:
[0142]

以全样点为单位的亮度位置(xint
l
,yint
l
),
[0143]

以分数样点为单位的亮度位置(xfrac
l
,yfrac
l
),
[0144]

以全样点为单位的亮度位置(xsbint
l
,ysbint
l
),其指定用于参考样点填充的边界块相对于参考图片的左上亮度样点的左上样点,
[0145]

亮度参考样点阵列refpiclx
l
,
[0146]

半样点插值滤波器索引hpelifidx,
[0147]

变量sbwidth,指定当前子块的宽度,
[0148]

变量sbheight,指定当前子块的高度,
[0149]

亮度位置(xsb,ysb),指定当前子块相对于当前图片的左上亮度样点的左上样点,
[0150]
该处理的输出为预测亮度样点值predsamplelx
l
[0151]
变量shift1,shift2和shift3推导如下:
[0152]

变量shift1被设为等于min(4,bitdepth
y-8),变量shift2被设为等于6并且变量shift3被设为等于max(2,14-bitdepthy)。
[0153]

变量picw被设为等于pic_width_in_luma_samples并且变量pich被设为等于pic_height_in_luma_samples。
[0154]
每个1/16分数样点位置p的亮度插值滤波器系数f
l
[p]等于xfrac
l
或yfrac
l
推导如下:
[0155]

如果motionmodelidc[xsb][ysb]大于0,并且sbwidth和sbheight都等于4,则亮度插值滤波器系数f
l
[p]被规定在表2。
[0156]

否则,亮度插值滤波器系数f
l
[p]取决于hpelifidx被规定在表1。
[0157]
全样点单位的亮度位置(xinti,yinti)推导如下,对于i=0..7:
[0158]

如果subpic_treated_as_pic_flag[subpicidx]等于1,则以下适用:
[0159]
xinti=clip3(subpicleftboundarypos,subpicrightboundarypos,xint
l
+i-3)
ꢀꢀ
(8-771)
[0160]
yinti=clip3(subpictopboundarypos,subpicbotboundarypos,yint
l
+i-3)
ꢀꢀ
(8-772)
[0161]

否则(subpic_treated_as_pic_flag[subpicidx]等于0),则以下适用:
[0162]
xinti=clip3(0,picw-1,sps_ref_wraparound_enabled_flag?
[0163]
cliph((sps_ref_wraparound_offset_minus1+1)*mincbsizey,picw,xint
l
+i-3):
[0164]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-773)
[0165]
xint
l
+i-3)
[0166]
yinti=clip3(0,pich-1,yint
l
+i-3)
ꢀꢀ
(8-774)
[0167]
全样点单位的亮度位置进一步修改如下,对于i=0..7:
[0168]
xinti=clip3(xsbint
l-3,xsbint
l
+sbwidth+4,xinti)
ꢀꢀ
(8-775)
[0169]
yinti=clip3(ysbint
l-3,ysbint
l
+sbheight+4,yinti)
ꢀꢀ
(8-776)
[0170]
预测的亮度样点值predsamplelx
l
推导如下:
[0171]

如果xfrac
l
和yfrac
l
都等于0,则predsamplelx
l
的值推导如下:
[0172]
predsamplelx
l
=refpiclx
l
[xint3][yint3]《《shift3
ꢀꢀ
(8-777)
[0173]

否则,如果xfrac
l
不等于0并且yfrac
l
等于0,则predsamplelx
l
的值推导如下:
[0174][0175]

否则,如果xfrac
l
等于0并且yfrac
l
不等于0,则predsamplelx
l
的值推导如下:
[0176][0177]

否则,如果xfrac
l
不等于0并且yfrac
l
不等于0,则predsamplelx
l
的值推导如下:
[0178]

样点阵列temp[n]其中n=0..7,推导如下:
[0179][0180]

预测的亮度样点值predsamplelx
l
推导如下:
[0181][0182]
表8-11

每个1/16分数样点位置p的亮度插值滤波器系数f
l
[p]的规范
[0183][0184]
表8-12仿射运动模式的每个1/16分数样点位置p的亮度插值滤波器系数f
l
[p]的规范
[0185][0186]
8.5.6.3.3亮度整数样点获取处理
[0187]
该处理的输入为:
[0188]

以全样点为单位的亮度位置(xint
l
,yint
l
),
[0189]

亮度参考样点阵列refpiclx
l
,
[0190]
该处理的输出为预测亮度样点值predsamplelx
l
[0191]
变量shift被设为等于max(2,14-bitdepthy)。
[0192]
变量picw被设为等于pic_width_in_luma_samples并且变量pich被设为等于pic_height_in_luma_samples。
[0193]
全样点单位的亮度位置(xint,yint)推导如下:
[0194]
xint=clip3(0,picw-1,sps_ref_wraparound_enabled_flag?
ꢀꢀ
(8-782)
[0195]
cliph((sps_ref_wraparound_offset_minus1+1)*mincbsizey,picw,xint
l
):xint
l
)
[0196]
yint=clip3(0,pich-1,yint
l
)
ꢀꢀ
(8-783)
[0197]
预测的亮度样点值predsamplelx
l
推导如下:
[0198]
predsamplelx
l
=refpiclx
l
[xint][yint]《《shift3
[0199]
(8-784)
[0200]
8.5.6.3.4色度样点插值处理
[0201]
该处理的输入为:
[0202]

全样点单位的色度位置(xintc,yintc),
[0203]

1/32分数样点单位的色度位置(xfracc,yfracc),
[0204]

全样点单位的色度位置(xsbintc,ysbintc),指定用于参考样点填充的边界块相对于参考图片的左上色度样点的左上样点,
[0205]

变量sbwidth,指定当前子块的宽度,
[0206]

变量sbheight,指定当前子块的高度,
[0207]

色度参考样点阵列refpiclxc。
[0208]
该处理的输出是预测的色度样点值predsamplelxc[0209]
变量shift1,shift2和shift3推导如下:
[0210]

变量shift1被设为等于min(4,bitdepth
c-8),变量shift2被设为等于6并且变量shift3被设为等于max(2,14-bitdepthc)。
[0211]

变量picwc被设为等于pic_width_in_luma_samples/subwidthc并且变量pichc被设为等于pic_height_in_luma_samples/subheightc。
[0212]
每个1/32分数样点位置p的色度插值滤波器系数fc[p]等于xfracc或yfracc被规定在表3。
[0213]
变量xoffset被设为等于(sps_ref_wraparound_offset_minus1+1)*mincbsizey)/subwidthc。
[0214]
全样点单位的色度位置(xinti,yinti)推导如下,对于i=0..3:
[0215]

如果subpic_treated_as_pic_flag[subpicidx]等于1,则以下适用:
[0216]
xinti=clip3(subpicleftboundarypos/subwidthc,subpicrightboundarypos/subwidthc,xint
l
+i)
ꢀꢀ
(8-785)
[0217]
yinti=clip3(subpictopboundarypos/subheightc,subpicbotboundarypos/subheightc,yint
l
+i)
ꢀꢀ
(8-786)
[0218]

否则(subpic_treated_as_pic_flag[subpicidx]等于0),则以下适用:
[0219]
xinti=clip3(0,picw
c-1,
[0220]
sps_ref_wraparound_enabled_flag?cliph(xoffset,picwc,xintc+i-1):
ꢀꢀ
(8-787)
[0221]
xintc+i-1)
[0222]
yinti=clip3(0,pich
c-1,yintc+i-1)
ꢀꢀ
(8-788)
[0223]
全样点单位的色度位置(xinti,yinti)进一步修改如下,对于i=0..3:
[0224]
xinti=clip3(xsbintc-1,xsbintc+sbwidth+2,xinti)
ꢀꢀ
(8-789)
[0225]
yinti=clip3(ysbintc-1,ysbintc+sbheight+2,yinti)
ꢀꢀ
(8-790)
[0226]
预测的色度样点值predsamplelxc推导如下:
[0227]

如果xfracc和yfracc都等于0,则predsamplelxc的值推导如下:
[0228]
predsamplelxc=refpiclxc[xint1][yint1]《《shift3
ꢀꢀ
(8-791)
[0229]

否则,如果xfracc不等于0并且yfracc等于0,则predsamplelxc的值推导如下:
[0230][0231]

否则,如果xfracc等于0并且yfracc不等于0,则predsamplelxc的值推导如下:
[0232]
[0233]

否则,如果xfracc不等于0并且yfracc不等于0,则predsamplelxc的值推导如下:
[0234]

样点阵列temp[n]其中n=0..3,推导如下:
[0235][0236]

预测的色度样点值predsamplelxc推导如下:
[0237][0238]
表8-13

每个1/32分数样点位置p的色度插值滤波器系数fc[p]的规范
[0239][0240]
2.5.基于细化的子块的仿射运动补偿预测
[0241]
本文公开的技术包括利用光流细化基于子块的仿射运动补偿预测的方法。在进行基于子块的仿射运动补偿后,通过加入由光流方程导出的差来细化预测样点,称为光流预测细化(prof)。该方法可以在不增加内存访问带宽的前提下实现像素级粒度的帧间预测。
[0242]
为了实现更精细的运动补偿,本文提出了一种利用光流细化的基于子块的仿射运动补偿预测的方法。在进行基于子块的仿射运动补偿后,通过加入由光流方程导出的差来细化亮度预测样点。提出的prof(利用光流的预测细化)描述如下四个步骤。
[0243]
步骤1)执行基于子块的仿射运动补偿以生成子块预测i(i,j).
[0244]
步骤2)在每个样点位置使用3抽头滤波器[-1,0,1]计算子块预测的空间梯度g
x
(i,j)和gy(i,j)。
[0245]gx
(i,j)=i(i+1,j)-i(i-1,j)
[0246]gy
(i,j)=i(i,j+1)-i(i,j-1)
[0247]
子块预测在每侧扩展一个像素用于梯度计算。为了减少存储带宽和复杂度,扩展边界上的像素从参考图片中最近的整数像素位置复制。因此,避免了填充区域的附加插值。
[0248]
步骤3)亮度预测精细化(表示为δi),由光流方程计算。
[0249]
δi(i,j)=g
x
(i,j)*δv
x
(i,j)+gy(i,j)*δvy(i,j)
[0250]
其中delta mv(表示为δv(i,j)))是为样点位置(i,j)计算的像素mv(表示为v(i,j))与像素(i,j)所属的子块的子块mv之间的差,如图1所示。
[0251]
由于仿射模型参数和像素相对于子块中心的位置在子块到子块之间没有改变,δv(i,j)可针对第一个子块计算,并可重复用于同一cu中的其他子块。让x和y是从像素位置到子块中心的水平和垂直偏移,δv(x,y)可由下式导出,
[0252][0253]
对于4参数仿射模型,
[0254][0255]
对于6参数仿射模型,
[0256][0257]
其中(v
0x
,v
0y
),(v
1x
,v
1y
),(v
2x
,v
2y
)是左上角、右上角和左下角的控制点运动矢量,w和h是cu的宽度和高度。
[0258]
步骤4)最后,将亮度预测细化加到子块预测i(i,j).最终预测值i'如下等式生成。
[0259]
i'(i,j)=i(i,j)+δi(i,j)
[0260]
一些细节如下:
[0261]
a)如何为推导prof的梯度
[0262]
在一些实施例中,为每个参考列表计算每个子块(vtm-4.0中的4
×
4子块)的梯度。对于每个子块,取参考块的最接近的整数样点来填充样点的四条外侧线。
[0263]
假设当前子块的mv为(mvx,mvy)。分数部分计算为(fracx,fracy)=(mvx&15,mvy&15)。整数部分计算为(intx,inty)=(mvx》》4,mvy》》4)。
[0264]
偏移(offsetx,offsety)推导为:
[0265]
offsetx=fracx》7?1:0;
[0266]
offsety=fracy》7?1:0;
[0267]
假设当前子块的左上角坐标为(xcur,ycur),并且当前子块的维度为w
×
h,则(xcor0,ycor0),(xcor1,ycor1),(xcor2,ycor2)和(xcor3,ycor3)计算如下:
[0268]
(xcor0,ycor0)=(xcur+intx+offsetx-1,ycur+inty+offsety-1);
[0269]
(xcor1,ycor1)=(xcur+intx+offsetx-1,ycur+inty+offsety+h);
[0270]
(xcor2,ycor2)=(xcur+intx+offsetx-1,ycur+inty+offsety);
[0271]
(xcor3,ycor3)=(xcur+intx+offsetx+w,ycur+inty+offsety);
[0272]
假设预样点[x][y],x=0..w-1,y=0..h-1存储子块的预测样点。则将填充样点导出为:
[0273]
predsample[x][-1]=(ref(xcor0+x,ycor0)《《shift0)-rounding,for x=-1..w;
[0274]
predsample[x][h]=(ref(xcor1+x,ycor1)《《shift0)-rounding,for x=-1..w;
[0275]
predsample[-1][y]=(ref(xcor2,ycor2+y)《《shift0)-rounding,for y=0..h-1;
[0276]
predsample[w][y]=(ref(xcor3,ycor3+y)《《shift0)-rounding,for y=0..h-1;
[0277]
其中rec代表参考图片。rounding是一个整数,在示例性prof实现中等于2
13
。shift0=max(2,(14-bitdepth));prof试图提高梯度的精度,而不像vtm-4.0中的bio,后者以与输入亮度样点相同的精度输出梯度。
[0278]
prof中的梯度计算如下:
[0279]
shift1=shift0-4.
[0280]
gradienth[x][y]=(predsamples[x+1][y]-predsample[x-1][y])》》shift1
[0281]
gradientv[x][y]=(predsample[x][y+1]-predsample[x][y-1])》》shift1
[0282]
需要注意的是,predsamples[x][y]保持了插值后的精度。
[0283]
b)如何推导prof的δv
[0284]
δv(表示为dmvh[posx][posy]和dmvv[posx][posy],posx=0..w-1,posy=0..h-1)的推导如下。
[0285]
假设当前块的维度为cbwidth
×
cbheight,控制点运动矢量的个数为numcpmv,控制点运动矢量为cpmvlx[cpidx],cpidx=0..numcpmv-1并且x为0或1代表两个参考列表。
[0286]
变量log2cbw和log2cbh推导如下:
[0287]
log2cbw=log2(cbwidth)
[0288]
log2cbh=log2(cbheight)
[0289]
变量mvscalehor,mvscalever,dhorx和dverx的推导如下:
[0290]
mvscalehor=cpmvlx[0][0]《《7
[0291]
mvscalever=cpmvlx[0][1]《《7
[0292]
dhorx=(cpmvlx[1][0]-cpmvlx[0][0])《《(7-log2cbw)
[0293]
dverx=(cpmvlx[1][1]-cpmvlx[0][1])《《(7-log2cbw)
[0294]
变量dhory和dvery推导如下:
[0295]-如果numcpmv等于3,则以下适用:
[0296]
dhory=(cpmvlx[2][0]-cpmvlx[0][0])《《(7-log2cbh)
[0297]
dvery=(cpmvlx[2][1]-cpmvlx[0][1])《《(7-log2cbh)
[0298]-否则(numcpmv等于2),则以下适用:
[0299]
dhory=-dverx
[0300]
dvery=dhorx
[0301]
变量qhorx,qverx,qhory和qvery计算如下:
[0302]
qhorx=dhorx《《2;
[0303]
qverx=dverx《《2;
[0304]
qhory=dhory《《2;
[0305]
qvery=dvery《《2;
[0306]
dmvh[0][0]和dmvv[0][0]计算如下:
[0307]
dmvh[0][0]=((dhorx+dhory)《《1)-((qhorx+qhory)《《1);
[0308]
dmvv[0][0]=((dverx+dvery)《《1)-((qverx+qvery)《《1);
[0309]
dmvh[xpos][0]和dmvv[xpos][0](xpos从1到w-1)推导如下:
[0310]
dmvh[xpos][0]=dmvh[xpos-1][0]+qhorx;
[0311]
dmvv[xpos][0]=dmvv[xpos-1][0]+qverx;
[0312]
对于ypos从1到h-1,以下适用:
[0313]
dmvh[xpos][ypos]=dmvh[xpos][ypos-1]+qhory with xpos=0..w-1
[0314]
dmvv[xpos][ypos]=dmvv[xpos][ypos-1]+qvery with xpos=0..w-1
[0315]
最终,dmvh[xpos][ypos]和dmvv[xpos][ypos]其中posx=0..w-1,posy=0..h-1如下右移位:
[0316]
dmvh[xpos][ypos]=satshift(dmvh[xpos][ypos],7+2-1);
[0317]
dmvv[xpos][ypos]=satshift(dmvv[xpos][ypos],7+2-1);
[0318]
其中satshift(x,n)和shift(x,n)定义如下:
[0319][0320]
shift(x,n)=(x+offset0)》》n
[0321]
在一个示例中,offset0和/或offset1设置为(1《《n)》》1。
[0322]
c)如何为prof推导δi
[0323]
对于子块内的位置(posx,posy),其对应的δv(i,j)表示为(dmvh[posx][posy],
dmvv[posx][posy])。其对应的梯度表示为(gradienth[posx][posy],gradientv[posx][posy])。
[0324]
则δi(posx,posy)推导如下。
[0325]
(dmvh[posx][posy],dmvv[posx][posy])剪裁为:
[0326]
dmvh[posx][posy]=clip3(-32768,32767,dmvh[posx][posy]);
[0327]
dmvv[posx][posy]=clip3(-32768,32767,dmvv[posx][posy]);
[0328]
δi(posx,posy)=dmvh[posx][posy]
×
gradienth[posx][posy]+dmvv[posx][posy]
×
gradientv[posx][posy];
[0329]
δi(posx,posy)=shift(δi(posx,posy),1+1+4);
[0330]
δi(posx,posy)=clip3(-(2
13-1),2
13-1,δi(posx,posy));
[0331]
d)如何为prof推导i'
[0332]
如果当前块未用双向预测或加权预测编解码,则
[0333]
i’(posx,posy)=shift((i(posx,posy)+δi(posx,posy)),shift0),
[0334]
i’(posx,posy)=clipsample(i’(posx,posy)),
[0335]
其中clipsample将样点值剪裁为有效的输出样点值。然后i'(posx,posy)输出为帧间预测值。
[0336]
否则(当前块用双向预测或加权预测编解码)。i'(posx,posy)将被存储并用于根据其他预测值和/或加权值生成帧间预测值。
[0337]
2.6示例条带标头
[0338]
[0339]
[0340]
[0341]
[0342]
[0343][0344]
2.7示例序列参数集
[0345]
[0346]
[0347]
[0348]
[0349]
[0350][0351]
2.8示例图片参数集
[0352]
[0353]
[0354]
[0355]
[0356][0357]
2.9示例自适应参数集
[0358]
[0359][0360]
[0361][0362]
[0363][0364]
[0365]
2.10示例图片标头
[0366]
在一些实施例中,图片标头被设计成具有以下特性:
[0367]
1.图片标头nal单元的时域id和层id与包含图片标头的层访问单元的时域id和层id相同。
[0368]
2.图片标头nal单元应位于包含其关联图片的第一个条带的nal单元之前。这建立了图片标头和与图片标头相关联的图片条带之间的关联,而不需要在图片标头中信令通知图片标头id并从片段标头参考。
[0369]
3.图片标头nal单元应遵循图片级参数集或更高级别,如dps、vps、sps、pps等。因此,要求这些参数集在图片或访问单元内不重复/出现。
[0370]
4.图片标头包含有关其关联图片的图片类型的信息。图片类型可用于定义以下内容(并非详尽列表)
[0371]
a、图片是idr图片
[0372]
b、图片是cra图片
[0373]
c、图片是gdr图片
[0374]
d、图片是非irap、非gdr图片,并且仅包含i条带
[0375]
e、图片是非irap、非gdr图片,并且可能只包含p条带和i条带
[0376]
f、图片是非irap、非gdr图片,并且包含任何b、p和/或i条带
[0377]
5.将条带标头中图片级语法元素的信令移动到图片标头。
[0378]
6.在条带标头中标记非图片级语法元素,这些元素对于图片标头中同一图片的所有条带通常是相同的。当这些语法元素在图片标头中不存在时,它们可以在条带标头中信令通知。
[0379]
在一些实现中,作为图片的第一vcl nal单元,强制图片标头概念被用于每个图片被发送一次。还建议将当前在条带标头中的语法元素移动到该图片标头。对于给定的图片,功能上只需要针对每个图片发送一次的语法元素可以被移动到图片标头,而不是被多次发送,例如,条带标头中的语法元素针对每个条带中被发送一次。在图片中将移动条带标头语法元素约束为相同。
[0380]
语法元素已经被约束为在图片的所有条带中都是相同的。可以断言,在不对这些语法元素的功能进行任何更改的情况下,将这些字段移动到图片标头以便它们在每个图片中只被信令通知一致而不是每个条带一次,避免了不必要的比特冗余传输。
[0381]
1.在某些实现中,存在以下语义约束:
[0382]
当存在时,在编解码图片的所有条带标头中,条带标头语法元素slice_pic_parameter_set_id,non_reference_picture_flag,colour_plane_id,slice_pic_order_cnt_lsb,recovery_poc_cnt,no_output_of_prior_pics_flag,pic_output_flag,和slice_temporal_mvp_enabled_flag的值应相同。因此,这些语法元素中的每一个都可以移动到图片标头,以避免不必要的冗余位。
[0383]
在此贡献中,不将recovery_poc_cnt和no_output_of_prior_pics_flag移动到图片标头。它们在条带标头中的存在取决于对条带标头nal_unit_type的条件检查,因此如果希望将这些语法元素移动到图片标头,建议对它们进行研究。
[0384]
2.在某些实现中,存在以下语义约束:
[0385]
当存在时,对于图片的所有条带,slice_lmcs_aps_id的值应相同。
[0386]
当存在时,对于图片的所有条带,slice_scaling_list_aps_id的值应相同。因此,这些语法元素中的每一个都可以移动到图片标头,以避免不必要的冗余位。
[0387]
在一些实施例中,语法元素当前不被约束为在图片的所有条带中是相同的。建议评估这些语法元素的预期使用,以确定哪些可以移动到图片标头中,以简化整体vvc设计,因为据称在每个条带标头中处理大量语法元素会产生复杂性影响。
[0388]
1.建议将以下语法元素移动到图片标头。目前对它们在不同的条带上具有不同的值没有限制,但据称在每个条带标头中传输它们没有/最小的好处并且有编解码损失,因为它们的预期使用将在图片级别发生变化:
[0389]
a.six_minus_max_num_merge_cand
[0390]
b.five_minus_max_num_subblock_merge_cand
[0391]
c.slice_fpel_mmvd_enabled_flag
[0392]
d.slice_disable_bdof_dmvr_flag
[0393]
e.max_num_merge_c和_minus_max_num_triangle_cand
[0394]
f.slice_six_minus_max_num_ibc_merge_cand
[0395]
2.建议将以下语法元素移动到图片标头。目前对它们在不同的条带上具有不同的值没有限制,但据称在每个条带标头中传输它们没有/最小的好处并且有编解码损失,因为它们的预期使用将在图片级别发生变化:
[0396]
a.partition_constraints_override_flag
[0397]
b.slice_log2_diff_min_qt_min_cb_luma
[0398]
c.slice_max_mtt_hierarchy_depth_luma
[0399]
d.slice_log2_diff_max_bt_min_qt_luma
[0400]
e.slice_log2_diff_max_tt_min_qt_luma
[0401]
f.slice_log2_diff_min_qt_min_cb_chroma
[0402]
g.slice_max_mtt_hierarchy_depth_chroma
[0403]
h.slice_log2_diff_max_bt_min_qt_chroma
[0404]
i.slice_log2_diff_max_tt_min_qt_chroma
[0405]
与这些语法元素中的一些相关联的条件检查“slice_type==i”在移到图片标头时已被删除。
[0406]
3.建议将以下语法元素移动到图片标头。目前对它们在不同的条带上具有不同的值没有限制,但据称在每个条带标头中传输它们没有/最小的好处并且有编解码损失,因为它们的预期使用将在图片级别发生变化:
[0407]
a.mvd_l1_zero_flag
[0408]
与这些语法元素中的一些相关联的条件检查“slice_type==b”在移到图片标头时已被删除。
[0409]
4.建议将以下语法元素移动到图片标头。目前对它们在不同的条带上具有不同的值没有限制,但据称在每个条带标头中传输它们没有/最小的好处并且有编解码损失,因为它们的预期使用将在图片级别发生变化:
[0410]
a.dep_quant_enabled_flag
[0411]
b.sign_data_hiding_enabled_flag
[0412]
2.10.1示例语法表
[0413]
7.3.2.8图片标头rbsp语法
[0414]
[0415]
[0416]
[0417]
[0418][0419]
3.现有实现的缺点
[0420]
dmvr和bio在细化运动矢量的过程中不涉及原始信号,这可能导致编解码块的运动信息不准确。另外,dmvr和bio有时在运动细化后使用分数运动矢量,而屏幕视频通常是整数运动矢量,这使得当前的运动信息更加不准确并且使编解码性能更差。
[0421]
当rpr应用于vvc时,rpr(arc)可能存在以下问题:
[0422]
1.对于rpr,对于块中的相邻样点,插值滤波器可能不同,这在simd(单指令多数据)实现中是不可取的。
[0423]
2.边界区域不考虑rpr。
[0424]
3.值得注意的是,“一致性裁剪窗口偏移参数仅应用于输出。所有内部解码过程都应用于未裁剪的图片尺寸。”然而,当应用rpr时,这些参数可能在解码过程中使用。
[0425]
4.在推导参考样点位置时,rpr只考虑两个一致性窗口之间的比率。但是,两个一致性窗口之间的左上偏移量差异也应该考虑在内。
[0426]
5.在vvc中约束了参考图片的宽度/高度与当前图片的宽度/高度之比。然而,参考图片的一致性窗口的宽度/高度与当前图片的一致性窗口的宽度/高度之比未约束。
[0427]
6.图片标头中并不是所有的语法元素都得到了正确的处理。
[0428]
7.在当前的vvc中,对于tpm、geo预测模式,无论视频序列的色度样点位置类型如何,都会导出色度混合权重。例如,在tpm/geo中,如果色度权重自亮度权重导出,则可能需要对亮度权重进行下采样以匹配色度信号的样点。色度下采样通常假定色度样点位置类型为0而应用,这在itu-rbt.601或itu-rbt.709容器中被广泛使用。然而,如果使用不同的色度样点位置类型,则这可能导致色度样点与下采样亮度样点之间的不对准,这可能降低编解码性能。
[0429]
4.示例技术和实施例
[0430]
下面描述的详细实施例应被视为解释一般概念的示例。不应狭义地解释这些实施例。此外,这些实施例可以以任何方式组合。
[0431]
下面描述的方法也可以适用于除下面提到的dmvr和bio之外的其他解码器运动信息导出技术。
[0432]
运动矢量用(mv_x,mv_y)表示,其中mv_x是水平分量,mv_y是垂直分量。
[0433]
在本公开中,图片的分辨率(或维度、宽度/高度或尺寸)可以指编码/解码图片的分辨率(或维度、宽度/高度或尺寸),或者可以指编码/解码图片中一致性窗口的分辨率(或维度、宽度/高度或尺寸)。
[0434]
rpr中的运动补偿
[0435]
1.当参考图片的分辨率不同于当前图片时,或者当参考图片的宽度和/或高度大于当前图片的宽度和/或高度时,可以使用相同的水平和/或垂直插值滤波器来生成当前块的一组样点(至少两个样点)的预测值。
[0436]
a.在一个示例中,该组可以包括块的区域中的所有样点。
[0437]
i.例如,可以将块划分为彼此不重叠的s个mxn的矩形。每个mxn矩形是一个组。在如图2所示的示例中,16x16的块可以被分成16个4x4的矩形,每个矩形都是一个组。
[0438]
ii.例如,具有n个样点的行是一个组。n是不大于块宽度的整数。在一个示例中,n是4或8或块宽度。
[0439]
iii.例如,有n个样点的列是一个组。n是不大于块高度的整数。在一个示例中,n是4或8或块的高度。
[0440]
iv.m和/或n可以预先定义或动态导出,例如基于块维度/编解码信息或被信令通知。
[0441]
b.在一个示例中,组中的样点可以具有相同的mv(表示为共享mv)。
[0442]
c.在一个示例中,组中的样点可以具有水平分量相同的mv(表示为共享水平分量)。
[0443]
d.在一个示例中,组中的样点可以具有垂直分量相同的mv(表示为共享垂直分量)。
[0444]
e.在一个示例中,组中的样点可以具有水平分量的分数部分相同的mv(表示为共享的分数水平分量)。
[0445]
i.例如,假设第一个样点的mv是(mv1x,mv1y),第二个样点的mv是(mv2x,mv2y),那么应该满足mv1x&(2
m-1)等于mv2x&(2
m-1),其中m表示mv精度。例如,m=4。
[0446]
f.在一个示例中,组中的样点可以具有垂直分量的分数部分相同的mv(表示为共享的分数垂直分量)。
[0447]
i.例如,假设第一个样点的mv是(mv1x,mv1y),第二个样点的mv是(mv2x,mv2y),那么应该满足mv1y&(2
m-1)等于mv2y&(2
m-1),其中m表示mv精度。例如,m=4。
[0448]
g.在一个示例中,对于要被预测的组中的样点,可以首先根据当前图片和参考图片(例如在jvet-o2001-v14中的8.5.6.3.1中推导的(refx
l
,refy
l
))的分辨率来导出用mvb表示的运动矢量。然后,mvb可进一步被修改(例如,取整/截断/剪裁)为mv’,以满足诸如上述各项的要求,并且mv’将用于导出样点的预测样点。
[0449]
i.在一个示例中,mv’具有与mvb相同的整数部分,并且mv’的分数部分被设置为共享的水平和/或垂直分数部分。
[0450]
ii.在一个示例中,mv’被设置为具有共享的分数水平和/或垂直分量,并且最接近mvb。
[0451]
h.共享运动矢量(和/或共享水平分量和/或共享垂直分量和/或共享分数垂直分量和/或共享分数垂直分量)可以被设置为组特定样点的运动矢量(和/或水平分量和/或垂直分量和/或分数垂直分量和/或分数垂直分量)。
[0452]
i.例如,特定样点可以位于矩形组的一角,例如图3a所示的“a”、“b”、“c”和“d”。
[0453]
ii.例如,特定样点可以位于矩形组的中心,例如图3a所示的“e”、“f”、“g”和“h”。
[0454]
iii.例如,特定样点可位于行形或列形组的末端,例如图3b和3c中所示的“a”和“d”。
[0455]
iv.例如,特定样点可位于行形或列形组的中间,例如图3b和3c中所示的“b”和“c”。
[0456]
v.在一个示例中,特定样点的运动矢量可以是项目g中提到的mvb。
[0457]
i.共享运动矢量(和/或共享水平分量和/或共享垂直分量和/或共享分数垂直分量和/或共享分数垂直分量)可以设置为位于与此组中所有样点相比都不同位置处的虚拟样点的运动矢量(和/或水平分量和/或垂直分量和/或分数垂直分量和/或分数垂直分量)。
[0458]
i.在一个示例中,虚拟样点不在该组中,但它位于覆盖该组中所有样点的区域中。
[0459]
1)或者,虚拟样点位于覆盖该组中所有样点的区域之外,例如,靠近区域的右下角位置。
[0460]
ii.在一个示例中,虚拟样点的mv是以与真实样点相同的方式但不同的位置导出的。
[0461]
iii.图3a-3c中的“v”示出了三个虚拟样点的示例。
[0462]
j.共享mv(和/或共享的水平分量和/或共享的垂直分量和/或共享的分数垂直分量和/或共享的分数垂直分量)可以设置为多个样点和/或虚拟样点的mv(和/或水平分量和/或垂直分量和/或分数垂直分量和/或分数垂直分量)的函数。
[0463]
i.例如,共享mv(和/或共享水平分量和/或共享垂直分量和/或共享分数垂直分量和/或共享分数垂直分量)可以设置为组中全部或部分样点、或图3a中的样点“e”、“f”、“g”、“h”,或图3a中的样点“e”、“h”,或图3a中的样点“a”、“b”、“c”、“d”,或图3a中的样点“a”、“d”,或图3b中的样点“b”、“c”,或图3b中的样点“a”、“d”,或图3c中的样点“b”、“c”,或图3c中的样点“a”、“d”的mv(和/或水平分量和/或垂直分量分量分量和/或垂直分量分量和/或垂直分量分量分量)的平均值。
[0464]
2.提出当参考图片的分辨率与当前图片不同,或者当参考图片的宽度和/或高度大于当前图片的宽度和/或高度时,仅允许整数mv执行运动补偿处理以导出当前块的预测块。
[0465]
a.在一个示例中,用于要预测的样点的解码运动矢量在被使用之前被取整为整数mv。
[0466]
b.在一个示例中,用于要预测的样点的解码运动矢量被取整到最接近解码运动矢量的整数mv。
[0467]
c.在一个示例中,用于要预测的样点的解码运动矢量被取整到在水平方向上最接近解码运动矢量的整数mv。
[0468]
d.在一个示例中,用于要预测的样点的解码运动矢量被取整到在垂直方向上最接近解码运动矢量的整数mv。
[0469]
3.在对当前块中的样点进行运动补偿处理中使用的运动矢量(例如,上述项目中提到的共享mv/共享水平或垂直或分数分量/mv

)可以存储在解码图片缓冲器中,并用于当前/不同图片中的后续块的运动矢量预测。
[0470]
a.或者,在当前块中的样点的运动补偿处理中使用的运动矢量(例如,上述项目中提到的共享mv/共享水平或垂直或分数分量/mv

)可以不允许用于当前/不同图片中的后续块的运动矢量预测。
[0471]
i.在一个示例中,解码的运动矢量(例如,上述项目符号中的mvb)可用于当前/不同图片中的后续块的运动矢量预测。
[0472]
b.在一个示例中,在针对当前块中的样点的运动补偿处理中使用的运动矢量可用于滤波处理(例如,去方块滤波器/sao/alf)。
[0473]
i.或者,可以在滤波处理中使用解码的运动矢量(例如,上述项目中的mvb)。
[0474]
c.在一个示例中,这样的mv可以在子块级别导出,并且可以为每个子块存储。
[0475]
4.提出根据参考图片的分辨率是否与当前图片不同,或者参考图片的宽度和/或高度是否大于当前图片的宽度和/或高度,可以选择在运动补偿处理中用于导出当前块的预测块的插值滤波器。
[0476]
a.在一个示例中,当满足条件a时,可以应用具有较少抽头的插值滤波器,其中条件a取决于当前图片和/或参考图片的维度。
[0477]
i.在一个示例中,条件a是参考图片的分辨率不同于当前图片。
[0478]
ii.在一个示例中,条件a是参考图片的宽度和/或高度大于当前图片的宽度和/或高度。
[0479]
iii.在一个示例中,条件a是w1》a*w2和/或h1》b*h2,其中(w1,h1)代表参考图片的宽度和高度,(w2,h2)代表当前图片的宽度和高度,a和b是两个因子,例如a=b=1.5。
[0480]
iv.在一个示例中,条件a还可以取决于是否使用双向预测。
[0481]
v.在一个示例中,应用单抽头滤波器。换言之,输出未经滤波的整数像素作为插值结果。
[0482]
vi.在一个示例中,当参考图片的分辨率与当前图片不同时,应用双线性滤波器。
[0483]
vii.在一个示例中,当参考图片的分辨率与当前图片不同,或者参考图片的宽度和/或高度大于当前图片的宽度和/或高度时,应用4抽头滤波器或6抽头滤波器。
[0484]
1)6抽头滤波器也可用于仿射运动补偿。
[0485]
2)4抽头滤波器也可用于色度样点的插值。
[0486]
b.在一个示例中,当参考图片的分辨率与当前图片不同,或者参考图片的宽度和/或高度大于当前图片的宽度和/或高度时,使用填充样点来执行插值。
[0487]
c.是否应用和/或如何应用第4项中公开的方法可能取决于颜色分量。
[0488]
i.例如,这些方法只应用于亮度分量。
[0489]
d.是否应用和/或如何应用在第4项中公开的方法可以取决于插值滤波方向。
[0490]
i.例如,这些方法仅适用于水平滤波。
[0491]
ii.例如,这些方法仅适用于垂直滤波。
[0492]
5.提出当参考图片的分辨率与当前图片不同,或者当参考图片的宽度和/或高度大于当前图片的宽度和/或高度时,应用用于预测块生成的两阶段处理。
[0493]
a.在第一阶段中,取决于当前图片和参考图片的宽度和/或高度,通过对参考图片中的区域进行上采样或下采样来生成虚拟参考块。
[0494]
b.在第二阶段中,不取决于当前图片和参考图片的宽度和/或高度,通过应用插值滤波从虚拟参考块生成预测样点。
[0495]
6.提出可以根据当前图片和参考图片的宽度和/或高度来导出在一些实施例中用于参考样点填充的边界块的左上角坐标(xsbint
l
,ysbint
l
)的计算。
[0496]
a.在一个示例中,以全样点为单位的亮度位置被修改为:
[0497]
xinti=clip3(xsbint
l-dx,xsbint
l
+sbwidth+ux,xinti),
[0498]
yinti=clip3(ysbint
l-dy,ysbint
l
+sbheight+uy,yinti),
[0499]
其中dx和/或dy和/或ux和/或uy可取决于当前图片和参考图片的宽度和/或高度。
[0500]
b.在一个示例中,以全样点为单位的色度位置被修改为:
[0501]
xinti=clip3(xsbint
c-dx,xsbintc+sbwidth+ux,xinti)
[0502]
yinti=clip3(ysbint
c-dy,ysbintc+sbheight+uy,yinti)
[0503]
其中dx和/或dy和/或ux和/或uy可取决于当前图片和参考图片的宽度和/或高度。
[0504]
7.代替基于与当前图片相同的参考图片分辨率存储/使用块的运动矢量,提出使用考虑分辨率差异的真实运动矢量。
[0505]
a.或者,此外,当使用运动矢量来生成预测块时,不需要根据当前图片和参考图片(例如(refxl,refyl))的分辨率进一步修改运动矢量。
[0506]
rpr与其它编解码工具之间的相互作用
[0507]
8.是否/如何应用滤波处理(例如,去方块滤波器)可取决于参考图片的分辨率和/或当前图片的分辨率。
[0508]
a.在一个示例中,除运动矢量差之外,去方块滤波器中的边界强度(bs)设置可以考虑分辨率差异。
[0509]
i.在一个示例中,根据当前图片和参考图片的分辨率的缩放运动矢量差可用于确定边界强度。
[0510]
b.在一个示例中,如果块a的至少一个参考图片的分辨率不同于(或小于或大于)块b的至少一个参考图片的分辨率,则与对两个块使用相同的分辨率的情况相比,可以不同地设置块a和块b之间的边界的去方块滤波器的强度(例如,增加或减少)。
[0511]
c.在一个示例中,如果块a的至少一个参考图片的分辨率不同于(或小于或大于)块b的至少一个参考图片的分辨率,则块a和块b之间的边界被标记为要被滤波(例如,bs被设置为2)。
[0512]
d.在一个示例中,如果块a和/或块b的至少一个参考图片的分辨率不同于(或小于或大于)当前图片的分辨率,则与参考图片和当前图片使用相同的分辨率相比,可以不同地设置块a和块b之间的边界的去块滤波器的强度(例如,增加/减小)。
[0513]
e.在一个示例中,如果两个块中至少一个块的至少一个参考图片具有与当前图片的分辨率不同的分辨率,则将两个块之间的边界被标记为要被滤波(例如,bs被设置为2)。
[0514]
9.当子图片存在时,一致性比特流可以满足参考图片必须具有与当前图片相同的分辨率。
[0515]
a.或者,当参考图片具有与当前图片不同的分辨率时,当前图片中必须没有子图片。
[0516]
b.或者,对于当前图片中的子图片,不允许使用与当前图片具有不同分辨率的参考图片。
[0517]
i.或者,另外,还可以调用参考图片管理来排除那些具有不同分辨率的参考图片。
[0518]
10.在一个示例中,可以为具有不同分辨率的图片分别定义子图片(例如,如何将一个图片划分成多个子图片)。
[0519]
在一个示例中,如果参考图片具有与当前图片不同的分辨率,则可以通过缩放和/或偏移当前图片的子图片来导出参考图片中的相应子图片。
[0520]
11.当参考图片的分辨率与当前图片的分辨率不同时,可以启用prof(使用光流的预测细化)。
[0521]
a.在一个示例中,可以为一组样点生成一组mv(表示为mvg),并且可以用于如第1项所述的运动补偿。另一方面,可以针对每个样点导出mv(表示为mv
p
),并且mv
p
和mvg之间的差(例如,对应于prof中使用的δv)以及梯度(例如,运动补偿块的空间梯度)可用于导出预测细化。
[0522]
b.在一个示例中,mv
p
可能与mvg具有不同的精度。例如,mv
p
可以是1/n像素(n》0)精度,n=32、64等。
[0523]
c.在一个示例中,mvg可以具有与内部mv精度不同的精度(例如,1/16pel)。
[0524]
d.在一个示例中,将预测细化加到预测块以生成精细化预测块。
[0525]
e.在一个示例中,可以在每个预测方向上应用这种方法。
[0526]
f.在一个示例中,这种方法可仅应用于单向预测情况。
[0527]
g.在一个示例中,该方法可应用于单向预测或/和双向预测。
[0528]
h.在一个示例中,仅当参考图片具有与当前图片不同的分辨率时,才可以应用这种方法。
[0529]
12.提出当参考图片的分辨率与当前图片的分辨率不同时,块/子块只能使用一个mv来执行运动补偿处理以导出当前块的预测块。
[0530]
a.在一个示例中,块/子块的唯一mv可定义为与块/子块内的每个样点相关联的所有mv的函数(例如,平均值)。
[0531]
b.在一个示例中,块/子块的唯一mv可定义为与块/子块内的选定样点(例如,中心样点)相关联的选定mv。
[0532]
c.在一个示例中,4x4块或子块(例如,4x1)可仅使用一个mv。
[0533]
d.在一个示例中,bio可进一步用于补偿由于基于块的运动矢量而造成的精度损失。
[0534]
13.当参考图片的宽度和/或高度与当前图片的宽度和/或高度不同时,可以应用没有信令通知任何基于块的运动矢量的延迟(lazy)模式。
[0535]
a.在一个示例中,可以不信令通知运动矢量,并且运动补偿处理是近似于静止图片的纯分辨率变化的情况。
[0536]
b.在一个示例中,当分辨率改变时,只有图片/片/砖块/ctu级别的运动矢量可以被信令通知,并且关块可以使用该运动矢量。
[0537]
14.对于用仿射预测模式和/或非仿射预测模式编解码的块,当参考图片的宽度和/或高度不同于当前图片的宽度和/或高度时,prof可用于近似运动补偿。
[0538]
a.在一个示例中,当参考图片的宽度和/或高度与当前图片的宽度和/或高度不同时,可以启用prof。
[0539]
b.在一个示例中,一组仿射运动可以通过组合指示的运动和分辨率缩放来生成,并由prof使用。
[0540]
15.当参考图片的宽度和/或高度与当前图片的宽度和/或高度不同时,交织预测(例如,如jvet-k0102中所提出的)可用于近似运动补偿。
[0541]
a.在一个示例中,分辨率变化(缩放)被表示为仿射运动,并且可以应用交织运动预测。
[0542]
16.当当前图片的宽度和/或高度与同一irap周期中的irap图片的宽度和/或高度
不同时,lmcs和/或色度残差缩放可被禁用。
[0543]
a.在一个示例中,当lmcs被禁用时,诸如slice_lmcs_enabled_flag,slice_lmcs_aps_id,和slice_chroma_residual_scale_flag的条带级别标志可不被信令通知并被推断为0。
[0544]
b.在一个示例中,当禁用色度残差缩放时,诸如slice_chroma_residual_scale_flag的条带级别标志可以不被信令通知并且被推断为0。
[0545]
关于rpr的约束
[0546]
17.rpr可应用于具有块维度约束的编解码块。
[0547]
a.在一个示例中,对于m
×
n编解码块,m为块宽度,n为块高度,当m
×
n《t或m
×
n《=t(例如t=256)时,可以不使用rpr。
[0548]
b.在一个示例中,当m《k(或m《=k)(例如k=16)和/或n《l(或n《=l)(例如l=16)时,可以不使用rpr。
[0549]
18.可以添加比特流一致性来限制活动参考图片(或其一致性窗口)的宽度和/或高度与当前图片(或其一致性窗口)的宽度和/或高度之间的比率。假设refpicw和refpich表示参考图片的宽度和高度,curpicw和curpich表示当前图片的宽度和高度,
[0550]
a.在一个示例中,当(refpicw
÷
curpicw)等于整数时,可以将参考图片标记为活动参考图片。
[0551]
i.或者,当(refpicw
÷
curpicw)等于分数时,参考图片可被标记为不可用。
[0552]
b.在一个示例中,当(refpicw
÷
curpicw)等于(x*n),其中x表示分数,例如x=1/2,n表示整数,例如n=1、2、3、4

,则可以将参考图片标记为活动参考图片。
[0553]
i.在一个示例中,当(refpicw
÷
curpicw)不等于(x*n)时,参考图片可以被标记为不可用。
[0554]
19.是否和/或如何为m
×
n块启用编解码工具(例如,双向预测/整个三角预测模式(tpm)/tpm中的混合处理)可取决于参考图片(或其一致性窗口)和/或当前图片(或其一致性窗口)的分辨率。
[0555]
a.在一个示例中,m*n《t或m*n《=t(例如t=64)。
[0556]
b.在一个示例中,m《k(或m《=k)(例如k=16)和/或n《l(或n《=l)(例如l=16)。
[0557]
c.在一个示例中,当至少一个参考图片的宽度/高度与当前图片不同时,不允许使用编解码工具,
[0558]
i.在一个示例中,当块的至少一个参考图片的宽度/高度大于当前图片的宽度/高度时,不允许使用编解码工具。
[0559]
d.在一个示例中,当块的每个参考图片的宽度/高度与当前图片的宽度/高度不同时,不允许使用编解码工具,
[0560]
i.在一个示例中,当每个参考图片的宽度/高度大于当前图片的宽度/高度时,不允许使用编解码工具。
[0561]
e.或者,此外,当不允许编解码工具时,可以使用一个mv进行单向预测来进行运动补偿。
[0562]
一致性窗口相关
[0563]
20.一致性裁剪窗口偏移参数(例如conf_win_left_offset)以n像素精度而不是1
像素信令通知,其中n是大于1的正整数。
[0564]
a.在一个示例中,实际偏移可导出为信令通知的偏移乘以n。
[0565]
b.在一个示例中,n被设置为4或8。
[0566]
21.提出一致性裁剪窗口偏移参数不仅应用于输出。特定的内部解码过程可能取决于裁剪的图片尺寸(即,图片中一致性窗口的分辨率)。
[0567]
22.提出当第一视频单元和第二视频单元中表示为(pic_width_in_luma_samples,pic_height_in_luma_samples)的图片的宽度和/或高度相同时,第一视频单元(例如pps)和第二视频单元中的一致性裁剪窗口偏移参数可能不同。
[0568]
23.提出当第一视频单元和第二视频单元中表示为(pic_width_in_luma_samples,pic_height_in_luma_samples)的图片的宽度和/或高度不同时,第一视频单元(例如pps)和第二视频单元中的一致性裁剪窗口偏移参数在一致性比特流中应该相同。
[0569]
a.提出无论第一视频单元和第二视频单元中表示为(pic_width_in_luma_samples,pic_height_in_luma_samples)的图片的宽度和/或高度是否相同,第一视频单元(例如pps)和第二视频单元中的一致性裁剪窗口偏移参数在一致性比特流中都应该相同。
[0570]
24.假设在第一视频单元(例如pps)中定义的一致性窗口的宽度和高度分别表示为w1和h1。在第二视频单元(例如pps)中定义的一致性窗口的宽度和高度分别表示为w2和h2。在第一视频单元(例如pps)中定义的一致性窗口的左上位置被表示为x1和y1。在第二视频单元(例如pps)中定义的一致性窗口的左上位置被表示为x2和y2。在第一视频单元(例如pps)中定义的编码/解码图片的宽度和高度(例如pic_width_in_luma_samples和pic_height_in_luma_samples)分别表示为pw1和ph1。在第二视频单元(例如pps)中定义的编码/解码图片的宽度和高度表示为pw2和ph2。
[0571]
a.在一个示例中,在一致性比特流中,w1/w2应等于x1/x2。
[0572]
i.或者,在一致性比特流中,w1/x1应等于w2/x2。
[0573]
ii.或者,在一致性比特流中,w1*x2应等于w2*x1。
[0574]
b.在一个示例中,在一致性比特流中,h1/h2应该等于y1/y2。
[0575]
i.或者,在一致性比特流中,h1/y1应等于h2/y2。
[0576]
ii.或者,在一致性比特流中,h1
×
y2应等于h2
×
y1。
[0577]
c.在一个示例中,在一致性比特流中,pw1/pw2应等于x1/x2。
[0578]
i.或者,在一致性比特流中,pw1/x1应等于pw2/x2。
[0579]
ii.或者,在一致性比特流中,pw1
×
x2应等于pw2
×
x1。
[0580]
d.在一个示例中,在一致性比特流中,ph1/ph2应等于y1/y2。
[0581]
i.或者,在一致性比特流中,ph1/y1应等于ph2/y2。
[0582]
ii.或者,在一致性比特流中,ph1*y2应等于ph2*y1。
[0583]
e.在一个示例中,在一致性比特流中,pw1/pw2应等于w1/w2。
[0584]
i.或者,在一致性比特流中,pw1/w1应等于pw2/w2。
[0585]
ii.或者,在一致性比特流中,pw1*w2应等于pw2*w1。
[0586]
f.在一个示例中,在一致性比特流中,ph1/ph2应等于h1/h2。
[0587]
i.或者,在一致性比特流中,ph1/h1应等于ph2/h2。
[0588]
ii.或者,在一致性比特流中,ph1*h2应等于ph2*h1。
[0589]
g.在一致性比特流中,如果pw1大于pw2,则w1必须大于w2。
[0590]
h.在一致性比特流中,如果pw1小于pw2,则w1必须小于w2。
[0591]
i.在一致性比特流中,(pw1-pw2)*(w1-w2)不得小于0。
[0592]
j.在一致性比特流中,如果ph1大于ph2,则h1必须大于h2。
[0593]
k.在一致性比特流中,如果ph1小于ph2,则h1必须小于h2。
[0594]
l.在一致性比特流中,(ph1-ph2)*(h1-h2)不得小于0。
[0595]
m.在一致性比特流中,如果pw1》=pw2,则w1/w2不得大于(或小于)pw1/pw2。
[0596]
n.在一致性比特流中,如果ph1》=ph2,h1/h2不得大于(或小于)ph1/ph2。
[0597]
25.假设当前图片的一致性窗口的宽度和高度分别表示为w和h。参考图片的一致性窗口的宽度和高度分别表示为w'和h'。那么一致性比特流应当符合至少下面的一个约束。
[0598]
a.w*pw》=w';pw是整数,例如2。
[0599]
b.w*pw》w';pw是整数,例如2。
[0600]
c.w'*pw'》=w;pw'是整数,例如8。
[0601]
d.w'*pw'》w;pw'是整数,例如8。
[0602]
e.h*ph》=h';ph是整数,例如2。
[0603]
f.h*ph》h';ph是整数,例如2。
[0604]
g.h'*ph'》=h;ph'是整数,例如8。
[0605]
h.h'*ph'》h;ph'是整数,例如8。
[0606]
i.在一个示例中,pw等于pw’。
[0607]
j.在一个示例中,ph等于ph’。
[0608]
k.在一个示例中,pw等于ph。
[0609]
l.在一个示例中,pw'等于ph'。
[0610]
m.在一个示例中,当w和h分别表示当前图片的宽度和高度时,可要求一致性比特流满足上述子项。w'和h'代表参考图片的宽度和高度。
[0611]
26.提出了一致性窗口参数被部分信令通知。
[0612]
a.在一个示例中,图片的一致性窗口中的左上样点与图片中的左上样点相同。
[0613]
b.例如,vvc中定义的conf_win_left_offset不被信令通知并推断为零。
[0614]
c.例如,vvc中定义的conf_win_top_offset不被信令通知并推断为零。
[0615]
27.提出参考样点的位置(例如,vvc中定义的(refx
l
,refy
l
))的推导可以取决于当前图片和/或参考图片的一致性窗口的左上位置(例如,vvc中定义的conf_win_left_offset,conf_win_top_offset)。图4示出了在vvc(a)和所提议的方法(b)中导出的样点位置的示例。虚线矩形表示一致性窗口。
[0616]
a.在一个示例中,仅当当前图片的宽度和/或高度与参考图片的宽度和/或高度不同时,才存在相关性。
[0617]
b.在一个示例中,参考样点的水平位置(例如,在vvc中定义的refx
l
)的推导可以取决于当前图片和/或参考图片的一致性窗口的左侧位置(例如,vvc中定义的conf_win_left_offset)。
[0618]
i.在一个示例中,计算当前样点相对于当前图片中一致性窗口左上位置的水平位
置(表示为xsb'),并用于导出参考样点的位置。
[0619]
1)例如,计算xsb'=xsb

(conf_win_left_offset《《prec)并用于导出参考样点的位置,其中xsb代表当前图片中当前样点的水平位置。conf_win_left_offset表示当前图片的一致性窗口中左上方样点的水平位置。prec表示xsb和xsb'的精度,其中(xsb》》prec)可以表示当前样点相对于当前图片的实际水平坐标。例如,prec=0或prec=4。
[0620]
ii.在一个示例中,计算参考样点相对于参考图片中一致性窗口的左上位置的水平位置(表示为rx’)。
[0621]
1)rx'的计算可取决于xsb'和/或运动矢量和/或重采样率。
[0622]
iii.在一个示例中,根据rx'计算参考样点相对于参考图片的水平位置(表示为rx)。
[0623]
1)例如,计算rx=rx'+(conf_win_left_offset_ref《《prec),其中conf_win_left_offset_ref表示参考图片的一致性窗口中左上样点的水平位置。prec表示rx和rx'的精度。例如,prec=0或prec=4。
[0624]
iv.在一个示例中,rx可直接根据xsb

和/或运动矢量和/或重采样率来计算。换句话说,rx'和rx的两个推导步骤合并为一步计算。
[0625]
v.是否和/或如何使用当前图片和/或参考图片的一致性窗口的左侧位置(如vvc中定义的conf_win_left_offset)可能取决于颜色分量和/或颜色格式。
[0626]
1)例如,conf_win_left_offset可以修改为conf_win_left_offset=conf_win_left_offset*subwidthc,其中subwidthc定义颜色分量的水平采样步长。例如,对于亮度分量,subwidthc等于1。当颜色格式为4:2:0或4:2:2时,色度分量的subwidthc等于2。
[0627]
2)例如,conf_win_left_offset可以修改为conf_win_left_offset=conf_win_left_offset/subwidthc,其中subwidthc定义颜色分量的水平采样步长。例如.,对于亮度分量,subwidthc等于1。当颜色格式为4:2:0或4:2:2时,色度分量的subwidthc等于2。
[0628]
c.在一个示例中,参考样点的垂直位置(例如,在vvc中定义的refy
l
)的推导可以取决于当前图片和/或参考图片的一致性窗口的顶部位置(例如,vvc中定义的conf_win_top_offset)。
[0629]
i.在一个示例中,计算当前样点相对于当前图片中一致性窗口左上位置的垂直位置(表示为ysb'),并用于导出参考样点的位置。
[0630]
1)例如,计算ysb'=ysb

(conf_win_top_offset《《prec)并用于导出参考样点的位置,其中ysb表示当前样点在当前图片中的垂直位置。conf_win_top_offset表示当前图片的一致性窗口中左上角样点的垂直位置。prec表示ysb和ysb'的精度。例如,prec=0或prec=4。
[0631]
ii.在一个示例中,计算参考样点相对于参考图片中一致性窗口的左上位置的垂直位置(表示为ry’)。
[0632]
1)ry'的计算可取决于ysb'和/或运动矢量和/或重采样率。
[0633]
iii.在一个示例中,根据ry'计算参考图片中参考样点相对的垂直位置(表示为ry)。
[0634]
1)例如,计算ry=ry'+(conf_win_top_offset_ref《《prec),其中conf_win_top_offset_ref表示参考图片的一致性窗口中左上样点的垂直位置。prec表示ry和ry'的精度。
例如,prec=0或prec=4。
[0635]
iv.在一个示例中,可以直接根据ysb

和/或运动矢量和/或重采样率来计算ry。换言之,ry'和ry的两个推导步骤合并为一步计算。
[0636]
v.是否和/或如何使用当前图片和/或参考图片的一致性窗口的顶部位置(如vvc中定义的conf_win_top_offset)可取决于颜色分量和/或颜色格式。
[0637]
1)例如,conf_win_top_offset可以修改为conf_win_top_offset=conf_win_top_offset*subheightc,其中subheightc定义颜色分量的垂直采样步长。例如,对于亮度分量,subheightc等于1。当颜色格式为4:2:0时,色度分量的subheightc等于2。
[0638]
2)例如,conf_win_top_offset可以修改为conf_win_top_offset=conf_win_top_offset/subheightc,其中subheightc定义颜色分量的垂直样点步长。例如,对于亮度分量,subheightc等于1。当颜色格式为4:2:0时,色度分量的subheightc等于2。
[0639]
28.提出将参考样点水平坐标的整数部分裁剪为[minw,maxw]。假设参考图片的一致性窗口的宽度和高度分别表示为w和h。参考图片的一致性窗口的宽度和高度用w'和h'表示。参考图片中一致性窗口的左上角位置表示为(x0,y0)。
[0640]
a.在一个示例中,minw等于0。
[0641]
b.在一个示例中,minw等于x0。
[0642]
c.在一个示例中,maxw等于w-1。
[0643]
d.在一个示例中,maxw等于w'-1。
[0644]
e.在一个示例中,maxw等于x0+w'-1。
[0645]
f.在一个示例中,可以基于颜色格式和/或颜色分量修改minw和/或maxw。
[0646]
i.例如,minw被修改为minw*subc。
[0647]
ii.例如,将minw修改为minw/subc。
[0648]
iii.例如,maxw修改为maxw*subc。
[0649]
iv.例如,maxw修改为maxw/subc。
[0650]
v.在一个示例中,对于亮度分量,subc等于1。
[0651]
vi.在一个示例中,当颜色格式为4:2:0时,对于色度分量,subc等于2。
[0652]
vii.在一个示例中,当颜色格式为4:2:2时,对于色度分量,subc等于2。
[0653]
viii.在一个示例中,当颜色格式为4:4:4时,对于色度分量,subc等于1。
[0654]
g.在一个示例中,是否和/或如何进行裁剪可以取决于当前图片(或其中的一致性窗口)的维度和参考图片(或其中的一致性窗口)的维度。
[0655]
i.在一个示例中,只有当当前图片(或其中的一致性窗口)的维度与参考图片(或其中的一致性窗口)的维度不同时,才进行剪裁。
[0656]
29.提出将参考样点垂直坐标的整数部分裁剪为[minh,maxh]。假设参考图片的一致性窗口的宽度和高度分别表示为w和h。参考图片的一致性窗口的宽度和高度用w'和h'表示。参考图片中一致性窗口的左上角位置表示为(x0,y0)。
[0657]
a.在一个示例中,minh等于0。
[0658]
b.在一个示例中,minh等于y0。
[0659]
c.在一个示例中,maxh等于h-1。
[0660]
d.在一个示例中,maxh等于h'-1。
[0661]
e.在一个示例中,maxh等于y0+h'-1。
[0662]
f.在一个示例中,可以基于颜色格式和/或颜色分量来修改minh和/或maxh。
[0663]
i.例如,minh被修改为minh*subc。
[0664]
ii.例如,minh被修改为minh/subc。
[0665]
iii.例如,maxh被修改为maxh*subc。
[0666]
iv.例如,maxh被修改为maxh/subc。
[0667]
v.在一个示例中,对于亮度分量,subc等于1。
[0668]
vi.在一个示例中,当颜色格式为4:2:0时,对于色度分量,subc等于2。
[0669]
vii.在一个示例中,当颜色格式为4:2:2时,对于色度分量,subc等于1。
[0670]
viii.在一个示例中,当颜色格式为4:4:4时,对于色度分量,subc等于1。
[0671]
g.在一个示例中,是否和/或如何进行剪裁可以取决于当前图片(或其中的一致性窗口)的维度和参考图片(或其中的一致性窗口)的维度。
[0672]
i.在一个示例中,只有当当前图片(或其中的一致性窗口)的维度与参考图片(或其中的一致性窗口)的维度不同时,才进行剪裁。
[0673]
在下面的讨论中,如果两个语法元素具有等效的功能,但是可以在不同的视频单元(例如vps/sps/pps/条带标头/图片标头等)处信令通知,则第一语法元素被断言为与第二语法元素“对应”。
[0674]
30.提出语法元素可以在第一视频单元(例如,图片标头或pps)中信令通知,而在较高级别(例如sps)或较低级别(例如条带标头)的第二视频单元中不信令通知对应的语法元素。
[0675]
a.可选地,第一语法元素可以在第一视频单元(例如,图片标头或pps)中信令通知,并且相应的第二语法元素可以在较低级别的第二视频单元(例如条带标头)中被信令通知。
[0676]
i.可选地,可以在第二视频单元中信令通知指示符,以通知此后是否信令通知第二语法元素。
[0677]
ii.在一个示例中,如果第二语法元素被信令通知,则与第二视频单元相关联的条带(例如条带标头)可以遵循第二语法元素的指示,而不是第一语法元素。
[0678]
iii.与第一语法元素相关联的指示符可以在第一视频单元中信令通知,以通知第二语法元素是否在与第一视频单元相关联的任何条带(或其他视频单元)中被信令通知。
[0679]
b.可选地,第一语法元素可以在更高级别的第一视频单元(例如vps/sps/pps)中信令通知,并且相应的第二语法元素可以在第二视频单元(例如图片标头)中被信令通知。
[0680]
i.替代地,可以信令通知指示符,以通知此后是否信令通知第二语法元素。
[0681]
ii.在一个示例中,如果第二语法元素被信令通知,则与第二视频单元相关联的图片(可以被划分成条带)可以遵循第二语法元素的指示,而不是第一语法元素。
[0682]
c.图片标头中的第一语法元素可能具有与条带标头中的第二语法元素等效的功能,如在第2.6节中所定义的(例如但不限于

)但是控制图片的所有条带。
[0683]
d.如在第2.6节中所定义的sps中的第一语法元素可能具有与图片标头中的第二语法元素等效的功能(例如但不限于语法元素等效的功能(例如但不限于

)但是仅控制相关联的图片(该图片可能被分割成条带)。
[0684]
e.如在第2.7节中所定义的pps中的第一语法元素可能具有与图片标头中的第二语法元素等效的功能(例如但不限于语法元素等效的功能(例如但不限于

)但是仅控制相关联的图片(该图片可能被分割成条带)。
[0685]
31.图片标头中信令通知的语法元素与sps/vps/dps中被信令通知或导出的其他语法元素分离。
[0686]
32.dmvr和bdof的启用/禁用的指示可以在图片标头中单独被信令通知,而不是由同一个标志(例如,)控制。
[0687]
33.在alf中,可以在图片标头中信令通知prof/跨分量alf/使用几何分割(geo)的帧间预测的启用/禁用。
[0688]
a.或者,可根据sps中的prof启用标志有条件地在图片标头中信令通知启用/禁用prof的指示。
[0689]
b.或者,可以根据sps中的ccalf启用标志有条件在图片标头中信令通知启用/禁用跨分量alf(ccalf)的指示。
[0690]
c.或者,可以根据sps中的geo启用标志有条件地在图片标头中信令通知启用/禁用geo的指示。
[0691]
d.或者,此外,可以根据在图片标头而不是sps中信令通知的那些语法元素,有条件地在条带标头中信令通知启用/禁用prof/跨分量alf/使用几何分割(geo)的帧间预测的指示。
[0692]
34.同一图片中的条带/砖块/片(或比图片小的其它视频单元)的预测类型的指示可以在图片标头中信令通知。
[0693]
a.在一个示例中,可以在图片标头中信令通知所有条带/砖块/片(或比图片小的
其他视频单元)是否都是帧内编解码的(例如,所有i条带)指示。
[0694]
i.或者,此外,如果指示告诉图片中的所有条带都是i条带,则在条带标头中可能不信令通知条带类型。
[0695]
b.可选地,可以在图片标头中信令通知条带/砖块/片(或比图片小的其它视频单元)中的至少一个是否未经帧内编解码(例如,至少一个非i条带)的指示。
[0696]
c.可选地,可以在图片标头中信令通知所有条带/砖块/片(或比图片小的其它视频单元)是否都具有相同的预测类型(例如,i/p/b条带)的指示。
[0697]
i.或者,进一步地,条带类型可以不在条带标头中信令通知。
[0698]
ii.或者,另外,还可以根据预测类型的指示,有条件地信令通知允许用于特定预测类型的工具(例如,dmvr/bdof/tpm/geo仅允许用于b条带;双树仅允许用于i条带)的指示。
[0699]
d.或者,此外,启用/禁用工具的指示的信令可以取决于上述子项目中提到的预测类型的指示。
[0700]
i.或者,此外,可以根据上述子项目中提到的预测类型的指示来导出启用/禁用工具的指示。
[0701]
35.在本公开中(第1项至第29项),术语“一致性窗口”可替换为其他术语,例如“缩放窗口”。缩放窗口可以不同于一致性窗口被信令通知,并用于导出用于导出rpr的参考样点位置的缩放比率和/或左上偏移。
[0702]
a.在一个示例中,缩放窗口可以由一致性窗口约束。例如,在一致性比特流中,缩放窗口必须包含在一致性窗口中。
[0703]
36.是否和/或如何信令通知变换跳过编解码块的允许的最大块尺寸可取决于变换编解码块的最大块尺寸。
[0704]
a.或者,变换跳过编解码块的最大块尺寸不能大于一致性比特流中的变换编解码块的最大块尺寸。
[0705]
37.是否以及如何信令通知启用联合cb cr残差(jccr)编解码的指示(例如sps_joint_cbcr_enabled_flag)可取决于颜色格式(如4:0:0、4:2:0等)。
[0706]
a.例如,如果颜色格式为4:0:0,则可不信令通知启用联合cb cr残差(jccr)的指示。示例的语法设计如下:
[0707][0708]
tpm/geo中用于色度混合遮罩生成的下采样滤波器类型
[0709]
38.可在视频单元级(例如sps/vps/pps/图片标头/子图片/条带/条带标头/片/砖块/ctu/vpdu级别)信令通知用于色度样点的混合权重推导的下采样滤波器类型。
[0710]
a.在一个示例中,可以信令通知高级别标志以在内容的不同的色度格式类型之间进行切换。
[0711]
i.在一个示例中,可以信令通知高级别标志以在色度格式类型0和色度格式类型2之间进行切换。
[0712]
ii.在一个示例中,可以信令通知标志以指定tpm/geo预测模式中的左上下采样亮
度权重是否与左上亮度权重共位(即,色度样点位置类型0)。
[0713]
iii.在一个示例中,可以信令通知标志,用于指定在tpm/geo预测模式中的左上下采样的亮度样点是否水平地与左上亮度样点共位、但是相对于左上亮度样点垂直偏移了0.5个单位(即,色度样点位置类型2)。
[0714]
b.在一个示例中,可以针对4:2:0色度格式和/或4:2:2色度格式来信令通知下采样滤波器的类型。
[0715]
c.在一个示例中,可以信令通知标志,以指定用于tpm/geo预测的色度下采样滤波器的类型。
[0716]
i.在一个示例中,可以信令通知标志,以指示在tpm/geo预测模式中是使用下采样滤波器a还是下采样滤波器b来导出色度权重。
[0717]
39.可在视频单元级(例如sps/vps/pps/图片标头/子图片/条带/条带标头/片/砖块/ctu/vpdu级别)导出用于色度样点的混合权重推导的下采样滤波器类型。
[0718]
a.在一个示例中,可以定义查找表以指定色度二次采样滤波器类型和内容的色度格式类型之间的对应关系。
[0719]
40.在不同色度样点位置类型的情况下,指定的下采样滤波器可用于tpm/geo预测模式。
[0720]
a.在一个示例中,在特定色度样点位置类型(例如,色度样点位置类型0)的情况下,tpm/geo的色度权重可以从共位的左上亮度权重进行二次样点。
[0721]
b.在一个示例中,在特定色度样点位置类型(例如,色度样点位置类型0或2)的情况下,指定的x抽头滤波器(x是常数,例如x=6或5)可用于tpm/geo预测模式中的色度权重二次采样。
[0722]
41.在视频单元(例如sps、pps、图片标头、条带标头等)中,可以信令通知第一语法元素(例如标志),以指示是否对所有块(条带/图片)禁用多重变换选择(mts)。
[0723]
a.指示如何对帧内编解码块(条带/图片)应用mts(例如启用mts/禁用mts/隐式mts/显式mts)的第二语法元素在第一语法元素的基础上有条件地被信令通知。例如,仅当第一语法元素指示对所有块(条带/图片)不禁用mts时,才信令通知第二语法元素。
[0724]
b.指示如何对帧间编解码块(条带/图片)应用mts(例如启用mts/禁用mts/隐式mts/显式mts)的第三语法元素在第一语法元素的基础上有条件地被信令通知。例如,仅当第一语法元素指示对所有块(条带/图片)不禁用mts时,才信令通知第三语法元素。
[0725]
c.示例的语法设计如下
[0726]
[0727]
d.可以基于是否应用子块变换(sbt)有条件地信令通知第三语法元素。
[0728]
示例语法设计如下
[0729][0730][0731]
e.示例语法设计如下
[0732][0733]
5.附加实施例
[0734]
在下面,文本更改以带下划线的粗体斜体字体显示。
[0735]
5.1关于一致性窗口的约束的实施例
[0736]
and以用于输出的图片坐标中指定的矩形区域的方式指定了从解码过程中输出的cvs中的图片样点。当conformance_window_flag等于0时,conf_win_left_offset,conf_win_right_offset,conf_win_top_offset和conf_win_bottom_offset的值推断为0。
[0737]
一致性裁剪窗口包含水平图片坐标从subwidthc*conf_win_left_offset到pic_width_in_luma_samples-(subwidthc*conf_win_right_offset+1)并且垂直图片坐标从subheightc*conf_win_top_offset到pic_height_in_luma_samples-(subheightc*conf_win_bottom_offset+1)(包含端点在内)的亮度样点。
[0738]
subwidthc*(conf_win_left_offset+conf_win_right_offset)的值应当小于pic_width_in_luma_samples,并且subheightc*(conf_win_top_offset+conf_win_bottom_offset)的值应当小于pic_height_in_luma_samples。
[0739]
变量picoutputwidthl和picoutputheightl推导如下:
[0740]
picoutputwidthl=pic_width_in_luma_samples
‑ꢀꢀ
(7-43)
[0741]
subwidthc*(conf_win_right_offset+conf_win_left_offset)
[0742]
picoutputheightl=pic_height_in_pic_size_units
[0743]-subheightc*(conf_win_bottom_offset+conf_win_top_offset)
[0744]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7-44)
[0745]
当chromaarraytype不等于0时,两个色度阵列的相应指定样点是具有图片坐标
(x/subwidthc,y/subheightc)的样点,其中(x,y)是指定亮度样点的图片坐标。
[0746][0747]
5.2参考样点位置推导的实施例1
[0748]
8.5.6.3.1概述
[0749]

[0750]
变量frefwidth被设为等于以亮度样点为单位的参考图片的picoutputwidthl。
[0751]
变量frefheight被设为等于以亮度样点为单位的参考图片的picoutputheightl。
[0752][0753]
运动矢量mvlx被设为等于(refmvlx-mvoffset)。
[0754]

如果cidx等于0,则以下适用:
[0755]

缩放因子及其固定点表示定义为
[0756]
hori_scale_fp=((frefwidth《《14)+(picoutputwidthl》》1))/picoutputwidthl
ꢀꢀ
(8-753)
[0757]
vert_scale_fp=((frefheight《《14)+(picoutputheightl》》1))/picoutputheightl
ꢀꢀ
(8-754)
[0758]

设(xintl,yintl)为以全样点单位给出的亮度位置并且(xfracl,yfracl)为以1/16样点单位给出的偏移。则这些变量在本节中仅用于指定参考样点阵列refpiclx内的分数点样点位置。
[0759]

用于参考样点填充的边界块的左上角坐标(xsbint
l
,ysbint
l
)被设为等于(xsb+(mvlx[0]》》4),ysb+(mvlx[1]》》4))。
[0760]

针对预测亮度样点阵列predsampleslx内的每个亮度样点位置(x
l
=0..sbwidth-1+brdextsize,y
l
=0..sbheight-1+brdextsize),对应的预测亮度样点值predsampleslx[x
l
][y
l
]推导如下:
[0761]

设(refxsb
l
,refysb
l
)和(refx
l
,refy
l
)为由以1/16样点单位给出的运动矢量(refmvlx[0],refmvlx[1])指向的亮度位置。变量refxsb
l
,refx
l
,refysb
l
,和refy
l
推导如下:
[0762][0763]
refy
l
=((sign(refysb)*((abs(refysb)+128)》》8)+yl*((vert_scale_fp+8)》》4))+32)》》6
ꢀꢀ
(8-758)
[0764][0765]

变量xint
l
,yint
l
,xfrac
l
和yfrac
l
推导如下:
[0766]
xint
l
=refx
l
》》4
ꢀꢀ
(8-759)
[0767]
yint
l
=refy
l
》》4
ꢀꢀ
(8-760)
[0768]
xfrac
l
=refx
l
&15
ꢀꢀ
(8-761)
[0769]
yfrac
l
=refy
l
&15
ꢀꢀ
(8-762)
[0770]

如果bdofflag等于真或(sps_affine_prof_enabled_flag等于真且inter_affine_flag[xsb][ysb]等于真),并且一个或多个下列条件为真,则预测亮度样点值predsampleslx[x
l
][y
l
]通过调用第8.5.6.3.3条中指定的亮度整数样点获取处理得出,以(xint
l
+(xfrac
l
》》3)-1),yint
l
+(yfrac
l
》》3)-1)和refpiclx作为输入。
[0771]

x
l
等于0。
[0772]

x
l
等于sbwidth+1。
[0773]
–yl
等于0。
[0774]
–yl
等于sbheight+1。
[0775]

否则,预测亮度样点值predsampleslx[xl][yl]通过调用第8.5.6.3.2条中规定的亮度样点8抽头插值滤波过程导出,以(xintl-(brdextsize》0?1:0),yintl-(brdextsize》0?1:0)),(xfracl,yfracl),(xsbint
l
,ysbint
l
),refpiclx,hpelifidx,sbwidth,sbheight和(xsb,ysb)作为输入。
[0776]

否则(cidx不等于0),则以下适用:
[0777]

设(xintc,yintc)是以全样点单位给出的色度位置并且(xfracc,yfracc)是以1/32样点单位给出的偏移。
[0778]
这些变量在本节中仅用于指定参考样点阵列refpiclx中的一般分数样点位置。
[0779]

用于参考样点填充的边界块的左上角坐标(xsbintc,ysbintc)被设为等于((xsb/subwidthc)+(mvlx[0]》》5),(ysb/subheightc)+(mvlx[1]》》5))。
[0780]

对于预测色度样点阵列predsampleslx内的每个色度样点位置(xc=0..sbwidth-1,yc=0..sbheight-1),对应的预测色度样点值predsampleslx[xc][yc]推导如下:
[0781]

设(refxsbc,refysbc)和(refxc,refyc)为由以1/32样点单位给出的运动矢量(mvlx[0],mvlx[1])指向的色度位置。变量refxsbc,refysbc,refxc和refyc推导如下:
[0782][0783]
refxc=((sign(refxsbc)*((abs(refxsbc)+256)》》9)+xc*((hori_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-764)
[0784][0785]
refyc=((sign(refysbc)*((abs(refysbc)+256)》》9)+yc*((vert_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-766)
[0786][0787]

变量xintc,yintc,xfracc和yfracc推导如下:
[0788]
xintc=refxc》》5
ꢀꢀ
(8-767)
[0789]
yintc=refyc》》5
ꢀꢀ
(8-768)
[0790]
xfracc=refyc&31
ꢀꢀ
(8-769)
[0791]
yfracc=refyc&31
ꢀꢀ
(8-770)
[0792]
5.3参考样点位置推导的实施例2
[0793]
8.5.6.3.1概述
[0794]

[0795]
变量frefwidth被设为等于以亮度样点为单位的参考图片的picoutputwidthl。
[0796]
变量frefheight被设为等于以亮度样点为单位的参考图片的picoutputheightl。
[0797][0798]
运动矢量mvlx被设为等于(refmvlx-mvoffset)。
[0799]

如果cidx等于0,则以下适用:
[0800]

缩放因子及其固定点表示定义为
[0801]
hori_scale_fp=((frefwidth《《14)+(picoutputwidthl》》1))/picoutputwidthl
ꢀꢀ
(8-753)
[0802]
vert_scale_fp=((frefheight《《14)+(picoutputheightl》》1))/picoutputheightl
ꢀꢀ
(8-754)
[0803]

设(xintl,yintl)为以全样点单位给出的亮度位置并且(xfracl,yfracl)为以1/16样点单位给出的偏移。则这些变量在本节中仅用于指定参考样点阵列refpiclx内的分数点样点位置。
[0804]

用于参考样点填充的边界块的左上角坐标(xsbint
l
,ysbint
l
)被设为等于(xsb+(mvlx[0]》》4),ysb+(mvlx[1]》》4))。
[0805]

针对预测亮度样点阵列predsampleslx内的每个亮度样点位置(x
l
=0..sbwidth-1+brdextsize,y
l
=0..sbheight-1+brdextsize),对应的预测亮度样点值predsampleslx[x
l
][y
l
]推导如下:
[0806]

设(refxsb
l
,refysb
l
)和(refx
l
,refy
l
)为由以1/16样点单位给出的运动矢量
(refmvlx[0],refmvlx[1])指向的亮度位置。变量refxsb
l
,refx
l
,refysb
l
,和refy
l
推导如下:
[0807][0808][0809]

变量xint
l
,yint
l
,xfrac
l
和yfrac
l
推导如下:
[0810]
xint
l
=refx
l
》》4
ꢀꢀ
(8-759)
[0811]
yint
l
=refy
l
》》4
ꢀꢀ
(8-760)
[0812]
xfrac
l
=refx
l
&15
ꢀꢀ
(8-761)
[0813]
yfrac
l
=refy
l
&15
ꢀꢀ
(8-762)
[0814]

如果bdofflag等于真或(sps_affine_prof_enabled_flag等于真且inter_affine_flag[xsb][ysb]等于真),并且一个或多个下列条件为真,则预测亮度样点值predsampleslx[x
l
][y
l
]通过调用第8.5.6.3.3条中指定的亮度整数样点获取处理得出,以(xint
l
+(xfrac
l
》》3)-1),yint
l
+(yfrac
l
》》3)-1)和refpiclx作为输入。
[0815]

x
l
等于0。
[0816]

x
l
等于sbwidth+1。
[0817]
–yl
等于0。
[0818]
–yl
等于sbheight+1。
[0819]

否则,预测亮度样点值predsampleslx[xl][yl]通过调用第8.5.6.3.2条中规定的亮度样点8抽头插值滤波过程导出,以(xintl-(brdextsize》0?1:0),yintl-(brdextsize》0?1:0)),(xfracl,yfracl),(xsbint
l
,ysbint
l
),refpiclx,hpelifidx,sbwidth,sbheight和(xsb,ysb)作为输入。
[0820]

否则(cidx不等于0),则以下适用:
[0821]

设(xintc,yintc)是以全样点单位给出的色度位置并且(xfracc,yfracc)是以1/32样点单位给出的偏移。
[0822]
这些变量在本节中仅用于指定参考样点阵列refpiclx中的一般分数样点位置。
[0823]

用于参考样点填充的边界块的左上角坐标(xsbintc,ysbintc)被设为等于((xsb/subwidthc)+(mvlx[0]》》5),(ysb/subheightc)+(mvlx[1]》》5))。
[0824]

对于预测色度样点阵列predsampleslx内的每个色度样点位置(xc=0..sbwidth-1,yc=0..sbheight-1),对应的预测色度样点值predsampleslx[xc][yc]推导如下:
[0825]

设(refxsbc,refysbc)和(refxc,refyc)为由以1/32样点单位给出的运动矢量(mvlx[0],mvlx[1])指向的色度位置。变量refxsbc,refysbc,refxc和refyc推导如下:
[0826][0827]
refxc=((sign(refxsbc)*((abs(refxsbc)+256)》》9)+xc*((hori_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-764)
[0828][0829]
refyc=((sign(refysbc)*((abs(refysbc)+256)》》9)+yc*((vert_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-766)
[0830][0831]

变量xintc,yintc,xfracc和yfracc推导如下:
[0832]
xintc=refxc》》5
ꢀꢀ
(8-767)
[0833]
yintc=refyc》》5
ꢀꢀ
(8-768)
[0834]
xfracc=refyc&31
ꢀꢀ
(8-769)
[0835]
yfracc=refyc&31
ꢀꢀ
(8-770)
[0836]
5.4参考样点位置推导的实施例3
[0837]
8.5.6.3.1概述
[0838]

[0839]
变量frefwidth被设为等于以亮度样点为单位的参考图片的picoutputwidthl。
[0840]
变量frefheight被设为等于以亮度样点为单位的参考图片的picoutputheightl。
[0841][0842]
运动矢量mvlx被设为等于(refmvlx-mvoffset)。
[0843]

如果cidx等于0,则以下适用:
[0844]

缩放因子及其固定点表示定义为
[0845]
hori_scale_fp=((frefwidth《《14)+(picoutputwidthl》》1))/picoutputwidthl
ꢀꢀ
(8-753)
[0846]
vert_scale_fp=((frefheight《《14)+(picoutputheightl》》1))/picoutputheightl
ꢀꢀ
(8-754)
[0847]

设(xintl,yintl)为以全样点单位给出的亮度位置并且(xfracl,yfracl)为以1/16样点单位给出的偏移。则这些变量在本节中仅用于指定参考样点阵列refpiclx内的分数点样点位置。
[0848]

用于参考样点填充的边界块的左上角坐标(xsbint
l
,ysbint
l
)被设为等于(xsb+(mvlx[0]》》4),ysb+(mvlx[1]》》4))。
[0849]

针对预测亮度样点阵列predsampleslx内的每个亮度样点位置(x
l
=0..sbwidth-1+brdextsize,y
l
=0..sbheight-1+brdextsize),对应的预测亮度样点值predsampleslx[x
l
][y
l
]推导如下:
[0850]

设(refxsb
l
,refysb
l
)和(refx
l
,refy
l
)为由以1/16样点单位给出的运动矢量(refmvlx[0],refmvlx[1])指向的亮度位置。变量refxsb
l
,refx
l
,refysb
l
,和refy
l
推导如
下:
[0851][0852]

变量xint
l
,yint
l
,xfrac
l
和yfrac
l
推导如下:
[0853]
xint
l
=refx
l
》》4
ꢀꢀ
(8-759)
[0854]
yint
l
=refy
l
》》4
ꢀꢀ
(8-760)
[0855]
xfrac
l
=refx
l
&15
ꢀꢀ
(8-761)
[0856]
yfrac
l
=refy
l
&15
ꢀꢀ
(8-762)
[0857]

如果bdofflag等于真或(sps_affine_prof_enabled_flag等于真且inter_affine_flag[xsb][ysb]等于真),并且一个或多个下列条件为真,则预测亮度样点值predsampleslx[x
l
][y
l
]通过调用第8.5.6.3.3条中指定的亮度整数样点获取处理得出,以(xint
l
+(xfrac
l
》》3)-1),yint
l
+(yfrac
l
》》3)-1)和refpiclx作为输入。
[0858]

x
l
等于0。
[0859]

x
l
等于sbwidth+1。
[0860]
–yl
等于0。
[0861]
–yl
等于sbheight+1。
[0862]

否则,预测亮度样点值predsampleslx[xl][yl]通过调用第8.5.6.3.2条中规定的亮度样点8抽头插值滤波过程导出,以(xintl-(brdextsize》0?1:0),yintl-(brdextsize》0?1:0)),(xfracl,yfracl),(xsbint
l
,ysbint
l
),refpiclx,hpelifidx,sbwidth,sbheight和(xsb,ysb)作为输入。
[0863]

否则(cidx不等于0),则以下适用:
[0864]

设(xintc,yintc)是以全样点单位给出的色度位置并且(xfracc,yfracc)是以1/32样点单位给出的偏移。
[0865]
这些变量在本节中仅用于指定参考样点阵列refpiclx中的一般分数样点位置。
[0866]

用于参考样点填充的边界块的左上角坐标(xsbintc,ysbintc)被设为等于((xsb/subwidthc)+(mvlx[0]》》5),(ysb/subheightc)+(mvlx[1]》》5))。
[0867]

对于预测色度样点阵列predsampleslx内的每个色度样点位置(xc=0..sbwidth-1,yc=0..sbheight-1),对应的预测色度样点值predsampleslx[xc][yc]推导如下:
[0868]

设(refxsbc,refysbc)和(refxc,refyc)为由以1/32样点单位给出的运动矢量(mvlx[0],mvlx[1])指向的色度位置。变量refxsbc,refysbc,refxc和refyc推导如下:
[0869][0870][0871]

变量xintc,yintc,xfracc和yfracc推导如下:
[0872]
xintc=refxc》》5
ꢀꢀ
(8-767)
[0873]
yintc=refyc》》5
ꢀꢀ
(8-768)
[0874]
xfracc=refyc&31
ꢀꢀ
(8-769)
[0875]
yfracc=refyc&31
ꢀꢀ
(8-770)
[0876]
5.5参考样点位置裁剪的实施例1
[0877]
8.5.6.3.1概述
[0878]
该处理的输入包括:
[0879]

亮度位置(xsb,ysb),指定当前编解码子块相对于当前图片的左上亮度样点的左上样点,
[0880]

变量sbwidth,指定当前编解码子块的宽度,
[0881]

变量sbheight,指定当前编解码子块的高度,
[0882]

运动矢量偏移mvoffset,
[0883]

细化的运动矢量refmvlx,
[0884]

所选参考图片样点阵列refpiclx,
[0885]

半样点插值滤波器索引hpelifidx,
[0886]

双向光流标志bdofflag,
[0887]

变量cidx,指定当前块的颜色分量索引。
[0888]
该处理的输出包括:
[0889]

预测样点值的(sbwidth+brdextsize)x(sbheight+brdextsize)的阵列predsampleslx。
[0890]
预测块边界扩展尺寸brdextsize推导如下:
[0891]
brdextsize=(bdofflag||(inter_affine_flag[xsb][ysb]&&sps_affine_prof_enabled_flag))?2:0
ꢀꢀ
(8-752)
[0892]
变量frefwidth被设为等于以亮度样点为单位的参考图片的picoutputwidthl。
[0893]
变量frefheight被设为等于以亮度样点为单位的参考图片的picoutputheightl。
[0894]
运动矢量mvlx被设为等于(refmvlx-mvoffset)。
[0895]

如果cidx等于0,则以下适用:
[0896]

缩放因子及其固定点表示定义为
[0897]
hori_scale_fp=((frefwidth《《14)+(picoutputwidthl》》1))/picoutputwidthl
ꢀꢀ
(8-753)
[0898]
vert_scale_fp=((frefheight《《14)+(picoutputheightl》》1))/picoutputheightl
ꢀꢀ
(8-754)
[0899]

设(xintl,yintl)为以全样点单位给出的亮度位置并且(xfracl,yfracl)为以1/16样点单位给出的偏移。则这些变量在本节中仅用于指定参考样点阵列refpiclx内的分数点样点位置。
[0900]

用于参考样点填充的边界块的左上角坐标(xsbint
l
,ysbint
l
)被设为等于(xsb+(mvlx[0]》》4),ysb+(mvlx[1]》》4))。
[0901]

针对预测亮度样点阵列predsampleslx内的每个亮度样点位置(x
l
=0..sbwidth-1+brdextsize,y
l
=0..sbheight-1+brdextsize),对应的预测亮度样点值predsampleslx[x
l
][y
l
]推导如下:
[0902]

设(refxsb
l
,refysb
l
)和(refx
l
,refy
l
)为由以1/16样点单位给出的运动矢量(refmvlx[0],refmvlx[1])指向的亮度位置。变量refxsb
l
,refx
l
,refysb
l
,和refy
l
推导如下:
[0903]
refxsb
l
=((xsb《《4)+refmvlx[0])*hori_scale_fp
ꢀꢀ
(8-755)
[0904]
refx
l
=((sign(refxsb)*((abs(refxsb)+128)》》8)+x
l
*((hori_scale_fp+8)》》4))+32)》》6
ꢀꢀ
(8-756)
[0905]
refysb
l
=((ysb《《4)+refmvlx[1])*vert_scale_fp
ꢀꢀ
(8-757)
[0906]
refyl=((sign(refysb)*((abs(refysb)+128)》》8)+yl*((vert_scale_fp+8)》》4))+32)》》6
ꢀꢀ
(8-758)
[0907]

变量xint
l
,yint
l
,xfrac
l
和yfrac
l
推导如下:
[0908][0909]
xfrac
l
=refx
l
&15
ꢀꢀ
(8-761)
[0910]
yfrac
l
=refy
l
&15
ꢀꢀ
(8-762)
[0911]

如果bdofflag等于真或(sps_affine_prof_enabled_flag等于真且inter_affine_flag[xsb][ysb]等于真),并且一个或多个下列条件为真,则预测亮度样点值predsampleslx[x
l
][y
l
]通过调用第8.5.6.3.3条中指定的亮度整数样点获取处理得出,以(xint
l
+(xfrac
l
》》3)-1),yint
l
+(yfrac
l
》》3)-1)和refpiclx作为输入。
[0912]

x
l
等于0。
[0913]

x
l
等于sbwidth+1。
[0914]
–yl
等于0。
[0915]
–yl
等于sbheight+1。
[0916]

否则,预测亮度样点值predsampleslx[xl][yl]通过调用第8.5.6.3.2条中规定的亮度样点8抽头插值滤波过程导出,以(xintl-(brdextsize》0?1:0),yintl-(brdextsize》0?1:0)),(xfracl,yfracl),(xsbint
l
,ysbint
l
),refpiclx,hpelifidx,sbwidth,sbheight和(xsb,ysb)作为输入。
[0917]

否则(cidx不等于0),则以下适用:
[0918]

设(xintc,yintc)是以全样点单位给出的色度位置并且(xfracc,yfracc)是以1/32样点单位给出的偏移。
[0919]
这些变量在本节中仅用于指定参考样点阵列refpiclx中的一般分数样点位置。
[0920]

用于参考样点填充的边界块的左上角坐标(xsbintc,ysbintc)被设为等于((xsb/subwidthc)+(mvlx[0]》》5),(ysb/subheightc)+(mvlx[1]》》5))。
[0921]

对于预测色度样点阵列predsampleslx内的每个色度样点位置(xc=0..sbwidth-1,yc=0..sbheight-1),对应的预测色度样点值predsampleslx[xc][yc]推导如下:
[0922]

设(refxsbc,refysbc)和(refxc,refyc)为由以1/32样点单位给出的运动矢量(mvlx[0],mvlx[1])指向的色度位置。变量refxsbc,refysbc,refxc和refyc推导如下:
[0923]
refxsbc=((xsb/subwidthc《《5)+mvlx[0])*hori_scale_fp
ꢀꢀ
(8-763)
[0924]
refxc=((sign(refxsbc)*((abs(refxsbc)+256)》》9)+xc*((hori_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-764)
[0925]
refysbc=((ysb/subheightc《《5)+mvlx[1])*vert_scale_fp
ꢀꢀ
(8-765)
[0926]
refyc=((sign(refysbc)*((abs(refysbc)+256)》》9)+yc*((vert_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-766)
[0927]

变量xintc,yintc,xfracc和yfracc推导如下:
[0928][0929]
xfracc=refyc&31
ꢀꢀ
(8-769)
[0930]
yfracc=refyc&31
ꢀꢀ
(8-770)
[0931]

预测样点值predsampleslx[xc][yc]通过调用第8.5.6.3.4节中规定的处理导出,以(xintc,yintc),(xfracc,yfracc),(xsbintc,ysbintc),sbwidth,sbheight和refpiclx作为输入。
[0932]
5.6参考样点位置裁剪的实施例2
[0933]
8.5.6.3.1概述
[0934]
该处理的输入包括:
[0935]

亮度位置(xsb,ysb),指定当前编解码子块相对于当前图片的左上亮度样点的左上样点,
[0936]

变量sbwidth,指定当前编解码子块的宽度,
[0937]

变量sbheight,指定当前编解码子块的高度,
[0938]

运动矢量偏移mvoffset,
[0939]

细化的运动矢量refmvlx,
[0940]

所选参考图片样点阵列refpiclx,
[0941]

半样点插值滤波器索引hpelifidx,
[0942]

双向光流标志bdofflag,
[0943]

变量cidx,指定当前块的颜色分量索引。
[0944]
该处理的输出包括:
[0945]

预测样点值的(sbwidth+brdextsize)x(sbheight+brdextsize)的阵列predsampleslx。
[0946]
预测块边界扩展尺寸brdextsize推导如下:
[0947]
brdextsize=(bdofflag||(inter_affine_flag[xsb][ysb]&&sps_affine_prof_enabled_flag))?2:0
ꢀꢀ
(8-752)
[0948]
变量frefwidth被设为等于以亮度样点为单位的参考图片的picoutputwidthl。
[0949]
变量frefheight被设为等于以亮度样点为单位的参考图片的picoutputheightl。
[0950]
变量frefleftoff被设为等于以亮度样点为单位的参考图片的conf_win_left_offset。
[0951]
变量freftopoff被设为等于以亮度样点为单位的参考图片的conf_win_top_offset。
[0952]
运动矢量mvlx被设为等于(refmvlx-mvoffset)。
[0953]

如果cidx等于0,则以下适用:
[0954]

缩放因子及其固定点表示定义为
[0955]
hori_scale_fp=((frefwidth《《14)+(picoutputwidthl》》1))/picoutputwidthl
ꢀꢀ
(8-753)
[0956]
vert_scale_fp=((frefheight《《14)+(picoutputheightl》》1))/picoutputheightl
ꢀꢀ
(8-754)
[0957]

设(xintl,yintl)为以全样点单位给出的亮度位置并且(xfracl,yfracl)为以1/16样点单位给出的偏移。则这些变量在本节中仅用于指定参考样点阵列refpiclx内的分数点样点位置。
[0958]

用于参考样点填充的边界块的左上角坐标(xsbint
l
,ysbint
l
)被设为等于(xsb+(mvlx[0]》》4),ysb+(mvlx[1]》》4))。
[0959]

针对预测亮度样点阵列predsampleslx内的每个亮度样点位置(x
l
=0..sbwidth-1+brdextsize,y
l
=0..sbheight-1+brdextsize),对应的预测亮度样点值predsampleslx[x
l
][y
l
]推导如下:
[0960]

设(refxsb
l
,refysb
l
)和(refx
l
,refy
l
)为由以1/16样点单位给出的运动矢量(refmvlx[0],refmvlx[1])指向的亮度位置。变量refxsb
l
,refx
l
,refysb
l
,和refy
l
推导如下:
[0961]
refxsb
l
=((xsb《《4)+refmvlx[0])*hori_scale_fp
ꢀꢀ
(8-755)
[0962]
refx
l
=((sign(refxsb)*((abs(refxsb)+128)》》8)+x
l
*((hori_scale_fp+8)》》4))+32)》》6
ꢀꢀ
(8-756)
[0963]
refysb
l
=((ysb《《4)+refmvlx[1])*vert_scale_fp
ꢀꢀ
(8-757)
[0964]
refyl=((sign(refysb)*((abs(refysb)+128)》》8)+yl*((vert_scale_fp+8)》》4))+32)》》6
ꢀꢀ
(8-758)
[0965]

变量xint
l
,yint
l
,xfrac
l
和yfrac
l
推导如下:
[0966][0967]
xfrac
l
=refx
l
&15
ꢀꢀ
(8-761)
[0968]
yfrac
l
=refy
l
&15
ꢀꢀ
(8-762)
[0969]

如果bdofflag等于真或(sps_affine_prof_enabled_flag等于真且inter_affine_flag[xsb][ysb]等于真),并且一个或多个下列条件为真,则预测亮度样点值predsampleslx[x
l
][y
l
]通过调用第8.5.6.3.3条中指定的亮度整数样点获取处理得出,以(xint
l
+(xfrac
l
》》3)-1),yint
l
+(yfrac
l
》》3)-1)和refpiclx作为输入。
[0970]

x
l
等于0。
[0971]

x
l
等于sbwidth+1。
[0972]
–yl
等于0。
[0973]
–yl
等于sbheight+1。
[0974]

否则,预测亮度样点值predsampleslx[xl][yl]通过调用第8.5.6.3.2条中规定的亮度样点8抽头插值滤波过程导出,以(xintl-(brdextsize》0?1:0),yintl-(brdextsize》0?1:0)),(xfracl,yfracl),(xsbint
l
,ysbint
l
),refpiclx,hpelifidx,sbwidth,sbheight和(xsb,ysb)作为输入。
[0975]

否则(cidx不等于0),则以下适用:
[0976]

设(xintc,yintc)是以全样点单位给出的色度位置并且(xfracc,yfracc)是以1/32样点单位给出的偏移。
[0977]
这些变量在本节中仅用于指定参考样点阵列refpiclx中的一般分数样点位置。
[0978]

用于参考样点填充的边界块的左上角坐标(xsbintc,ysbintc)被设为等于((xsb/subwidthc)+(mvlx[0]》》5),(ysb/subheightc)+(mvlx[1]》》5))。
[0979]

对于预测色度样点阵列predsampleslx内的每个色度样点位置(xc=0..sbwidth-1,yc=0..sbheight-1),对应的预测色度样点值predsampleslx[xc][yc]推导如下:
[0980]

设(refxsbc,refysbc)和(refxc,refyc)为由以1/32样点单位给出的运动矢量(mvlx[0],mvlx[1])指向的色度位置。变量refxsbc,refysbc,refxc和refyc推导如下:
[0981]
refxsbc=((xsb/subwidthc《《5)+mvlx[0])*hori_scale_fp
ꢀꢀ
(8-763)
[0982]
refxc=((sign(refxsbc)*((abs(refxsbc)+256)》》9)+xc*((hori_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-764)
[0983]
refysbc=((ysb/subheightc《《5)+mvlx[1])*vert_scale_fp
ꢀꢀ
(8-765)
[0984]
refyc=((sign(refysbc)*((abs(refysbc)+256)》》9)+yc*((vert_scale_fp+8)》》4))+16)》》5
ꢀꢀ
(8-766)
[0985]

变量xintc,yintc,xfracc和yfracc推导如下:
[0986][0987]
xfracc=refyc&31
ꢀꢀ
(8-769)
[0988]
yfracc=refyc&31
ꢀꢀ
(8-770)
[0989]

预测样点值predsampleslx[xc][yc]通过调用第8.5.6.3.4节中规定的处理导出,以(xintc,yintc),(xfracc,yfracc),(xsbintc,ysbintc),sbwidth,sbheight和refpiclx作为输入。
[0990]
6.公开技术的示例实现
[0991]
图5是视频处理装置500的框图。装置500可用于实现本文所述的一种或多种方法。装置500可以实施在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置500可包括一个或多个处理器502、一个或多个存储器504和视频处理硬件506。处理器502可以被配置成实现本文档中描述的一个或多个方法。存储器(多个存储器)504可用于存储用于实现本文所述的方法和技术的数据和代码。视频处理硬件506可用于在硬件电路中实现本文档中描述的一些技术,并且可以部分或完全是处理器502(例如,图形处理器核心gpu或其他信号处理电路)的一部分。
[0992]
在本文档中,术语“视频处理”或编解码可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示转换为相应的比特流表示或反之亦然期间应用。例如,当前视频块的比特流表示可以对应于在比特流内共位的或不同位置处传播的比特,如由语法定义的那样。例如,宏块可以根据经过变换和编解码的误差残值来编码,并且还可以使用比特流中的标头和其他字段中的比特。
[0993]
应当理解,所公开的方法和技术通过允许使用在本文档中公开的技术,将有益于并入诸如智能手机、笔记本电脑、台式机和类似设备的视频处理设备中的视频编码器和/或解码器实施例。
[0994]
图6是视频处理的示例方法600的流程图。方法600包括:在610处执行当前视频块和当前视频块的编解码表示之间的转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸不同于当前视频块的分辨率和/或尺寸,则对使用当前视频块预测的一组相邻或非相邻样点应用相同的插值滤波器。
[0995]
可以使用以下基于条款的格式来描述一些实施例。
[0996]
1.一种视频处理方法,包括:
[0997]
在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸与当前视频块的分辨率和/或尺寸不同,则对使用当前视频块预测的一组相邻或非相邻样点应用相同的插值滤波器。
[0998]
2.如第1条所述的方法,其中相同的插值滤波器是垂直插值滤波器。
[0999]
3.如第1条所述的方法,其中相同的插值滤波器是水平插值滤波器。
[1000]
4.如第1条所述的方法,其中一组相邻或非相邻样点包括位于当前视频块的区域中的所有样点。
[1001]
5.如第4条所述的方法,其中将当前视频块分成多个矩形,每个矩形的尺寸为mxn。
[1002]
6.如第5条所述的方法,其中m和/或n是预先确定的。
[1003]
7.如第5条所述的方法,其中m和/或n推到自当前视频块的维度。
[1004]
8.如第5条所述的方法,其中m和/或n在当前视频块的编解码表示中被信令通知。
[1005]
9.如第1条所述的方法,其中一组样点共享相同的运动矢量。
[1006]
10.如第9条所述的方法,其中一组样点共享相同水平分量和/或水平分量的相同分数部分。
[1007]
11.如第9条所述的方法,其中一组样点共享相同的垂直分量和/或垂直分量的相同分数部分。
[1008]
12.如第9-11条中一项或多项所述的方法,其中相同的运动矢量或其分量满足至
少基于以下之一的一个或多个规则:参考图片的分辨率、参考图片的尺寸、当前视频块的分辨率、当前视频块的尺寸、或精度值。
[1009]
13.如第9-11条中一项或多项所述的方法,其中相同的运动矢量或其分量对应于位于当前视频块中的样点的运动信息。
[1010]
14.如第9-11条中一项或多项所述的方法,其中将相同的运动矢量或其分量设置为位于所述组内部或外部的虚拟样点的运动信息。
[1011]
15.一种视频处理方法,包括:
[1012]
在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸与当前视频块的分辨率和/或尺寸不同,则其中使用当前视频块预测的块仅允许使用与当前块相关的整数值的运动信息。
[1013]
16.如第15条所述的方法,其中整数值的运动信息是通过取整当前视频块的原始运动信息来导出的。
[1014]
17.如第15条所述的方法,其中当前视频块的原始运动信息在水平方向和/或垂直方向上。
[1015]
18.一种视频处理方法,包括:
[1016]
在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸与当前视频块的分辨率和/或尺寸不同,则应用插值滤波器导出使用当前视频块预测的块,并且其中基于规则选择插值滤波器。
[1017]
19.如第18条所述的方法,并且该规则与相对于当前视频块的分辨率和/或尺寸的参考图片的分辨率和/或尺寸有关。
[1018]
20.如第18条所述的方法,其中插值滤波器是垂直插值滤波器。
[1019]
21.如第18条所述的方法,其中插值滤波器是水平插值滤波器。
[1020]
22.如第18条所述的方法,其中插值滤波器是以下之一:1抽头滤波器、双线性滤波器、4抽头滤波器或6抽头滤波器。
[1021]
23.如第22条所述的方法,其中插值滤波器用作转换的其他步骤的一部分。
[1022]
24.如第18条所述的方法,其中插值滤波器包括填充样点的使用。
[1023]
25.如第18条所述的方法,其中插值滤波器的使用取决于当前视频块的样点的颜色分量。
[1024]
26.一种视频处理方法,包括:
[1025]
在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果参考图片的分辨率和/或尺寸不同于当前视频块的分辨率和/或尺寸,则选择性地应用去方块滤波器,其中,根据与参考图片的分辨率和/或尺寸相对于当前视频块的分辨率和/或尺寸相关的规则设置去方块滤波器的强度。
[1026]
27.如第27条所述的方法,其中去方块滤波器的强度随视频块的不同而变化。
[1027]
28.一种视频处理方法,包括:
[1028]
在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,如果存在当前视频块的子图片,则一致性比特流满足与参考图片的分辨率和/或尺寸相对于当前视频块的分辨率和/或尺寸相关的规则。
[1029]
29.如第28条所述的方法,还包括:
[1030]
将当前视频块划分成一个或多个子图片,其中所述划分至少取决于当前视频块的分辨率。
[1031]
30.一种视频处理方法,包括:
[1032]
在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,根据基于当前视频块的维度的规则对当前视频块的参考图片进行重采样。
[1033]
31.一种视频处理方法,包括:
[1034]
在当前视频块和当前视频块的编解码表示之间执行转换,其中,在转换期间,取决于当前视频块的参考图片的分辨率和/或尺寸相对于当前视频块的分辨率和/或尺寸,选择性地启用或禁用对当前视频块的编解码工具的使用。
[1035]
32.如上述一项或多项所述的方法,其中所述一组样点位于一致性窗口中。
[1036]
33.如第32条所述的方法,其中一致性窗口为矩形。
[1037]
34.如上述一项或多项所述的方法,其中所述分辨率与编码/解码视频块的分辨率或编码/解码视频块中一致性窗口的分辨率有关。
[1038]
35.如上述一项或多项所述的方法,其中所述尺寸与编码/解码视频块的尺寸或编码/解码视频块中的一致性窗口的尺寸有关。
[1039]
36.如上述一项或多项所述的方法,其中所述维度与编码/解码视频块的维度或编码/解码视频块中的一致性窗口的维度有关。
[1040]
37.如第32条所述的方法,其中一致性窗口由一组一致性裁剪窗口参数定义。
[1041]
38.如第37条所述的方法,其中至少一部分一致性裁剪窗口参数在编解码表示中被隐式或显式地信令通知。
[1042]
39.如上述一项或多项所述的方法,其中不允许在编解码表示中信令通知所述一组一致性裁剪窗口参数。
[1043]
40.如上述一项或多项所述的方法,其中参考样点的位置是相对于一致性窗口中当前视频块的左上样点导出的。
[1044]
41.一种视频处理方法,包括:
[1045]
在多个视频块和多个视频块的编解码表示之间执行转换,其中,在转换期间,为第一视频块定义第一一致性窗口,为第二视频块定义第二一致性窗口,其中,所述第一一致性窗口与所述第二一致性窗口的宽度和/或高度之比符合至少基于一致性比特流的规则。
[1046]
42.一种视频解码装置,包括处理器,所述处理器被配置成实现第1至41条中的一项或多项所述的方法。
[1047]
43.一种视频编码装置,包括处理器,所述处理器被配置成实现第1至41条中的一项或多项所述的方法。
[1048]
44.一种存储有计算机代码的计算机程序产品,当由处理器执行时,该代码使处理器实现第1条至第41条中任一项所述的方法。
[1049]
45.本文中描述的方法、装置或系统。
[1050]
图7是示出其中可以实现本文公开的各种技术的示例性视频处理系统700的框图。各种实现可以包括系统700的部分或全部组件。700可以包括用于接收视频内容的输入702。视频内容可以原始或未压缩格式(例如,8位或10位多分量像素值)接收,或者可以压缩或编码格式接收。输入702可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括
有线接口(例如以太网、无源光网络(pon))和无线接口(例如wi-fi或蜂窝接口)。
[1051]
系统700可以包括编解码组件704,其可以实现在本文档中描述的各种编解码或编解码方法。编解码组件704可以将从输入702到编解码组件704的输出的视频的平均比特率降低以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件704的输出可以被存储,或者通过由组件706表示的连接的通信发送。组件708可以使用在输入702处接收到的视频的存储或通信比特流(或编解码)表示来生成发送到显示接口710的像素值或可显示视频。从比特流表示生成用户可见视频的过程有时称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解的是,在编码器处使用编解码工具或操作,并且将由解码器执行与编码结果相反的相应解码工具或操作。
[1052]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子设备中,例如移动电话、笔记本电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
[1053]
图8是示出可以利用本公开的技术的示例性视频编解码系统100的框图。
[1054]
如图8所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成编码视频数据,源设备110可以被称为视频编码设备。目的地设备120可以对源设备110生成的编码视频数据进行解码,目的地设备120可以被称为视频解码设备。
[1055]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[1056]
视频源112可以包括诸如视频捕获设备的源、用于从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发送器。编码的视频数据可以通过网络130a经由i/o接口116直接发送到目的地设备120。编码视频数据还可以存储在存储介质/服务器130b上,以供目的地设备120访问。
[1057]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[1058]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取编码视频数据。视频解码器124可解码编码的视频数据。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目的地设备120集成,或者可以在目的地设备120外部,该目的地设备120被配置为与外部显示设备接口。
[1059]
视频编码器114和视频解码器124可以根据视频压缩标准操作,例如高效视频编解码(hevc)标准、通用视频编解码(vvc)标准和其他当前和/或进一步的标准。
[1060]
图9是示出了可以是图8所示的系统100中的视频编码器114的视频编码器200的示例的框图。
[1061]
视频编码器200可被配置为执行本公开的任何或所有技术。在图9的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可被配置为执行本公开中描述的任何或所有技术。
[1062]
视频编码器200的功能组件可以包括分割单元201、预测单元202,预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206,残差生成单元207、变换单元208、量化单元209,逆量化单元210、逆变换单元211、重建单元212、缓冲器213和熵编码单元214。
[1063]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
[1064]
此外,一些组件,例如运动估计单元204和运动补偿单元205可以是高度集成的,但是为了解释的目的在图5的示例中分别表示。
[1065]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块大小。
[1066]
模式选择单元203可以例如基于错误结果选择一种编解码模式(帧内或帧间),并将得到的帧内或帧间编码块提供给残差生成单元207以生成残差块数据,并提供给重建单元212以重建编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测的组合(ciip)模式,其中预测基于帧间预测信号和帧内预测信号。模式选择单元203还可以在帧间预测的情况下为块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
[1067]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓冲器213的图片的解码样本(与当前视频块相关联的图片除外)来确定当前视频块的预测视频块。
[1068]
例如,运动估计单元204和运动补偿单元205可以根据当前视频块是在i条带、p条带还是b条带中,对当前视频块执行不同的操作。
[1069]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元204可以生成参考索引,该参考索引指示包含参考视频块的列表0或列表1中的参考图片以及指示当前视频块和参考视频块之间的空间位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块生成当前块的预测视频块。
[1070]
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。然后,运动估计单元204可以生成指示包含参考视频块的列表0和列表1中的参考图片的参考索引和指示参考视频块和当前视频块之间的空间位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块生成当前视频块的预测视频块。
[1071]
在一些示例中,运动估计单元204可以输出用于解码器的解码处理的运动信息的完整集合。
[1072]
在一些示例中,运动估计单元204可以不输出当前视频的运动信息的完整集合。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。
例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
[1073]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块与另一视频块具有相同的运动信息的值。
[1074]
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量与所指示视频块的运动矢量之间的差。视频解码器300可以使用所指示视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[1075]
如上所述,视频编码器200可以预测地信令通知运动矢量。可由视频编码器200实施的预测信令技术的两个示例包括高级运动矢量预测(amvp)和合并模式信令。
[1076]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中其他视频块的解码样本生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[1077]
残差生成单元207可以通过从当前视频块减去(例如,由减号指示)当前视频块的预测视频块(多个)来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样本的不同样本分量的残差视频块。
[1078]
在其他示例中,例如在跳过模式下,对于当前视频块,可以没有当前视频块的残差数据,并且残差生成单元207可以不执行减法操作。
[1079]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来为当前视频块生成一个或多个变换系数视频块。
[1080]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值对与当前视频块相关联的变换系数视频块进行量化。
[1081]
逆量化单元210和逆变换单元211可分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块添加到来自预测单元202生成的一个或多个预测视频块的对应样本中,以产生与当前块相关联的重建视频块,以存储在缓冲器213中。
[1082]
在重建单元212重建视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
[1083]
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收到数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
[1084]
图10是示出了可以是图8所示的系统100中的视频解码器114的视频解码器300的示例的框图。
[1085]
视频解码器300可被配置为执行本公开的任何或所有技术。在图10的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可被配置为执行本公开中描述的任何或所有技术。
[1086]
在图10的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、重建单元306和缓冲器307。在一些示例中,视
频解码器300可以执行与关于视频编码器200(例如,图9)描述的编码过程大体相反的解码过程。
[1087]
熵解码单元301可以检索编码比特流。编码比特流可包括熵编解码视频数据(例如,视频数据的编码块)。熵解码单元301可以解码熵编解码视频数据,并且运动补偿单元302可以从熵解码视频数据确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。例如,运动补偿单元302可以通过执行amvp和合并模式来确定这样的信息。
[1088]
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。可以在语法元素中包括以子像素精度使用的插值滤波器的标识符。
[1089]
运动补偿单元302可以使用视频编码器20在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的内插值。运动补偿单元302可以根据接收到的语法信息确定视频编码器200使用的插值滤波器,并使用插值滤波器来产生预测块。
[1090]
运动补偿单元302可以使用一些语法信息来确定用于编码编码视频序列的帧(多个)和/或条带(多个)的块的大小、描述如何对编码视频序列的图片的每个宏块进行分割的分区信息、指示如何对每个分区进行编码的模式、用于每个帧间编码块的一个或多个参考帧(和参考帧列表),以及用于解码编码视频序列的其他信息。
[1091]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化视频块系数进行逆量化(即,去量化)。逆变换单元303应用逆变换。
[1092]
重建单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的相应预测块相加,以形成解码块。如果需要,还可以应用去块滤波器对解码块进行滤波,以去除块性伪影。解码视频块随后存储在缓冲器307中,缓冲器307为后续运动补偿/帧内预测提供参考块,并且还产生解码视频以在显示设备上呈现。
[1093]
图11是根据本技术的视频处理方法的流程图表示。方法1100包括:在操作1110处,执行视频和视频的比特流表示之间的转换。比特流表示符合格式规则,该格式规则规定在比特流表示中分别指示解码器侧运动矢量细化编解码工具和双向光流编解码工具针对视频图片的的适用性。
[1094]
在一些实施例中,所述解码器侧运动矢量细化工具包括在不传输额外的运动数据的情况下执行运动矢量的自动细化,以在解码器侧执行运动补偿。在一些实施例中,所述双向光流编解码工具包括通过从两个参考块导出的更高精度的运动矢量来增强块的双向预测预测样点。在一些实施例中,所述适用性在所述比特流表示的图片标头字段中指示。
[1095]
图12是根据本技术的视频处理方法的流程图表示。方法1200包括:在操作1210,执行视频的视频图片和所述视频的比特流表示之间的转换。所述比特流表示符合格式规则,所述格式规则规定在对应于所述视频图片的图片标头中指示编解码工具的使用。
[1096]
在一些实施例中,所述格式规则规定所述图片标头中的所述编解码工具的指示基于所述比特流表示的序列参数集、视频参数集或解码器参数集中的与编解码工具相关联的语法元素。在一些实施例中,所述编解码工具包括以下至少一个:使用光流的预测细化(prof)编解码工具、跨分量自适应环路滤波(ccalf)编解码工具、或使用几何分割(geo)的帧间预测编解码工具。在一些实施例中,所述编解码工具的使用由一个或多个语法元素指
示。
[1097]
在一些实施例中,所述格式规则规定所述编解码工具的使用是基于语法元素有条件地指示的,所述语法元素在所述序列参数集中指示所述编解码工具的启用或禁用。在一些实施例中,所述编解码工具包括使用光流的预测细化(prof)编解码工具。在一些实施例中,所述编解码工具包括跨分量自适应环路滤波(ccalf)编解码工具。在一些实施例中,所述编解码工具包括使用几何分割(geo)的帧间预测编解码工具。在一些实施例中,还基于图片标头在条带标头中有条件地指示所述使用。
[1098]
图13是根据本技术的视频处理方法的流程图。方法1300包括,在操作1310,在包括一个或多个视频单元的视频图片的视频和所述视频的比特流表示之间执行转换。上述比特流表示符合格式规则,所述格式规则规定在图片标头中包括第一语法元素,以指示所述视频图片中的上述一个或多个视频单元中的至少一些的允许预测类型。
[1099]
在一些实施例中,所述一个或多个视频单元的视频单元包括条带、砖块或片。在一些实施例中,所述图片标头包括第一语法元素,以指示所述一个或多个视频单元中的所有视频单元是否具有相同的预测类型。在一些实施例中,所述相同的预测类型是帧内编解码类型。在一些实施例中,在第一语法元素指示对应视频图片的所有条带具有相同的预测类型的情况下,在与条带相对应的条带标头中省略指示条带类型的第二语法元素。在一些实施例中,图片标头包括指示所述多个视频单元中的至少一个是否未进行帧内编解码的第三语法元素。
[1100]
在一些实施例中,基于所指示的相同的预测类型是否为特定的预测类型,在所述比特流表示中有条件地信令通知允许用于所述特定的预测类型的编解码工具的指示。在一些实施例中,在所述相同的预测类型是双向预测类型的情况下,允许用于所述特定的预测类型的编解码工具包括:解码器侧运动矢量细化编解码工具、双向光流编解码工具、三角分割模式编解码工具、或几何分割(geo)编解码工具。在一些实施例中,在所述特定的预测类型是帧内编解码类型的情况下,允许用于所述相同的预测类型的编解码工具包括双树编解码工具。在一些实施例中,所述格式规则规定基于所述相同的预测类型的指示来指示所述编解码工具的使用。在一些实施例中,基于所述相同的预测类型的指示来确定所述编解码工具的使用。
[1101]
在一些实施例中,所述转换包括将所述视频编解码为所述比特流表示。在一些实施例中,所述转换包括将比特流表示解码为视频。
[1102]
所公开技术的一些实施例包括作出决定或确定以启用视频处理工具或模式。在一个示例中,当视频处理工具或模式被启用时,编码器将在视频块的处理中使用或实现该工具或模式,但不一定基于工具或模式的使用来修改所得比特流。也就是说,当基于该决定或确定被启用时,从视频块到视频的比特流表示的转换将使用视频处理工具或模式。在另一示例中,当视频处理工具或模式被启用时,解码器将在知道比特流已基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于该决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
[1103]
所公开技术的一些实施例包括作出禁用视频处理工具或模式的决定或确定。在示例中,当视频处理工具或模式被禁用时,编码器将不在将视频块转换为视频的比特流表示时使用该工具或模式。在另一示例中,当视频处理工具或模式被禁用时,解码器将在知道比
特流没有使用基于该决定或确定而被启用的视频处理工具或模式修改的情况下处理比特流。
[1104]
本文档中描述公开和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文档中所公开的结构及其结构等效体,或其中一个或多个的组合。所公开的和其它实施例可以实现为一个或多个计算机程序产品,即一个或多个编码在计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
[1105]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[1106]
本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[1107]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及cd rom和dvd rom盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[1108]
虽然本专利文件包含许多细节,但不应将其解释为对任何主题或权利要求范围的限制,而应解释为对特定技术的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从
组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[1109]
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[1110]
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1