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

视频比特流中子图片信令通知的语法的制作方法

2022-05-18 18:13:28 来源:中国专利 TAG:

视频比特流中子图片信令通知的语法
1.相关申请的交叉引用
2.根据适用的专利法和/或巴黎公约的规定,提出本技术是为了及时要求2019年10月2日提交的国际专利申请no.pct/cn2019/109809的优先权和权益。出于法律的所有目的,上述申请的全部公开内容通过引用并入为本技术的部分公开内容。
技术领域
3.本文档涉及视频和图像编码和解码技术。


背景技术:

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


技术实现要素:

5.所公开的技术可以由视频或图像解码器或编码器实施例使用,在其中执行基于子图片的编码或解码。
6.在一个示例方面,公开了一种视频处理的方法。该方法包括:执行在包括一个或多个图片的视频和视频的比特流表示之间的转换。比特流表示要求符合格式规则,该格式规则指定将每个图片编解码为一个或多个条带,并且其中,格式规则禁止图片中的样点被一个或多个条带中的任何一个覆盖。
7.在另一示例方面,公开了一种视频处理的方法。该方法包括:对于在视频的图片和视频的比特流表示之间的转换,根据与图片中的片的数目或砖的数目相关联的规则,确定信令通知图片中的一个或多个条带的信息的方式。该方法还包括基于确定来执行转换。
8.在另一示例方面,公开了一种视频处理的方法。该方法包括:根据规则,执行在视频的图片和视频的比特流表示之间的转换。在比特流表示中图片被编解码为一个或多个条带,并且规则指定在比特流表示中是否或如何包括图片的条带的地址。
9.在另一示例方面,公开了一种视频处理的方法。该方法包括:对于在视频的图片和视频的比特流表示之间的转换,基于图片中片的数目或砖的数目,确定比特流表示中是否包括语法元素,该语法元素指示启用访问图片中多个砖上的样点的滤波操作。该方法还包括基于确定来执行转换。
10.在另一示例方面,公开了一种视频处理的方法。该方法包括在视频的图片和视频的比特流表示之间执行转换,其中图片包括一个或多个子图片,并且其中一个或多个子图片的数量由语法元素指示为比特流表示。
11.在另一示例方面,公开了一种视频处理的方法。该方法包括:执行在包括一个或多个子图片的视频的图片和视频的比特流表示之间的转换。比特流表示符合格式规则,该格式规则基于以下中的至少一个来指定关于子图片的信息被包括在比特流表示中:(1)子图片的一个或多个角位置,或(2)子图片的维度。
12.在另一示例方面,公开了一种视频处理的方法。该方法包括:对于视频的图片和视频的比特流表示之间的转换,由于图片被分为一个或多个子图片,确定启用参考图片重采样工具。该方法还包括基于确定来执行转换。
13.在另一示例方面,公开了一种视频处理的方法。该方法包括:执行在包括视频图片的视频和视频的比特流表示之间的转换,该视频图片包括一个或多个子图片,该子图片包括一个或多个条带。比特流表示符合格式规则,该格式规则指定对于子图片和条带,如果在条带的头中包括标识子图片的索引,则条带的地址字段指示子图片中的条带的地址。
14.在另一示例方面,公开了一种视频处理的方法。该方法包括:对于视频的第一视频区域中的视频块,确定对于使用仿射模式在视频块和当前视频块的比特流表示之间的转换确定时域运动矢量预测器的位置是否在第二视频区域内;以及基于确定来执行转换。
15.在另一示例方面,公开了另一种视频处理方法。该方法包括:对于视频的第一视频区域中的视频块,确定对于在视频块和当前视频块的比特流表示之间的转换获取参考图片中的整数样点的位置是否在第二视频区域内,其中在转换期间,参考图片不用于插值过程;以及基于确定来执行转换。
16.在另一示例方面,公开了另一种视频处理的方法。该方法包括:对于视频的第一视频区域中的视频块,确定对于在视频块和当前视频块的比特流表示之间的转换获取重构亮度样点值的位置是否在第二视频区域内;以及基于确定来执行转换。
17.在另一示例方面,公开了另一种视频处理的方法。该方法包括:对于视频的第一视频区域中的视频块,确定在视频块和当前视频块的比特流表示之间的转换期间执行的关于对于视频块的划分、深度导出或划分标志信令通知的检查的位置是否在第二视频区域内;以及基于确定来执行转换。
18.在另一示例方面,公开了另一种视频处理的方法。该方法包括:执行在包括一个或多个视频图片的视频和视频的编解码表示之间的转换,视频图片包括一个或多个视频块,其中编解码表示遵守编解码语法要求,即转换在视频单元内不使用子图片编码/解码和动态分辨率转换编码/解码工具或参考图片重采样工具。
19.在另一示例方面,公开了另一种视频处理的方法。该方法包括:执行在包括一个或多个视频图片的视频和视频的编解码表示之间的转换,视频图片包括一个或多个视频块,其中编解码表示遵守编解码语法要求,即第一语法元素subpic_grid_idx[i][j]不大于第二语法元素max_subpics_minus1。
[0020]
在又一示例方面,上述方法可以由包括处理器的视频编码器装置实现。
[0021]
在又一示例方面,上述方法可以由包括处理器的视频解码器装置实现。
[0022]
在又一示例方面,这些方法可以以处理器可执行指令的形式实施并储存在计算机可读程序介质上。
[0023]
本文档中进一步描述的这些和其他方面。
附图说明
[0024]
图1示出了时域运动矢量预测(tmvp)和子块tmvp中的区域约束的示例。
[0025]
图2示出了分层运动估计方案的示例。
[0026]
图3是用于实现本文档中描述的技术的硬件平台的示例的框图。
[0027]
图4是用于视频处理的示例方法的流程图。
[0028]
图5示出了具有18乘12个亮度ctu的图片的示例,该图片被分割为12个片和3个栅格扫描条带(信息性)。
[0029]
图6示出了具有18乘12个亮度ctu的图片的示例,该图片被分割为24个片和9个矩形条带(信息性)。
[0030]
图7示出了图片的示例,该图片被分割为4个片、11个砖和4个矩形条带(信息性)。
[0031]
图8是示出可在其中实现本文所公开的各种技术的示例视频处理系统的框图。
[0032]
图9是图示示例视频编解码系统的框图。
[0033]
图10是图示根据本公开的一些实施例的编码器的框图。
[0034]
图11是图示根据本公开的一些实施例的解码器的框图。
[0035]
图12是根据本技术的用于视频处理的方法的流程表示。
[0036]
图13是根据本技术的用于视频处理的另一种方法的流程表示。
[0037]
图14是根据本技术的用于视频处理的另一种方法的流程表示。
[0038]
图15是根据本技术的用于视频处理的另一种方法的流程表示。
[0039]
图16是根据本技术的用于视频处理的另一种方法的流程表示。
[0040]
图17是根据本技术的用于视频处理的另一种方法的流程表示。
[0041]
图18是根据本技术的用于视频处理的另一种方法的流程表示。
[0042]
图19是根据本技术的用于视频处理的又一种方法的流程表示。
具体实施方式
[0043]
本文档提供了可以由图像或视频比特流的解码器使用的各种技术,以提高解压缩或解码的数字视频或图像的质量。为了简洁起见,术语“视频”在本文中用于包括图片序列(传统上称为视频)和各个图像。此外,视频编码器还可在编码过程期间实现这些技术,以便重构用于进一步编码的解码帧。
[0044]
在本文档中使用章节标题是为了易于理解,并且不将实施例和技术限于对应的章节。这样,一个章节的实施例可以与其他章节的实施例组合。
[0045]
1.概要
[0046]
该文档与视频编解码技术有关。具体地,它涉及在视频编解码中采用基于基色的表示的调色板编解码。它可以应用于现有的视频编解码标准(例如hevc)或要最终确定的标准(通用视频编解码)。它也可能适用于将来的视频编解码标准或视频编解码器。
[0047]
2.初步讨论
[0048]
视频编解码标准主要通过公知的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高级视频编解码(avc)和h.265/hevc标准[1,2]。从h.262开始,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索hevc以外的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索小组(jvet)。此后,jvet采纳了许多新方法并将其引入到名为“联合探索模型”(jem)的参考软件中。2018年4月,vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间的联合视频专家团队(jvet)创建,致力于vvc标准,目标是与hevc相比降低50%的比特率。
[0049]
2.1 vvc中的tmvp和子块tmvp中的区域约束
[0050]
图1图示了tmvp和子块tmvp中的示例区域约束。在tmvp和子块tmvp中,如图1所示,约束时域mv只能从并置的ctu加4
×
4块的列中获取。
[0051]
2.2示示例图片
[0052]
在一些实施例中,可以实现基于灵活分片方法的基于子图片的编解码技术。基于子图片的编解码技术的概要包括以下:
[0053]
(1)图片可以被分为子图片。
[0054]
(2)在sps中指示子图片存在的指示以及子图片的其他序列级信息。
[0055]
(3)可以通过比特流来控制在解码过程(不包括环路滤波操作)中是否将子图片视为图片。
[0056]
(4)可以通过每个子图片的比特流来控制是否禁用跨子图片边界的环路滤波。更新了dbf、sao和alf过程以控制跨子图片边界的环路滤波操作。
[0057]
(5)为了简单起见,在sps中以亮度样点为单位信令通知子图片的宽度、高度、水平偏移和垂直偏移。子图片边界被约束为条带边界。
[0058]
(6)通过略微更新coding_tree_unit()语法来指定在解码过程(不包括环路滤波操作)中将子图片视为图片,并更新至以下解码过程:
[0059]-用于(高级)时域亮度运动矢量预测的导出过程
[0060]-亮度样点双线性插值过程
[0061]-亮度样点8抽头插值滤波过程
[0062]-色度样点插值过程
[0063]
(7)子图片id在sps中被明确地指定,并且被包括在片组头中,以使得能够在无需改变vcl nal单元的情况下提取子图片序列。
[0064]
(8)提出输出子图片集合(osps)以指定子图片及其集合的标准提取和一致性点。
[0065]
2.3通用视频编解码中的示示例图片
[0066]
序列参数集rbsp语法
[0067][0068]
subpics_present_flag等于1指示在sps rbsp语法中当前存在子图片参数。subpics_present_flag等于0指示在sps rbsp语法中当前不存在子图片参数。
[0069]
注2

当比特流是子比特流提取过程的结果并且仅包含子比特流提取过程的输入比特流的子图片的子集时,可能需要在sps的rbsp中将subpics_present_flag的值设置为等于为1。
[0070]
max_subpics_minus1加1指定cvs中可能存在的最大子图片数目。max_subpics_minus1应在0到254的范围内。255的值保留给itu-t|iso/iec供将来使用。
[0071]
subpic_grid_col_width_minus1加1指定以4个样点为单位的子图片标识符网格的每个元素的宽度。语法元素的长度为ceil(log2(pic_width_max_in_luma_samples/4))比特。
[0072]
变量numsubpicgridcols导出如下:
[0073]
numsubpicgridcols=
[0074]
(pic_width_max_in_luma_samples subpic_grid_col_width_minus1*4
[0075]
3)/
[0076]
(subpic_grid_col_width_minus1*4 4)
ꢀꢀꢀ
(7-5)
[0077]
subpic_grid_row_height_minus1加1指定以4个样点为单位的子图片标识符网格中每个元素的高度。语法元素的长度为ceil(log2(pic_height_max_in_luma_samples/4))比特。
[0078]
变量numsubpicgridrows导出如下:
[0079]
numsubpicgridrows=
[0080]
(pic_height_max_in_luma_samples subpic_grid_row_height_minus1*4
[0081]
3)/(subpic_grid_row_height_minus1*4 4)
ꢀꢀꢀ
(7-6)
[0082]
subpic_grid_idx[i][j]指定网格位置(i,j)的子图片索引。语法元素的长度为ceil(log2(max_subpics_minus1 1))比特。
[0083]
变量subpictop[subpic_grid_idx[i][j]]、subpicleft[subpic_grid_idx[i][j]]、subpicwidth[subpic_grid_idx[i][j]]、subpicheight[subpic_grid_idx[i][j]]和numsubpics导出如下:
[0084]
[0085][0086]
subpic_treated_as_pic_flag[i]等于1指定将cvs中每个编解码图片的第i个子图片在不包括环路滤波操作的解码过程中视为图片。subpic_treated_as_pic_flag[i]等于0指定cvs中每个编解码图片的第i个子图片在不包括环路滤波操作的解码过程中不视为图片。当不存在时,将subpic_aged_as_pic_flag[i]的值推断为等于0。
[0087]
loop_filter_across_subpic_enabled_flag[i]等于1指定可以在cvs中每个编解码图片中的第i个子图片的边界上执行环路滤波操作。
[0088]
loop_filter_cross_subic_enabled_flag[i]等于0指定在cvs中每个编解码图片的第i个子图片的边界上不执行环路滤波操作。当不存在时,loop_filter_across_subpic_enabled_pic_flag[i]的值推断为等于1。
[0089]
比特流一致性要求应用以下约束:
[0090]-对于任何两个子图片subpica和subpicb,当subpica的索引小于subpicb的索引
时,subpica的任何编解码nal单元将在解码顺序上应接续subpicb的任何编解码nal单元。
[0091]-子图片的形状应使得每个子图片在解码时,其整个左边界和整个顶边界由图片边界构成,或者由先前解码的子图片的边界构成。
[0092]
对于从0到picsizeinctbsy-1范围(含端值)的ctbaddrrs,列表ctbtosubpicidx[ctbaddrrs]指定从图片栅格扫描中的ctb地址到子图片索引的转换,导出如下:
[0093][0094][0095]
num_bricks_in_slice_minus1(当存在时)指定条带中的砖(brick)的数目减1。num_bricks_in_slice_minus1的值应该在0到numbricksinpic-1范围(含端值)内。当rect_slice_flag等于0且single_brick_per_slice_flag等于1时,num_bricks_in_slice_minus1的值推断为等于0。当single_brick_per_slice_flag等于1时,num_bricks_in_slice_minus1的值推断为等于0。
[0096]
指定当前条带中的砖的数目的变量numbricksincurrslice和指定当前条带中第i个砖的砖索引的slicebrickidx[i]导出如下:
[0097][0098]
变量subpicidx、subpicleftboundarypos、subpictopboundarypos、subpicrightboundarypos和subpicbotboundarypos导出如下:
[0099][0100]
时域亮度运动矢量预测的导出过程
[0101]
此过程的输入是:
[0102]-与当前图片的左顶亮度样点相对的当前亮度编解码块的左顶样点的亮度位置(xcb,ycb),
[0103]-变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0104]-变量cbheight,指定亮度样点中当前编解码块的高度,
[0105]-参考索引refidxlx,其中x为0或1。
[0106]
此过程的输出是:
[0107]-1/16分数样点准确度的运动矢量预测mvlxcol,
[0108]-可用性标志availableflaglxcol。
[0109]
变量currcb指定在亮度位置(xcb,ycb)处的当前亮度编解码块。
[0110]
变量mvlxcol和availableflaglxcol导出如下:
[0111]-如果slice_temporal_mvp_enabled_flag等于0或(cbwidth*cbheight)小于或等于32,则mvlxcol的两个分量均设置为等于0,且availableflaglxcol设置为等于0。
[0112]-否则(slice_temporal_mvp_enabled_flag等于1),将应用以下有序步骤:
[0113]
1.右底并置运动矢量以及底部和右部边界样点位置导出如下:
[0114]
xcolbr=xcb cbwidth
ꢀꢀꢀꢀ
(8-421)
[0115]
ycolbr=ycb cbheight
ꢀꢀꢀꢀ
(8-422)
[0116]
rightboundarypos=subpic_treated_as_pic_flag[subpicidx]?
[0117]
subpicrightboundarypos:pic_width_in_luma_samples-1 (8-423)
[0118]
botboundarypos=subpic_treated_as_pic_flag[subpicidx]?
[0119]
subpicbotboundarypos:pic_height_in_luma_samples-1 (8-424)
[0120]-如果ycb》》ctblog2sizey等于ycolbr》》ctblog2sizey,ycolbr小于或等于botboundarypos,且xcolbr小于或等于rightboundarypos,则应用以下:
[0121]-变量colcb指定亮度编解码块,该亮度编解码块覆盖由colpic指定的并置图片内的由((xcolbr》》3)《《3,(ycolbr》》3)《《3)给出的修改位置。
[0122]-亮度位置(xcolcb,ycolcb)设置为等于与由colpic指定的并置图片的左顶亮度样点相对的由colcb指定的并置亮度编解码块的左顶样点。
[0123]-调用条款8.5.2.12中指定的并置运动矢量的导出过程,其中currcb、colcb、(xcolcb,ycolcb)、refidxlx和sbflag设置为等于0作为输入,输出分配给mvlxcol和availableflaglxcol。
[0124]
否则,mvlxcol的两个分量均设置为等于0,且availableflaglxcol设置为等于0。
[0125]

