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

子图片与环路滤波之间的相互影响的制作方法

2022-06-16 07:48:06 来源:中国专利 TAG:

子图片与环路滤波之间的相互影响
1.相关申请的交叉引用
2.根据适用的专利法和/或援引《巴黎公约》的规则,本技术旨在及时要求于2019年10月18日提交的国际专利申请第pct/cn2019/111807号的优先权和权益。出于法律规定的所有目的,上面提到的申请的全部公开内容通过引用并入,作为本技术的公开内容的一部分。
技术领域
3.本文档涉及视频和图像编码和解码技术。


背景技术:

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


技术实现要素:

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

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

[0112]
luma样点双线性插值过程
[0113]
该过程的输入是:
[0114]-以全样点为单位的亮度位置(xint
l
,yint
l
),
[0115]-以分数样点为单位的亮度位置(xfrac
l
,yfrac
l
),
[0116]-亮度参考样点阵列refpiclx
l

[0117]
该过程的输出是预测的亮度样点值predsamplelx
l
[0118]
变量shift1、shift2、shift3、shift4、offset1、offset2和offset3如下推导:
[0119]
shift1=bitdepth
y-6
ꢀꢀ
(8-453)
[0120]
offset1=1《《(shift1-1)
ꢀꢀ
(8-454)
[0121]
shift2=4
ꢀꢀ
(8-455)
[0122]
offset2=1《《(shift2-1)
ꢀꢀ
(8-456)
[0123]
shift3=10-bitdepthyꢀꢀ
(8-457)
[0124]
shift4=bitdepth
y-10
ꢀꢀ
(8-458)
[0125]
offset4=1《《(shift4-1)
ꢀꢀ
(8-459)
[0126]
变量picw被设置为等于pic_width_in_luma_samples并且变量pich被设置为等于
pic_height_in_luma_samples。
[0127]
表8-10中指定了每个等于xfrac
l
或yfrac
l
的1/16分数采样位置p的亮度插值滤波器系数fb
l
[p]。
[0128]
对于i=0..1,以全样点为单位的亮度位置(xinti,yinti)如下推导:
[0129]-如果subpic_treated_as_pic_flag[subpicidx]等于1,那么以下适用:
[0130]
xinti=clip3(subpicleftboundarypos,subpicrightboundarypos,xint
l
i)(8-460)
[0131]
yinti=clip3(subpictopboundarypos,subpicbotboundarypos,yint
l
i)(8-461)
[0132]-否则(subpic_treated_as_pic_flag[subpicidx]等于0),那么以下适用:
[0133][0134]
yinti=clip3(0,pich-1,yint
l
i)(8-463)
[0135]

[0136]
用于基于子块的时域merge候选的推导过程
[0137]
该过程的输入是:
[0138]-当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0139]-变量cbwidth,指定亮度样点中当前编解码块的宽度,
[0140]-变量cbheight,指定亮度样点中当前编解码块的高度。
[0141]-相邻编解码单元的可用性标志availableflaga1,
[0142]-相邻编解码单元的参考索引refidxlxa1,x为0或1,
[0143]-相邻编解码单元的预测列表使用标志predflaglxa1,x为0或1,
[0144]-相邻编解码单元的具有1/16分数样点静的运动矢量mvlxa1,x为0或1。
[0145]
该过程的输出是:
[0146]-可用性标志availableflagsbcol,
[0147]-水平方向和垂直方向上的亮度编解码子块的数量numsbx和numsby,
[0148]-参考索引refidxl0sbcol和refidxl1sbcol,
[0149]-具有1/16分数样点精度的亮度运动矢量mvl0sbcol[xsbidx][ysbidx]和mvl1sbcol[xsbidx][ysbidx],其中xsbidx=0..numsbx-1,ysbidx=0..numsby1,
[0150]-预测列表使用标志predflagl0sbcol[xsbidx][ysbidx]和predflagl1sbcol[xsbidx][ysbidx],其中xsbidx=0..numsbx-1,ysbidx=0..numsby-1。
[0151]
可用性标志availableflagsbcol如下推导。
[0152]-如果以下条件当中的一个或多个为真,那么availableflagsbcol被设置为等于0。
[0153]-slice_temporal_mvp_enabled_flag等于0。
[0154]-sps_sbtmvp_enabled_flag等于0。
[0155]-cbwidth小于8。
[0156]-cbheight小于8。
[0157]-否则,以下有序步骤适用:
[0158]
1.如下推导包含当前编解码块的亮度编解码树块的左上样点的位置(xctb,yctb)和当前亮度编解码块的右下中心样点的位置(xctr,yctr):
[0159]
xctb=(xcb》》ctulog2size)《《ctulog2size
ꢀꢀ
(8-542)
[0160]
yctb=(ycb》》ctulog2size)《《ctulog2size
ꢀꢀ
(8-543)
[0161]
xctr=xcb (cbwidth/2)
ꢀꢀ
(8-544)
[0162]
yctr=ycb (cbheight/2)
ꢀꢀ
(8-545)
[0163]
2.亮度位置(xcolctrcb,ycolctrcb)被设置为等于相对于由colpic指定的同位图片的左上亮度样点的覆盖由colpic内(xctr,yctr)给出的位置的同位亮度编解码块的左上样点。
[0164]
3.调用如在8.5.5.4节中指定的针对基于子块的时域merge基本运动数据的推导过程,以位置(xctb,yctb)、位置(xcolctrcb,ycolctrcb)、可用性标志availableflaga1和预测列表使用标志predflaglxa1、参考索引refidxlxa1以及运动矢量mvlxa1(其中x为0和1)作为输入,并且以运动矢量ctrmvlx和同位块的预测列表使用标志ctrpredflaglx(其中x为0和1)以及时域运动矢量tempmv作为输出,。
[0165]
4.变量availableflagsbcol如下推导:
[0166]-如果ctrpredflagl0和ctrpredflagl1两者都等于0,那么availableflagsbcol被设置为等于0。
[0167]-否则,availableflagsbcol被设置为等于1。
[0168]
当availableflagsbcol等于1时,以下适用:
[0169]-变量numsbx、numsby、sbwidth、sbheight和refidxlxsbcol如下推导:
[0170]
numsbx=cbwidth》》3
ꢀꢀ
(8-546)
[0171]
numsby=cbheight》》3
ꢀꢀ
(8-547)
[0172]
sbwidth=cbwidth/numsbx
ꢀꢀ
(8-548)
[0173]
sbheight=cbheight/numsby
ꢀꢀ
(8-549)
[0174]
refidxlxsbcol=0
ꢀꢀ
(8-550)
[0175]-对于xsbidx=0..numsbx-1和ysbidx=0..numsby-1,运动矢量mvlxsbcol[xsbidx][ysbidx]和预测列表使用标志predflaglxsbcol[xsbidx][ysbidx]如下推导:
[0176]-指定当前编解码子块的左上样点相对于当前图片的左上亮度样点的亮度位置(xsb,ysb)如下推导:
[0177]
xsb=xcb xsbidx*sbwidth sbwidth/2
ꢀꢀ
(8-551)
[0178]
ysb=ycb ysbidx*sbheight sbheight/2
ꢀꢀ
(8-552)
[0179]-colpic内同位子块的位置(xcolsb,ycolsb)如下推导。
[0180]-以下适用:
[0181][0182]-如果subpic_treated_as_pic_flag[subpicidx]等于1,那么以下适用:
[0183][0184]-否则(subpic_treated_as_pic_flag[subpicidx]等于0),以下适用:
[0185][0186]

[0187]
针对基于子块的时域merge基本运动数据的推导过程
[0188]
该过程的输入是:
[0189]-包含当前编解码块的亮度编解码树块的左上样点的位置(xctb,yctb),
[0190]-覆盖右下中心样点的同位的亮度编解码块的左上样点的位置(xcolctrcb,ycolctrcb)。
[0191]-相邻编解码单元的可用性标志availableflaga1,
[0192]-相邻编解码单元的参考索引refidxlxa1,
[0193]-相邻编解码单元的预测列表使用标志predflaglxa1,
[0194]-相邻编解码单元的具有1/16分数样点精度的运动矢量mvlxa1。
[0195]
该过程的输出是:
[0196]-运动矢量ctrmvl0和ctrmvl1,
[0197]-预测列表使用标志ctrpredflagl0和ctrpredflagl1,
[0198]-时域运动矢量tempmv。
[0199]
变量tempmv被设置如下:
[0200]
tempmv[0]=0
ꢀꢀ
(8-558)
[0201]
tempmv[1]=0
ꢀꢀ
(8-559)
[0202]
变量currpic指定当前图片。
[0203]
当availableflaga1等于true时,以下适用:
[0204]-如果以下所有条件都为真,那么tempmv被设置为等于mvl0a1:
[0205]-predflagl0a1等于1,
[0206]-diffpicordercnt(colpic,refpiclist[0][refidxl0a1])等于0,
[0207]-否则,如果以下所有条件都为真,那么tempmv被设置为等于mvl1a1:
[0208]-slice_type等于b,
[0209]-predflagl1a1等于1,
[0210]-diffpicordercnt(colpic,refpiclist[1][refidxl1a1])等于0。colpic内的同位块的位置(xcolcb,ycolcb)如下推导。
[0211]-以下适用:
[0212]
[0213]-如果subpic_treated_as_pic_flag[subpicidx]等于1,那么以下适用:
[0214][0215]-否则(subpic_treated_as_pic_flag[subpicidx]等于0,以下适用:
[0216][0217]

[0218]
亮度样点插值滤波过程
[0219]
该过程的输入是:
[0220]-以全样点为单位的亮度位置(xint
l
,yint
l
),
[0221]-以分数样点为单位的亮度位置(xfrac
l
,yfrac
l
),
[0222]-以全样点为单位的亮度位置(xsbint
l
,ysbint
l
),指定边界块的左上样点,用于相对于参考图片的左上亮度样点进行参考样点填充,
[0223]-亮度参考样点阵列refpiclx
l

[0224]-半样点插值滤波器索引hpelifidx,
[0225]-变量sbwidth,指定当前子块的宽度,
[0226]-变量sbheight,指定当前子块的高度,
[0227]-亮度位置(xsb,ysb),指定相对于当前图片的左上亮度样点的当前子块的左上样点,
[0228]
该过程的输出是预测的亮度样点值predsamplelx
l
[0229]
变量shift1、shift2和shift3如下推导:
[0230]-变量shift1被设置为等于min(4,bitdepth
y-8),变量shift2被设置为等于6,变量shift3被设置为等于max(2,14-bitdepthy)。
[0231]-变量picw被设置为等于pic_width_in_luma_samples并且变量pich被设置为等于pic_height_in_luma_samples。
[0232]
针对等于xfracl或yfracl的每个1/16分数采样位置p的亮度插值滤波器系数f
l
[p]如下推导:
[0233]-如果motionmodelidc[xsb][ysb]大于0,并且sbwidth和sbheight两者都等于4,那么亮度插值滤波器系数f
l
[p]在表8-12中指定。
[0234]-否则,根据hpelifidx在表8-11中指定亮度插值滤波器系数f
l
[p]。对于i=0..7,以全样点为单位的亮度位置(xinti,yinti)如下推导:
[0235]-如果subpic_treated_as_pic_flag[subpicidx]等于1,那么以下适用:
[0236]
xinti=clip3(subpicleftboundarypos,subpicrightboundarypos,xint
l
i-3)(8-771)
[0237]
yinti=clip3(subpictopboundarypos,subpicbotboundarypos,yint
l
i-3)(8-772)
[0238]-否则(subpic_treated_as_pic_flag[subpicidx]等于0),以下适用:
[0239][0240]
yinti=clip3(0,pich-1,yint
l
i-3)
ꢀꢀ
(8-774)
[0241]

[0242]
色度样点插值过程
[0243]
该过程的输入是:
[0244]-以全样点为单位的色度位置(xintc,yintc),
[0245]-以1/32分数样点为单位的色度位置(xfracc,yfracc),
[0246]-以全样点为单位的色度位置(xsbintc,ysbintc),指定边界块的左上样点,用于相对于参考图片的左上色度样点进行参考样点填充,
[0247]-变量sbwidth,指定当前子块的宽度,
[0248]-变量sbheight,指定当前子块的高度,
[0249]-色度参考样点阵列refpiclxc。
[0250]
该过程的输出是预测的色度样点值predsamplelxc[0251]
变量shift1、shift2和shift3如下推导:
[0252]-变量shift1被设置为等于min(4,bitdepth
c-8),变量shift2被设置为等于6,变量shift3被设置为等于max(2,14-bitdepthc)。
[0253]-变量picwc被设置为等于pic_width_in_luma_samples/subwidthc并且变量pichc被设置为等于pic_height_in_luma_samples/subheightc。
[0254]
表8-13中指定了针对等于xfracc或yfracc的每个1/32分数样点位置p的色度插值滤波器系数fc[p]。
[0255]
变量xoffset被设置为等于(sps_ref_wraparound_offset_minus1 1)*mincbsizey)/subwidthc。
[0256]
对于i=0..3,以全样点为单位的色度位置(xinti,yinti)如下推导:
[0257]-如果subpic_treated_as_pic_flag[subpicidx]等于1,那么以下适用:
[0258]
xinti=clip3(subpicleftboundarypos/subwidthc,subpicrightboundarypos/subwidthc,xint
l
i)
ꢀꢀ
(8-785)
[0259]
yinti=clip3(subpictopboundarypos/subheightc,subpicbotboundarypos/subheightc,yint
l
i)
ꢀꢀ
(8-786)
[0260]