[0126]
亮度样点双线性插值过程
[0127]
此过程的输入是:
[0128]-以全样点为单位的亮度位置(xint
l
,yint
l
),
[0129]-以分数样点为单位的亮度位置(xfrac
l
,yfrac
l
),
[0130]-亮度参考样点阵列refpiclx
l

[0131]
此过程的输出是预测的亮度样点值predsamplelx
l
[0132]
变量shift1、shift2、shift3、shift4、offset1、offset2和offset3导出如下:
[0133]
shift1=bitdepth
y-6
ꢀꢀꢀꢀꢀ
(8-453)
[0134]
offset1=1《《(shift1-1)
ꢀꢀꢀꢀ
(8-454)
[0135]
shift2=4
ꢀꢀꢀꢀꢀꢀꢀꢀ
(8-455)
[0136]
offset2=1《《(shift2-1)
ꢀꢀꢀꢀꢀ
(8-456)
[0137]
shift3=10-bitdepthyꢀꢀꢀꢀ
(8-457)
[0138]
shift4=bitdepth
y-10
ꢀꢀꢀꢀꢀ
(8-458)
[0139]
offset4=1《《(shift4-1)
ꢀꢀꢀꢀꢀ
(8-459)
[0140]
变量picw设置为等于pic_width_in_luma_samples,且变量pich设置为等于pic_height_in_luma_samples。
[0141]
表8-10中指定了p等于xfrac
l
或yfrac
l
的每个1/16分数样点位置的亮度插值滤波器系数fb
l
[p]。
[0142]
对于i=0..1,以全样点为单位的亮度位置(xinti,yinti)导出如下:
[0143]-如果subpic_treated_as_pic_flag[subpicidx]等于1,则应用以下:
[0144]
xinti=clip3(subpicleftboundarypos,subpicrightboundarypos,xint
l
i) (8-460)
[0145]
yinti=clip3(subpictopboundarypos,subpicbotboundarypos,yint
l
i) (8-461)
[0146]-否则(subpic_aged_as_pic_flag[subpicidx]等于0),应用以下:
[0147]
xinti=clip3(0,picw-1,sps_ref_wraparound_enabled_flag?
[0148][0149]
yinti=clip3(0,pich-1,yint
l
i)
ꢀꢀ
(8-463)
[0150]

[0151]
基于子块的时域merge候选的导出过程
[0152]
此过程的输入是:
[0153]-与当前图片的左顶亮度样点相对的当前亮度编解码块的左顶样点的亮度位置(xcb,ycb),
[0154]-变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0155]-变量cbheight,指定亮度样点中当前编解码块的高度。
[0156]-邻域编解码单元的可用性标志availableflaga1,
[0157]-邻域编解码单元的参考索引refidxlxa1,其中x为0或1,
[0158]-邻域编解码单元的预测列表利用标志predflaglxa1,其中x为0或1,
[0159]-邻域编解码单元的1/16分数样点准确度的运动矢量mvlxa1,其中x为0或1。
[0160]
此过程的输出是:
[0161]-可用性标志availableflagsbcol,
[0162]-水平方向numsbx和垂直方向numsby上的亮度编解码子块的数目,
[0163]-参考索引refidxl0sbcol和refidxl1sbcol,
[0164]-1/16分数样点准确度的亮度运动矢量mvl0sbcol[xsbidx][ysbidx]和mvl1sbcol[xsbidx][ysbidx],其中xsbidx=0..numsbx-1,ysbidx=0..numsby-1,
[0165]-预测列表利用标志predflagl0sbcol[xsbidx][ysbidx]和predflagl1sbcol[xsbidx][ysbidx],其中xsbidx=0..numsbx-1,ysbidx=0..numsby-1。
[0166]
可用性标志availableflagsbcol导出如下。
[0167]-如果以下条件中的一个或多个为真,则availableflagsbcol设置为等于0。
[0168]-slice_temporal_mvp_enabled_flag等于0。
[0169]-sps_sbtmvp_enabled_flag等于0。
[0170]-cbwidth小于8。
[0171]-cbheight小于8。
[0172]-否则,应用以下有序步骤:
[0173]
1.包含当前编解码块的亮度编解码树块的左顶样点的位置(xctb,yctb)和当前亮度编解码块的右下中心样点的位置(xctr,yctr)导出如下:
[0174]
xctb=(xcb》》ctulog2size)《《ctulog2size
ꢀꢀ
(8-542)
[0175]
yctb=(ycb》》ctulog2size)《《ctulog2size
ꢀꢀ
(8-543)
[0176]
xctr=xcb (cbwidth/2)
ꢀꢀꢀꢀꢀꢀꢀ
(8-544)
[0177]
yctr=ycb (cbheight/2)
ꢀꢀꢀꢀꢀꢀꢀ
(8-545)
[0178]
2.亮度位置(xcolctrcb,ycolctrcb)设置为等于,与由colpic指定的并置图片的左顶亮度样点相对的覆盖colpic内部的由(xctr,yctr)给出的位置的并置亮度编解码块的
左顶样点。
[0179]
3.调用条款8.5.5.4中指定的基于子块的时域merge基本运动数据的导出过程,其中,位置(xctb,yctb)、位置(xcolctrcb,ycolctrcb)、可用性标志availableflaga1和预测列表利用标志predflaglxa1和参考索引refidxlxa1以及运动矢量mvlxa1(其中x为0和1)作为输入,并置块的运动矢量ctrmvlx和预测列表利用标志ctrpredflaglx(其中x为0和1)以及时域运动矢量tempmv作为输出。
[0180]
4.变量availableflagsbcol导出如下:
[0181]-如果ctrpredflagl0和ctrpredflagl1两者均等于0,则availableflagsbcol设置为等于0。
[0182]-否则,availableflagsbcol设置为等于1。
[0183]
当availableflagsbcol等于1时,应用以下:
[0184]-变量numsbx、numsby、sbwidth、sbheight和refidxlxsbcol导出如下:
[0185]
numsbx=cbwidth》》3
ꢀꢀꢀꢀꢀꢀꢀ
(8-546)
[0186]
numsby=cbheight》》3
ꢀꢀꢀꢀꢀꢀꢀ
(8-547)
[0187]
sbwidth=cbwidth/numsbx
ꢀꢀꢀꢀꢀꢀꢀ
(8-548)
[0188]
sbheight=cbheight/numsby
ꢀꢀꢀ
(8-549)
[0189]
refidxlxsbcol=0
ꢀꢀꢀꢀ
(8-550)
[0190]-对于xsbidx=0..numsbx-1和ysbidx=0..numsby-1,运动矢量mvlxsbcol[xsbidx][ysbidx]和预测列表利用标志predflaglxsbcol[xsbidx][ysbidx]导出如下:
[0191]-指定与当前图片的左顶亮度样点相对的当前编解码子块的左顶样点的亮度位置(xsb,ysb)导出如下:
[0192]
xsb=xcb xsbidx*sbwidth sbwidth/2
ꢀꢀꢀꢀꢀ
(8-551)
[0193]
ysb=ycb ysbidx*sbheight sbheight/2
ꢀꢀꢀꢀ
(8-552)
[0194]-colpic内部的并置子块的位置(xcolsb,ycolsb)导出如下。
[0195]-应用以下:
[0196][0197]-如果subpic_treated_as_pic_flag[subpicidx]等于1,则应用以下:
[0198][0199]-否则(subpic_treated_as_pic_flag[subpicidx]等于0),应用以下:
[0200][0201]

[0202]
基于子块的时域merge基本运动数据的导出过程
[0203]
此过程的输入是:
[0204]-包含当前编解码块的亮度编解码树块的左顶样点的位置(xctb,yctb),
[0205]-覆盖右下中心样点的并置亮度编解码块的左顶样点的位置(xcolctrcb,ycolctrcb)。
[0206]-邻域编解码单元的可用性标志availableflaga1,
[0207]-邻域编解码单元的参考索引refidxlxa1,
[0208]-邻域编解码单元的预测列表利用标志predflaglxa1,
[0209]-邻域编解码单元的1/16分数样点准确度的运动矢量mvlxa1。
[0210]
此过程的输出是:
[0211]-运动矢量ctrmvl0和ctrmvl1,
[0212]-预测列表利用标志ctrpredflagl0和ctrpredflagl1,
[0213]-时域运动矢量tempmv。
[0214]
变量tempmv设置如下:
[0215]
tempmv[0]=0
ꢀꢀꢀꢀꢀꢀꢀꢀ
(8-558)
[0216]
tempmv[1]=0
ꢀꢀꢀꢀꢀ
(8-559)
[0217]
变量currpic指定当前图片。
[0218]
当availableflaga1等于真(true)时,应用以下:
[0219]-如果以下所有条件均为真,则tempmv设置为等于mvl0a1:
[0220]-predflagl0a1等于1,
[0221]-diffpicordercnt(colpic,refpiclist[0][refidxl0a1])等于0,
[0222]

否则,如果以下所有条件均为真,则tempmv设置为等于mvl1a1:
[0223]-slice_type等于b,
[0224]-predflagl1a1等于1,
[0225]-diffpicordercnt(colpic,refpiclist[1][refidxl1a1])等于0。
[0226]
colpic内部的并置块的位置(xcolcb,ycolcb)导出如下。
[0227]-应用以下:
[0228]
[0229]-如果subpic_treated_as_pic_flag[subpicidx]等于1,应用以下:
[0230][0231]-否则(subpic_treated_as_pic_flag[subpicidx]等于0,应用以下:
[0232][0233]

[0234]
亮度样点插值滤波过程
[0235]
此过程的输入是:
[0236]-以全样点为单位的亮度位置(xint
l
,yint
l
),
[0237]-以分数样点为单位的亮度位置(xfrac
l
,yfrac
l
),
[0238]-以全样点为单位的亮度位置(xsbint
l
,ysbint
l
),指定与参考图片的左顶亮度样点相对的用于参考样点填充的界限块的左顶样点,
[0239]-亮度参考样点阵列refpiclx
l

[0240]-半样点插值滤波器索引hpelifidx,
[0241]-变量sbwidth,指定当前子块的宽度,
[0242]-变量sbheight,指定当前子块的高度,
[0243]-亮度位置(xsb,ysb),指定与当前图片的左顶亮度样点相对的当前子块的左顶样点,
[0244]
此过程的输出是预测的亮度样点值predsamplelx
l
[0245]
变量shift1、shift2和shift3导出如下:
[0246]-变量shift1设置为等于min(4,bitdepth
y-8),变量shift2设置为等于6,变量shift3设置为等于max(2,14-bitdepthy)。
[0247]-变量picw设置为等于pic_width_in_luma_samples,变量pich设置为等于pic_height_in_luma_samples。
[0248]
p等于xfrac
l
或yfrac
l
的每个1/16分数样点位置的亮度插值滤波器系数f
l
[p]导出如下:
[0249]-如果motionmodelidc[xsb][ysb]大于0,并且sbwidth和sbheight均等于4,则亮度插值滤波器系数f
l
[p]在表8-12中指定。
[0250]-否则,取决于hpelifidx在表8-11中指定亮度插值滤波器系数f
l
[p]。
[0251]
对于i=0..7,以全样点为单位的亮度位置(xinti,yinti)导出如下:
[0252]-如果subpic_treated_as_pic_flag[subpicidx]等于1,则应有以下:
[0253]
xinti=clip3(subpicleftboundarypos,subpicrightboundarypos,xint
l
i-3)
ꢀꢀ
(8-771)
[0254]
yinti=clip3(subpictopboundarypos,subpicbotboundarypos,yint
l
i-3)
ꢀꢀ
(8-772)
[0255]-否则(subpic_treated_as_pic_flag[subpicidx]等于0),应用以下:
[0256][0257]
yinti=clip3(0,pich-1,yint
l
i-3)
ꢀꢀꢀꢀꢀꢀ
(8-774)
[0258]

[0259]
色度样点插值过程
[0260]
此过程的输入是:
[0261]-以全样点为单位的色度位置(xintc,yintc),
[0262]-以1/32分数样点为单位的色度位置(xfracc,yfracc),
[0263]-以全样点为单位的色度位置(xsbintc,ysbintc),指定与参考图片的左顶色度样点相对的用于参考样点填充的界限块的左顶样点,
[0264]-变量sbwidth,指定当前子块的宽度,
[0265]-变量sbheight,指定当前子块的高度,
[0266]-色度参考样点阵列refpiclxc。
[0267]
此过程的输出是预测的色度样点值predsamplelxc[0268]
变量shift1、shift2和shift3导出如下:
[0269]-变量shift1设置为等于min(4,bitdepth
c-8),变量shift2设置为等于6,变量shift3设置为等于max(2,14-bitdepthc)。
[0270]-变量picwc设置为等于pic_width_in_luma_samples/subwidthc,变量pichc设置为等于pic_height_in_luma_samples/subheightc。
[0271]
表8-13中指定了p等于xfracc或yfracc的每个1/32分数样点位置的色度插值滤波器系数fc[p]。
[0272]
变量xoffset设置为等于(sps_ref_wraparound_offset_minus1 1)*mincbsizey)/subwidthc。
[0273]
对于i=0..3,以全样点为单位的色度位置(xinti,yinti)导出如下:
[0274]-如果subpic_treated_as_pic_flag[subpicidx]等于1,则应用以下:
[0275]
xinti=clip3(subpicleftboundarypos/subwidthc,subpicrightboundarypos/subwidthc,xint
l
i)
ꢀꢀꢀ
(8-785)
[0276]
yinti=clip3(subpictopboundarypos/subheightc,subpicbotboundarypos/subheightc,yint
l
i)
ꢀꢀꢀ
(8-786)
[0277]-否则(subpic_treated_as_pic_flag[subpicidx]等于0),应用以下:
[0278][0279]
yinti=clip3(0,pich
c-1,yintc i-1)
ꢀꢀꢀ
(8-788)
[0280]
2.4示例仅编码器的基于gop的时域滤波器
[0281]
在一些实施例中,可以实现仅编码器的时域滤波器。作为预处理步骤,在编解码器侧进行滤波。读取要编解码的所选图片之前和之后的源图片,并将与所选图片相对的基于块的运动补偿方法应用于这些源图片。使用运动补偿后的样点值对所选图片中的样点进行时域滤波。
[0282]
取决于所选图片的时域子层以及qp设置总体滤波器强度。仅对时域子层0和1处的图片进行滤波,由比层1的图片更强的滤波器对层0的图片进行滤波。取决于所选图片中的样点值与运动补偿图片中的并置样点之间的差异来调整每个样点滤波器强度,使得运动补偿图片与所选图片之间的小差异进行比较大的差异更强的滤波。
[0283]
基于gop的时域滤波器
[0284]
在读取图片之后且在编码之前直接引入时域滤波器。以下是更详细描述的步骤。
[0285]
操作1:由编解码器读取图片
[0286]
操作2:如果图片在编解码分层结构中足够低,则在编解码之前对其进行滤波。否则,图片在不进行滤波的情况下被编码。对具有poc%8==0的ra图片和具有poc%4==0的ld图片进行滤波。从不对ai图片进行滤波。
[0287]
根据用于ra的以下等式来设置总体滤波器强度。
[0288][0289]
其中,n是读取的图片的数目。
[0290]
对于ld情况,使用so(n)=0.95。
[0291]
操作3:读取所选图片(以下称为原始图片)之前和/或之后的两张图片。在边缘情况下,例如如果是第一张图片或接近最后一张图片,则仅读取可用图片。
[0292]
操作4:每个8x8图片块估算之前和之后读取的图片相对于原始图片的运动。
[0293]
使用分层运动估计方案,并且在图2中图示了层l0、l1和l2。通过对所有读取图片和原始图片(例如图2中的l1)的每个2
×
2块进行平均来生成子采样的图片。使用相同的子采样方法从l1导出l2。
[0294]
图2示出了分层运动估计的不同层的示例。l0是原始分辨率。l1是l0的子采样版本。l2是l1的子采样版本。
[0295]
首先,对l2中的每个16x16块进行运动估计。针对每个所选运动矢量计算平方差,并且选择与最小差相对应的运动矢量。然后,在估计l1中的运动时,将所选运动矢量用作初始值。然后,对于估计l0中的运动进行相同的操作。最后一步,通过使用l0上的插值滤波器为每个8x8块估计子像素运动。
[0296]
vtm 6抽头插值滤波器可以使用:
[0297][0298]
操作5:根据每个块的最佳匹配运动,对原始图片之前和之后的图片应用运动补偿,例如,使得每个块中原始图片的样点坐标在参考图片中具有最佳匹配坐标。
[0299]
操作6:亮度和色度通道一个接一个地处理的样点,如以下步骤所述。
[0300]
操作7:使用以下公式计算新样点值in。
[0301][0302]
其中io是原始样点的样点值,ir(i)是运动补偿图片i的对应样点的强度,wr(i,a)是当可用的运动补偿图片的数目是a时动作补偿图片i的权重。
[0303]
在亮度通道中,权重wr(i,a)定义如下:
[0304][0305]
其中
[0306]sl
=0.4
[0307]
[0308][0309]
对于i和a的所有其他情况:sr(i,a)=0.3
[0310]
σ
l
(qp)=3*(qp-10)
[0311]
δi(i)=ir(i)-io[0312]
对于色度通道,权重wr(i,a)定义如下:
[0313][0314]
其中sc=0.55和σc=30
[0315]
操作8:将滤波器应用于当前样点。所得到的样点值分开储存。
[0316]
操作9:对滤波的图片进行编码。
[0317]
2.5示例图片分割(片、砖、条带)
[0318]
在一些实施例中,图片被分为一个或多个片行和一个或多个片列。片是覆盖图片的矩形区域的ctu序列。
[0319]
片被分为一个或多个砖,每个砖由片内的多个ctu行构成。
[0320]
未分割为多个砖的片也称为砖。然而,作为片的真子集的砖不称为片。
[0321]
条带包含图片的多个片或片的多个砖。
[0322]
子图片包含共同覆盖的图片的矩形区域的一个或多个条带。
[0323]
支持条带的两种模式,即,栅格扫描条带模式和矩形条带模式。在栅格扫描条带模式下,条带包含图片的片栅格扫描中的片序列。在矩形条带模式下,条带包含共同形成图片的矩形区域的图片的多个砖。矩形条带内的砖按条带的砖栅格扫描顺序。
[0324]
图5示出了图片的栅格扫描条带分割的示例,其中,图片被分为12个片和3个栅格扫描条带。
[0325]
图6示出了图片的矩形条带分割的示例,其中图片被分为24个片(6个片列和4个片行)和9个矩形条带。
[0326]
图7示出了被分割为片、砖和矩形条带的图片的示例,其中该图片被分为4个片(2个片列和2个片行)、11个砖(左顶片包含1个砖,右顶片包含5个块砖,左底片包含2个砖,右底片包含3个砖)和4个矩形条带。
[0327]
图片参数集rbsp语法
[0328]
[0329]
[0330][0331][0332]
single_tile_in_pic_flag等于1指定在参考pps的每个图片中仅存在一个片。single_tile_in_pic_flag等于0指定在参考pps的每个图片中存在多于一个片。
[0333]