否则(subpic_treated_as_pic_flag[subpicidx]等于0),以下适用:
[0261][0262]
yinti=clip3(0,pichc-1,yintc i-1)
ꢀꢀ
(8-788)
[0263]
2.4示例仅编码器的基于gop的时域滤波器
[0264]
在一些实施例中,可以实现仅编码器的时域滤波器。滤波是在编码器侧作为预处理步骤完成的。读取要编码的所选择的图片之前和之后的源图片,并在那些源图片上应用相对于所选择的图片的基于块的运动补偿方法。使用运动补偿之后的样点值对所选择的图
片中的样点进行时域滤波。
[0265]
根据所选择的图片的时域子层以及qp来设置整体滤波器强度。只有时域子层0和1处的图片被滤波并且层0的图片被比层1的图片更强的滤波器滤波。根据所选择的图片中的样点值与运动补偿图片中同位样点之间的差来调整每个样点的滤波强度,从而使运动补偿图片与所选择的图片之间的小差比较大的差更强烈地被滤波。
[0266]
基于gop的时域滤波器
[0267]
在读取图片之后和编码之前直接引入时域滤波器。以下是更详细描述的步骤。
[0268]
操作1:由编码器读取图片
[0269]
操作2:如果图片在编解码层次中足够低,那么在编码之前对其进行滤波。否则图片在不滤波的情况下被编码。其中poc%8==0的ra图片以及其中poc%4==0的ld图片被滤波。ai图片永远不会被滤波。
[0270]
根据下面的等式为ra设置总滤波器强度so。
[0271][0272]
其中n是读取的图片的数量。
[0273]
对于ld情况,使用so(n)=0.95。
[0274]
操作3:在读取所选择的图片(以下称为原始图片)之前和/或之后的两个图片。例如,在边缘情况下,如果是第一个图片或靠近最后一个图片,那么仅读取可用图片。
[0275]
操作4:每8x8图片块估计相对于原始图片之前和之后的所读取的图片的运动。
[0276]
使用分层运动估计方案,并且层l0、l1和l2在图2中示出。子采样的图片是通过对所有读取的图片和原始图片将每个2x2块求平均来生成的,例如图2中的l1。l2是使用相同的子采样方法从l1推导的。
[0277]
图2示出了分层运动估计的不同层的示例。l0是原始分辨率。l1是l0的子采样的版本。l2是l1的子采样的版本。
[0278]
首先,对l2中的每个16x16块进行运动估计。为每个选择的运动矢量计算平方差,并选择与最小的差对应的运动矢量。然后在估计l1中的运动时,将所选择的运动矢量用作初始值。然后对l0中的运动进行同样的估计。作为最后一步,通过在l0上使用插值滤波器来针对每个8x8块估计子像素运动。
[0279]
vtm 6抽头插值滤波器可以被使用:
[0280][0281]
操作5:根据用于每个块的最佳匹配运动对原始图片之前和之后的图片应用运动补偿,例如,使得每个块中的原始图片的样点坐标在参考的图片中具有最佳匹配坐标。
[0282]
操作6:对亮度和色度通道的样点进行一一处理,如以下步骤所述。
[0283]
操作7:使用以下公式计算新样点值in。
[0284][0285]
其中io是原始样点的样点值,ir(i)是运动补偿的图片i的对应样点的强度,并且wr(i,a)是当可用的运动补偿的图片的数量为a时运动补偿的图片i的权重。
[0286]
在亮度通道中,权重wr(i,a)定义如下:
[0287][0288]
其中
[0289]sl
=0.4
[0290]
[0291][0292]
对于i和a的所有其它情况:sr(i,a)=0.3
[0293]
σ
l
(qp)=3*(qp-10)
[0294]
δi(i)=ir(i)-io[0295]
对于色度通道,权重wr(i,a)定义如下:
[0296][0297]
其中sc=0.55和σc=30
[0298]
操作8:对当前样点应用滤波器。结果所得的样点值被单独存储。
[0299]
操作9:对滤波后的图片进行编码。
[0300]
2.5示例图片分割(片、砖块、条带)
[0301]
在一些实施例中,图片被划分为一个或多个片行和一个或多个片列。片是覆盖图片的矩形区域的ctu的序列。
[0302]
片被划分为一个或多个砖块,每个砖块由片内的多个ctu行组成。
[0303]
未被分割为多个砖块的片也被称为砖块。但是,作为片的真正子集的砖块不被称为片。
[0304]
条带或者包含图片的多个片或片的多个砖块。
[0305]
子图片包含共同覆盖图片的矩形区域的一个或多个条带。
[0306]
支持两种条带模式,即,光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式下,条带包含图片的以片光栅扫描的片的序列。在矩形条带模式下,条带包含图片的多个砖块,它们共同形成图片的矩形区域。矩形条带内的砖块按条带的砖块光栅扫描的次序。
[0307]
图5示出了图片的光栅扫描条带分割的示例,其中图片被划分为12个片和3个光栅扫描条带。
[0308]
图6示出了图片的矩形条带分割的示例,其中图片被划分为24个片(6个片列和4个片行)和9个矩形条带。
[0309]
图7示出了将图片分割为片、砖块和矩形条带的示例,其中图片被划分为4个片(2个片列和2个片行)、11个砖块(左上片包含1个砖块,右上片包含5个砖块,左下片包含2个砖块,并且右下片包含3个砖块)和4个矩形条带。
[0310]
图片参数集rbsp语法
[0311]
[0312][0313][0314]
single_tile_in_pic_flag等于1指定在每个图片中只有一个片参考pps。single_tile_in_pic_flag等于0指定在每个图片中存在多于一个片参考pps。
[0315]
注-如果片内没有进一步的砖块拆分,那么整个片被称为砖块。当图片只包含单个片而没有进一步的砖块拆分时,它被称为单个砖块。
[0316]
对于cvs内编解码的图片所参考的所有pps,single_tile_in_pic_flag的值应相同,这是比特流覆盖性的要求。
[0317]
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。
[0318]
tile_cols_width_minus1加1指定当uniform_tile_spacing_flag等于1时不包括以ctb为单位的图片最右边的片列的片列的宽度。tile_cols_width_minus1的值应在0到picwidthinctbsy-1的范围内,含端点。当不存在时,推断tile_cols_width_minus1的值等于picwidthinctbsy-1。
[0319]
tile_rows_height_minus1加1指定当uniform_tile_spacing_flag等于1时不包括以ctb为单位的图片底部片行的片行的高度。tile_rows_height_minus1的值应在0到picheightinctbsy-1的范围内,含端点。当不存在时,推断tile_rows_height_minus1的值等于picheightinctbsy-1。
[0320]
num_tile_columns_minus1加1指定当uniform_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节中指定的被推断。
[0321]
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节中指定的被推断。
[0322]
变量numtilesinpic被设置为等于(num_tile_columns_minus1 1)*(num_tile_rows_minus1 1)。
[0323]
当single_tile_in_pic_flag等于0时,numtilesinpic应大于1。
[0324]
tile_column_width_minus1[i]加1指定以ctb为单位的第i个片列的宽度。
[0325]
tile_row_height_minus1[i]加1指定以ctb为单位的第i个片行的高度。
[0326]
brick_splitting_present_flag等于1指定参考pps的图片的一个或多个片可以被划分为两个或更多个砖块。brick_splitting_present_flag等于0指定没有参考pps的图片的片被划分为两个或更多个砖块。
[0327]
num_tiles_in_pic_minus1加1指定参考pps的每个图片中的片的数量。num_tiles_in_pic_minus1的值应等于numtilesinpic

1。当不存在时,推断num_tiles_in_pic_minus1的值等于numtilesinpic-1。
[0328]
brick_split_flag[i]等于1指定第i个片被划分为两个或更多个砖块。brick_split_flag[i]等于0指示第i个片不被划分为两个或更多个砖块。当不存在时,brick_split_flag[i]的值被推断为等于0。在一些实施例中,通过添加语法条件“if(rowheight[i]》1)”来引入pps解析对sps的依赖性(例如,对于uniform_brick_spacing_flag[i]类
似)。
[0329]
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。
[0330]
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。
[0331]
num_brick_rows_minus2[i]加2指定当uniform_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]的值如第
[0332]
6.5.1节中指定的那样被推断。
[0333]
brick_row_height_minus1[i][j]加1指定当uniform_tile_spacing_flag等于0时以ctb为单位的第i个片中第j个砖块的高度。
[0334]
推导以下变量,并且当uniform_tile_spacing_flag等于1时,推断num_tile_columns_minus1和num_tile_rows_minus1的值,并且对于从0到numtilesinpic-1的每个i,当uniform_brick_spacing_flag[i]等于1时,num_brick_rows_minus2[i]的值是通过调用第6.5.1节中指定的ctb光栅和砖块扫描转换过程来推断的:
[0335]-列表rowheight[j],j的范围从0到num_tile_rows_minus1(含端点),指定以ctb为单位的第j个片行的高度,
[0336]-列表ctbaddrrstobs[ctbaddrrs],ctbaddrrs的范围从0到picsizeinctbsy-1(含端点),指定从图片的ctb光栅扫描中的ctb地址到砖块扫描中的ctb地址的转换,
[0337]-列表ctbaddrbstors[ctbaddrbs],ctbaddrbs的范围从0到picsizeinctbsy-1(含端点),指定从砖块扫描中的ctb地址到图片的ctb光栅扫描中的ctb地址的转换,
[0338]-列表brickid[ctbaddrbs],ctbaddrbs的范围从0到picsizeinctbsy-1(含端点),指定从砖块扫描中的ctb地址到砖块id的转换,
[0339]-列表numctusinbrick[brickidx],brickidx的范围从0到numbricksinpic-1(含端点),指定从砖块索引到砖块中ctu的数量的转换,
[0340]-列表firstctbaddrbs[brickidx],brickidx的范围从0到numbricksinpic-1(含端点),指定从砖块id到砖块中第一个ctb的砖块扫描中的ctb地址的转换。
[0341]
single_brick_per_slice_flag等于1指定参考该pps的每个条带包括一个砖块。single_brick_per_slice_flag等于0指定参考该pps的条带可以包括多于一个砖块。当不存在时,single_brick_per_slice_flag的值被推断为等于1。
[0342]
rect_slice_flag等于0指定每个条带内的砖块按光栅扫描次序,并且条带信息不
在pps中信令通知。rect_slice_flag等于1指定每个条带内的砖块覆盖图片的矩形区域,并且条带信息在pps中信令通知。当brick_splitting_present_flag等于1时,rect_slice_flag的值应等于1。当不存在时,rect_slice_flag被推断为等于1。
[0343]
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。
[0344]
bottom_right_brick_idx_length_minus1加1指定用于表示语法元素bottom_right_brick_idx_delta[i]的比特数。bottom_right_brick_idx_length_minus1的值应在0到ceil(log2(numbricksinpic))-1的范围内,含端点。
[0345]
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比特。
[0346]
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]指示负号。
[0347]
条带应包括或者多个完整的片或者仅一个片的完整砖块的连续序列,这是比特流一致性的要求。
[0348]
指定位于第i个条带左上角的砖块的砖块索引、位于第i个条带右下角的砖块的砖块索引、第i个条带中的砖块数量以及砖块到条带的映射的变量topleftbrickidx[i]、bottomrightbrickidx[i]、numbricksinslice[i]和brickstoslicemap[j]如下推导:
[0349][0350]
[0351]
通用条带标头语义当存在时,每个条带标头语法元素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的值在编解码的图片的所有条带标头中都应该相同。
[0352]
指定用于包含cu_qp_delta_abs的编解码单元的亮度量化参数与其预测之间的差的变量cuqpdeltaval被设置为等于0。指定在确定包含cu_chroma_qp_offset_flag的编解码单元的qp'
cb
、qp'
cr
和qp'
cbcr
量化参数的相应值时要使用的值的变量cuqpoffset
cb
、cuqpoffset
cr
和cuqpoffset
cbcr
都被设置为等于0。
[0353]
slice_pic_parameter_set_id为正在使用的pps指定pps_pic_parameter_set_id的值。slice_pic_parameter_set_id的值应在0到63的范围内,含端点。
[0354]
当前图片的temporalid的值应大于或等于具有等于slice_pic_parameter_set_id的pps_pic_parameter_set_id的pps的temporalid值是比特流一致性的要求。
[0355]
slice_address指定条带的条带地址。如果不存在,那么推断slice_address的值等于0。
[0356]
如果rect_slice_flag等于0,那么以下适用:
[0357]-条带地址是由等式(7-59)指定的砖块id。
[0358]-slice_address的长度是ceil(log2(numbricksinpic))比特。
[0359]-slice_address的值应在0到numbricksinpic-1的范围内,含端点。否则(rect_slice_flag等于1),以下适用:
[0360]-条带地址是条带的条带id。
[0361]-slice_address的长度是signalled_slice_id_length_minus1 1比特。
[0362]-如果signalled_slice_id_flag等于0,那么slice_address的值应在0到num_slices_in_pic_minus1的范围内,含端点。否则,slice_address的值应在0到2
(signalled_slice_id_length_minus1 1)-1的范围内,含端点。
[0363]
以下约束适用是比特流一致性的要求:
[0364]-slice_address的值不应等于同一编解码的图片的任何其它编解码的条带nal单元的slice_address的值。
[0365]-当rect_slice_flag等于0时,图片的条带应按其slice_address值的升序。
[0366]-图片的条带的形状应使得每个砖块在被解码时应使得其整个左边界和整个顶部边界由图片边界组成或由先前解码的(一个或多个)砖块的边界组成。
[0367]
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。
[0368]
指定当前条带中的砖块数量的变量numbricksincurrslice和指定当前条带中第i个砖块的砖块索引的slicebrickidx[i]如下推导:
[0369][0370]
变量subpicidx、subpicleftboundarypos、subpictopboundarypos、subpicrightboundarypos和subpicbotboundarypos如下推导:
[0371][0372]
2.6示例语法和语义
[0373]
序列参数集rbsp语法
[0374]
[0375]
[0376]
[0377]
[0378]
[0379][0380]
图片参数集rbsp语法
[0381]
[0382]
[0383]
[0384][0385]
图片标头rbsp语法
[0386]
[0387]
[0388]
[0389]
[0390][0391]
subpics_present_flag等于1指示子图片参数存在于sps rbsp语法中。subpics_present_flag等于0指示子图片参数不存在于sps rbsp语法中。
[0392]
注2

当比特流是子比特流提取过程的结果并且仅包含子比特流提取过程的输入比特流的子图片的子集时,可能要求将subpics_present_flag的值在sps的rbsp中设置为等于1。
[0393]
sps_num_subpics_minus1加1指定子图片的数量。sps_num_subpics_minus1应在0到254的范围内。当不存在时,sps_num_subpics_minus1的值被推断为等于0。
[0394]
subpic_ctu_top_left_x[i]指定以ctbsizey为单位的第i个子图片的左上角ctu的水平位置。语法元素的长度是cei(log2(pic_width_max_in_luma_samples/ctbsizey))比特。当不存在时,推断subpic_ctu_top_left_x[i]的值等于0。
[0395]
subpic_ctu_top_left_y[i]指定以ctbsizey为单位的第i个子图片的左上角ctu的垂直位置。语法元素的长度是ceil(log2(pic_height_max_in_luma_samples/ctbsizey))比特。当不存在时,推断subpic_ctu_top_left_y[i]的值等于0。
[0396]
subpic_width_minus1[i]加1指定以ctbsizey为单位的第i个子图片的宽度。语法元素的长度是ceil(log2(pic_width_max_in_luma_samples/ctbsizey))比特。当不存在时,推断subpic_width_minus1[i]的值等于ceil(pic_width_max_in_luma_samples/ctbsizey)-1。
[0397]
subpic_height_minus1[i]加1指定以ctbsizey为单位的第i个子图片的高度。语法元素的长度是ceil(log2(pic_height_max_in_luma_samples/ctbsizey))比特。当不存在时,推断subpic_height_minus1[i]的值等于ceil(pic_height_max_in_luma_samples/ctbsizey)-1。
[0398]
subpic_treated_as_pic_flag[i]等于1指定将cvs中每个编解码的图片的第i个子图片视为不包括环路滤波操作的解码过程中的图片。subpic_treated_as_pic_flag[i]等于0指示不将cvs中每个编解码的图片的第i个子图片视为不包括环路滤波操作的解码过程中的图片。当不存在时,推断subpic_treated_as_pic_flag[i]的值等于0。
[0399]
loop_filter_across_subpic_enabled_flag[i]等于1指定可以跨cvs中的每个编解码的图片中的第i个子图片的边界执行环路滤波操作。loop_filter_across_subpic_
enabled_flag[i]等于0指定不跨cvs中的每个编解码的图片中的第i个子图片的边界执行环路滤波操作。当不存在时,推断loop_filter_across_subpic_enabled_pic_flag[i]的值等于1。
[0400]
以下约束适用是比特流一致性的要求:
[0401]-对于任何两个子图片subpica和subpicb,当subpica的索引小于subpicb的索引时,subpica的任何编解码的nal单元在解码次序上应在subpicb的任何编解码的nal单元之后。
[0402]-子图片的形状应使得每个子图片在被解码时应使得其整个左边界和整个顶部边界由图片边界组成或由先前解码的子图片的边界组成。
[0403]
sps_subpic_id_present_flag等于1指定子图片id映射存在于sps中。sps_subpic_id_present_flag等于0指定子图片id映射不存在于sps中。
[0404]
sps_subpic_id_signalling_present_flag等于1指定子图片id映射在sps中信令通知。sps_subpic_id_signalling_present_flag等于0指定子图片id映射不在sps中信令通知。当不存在时,sps_subpic_id_signalling_present_flag的值被推断为等于0。
[0405]
sps_subpic_id_len_minus1加1指定用于表示语法元素sps_subpic_id[i]的比特数。sps_subpic_id_len_minus1的值应在0到15的范围内,含端点。
[0406]
sps_subpic_id[i]指定第i个子图片的子图片id。sps_subpic_id[i]语法元素的长度是sps_subpic_id_len_minus1 1比特。当不存在时,并且当sps_subpic_id_present_flag等于0时,对于0到sps_num_subpics_minus1范围内的每个i(含端点),sps_subpic_id[i]的值被推断为等于i。
[0407]
ph_pic_parameter_set_id为正在使用的pps指定pps_pic_parameter_set_id的值。ph_pic_parameter_set_id的值应在0到63的范围内,含端点。
[0408]
图片标头的temporalid值应大于或等于具有等于ph_pic_parameter_set_id的pps_pic_parameter_set_id的pps的temporalid的值是比特流一致性的要求。
[0409]
ph_subpic_id_signalling_present_flag等于1指定子图片id映射在图片标头中信令通知。ph_subpic_id_signalling_present_flag等于0指定子图片id映射不在图片标头中信令通知。
[0410]
ph_subpic_id_len_minus1加1指定用于表示语法元素ph_subpic_id[i]的比特数。pic_subpic_id_len_minus1的值应在0到15的范围内,含端点。
[0411]
ph_subpic_id_len_minus1的值对于cvs中编解码的图片所参考的所有图片标头都应相同是比特流一致性的要求。
[0412]
ph_subpic_id[i]指定第i个子图片的子图片id。ph_subpic_id[i]语法元素的长度是ph_subpic_id_len_minus1 1比特。
[0413]
列表subpicidlist[i]如下推导:
[0414][0415]
去方块滤波器过程
[0416]
一般
[0417]
该过程的输入是去方块之前的重构的图片,即,阵列recpicture
l
,并且当chromaarraytype不等于0时,还有阵列recpicture
cb
和recpicture
cr

[0418]
该过程的输出是去方块之后经修改的重构的图片,即,阵列recpicture
l
,并且当chromaarraytype不等于0时,还有阵列recpicture
cb
和recpicture
cr

[0419]
首先滤波图片中的垂直边缘。然后用通过垂直边缘滤波过程修改的样点作为输入来滤波图片中的水平边缘。每个ctu的ctb中的垂直和水平边缘在编解码单元的基础上被分开处理。对编解码单元中编解码块的垂直边缘进行滤波,从编解码块左手侧的边缘开始,按照其几何次序通过边缘朝着编解码块的右手侧前进。对编解码单元中编解码块的水平边缘进行滤波,从编解码块顶部的边缘开始,按照其几何次序通过边缘朝着编解码块的底部前进。
[0420]


虽然本说明书中以图片为基础指定滤波过程,但滤波过程可以在具有等效结果的编解码单元基础上实现,前提是解码器正确考虑了处理依赖次序以产生相同的输出值。
[0421]
去方块滤波器过程被应用于图片的所有编解码子块边缘和变换块边缘,以下类型的边缘除外:
[0422]-在图片的边界处的边缘,
[0423]-与loop_filter_across_subpic_enabled_flag[subpicidx]等于0的子图片的边界重合的边缘,
[0424]-当pps_loop_filter_across_virtual_boundaries_disabled_flag等于1时与图片的虚拟边界重合的边缘,
[0425]-当loop_filter_across_tiles_enabled_flag等于0时与片边界重合的边缘,
[0426]-当loop_filter_across_slices_enabled_flag等于0时与条带边界重合的边缘,
[0427]-与slice_deblocking_filter_disabled_flag等于1的条带的上边界或左边界重合的边缘,
[0428]-slice_deblocking_filter_disabled_flag等于1的条带内的边缘,
[0429]-不与亮度分量的4x4样点网格边界对应的边缘,
[0430]-不与色度分量的8x8样点网格边界对应的边缘,
[0431]-亮度分量内的边缘,边缘两侧的intra_bdpcm_luma_flag等于1,
[0432]-色度分量内的边缘,边缘两侧的intra_bdpcm_chroma_flag等于1,
[0433]-不是相关联的变换单元的边缘的色度子块的边缘。
[0434]

[0435]
针对一个方向的去方块滤波器过程
[0436]
该过程的输入是:
[0437]-变量treetype,指定当前处理的是亮度(dual_tree_luma)还是色度分量(dual_tree_chroma),
[0438]-当treetype等于dual_tree_luma时,去方块之前的重构的图片,即,阵列recpicture
l

[0439]-当chromaarraytype不等于0并且treetype等于dual_tree_chroma时,阵列
recpicture
cb
和recpicture
cr

[0440]-变量edgetype,指定是滤波垂直(edge_ver)还是水平(edge_hor)边缘。
[0441]
该过程的输出是去方块之后经修改的重构的图片,即:
[0442]-当treetype等于dual_tree_luma时,阵列recpicture
l

[0443]-当chromaarraytype不等于0并且treetype等于dual_tree_chroma时,阵列recpicture
cb
和recpicture
cr