如果在片内不存在进一步的砖划分,则将整个片被称为砖。当图片仅包含单个片而没有进一步的砖划分时,则称为单个砖。
[0334]
比特流一致性要求,对于cvs内编解码图片所参考的所有pps,single_tile_in_pic_flag的值均应该相同。
[0335]
uniform_tile_spacing_flag等于1指定片列边界和同样的片行边界在图片上均匀分布,并使用语法元素tile_cols_width_minus1和tile_rows_height_minus1信令通知。uniform_tile_spacing_flag等于0指定片列边界和同样的片行边界在图片上可以均匀分布或可以不均匀分布,并使用语法元素num_tile_columns_minus1和num_tile_rows_minus1以及语法元素对tile_column_width_minus1[i]和tile_row_height_minus1[i]列表信令通知。当不存在时,uniform_tile_spacing_flag的值推断为等于1。
[0336]
tile_cols_width_minus1加1指定当uniform_tile_spacing_flag等于1时以ctb为单位的图片的最右片列以外的片列的宽度。tile_cols_width_minus1的值应该在0到picwidthinctbsy-1范围(含端值)内。当不存在时,tile_cols_width_minus1的值推断为等于picwidthinctbsy-1。
[0337]
tile_rows_height_minus1加1指定当uniform_tile_spacing_flag等于1时以ctb为单位的图片的底部片行以外的片行的高度。tile_rows_height_minus1的值应该在0到picheightinctbsy-1范围(含端值)内。当不存在时,tile_rows_height_minus1的值推断为等于picheightinctbsy-1。
[0338]
num_tile_columns_minus1加1指定当unique_tile_spacing_flag等于0时分割图
片的片列的数目。num_tile_columns_minus1的值应该在0到picwidthinctbsy-1范围(含端值)内。如果single_tile_in_pic_flag等于1,则num_tile_columns_minus1的值推断为等于0。否则,当uniform_tile_spacing_flag等于1时,则num_tile_columns_minus1的值按条款6.5.1中指定来推断。
[0339]
num_tile_rows_minus1加1指定当uniform_tile_spacing_flag等于0时分割图片的片行的数目。num_tile_rows_minus1的值应该在0到picheightinctbsy-1范围(含端值)内。如果single_tile_in_pic_flag等于1,则num_tile_rows_minus1的值推断为等于0。否则,当uniform_tile_spacing_flag等于1时,则num_tile_rows_minus1的值按条款6.5.1中指定来推断。
[0340]
变量numtilesinpic设置为等于(num_tile_columns_minus1 1)*(num_tile_rows_minus1 1)。
[0341]
当single_tile_in_pic_flag等于0时,numtilesinpic应该大于1。
[0342]
tile_column_width_minus1[i]加1指定以ctb为单位的第i个片列的宽度。
[0343]
tile_row_height_minus1[i]加1指定以ctb为单位的第i个片行的高度。
[0344]
brick_splitting_present_flag等于1指定参考pps的图片的一个或多个片可以被分为两个或更多个砖。brick_splitting_present_flag等于0指定参考pps的图片的片均没有被分为两个或更多个砖。
[0345]
num_tiles_in_pic_minus1加1指定参考pps的每个图片中的片的数目。num_tiles_in_pic_minus1的值应该等于numtilesinpic

1。当不存在时,num_tiles_in_pic_minus1的值推断为等于numtilesinpic-1。
[0346]
brick_split_flag[i]等于1指定第i个片被分为两个或更多个砖。brick_split_flag[i]等于0指定第i个片未被分为两个或更多个砖。当不存在时,brick_split_flag[i]的值推断为等于0。在一些实施例中,通过添加语法条件“if(rowheight[i]》1)”来引入对sps的pps解析依赖性(例如,类似地,对于uniform_brick_spacing_flag[i])。
[0347]
uniform_brick_spacing_flag[i]等于1指定水平砖边界在第i个片上均匀分布,并使用语法元素brick_height_minus1[i]信令通知。uniform_brick_spacing_flag[i]等于0指定水平砖边界在第i个片上可以均匀分布或可以不均匀分布,并使用语法元素num_brick_rows_minus2[i]和语法元素brick_row_height_minus1[i][j]的列表信令通知。当不存在时,uniform_brick_spacing_flag[i]的值推断为等于1。
[0348]
brick_height_minus1[i]加1指定当uniform_brick_spacing_flag[i]等于1时以ctb为单位的第i个片中的底部砖以外的砖行的高度。当存在时,brick_height_minus1的值应该在0到rowheight[i]-2范围(含端值)内。当不存在时,brick_height_minus1[i]的值推断为等于rowheight[i]-1。
[0349]
num_brick_rows_minus2[i]加2指定当unique_brick_spacing_flag[i]等于0时分割第i个片的砖的数目。当存在时,num_brick_rows_minus2[i]的值应该在0到rowheight[i]

2范围(含端值)内。如果brick_split_flag[i]等于0,则num_brick_rows_minus2[i]的值推断为等于-1。否则,当uniform_brick_spacing_flag[i]等于1时,则num_brick_rows_minus2[i]的值按6.5.1中指定来推断。
[0350]
brick_row_height_minus1[i][j]加1指定当uniform_tile_spacing_flag等于0
时以ctb为单位的第i个片中第j个砖的高度。
[0351]
导出以下变量,并且当uniform_tile_spacing_flag等于1时,推断num_tile_columns_minus1和num_tile_rows_minus1的值,并且对于从0到numtilesinpic-1范围(含端值)的每个i,当uniform_brick_spacing_flag[i]等于1时,通过调用条款6.5.1中指定的ctb栅格和砖扫描转换过程来推断num_brick_rows_minus2[i]的值:
[0352]

对于从0到num_tile_rows_minus1范围(含端值)的j,列表rowheight[j]指定以ctb为单位的第j个片行的高度,
[0353]

对于从0到picsizeinctbsy

1范围(含端值)的ctbaddrrs,列表ctbaddrrstobs[ctbaddrrs]指定从图片的ctb栅格扫描中的ctb地址到砖扫描中的ctb地址的转换,
[0354]

对于从0到picsizeinctbsy

1范围(含端值)的ctbaddrb,列表ctbaddrbstors[ctbaddrbs]指定从砖扫描中的ctb地址到图片的ctb栅格扫描中的ctb地址的转换,
[0355]

对于从0到picsizeinctbsy

1范围(含端值)的ctbaddrb,列表brickid[ctbaddrbs]指定从砖扫描中的ctb地址到砖id的转换,
[0356]

对于从0到numbricksinpic

1范围(含端值)的brickidx,列表numctusinbrick[brickidx]指定从砖索引到砖中的ctu的数目的转换,
[0357]

对于从0到numbricksinpic

1范围(含端值)的brickidx,列表firstctbaddrbs[brickidx]指定从砖id到砖中第一个ctb的砖扫描中的ctb地址的转换。
[0358]
single_brick_per_slice_flag等于1指定参考此pps的每个条带包括一个砖。single_brick_per_slice_flag等于0指定参考此pps的条带可以包括多于一个砖。当不存在时,single_brick_per_slice_flag的值推断为等于1。
[0359]
rect_slice_flag等于0指定每个条带中的砖按栅格扫描顺序,并且条带信息未在pps中信令通知。rect_slice_flag等于1指定每个条带内的砖覆盖图片的矩形区域,并且在pps中信令通知条带信息。当brick_splitting_present_flag等于1时,rect_slice_flag的值应该等于1。当不存在时,rect_slice_flag推断为等于1。
[0360]
num_slices_in_pic_minus1加1指定参考pps的每个图片中的条带的数目。num_slices_in_pic_minus1的值应该在0到numbricksinpic

1范围(含端值)内。当不存在且single_brick_per_slice_flag等于1时,num_slices_in_pic_minus1的值推断为等于numbricksinpic-1。
[0361]
bottom_right_brick_idx_length_minus1加1指定用于表示语法元素bottom_right_brick_idx_delta[i]的比特的数目。bottom_right_brick_idx_length_minus1的值应该在0到ceil(log2(numbricksinpic))-1范围(含端值)内。
[0362]
bottom_right_brick_idx_delta[i]当i大于0时指定位于第i个条带的右底角的砖的砖索引与第(i

1)个条带的右底角的砖索引之间的差。bottom_right_brick_idx_delta[0]指定第0个条带的右底角的砖索引。当single_brick_per_slice_flag等于1时,bottom_right_brick_idx_delta[i]的值推断为等于1。bottomrightbrickidx[num_slices_in_pic_minus1]的值推断为等于numbricksinpic

1。bottom_right_brick_idx_delta[i]语法元素的长度是bottom_right_brick_idx_length_minus1 1个比特。
[0363]
brick_idx_delta_sign_flag[i]等于1指示bottom_right_brick_idx_delta[i]的正号。sign_bottom_right_brick_idx_delta[i]等于0指示bottom_right_brick_idx_
delta[i]的负号。
[0364]
比特流一致性要求,条带应该包括多个完整片或仅包括一个片的完整砖的连续序列。
[0365]
变量topleftbrickidx[i]、bottomrightbrickidx[i]、numbricksinslice[i]和brickstoslicemap[j],指定位于第i个条带的左顶角的砖的砖索引、位于第i个条带的右底角的砖的砖索引、第i个条带中的砖的数目和砖到条带的映射,导出如下:
[0366][0367]
一般条带头语义
[0368]
当存在时,条带头语法元素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中的每一个的值在编解码图片的所有条带头中应该相同。
[0369]
变量cuqpdeltaval,指定包含cu_qp_delta_abs的编解码单元的亮度量化参数与其预测之间的差,设置为等于0。变量cuqpoffset
cb
、cuqpoffset
cr
和cuqpoffset
cbcr
,指定当确定包含cu_chroma_qp_offset_flag的编解码单元的qp

cb
、qp

cr
和qp

cbcr
量化参数的相应值时要使用的值,均设置为等于0。
[0370]
slice_pic_parameter_set_id指定正在使用的pps的pps_pic_parameter_set_id的值。slice_pic_parameter_set_id的值应该在0到63范围(含端值)内。
[0371]
比特流一致性要求,当前图片的temporalid的值应该大于或等于pps的temporalid的值,该pps的pps_pic_parameter_set_id等于slice_pic_parameter_set_id。
[0372]
slice_address指定条带的条带地址。当不存在时,slice_address的值推断为等于0。
[0373]
如果rect_slice_flag等于0,则应用以下:
[0374]-条带地址是砖id,如等式(7-59)指定。
[0375]-slice_address的长度是ceil(log2(numbricksinpic))比特。
[0376]-slice_address的值应该在0到numbricksinpic