[0444]
变量firstcompidx和lastcompidx如下推导:
[0445]
firstcompidx=(treetype==dual_tree_chroma)?1:0
ꢀꢀ
(8-1010)
[0446]
lastcompidx=(treetype==dual_tree_luma||chromaarraytype==0)?0:2 (8-1011)
[0447]
对于每个编解码单元和由颜色分量索引cidx(范围从firstcompidx到lastcompidx,含端点)指示的编解码单元的每个颜色分量的每个编解码块,其中编解码块宽度为ncbw,编解码块高度为ncbh并且编解码块的左上样点的位置是(xcb,ycb),当cidx等于0时,或者当cidx不等于0并且edgetype等于edge_ver并且xcb%8等于0时,或者当cidx不等于0并且edgetype等于edge_hor并且ycb%8等于0时,边缘通过以下有序步骤被滤波:
[0448]
1.变量filteredgeflag如下推导:
[0449]-如果edgetype等于edge_ver并且以下条件当中的一个或多个为真,那么filteredgeflag设置等于0:
[0450]-当前编解码块的左边界是图片的左边界。
[0451]-当前编解码块的左边界是子图片的左或右边界并且loop_filter_across_subpic_enabled_flag[subpicidx]等于0。
[0452]-当前编解码块的左边界是片的左边界并且loop_filter_across_tiles_enabled_flag等于0。
[0453]-当前编解码块的左边界是条带的左边界并且loop_filter_across_slices_enabled_flag等于0。
[0454]-当前编解码块的左边界是图片的垂直虚拟边界之一并且virtualboundariesdisabledflag等于1。
[0455]-否则,如果edgetype等于edge_hor并且以下条件当中的一个或多个为真,那么将变量filteredgeflag设置为等于0:
[0456]-当前亮度编解码块的顶部边界是图片的顶部边界。
[0457]-当前编解码块的顶部边界是子图片的顶部边界或底部边界并且loop_filter_across_subpic_enabled_flag[subpicidx]等于0。
[0458]-当前编解码块的顶部边界是片的顶部边界并且loop_filter_across_tiles_enabled_flag等于0。
[0459]-当前编解码块的顶部边界是条带的顶部边界并且loop_filter_across_slices_enabled_flag等于0。
[0460]-当前编解码块的顶部边界是图片的水平虚拟边界之一并且virtualboundariesdisabledflag等于1。
[0461]-否则,filteredgeflag被设置为等于1。
[0462]
2.7示例tpm、hmvp和geo
[0463]
vvc中的tpm(三角形预测模式)将块划分为具有不同运动信息的两个三角形。
[0464]
vvc中的hmvp(基于历史的运动矢量预测)维护要用于运动矢量预测的运动信息的表。该表在对帧间编解码的块进行解码之后被更新,但如果帧间编解码的块是tpm编解码的,那么不会更新该表。
[0465]
geo(几何分割模式)是tpm的扩展。使用geo,可以用直线将块划分为两个分割,这些分割可以是三角形,或者可以不是三角形。
[0466]
2.8 alf、cc-alf和虚拟边界
[0467]
vvc中的alf(自适应环路滤波器)在图片已被解码之后应用,以增强图片质量。
[0468]
在vvc中采用虚拟边界(vb)以使alf对硬件设计友好。利用vb,alf是在由两个alf虚拟边界界定的alf处理单元中进行的。
[0469]
cc-alf(交叉分量alf)通过参考亮度样点的信息来滤波色度样点。
[0470]
3.通过所公开的实施例解决的技术问题的示例
[0471]
(1)存在一些会违反子图片约束的设计。
[0472]
a.仿射构造的候选中的tmvp可能获取当前子图片的范围之外的同位的图片中的mv。
[0473]
b.当在双向光流(bdof)和预测细化光流(prof)中推导梯度时,要求获取整数参考样点的两个扩展的行和两个扩展的列。这些参考样点可能在当前子图片的范围之外。
[0474]
c.当在亮度映射色度缩放(lmcs)中推导色度残差缩放因子时,所访问的重构的亮度样点可能在当前子图片的范围之外。
[0475]
d.当推导亮度帧内预测模式、用于帧内预测的参考样点、用于cclm的参考样点、用于merge/amvp/ciip/ibc/lmcs的空域相邻候选的相邻块可用性、量化参数、cabac初始化过程、使用左和上方语法元素的ctxinc推导,以及针对语法元素mtt_split_cu_vertical_flag的ctxinc时,相邻块可能在当前子图片的范围之外。子图片的表示可以导致具有不完整ctu的子图片。ctu分割和cu拆分过程可能需要考虑不完整的ctu。
[0476]
(2)与子图片相关的信令通知的语法元素可以任意大,这可能会造成溢出问题。
[0477]
(3)子图片的表示可能导致非矩形子图片。
[0478]
(4)目前,子图片和子图片网格以4个样点为单位进行定义。并且语法元素的长度取决于图片高度除以4。但是,由于当前的pic_width_in_luma_samples和pic_height_in_luma_samples应为max(8,mincbsizey)的整数倍,因此可能需要以8个样点为单位定义子图片网格。
[0479]
(5)sps语法pic_width_max_in_luma_samples和pic_height_max_in_luma_samples可能需要被限制为不小于8。
[0480]
(6)在当前设计中没有考虑参考图片重采样/可缩放性与子图片之间的交互。
[0481]
(7)在时域滤波中,可能要求跨不同子图片的样点。
[0482]
(8)当信令通知条带时,在一些情况下可能在没有信令通知的情况下推断信息。
[0483]
(9)所有定义的条带都有可能不能覆盖整个图片或子图片。
[0484]
(10)两个子图片的id可能相同。
[0485]
(11)pic_width_max_in_luma_samples/ctbsizey可能等于0,导致无意义的log2
()操作。
[0486]
(12)ph中的id比pps中的更优选,但不如sps中的优选,这是不一致的。
[0487]
(13)pps中的log2_transform_skip_max_size_minus2根据sps中的sps_transform_skip_enabled_flag进行解析,从而导致解析依赖性。
[0488]
(14)用于去方块的loop_filter_across_subpic_enabled_flag只考虑当前子图片,而不考虑相邻子图片。
[0489]
4.示例技术和实施例
[0490]
下面的详细列表应当被视为解释一般概念的示例。不应当狭隘地解释这些项。此外,这些项可以以任何方式组合。在下文中,时域滤波器被用于表示要求其它图片中的样点的滤波器。max(x,y)返回x和y中较大的一个。min(x,y)返回x和y中较小的一个。
[0491]
1.在图片中获取时域mv预测器以生成仿射运动候选(例如,构造的仿射merge候选)的位置(称为位置rb)必须在所需的子图片中,假设所需子图片的左上角坐标为(xtl,ytl),所需子图的右下坐标为(xbr,ybr)。
[0492]
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
[0493]
b.在一个示例中,如果具有坐标(x,y)的位置rb在所需的子图片之外,那么时域mv预测器被视为不可用。
[0494]
i.在一个示例中,如果x》xbr,那么位置rb在所需的子图片之外。
[0495]
ii.在一个示例中,如果y》ybr,那么位置rb在所需的子图片之外。
[0496]
iii.在一个示例中,如果x《xtl,那么位置rb在所需的子图片之外。
[0497]
iv.在一个示例中,如果y《ytl,那么位置rb在所需的子图片之外。
[0498]
c.在一个示例中,位置rb,如果在所需的子图片之外,那么使用rb的替换。
[0499]
i.可替代地,此外,替换位置应在所需的子图片中。
[0500]
d.在一个示例中,位置rb被剪裁到所需的子图片中。
[0501]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0502]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0503]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0504]
iv.在一个示例中,y被裁剪为y=max(y,ytl)。
[0505]
e.在一个示例中,位置rb可以是同位图片中当前块的对应块内的右下位置。
[0506]
f.所提出的方法可以被用在要求从不同于当前图片的图片访问运动信息的其它编解码工具。
[0507]
g.在一个示例中,是否应用上述方法(例如,位置rb必须在所需的子图片中(例如,按照1.a和/或1.b中要求的那样做))可以取决于在vps/dps/sps/pps/aps/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0508]
2.在插值过程中未使用的参考中获取整数样点的位置(称为位置s)必须在所需的子图片内,假设所需的子图片的左上角坐标为(xtl,ytl),并且所需的子图片的右下角坐标为(xbr,ybr)。
[0509]
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
[0510]
b.在一个示例中,如果具有坐标(x,y)的位置s在所需的子图片外,那么参考样点
被视为不可用。
[0511]
i.在一个示例中,如果x》xbr,那么位置s在所需的子图片之外。
[0512]
ii.在一个示例中,如果y》ybr,那么位置s在所需的子图片之外。
[0513]
iii.在一个示例中,如果x《xtl,那么位置s在所需的子图片之外。
[0514]
iv.在一个示例中,如果y《ytl,那么位置s在所需的子图片之外。
[0515]
c.在一个示例中,位置s被剪裁到所需的子图片中。
[0516]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0517]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0518]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0519]
iv.在一个示例中,y被裁剪为y=max(y,ytl)。
[0520]
d.在一个示例中,位置s是否必须在所需的子图片中(例如,按照2.a和/或2.b中要求的那样做)可以取决于在vps/dps/sps/pps/aps/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0521]
e.在一个示例中,获取的亮度样点被用于在bdof和/或porf中生成梯度。
[0522]
3.获取重构的亮度样点值的位置(称为位置r)可以在所需的子图片中,假设所需的子图片的左上角坐标为(xtl,ytl)并且所需的子图的右下坐标为(xbr,ybr)。
[0523]
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
[0524]
b.在一个示例中,如果具有坐标(x,y)的位置r在所需的子图片之外,那么参考样点被视为不可用。
[0525]
i.在一个示例中,如果x》xbr,那么位置r在所需的子图片之外。
[0526]
ii.在一个示例中,如果y》ybr,那么位置r在所需的子图片之外。
[0527]
iii.在一个示例中,如果x《xtl,那么位置r在所需的子图片之外。
[0528]
iv.在一个示例中,如果y《ytl,那么位置r在所需的子图片之外。
[0529]
c.在一个示例中,位置r被剪裁到所需的子图片中。
[0530]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0531]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0532]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0533]
iv.在一个示例中,y被裁剪为y=max(y,ytl)。
[0534]
d.在一个示例中,位置r是否必须在所需的子图片中(例如,按照4.a和/或4.b中要求的那样做)可以取决于在vps/dps/sps/pps/aps/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0535]
e.在一个示例中,获取的亮度样点被用于推导lmcs中(一个或多个)色度分量的缩放因子。
[0536]
4.针对bt/tt/qt拆分、bt/tt/qt深度推导和/或cu拆分标志的信令的图片边界检查的位置(称为位置n)必须在所需的子图片中,假设所需的子图片的左上角坐标为(xtl,ytl)并且所需的子图片的右下坐标为(xbr,ybr)。
[0537]
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
[0538]
b.在一个示例中,如果具有坐标(x,y)的位置n在所需的子图片之外,那么参考样点被视为不可用。
[0539]
i.在一个示例中,如果x》xbr,那么位置n在所需的子图片之外。
[0540]
ii.在一个示例中,如果y》ybr,那么位置n在所需的子图片之外。
[0541]
iii.在一个示例中,如果x《xtl,那么位置n在所需的子图片之外。
[0542]
iv.在一个示例中,如果y《ytl,那么位置n在所需的子图片之外。
[0543]
c.在一个示例中,位置n被裁剪到所需的子图片中。
[0544]
i.在一个示例中,x被裁剪为x=min(x,xbr)。
[0545]
ii.在一个示例中,y被裁剪为y=min(y,ybr)。
[0546]
iii.在一个示例中,x被裁剪为x=max(x,xtl)。
[0547]
d.在一个示例中,y被裁剪为y=max(y,ytl)。在一个示例中,位置n是否必须在所需的子图片中(例如,按照5.a和/或5.b中要求的那样做)可以取决于在vps/dps/sps/pps/aps/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[subpicidx],其中subpicidx是覆盖当前块的子图片的子图片索引。
[0548]
5.基于历史的运动矢量预测(hmvp)表可以在解码一个图片中的新子图片之前被重置。
[0549]
a.在一个示例中,用于ibc编解码的hmvp表可以被重置
[0550]
b.在一个示例中,用于帧间编解码的hmvp表可以被重置
[0551]
c.在一个示例中,用于帧内编解码的hmvp表可以被重置
[0552]
6.子图片语法元素可以以n(例如,n=8、32等)个样点为单位来定义。
[0553]
a.在一个示例中,以n个样点为单位的子图片标识符网格的每个元素的宽度。
[0554]
b.在一个示例中,以n个样点为单位的子图片标识符网格的每个元素的高度。
[0555]
c.在一个示例中,n被设置为ctu的宽度和/或高度。
[0556]
7.图片宽度和图片高度的语法元素可以被限制为不小于k(k》=8)。
[0557]
a.在一个示例中,可能需要将图片宽度限制为不小于8。
[0558]
b.在一个示例中,可能需要将图片高度限制为不小于8。
[0559]
8.一致性比特流应满足不允许为一个视频单元(例如,序列)启用子图片编解码和自适应分辨率转换(arc)/动态分辨率转换(drc)/参考图片重采样(rpr)。
[0560]
a.在一个示例中,启用子图片编解码的信令可以处于不允许arc/drc/rpr的条件下。
[0561]
i.在一个示例中,当启用子图片时,诸如subpics_present_flag等于1,该sps对其处于活动状态的所有图片的pic_width_in_luma_samples等于max_width_in_luma_samples。
[0562]
b.可替代地,子图片编解码和arc/drc/rpr两者可以同时为一个视频单元(例如,序列)启用。
[0563]
i.在一个示例中,一致性比特流应满足由于arc/drc/rpr引起的下采样的子图片仍应采用宽度为k个ctu、高度为m个ctu的形式,其中k和m都是整数。
[0564]
ii.在一个示例中,一致性比特流应满足对于不位于图片边界(例如,右边界和/或
底部边界)的子图片,由于arc/drc/rpr引起的下采样的子图片仍应采用宽度为k个ctu、高度为m个ctu的形式,其中k和m均为整数。
[0565]
iii.在一个示例中,ctu尺寸可以基于图片分辨率自适应地改变。
[0566]
1)在一个示例中,可以在sps中信令通知最大ctu尺寸。对于分辨率较低的每个图片,可以相应地基于降低的分辨率改变ctu尺寸。
[0567]
2)在一个示例中,ctu尺寸可以在sps和pps和/或子图片级别中信令通知。
[0568]
9.可以约束语法元素subpic_grid_col_width_minus1和subpic_grid_row_height_minus1。
[0569]
a.在一个示例中,subpic_grid_col_width_minus1必须不大于(或必须小于)t1。
[0570]
b.在一个示例中,subpic_grid_row_height_minus1必须不大于(或必须小于)t2。
[0571]
c.在一个示例中,在一致性比特流中,subpic_grid_col_width_minus1和/或subpic_grid_row_height_minus1必须遵循诸如项目符号3.a或3.b之类的约束。
[0572]
d.在一个示例中,3.a中的t1和/或3.b中的t2可以取决于视频编解码标准的简档/级别/层次。
[0573]
e.在一个示例中,3.a中的t1可以取决于图片宽度。
[0574]
i.例如,t1等于pic_width_max_in_luma_samples/4或pic_width_max_in_luma_samples/4 off。off可以是1、2、-1、-2等。
[0575]
f.在一个示例中,3.b中的t2可以取决于图片宽度。
[0576]
i.例如,t2等于pic_height_max_in_luma_samples/4或pic_height_max_in_luma_samples/4-1 off。off可以是1、2、-1、-2等。
[0577]
10.两个子图片之间的边界必须是两个ctu之间的边界。
[0578]
a.换句话说,ctu不能被多于一个子图片覆盖。
[0579]
b.在一个示例中,subpic_grid_col_width_minus1的单位可以是ctu宽度(诸如32、64、128),而不是vvc中的4。子图片网格宽度应当是(subpic_grid_col_width_minus1 1)*ctu宽度。
[0580]
c.在一个示例中,subpic_grid_col_height_minus1的单位可以是ctu高度(诸如32、64、128),而不是vvc中的4。子图片网格高度应当是(subpic_grid_col_height_minus1 1)*ctu高度。
[0581]
d.在一个示例中,在一致性比特流中,如果应用子图片方法,那么必须满足约束。
[0582]
11.约束子图片的形状必须是矩形。
[0583]
a.在一个示例中,在一致性比特流中,如果应用子图片方法,那么必须满足约束。
[0584]
b.子图片只能包含矩形条带。例如,在一致性比特流中,如果应用子图片方法,那么必须满足约束。
[0585]
12.约束两个子图不能重叠。
[0586]
a.在一个示例中,在一致性比特流中,如果应用子图片方法,那么必须满足约束。
[0587]
b.可替代地,两个子图片可以彼此重叠。
[0588]
13.约束图片中的任何位置必须被一个且仅一个子图片覆盖。
[0589]
a.在一个示例中,在一致性比特流中,如果应用子图片方法,那么必须满足约束。
[0590]
b.可替代地,一个样点可以不属于任何子图片。
[0591]
c.可替代地,一个样点可以属于多于一个子图片。
[0592]
14.可以约束在映射到相同序列中呈现的每个分辨率的sps中定义的子图片应当遵守上面提到的位置和/或尺寸约束。
[0593]
a.在一个示例中,映射到相同序列中呈现的分辨率的sps中定义的子图片的宽度和高度应当是n(诸如8、16、32)个亮度样点的整数倍。
[0594]
b.在一个示例中,可以为某个层定义子图片并且可以将该子图片映射到其它层。
[0595]
i.例如,可以为序列中分辨率最高的层定义子图片。
[0596]
ii.例如,可以为序列中分辨率最低的层定义子图片。
[0597]
iii.可以在sps/vps/pps/条带标头中信令通知为哪一层定义子图片。
[0598]
c.在一个示例中,当同时应用子图片和不同分辨率时,所有分辨率(例如,宽度或/和高度)可以是给定分辨率的整数倍。
[0599]
d.在一个示例中,在sps中定义的子图片的宽度和/或高度可以是ctu尺寸的整数倍(例如,m)。
[0600]
e.可替代地,序列中的子图片和不同分辨率可以同时地不被允许。
[0601]
15.子图片可以只适用于某(一个或多个)层
[0602]
a.在一个示例中,在sps中定义的子图片可以仅适用于序列中具有最高分辨率的层。
[0603]
b.在一个示例中,在sps中定义的子图片可以仅适用于序列中具有最低时域id的层。
[0604]
c.可以通过sps/vps/pps中的一个或多个语法元素来指示可以对哪个(哪些)层应用子图片。
[0605]
d.可以通过sps/vps/pps中的一个或多个语法元素来指示不能对哪个(哪些)层应用子图片。
[0606]
16.在一个示例中,可以在不使用subpic_grid_idx的情况下信令通知子图片的位置和/或维度。
[0607]
a.在一个示例中,可以信令通知子图片的左上位置。
[0608]
b.在一个示例中,可以信令通知子图片的右下位置。
[0609]
c.在一个示例中,可以信令通知子图片的宽度。
[0610]
d.在一个示例中,可以信令通知子图片的高度。
[0611]
17.对于时域滤波器,当对样点执行时域滤波时,只能使用当前样点所属的同一子图片内的样点。所需的样点可以在当前样点所属的同一图片中或者在其它图片中。
[0612]
18.在一个示例中,是否和/或如何应用分割方法(诸如qt、水平bt、垂直bt、水平tt、垂直tt或不拆分等)可以取决于当前块(或分割)是否跨子图片的一个或多个边界。
[0613]
a.在一个示例中,当图片边界被子图片边界替换时,也可以应用vvc中用于分割的图片边界处置方法。
[0614]
b.在一个示例中,是否解析表示分割方法(诸如qt、水平bt、垂直bt、水平tt、垂直tt或不拆分等)的语法元素(例如,标志)可以取决于当前块(或分割)是否跨子图片的一个或多个边界。
[0615]
19.代替将一个图片拆分成多个子图片,其中每个子图片被独立编解码,提出将图
片拆分成子区域的至少两个集合,第一集合包括多个子图片并且第二集合包括所有剩余的样点。
[0616]
a.在一个示例中,第二集合中的样点不在任何子图片中。
[0617]
b.此外,可替代地,可以基于第一集合的信息对第二集合进行编码/解码。
[0618]
c.在一个示例中,可以使用默认值来标记样点/mxk子区域是否属于第二集合。
[0619]
i.在一个示例中,可以将默认值设置为等于(max_subpics_minus1 k),其中k是大于1的整数。
[0620]
ii.可以将默认值指派给subpic_grid_idx[i][j]以指示网格属于第二集合。
[0621]
20.提出语法元素subpic_grid_idx[i][j]不能大于max_subpics_minus1。
[0622]
a.例如,在一致性比特流中的约束是,subpic_grid_idx[i][j]不能大于max_subpics_minus1。
[0623]
b.例如,对subpic_grid_idx[i][j]进行编解码的码字不能大于max_subpics_minus1。
[0624]
21.提出从0到max_subpics_minus1的任何整数必须等于至少一个subpic_grid_idx[i][j]。
[0625]
22.ibc虚拟缓冲区可以在解码一个图片中的新子图片之前被重置。
[0626]
a.在一个示例中,ibc虚拟缓冲区中的所有样点都可以被重置为-1。
[0627]
23.调色板条目列表可以在解码一个图片中的新子图片之前被重置。
[0628]
a.在一个示例中,predictorpalettesize可以在解码一个图片中的新子图片之前被设置为等于0。
[0629]
24.是否信令通知条带的信息(例如,条带的数量和/或条带的范围)可以取决于片的数量和/或砖块的数量。
[0630]
a.在一个示例中,如果图片中的砖块的数量是一,那么num_slices_in_pic_minus1不被信令通知并且被推断为0。
[0631]
b.在一个示例中,如果图片中的砖块的数量是一,那么可以不信令通知条带的信息(例如,条带的数量和/或条带的范围)。
[0632]
c.在一个示例中,如果图片中的砖块的数量是一,那么条带的数量可以被推断为一。并且条带覆盖整个图片。在一个示例中,如果图片中的砖块的数量是一,那么single_brick_per_slice_flag不被信令通知并且被推断为一。
[0633]
i.可替代地,如果图片中的砖块的数量是一,那么single_brick_per_slice_flag必须为一。
[0634]
d.示例性语法设计如下:
[0635][0636][0637]
25.是否信令通知slice_address可以与是否信令通知条带为矩形(例如,rect_slice_flag是等于0还是1)解耦。
[0638]
a.示例性语法设计如下:
[0639]
if([[rect_slice_flag||]]numbricksinpic》1) slice_addressu(v)
[0640]
26.是否信令通知slice_address可以取决于当条带被信令通知为矩形时条带的数量。
[0641][0642]
27.是否信令通知num_bricks_in_slice_minus1可以取决于slice_address和/或图片中的砖块的数量。
[0643]
a.示例性语法设计如下:
[0644][0645]
28.是否信令通知loop_filter_across_bricks_enabled_flag可以取决于片的数量和/或砖块的数量。
[0646]
a.在一个示例中,如果砖块的数量小于2,那么不信令通知loop_filter_across_bricks_enabled_flag。
[0647]
b.示例性语法设计如下:
[0648][0649][0650]
29.图片的所有条带必须覆盖整个图片,这是比特流一致性的要求。
[0651]
a.当条带被信令通知为矩形时必须满足要求(例如,rect_slice_flag等于1)。
[0652]
30.子图片的所有条带必须覆盖整个子图片,这是比特流一致性的要求。
[0653]
a.当条带被信令通知为矩形时必须满足要求(例如,rect_slice_flag等于1)。
[0654]
31.条带不能与多于一个子图片重叠是比特流一致性的要求。
[0655]
32.片不能与多于一个子图片重叠是比特流一致性的要求。
[0656]
33.砖块不能与多于一个子图片重叠是比特流一致性的要求。
[0657]
在下面的讨论中,维度为cw x ch的基本单元块(bub)是矩形区域。例如,bub可以是编解码树块(ctb)。
[0658]
34.在一个示例中,可以信令通知子图片的数量(表示为n)。
[0659]
a.如果使用子图片(例如,subpics_present_flag等于1),那么可以要求一致性比特流是在图片中至少有两个子图片。
[0660]
b.可替代地,可以信令通知n减去d(即,n-d),其中d是整数,诸如0、1或2。
[0661]
c.例如,n-d可以用固定长度编解码例如u(x)进行编解码。
[0662]
i.在一个示例中,x可以是固定的数字,诸如8。
[0663]
ii.在一个示例中,可以在信令通知n-d之前信令通知x或x-dx,其中dx是诸如0、1或2之类的整数。信令通知的x不能大于一致性比特流中的最大值。
[0664]
iii.在一个示例中,可以即时推导x。
[0665]
1)例如,x可以被推导为图片中bub的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0666]
2)m可以被推导为m=ceiling(w/cw)
×
ceiling(h/ch),其中w和h表示图片的宽度和高度,并且cw和ch表示bub的宽度和高度。
[0667]
d.例如,可以用一元码或截断一元码对n-d进行编解码。
[0668]
e.在一个示例中,n-d的允许的最大值可以是固定的数字。
[0669]
i.可替代地,n-d的允许的最大值可以被推导为图片中bub的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0670]
35.在一个示例中,子图片可以通过一个或多个其选择的位置(例如,左上/右上/左下/右下位置)和/或其宽度和/或其高度的指示来信令通知。
[0671]
a.在一个示例中,子图片的左上位置可以以具有cwxch维度的基本单元块(bub)的粒度来信令通知。
[0672]
i.例如,可以信令通知按照子图片左上bub的bub的列索引(表示为col)。
[0673]
1)例如,可以信令通知col-d,其中d是整数,诸如0、1或2。
[0674]
a)可替代地,d可以等于先前编解码的子图片的col,加上d1,其中d1是整数,诸如-1、0或1。
[0675]
b)可以信令通知col-d的符号。
[0676]
ii.例如,可以信令通知按照子图片的左上bub的bub的行索引(表示为row)。
[0677]
1)例如,可以信令通知row-d,其中d是整数,诸如0、1或2。
[0678]
a)可替代地,d可以等于先前编解码的子图片的row,加上d1,其中d1是整数,诸如-1、0或1。
[0679]
b)可以信令通知row-d的符号。
[0680]
iii.上面提到的行/列索引(表示为row)可以以编解码树块(ctb)为单位表示,例如可以将相对于图片的左上位置的x或y坐标除以ctb尺寸并信令通知。
[0681]
iv.在一个示例中,是否信令通知子图片的位置可以取决于子图片索引。
[0682]
1)在一个示例中,对于图片中的第一个子图片,左上位置可以不被信令通知。
[0683]
a)此外,可替代地,左上位置可以被推断为例如(0,0)。
[0684]
2)在一个示例中,对于图片中的最后一个子图片,左上位置可以不被信令通知。
[0685]
a)左上位置可以根据先前信令通知的子图片的信息来推断。
[0686]
b.在一个示例中,子图片的宽度/高度/选择的位置的指示可以用截断一元/截断二元/一元/固定长度/第k个eg编解码(例如,k=0、1,2,3)信令通知。
[0687]
c.在一个示例中,子图片的宽度可以以具有cwxch维度的bub的粒度信令通知。
[0688]
i.例如,可以信令通知子图片中bub的列数(表示为w)。
[0689]
ii.例如,可以信令通知w-d,其中d是整数,诸如0、1或2。
[0690]
1)可替代地,d可以等于先前编解码的子图片的w,加上d1,其中d1是整数,诸如-1、0或1。
[0691]
2)可以信令通知w-d的符号。
[0692]
d.在一个示例中,子图片的高度可以以具有维度cwxch的bub的粒度来信令通知。
[0693]
i.例如,可以信令通知子图片中bub的行数(表示为h)。
[0694]
ii.例如,可以信令通知h-d,其中d是整数,诸如0、1或2。
[0695]
1)可替代地,d可以等于先前编解码的子图片的h,加上d1,其中d1是整数,诸如-1、0或1。
[0696]
2)可以信令通知h-d的符号。
[0697]
e.在一个示例中,col-d可以用固定长度编解码例如u(x)来编解码。
[0698]
i.在一个示例中,x可以是固定的数字,诸如8。
[0699]
ii.在一个示例中可以在信令通知col-d之前信令通知x或x-dx,其中dx是诸如0、1或2之类的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0700]
iii.在一个示例中,可以即时推导x。
[0701]
1)例如,x可以被推导为图片中bub列的总数(表示为m)的函数。例如,x=ceil
(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0702]
2)m可以被推导为m=ceiling(w/cw),其中w表示图片的宽度,并且cw表示bub的宽度。
[0703]
f.在一个示例中,可以用固定长度编解码例如u(x)对row-d进行编解码。
[0704]
i.在一个示例中,x可以是固定的数字,诸如8。
[0705]
ii.在一个示例中,可以在信令通知row-d之前信令通知x或x-dx,其中dx是诸如0、1或2之类的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0706]
iii.在一个示例中,可以即时推导x。
[0707]
1)例如,x可以被推导为图片中bub行的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0708]
2)m可以被推导为m=ceiling(h/ch),其中h表示图片的高度,并且ch表示bub的高度。
[0709]
g.在一个示例中,可以用固定长度编解码(例如u(x))对w-d进行编解码。
[0710]
i.在一个示例中,x可以是固定的数字,诸如8。
[0711]
ii.在一个示例中,可以在信令通知w-d之前信令通知x或x-dx,其中dx是诸如0、1或2之类的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0712]
iii.在一个示例中,可以即时推导x。
[0713]
1)例如,x可以被推导为图片中bub列的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0714]
2)m可以被推导为m=ceiling(w/cw),其中w表示图片的宽度,并且cw表示bub的宽度。
[0715]
h.在一个示例中,可以使用固定长度编解码(例如u(x))对h-d进行编解码。
[0716]
i.在一个示例中,x可以是固定的数字,诸如8。
[0717]
ii.在一个示例中,可以在信令通知h-d之前信令通知x或x-dx,其中dx是诸如0、1或2之类的整数。信令通知的x可以不大于一致性比特流中的最大值。
[0718]
iii.在一个示例中,可以即时推导x。
[0719]
1)例如,x可以被推导为图片中bub行的总数(表示为m)的函数。例如,x=ceil(log2(m d0)) d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0720]
2)m可以被推导为m=ceiling(h/ch),其中h表示图片的高度,并且ch表示bub的高度。
[0721]
i.可以针对所有子图片信令通知col-d和/或row-d。
[0722]
i.可替代地,可以不针对所有子图片信令通知col-d和/或row-d。
[0723]
1)如果子图片的数量少于2(等于1),那么可以不信令通知col-d和/或row-d。
[0724]
2)例如,可以不针对第一子图片(例如,具有等于0的子图片索引(或子图片id))信令通知col-d和/或row-d。
[0725]
a)当未被信令通知时,它们可以被推断为0。
[0726]
3)例如,针对最后一个子图片(例如,具有等于numsubpics-1的子图片索引(或子图片id))可以不信令通知col-d和/或row-d。
[0727]
a)当未被信令通知时,可以根据已信令通知的子图片的位置和维度来推断它们。
[0728]
j.可以针对所有子图片信令通知w-d和/或h-d。
[0729]
i.可替代地,可以不针对所有子图片信令通知w-d和/或h-d。
[0730]
1)如果子图的数量少于2(等于1),那么可以不信令通知w-d和/或h-d。
[0731]
2)例如,可以不针对最后一个子图片(例如,具有等于numsubpics-1的子图片索引(或子图片id))信令通知w-d和/或h-d。
[0732]
a)当未被信令通知时,可以根据已信令通知的子图片的位置和维度来推断它们。
[0733]
k.在上述项目符号中,bub可以是编解码树块(ctb)。
[0734]
36.在一个示例中,子图片的信息应当在已经信令通知ctb尺寸的信息(例如,log2_ctu_size_minus5)之后被信令通知。
[0735]
37.可以不针对每个子图片信令通知subpic_treated_as_pic_flag[i]。代替地,信令通知一个subpic_treated_as_pic_flag以控制子图片是否被视为所有子图片的图片。
[0736]
38.可以不针对每个子图片信令通知loop_filter_across_subpic_enabled_flag[i]。代替地,信令通知一个loop_filter_across_subpic_enabled_flag以控制是否可以针对所有子图片跨子图片应用环路滤波器。
[0737]
39.可以有条件地信令通知subpic_treated_as_pic_flag[i](subpic_treated_as_pic_flag)和/或loop_filter_across_subpic_enabled_flag[i](loop_filter_across_subpic_enabled_flag)。
[0738]
a.在一个示例中,如果子图片的数量小于2(等于1),那么可以不信令通知subpic_treated_as_pic_flag[i]和/或loop_filter_across_subpic_enabled_flag[i]。。
[0739]
40.在使用子图片时可以应用rpr。
[0740]
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}。
[0741]
b.在一个示例中,如果图片a与图片b的分辨率不同,那么图片a的ctb尺寸与图片b的ctb尺寸可以不同。
[0742]
c.在一个示例中,假定维度为saw
×
sah的子图片sa在图片a中,并且维度为sbw
×
sbh的子图片sb在图片b中,sa对应于sb,并且图片a与图片b之间的缩放比率是沿着水平和垂直方向的rw和rh,那么
[0743]
i.saw/sbw或sbw/saw应当等于rw。
[0744]
ii.sah/sbh或sbh/sah应当等于rh。
[0745]
41.当使用子图片时(例如,sub_pics_present_flag为真),可以在条带标头中信令通知子图片索引(或子图片id),并且将条带地址解释为子图片而不是整个图片中的地址。
[0746]
42.如果第一子图片和第二子图片不是同一个子图片,那么要求第一子图片的子图id片必须与第二子图片的子图片id不同。
[0747]
a.在一个示例中,如果i不等于j,那么sps_subpic_id[i]必须不同于sps_subpic_id[j]是一致性比特流中的要求。
[0748]
b.在一个示例中,如果i不等于j,那么pps_subpic_id[i]必须不同于pps_subpic_id[j]是一致性比特流中的要求。
[0749]
c.在一个示例中,如果i不等于j,那么ph_subpic_id[i]必须不同于ph_subpic_id[j]是一致性比特流中的要求。
[0750]
d.在一个示例中,如果i不等于j,那么subpicidlist[i]必须不同于subpicidlist[j]是一致性比特流中的要求。
[0751]
e.在一个示例中,可以信令通知表示为d[i]等于x_subpic_id[i]-x_subpic_id[i-p]的差。
[0752]
i.例如,x可以是sps、pps或ph。
[0753]
ii.例如,p等于1。
[0754]
iii.例如,i》p。
[0755]
iv.例如,d[i]必须大于0。
[0756]
v.例如,可以信令通知d[i]-1。
[0757]
43.提出指定左上ctu的水平位置或垂直位置的语法元素(例如,subpic_ctu_top_left_x或subpic_ctu_top_left_y)的长度可以被推导为ceil(log2(ss))比特,其中ss必须大于0。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0758]
a.在一个示例中,当语法元素指定左上ctu的水平位置(例如,subpic_ctu_top_left_x)时,ss=(pic_width_max_in_luma_samples rr)/ctbsizey。
[0759]
b.在一个示例中,当语法元素指定左上ctu的垂直位置(例如,subpic_ctu_top_left_y)时,ss=(pic_height_max_in_luma_samples rr)/ctbsizey。
[0760]
c.在一个示例中,rr是非零整数,例如ctbsizey-1。
[0761]
44.提出指定子图片的左上ctu的水平位置或垂直位置的语法元素(例如,subpic_ctu_top_left_x或subpic_ctu_top_left_y)的长度可以被推导为ceil(log2(ss))比特,其中ss必须大于0。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0762]
a.在一个示例中,当语法元素指定子图片的左上ctu的水平位置(例如,subpic_ctu_top_left_x)时,ss=(pic_width_max_in_luma_samples rr))/ctbsizey。
[0763]
b.在一个示例中,当语法元素指定子图片的左上ctu的垂直位置(例如,subpic_ctu_top_left_y)时,ss=(pic_height_max_in_luma_samples rr)/ctbsizey。
[0764]
c.在一个示例中,rr是非零整数,诸如ctbsizey-1。
[0765]
45.提出指定子图片的宽度或高度的语法元素(例如,subpic_width_minus1或subpic_height_minus1)的长度的默认值(可以加上偏移量p,诸如1)可以被推导为ceil(log2(ss))-p,其中ss必须大于0。在此,ceil()函数返回大于或等于输入值的最小整数值。
[0766]
a.在一个示例中,当语法元素指定子图片的默认宽度(可以加上偏移量p)(例如,subpic_width_minus1)时,ss=(pic_width_max_in_luma_samples rr)/ctbsizey。
[0767]
b.在一个示例中,当语法元素指定子图片的默认高度(可以加上偏移量p)(例如,subpic_height_minus1)时ss=(pic_height_max_in_luma_samples rr)/ctbsizey。
[0768]
c.在一个示例中,rr是非零整数,诸如ctbsizey-1。
[0769]
46.提出如果确定应当信令通知信息,那么至少在sps、pps和图片标头之一中信令通知子图片的id的信息。
[0770]
a.在一个示例中,如果sps_subpic_id_present_flag等于1,那么sps_subpic_id_signalling_present_flag、pps_subpic_id_signalling_present_flag和ph_subpic_id_signalling_present_flag中的至少一个应当等于1是一致性比特流中的要求。
[0771]
47.提出如果sps、pps和图片标头中的任何一个中都没有信令通知子图id的信息,但确定应当信令通知该信息,那么应当分配默认id。
[0772]
a.在一个示例中,如果sps_subpic_id_signalling_present_flag、pps_subpic_id_signalling_present_flag和ph_subpic_id_signalling_present_flag都等于0并且sps_subpic_id_present_flag等于1,那么subpicidlist[i]应当被设置为等于i p,其中p是偏移量,诸如0。示例性描述如下:
[0773][0774]
48.提出如果在对应的pps中信令通知子图片id的信息,那么不在图片标头中信令通知它们。
[0775]
a.示例性语法设计如下,
[0776][0777]
b.在一个示例中,如果在sps中信令通知子图片id,那么根据在sps中信令通知的子图片id的信息来设置子图片id;否则,如果在pps中信令通知子图片id,那么根据在pps中
信令通知的子图片id的信息来设置子图片id,否则,如果在图片标头中信令通知子图片id,那么根据在图片标头中信令通知的子图片id信息来设置子图片id。示例性描述如下,
[0778][0779]
c.在一个示例中,如果在图片标头中信令通知子图片id,那么根据在图片标头中信令通知的子图片id的信息来设置子图片id;否则,如果在pps中信令通知子图片id,那么根据在pps中信令通知的子图片id的信息设置子图片id,否则,如果在sps中信令通知子图片id,那么根据在sps中信令通知的子图片id的信息来设置子图片id。示例性描述如下,
[0780][0781]
49.提出边缘e上的去方块过程应当取决于在边缘的两侧(表示为p侧和q侧)上是否允许跨子图片边界进行环路滤波(例如,由loop_filter_across_subpic_enabled_flag确定)。p侧表示当前块中的侧,q侧表示相邻块中的侧,其可以属于不同的子图片。在下面的讨论中,假设p侧和q侧属于两个不同的子图片。loop_filter_across_subpic_enabled_flag[p]=0/1意味着不允许/允许跨包含p侧的子图片的子图片边界的环路滤波。loop_filter_across_subpic_enabled_flag[q]=0/1意味着不允许/允许跨包含q侧的子图片的子图片边界的环路滤波。
[0782]
a.在一个示例中,如果loop_filter_across_subpic_enabled_flag[p]等于0或loop_filter_across_subpic_enabled_flag[q]等于0,那么不滤波e。
[0783]
b.在一个示例中,如果loop_filter_across_subpic_enabled_flag[p]等于0并且loop_filter_across_subpic_enabled_flag[q]等于0,那么不滤波e。
[0784]
c.在一个示例中,分开控制是否滤波e的两侧。
[0785]
i.例如,当且仅当loop_filter_across_subpic_enabled_flag[p]等于1时,滤波e的p侧。
[0786]
ii.例如,当且仅当loop_filter_across_subpic_enabled_flag[q]等于1时,滤波e的q侧。
[0787]
50.提出pps中指定用于变换跳过的最大块尺寸的语法元素se(诸如log2_transform_skip_max_size_minus2)的信令/解析应当与sps中的任何语法元素(诸如sps_transform_skip_enabled_flag)解耦。
[0788]
a.示例性语法改变如下:
[0789][0790]
b.可替代地,可以在sps中信令通知se,例如:
[0791][0792]
c.可替代地,可以在图片标头中信令通知se,例如:
[0793][0794]
51.在解码第一块之后是否和/或如何更新hmvp表(或称为list/storage/map等)可以取决于第一块是否用geo编解码。
[0795]
a.在一个示例中,如果第一块是用geo编解码的,那么在对第一块进行解码之后,可以不更新hmvp表。
[0796]
b.在一个示例中,如果第一块是用geo编解码的,那么在对第一块进行解码之后,hmvp表可以被更新。
[0797]
i.在一个示例中,可以用由geo划分的一个分割的运动信息来更新hmvp表。
[0798]
ii.在一个示例中,可以用由geo划分的多个分割的运动信息来更新hmvp表
[0799]
52.在cc-alf中,当前处理单元(例如,由两个alf虚拟边界界定的alf处理单元)之外的亮度样点被排除在对应处理单元中对色度样点的滤波之外。
[0800]
a.当前处理单元外的填充的亮度样点可以被用于滤波对应处理单元中的色度样点。
[0801]
i.本文档中公开的任何填充方法都可以被用于填充亮度样点。
[0802]
b.可替代地,当前处理单元之外的亮度样点可以被用于滤波对应处理单元中的色度样点。
[0803]
5.实施例
[0804]
在以下实施例中,新添加的文本用粗斜体表示,删除的文本用“[[]]”标记。
[0805]
5.1实施例1:对仿射构造的merge候选的子图约束
[0806]
8.5.5.6对构造的仿射控制点运动矢量merge候选的推导过程
[0807]
该过程的输入是:
[0808]-亮度位置(xcb,ycb),指定相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点,
[0809]-两个变量cbwidth和cbheight,指定当前亮度编解码块的宽度和高度,-可用性标志availablea0、availablea1、availablea2、availableb0、availableb1、availableb2、availableb3,
[0810]-样点位置(xnba0、ynba0)、(xnba1、ynba1)、(xnba2、ynba2)、(xnbb0、ynbb0)、(xnbb1、ynbb1)、(xnbb2、ynbb2)和(xnbb3、ynbb3)。
[0811]
该过程的输出是:
[0812]-构造的仿射控制点运动矢量merge候选的可用性标志availableflagconstk,其中k=1..6,
[0813]-参考索引refidxlxconstk,其中k=1..6,x为0或1,
[0814]-预测列表使用标志predflaglxconstk,其中k=1..6,x为0或1,
[0815]-仿射运动模型索引motionmodelidcconstk,其中k=1..6,
[0816]-双向预测权重索引bcwidxconstk,其中k=1..6,
[0817]-构造的仿射控制点运动矢量cpmvlxconstk[cpidx],其中cpidx=0..2,k=1..6,x为0或1。
[0818]

[0819]
第四个(同位的右下角)控制点运动矢量cpmvlxcorner[3]、参考索引refidxlxcorner[3]、预测列表利用标志predflaglxcorner[3]和可用性标志availableflagcorner[3](其中x为0和1)如下推导:
[0820]-用于时域merge候选的参考索引refidxlxcorner[3]设置为等于0,其中x为0或1。
[0821]-变量mvlxcol和availableflaglxcol,其中x为0或1,如下推导:
[0822]-如果slice_temporal_mvp_enabled_flag等于0,那么mvlxcol的两个分量都设置为等于0并且availableflaglxcol设置为等于0。
[0823]-否则(slice_temporal_mvp_enabled_flag等于1),以下适用:
[0824]
xcolbr=xcb cbwidth(8-601)
[0825]
ycolbr=ycb cbheight(8-602)
[0826][0827]-如果ycb》》ctblog2sizey等于ycolbr》》ctblog2sizey,
[0828][0829]-变量colcb指定覆盖由colpic指定的同位图片中的由((xcolbr》》3)《《3,(ycolbr》》3)《《3)给出的经修改的位置的亮度编解码块。
[0830]-亮度位置(xcolcb,ycolcb)被设置为等于相对于由colpic指定的同位图片的左上亮度样点的由colcb指定的同位亮度编解码块的左上样点。
[0831]-用currcb、colcb、(xcolcb,ycolcb)、refidxlxcorner[3]和设置为0的sbflag作为输入调用条款8.5.2.12中指定的同位运动矢量的推导过程,并将输出指派给mvlxcol和
availableflaglxcol。
[0832]-否则,mvlxcol的两个分量都设置为等于0并且availableflaglxcol设置为等于0。
[0833]

[0834]
5.2实施例2:对仿射构造的merge候选的子图片约束
[0835]
8.5.5.6用于构造的仿射控制点运动矢量merge候选的推导过程
[0836]
该过程的输入是:
[0837]-亮度位置(xcb,ycb),指定相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点,
[0838]-两个变量cbwidth和cbheight,指定当前亮度编解码块的宽度和高度,
[0839]-可用性标志availablea0、availablea1、availablea2、availableb0、availableb1、availableb2、availableb3,
[0840]-样点位置(xnba0、ynba0)、(xnba1、ynba1)、(xnba2、ynba2)、(xnbb0、ynbb0)、(xnbb1、ynbb1)、(xnbb2、ynbb2)和(xnbb3、ynbb3)。
[0841]
该过程的输出是:
[0842]-构造的仿射控制点运动矢量merge候选的可用性标志availableflagconstk,其中k=1..6,
[0843]-参考索引refidxlxconstk,其中k=1..6,x为0或1,
[0844]-预测列表使用标志predflaglxconstk,其中k=1..6,x为0或1,
[0845]-仿射运动模型索引motionmodelidcconstk,其中k=1..6,
[0846]-双向预测权重索引bcwidxconstk,其中k=1..6,
[0847]-构造的仿射控制点运动矢量cpmvlxconstk[cpidx],其中cpidx=0..2,k=1..6,x为0或1。
[0848]