1范围(含端值)内。
[0377]
否则(rect_slice_flag等于1),应用以下:
[0378]-条带地址是条带的条带id。
[0379]-slice_address的长度是signalled_slice_id_length_minus1 1比特。
[0380]-如果signalled_slice_id_flag等于0,则slice_address的值应该在0到num_slices_in_pic_minus1范围(含端值)内。否则,slice_address的值应该在0到2
(signalled_slice_id_length_minus1 1)-1范围(含端值)内。
[0381]
比特流一致性要求应用以下约束:
[0382]-slice_address的值应该不等于相同编解码图片的任何其它编解码条带nal单元的slice_address的值。
[0383]-当rect_slice_flag等于0时,图片的条带应该按其slice_address值的升序。
[0384]-图片的条带的形状应该使得每个砖在解码时,其整个左边界和整个顶部边界由图片边界或由先前解码的(一个或多个)砖的边界构成。
[0385]
num_bricks_in_slice_minus1(当存在时)指定条带中的砖的数目减1。num_bricks_in_slice_minus1的值应该在0到numbricksinpic-1范围(含端值)内。当rect_slice_flag等于0且single_brick_per_slice_flag等于1时,num_bricks_in_slice_minus1的值推断为等于0。当single_brick_per_slice_flag等于1时,num_bricks_in_slice_minus1的值推断为等于0。
[0386]
指定当前条带中的砖的数目的变量numbricksincurrslice和指定当前条带中第i个砖的砖索引的slicebrickidx[i]导出如下:
[0387][0388]
变量subpicidx、subpicleftboundarypos、subpictopboundarypos、subpicrightboundarypos和subpicbotboundarypos导出如下:
[0389]
[0390][0391]
3.通过公开的实施例解决的技术问题的示例
[0392]
(1)存在一些可能违反子图片约束的设计。
[0393]
a.仿射构造的候选中的tmvp可能获取并置图片中在当前子图片的范围之外的mv。
[0394]
b.当导出双向光流(bdof)和预测细化光流(prof)中的梯度时,需要获取整数参考样点的两个扩展行和两个扩展列。这些参考样点可能在当前子图片的范围之外。
[0395]
c.当在亮度映射色度缩放(lmcs)中导出色度残差缩放因子时,所访问的重构的亮度样点可能在当前子图片的范围的范围之外。
[0396]
d.当导出亮度帧内预测模式、用于帧内预测的参考样点、用于cclm的参考样点、用于merge/amvp/ciip/ibc/lmcs的空间邻域候选的邻域块可用性、量化参数、cabac初始化过程、使用左方和上方语法元素的ctxinc导出以及语法元素mtt_split_cu_vertical_flag的ctxinc时,邻域块可能在当前子图片的范围之外。子图片的表示可能导致具有不完整ctu的子图片。ctu分割和cu划分过程可能需要考虑不完整的ctu。
[0397]
(2)与子图片有关的信令通知的语法元素可以任意大,这可能引起溢出问题。
[0398]
(3)子图片的表示可能导致非矩形子图片。
[0399]
(4)当前,以4个样点为单位定义子图片和子图片网格。并且,语法元素的长度取决于图片高度除以4。然而,由于当前pic_width_in_luma_samples和pic_height_in_luma_samples应该是max(8,mincbsizey)的整数倍,所以可能需要以8个样点为单位定义子图片网格。
[0400]
(5)可能需要将sps语法、pic_width_max_in_luma_samples和pic_height_max_in_luma_samples限制为不小于8。
[0401]
(6)在当前设计中未考虑参考图片重采样/可缩放性与子图片之间的交互。
[0402]
(7)在时域滤波中,可能需要跨不同子图片的样点。
[0403]
(8)当信令通知条带时,在一些情况下,可能在不信令通知的情况下推断信息。
[0404]
(9)可能所有定义的条带都不能覆盖整个图片或子图片。
[0405]
4.示例技术和实施例
[0406]
以下详细列表应被视为示例以解释一般概念。这些项目不应狭义地解释。此外,这些项目可以任何方式组合。在下文中,时域滤波器用于表示需要其他图片中的样点的滤波器。max(x,y)返回x和y中较大的一个。min(x,y)返回x和y中较小的一个。
[0407]
1.假设所需子图片的左顶角坐标是(xtl,ytl),并且所需子图片的右底坐标是(xbr,ybr),则在图片中获取时域mv预测器以生成仿射运动候选(例如,构造的仿射merge候选)的位置(命名为位置rb)必须在所需子图片中。
[0408]
a.在一个示例中,所需子图片是覆盖当前块的子图片。
[0409]
b.在一个示例中,如果具有坐标(x,y)的位置rb在所需子图片之外,则将时域mv预测器视为不可用。
[0410]
i.在一个示例中,如果x》xbr,则位置rb在所需子图片之外。
[0411]
ii.在一个示例中,如果y》ybr,则位置rb在所需子图片之外。
[0412]
iii.在一个示例中,如果x<xtl,则位置rb在所需子图片之外。
[0413]
iv.在一个示例中,如果y《ytl,则位置rb在所需子图片之外。
[0414]
c.在一个示例中,位置rb如果在所需子图片之外,则利用rb的替换。
[0415]
i.替代地,此外,替换位置应该在所需的子图片中。
[0416]
d.在一个示例中,位置rb被裁剪为在所需子图片中。
[0417]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0418]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0419]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0420]
iv.在一个示例中,y被裁剪为y=max(y,ytl)。
[0421]
e.在一个示例中,位置rb可以是在并置图片中的当前块的对应块内的右底位置。
[0422]
f.所提出的方法可以用于需要从不同于当前图片的图片访问运动信息的其他编解码工具中。
[0423]
g.在一个示例中,是否应用以上方法(例如,位置rb必须在所需子图片中(例如,按照1.a和/或1.b所要求的进行))可以取决于在vps/dps/sps/pps/aps/条带头/片组头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0424]
2.假设所需子图片的左顶角坐标是(xtl,ytl),并且所需子图片的右底角坐标是(xbr,ybr),则在插值过程中未使用的参考中获取整数样点的位置(命名为位置s)必须在所需子图片中。
[0425]
a.在一个示例中,所需子图片是覆盖当前块的子图片。
[0426]
b.在一个示例中,如果具有坐标(x,y)的位置s在所需子图片之外,则将参考样点视为不可用。
[0427]
i.在一个示例中,如果x》xbr,则位置s在所需子图片之外。
[0428]
ii.在一个示例中,如果y》ybr,则位置s在所需子图片之外。
[0429]
iii.在一个示例中,如果x<xtl,则位置s在所需子图片之外。
[0430]
iv.在一个示例中,如果y<ytl,则位置s在所需子图片之外。
[0431]
c.在一个示例中,位置s被裁剪为在所需子图片中。
[0432]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0433]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0434]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0435]
iv.在一个示例中,y被裁剪为y=max(y,ytl)。
[0436]
d.在一个示例中,位置s是否必须在所需子图片中(例如,按照2.a和/或2.b所要求的进行)可以取决于在vps/dps/sps/pps/aps/条带头/片组头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0437]
e.在一个示例中,所获取的整数样点用于生成bdof和/或porf中的梯度。
[0438]
3.假设所需子图片的左顶角坐标是(xtl,ytl),并且所需子图片的右底坐标是(xbr,ybr),则获取重构的亮度样点值的位置(命名为位置r)可以在所需子图片中。
[0439]
a.在一个示例中,所需子图片是覆盖当前块的子图片。
[0440]
b.在一个示例中,如果具有坐标(x,y)的位置r在所需子图片之外,则将参考样点视为不可用。
[0441]
i.在一个示例中,如果x》xbr,则位置r在所需子图片之外。
[0442]
ii.在一个示例中,如果y》ybr,则位置r在所需子图片之外。
[0443]
iii.在一个示例中,如果x<xtl,则位置r在所需子图片之外。
[0444]
iv.在一个示例中,如果y<ytl,则位置r在所需子图片之外。
[0445]
c.在一个示例中,位置r被裁剪为在所需子图片中。
[0446]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0447]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0448]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0449]
iv.在一个示例中,y被裁剪为y=max(y,ytl)。
[0450]
d.在一个示例中,位置r是否必须在所需子图片中(例如,如4.a和/或4.b所要求的进行)可以取决于在vps/dps/sps/pps/aps/条带头/片组头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0451]
e.在一个示例中,所获取的亮度样点被用于导出lmcs中的(一个或多个)色度分量的缩放因子。
[0452]
4.假设所需子图片的左顶角坐标是(xtl,ytl),并且所需子图片的右底坐标是(xbr,ybr),则图片边界检查bt/tt/qt划分、bt/tt/qt深度导出、和/或cu划分标志信令通知的位置(命名为位置n)必须在所需子图片中。
[0453]
a.在一个示例中,所需子图片是覆盖当前块的子图片。
[0454]
b.在一个示例中,如果具有坐标(x,y)的位置n在所需子图片之外,则将参考样点视为不可用。
[0455]
i.在一个示例中,如果x》xbr,则位置n在所需子图片之外。
[0456]
ii.在一个示例中,如果y》ybr,则位置n在所需子图片之外。
[0457]
iii.在一个示例中,如果x<xtl,则位置n在所需子图片之外。
[0458]
iv.在一个示例中,如果y《ytl,则位置n在所需子图片之外。
[0459]
c.在一个示例中,位置n被裁剪为在所需子图片中。
[0460]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0461]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0462]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0463]
d.在一个示例中,y被裁剪为y=max(y,ytl)。在一个示例中,位置n是否必须在所需子图片中(例如,按照5.a和/或5.b所要求的进行)可以取决于在vps/dps/sps/pps/aps/条带头/片组头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0464]
5.基于历史的运动矢量预测(hmvp)表可以在解码一个图片中的新子图片之前被重置。
[0465]
a.在一个示例中,可以重置用于ibc编解码的hmvp表
[0466]
b.在一个示例中,可以重置用于帧间编解码的hmvp表
[0467]
c.在一个示例中,可以重置用于帧内编解码的hmvp表
[0468]
6.可以以n个样点(例如,n=8、32等)为单位定义子图片语法元素。
[0469]
a.在一个示例中,子图片标识符网格的每个元素的宽度以n个样点为单位。
[0470]
b.在一个示例中,子图片标识符网格的每个元素的高度以n个样点为单位。
[0471]
c.在一个示例中,n设置为ctu的宽度和/或高度。
[0472]
7.图片宽度和图片高度的语法元素可以被限制为不小于k(k》=8)。
[0473]
a.在一个示例中,可能需要将图片宽度限制为不小于8。
[0474]
b.在一个示例中,可能需要将图片高度限制为不小于8。
[0475]
8.一致性比特流应该满足:不允许为一个视频单元(例如,序列)启用子图片编解码和自适应分辨率转换(arc)/动态分辨率转换(drc)/参考图片重采样(rpr)。
[0476]
a.在一个示例中,启用子图片编解码的信令通知可以在不允许arc/drc/rpr的条件下进行。
[0477]
i.在一个示例中,当启用子图片时,诸如subpics_present_flag等于1,其中此sps是活跃的所有图片的pic_width_in_luma_samples等于max_width_in_luma_samples。
[0478]
b.可替代地,可以为一个视频单元(例如,序列)启用子图片编解码和arc/drc/rpr两者。
[0479]
i.在一个示例中,一致性比特流应该满足:由于arc/drc/rpr导致的下采样的子图片仍应该为宽度为k个ctu且高度为m个ctu的形式,其中k和m均为整数。
[0480]
ii.在一个示例中,一致性比特流应该满足:对于未位于图片边界(例如,右边界和/或底部边界)的子图片,由于arc/drc/rpr导致的下采样的子图片仍应该为宽度为k个ctu且高度为m个ctu的形式,其中k和m均为整数。
[0481]
iii.在一个示例中,可以基于图片分辨率来自适应地改变ctu尺寸。
[0482]
1)在一个示例中,可以在sps中信令通知最大ctu尺寸。对于分辨率较低的每个图片,可以基于降低的分辨率相应地改变ctu尺寸。
[0483]
2)在一个示例中,可以在sps和pps和/或子图片级中信令通知ctu尺寸。
[0484]
9.语法元素subpic_grid_col_width_minus1和subpic_grid_row_height_minus1可能受到约束。
[0485]
a.在一个示例中,subpic_grid_col_width_minus1必须不大于(或必须小于)t1。
[0486]
b.在一个示例中,subpic_grid_row_height_minus1必须不大于(或必须小于)t2。
[0487]
c.在一个示例中,在一致性比特流中,subpic_grid_col_width_minus1和/或subpic_grid_row_height_minus1必须遵循诸如项目符号3.a或3.b的约束。
[0488]
d.在一个示例中,3.a中的t1和/或3.b中的t2可以取决于视频编解码标准的配置文件/级别/层级(tier)。
[0489]
e.在一个示例中,3.a中的t1可以取决于图片宽度。
[0490]
i.例如,t1等于pic_width_max_in_luma_samples/4或pic_width_max_in_luma_samples/4 off。off可以是1、2,-1,-2等。
[0491]
f.在一个示例中,3.b中的t2可以取决于图片宽度。
[0492]
i.例如,t2等于pic_height_max_in_luma_samples/4或pic_height_max_in_luma_samples/4-1 off。off可以是1、2、-1、-2等。
[0493]
10.约束的是,两个子图片之间的边界必须是两个ctu之间的边界。
[0494]
a.换言之,ctu不能被多于一个子图片覆盖。
[0495]
b.在一个示例中,subpic_grid_col_width_minus1的单位可以是ctu宽度(诸如32、64、128),而不是vvc中的4。子图片网格宽度应该为(subpic_grid_col_width_minus1 1)*ctu宽度。
[0496]
c.在一个示例中,subpic_grid_col_height_minus1的单位可以是ctu高度(诸如32、64、128),而不是vvc中的4。子图片网格高度应该为(subpic_grid_col_height_minus1 1)*ctu高度。
[0497]
d.在一个示例中,在一致性比特流中,如果应用子图片方法,则必须满足约束。
[0498]
11.约束的是,子图片的形状必须为矩形。
[0499]
a.在一个示例中,在一致性比特流中,如果应用子图片方法,则必须满足约束。
[0500]
b.子图片可以仅包含矩形条带。例如,在一致性比特流中,如果应用子图片方法,则必须满足约束。
[0501]
12.约束的是,两个子图片不能重叠。
[0502]
a.在一个示例中,在一致性比特流中,如果应用子图片方法,则必须满足约束。
[0503]
b.可替代地,两个子图片可以彼此重叠。
[0504]
13.约束的是,图片中的任何位置必须被一个且仅一个子图片覆盖。
[0505]
a.在一个示例中,在一致性比特流中,如果应用子图片方法,则必须满足约束。
[0506]
b.可替代地,一个样点可以不属于任何子图片。
[0507]
c.可替代地,一个样点可以属于多于一个子图片。
[0508]
14.可以约束的是,映射到以相同序列呈现的每个分辨率的sps中定义的子图片应该服从上述约束的位置和/或尺寸。
[0509]
a.在一个示例中,映射到以相同序列呈现的分辨率的sps中定义的子图片的宽度和高度,应该是n(诸如8、16、32)个亮度样点的整数倍。
[0510]
b.在一个示例中,可以为某一层定义子图片并且可以将子图片映射到其他层。
[0511]
i.例如,可以为序列中具有最高分辨率的层定义子图片。
[0512]
ii.例如,可以为序列中具有最低分辨率的层定义子图片。
[0513]
iii.可以在sps/vps/pps/条带头中信令通知为哪个层定义子图片。
[0514]
c.在一个示例中,当应用子图片和不同的分辨率两者时,所有分辨率(例如,宽度和/或高度)可以是给定的分辨率的整数倍。
[0515]
d.在一个示例中,在sps中定义的子图片的宽度和/或高度可以是ctu尺寸的整数倍(例如,m)。
[0516]
e.可替代地,序列中的子图片和不同的分辨率可以不被同时允许。
[0517]
15.子图片可能仅应用于某一(某些)层
[0518]
a.在一个示例中,在sps中定义的子图片可以仅应用于序列中具有最高分辨率的层。
[0519]
b.在一个示例中,在sps中定义的子图片可以仅应用于序列中具有最低时域id的层。
[0520]
c.可以通过sps/vps/pps中的一个或多个语法元素来指示子图片可以应用于哪一(哪些)层。
[0521]
d.可以通过sps/vps/pps中的一个或多个语法元素来指示子图片不能应用于哪一(哪些)层。
[0522]
16.在一个示例中,可以在不使用subpic_grid_idx的情况下信令通知子图片的位置和/或维度。
[0523]
a.在一个示例中,可以信令通知子图片的左顶位置。
[0524]
b.在一个示例中,可以信令通知子图片的右底位置。
[0525]
c.在一个示例中,可以信令通知子图片的宽度。
[0526]
d.在一个示例中,可以信令通知子图片的高度。
[0527]
17.对于时域滤波器,当执行样点的时域滤波时,仅可以使用当前样点所属的相同子图片内的样点。所需样点可能在当前样点所属的相同图片中,也可能在其他图片中。
[0528]
18.在一个示例中,是否应用和/或如何应用分割方法(诸如qt、水平bt、垂直bt、水平tt、垂直tt或不划分等)可以取决于当前块(或分割)是否跨越子图片的一个或多个边界。
[0529]
a.在一个示例中,当图片边界被子图片边界代替时,也可以应用用于在vvc中进行分割的图片边界处理方法。
[0530]
b.在一个示例中,是否解析表示分割方法(诸如qt、水平bt、垂直bt、水平tt、垂直tt或不划分等)的语法元素(例如,标志)可以取决于当前块(或分割)是否跨越子图片的一个或多个边界。
[0531]
19.不是将一个图片划分为多个子图片,每个子图片独立编解码,而是提出将图片划分为至少两个子区域集合,第一集合包括多个子图片,并且第二集合包括所有剩余样点。
[0532]
a.在一个示例中,第二集合中的样点不在任何子图片中。
[0533]
b.可替代地,此外,可以基于第一集合的信息来对第二集合进行编解码/解码。
[0534]
c.在一个示例中,可以利用默认值来标记样点/mxk子区域是否属于第二集合。
[0535]
i.在一个示例中,可以将默认值设置为等于(max_subpics_minus1 k),其中k是大
于1的整数。
[0536]
ii.可以将默认值分配给subpic_grid_idx[i][j],以指示网格属于第二集合。
[0537]
20.提出的是,语法元素subpic_grid_idx[i][j]不能大于max_subpics_minus1。
[0538]
a.例如,约束的是,在一致性比特流中,subpic_grid_idx[i][j]不能大于max_subpics_minus1。
[0539]
b.例如,用于对subpic_grid_idx[i][j]进行编解码的码字不能大于max_subpics_minus1。
[0540]
21.提出的是,从0到max_subpics_minus1的任何整数必须等于至少一个subpic_grid_idx[i][j]。
[0541]
22.可以在解码一个图片中的新的子图片之前重置ibc虚拟缓冲器。
[0542]
a.在一个示例中,ibc虚拟缓冲器中的所有样点可以被重置为-1。
[0543]
23.可以在解码一个图片中的新的子图片之前重置调色板条目列表。
[0544]
a.在一个示例中,可以在解码一个图片中的新的子图片之前将predictorpalettesize设置为等于0。
[0545]
24.是否信令通知条带的信息(例如,条带的数目和/或条带的范围)可以取决于片的数目和/或砖的数目。
[0546]
a.在一个示例中,如果图片中的砖的数目为1,则不信令通知num_slices_in_pic_minus1并将其推断为0。
[0547]
b.在一个示例中,如果图片中的砖的数目为1,则可以不信令通知条带的信息(例如,条带的数目和/或条带的范围)。
[0548]
c.在一个示例中,如果图片中的砖的数目为1,则条带的数目可以推断为1。并且,条带覆盖整个图片。在一个示例中,如果图片中的砖的数目为1,则不信令通知single_brick_per_slice_flag并将其推断为1。
[0549]
i.可替代地,如果图片中的砖的数目为1,则single_brick_per_slice_flag必须为1。
[0550]
d.示例性语法设计如下:
[0551]
[0552][0553]
25.是否信令通知slice_address可以与是否信令通知条带为矩形(例如,rect_slice_flag是等于0还是1)分离。
[0554]
a.示例性语法设计如下:
[0555]
if([[rect_slice_flag||]]numbricksinpic》1)slice_addressu(v)
[0556]
26.是否信令通知slice_address可以取决于当条带被信令通知为矩形时条带的数目。
[0557][0558]
27.是否信令通知num_bricks_in_slice_minus1可以取决于slice_address和/或图片中的砖的数目。
[0559]
a.示例性语法设计如下:
[0560][0561]
28.是否信令通知loop_filter_across_bricks_enabled_flag可以取决于片的数目和/或砖的数目。
[0562]
a.在一个示例中,如果砖的数目小于2,则不信令通知loop_filter_across_
bricks_enabled_flag。
[0563]
b.示例性语法设计如下:
[0564][0565]
29.比特流一致性要求图片的所有条带必须覆盖整个图片。
[0566]
a.当信令通知条带为矩形(例如rect_slice_flag等于1)时,必须满足该要求。
[0567]
30.比特流一致性要求子图片的所有条带必须覆盖整个子图片。
[0568]
a.当信令通知条带为矩形(例如rect_slice_flag等于1)时,必须满足该要求。
[0569]
31.比特流一致性要求条带不能与多于一个子图片重叠。
[0570]
32.比特流一致性要求片不能与多于一个子图片重叠。
[0571]
33.比特流一致性要求砖不能与多于一个子图片重叠。
[0572]
在下面的讨论中,维度为cw
×
ch的基本单元块(bub)是矩形区域。例如,bub可以是编解码树块(ctb)。
[0573]
34.在一个示例中,可以信令通知子图片的数目(表示为n)。
[0574]
a.如果使用子图片(例如,subpics_present_flag等于1),则一致性比特流可以要求在图片中存在至少两个子图片。
[0575]
b.可替代地,可以信令通知n减去d(即n-d),其中d是整数,诸如0、1或2。
[0576]
c.例如,可以使用固定长度编解码(例如u(x))来编解码n-d。
[0577]
i.在一个示例中,x可以是诸如8的固定数。
[0578]
ii.在一个示例中,可以在信令通知n-d之前信令通知x或x-dx,其中dx是诸如0、1或2的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0579]
iii.在一个示例中,x可以即时导出。
[0580]
1)例如,x可以导出为图片中bub的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
[0581]
2)m可以导出为m=ceiling(w/cw)
×
ceiling(h/ch),其中w和h表示图片的宽度和高度,cw和ch表示bub的宽度和高度。
[0582]
d.例如,可以使用一元代码或截短一元代码来对n-d进行编解码。
[0583]
e.在一个示例中,允许的n-d的最大值可以是固定数。
[0584]
i.可替代地,允许的n-d的最大值可以导出为图片中bub的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
[0585]
35.在一个示例中,可以由一个或多个其所选位置(例如,左顶/右顶/左底/右底位置)和/或其宽度和/或其高度的指示来信令通知子图片。
[0586]
a.在一个示例中,可以以维度为cw
×
ch的基本单元块(bub)的粒度来信令通知子图片的左顶位置。
[0587]
i.例如,可以信令通知根据子图片的左顶bub的bub的列索引(表示为col)。
[0588]
1)例如,可以信令通知col-d,其中d是整数,诸如0、1或2。
[0589]
a)可替代地,d可以等于先前编解码的子图片的col加d1,其中d1是整数,诸如-1、0或1。
[0590]
b)可以信令通知col-d的符号。
[0591]
ii.例如,可以信令通知根据子图片的左顶bub的bub的行索引(表示为row)。
[0592]
1)例如,可以信令通知row-d,其中d是整数,诸如0、1或2。
[0593]
a)可替代地,d可以等于先前编解码的子图片的row加d1,其中d1是整数,诸如-1、0或1。
[0594]
b)可以信令通知row-d的符号。
[0595]
iii.上面提到的行/列索引(表示为row)可以以编解码树块(ctb)单元表示,例如,相对于图片左顶位置的x或y坐标可以除以ctb尺寸并信令通知。
[0596]
iv.在一个示例中,是否信令通知子图片的位置可以取决于子图片索引。
[0597]
1)在一个示例中,对于图片内的第一子图片,可以不信令通知左顶位置。
[0598]
a)可替代地,此外,左顶位置可以推断为例如(0,0)。
[0599]
2)在一个示例中,对于图片内的最后子图片,可以不信令通知左顶位置。
[0600]
a)可以取决于先前信令通知的子图片的信息来推断左顶位置。
[0601]
b.在一个示例中,可以使用截短一元/截短二进制/一元/固定长度/第k个eg编解码(例如,k=0、1、2、3)来信令通知子图片的宽度/高度/所选位置的指示。
[0602]
c.在一个示例中,可以以维度为cw
×
ch的bub的粒度来信令通知子图片的宽度。
[0603]
i.例如,可以信令通知子图片中的bub的列数(表示为w)。
[0604]
ii.例如,可以信令通知w-d,其中d是整数,诸如0、1或2。
[0605]
1)可替代地,d可以等于先前编解码的子图片的w加d1,其中d1是整数,诸如-1、0或1。
[0606]
2)可以信令通知w-d的符号。
[0607]
d.在一个示例中,可以以维度为cw
×
ch的bub的粒度来信令通知子图片的高度。
[0608]
i.例如,可以信令通知子图片中的bub的行数(表示为h)。
[0609]
ii.例如,可以信令通知h-d,其中d是整数,诸如0、1或2。
[0610]
1)可替代地,d可以等于先前编解码的子图片的h加d1,其中d1是整数,诸如-1、0或1。
[0611]
2)可以信令通知h-d的符号。
[0612]
e.在一个示例中,可以使用固定长度编解码(例如u(x))来编解码col-d。
[0613]
i.在一个示例中,x可以是诸如8的固定数。
[0614]
ii.在一个示例中,可以在信令通知col-d之前信令通知x或x-dx,其中dx是诸如0、1或2的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0615]
iii.在一个示例中,x可以即时导出。
[0616]
1)例如,x可以导出为图片中bub列的总数(表示为m)的函数。例如,x=ceil(log2
(m d0)) d1,其中d0和d1是两个整数,诸如-2,-1、0、1、2等。
[0617]
2)m可以导出为m=ceiling(w/cw),其中w表示图片的宽度,cw表示bub的宽度。
[0618]
f.在一个示例中,可以使用固定长度编解码(例如u(x))来编解码row-d。
[0619]
i.在一个示例中,x可以是诸如8的固定数。
[0620]
ii.在一个示例中,可以在信令通知row-d之前信令通知x或x-dx,其中dx是诸如0、1或2的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0621]
iii.在一个示例中,x可以即时导出。
[0622]
1)例如,x可以导出为图片中bub行的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2,-1、0、1、2等。
[0623]
2)m可以导出为m=ceiling(h/ch),其中h表示图片的高度,并且ch表示bub的高度。
[0624]
g.在一个示例中,可以使用固定长度编解码(例如u(x))来编解码w-d。
[0625]
i.在一个示例中,x可以是诸如8的固定数。
[0626]
ii.在一个示例中,可以在信令通知w-d之前信令通知x或x-dx,其中dx是诸如0、1或2的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0627]
iii.在一个示例中,x可以即时导出。
[0628]
1)例如,x可以导出为图片中bub列的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
[0629]
2)m可以导出为m=ceiling(w/cw),其中w表示图片的宽度,cw表示bub的宽度。
[0630]
h.在一个示例中,可以使用固定长度编解码(例如u(x))来编解码h-d。
[0631]
i.在一个示例中,x可以是诸如8的固定数。
[0632]
ii.在一个示例中,可以在信令通知h-d之前信令通知x或x-dx,其中dx是诸如0、1或2的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0633]
iii.在一个示例中,x可以即时导出。
[0634]
1)例如,x可以导出为图片中bub行的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
[0635]
2)m可以导出为m=ceiling(h/ch),其中h表示图片的高度,ch表示bub的高度。
[0636]
i.可以为所有子图片信令通知col-d和/或row-d。
[0637]
i.可替代地,可以不为所有子图片信令通知col-d和/或row-d。
[0638]
1)如果子图片的数目小于2(等于1),则可以不信令通知col-d和/或row-d。
[0639]
2)例如,可以不为第一子图片信令通知col-d和/或row-d(例如,子图片索引(或子图片id)等于0)。
[0640]
a)当不信令通知它们时,它们可以推断为0。
[0641]
3)例如,可以不为最后子图片信令通知col-d和/或row-d(例如,子图片索引(或子图片id)等于numsubpics-1)。
[0642]
a)当不信令通知它们时,可以取决于已经信令通知的子图片的位置和维度来推断它们。
[0643]
j.可以为所有子图片信令通知w-d和/或h-d。
[0644]
i.可替代地,可以不为所有子图片信令通知w-d和/或h-d。
[0645]
1)如果子图片的数目小于2(等于1),则可以不信令通知w-d和/或h-d。
[0646]
2)例如,可以不为最后子图片信令通知w-d和/或h-d(例如,子图片索引(或子图片id)等于numsubpics-1)。
[0647]
a)当不信令通知它们时,可以取决于已经信令通知的子图片的位置和维度来推断它们。
[0648]
k.在上述项目符号中,bub可以是编解码树块(ctb)。
[0649]
36.在一个示例中,应当在已经信令通知ctb尺寸的信息(例如log2_ctu_size_minus5)之后信令通知子图片的信息。
[0650]
37.可以不为每个子图片信令通知subpic_treated_as_pic_flag[i]。代替地,信令通知一个subpic_treated_as_pic_flag来控制是否将子图片视为所有子图片的图片。
[0651]
38.可以不为每个子图片信令通知loop_filter_across_subpic_enabled_flag[i]。代替地,信令通知一个loop_filter_across_subpic_enabled_flag来控制是否可以在所有子图片的子图片上应用环路滤波器。
[0652]
39.可以有条件地信令通知subpic_treated_as_pic_flag[i](subpic_aged_as_pic_flag)和/或loop_filter_across_subpic_enabled_flag[i](loop_filter_across_subpic_enabled_flag)。
[0653]
a.在一个示例中,如果子图片的数目小于2(等于1),则可以不信令通知subpic_treated_as_pic_flag[i]和/或loop_filter_across_subpic_enabled_flag[i]。
[0654]
40.当使用子图片时,可以应用rpr。
[0655]
a.在一个示例中,当使用子图片时,rpr中的缩放比率可以被约束为有限的集合,诸如{1:1,1:2和/或2:1}或{1:1,1:2和/或2:1,1:4和/或4:1},{1:1,1:2和/或2:1,1:4和/或4:1,1:8和/或8:1}。
[0656]
b.在一个示例中,如果图片a和图片b的分辨率不同,则图片a的ctb尺寸和图片b的ctb尺寸可以不同。
[0657]
c.在一个示例中,假设维度为saw
×
sah的子图片sa在图片a中,并且维度为sbw
×
sbh的子图片sb在图片b中,sa对应于sb,并且图片a和图片b之间的缩放比率是沿水平和垂直方向的rw和rh,则
[0658]
i.saw/sbw或sbw/saw应当等于rw。
[0659]
ii.sah/sbh或sbh/sah应当等于rh。
[0660]
41.当使用子图片(例如sub_pics_present_flag为真)时,可以在条带头中信令通知子图片索引(或子图片id),并且条带地址作为子图片中的地址而不是整个图片的地址被中断。
[0661]
5.实施例
[0662]
在以下实施例中,新添加的文本以粗体斜体显示,并且删除的文本以“[[]]”标记。
[0663]
5.1实施例1:对仿射构造的merge候选的子图片约束
[0664]
8.5.5.6构造的仿射控制点运动矢量merge候选的导出过程
[0665]
此过程的输入是:
[0666]-亮度位置(xcb,ycb),指定与当前图片的左顶亮度样点相对的当前亮度编解码块的左顶样点,
[0667]-两个变量cbwidth和cbheight,指定当前亮度编解码块的宽度和高度,
[0668]-可用性标志availablea0、availablea1、availablea2、availableb0、availableb1、availableb2、availableb3,
[0669]-样点位置(xnba0,ynba0)、(xnba1,ynba1)、(xnba2,ynba2)、(xnbb0,ynbb0)、(xnbb1,ynbb1)、(xnbb2,ynbb2)和(xnbb3,ynbb3)。
[0670]
此过程的输出是:
[0671]-构造的仿射控制点运动矢量merge候选的可用性标志availableflagconstk,其中k=1..6,
[0672]-参考索引refidxlxconstk,其中k=1..6,x为0或1,
[0673]-预测列表利用标志predflaglxconstk,其中k=1..6,x为0或1,
[0674]-仿射运动模型索引motionmodelidcconstk,其中k=1..6,
[0675]-双向预测权重索引bcwidxconstk,其中k=1..6,
[0676]-构造的仿射控制点运动矢量cpmvlxconstk[cpidx],其中cpidx=0..2,k=1..6,x为0或1。
[0677]