[0849]
第四个(同位的右下角)控制点运动矢量cpmvlxcorner[3]、参考索引refidxlxcorner[3]、预测列表利用标志predflaglxcorner[3]和可用性标志availableflagcorner[3](其中x为0和1)如下推导:
[0850]-用于时域merge候选的参考索引refidxlxcorner[3]设置为等于0,其中x为0或1。
[0851]-变量mvlxcol和availableflaglxcol,其中x为0或1,如下推导:
[0852]-如果slice_temporal_mvp_enabled_flag等于0,那么mvlxcol的两个分量都设置为等于0并且availableflaglxcol设置为等于0。
[0853]-否则(slice_temporal_mvp_enabled_flag等于1),以下适用:
[0854]
xcolbr=xcb cbwidth
ꢀꢀ
(8-601)
[0855]
ycolbr=ycb cbheight
ꢀꢀ
(8-602)
[0856][0857]-如果ycb》》ctblog2sizey等于ycolbr》》ctblog2sizey,[[ycolbr小于pic_height_in_luma_samples并且xcolbr小于pic_width_in_luma_samples,那么以下适用]]:
[0858]-变量colcb指定覆盖由colpic指定的同位图片中的由((xcolbr》》3)《《3,(ycolbr》》3)《《3)给出的经修改的位置的亮度编解码块。
[0859]-亮度位置(xcolcb,ycolcb)被设置为等于相对于由colpic指定的同位图片的左上亮度样点的由colcb指定的同位亮度编解码块的左上样点。
[0860]-用currcb、colcb、(xcolcb,ycolcb)、refidxlxcorner[3]和设置为0的sbflag作为输入调用条款8.5.2.12中指定的同位运动矢量的推导过程,并将输出指派给mvlxcol和availableflaglxcol。
[0861]-否则,mvlxcol的两个分量都设置为等于0并且availableflaglxcol设置为等于0。
[0862]

[0863]
5.3实施例3:子图片约束下获取整数样点
[0864]
8.5.6.3.3亮度整数样点获取过程
[0865]
该过程的输入是:
[0866]-以全样点为单位的亮度位置(xint
l
,yint
l
),
[0867]-亮度参考样点阵列refpiclx
l

[0868]
该过程的输出是预测的亮度样点值predsamplelx
l
[0869]
变量shift被设置为等于max(2,14-bitdepthy)。
[0870]
变量picw被设置为等于pic_width_in_luma_samples并且变量pich被设置为等于pic_height_in_luma_samples。
[0871]
以全样点为单位的亮度位置(xint,yint)如下推导:
[0872][0873][0874]
yint=clip3(0,pich-1,yint
l
)
ꢀꢀ
(8-783)
[0875]
预测的亮度样点值predsamplelx
l
如下推导:
[0876]
predsamplelx
l
=refpiclx
l
[xint][yint]《《shift3
ꢀꢀ
(8-784)
[0877]
5.4实施例4:推导lmcs的色度残差缩放中的变量invavgluma
[0878]
8.7.5.3对色度样点进行亮度依赖的色度残差缩放过程的图片重构
[0879]
该过程的输入是:
[0880]

相对于当前图片的左上色度样点的当前色度变换块的左上色度样点的色度位置(xcurr,ycurr),
[0881]

变量ncurrsw,指定色度变换块宽度,
[0882]

变量ncurrsh,指定色度变换块高度,
[0883]

变量tucbfchroma,指定当前色度变换块的编解码的块标志,
[0884]

(ncurrsw)x(ncurrsh)阵列predsamples,指定当前块的色度预测样点,
[0885]

(ncurrsw)x(ncurrsh)阵列ressamples,指定当前块的色度残差样点,该过程的输出是重构的色度图像样点阵列recsamples。
[0886]
变量sizey被设置为等于min(ctbsizey,64)。
[0887]
对于i=0..ncurrsw-1,j=0..ncurrsh-1,重构的色度图片样点recsamples如下推导:
[0888]
–…
[0889]

否则,以下适用:
[0890]
–…
[0891]

变量currpic指定当前图片中重构的亮度样点的阵列。
[0892]

对于变量varscale的推导,以下有序步骤适用:
[0893]
1.变量invavgluma如下推导:
[0894]

阵列recluma[i](其中i=0..(2*sizey-1))和变量cnt如下推导:
[0895]

变量cnt被设置为等于0。
[0896][0897]

当availl等于true时,阵列recluma[i](其中i=0..sizey-1)被设置为等于1)被设置为等于(其中i=0..sizey-1),并且cnt被设置为等于sizey
[0898]

当availt等于true时,阵列recluma[cnt i](其中i=0..sizey-1)被设置为等于1)被设置为等于(其中i=0..sizey-1),并且cnt被设置为(cnt sizey)
[0899]

变量invavgluma如下推导:
[0900]

如果cnt大于0,那么以下适用:
[0901][0902]

否则(cnt等于0),以下适用:
[0903]
invavgluma=1《《(bitdepthy

1)
ꢀꢀ
(8-1014)
[0904]
5.5实施例5:以n(诸如n=8或32)个样点而不是4个样点为单位定
[0905]
义子图片元素的示例
[0906]
7.4.3.3序列参数集rbsp语义
[0907]
subpic_grid_col_width_minus1加1指定子图片标识符网格的每个元素的宽度,以个样点为单位。语法元素的长度是比特。
[0908]
变量numsubpicgridcols如下推导:
[0909][0910]
subpic_grid_row_height_minus1加1指定以4个样点为单位的子图片标识符网格的每个元素的高度。语法元素的长度是比特。
[0911]
变量numsubpicgridrows如下推导:
[0912][0913]
7.4.7.1通用条带标头语义
[0914]
变量subpicidx、subpicleftboundarypos、subpictopboundarypos、subpicrightboundarypos和subpicbotboundarypos如下推导:
[0915][0916]
5.6实施例6:将图片宽度和图片高度限制为等于或大于8
[0917]
7.4.3.3序列参数集rbsp语义
[0918]
pic_width_max_in_luma_samples指定以亮度样点为单位的参考sps的每个解码
的图片的最大宽度。pic_width_max_in_luma_samples不应等于0,并且应是的整数倍。
[0919]
pic_height_max_in_luma_samples指定以亮度样点为单位的参考sps的每个解码d图片的最大高度。pic_height_max_in_luma_samples不应等于0,并且应是的整数倍。
[0920]
5.7实施例7:针对bt/tt/qt拆分、bt/tt/qt深度推导和/或cu拆分标志的信令的子图片边界检查
[0921]
6.4.2允许的二元拆分过程
[0922]
变量allowbtsplit如下推导:
[0923]
–…
[0924]

否则,如果以下所有条件都为真,那么将allowbtsplit设置为等于false
[0925]

btsplit等于split_bt_ver
[0926]

y0 cbheight大于
[0927]

否则,如果以下所有条件都为真,那么将allowbtsplit设置为等于false
[0928]

btsplit等于split_bt_ver
[0929]

cbheight大于maxtbsizey
[0930]

x0 cbwidth大于x0 cbwidth大于
[0931]

否则,如果以下所有条件都为真,那么将allowbtsplit设置为等于false
[0932]

btsplit等于split_bt_hor
[0933]

cbwidth大于maxtbsizey
[0934]

y0 cbheight大于y0 cbheight大于
[0935]

否则,如果以下所有条件都为真,那么将allowbtsplit设置为等于false
[0936]

x0 cbwidth大于x0 cbwidth大于
[0937]

y0 cbheight大于y0 cbheight大于
[0938]

cbwidth大于minqtsize
[0939]

否则,如果以下所有条件都为真,那么将allowbtsplit设置为等于false
[0940]

btsplit等于split_bt_hor
[0941]

x0 cbwidth大于x0 cbwidth大于
[0942]

y0 cbheight小于或等于y0 cbheight小于或等于
[0943]
6.4.2允许的三元拆分过程
[0944]
变量allowttsplit如下推导:
[0945]

如果以下条件当中的一个或多个为真,那么将allowttsplit设置为等于false:
[0946]

cbsize小于或等于2*minttsizey
[0947]

cbwidth大于min(maxtbsizey,maxttsize)
[0948]

cbheight大于min(maxtbsizey,maxttsize)
[0949]

mttdepth大于或等于maxmttdepth
[0950]

x0 cbwidth大于x0 cbwidth大于
[0951]

y0 cbheight大于y0 cbheight大于
[0952]

treetype等于dual_tree_chroma并且(cbwidth/subwidthc)*(cbheight/subheightc)小于等于32
[0953]

treetype等于dual_tree_chroma并且modetype等于mode_type_intra
[0954]

否则,allowttsplit被设置为等于true。
[0955]
7.3.8.2编解码树单元语法
[0956][0957]
7.3.8.4编解码树语法
[0958][0959]
5.8实施例8:定义子图片的示例
[0960][0961]
5.9实施例9:定义子图片的示例
[0962]
[0963][0964]
5.10实施例10:定义子图片的示例
[0965]
[0966][0967]
5.11实施例11:定义子图片的示例
[0968]
[0969][0970][0971]
5.12实施例:考虑子图片的去方块
[0972]
去方块滤波器过程
[0973]
一般
[0974]
该过程的输入是去方块之前的重构的图片,即,阵列recpicture
l
,并且当chromaarraytype不等于0时,还有阵列recpicture
cb
和recpicture
cr

[0975]
该过程的输出是去方块之后经修改的重构的图片,即,阵列recpicture
l
,并且当chromaarraytype不等于0时,还有阵列recpicture
cb
和recpicture
cr
。首先滤波图片中的垂直边缘。然后用通过垂直边缘滤波过程修改的样点作为输入来滤波图片中的水平边缘。每个ctu的ctb中的垂直和水平边缘在编解码单元的基础上被分开处理。对编解码单元中编解码块的垂直边缘进行滤波,从编解码块左手侧的边缘开始,按照其几何次序通过边缘朝着编解码块的右手侧前进。对编解码单元中编解码块的水平边缘进行滤波,从编解码块顶部
(8-1011)
[1003]
对于每个编解码单元和由颜色分量索引cidx(范围从firstcompidx到lastcompidx,含端点)指示的编解码单元的每个颜色分量的每个编解码块,其中编解码块宽度为ncbw,编解码块高度为ncbh并且编解码块的左上样点的位置是(xcb,ycb),当cidx等于0时,或者当cidx不等于0并且edgetype等于edge_ver并且xcb%8等于0时,或者当cidx不等于0并且edgetype等于edge_hor并且ycb%8等于0时,边缘通过以下有序步骤被滤波:
[1004]
2.变量filteredgeflag如下推导:
[1005]

如果edgetype等于edge_ver并且以下条件当中的一个或多个为真,那么filteredgeflag设置为等于0:
[1006]-当前编解码块的左边界是图片的左边界。
[1007]-[[当前编解码块的左边界是子图片的左或右边界并且loop_filter_across_subpic_enabled_flag[subpicidx]等于0。]]
[1008]-当前编解码块的左边界是片的左边界并且loop_filter_across_tiles_enabled_flag等于0。
[1009]-当前编解码块的左边界是条带的左边界并且loop_filter_across_slices_enabled_flag等于0。
[1010]-当前编解码块的左边界是图片的垂直虚拟边界之一并且virtualboundariesdisabledflag等于1。
[1011]

否则,如果edgetype等于edge_hor并且以下条件当中的一个或多个为真,那么将变量filteredgeflag设置为等于0:
[1012]-当前亮度编解码块的顶部边界是图片的顶部边界。
[1013]-[[当前编解码块的顶部边界是子图片的顶部边界或底部边界并且loop_filter_across_subpic_enabled_flag[subpicidx]等于0。]]
[1014]-当前编解码块的顶部边界是片的顶部边界并且loop_filter_across_tiles_enabled_flag等于0。
[1015]-当前编解码块的顶部边界是条带的顶部边界并且loop_filter_across_slices_enabled_flag等于0。
[1016]-当前编解码块的顶部边界是图片的水平虚拟边界之一并且virtualboundariesdisabledflag等于1。
[1017]

否则,filteredgeflag被设置为等于1。
[1018]

[1019]
使用短滤波器对亮度样点的滤波过程
[1020]
该过程的输入是:
[1021]

样点值pi和qi,其中i=0..3,
[1022]

pi和qi的位置,(xpi,ypi)和(xqi,yqi),其中i=0..2,
[1023]

变量de,
[1024]

变量dep和deq,分别包含对滤波样点p1和q1的决定,
[1025]

变量tc。
[1026]
该过程的输出是:
[1027]

经滤波的样点的数量ndp和ndq,
[1028]

经滤波的样点值pi'和qj',其中i=0..ndp-1,j=0..ndq-1。
[1029]
取决于de的值,以下适用:
[1030]

如果变量de等于2,那么ndp和ndq两者都被设置为等于3,并且以下强滤波适用:
[1031]
p0′
=clip3(p
0-3*tc,p0 3*tc,(p2 2*p1 2*p0 2*q0 q1 4)》》3)
ꢀꢀ
(8-1150)
[1032]
p1′
=clip3(p
1-2*tc,p1 2*tc,(p2 p1 p0 q0 2)》》2)
ꢀꢀ
(8-1151)
[1033]
p2′
=clip3(p
2-1*tc,p2 1*tc,(2*p3 3*p2 p1 p0 q0 4)》》3)
ꢀꢀ
(8-1152)
[1034]
q0′
=clip3(q
0-3*tc,q0 3*tc,(p1 2*p0 2*q0 2*q1 q2 4)》》3)
ꢀꢀ
(8-1153)
[1035]
q1′
=clip3(q
1-2*tc,q1 2*tc,(p0 q0 q1 q2 2)》》2)
ꢀꢀ
(8-1154)
[1036]
q2′
=clip3(q
2-1*tc,q2 1*tc,(p0 q0 q1 3*q2 2*q3 4)》》3)
ꢀꢀ
(8-1155)
[1037]

否则,ndp和ndq两者都被设置为等于0并且以下弱滤波适用:
[1038]

以下适用:
[1039]
δ=(9*(q
0-p0)-3*(q
1-p1) 8)》》4
ꢀꢀ
(8-1156)
[1040]

当abs(δ)小于tc*10时,以下有序步骤适用:
[1041]

经滤波的样点值p0'和q0'指定如下:
[1042]
δ=clip3(-tc,tc,δ)
ꢀꢀ
(8-1157)
[1043]
p0′
=clip1(p0 δ)
ꢀꢀ
(8-1158)
[1044]
q0′
=clip1(q
0-δ)
ꢀꢀ
(8-1159)
[1045]

当dep等于1时,经滤波的样点值p1'指定如下:
[1046]
δp=clip3(-(tc》》1),tc》》1,(((p2 p0 1)》》1)-p1 δ)》》1)(8-1160)
[1047]
p1′
=clip1(p1 δp)
ꢀꢀ
(8-1161)
[1048]

当deq等于1时,经滤波的样点值q1'指定如下:
[1049]
δq=clip3(-(tc》》1),tc》》1,(((q2 q0 1)》》1)-q
1-δ)》》1)(8-1162)
[1050]
q1′
=clip1(q1 δq)
ꢀꢀ
(8-1163)
[1051]

ndp被设置为等于dep 1并且ndq被设置为等于deq 1。
[1052]
当ndp大于0并且包括包含样点p0的编解码块的编解码单元的pred_mode_plt_flag等于1时,ndp被设置为等于0
[1053]
当ndq大于0并且包括包含样点q0的编解码块的编解码单元的pred_mode_plt_flag等于1时,ndq被设置为等于0
[1054][1055]
使用长滤波器对亮度样点进行滤波处理
[1056]
该过程的输入是:
[1057]

变量maxfilterlengthp和maxfilterlengthq,
[1058]

样点值pi和qj,其中i=0..maxfilterlengthp且j=0..maxfilterlengthq,

pi和qj的位置(xpi,ypi)和(xqj,yqj),其中i=0..maxfilterlengthp-1且j=0..maxfilterlengthq-1,
[1059]

变量tc。
[1060]
该过程的输出是:
[1061]

经滤波的样点值pi'和qj',其中i=0..maxfilterlengthp-1,j=0..maxfilterlenghtq-1。
[1062]
变量refmiddle如下推导:
[1063]

如果maxfilterlengthp等于maxfilterlengthq并且maxfilterlengthp等于5,那么以下适用:
[1064]
refmiddle=(p4 p3 2*(p2 p1 p0 q0 q1 q2) q3 q4 8)》》4(8-1164)
[1065]

否则,如果maxfilterlengthp等于maxfilterlengthq并且maxfilterlengthp不等于5,那么以下适用:
[1066]
refmiddle=(p6 p5 p4 p3 p2 p1 2*(p0 q0) q1 q2 q3 q4 q5 q6 8)》》4(8-1165)
[1067]

否则,如果下列条件之一为真,
[1068]

maxfilterlengthq等于7并且maxfilterlengthp等于5,
[1069]

maxfilterlengthq等于5并且maxfilterlengthp等于7,
[1070]
那么以下适用:
[1071]
refmiddle=(p5 p4 p3 p2 2*(p1 p0 q0 q1) q2 q3 q4 q5 8)》》4(8-1166)
[1072]

否则,如果下列条件之一为真,
[1073]

maxfilterlengthq等于5,maxfilterlengthp等于3,
[1074]

maxfilterlengthq等于3,maxfilterlengthp等于5,
[1075]
那么以下适用:
[1076]
refmiddle=(p3 p2 p1 p0 q0 q1 q2 q3 4)》》3(8-1167)
[1077]

否则,如果maxfilterlengthq等于7并且maxfilterlengthp等于3,那么以下适用:
[1078]
refmiddle=(2*(p2 p1 p0 q0) p0 p1 q1 q2 q3 q4 q5 q6 8)》》4(8-1168)
[1079]

否则,以下适用:
[1080]
refmiddle=(p6 p5 p4 p3 p2 p1 2*(q2 q1 q0 p0) q0 q1 8)》》4(8-1169)
[1081]
变量refp和refq如下推导:
[1082]
refp=(p
maxfilterlengtp
p
maxfilterlengthp-1
1)》》1(8-1179)
[1083]
refq=(q
maxfilterlengtq
q
maxfilterlengthq-1
1)》》1(8-1171)变量fi和tcpdi定义如下:
[1084]

如果maxfilterlengthp等于7,那么以下适用:
[1085]f0..6
={59,50,41,32,23,14,5}(8-1172)
[1086]
tcpd
0..6
={6,5,4,3,2,1,1}(8-1173)
[1087]

否则,如果maxfilterlengthp等于5,那么以下适用:
[1088]f0..4
={58,45,32,19,6}(8-1174)
[1089]
tcpd
0..4
={6,5,4,3,2}(8-1175)
[1090]

否则,以下适用:
[1091]f0..2
={53,32,11}(8-1176)
[1092]
tcpd
0..2
={6,4,2}(8-1177)
[1093]
变量gj和tcqdj定义如下:
[1094]

如果maxfilterlengthq等于7,那么以下适用:
[1095]g0..6
={59,50,41,32,23,14,5}(8-1178)
[1096]
tcqd
0..6
={6,5,4,3,2,1,1}(8-1179)
[1097]

否则,如果maxfilterlengthq等于5,那么以下适用:
[1098]g0..4
={58,45,32,19,6}(8-1180)
[1099]
tcqd
0..4
={6,5,4,3,2}(8-1181)
[1100]

否则,以下适用:
[1101]g0..2
={53,32,11}(8-1182)
[1102]
tcqd
0..2
={6,4,2}(8-1183)
[1103]
经滤波的样点值pi'和qj'(其中i=0..maxfilterlengthp-1和j=0..maxfilterlengthq-1)如下推导:
[1104]
pi′
=clip3(p
i-(tc*tcpdi)》》1,pi (tc*tcpdi)》》1,(refmiddle*fi refp*(64-fi) 32)》》6)(8-1184)
[1105]
qj′
=clip3(q
j-(tc*tcqdj)》》1,qj (tc*tcqdj)》》1,(refmiddle*gj refq*(64-gj) 32)》》6)(8-1185)
[1106]
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,经滤波的样点值pi'被对应的输入样点值pi替换,其中i=0..maxfilterlengthp-1。
[1107]
当包括包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,经滤波的样点值qi'被对应的输入样点值qj替换,其中j=0..maxfilterlengthq-1。
[1108][1109][1110]
仅当chromaarraytype不等于0时才调用该过程。
[1111]
该过程的输入是:
[1112]

变量maxfilterlength,
[1113]

色度样点值pi和qi,其中i=0..maxfilterlengthcbcr
[1114]

pi和qi的色度位置(xpi,ypi)和(xqi,yqi),其中i=0..maxfilterlengthcbcr-1,
[1115]

变量tc。
[1116]
该过程的输出是经滤波的样点值pi'和qi',其中i=0..maxfilterlengthcbcr-1。经滤波的样点值pi'和qi'(其中i=0..maxfilterlengthcbcr-1)如下推导:
[1117]

如果maxfilterlengthcbcr等于3,那么以下强滤波适用:
[1118]
p0′
=clip3(p
0-tc,p0 tc,(p3 p2 p1 2*p0 q0 q1 q2 4)》》3)(8-1186)
[1119]
p1′
=clip3(p
1-tc,p1 tc,(2*p3 p2 2*p1 p0 q0 q1 4)》》3)(8-1187)
[1120]
p2′
=clip3(p
2-tc,p2 tc,(3*p3 2*p2 p1 p0 q0 4)》》3)(8-1188)
[1121]
q0′
=clip3(q
0-tc,q0 tc,(p2 p1 p0 2*q0 q1 q2 q3 4)》》3)(8-1189)
[1122]
q1′
=clip3(q
1-tc,q1 tc,(p1 p0 q0 2*q1 q2 2*q3 4)》》3)(8-1190)
[1123]
q2′
=clip3(q
2-tc,q2 tc,(p0 q0 q1 2*q2 3*q3 4)》》3)(8-1191)
[1124]