[0678]
第四(并置右底)控制点运动矢量cpmvlxcorner[3],参考索引refidxlxcorner[3],预测列表利用标志predflaglxcorner[3]和可用性标志availableflagcorner[3],其中x为0和1,导出如下:
[0679]-时域merge候选的参考索引refidxlxcorner[3]设置为等于0,其中x为0或1。
[0680]-变量mvlxcol和availableflaglxcol,其中x为0或1,导出如下:
[0681]-如果slice_temporal_mvp_enabled_flag等于0,则mvlxcol的两个分量均设置为等于0,且availableflaglxcol设置为等于0。
[0682]-否则(slice_temporal_mvp_enabled_flag等于1),应用以下:
[0683]
xcolbr=xcb cbwidth
ꢀꢀꢀꢀꢀꢀ
(8-601)
[0684]
ycolbr=ycb cbheight
ꢀꢀꢀꢀꢀꢀ
(8-602)
[0685]
rightboundarypos=subpic_treated_as_pic_flag[subpicidx]?subpicrightboundarypos:pic_width_inlumasamples-1botboundarypos=subpic_treatedaspicflag[subpicidx]?subpicbotboundarypos:pic_height_in_luma_samples
–1[0686]-如果ycb》》ctblog2sizey等于ycolbr》》ctblog2sizey,ycolbr小于或等于botboundarypos,xcolbr小于或等于rightboundarypos,则应用以下:
[0687]-变量colcb指定亮度编解码块,该亮度编解码块覆盖由colpic指定的并置图片内的由((xcolbr》》3)《《3,(ycolbr》》3)《《3)给出的修改位置。
[0688]-亮度位置(xcolcb,ycolcb)设置为等于,与由colpic指定的并置图片的左顶亮度样点相对的由colcb指定的并置亮度编解码块的左顶样点。
[0689]-调用条款8.5.2.12中指定的并置运动矢量的导出过程,其中currcb、colcb、(xcolcb,ycolcb)、refidxlxcorner[3]和sbflag设置为等于0作为输入,并且输出分配给mvlxcol和availableflaglxcol。
[0690]-否则,mvlxcol的两个分量均设置为等于0,且availableflaglxcol设置为等于0。
[0691]

[0692]
5.2实施例2:对仿射构造的merge候选的子图片约束
[0693]
8.5.5.6构造的仿射控制点运动矢量merge候选的导出过程
[0694]
此过程的输入是:
[0695]-亮度位置(xcb,ycb),指定与当前图片的左顶亮度样点相对的当前亮度编解码块的左顶样点,
[0696]-两个变量cbwidth和cbheight,指定当前亮度编解码块的宽度和高度,
[0697]-可用性标志availablea0、availablea1、availablea2、availableb0、availableb1、availableb2、availableb3,
[0698]-样点位置(xnba0,ynba0)、(xnba1,ynba1)、(xnba2,ynba2)、(xnbb0,ynbb0)、(xnbb1,ynbb1)、(xnbb2,ynbb2)和(xnbb3,ynbb3)。
[0699]
此过程的输出是:
[0700]-构造的仿射控制点运动矢量merge候选的可用性标志availableflagconstk,其中k=1..6,
[0701]-参考索引refidxlxconstk,其中k=1..6,x为0或1,
[0702]-预测列表利用标志predflaglxconstk,其中k=1..6,x为0或1,
[0703]-仿射运动模型索引motionmodelidcconstk,其中k=1..6,
[0704]-双向预测权重索引bcwidxconstk,其中k=1..6,
[0705]-构造的仿射控制点运动矢量cpmvlxconstk[cpidx],其中cpidx=0..2,k=1..6,x为0或1。
[0706]

[0707]
第四(并置右底)控制点运动矢量cpmvlxcorner[3],参考索引refidxlxcorner[3],预测列表利用标志predflaglxcorner[3]和可用性标志availableflagcorner[3],其中x为0和1,导出如下:
[0708]-时域merge候选的参考索引refidxlxcorner[3],其中x为0或1,设置为等于0。
[0709]-变量mvlxcol和availableflaglxcol,其中x为0或1,导出如下:
[0710]-如果slice_temporal_mvp_enabled_flag等于0,则mvlxcol的两个分量均设置为等于0,且availableflaglxcol设置为等于0。
[0711]-否则(slice_temporal_mvp_enabled_flag等于1),应用以下:
[0712]
xcolbr=xcb cbwidth
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-601)
[0713]
ycolbr=ycb cbheight
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8-602)
[0714]
rightboundarypos=subpic_treated_aspicflag[subpicidx]?
[0715]
subpicrightboundarypos:picwidthinlumasamples-1
[0716]
botboundarypos=subpictreated_as_pic_flag[subpicidx]?
[0717]
subpicbotboundarypos:pic_height_in luma samples
–1[0718]
xcolbr=min(rightboundarypos,xcolbr)
[0719]
ycolbr=min(botboundarypos,ycolbr)
[0720]-如果ycb》》ctblog2sizey等于ycolbr》》ctblog2sizey,[[ycolbr小于pic_height_in_luma_samples,xcolbr小于pic_width_in_luma_samples,则应用以下]]:
[0721]-变量colcb指定亮度编解码块,该亮度编解码块覆盖由colpic指定的并置图片内
的由((xcolbr》》3)《《3,(ycolbr》》3)《《3)给出的修改位置。
[0722]-亮度位置(xcolcb,ycolcb)设置为等于,与由colpic指定的并置图片的左顶亮度样点相对的由colcb指定的并置亮度编解码块的左顶样点。
[0723]-调用条款8.5.2.12中指定的并置运动矢量的导出过程,其中currcb、colcb、(xcolcb,ycolcb)、refidxlxcorner[3]和sbflag设置为等于0作为输入,并且输出分配给mvlxcol和availableflaglxcol。
[0724]-否则,mvlxcol的两个分量均设置为等于0,且availableflaglxcol设置为等于0。
[0725]

[0726]
5.3实施例3:在子图片约束下获取整数样点
[0727]
8.5.6.3.3亮度整数样点获取过程
[0728]
此过程的输入是:
[0729]

以全样点为单位的亮度位置(xint
l
,yint
l
),
[0730]-亮度参考样点阵列refpiclx
l