否则,以下弱滤波适用:
[1125]
δ=clip3(-tc,tc,((((q
0-p0)《《2) p
1-q1 4)》》3))(8-1192)
[1126]
p0′
=clip1(p0 δ)(8-1193)
[1127]
q0′
=clip1(q
0-δ)(8-1194)
[1128]
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,经滤波的样点值pi'被对应的输入样点值pi替换,其中i=0..maxfilterlengthcbcr-1。
[1129]
当包含包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,经滤波的样点值qi'被对应的输入样点值qi替换,其中i=0..maxfilterlengthcbcr-1:
[1130][1131][1132]
图3是视频处理装置300的框图。装置300可以用于实现本文描述的方法中的一种或多种。装置300可以体现在智能电话、平板电脑、计算机、物联网(iot)接收器等中。装置300可以包括一个或多个处理器312、一个或多个存储器314和视频处理硬件316。(一个或多个)处理器312可以被配置为实现本文档中描述的一种或多种方法。存储器(多个存储器)314可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件316可以被用于在硬件电路中实现本文档中描述的一些技术。
[1133]
图4是处理视频的方法400的流程图。方法400包括针对视频的第一视频区域中的视频块,确定(402)使用仿射模式为视频块与当前视频块的比特流表示之间的转换确定时域运动矢量预测器的位置是否在第二视频区域内,并且基于该确定执行(404)转换。
[1134]
在一些实施例中,以下方案可以作为优选方案来实现。
[1135]
以下解决方案可以与上一节中列出的项(例如,项1)中描述的附加技术一起实现。
[1136]
1.一种视频处理的方法,包括:针对视频的第一视频区域中的视频块确定(402)使用仿射模式为视频块和当前视频块的比特流表示之间的转换确定时域运动矢量预测器的位置是否是在第二视频区域内;以及基于该确定执行转换。
[1137]
2.如解决方案1所述的方法,其中视频块被第一区域和第二区域覆盖。
[1138]
3.如解决方案1-2中的任一项所述的方法,其中,如果时域运动矢量预测器的位置在第二视频区域之外,那么时域运动矢量预测器被标记为不可用并且在转换中不使用。
[1139]
以下解决方案可以与在前一节中列出的项(例如,项2)中描述的附加技术一起实
现。
[1140]
4.一种视频处理的方法,包括:针对视频的第一视频区域中的视频块,确定为视频块与当前视频块的比特流表示之间的转换获取参考图片中的整数样点的位置是否在第二视频区域内,其中参考图片在转换期间不被用于插值过程;以及基于该确定执行转换。
[1141]
5.如解决方案4所述的方法,其中视频块被第一区域和第二区域覆盖。
[1142]
6.如解决方案4-5中的任一项所述的方法,其中,如果样点的位置在第二视频区域之外,那么将该样点标记为不可用并且在转换中不使用。
[1143]
以下解决方案可以与在前一节中列出的项(例如,项3)中描述的附加技术一起实现。
[1144]
7.一种视频处理的方法,包括:针对视频的第一视频区域中的视频块,确定为视频块与当前视频块的比特流表示之间的转换获取重构的亮度样点值的位置是否在第二视频区域内;以及基于该确定执行转换。
[1145]
8.如解决方案7所述的方法,其中亮度样点被第一区域和第二区域覆盖。
[1146]
9.如解决方案7-8中的任一项所述的方法,其中,如果亮度样点的位置在第二视频区域之外,那么将亮度样点标记为不可用并且在转换中不使用。
[1147]
以下解决方案可以与在前一节中列出的项(例如,项4)中描述的附加技术一起实现。
[1148]
10.一种视频处理的方法,包括:针对视频的第一视频区域中的视频块,确定在视频块与当前视频块的比特流表示之间的转换期间执行针对该视频块的关于拆分、深度推导或拆分标志信令的检查的位置是否在第二视频区域内;以及基于该确定执行转换。
[1149]
11.如解决方案10所述的方法,其中该位置被第一区域和第二区域覆盖。
[1150]
12.如解决方案10-11中的任一项所述的方法,其中,如果该位置在第二视频区域之外,那么将亮度样点标记为不可用并且在转换中不使用。
[1151]
以下解决方案可以与在前一节中列出的项(例如,项8)中描述的附加技术一起实现。
[1152]
13.一种视频处理的方法,包括:执行包括包含一个或多个视频块的一个或多个视频图片的视频与该视频的编解码的表示之间的转换,其中编解码的表示符合该转换在视频单元内不使用子图片编码/解码和动态分辨率转换编码/解码工具或参考图片重采样工具的编解码的语法要求。
[1153]
14.如解决方案13所述的方法,其中视频单元与所述一个或多个视频图片的序列对应。
[1154]
15.如解决方案13-14中的任一项所述的方法,其中动态分辨率转换编码/解码工具包括自适应分辨率转换编码/解码工具。
[1155]
16.如解决方案13-14中的任一项所述的方法,其中动态分辨率转换编码/解码工具包括动态分辨率转换编码/解码工具。
[1156]
17.如解决方案13-16中的任一项所述的方法,其中编解码的表示指示视频单元符合编解码语法要求。
[1157]
18.如解决方案17所述的方法,其中编解码的表示指示视频单元使用子图片编解码。
[1158]
19.如解决方案17所述的方法,其中编解码的表示指示视频单元使用动态分辨率转换编码/解码工具或参考图片重采样工具。
[1159]
以下解决方案可以与在前一节中列出的项(例如,项10)中描述的附加技术一起实现。
[1160]
20.如解决方案1-19中的任一项所述的方法,其中第二视频区域包括视频子图片,并且其中第二视频区域与另一个视频区域的边界也是两个编解码树单元之间的边界。
[1161]
21.如解决方案1-19中的任一项所述的方法,其中第二视频区域包括视频子图片,并且其中第二视频区域与另一个视频区域的边界也是两个编解码树单元之间的边界。
[1162]
以下解决方案可以与在前一节中列出的项(例如,项11)中描述的附加技术一起实现。
[1163]
22.如解决方案1-21中的任一项所述的方法,其中第一视频区域和第二视频区域具有矩形形状。
[1164]
以下解决方案可以与在前一节中列出的项(例如,项12)中描述的附加技术一起实现。
[1165]
23.如解决方案1-22中的任一项所述的方法,其中第一视频区域和第二视频区域不重叠。
[1166]
以下解决方案可以与在前一节中列出的项(例如,项13)中描述的附加技术一起实现。
[1167]
24.如解决方案1-23中的任一项所述的方法,其中视频图片被划分为视频区域,使得视频图片中的像素被一个且仅一个视频区域覆盖。
[1168]
以下解决方案可以与在前一节中列出的项(例如,项15)中描述的附加技术一起实现。
[1169]
25.如解决方案1-24中的任一项所述的方法,其中,由于视频图片位于视频序列的特定层中,视频图片被拆分为第一视频区域和第二视频区域。
[1170]
以下解决方案可以与在前一节中列出的项(例如,项10)中描述的附加技术一起实现。
[1171]
26.一种视频处理方法,包括:执行包括包含一个或多个视频块的一个或多个视频图片的视频与该视频的编解码的表示之间的转换,其中该编解码的表示符合第一语法元素subpic_grid_idx[i][j]不大于第二语法元素max_subpics_minus1的编解码语法要求。
[1172]
27.如解决方案26所述的方法,其中表示第一语法元素的码字不大于表示第二语法元素的码字。
[1173]
28.如解决方案1-27中的任一项所述的方法,其中第一视频区域包括视频子图片。
[1174]
29.如解决方案1-28中的任一项所述的方法,其中第二视频区域包括视频子图片。
[1175]
30.如解决方案1至29中的任一项所述的方法,其中转换包括将视频编码为编解码的表示。
[1176]
31.如解决方案1至29中的任一项所述的方法,其中转换包括对编解码的表示进行解码以生成视频的像素值。
[1177]
32.一种视频解码装置,包括被配置为实现解决方案1至31中的一个或多个所述的方法的处理器。
[1178]
33.一种视频编码装置,包括被配置为实现解决方案1至31中的一个或多个所述的方法的处理器。
[1179]
34.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实现解决方案1至31中的任一项所述的方法。
[1180]
35.本文档中描述的方法、装置或系统。
[1181]
图8是示出示例视频处理系统800的框图,其中可以实现本文公开的各种技术。各种实施方式可以包括系统800的组件中的一些或所有。系统800可以包括用于接收视频内容的输入802。可以以原始或未压缩的格式(例如,8或10比特多分量像素值)接收视频内容,或者可以以压缩或编码的格式接收视频内容。输入802可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等的有线接口,以及诸如wi-fi或蜂窝接口之类的无线接口。
[1182]
系统800可以包括编解码组件804,其可以实现本文档中描述的各种解码或编码方法。编解码组件804可以降低从输入802到编解码组件804的输出以产生视频的编解码的表示的视频的平均比特速率。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件804的输出可以或者被存储,或者经由连接的通信被传输,如由组件806所表示的。在输入802处接收到的视频的存储的或传送的比特流(或编解码的)表示可以由组件使用808以生成像素值或被发送到显示接口810的可显示视频。从比特流表示生成用户可观看视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将认识到的是,编码工具或操作在编码器处使用,并且反转编解码的结果的对应解码工具或操作将由解码器执行。
[1183]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或能够执行数字数据处理和/或视频显示的其它设备。
[1184]
图9是图示可以利用本公开的技术的示例视频编解码系统100的框图。
[1185]
如图9中所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成编码的视频数据,其可以被称为视频编码设备。目的地设备120可以解码由源设备110生成的编码的视频数据,其可以被称为视频解码设备。
[1186]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[1187]
视频源112可以包括诸如视频捕获设备、用于从视频内容提供者接收视频数据的接口、和/或用于生成视频数据的计算机图形系统之类的源,或此类源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码的表示的比特序列。比特流可以包括编解码的图片和相关联的数据。编解码的图片是图片的编解码的表示。相关联的数据可以包括序列参数集、图片参数集和其它语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发送器。编码的视频数据可以通过网络130a经由i/o接口116直接被传输到目的地设备120。编码的视频数据也可以存储在存储介质/服务器130b上以供目的地设备120访问。
[1188]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[1189]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存
储介质/服务器130b获取编码的视频数据。视频解码器124可以解码该编码的视频数据。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目的地设备120集成,或者可以在被配置为与外部显示设备接口的目的地设备120的外部。
[1190]
视频编码器114和视频解码器124可以根据视频压缩标准(诸如高效视频编解码(hevc)标准、多功能视频编解码(vvc)标准以及其它当前和/或进一步的标准)操作。
[1191]
图10是图示视频编码器200的示例的框图,其可以是图9中图示的系统100中的视频编码器114。
[1192]
视频编码器200可以被配置为执行本公开的技术中的任何一种或全部。在图10的示例中,视频编码器200包括多个功能组件。本公开中所描述的技术可以在视频编码器200的各种组件之间共享。在一些实例中,处理器可以被配置为执行本公开中所描述的技术中的任何一种或全部。
[1193]
视频编码器200的功能组件可以包括分割单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214,预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。
[1194]
在其它示例中,视频编码器200可以包括更多、更少或不同的功能组件。在示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
[1195]
此外,诸如运动估计单元204和运动补偿单元205之类的一些组件可以是高度集成的,但是为了解释的目的而在图5的示例中分开表示。
[1196]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[1197]
模式选择单元203可以选择编解码模式之一,帧内或帧间,例如基于误差结果,并将结果所得的帧内或帧间编解码的块提供给残差生成单元207以生成残差块数据并提供给重构单元212以重构编码的块以用作参考图片。在一些示例中,模式选择单元203可以选择组合帧内和帧间预测(ciip)模式,其中预测是基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
[1198]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的除了与当前视频块相关联的图片以外的图片的运动信息和解码的样点来确定当前视频块的预测的视频块。
[1199]
运动估计单元204和运动补偿单元205可以针对当前视频块执行不同的操作,例如,取决于当前视频块是在i条带、p条带还是b条带中。
[1200]
在一些实例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以搜索列表0或列表1的参考图片以寻找当前视频块的参考视频块。运动估计单元204然后可以生成指示列表0或列表1中包含参考视频块的参考图片的参考索引和指示当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量,作为当前视频块的运动信息。运动补偿单元205可以基于由当
前视频块的运动信息指示的参考视频块来生成当前块的预测的视频块。
[1201]
在其它示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一个参考视频块。运动估计单元204然后可以生成指示包含参考视频块的列表0和列表1中的参考图片的参考索引以及指示参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测的视频块。
[1202]
在一些示例中,运动估计单元204可以输出完整的运动信息集以用于解码器的解码处理。
[1203]
在一些示例中,运动估计单元204可以不输出用于当前视频的完整的运动信息集。更确切地说,运动估计单元204可以参考另一个视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
[1204]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块具有与另一个视频块相同的运动信息的值。
[1205]
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一个视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量与所指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[1206]
如上面所讨论的,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实现的预测性信令技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令。
[1207]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其它视频块的解码的样点来生成用于当前视频块的预测数据。用于当前视频块的预测数据可以包括预测的视频块和各种语法元素。
[1208]
残差生成单元207可以通过从当前视频块中减去(例如,由负号指示)当前视频块的(一个或多个)预测的视频块来生成用于当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中的样点的不同样点分量对应的残差视频块。
[1209]
在其它示例中,对于当前视频块可以不存在当前视频块的残差数据,例如在跳过模式中,并且残差生成单元207可以不执行减法运算。
[1210]
变换处理单元208可以通过对与当前视频块相关联的残差视频块应用一个或多个变换来生成当前视频块的一个或多个变换系数视频块。
[1211]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[1212]
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到来
自由预测单元202生成的一个或多个预测的视频块的对应样点,以产生与当前块相关联的重构的视频块以存储在缓冲器213中。
[1213]
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块效应伪影。
[1214]
熵编码单元214可以从视频编码器200的其它功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码的数据并输出包括熵编码的数据的比特流。
[1215]
图11是图示视频解码器300的示例的框图,视频解码器300可以是图9中所示的系统100中的视频解码器114。
[1216]
视频解码器300可以被配置为执行本发明的技术中的任何一种或全部。在图11的示例中,视频解码器300包括多个功能组件。本公开中所描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本发明中所描述的技术中的任何一种或全部。
[1217]
在图11的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305和重构单元306,以及缓冲器307。在一些示例中,视频解码器300可以执行一般与关于视频编码器200(例如,图10)描述的编码遍相反的解码遍。
[1218]
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编解码的视频数据(例如,编码的视频数据块)。熵解码单元301可以解码熵编解码的视频数据,并且根据熵解码的视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其它运动信息的运动信息。例如,运动补偿单元302可以通过执行amvp和merge模式来确定这样的信息。
[1219]
运动补偿单元302可以产生运动补偿的块,可能基于插值滤波器执行插值。用于以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
[1220]
运动补偿单元302可以使用如由视频编码器200在对视频块进行编码期间使用的插值滤波器来计算用于参考块的子整数像素的插值的值。运动补偿单元302可以根据接收到的语法信息来确定由视频编码器200使用的插值滤波器并且使用该插值滤波器来产生预测性块。
[1221]
运动补偿单元302可以使用语法信息中的一些来确定用于对编码的视频序列的(一个或多个)帧和/或(一个或多个)条带进行编码的块的尺寸,描述编码的视频序列的图片的每个宏块如何被分割的分割信息,指示如何编码每个分割的模式,每个帧间编码的块的一个或多个参考帧(和参考帧列表),以及解码编码的视频序列的其它信息。
[1222]
帧内预测单元303可以使用例如在比特流中接收到的帧内预测模式来从空域相邻块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化的视频块系数进行逆量化,即,去量化。逆变换单元303应用逆变换。
[1223]
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加以形成解码的块。如果期望,那么还可以应用去方块滤波器来滤波解码的块,以便移除块状伪影。然后将解码的视频块存储在缓冲器307中,该缓冲器为随后的运动补偿/帧内预测提供参考块并且还产生用于在显示设备上呈现的解码的视频。
[1224]
图12是根据本技术的用于视频处理的方法的流程图表示。方法1200包括在操作1210处执行视频的图片与视频的比特流表示之间的转换。图片包括一个或多个子图片,并且比特流表示符合指定语法元素的长度等于ceil(log2(ss))比特的格式规则。ss大于0,并且该语法元素指示图片的子图片的编解码树单元的左上角的水平位置或垂直位置。
[1225]
在一些实施例中,格式规则还指定第二语法元素的长度的默认值等于ceil(log2(ss))-p,其中ss大于0。第二语法元素指示图片的子图片的默认宽度或默认高度。在一些实施例中,亮度样点中的最大图片宽度被表示为pic_width_max_in_luma_samples并且编解码树块的维度被表示为ctbsizey。如果语法元素指定编解码树单元的左上角的水平位置或子图片的默认宽度,那么ss等于(pic_width_max_in_luma_samples rr)/ctbsizey,rr是非零整数。在一些实施例中,亮度样点中的最大图片高度被表示为pic_height_max_in_luma_samples并且编解码树块的维度被表示为ctbsizey。如果语法元素指定编解码树单元的左上角的垂直位置或子图片的默认高度,那么ss等于(pic_height_max_in_luma_samples rr)/ctbsizey,rr是非零整数。在一些实施例中,rr=ctbsizey-1。
[1226]
图13是根据本技术的用于视频处理的方法的流程图表示。方法1300包括在操作1310处执行视频的图片与视频的比特流表示之间的转换,其中图片包括一个或多个子图片。比特流表示符合指定不同子图片具有不同标识符的格式规则。
[1227]
在一些实施例中,格式规则指定一个或多个子图片的标识符被包括在视频单元级别处,视频单元包括序列参数集、图片参数集或图片标头。在一些实施例中,序列参数集处的第一语法标志指示一个或多个子图片的标识符的信令是否存在于序列参数集级别处,图片参数集处的第二语法标志指示一个或多个子图片的标识符的信令是否存在于图片参数集级别处,并且图片标头处的第三语法标志指示一个或多个子图片的标识符的信令是否存在于图片标头级别处。第一语法标志、第二语法标志或第三语法标志中的至少一个等于1。在一些实施例中,如果第一语法标志指示一个或多个子图片的标识符的信令存在于序列参数集级别处,那么在图片标头级别省略一个或多个子图片的标识符的信令。
[1228]
在一些实施例中,格式规则指定一个或多个子图片的标识符被包括在子图片标识符的列表中。在一些实施例中,列表中的第一子图片的标识符被表示为subpicidlist[i]并且第二子图片的标识符被表示为subpicidlist[j],其中j=i-p。格式规则指定在比特流表示中指示subpicidlist[i]与subpicidlist[j]之间的差d[i]。在一些实施例中,p等于1。在一些实施例中,i>p。在一些实施例中,d[i]大于0。在一些实施例中,d[i]-1被包括在比特流表示中。
[1229]
在一些实施例中,基于首先考虑序列参数集、其次考虑图片参数集并且最后考虑图片标头的次序来确定子图片标识符的列表。在一些实施例中,基于首先考虑图片标头、其次考虑图片参数集并且最后考虑序列参数集的次序来确定子图片标识符列表。
[1230]
在一些实施例中,格式规则指定,如果一个或多个子图片的标识符在一个或多个视频单元级别处被省略的,那么将默认值指派给子图片标识符的列表中的标识符。该一个或多个视频单元至少包括序列参数集、图片参数集或图片标头。在一些实施例中,列表中的子图片的标识符被表示为subpicidlist[i],并且subpicidlist[i]的默认值为i p,p是偏移量值。
[1231]
图14是根据本技术的用于视频处理的方法的流程图表示。方法1400包括在操作
1410处针对视频的第一子图片的块与视频的比特流表示之间的转换,基于是否跨子图片边界允许环路滤波过程确定是否跨该块与第二子图片的相邻块之间的边缘应用去方块过程。方法1400还包括在操作1420处基于该确定执行转换。
[1232]
在一些实施例中,第一语法标志指示是否允许环路滤波过程跨边缘的第一侧的边界访问样点,并且第二语法标志指示是否允许环路滤波过程跨边缘的第二侧的边界访问样点。如果第一语法标志或第二语法标志中的至少一个指示不允许环路滤波过程,那么不滤波边缘。在一些实施例中,第一语法标志指示允许环路滤波过程跨边缘的第一侧的的边界访问样点,并且由于第二语法标志指示不允许环路滤波过程跨边缘的第二侧的边界访问样点,因此不滤波边缘。
[1233]
在一些实施例中,边缘的第一侧被滤波并且边缘的第二侧是否被滤波被彼此分开确定。在一些实施例中,由于第一语法标志为1,因此边缘的第一侧的样点被滤波。在一些实施例中,由于第二语法标志为1,因此边缘的第二侧的样点被滤波。在一些实施例中,边缘的第一侧在第一子图片中,并且边缘的第二侧在第二子图片中。
[1234]
图15是根据本技术的视频处理方法的流程图表示。方法1500包括在操作1510处执行视频与视频的比特流表示之间的转换。比特流表示符合格式规则,该格式规则指定指示图片参数集中用于变换跳过编解码工具的最大块尺寸的语法元素独立于序列参数集中的任何语法标志被信令通知。
[1235]
图16是根据本技术的视频处理方法的流程图表示。方法1600包括在操作1610处执行视频与视频的比特流表示之间的转换。比特流表示符合格式规则,该格式规则指定指示用于变换跳过编解码工具的最大块尺寸的语法元素是基于序列参数集中的语法标志来信令通知的。
[1236]
在一些实施例中,语法元素被包括在序列参数集或图片标头中。在一些实施例中,语法元素包括log2_transform_skip_max_size_minus2。在一些实施例中,序列参数集中的语法标志包括sps_transform_skip_enabled_flag。
[1237]
图17是根据本技术的视频处理方法的流程图表示。方法1700包括在操作1710处执行视频的当前块与视频的比特流表示之间的转换。方法1700还包括在操作1720处在转换之后基于当前块是否是使用几何分割模式编解码的来确定更新基于历史的运动矢量预测表的方式,在几何分割模式中块是通过至少两个预测的加权总和来预测的。为至少两个分割生成加权总和的权重。至少一些分割具有角边缘,并且其中基于历史的运动矢量预测表包括基于视频的先前编解码的块的运动候选。
[1238]
在一些实施例中,如果当前块是使用几何分割模式编解码的,那么不更新基于历史的运动矢量预测表。在一些实施例中,如果当前块使用几何分割模式编解码,那么更新基于历史的运动矢量预测表。在一些实施例中,使用当前块的一个预测的运动信息来更新基于历史的运动矢量预测表。在一些实施例中,使用当前块的多个预测的运动信息来更新基于历史的运动矢量预测表。
[1239]
图18是根据本技术的用于视频处理的方法的流程图表示。方法1800包括在操作1810处使用交叉分量自适应环路滤波过程执行视频的当前处理单元与视频的比特流表示之间的转换,在该交叉分量自适应环路滤波过程中色度样点基于对应的亮度样点被滤波。当前处理单元包括由两个虚拟边界确定的自适应环路滤波处理单元。针对滤波当前处理单
元的色度样点排除位于当前处理单元之外的亮度样点。
[1240]
在一些实施例中,位于当前处理单元之外的亮度样点被填充,并且被填充的亮度样点用于滤波当前处理单元的色度样点。
[1241]
图19是根据本技术的视频处理方法的流程图表示。方法1900包括在操作1910处使用交叉分量自适应环路滤波过程执行视频的当前处理单元与视频的比特流表示之间的转换,在该交叉分量自适应环路滤波过程中色度样点基于对应的亮度样点被滤波。当前处理单元包括由两个虚拟边界界定的自适应环路滤波处理单元。位于当前处理单元之外的亮度样点用于滤波当前处理单元的色度样点。
[1242]
在一些实施例中,转换从比特流表示生成视频。在一些实施例中,转换从视频生成比特流表示。
[1243]
所公开技术的一些实施例包括做出决定或确定以启用视频处理工具或模式。在示例中,当启用视频处理工具或模式时,编码器将在处理视频块时使用或实现该工具或模式,但可以不必要地基于工具或模式的使用来修改生成的比特流。即,当基于决定或确定启用视频处理工具或模式时,从视频块到视频的比特流表示的转换将使用视频处理工具或模式。在另一个示例中,当启用视频处理工具或模式时,解码器将在知道比特流已基于视频处理工具或模式修改后的情况下处理比特流。即,从视频的比特流表示到视频块的转换将使用基于决定或确定启用的视频处理工具或模式来执行。
[1244]
所公开技术的一些实施例包括做出决定或确定以禁用视频处理工具或模式的。在示例中,当禁用视频处理工具或模式时,编码器将在视频块到视频的比特流表示的转换中不使用该工具或模式。在另一个示例中,当禁用视频处理工具或模式时,解码器将在知道比特流没有使用基于决定或确定而启用的视频处理工具或模式被修改后的情况下处理比特流。
[1245]
本文档中描述的公开和其它解决方案、示例、实施例、模块和功能操作可以在数字电子电路或计算机软件、固件或硬件中实现,包括本文档中公开的结构及其结构等价物,或在其中一种或多种的组合中实现。所公开的和其它实施例可以被实现为一个或多个计算机程序产品,例如,被编解码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组合物,或它们中的一种或多种的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们当中一个或多个的组合的代码。传播的信号是人工生成的信号,例如机器生成的电、光或电磁信号,生成该信号以对信息进行编码以传输到合适的接收器装置。
[1246]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且它可以以任何形式部署,包括作为独立的程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保持其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论程序的单个文件中,或多个协调的文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。可以部署计算机程序以在一个计算
机上执行或在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
[1247]
本文档中描述的过程和逻辑流可以由一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流也可以由专用逻辑电路执行,并且装置也可以被实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。
[1248]
举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。一般而言,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁、磁光盘或光盘)接收数据或向其传输数据或两者。但是,计算机不需要具有此类设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说,包括半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
[1249]
虽然本专利文档包含许多细节,但这些不应当被解释为对任何主题或可要求保护的内容的范围的限制,而是对可以特定于特定技术的特定实施例的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合实现。此外,虽然特征可以在某些组合中如上所述起作用,并且甚至最初就是如此要求保护的,但在一些情况下,来自要求保护的组合的一个或多个特征可以从组合中删除,并且要求保护的组合可以针对子组合或子组合的变体。
[1250]
类似地,虽然在附图中以特定次序描绘了操作,但这不应当被理解为要求以所示特定次序或按顺序次序执行此类操作,或者执行所有所示操作以实现期望的结果。此外,本专利文献中描述的实施例中各种系统组件的分离不应当被理解为在所有实施例中都要求这种分离。
[1251]
仅描述了几个实施方式和示例,并且可以基于本专利文档中描述和说明的内容做出其它实施方式、增强和变化。
再多了解一些

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

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

相关文献