[0731]
此过程的输出是预测的亮度样点值predsamplelx
l
[0732]
变量移位设置为等于max(2,14-bitdepthy)。
[0733]
变量picw设置为等于pic_width_in_luma_samples,变量pich设置为等于pic_height_in_luma_samples。
[0734]
以全样点为单位的亮度位置(xint,yint)导出如下:
[0735]-如果subpic_treated_as_pic_flag[subpicidx]等于1,应用以下:
[0736]
xint=clip3(subpicleftboundarypos,subpicrightboundarypos,xint)
[0737]
yint=clip3(subpictopboundarypos,subpicbotboundarypos,yint)
[0738]-否则:
[0739]
xint=clip3(0,picw-1,sps_ref_wraparound_enabled_flag? (8-782)
[0740]
cliph((sps_ref_wraparound_offset_minus1 1)*mincbsizey,picw,xint
l
):xint
l
)
[0741]
yint=clip3(0,pich-1,yint
l
)
ꢀꢀꢀꢀ
(8-783)
[0742]
预测的亮度样点值predsamplelx
l
导出如下:
[0743]
predsamplelx
l
=refpiclx
l
[xint][yint]《《shift3
ꢀꢀꢀ
(8-784)
[0744]
5.4实施例4:导出lmcs的色度残差缩放中的变量invavgluma
[0745]
8.7.5.3使用亮度相关色度残差缩放过程对色度样点进行图片重构
[0746]
此过程的输入是:
[0747]-与当前图片的左顶色度样点相对的当前色度变换块的左顶色度样点的色度位置(xcurr,ycurr),
[0748]-变量ncurrsw,指定色度变换块的宽度,
[0749]-变量ncurrsh,指定色度变换块的高度,
[0750]-变量tucbfchroma,指定当前色度变换块的编解码块标志,
[0751]-(ncurrsw)x(ncurrsh)阵列predsamples,指定当前块的色度预测样点,
[0752]-(ncurrsw)x(ncurrsh)阵列ressamples,指定当前块的色度残差样点,
[0753]
此过程的输出是重构的色度图片样点阵列recsamples。
[0754]
变量sizey设置为等于min(ctbsizey,64)。
[0755]
对于i=0..ncurrsw-1,j=0..ncurrsh-1,重构的色度图片样点recsamples导出如下:
[0756]
‑…
[0757]-否则,应用以下:
[0758]
‑…
[0759]-变量currpic指定当前图片中重构的亮度样点的阵列。
[0760]-对于变量varscale的导出,应用以下有序步骤:
[0761]
1.变量invavgluma导出如下:
[0762]-阵列recluma[i](其中i=0..(2*sizey-1))和变量cnt导出如下:
[0763]-变量cnt设置为等于0。
[0764]-变量rightboundarypos和botboundarypos导出如下:
[0765]
rightboundarypos=subpic_treated_as_pic_flag[subpicidx]?
[0766]
subpicrightboundarypos:pic_width_in_luma_samples-1
[0767]
botboundarypos=subpic_treated_as_pic_flag[subpicidx]?
[0768]
subpicbotboundarypos:pic_height_in_luma_samples
–1[0769]-当availl等于真(true)时,阵列recluma[i](其中i=0..sizey-1)设置为等于currpic[xcucb-1][min(ycucb i,[[pic_height_in_luma_samples

1]]botboundarypos)](其中i=0..sizey-1),cnt设置为等于sizey。
[0770]-当availt等于真时,阵列recluma[cnt i](其中i=0..sizey

1)设置为等于currpic[min(xcucb i,[[pic_width_in_luma_samples-1]]rightboundarypos)][ycucb-1](其中i=0..sizey-1),且cnt设置为等于(cnt sizey)。
[0771]-变量invavgluma导出如下:
[0772]-如果cnt大于0,则应用以下:
[0773][0774]-否则(cnt等于0),应用以下:
[0775]
invavgluma=1《《(bitdepthy–
1)
ꢀꢀꢀ
(8-1014)
[0776]
5.5实施例5:以除4个样点之外的n个样点(诸如,n=8或32)为单位定义子图片元素的示例
[0777]
7.4.3.3序列参数集rbsp语义
[0778]
subpic_grid_col_width_minus1加1指定以4-n个样点为单位的子图片标识符网格的每个元素的宽度。语法元素的长度为ceil(log2(pic_width_max_in_luma_samples/4-n))比特。
[0779]
变量numsubpicgridcols导出如下:
[0780]
numsubpicgridcols=
[0781]
(pic_width_max_in_luma_samples subpic_grid_col_width_minus1*[[4
[0782]
3]]n n-1)/
[0783]
(subpic_grid_col_width_minus1*[[4 3]]n n-1)
ꢀꢀ
(7-5)
[0784]
subpic_grid_row_height_minus1加1指定以4个样点为单位的子图片标识符网格中每个元素的高度。语法元素的长度为ceil(log2(pic_height_max_in_luma_samples/4-n))比特。
[0785]
变量numsubpicgridrows导出如下:
[0786]
numsubpicgridrows=
[0787]
(pic_height_max_in_luma_samples subpic_grid_row_height_minus1*4
[0788]
n n-1)/
[0789]
(subpic_grid_row_height_minus1*[[4 3]n n-1)
[0790]
7.4.7.1一般条带头语义
[0791]
变量subpicidx、subpicleftboundarypos、subpictopboundarypos、subpicrightboundarypos和subpicbotboundarypos导出如下:
[0792][0793]
5.6实施例6:将图片宽度和图片高度限制为等于或大于8
[0794]
7.4.3.3序列参数集rbsp语义
[0795]
pic_width_max_in_luma_samples指定参考sps的每个解码图片的最大宽度(以亮度样点为单位)。pic_width_max_in_luma_samples不应等于0,并且应为[[mincbsizey]]max(8,mincbsizey)的整数倍。
[0796]
pic_height_max_in_luma_samples指定参考sps的每个解码图片的最大高度(以亮度样点为单位)。pic_height_max_in_luma_samples不应等于0,并且应为
[[mincbsizey]]max(8,mincbsizey)的整数倍。
[0797]
5.7实施例7:用于bt/tt/qt划分、bt/tt/qt深度导出和/或cu划分标志的信令通知的子图片边界检查
[0798]
6.4.2允许的二进制划分过程
[0799]
变量allowbtsplit导出如下:
[0800]
‑…
[0801]-否则,如果以下所有条件均为真,则allowbtsplit设置为等于假(false)
[0802]-btsplit等于split_bt_ver
[0803]-y0 cbheight大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[subpicidx]?subpicbotboundarypos 1:pic_height_in_luma_samples。
[0804]-否则,如果以下所有条件均为真,则allowbtsplit设置为等于假
[0805]-btsplit等于split_bt_ver
[0806]-cbheight大于maxtbsizey
[0807]-x0 cbwidth大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[subpicidx]?subpicbotboundarypos 1:pic_height_in_luma_samples。
[0808]-否则,如果以下所有条件均为真,则allowbtsplit设置为等于假
[0809]-btsplit等于split_bt_hor
[0810]-cbwidth大于maxtbsizey
[0811]-y0 cbheight大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[subpicidx]?subpicbotboundarypos 1:pic_height_in_luma_samples。
[0812]-否则,如果以下所有条件均为真,则allowbtsplit设置为等于假
[0813]-x0 cbwidth大于[[pic_width_in_luma_samples]]subpictreated_as_pic_flag[subpicidx]?subpicrightboundarypos 1:pic_width_in_luma_samples
[0814]-y0 cbheight大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[subpicidx]?subpicbotboundarypos 1:pic_height_in_luma_samples。
[0815]-cbwidth大于minqtsize
[0816]-否则,如果以下所有条件均为真,则allowbtsplit设置为等于假
[0817]-btsplit等于split_bt_hor
[0818]-x0 cbwidth大于[[pic_width_in_luma_samples]]subpic_treated_aspic_flag[subpicidx]?subpicrightboundarypos 1:pic_width_in_luma_samples
[0819]-y0 cbheight小于或等于y0 cbheight is less than or equal to[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[subpicidx]?subpicbotboundarypos 1:pic_height_in_luma_samples。
[0820]
6.4.2允许的三元划分过程
[0821]
变量allowttsplit导出如下:
[0822]-如果以下条件中的一个或多个为真,则allowttsplit设置为等于假:
[0823]-cbsize小于或等于2*minttsizey
[0824]-cbwidth大于min(maxtbsizey,maxttsize)
[0825]-cbheight大于min(maxtbsizey,maxttsize)
[0826]-mttdepth大于或等于maxmttdepth
[0827]-x0 cbwidth大于[[pic_width_in_luma_samples]]subpictreatedas_pic_flag[subpicidx]?subpicrightboundarypos 1:pic width in luma samples
[0828]-y0 cbheight大于[[pic_height_in_luma_samples]]subpic treated as_pic_flag[subpicidx]?subpicbotboundarypos 1:pic_height_in_luma_samples。
[0829]-treetype等于dual_tree_chroma,并且(cbwidth/subwidthc)*(cbheight/subheightc)小于或等于32。
[0830]-treetype等于dual_tree_chroma,并且modetype等于mode_type_intra。
[0831]-否则,allowttsplit设置为等于真。
[0832]
7.3.8.2编解码树单元语法
[0833][0834]
7.3.8.4编解码树语法
[0835]
[0836][0837]
5.8实施例8:定义子图片的示例
[0838]
[0839]
[0840][0841]
5.9实施例9:定义子图片的示例
[0842]
[0843][0844]
5.10实施例10:定义子图片的示例
[0845]
[0846][0847]
5.11实施例11:定义子图片的示例
[0848]
[0849][0850]
numsubpics=num_subpics_minus2 2。
[0851]
图3是视频处理装置300的框图。装置300可以用于实现本文描述的一种或多种方法。装置300可以实施在智能手机、平板计算机、计算机、物联网(iot)接收器等中。装置300可以包括一个或多个处理器302,一个或多个存储器304和视频处理硬件306。(一个或多个)处理器302可以被配置为实现在本文档中描述的一种或多种方法。(一个或多个)存储器304可以用于储存用于实现本文描述的方法和技术的数据和代码。视频处理硬件306可以用于在硬件电路中实现本文档中描述的一些技术。
[0852]
图4是用于处理视频的方法400的流程图。方法400包括对于视频的第一视频区域中的视频块,确定使用仿射模式对于视频块和当前视频块的比特流表示之间的转换确定时域运动矢量预测器的位置是否在第二视频区域内(402),以及基于确定来执行转换(404)。
[0853]
在一些实施例中,以下解决方案可以被实现为优选解决方案。
[0854]
以下解决方案可以与先前章节中列出的项目(例如,项目1)中描述的附加技术一起实现。
[0855]
1.一种视频处理的方法,包括:对于视频的第一视频区域中的视频块,确定使用仿射模式对于视频块和当前视频块的比特流表示之间的转换确定时域运动矢量预测器的位置是否在第二视频区域内;以及基于确定来执行转换。
[0856]
2.根据解决方案1的方法,其中,视频块被第一区域和第二区域覆盖。
[0857]
3.根据解决方案1-2中的任一项的方法,其中,如果时域运动矢量预测器的位置在第二视频区域之外,则时域运动矢量预测器被标记为不可用并且在转换中不被使用。
[0858]
以下解决方案可以与在先前章节中列出的项目(例如,项目2)中描述的附加技术一起实现。
[0859]
4.一种视频处理的方法,包括:对于视频的第一视频区域中的视频块,确定对于视频块和当前视频块的比特流表示之间的转换获取参考图片中的整数样点的位置是否在第二视频区域内,其中,在转换期间,参考图片不用于插值过程;以及基于确定来执行转换。
[0860]
5.根据解决方案4的方法,其中,视频块被第一区域和第二区域覆盖。
[0861]
6.根据解决方案4-5中任一项的方法,其中,如果样点的位置在第二视频区域之外,则样点被标记为不可用并且在转换中不被使用。
[0862]
以下解决方案可以与先前章节中列出的项目(例如,项目3)中描述的附加技术一起实现。
[0863]
7.一种视频处理的方法,包括:对于视频的第一视频区域中的视频块,确定对于视频块和当前视频块的比特流表示之间的转换获取重构亮度样点值的位置是否在第二视频区域内;以及基于确定来执行转换。
[0864]
8.根据解决方案7的方法,其中,亮度样品被第一区域和第二区域覆盖。
[0865]
9.根据解决方案7-8中的任一项的方法,其中,如果亮度样点的位置在第二视频区域之外,则亮度样点被标记为不可用并且在转换中不被使用。
[0866]
以下解决方案可以与先前章节中列出的项目(例如,项目4)中描述的附加技术一起实现。
[0867]
10.一种视频处理的方法,包括:对于视频的第一视频区域中的视频块,确定在视频块和当前视频块的比特流表示之间的转换期间执行的关于对于视频块的划分、深度导出或划分标志信令通知的检查的位置是否在第二视频区域内;以及基于确定来执行转换。
[0868]
11.根据解决方案10的方法,其中,位置被第一区域和第二区域覆盖。
[0869]
12.根据解决方案10-11中的任一项的方法,其中,如果位置在第二视频区域之外,则亮度样点被标记为不可用并且在转换中不被使用。
[0870]
以下解决方案可以与先前章节中列出的项目(例如,项目8)中描述的附加技术一起实现。
[0871]
13.一种视频处理的方法,包括:执行在包括一个或多个视频图片的视频和视频的
编解码表示之间的转换,该一个或多个视频图片包括一个或多个视频块;其中,编解码表示遵守编解码语法要求,转换在视频单元内不使用子图片编解码/解码和动态分辨率转换编码/解码工具或参考图片重采样工具。
[0872]
14.根据解决方案13的方法,其中,视频单元对应于一个或多个视频图片的序列。
[0873]
15.根据解决方案13-14中的任一项的方法,其中,动态分辨率转换编码/解码工具包括自适应分辨率转换编码/解码工具。
[0874]
16.根据解决方案13-14中的任一项的方法,其中,动态分辨率转换编码/解码工具包括动态分辨率转换编码/解码工具。
[0875]
17.根据解决方案13-16中的任一项的方法,其中,编解码表示指示视频单元遵守编解码语法要求。
[0876]
18.根据解决方案17的方法,其中,编解码表示指示视频单元使用子图片编解码。
[0877]
19.根据解决方案17的方法,其中,编解码表示指示视频单元使用动态分辨率转换编码/解码工具或参考图片重采样工具。
[0878]
以下解决方案可以与先前章节中列出的项目(例如,项目10)中描述的附加技术一起实现。
[0879]
20.根据解决方案1-19中的任一项的方法,其中,第二视频区域包括视频子图片,并且其中,第二视频区域的边界和另一视频区域的边界也是两个编解码树单元之间的边界。
[0880]
21.根据解决方案1-19中的任一项的方法,其中,第二视频区域包括视频子图片,并且其中,第二视频区域的边界和另一视频区域的边界也是两个编解码树单元之间的边界。
[0881]
以下解决方案可以与先前章节中列出的项目(例如,项目11)中描述的附加技术一起实现。
[0882]
22.根据解决方案1-21中的任一项的方法,其中,第一视频区域和第二视频区域具有矩形形状。
[0883]
以下解决方案可以与先前章节中列出的项目(例如,项目12)中描述的附加技术一起实现。
[0884]
23.根据解决方案1-22中的任一项的方法,其中,第一视频区域和第二视频区域是不重叠的。
[0885]
以下解决方案可以与先前章节中列出的项目(例如,项目13)中描述的附加技术一起实现。
[0886]
24.根据解决方案1-23中的任一项的方法,其中,视频图片被分为视频区域,使得视频图片中的像素被一个且仅一个视频区域覆盖。
[0887]
以下解决方案可以与先前章节中列出的项目(例如,项目15)中描述的附加技术一起实现。
[0888]
25.根据解决方案1-24中的任一项的方法,其中,由于视频图片在视频序列的具体层中,所以视频图片被划分为第一视频区域和第二视频区域。
[0889]
以下解决方案可以与先前章节中列出的项目(例如,项目10)中描述的附加技术一起实现。
[0890]
26.一种视频处理的方法,包括:执行在包括一个或多个视频图片的视频和视频的编解码表示之间的转换,一个或多个视频图片包括一个或多个视频块,其中,编解码表示遵守编解码语法要求,第一语法元素subpic_grid_idx[i][j]不大于第二语法元素max_subpics_minus1。
[0891]
27.根据解决方案26的方法,其中,表示第一语法元素的码字不大于表示第二语法元素的码字。
[0892]
28.根据解决方案1-27中的任一项的方法,其中,第一视频区域包括视频子图片。
[0893]
29.根据解决方案1-28中的任一项的方法,其中,第二视频区域包括视频子图片。
[0894]
30.根据解决方案1至29中的任一项的方法,其中,转换包括将视频编码为编解码表示。
[0895]
31.根据解决方案1至29中的任一项的方法,其中,转换包括对编解码表示进行解码以生成视频的像素值。
[0896]
32.一种视频解码装置,包括处理器,该处理器被配置为实现解决方案1至31中的一项或多项中所述的方法。
[0897]
33.一种视频编码装置,包括处理器,该处理器被配置为实现解决方案1至31中的一项或多项中所述的方法。
[0898]
34.一种其上储存有计算机代码的计算机程序产品,该代码在由处理器执行时使得处理器实现解决方案1至31中任何一项所述的方法。
[0899]
35.本文档中描述的一种方法、装置或系统。
[0900]
图8是示出其中可以实现本文中所公开的各种技术的示例视频处理系统800的框图。各种实现方式可以包括系统800的一些或所有组件。系统800可以包括用于接收视频内容的输入802。视频内容可以以原始或未压缩的格式(例如8或10比特多分量像素值)接收,或者可以以压缩或编码的格式接收。输入802可以表示网络接口、外围总线接口或储存接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)和无线接口(诸如wi-fi或蜂窝接口)。
[0901]
系统800可以包括编解码组件804,其可以实现本文档中描述的各种编解码或编码方法。编解码组件804可以将来自输入802的视频的平均比特率降低到编解码组件804的输出,以产生视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。如组件806所表示的,编解码组件804的输出可以被储存或经由所连接的通信来发送。在输入802处接收的视频的储存或传送的比特流(或编解码)表示可以由组件808使用,以生成像素值或可显示视频,该像素值或可显示视频被发送到显示接口810。从比特流表示中生成用户可见视频的过程有时称为视频解压缩。此外,虽然某些视频处理操作称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且由解码器执行与编解码结果相反的对应解码工具或操作。
[0902]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清多媒体接口(hdmi)或显示端口(displayport)等。储存接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其他能够执行数字数据处理和/或视频显示的设备。
[0903]
图9是图示可以利用本公开的技术的示例视频编解码系统100的框图。
[0904]
如图9所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成编码视频数据,该源设备110可以称为视频编码设备。目的地设备120可以对由源设备110生成的编码视频数据进行解码,该目的地设备120可以称为视频解码设备。
[0905]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0906]
视频源112可以包括诸如视频捕获设备的源,从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发送器。编码的视频数据可以通过网络130a经由i/o接口116直接发送到目的地设备120。编码视频数据也可以储存在储存介质/服务器130b上,以供目的地设备120访问。
[0907]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0908]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或储存介质/服务器130b获得编码视频数据。视频解码器124可以对编码视频数据进行解码。显示设备122可以将解码视频数据显示给用户。显示设备122可以与目的地设备120集成在一起,或者可以在被配置为与外部显示设备接口连接的目的地设备120的外部。
[0909]
视频编码器114和视频解码器124可以根据诸如高效视频编解码(hevc)标准、通用视频编解码(vvc)标准和其他当前和/或将来标准的视频压缩标准来操作。
[0910]
图10是图示视频编码器200的示例的框图,视频编码器200可以图9所示的系统100中的视频编码器114。
[0911]
视频编码器200可以被配置为执行本公开的任何或所有技术。在图10的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0912]
视频编码器200的功能组件可以包括分割单元201,预测单元202,其可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206,残差生成单元207,变换单元208,量化单元209,逆量化单元210,逆变换单元211,重构单元212,缓冲器213和熵编码单元214。
[0913]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,其中至少一个参考图片是当前视频块位于的图片。
[0914]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以高度集成,但是出于解释的目的,在图5的示例中分开表示。
[0915]
分割单元201可以将图片分割为一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0916]
模式选择单元203可以例如基于错误结果而选择帧内或帧间编解码模式之一,并将所得到的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,并且将所得到的帧内或帧间编解码块提供给重构单元212以重构编码块从而用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(ciip)模式的组合,其中,预测基于帧间
预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为该块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
[0917]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓冲器213的除与当前视频块相关联的图片之外的图片的解码样点来确定当前视频块的预测视频块。
[0918]
运动估计单元204和运动补偿单元205可以例如取决于当前视频块是i条带、p条带还是b条带来对当前视频块执行不同的操作。
[0919]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元204可以生成指示列表0或列表1中的参考图片的参考索引,该列表0或列表1包含参考视频块以及指示当前视频块和参考视频块之间的空间位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0920]
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1的参考图片中搜索当前视频块的另一参考视频块。然后,运动估计单元204可以生成指示列表0和列表1中包含参考视频块的参考图片的参考索引以及指示参考视频块和当前视频块之间的空间位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0921]
在一些示例中,运动估计单元204可以输出运动信息的全集以用于解码器的解码过程。
[0922]
在一些实例中,运动估计单元204可以不输出当前视频的运动信息的全集。而是,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与邻域视频块的运动信息充分相似。
[0923]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块具有与另一视频块相同的运动信息的值。
[0924]
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量和指示的视频块的运动矢量之间的差。视频解码器300可以使用指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0925]
如上所述,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实现的预测性信令通知技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令通知。
[0926]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于相同图片中其他视频块的解码样点来生成针对当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0927]
残差生成单元207可以通过从当前视频块中减去(例如,由负号指示)当前视频块的(一个或多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
[0928]
在其他示例中,对于当前视频块,例如在跳过模式下,可能不存在当前视频块的残差数据,并且残差生成单元207可以不执行减去操作。
[0929]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来为当前视频块生成一个或多个变换系数视频块。
[0930]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0931]
逆量化单元210和逆变换单元211可以分别将逆量化和逆变换应用于变换系数视频块,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到由预测单元202生成的一个或多个预测视频块的对应样点中,以产生与当前块相关联的重构的视频块,以储存在缓冲器213中。
[0932]
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪像。
[0933]
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码的数据并输出包括熵编码的数据的比特流。
[0934]
图11是图示视频解码器300的示例的框图,视频解码器300可以是图9所示的系统100中的视频解码器114。
[0935]
视频解码器300可以被配置为执行本公开的任何或所有技术。在图11的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0936]
在图11的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行一般与相对于视频编码器200(例如,图10)描述的编码阶段相反的解码阶段。
[0937]
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编解码的视频数据(例如,视频数据的编码的块)。熵解码单元301可以对熵编解码的视频数据进行解码,并且运动补偿单元302可以从熵解码的视频数据中确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元302可以例如通过执行amvp和merge模式来确定这样的信息。
[0938]
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。语法元素中可以包括要与子像素精度一起使用的插值滤波器的标识符。
[0939]
运动补偿单元302可以使用在视频块的编码期间由视频编码器200使用的插值滤波器,以计算参考块的子整数像素的插值。运动补偿单元302可以根据接收到的语法信息确定由视频编码器200使用的插值滤波器,并使用插值滤波器来产生预测块。
[0940]
运动补偿单元302可以使用一些语法信息来确定用于对编码的视频序列的(一个
或多个)帧和/或(一个或多个)条带进行编码的块的尺寸,描述如何对编码视频序列的图片的每个宏块进行分割的分割信息,指示如何对每个分割进行编码的模式,每个帧间编码块的一个或多个参考帧(和参考帧列表),以及用于解码编码的视频序列的其他信息。
[0941]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式,以从空间上相邻的块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化的视频块系数进行逆量化,即,去量化。逆变换单元303应用逆变换。
[0942]
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块加和,以形成解码的块。如果需要,还可以应用去块滤波器来对解码的块进行滤波,以移除块状伪影。然后,将解码的视频块储存在缓冲器307中,该缓冲器307为后续的运动补偿/帧内预测提供参考块,并且还产生解码的视频以在显示设备上呈现。
[0943]
图12是根据本技术的用于视频处理的方法的流程表示。方法1200包括,在操作1210处,执行在包括一个或多个图片的视频和视频的比特流表示之间的转换。比特流表示要求符合格式规则,该格式规则指定每个图片被编解码为一个或多个条带。格式规则禁止图片中的样点被一个或多个条带中的任何一个覆盖。
[0944]
在一些实施例中,图片包括多个子图片,并且格式规则还指定图片的子图片的多个条带覆盖整个子图片。在一些实施例中,比特流表示包括指示多个条带具有矩形形状的语法元素。在一些实施例中,条带与图片的最多一个子图片重叠。在一些实施例中,视频的片与图片的最多一个子图片重叠。在一些实施例中,视频的砖与图片的最多一个子图片重叠。
[0945]
图13是根据本技术的用于视频处理的方法的流程表示。方法1300包括,在操作1310处,对于在视频的图片和视频的比特流表示之间的转换,根据与图片中的片的数目或砖的数目相关联的规则,确定信令通知图片中的一个或多个条带的信息的方式。方法1300包括,在操作1320处,基于确定来执行转换。
[0946]
在一些实施例中,图片的一个或多个条带的信息至少包括一个或多个条带的数目或一个或多个条带的范围。在一些实施例中,规则指定如果图片中的砖的数目为1,则在比特流表示中排除图片中的一个或多个条带的信息。在一些实施例中,图片中的一个或多个条带的数目被认为是1。在一些实施例中,条带覆盖了整个图片。在一些实施例中,每个条带的砖的数目被认为是1。
[0947]
图14是根据本技术的用于视频处理的方法的流程表示。方法1400包括,在操作1410处,根据规则,执行在视频的图片和视频的比特流表示之间的转换。在比特流表示中图片被编解码为一个或多个条带。规则指定在比特流表示中是否或如何包括图片的条带的地址。
[0948]
在一些实施例中,规则指定条带的地址的信令通知独立于条带是否具有矩形形状的信令通知。在一些实施例中,规则指定如果条带为矩形形状,则条带的地址的信令通知取决于图片中的条带的数目。在一些实施例中,是否信令通知条带中的砖的数目至少部分地基于条带的地址。在一些实施例中,是否信令通知条带中的砖的数目还基于图片中砖的数目。
[0949]
图15是根据本技术的用于视频处理的方法的流程表示。方法1500包括,在操作1510处,对于在视频的图片和视频的比特流表示之间的转换,基于图片中片的数目或砖的
数目,确定比特流表示中是否包括语法元素,该语法元素指示启用访问图片中多个砖上的样点的滤波操作。方法1500包括,在操作1520处,基于确定来执行转换。在一些实施例中,如果图片中的砖的数目小于2,则在比特流表示中排除语法元素。
[0950]
图16是根据本技术的用于视频处理的方法的流程表示。方法1600包括,在操作1610处,执行在视频的图片和视频的比特流表示之间的转换。图片包括一个或多个子图片,并且一个或多个子图片的数目由比特流表示中的语法元素指示。
[0951]
在一些实施例中,多个子图片的数目被表示为n,并且语法元素包括(n-d)的值,n和d是整数。在一些实施例中,d是0、1或2。在一些实施例中,使用一元编解码方案或截短一元编解码方案对(n-d)的值进行编解码。在一些实施例中,使用固定长度编解码方案将(n-d)的值编解码为具有固定长度。在一些实施例中,固定长度是8比特。在一些实施例中,固定长度被表示为x-dx,x和dx是正整数。x等于或小于基于一致性规则确定的最大值,并且dx为0、1或2。在一些实施例中,信令通知x-dx。在一些实施例中,基于图片中的基本单元块的数目来确定固定长度。在一些实施例中,固定长度被表示为x,基本单元块的数目被表示为m,并且x=ceil(log2(m d0)) d1,d0和d1是整数。
[0952]
在一些实施例中,预先确定(n-d)的最大值。在一些实施例中,基于图片中的基本单元块的数目来确定(n-d)的最大值。在一些实施例中,图片中的基本单元块的数目被表示为m,m是整数,并且n-d的最大值是m-d。在一些实施例中,基本单元块包括条带。在一些实施例中,基本单元块包括编解码树单元。在一些实施例中,d0或d1中的至少一个是-2、-1、0、1或2。
[0953]
图17是根据本技术的用于视频处理的方法的流程表示。方法1700包括,在操作1710处,执行在包括一个或多个子图片的视频的图片和视频的比特流表示之间的转换。比特流表示符合格式规则,该格式规则基于以下中的至少一个来指定关于子图片的信息被包括在比特流表示中:(1)子图片的一个或多个角位置,或(2)子图片的维度。
[0954]
在一些实施例中,格式规则还指定关于子图片的信息定位在关于比特流表示中的编解码树块的尺寸的信息之后。在一些实施例中,使用子图片中的块的粒度在比特流表示中信令通知子图片的一个或多个角位置。在一些实施例中,块包括基本单元块或编解码树块。
[0955]
在一些实施例中,块的索引用于指示子图片的角位置。在一些实施例中,索引包括列索引或行索引。在一些实施例中,块的索引被表示为i,并且在比特流表示中信令通知(i-d)的值,d是0、1或2。在一些实施例中,基于先前编解码的子图片的索引和另一整数d1来确定d,d1等于-1、0或1。在一些实施例中,在比特流表示中信令通知(i-d)的符号。
[0956]
在一些实施例中,是否在比特流表示中信令通知子图片的位置是基于子图片的索引。在一些实施例中,如果子图片是图片中的第一子图片,则在比特流表示中省略子图片的位置。在一些实施例中,子图片的左顶位置被确定为(0,0)。在一些实施例中,如果子图片是图片中的最后一个子图片,则在比特流表示中省略子图片的位置。在一些实施例中,基于关于先前转换的子图片的信息来确定子图片的左顶位置。在一些实施例中,关于子图片的信息包括子图片的左顶位置和维度。使用截短一元编解码方案、截短二进制编解码方案、一元编解码方案、固定长度编解码方案,或第k个eg编解码方案对信息进行编解码。
[0957]
在一些实施例中,使用子图片中的块的粒度在比特流表示中信令通知子图片的维
度。在一些实施例中,维度包括子图片的宽度或高度。在一些实施例中,维度被表示为子图片中的块的列数或行数。在一些实施例中,块的列数或行数被表示为i,并且在比特流表示中信令通知(i-d)的值,d为0、1或2。在一些实施例中,基于先前编解码的子图片的块的维度和另一整数d1来确定d,d1等于-1、0或1。在一些实施例中,在比特流表示中信令通知(i-d)的符号。
[0958]
在一些实施例中,使用固定长度编解码方案将(i-d)的值编解码为具有固定长度。在一些实施例中,固定长度是8比特。在一些实施例中,固定长度被表示为x-dx,x和dx是正整数。x等于或小于基于一致性规则确定的最大值,并且dx为0、1或2。在一些实施例中,基于图片中的基本单元块的数目来确定固定长度。在一些实施例中,固定长度被表示为x,基本单元块的数目被表示为m,并且x=ceil(log2(m d0)) d1,d0和d1是整数。在一些实施例中,d0或d1中的至少一个是-2、-1、0、1或2。在一些实施例中,针对图片的所有子图片信令通知(i-d)。在一些实施例中,针对图片的子图片的子集信令通知(i-d)。在一些实施例中,如果子图片的数目等于1,则在比特流表示中省略(i-d)的值。在一些实施例中,如果子图片是图片的第一子图片,则在比特流表示中省略(i-d)的值。在一些实施例中,(i-d)的值被确定为0。在一些实施例中,如果子图片是图片中的最后一个子图片,则在比特流表示中省略(i-d)的值。在一些实施例中,基于关于先前转换的子图片的信息来确定(i-d)的值。
[0959]
在一些实施例中,单个语法元素有条件地包括在比特流表示中以指示是否将图片的所有子图片均处理为图片。在一些实施例中,单个语法元素有条件地包括在比特流表示中,以指示对于所有子图片,环路滤波器是否适用于图片的子图片。在一些实施例中,如果图片的子图片的数目等于1,则在比特流表示中省略单个语法元素。
[0960]
图18是根据本技术的用于视频处理的方法的流程表示。方法1800包括,在操作1810处,对于视频的图片和视频的比特流表示之间的转换,由于图片被分为一个或多个子图片,确定启用参考图片重采样工具。方法1800还包括,在操作1820处,基于确定来执行转换。
[0961]
在一些实施例中,基于比率的集合来确定在参考图片重采样编解码工具中使用的缩放比率。在一些实施例中,比率的集合包括以下中的至少一个:{1∶1,1∶2},{1∶1,2∶1},{1∶1,1∶2,1∶4},{1∶1,1∶2,4∶1},{1∶1,2∶1,1∶4},{1∶1,2∶1,4∶1},{1∶1,1∶2,1∶4,1∶8},{1∶1,1∶2,1∶4,8∶1},{1∶1,1∶2,4∶1,1∶8},{1∶1,1∶2,4∶1,8∶1},{1∶1,2∶1,1∶4,1∶8},{1∶1,2∶1,1∶4,8∶1},{1∶1,2∶1,4∶1,1∶8}或{1∶1,2∶1,4∶1,8∶1}。在一些实施例中,如果图片的分辨率与第二图片的分辨率不同,则图片的编解码树块的尺寸与第二图片的编解码树块的尺寸不同。在一些实施例中,图片的子图片的维度为saw
×
sah,并且视频的第二图片的子图片的维度为sbw
×
sbh。在图片和第二图片之间的缩放比率是沿水平方向和垂直方向的rw和rh。saw/sbw或sbw/saw等于rw,而sah/sbh或sbh/sah等于rh。
[0962]
图19是根据本技术的用于视频处理的方法的流程表示。方法1900包括,在操作1910处,执行在包括视频图片的视频和视频的比特流表示之间的转换,该视频图片包括一个或多个子图片,该一个或多个子图片包括一个或多个条带。比特流表示符合格式规则,该格式规则指定对于子图片和条带,如果在条带的头中包括标识子图片的索引,则条带的地址字段指示子图片中的条带的地址。
[0963]
在一些实施例中,转换从比特流表示生成视频。在一些实施例中,转换从视频生成
比特流表示。
[0964]
所公开技术的一些实施例包括做出决定或确定以启用视频处理工具或模式。在示例中,当启用视频处理工具或模式时,编码器将在视频块的处理中使用或实现该工具或模式,但是不一定基于工具或模式的使用来修改所得到的比特流。换言之,当基于决定或确定而启用视频处理工具或模式时,从视频块到视频的比特流表示的转换将使用视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。换言之,从视频的比特流表示到视频块的转换将使用基于决定或确定而启用的视频处理工具或模式来执行。
[0965]
所公开技术的一些实施例包括做出决定或确定以禁用视频处理工具或模式。在示例中,当禁用视频处理工具或模式时,编码器将在视频块到视频的比特流表示的转换中不使用该工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将在知道比特流没有使用基于决定或确定而启用的视频处理工具或模式被修改的情况下处理比特流。
[0966]
本文档中描述的公开的和其他的方案、示例、实施例、模块和功能操作可以在数字电子电路中或者在计算机软件、固件或硬件(包括本文档中公开的结构以及其结构的等同)中,或者在其一个或多个的组合中实现。所公开的和其它的实施例可以实现为一个或多个计算机程序产品,例如,在计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。该计算机可读介质可以是机器可读储存设备、机器可读储存基板、存储器设备、影响机器可读可传播信号的物质组分、或其一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者其一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电信号、光信号或电磁信号,其被生成以对信息进行编码以便传输到合适的接收器装置。
[0967]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括作为独立程序或作为模块、组件、子例程或其它适合在计算环境中使用的单元。计算机程序不一定对应于文件系统中的文件。程序可以储存在文件的保存其他程序或数据的一部分中(例如,储存在标记语言文档中的一个或多个脚本)、在专用于所讨论的程序的单个文件中、或在多个协同文件中(例如储存一个或多个模块、子程序或代码的一部分的文件)。计算机程序可以部署为在一个计算机上或者在多个计算机上执行,该多个计算机位于一个站点处或者分布跨越多个站点并由通信网络互连。
[0968]
可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行在本文档中所描述的过程和逻辑流,以通过在输入数据上操作并且生成输出来执行功能。也可以由专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))执行过程和逻辑流,并且设备可以实现为专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))。
[0969]
适合于计算机程序的执行的处理器包括例如通用和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。一般,处理器将从只读存储器或随机存取存储器或者该两者接收指令和数据。计算机的必要元件是用于执行指令的处理器和用于储存
指令和数据的一个或多个存储器设备。一般,计算机还将包括用于储存数据的一个或多个大容量储存设备(例如磁、磁光盘或光盘),或者可操作地耦接以从一个或多个大容量储存设备(例如磁、磁光盘或光盘)接收数据或者将数据传输到一个或多个大容量储存设备(例如磁、磁光盘或光盘),或者以上两者。然而,计算机不需要具有这样的设备。适用于储存计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪速存储器设备)、磁盘(例如内部硬盘或可移除磁盘)、磁光盘,以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充,或者并入专用逻辑电路。
[0970]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为特定于特定技术的特定实施例的特征的描述。在本专利文档中,在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征还可以分别在多个实施例中实现或者以各种合适的子组合实现。此外,尽管特征可以如上文描述为以某些组合起作用并且甚至最初这样要求,但是在某些情况下来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变型。
[0971]
类似地,尽管在附图中以特定次序描绘了操作,但这不应当理解为要求按所示的特定次序或顺序次序执行这样的操作或者执行所有示出的操作,以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分开不应被理解为在所有实施例中都要求这种分开。
[0972]
仅描述了几个实现方式和示例,并且可以基于本专利文档中描述和示出的内容来作出其它实现方式、增强和变型。
再多了解一些

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

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

相关文献