CN115280768A - 视频编解码中的子图片边界滤波 - Google Patents

视频编解码中的子图片边界滤波 Download PDF

Info

Publication number
CN115280768A
CN115280768A CN202180009033.0A CN202180009033A CN115280768A CN 115280768 A CN115280768 A CN 115280768A CN 202180009033 A CN202180009033 A CN 202180009033A CN 115280768 A CN115280768 A CN 115280768A
Authority
CN
China
Prior art keywords
picture
sub
video
equal
flag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180009033.0A
Other languages
English (en)
Inventor
张凯
邓智玭
刘鸿彬
张莉
许继征
王业奎
王洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Douyin Vision Co Ltd
ByteDance Inc
Original Assignee
Douyin Vision Co Ltd
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Douyin Vision Co Ltd, ByteDance Inc filed Critical Douyin Vision Co Ltd
Publication of CN115280768A publication Critical patent/CN115280768A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种视频处理的示例方法,包括对于视频的当前图片的当前视频块和该视频的比特流之间的转换,基于子图片是否被视为图片来确定修改当前图片的并置图片内的并置子块的纵坐标yColSb的方式。并置图片是当前图片的一个或多个参考图片中的一个。该方法还包括基于该确定执行转换。

Description

视频编解码中的子图片边界滤波
相关申请的交叉引用
根据适用的《专利法》和/或《巴黎公约》的规定,本申请及时要求于2020年1月13日提交的国际专利申请号PCT/CN2020/071863的优先权和利益。出于法律上的所有目的,将前述申请的全部公开以引用方式并入本文,作为本申请公开的一部分。
技术领域
本文档涉及视频和图像编码和解码技术。
背景技术
在互联网和其他数字通信网络中,数字视频占用了最大的带宽。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。
发明内容
所公开的技术可以由视频或图片解码器或编码器实施例使用,其中执行基于子图片的编码或解码。
在一个示例方面,公开了一种视频处理方法。该方法包括对于视频的当前图片中的当前视频块和该视频的比特流之间的转换,基于子图片是否被视为图片来确定修改当前图片的并置图片内的并置子块的纵坐标yColSb的方式。并置图片是当前图片的一个或多个参考图片中的一个。该方法还包括基于该确定来执行转换。
在另一示例方面,公开了一种视频处理方法。该方法包括对于视频的包括至少两个子图片的当前图片和该视频的比特流之间的转换,基于两个子图片的信息确定对覆盖两个子图片之间的边界的区域应用滤波操作的方式。该方法还包括根据该确定来执行转换。
在另一示例方面,公开了一种视频处理方法。该方法包括对于视频的第一视频区域中的视频块,确定为视频块和使用仿射模式的当前视频块的比特流表示之间的转换确定的时域运动矢量预测值所在的位置是否在第二视频区域内;以及基于该确定来执行转换。
在另一示例方面,公开了另一种视频处理方法。该方法包括对于视频的第一视频区域中的视频块,确定为视频块和当前视频块的比特流表示之间的转换提取的参考图片中的整数样点所在的位置是否在第二视频区域内,其中,在转换期间参考图片不用于插值过程;以及基于该确定来执行转换。
在另一示例方面,公开了另一种视频处理方法。该方法包括对于视频的第一视频区域中的视频块,确定为视频块与当前视频块比特流表示之间的转换提取的重建亮度样点值所在的位置是否在第二视频区域内;以及基于该确定来执行转换。
在另一示例方面,公开了另一种视频处理方法。该方法包括对于视频的第一视频区域中的视频块,确定在视频块和当前视频块的比特流表示之间的转换期间执行的视频块的划分相关检查、深度推导或划分标志信令通知所在的位置是否在第二视频区域内;以及基于该确定来执行转换。
在另一示例方面,公开了另一种视频处理方法。该方法包括在包括一个或多个视频图片的视频和该视频的编解码表示之间执行转换,一个或多个视频图片包括一个或多个视频块,其中,该编解码表示符合该转换不使用视频单元内的子图片编码/解码和动态精度转换编码/解码工具或参考图片重采样工具的编解码语法要求。
在另一示例方面,公开了另一种视频处理方法。该方法包括在包括一个或多个视频图片的视频和视频的编解码表示之间执行转换,一个或多个视频图片包括一个或多个视频块,其中编解码表示符合第一语法元素subpic_grid_idx[i][j]不大于第二语法元素max_subpics_minus1的编解码语法要求。
在另一示例方面,公开了另一种视频处理方法。该方法包括执行视频的第一视频区域和视频的编解码表示之间的转换,其中,定义第一视频区域的编解码特性的参数集被包括在编解码表示中的第一视频区域级别。
在又一示例方面,上述方法可以由包括处理器的视频编码器装置来实施。
在又一示例方面,上述方法可以由包括处理器的视频解码器装置来实施。
在又一示例方面,这些方法可以以处理器可执行指令的形式实现,并存储在计算机可读程序介质上。
在本文件中进一步描述了这些和其他方面。
附图说明
图1示出了时域运动矢量预测(temporal motion vector prediction,TMVP)和子块TMVP中的区域约束的示例。
图2示出了分级运动估计方案的示例。
图3是用于实现本文档中描述的技术的硬件平台的示例的框图。
图4是视频处理的示例方法的流程图。
图5示出具有18乘12亮度CTU的图片的示例,其被分割成12个片和3个光栅扫描条带(信息性的)。
图6示出具有18乘12亮度CTU的图片的示例,其被分割成24个片和9个矩形条带(信息性的)。
图7示出了被分割成4个片、11个图块和4个矩形条带(信息性的)的图片的示例。
图8示出了以调色板模式编码的块的示例。
图9示出了使用预测值调色板来信令通知调色板条目的示例。
图10示出了水平和垂直遍历扫描的示例。
图11示出了调色板索引的编解码的示例。
图12示出了Merge估计区域(MER)的示例。
图13是示出示例视频处理系统的框图,在该系统中可以实现本文公开的各种技术。
图14是图示示例视频编解码系统的框图。
图15是图示根据本公开的一些实施例的编码器的框图。
图16是图示根据本公开的一些实施例的解码器的框图。
图17是根据本技术的用于视频处理方法的流程图表示。
图18是根据本技术的用于视频处理的另一方法的流程图表示。
具体实施方式
本文档提供了各种技术,图片或视频比特流的解码器可以使用这些技术来提高解压缩或解码的数字视频或图片的质量。为简洁起见,本文使用的术语“视频”包括图片序列(传统上称为视频)和单个图片。此外,视频编码器也可在编码过程期间实施这些技术,以便重建用于进一步编码的解码帧。
本文件中使用的章节标题是为了易于理解,并不将实施例和技术限于相应的章节。这样,来自一个部分的实施例可以与来自其他部分的实施例相结合。
1.初步讨论
本文档涉及视频编解码技术。具体而言,它涉及在视频编解码中采用基于基色的表示的调色板编解码。它可以应用于现有的视频编解码标准,如HEVC,或者即将完成的标准(通用视频编解码)。它也可以应用于未来的视频编解码标准或视频编解码器。
2.视频编解码简介
视频编解码标准主要通过众所周知的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 JTC1SC29/WG11(MPEG)成立了联合视频专家小组(JVET),其致力于VVC标准,目标是与HEVC相比将比特率降低50%。
2.1 TMVP中的区域约束和VVC中的子块TMVP
图1示出了TMVP和子块TMVP中的示例区域约束。在TMVP和子块TMVP中,如图1所示,约束时域MV只能从并置的CTU加上一列4×4块中取得。
2.2子图片示例
在一些实施例中,可以实现基于灵活平铺方法的基于子图片的编解码技术。基于子图片的编解码技术的概述包括以下内容:
1)图片能够分成子图片。
2)在SPS中指示子图片存在的指示,以及子图片的其他序列级信息。
3)在解码过程中(不包括环路内滤波操作)是否将子图片视为图片能够由比特流来控制。
4)是否禁用跨子图片边界的环路滤波个由每个子图片的比特流来控制。DBF、SAO和ALF过程被更新以控制跨子图片边界的环路滤波操作。
5)为简单起见,作为起点,子图片宽度、高度、水平偏移和垂直偏移以SPS中的亮度样点为单位来表示。子图片边界被约束为条带边界。
6)通过稍微更新coding_tree_unit()语法来指定在解码过程(不包括环路内滤波操作)中将子图片视为图片,并且更新到以下解码过程:
–(高级)时域亮度运动矢量预测的推导过程
–亮度样点双线性插值过程
–亮度样点8抽头插值滤波过程
–色度样点插值过程
7)子图片ID在SPS中被明确指定并且被包括在片组标头中,以使得能够提取子图片序列,而不需要改变VCL NAL单元。
8)提出输出子图片集(OSPS)以指定子图片及其集的规范提取和一致性点。
2.3通用视频编解码中的示例子图片
序列参数集RBSP语法
Figure BDA0003742166000000051
Figure BDA0003742166000000061
subpics_present_flag等于1指示在SPS RBSP语法中存在子图片参数。subpics_present_flag等于0指示在SPS RBSP语法中不存在子图片参数。
注意2当比特流是子比特流提取过程的结果,并且仅包含子比特流提取过程的输入比特流的子图片的子集时,可能需要在SPS的RBSP中将subpics_present_flag的值设置为等于1。
max_subpics_minus1加1指定CVS中可能存在的子图片的最大数量。max_subpics_minus1应在0到254的范围内。值255保留给ITU-T|ISO/IEC将来使用。
subpic_grid_col_width_minus1加1指定子图片标识符网格的每个元素的宽度,以4个样点为单位。语法元素的长度为Ceil(Log2(pic_width_max_in_luma_samples/4))比特。
变量NumSubPicGridCols的推导如下:
NumSubPicGridCols=(pic_width_max_in_luma_samples+subpic_grid_col_width_minus1*4+3)/(subpic_grid_col_width_minus1*4+4) (7-5)
subpic_grid_row_height_minus1加1以4个样点为单位指定子图片标识符网格的每个元素的高度。语法元素的长度为Ceil(Log2(pic_height_max_in_luma_samples/4))比特。
变量NumSubPicGridRows的推导如下:
NumSubPicGridRows=(pic_height_max_in_luma_samples+subpic_grid_row_height_minus1*4+3)/(subpic_grid_row_height_minus1*4+4) (7-6)
subpic_grid_idx[i][j]指定网格位置(i,j)的子图片索引。语法元素的长度是Ceil(Log2(max_subpics_minus1+1))比特。
变量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的推导如下:
Figure BDA0003742166000000071
Figure BDA0003742166000000081
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。
loop_filter_across_subpic_enabled_flag[i]等于1指定可以执行跨CVS中每个编解码图片中的第i个子图片的边界的环路滤波操作。loop_filter_cross_subpic_enabled_flag[i]等于0指定不执行跨CVS中每个编解码图片的第i个子图片的边界的环路滤波操作。当不存在时,loop_filter_cross_subpic_enabled_pic_flag[i]的值被推断为等于1。
比特流一致性的一个要求是应用以下约束:
–对于任何两个子图片subpicA和subpicB,当subpicA的索引小于subpicB的索引时,按照解码顺序,subPicA的任何编解码的NAL单元将在subPicB的任何编解码的NAL单元之后。
–子图片的形状应该是使得:当解码时,每个子图片的整个左边界和整个上边界应该包括图片边界或者包括由先前解码的子图片的边界组成。
列表CtbToSubPicIdx[ctbAddrRs]指定从根据图片光栅扫描的CTB地址到子图片索引的转换,其中ctbAddrRs的范围从0到PicSizeInCtbsY–1,包括端值,其推导如下:
Figure BDA0003742166000000082
Figure BDA0003742166000000091
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。
变量NumBricksInCurrSlice指定当前条带中的图块数量,SliceBrickIdx[i]指定当前条带中第i个图块的图块索引,其推导如下:
Figure BDA0003742166000000092
变量SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos和SubPicBotBoundaryPos的推导如下:
Figure BDA0003742166000000101
时域亮度运动矢量预测的推导过程
该过程的输入是:
–当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xCb,yCb)。
–指定亮度样点中当前编解码块的宽度的变量cbWidth,
–指定亮度样点中当前编解码块的高度的变量cbHeight,
–参考索引refIdxLX,X为0或1。
该过程的输出是:
–1/16分数样点精度的运动矢量预测mvLXCol,
–可用性标志availableFlagLXCol。
变量currCb指定在亮度位置(xCb,yCb)的当前亮度编解码块。
变量mvLXCol和availableFlagLXCol的推导如下:
–如果slice_temporal_MVP_enabled_flag等于0或(cbWidth*cbHeight)小于或等于32,则mvLXCol的两个分量都被设置为等于0,并且availableFlagLXCol被设置为等于0。
–否则(slice_temporal_MVP_enabled_flag等于1),应用以下有序步骤:
1.右下方的并置运动矢量以及底部和右侧边界样点位置的推导如下:
xColBr=xCb+cbWidth (8-421)
yColBr=yCb+cbHeight (8-422)
rightBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos:pic_width_in_luma_samples-1 (8-423)
botBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?SubPicBotBoundaryPos:pic_height_in_luma_samples-1 (8-424)
2.如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY,yColBr小于或等于botBoundaryPos,xColBr小于或等于rightBoundaryPos,则应用以下情况:
–变量colCb指定覆盖由ColPic指定的并置图片内的((xColBr>>3)<<3,(yColBr>>3)<<3)给出的修改位置的亮度编解码块。
–亮度位置(xColCb,yColCb)被设置为等于由ColCb指定的并置亮度编解码模块的左上样点相对于由ColPic指定的并置图片的左上样点。
–在条款8.5.2.12中规定的并置运动矢量的推导过程被调用,其中currCb、colCb、(xColCb、yColCb)、refIdxLX和sbFlag被设置为等于0作为输入,并且输出被分配给mvLXCol和availableFlagLXCol。
否则,mvLXCol的两个分量都被设置为等于0,并且availableFlagLXCol被设置为等于0。
亮度样点双线性插值过程
该过程的输入是:
–以全样点为单位的亮度位置(xIntL,yIntL),
–以分数样点为单位的亮度位置(xFracL,yFracL),
–亮度参考样点阵列refPicLXL
该过程的输出是预测亮度样点值predSampleLXL
变量shift1、shift2、shift3、shift4、offset1、offset2和offset3的推导如下:
shift1=BitDepthY-6 (8-453)
offset1=1<<(shift1-1) (8-454)
shift2=4 (8-455)
offset2=1<<(shift2-1) (8-456)
shift3=10-BitDepthY (8-457)
shift4=BitDepthY-10 (8-458)
offset4=1<<(shift4-1) (8-459)
变量picW被设置为等于pic_width_in_luma_samples,变量picH被设置为等于pic_height_in_luma_samples。
每个1/16分数样点位置p的亮度插值滤波器系数fbL[p]等于xFracL或yFracL,在表8-10中指定。
对于i=0..1,以全样点为单位的亮度位置(xInti、yInti)的推导如下:
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下:
xInti=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,xIntL+i) (8-460)
yInti=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yIntL+i) (8-461)
–否则(subpic_treated_as_pic_flag[SubPicIdx]等于0),适用以下:
xInti=Clip3(0,picW-1,sps_ref_wraparound_enabled_flag?
Figure BDA0003742166000000121
yInti=Clip3(0,picH-1,yIntL+i) (8-463)
基于子块的时域Merge候选的推导过程
该过程的输入是:
–当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xCb,yCb),
–变量cbWidth指定以亮度样点为单位的当前编解码块的宽度,
–变量cbHeight指定以亮度样点为单位的当前编解码块的高度。
–相邻编解码单元的可用性标志availableFlagA1
–相邻编解码单元的参考索引refIdxLXA1
–相邻编解码单元的预测列表利用标志predFlagLXA1,X为0或1
–相邻编解码单元的以1/16分数样点精度的运动矢量mvLXA1,X为0或1。
该过程的输出是:
–可用性标志availableFlagSbCol,
–水平方向的亮度编解码子块的数量numSbX和垂直方向的亮度编解码子块的数量numSbY,
–参考索引refIdxL0SbCol和refIdxL1SbCol,
–1/16分数样点精度的亮度运动矢量mvL0SbCol[xSbIdx][ySbIdx]和mvL1SbCol[xSbIdx][ySbIdx],xSbIdx=0..numSbX–1并且ySbIdx=0..numSbY-1,
–预测列表利用率标志predFlagL0SbCol[xSbIdx][ySbIdx]和predFlagL1SbCol[xSbIdx][ySbIdx],xSbIdx=0..numSbX–1并且ySbIdx=0..numSbY-1。
可用性标志availableFlagSbCol的推导如下。
–如果下列条件中的一个或多个为真,则availableFlagSbCol被设置为等于0。
–slice_temporal_mvp_enabled_flag等于0。
–sps_sbtmvp_enabled_flag等于0。
–cbWidth小于8。
–cbHeight小于8。
–否则,应用以下有序步骤:
1.包含当前编解码块的亮度编码树块的左上样点的位置(xCtb,yCtb)和当前亮度编解码块的右下中心样点的位置(xCtr,yCtr)的推导如下:
xCtb=(xCb>>CtuLog2Size)<<CtuLog2Size (8-542)
yCtb=(yCb>>CtuLog2Size)<<CtuLog2Size (8-543)
xCtr=xCb+(cbWidth/2) (8-544)
yCtr=yCb+(cbHeight/2) (8-545)
2.亮度位置(xColCtrCb,yColCtrCb)被设置为等于覆盖ColPic内由(xCtr,yCtr)给定的位置的并置亮度编解码模块的左上样点相对于由ColPic指定的并置图片的左上亮度样点。
3.调用条款8.5.5.4中指定的基于子块的时域Merge基本运动数据的推导过程,以位置(xCtb,yCtb)、位置(xColCtrCb,yColCtrCb)、可用性标志availableFlagA1、预测列表利用标志predFlagLXA1、参考索引refIdxLXA1和运动矢量mvLXA1作为输入,其中X是0和1,并且以运动矢量ctrMvLX、并置块的预测列表利用标志ctrPredFlagLX以及时域矢量tempMv作为输出,其中X是0和1。
4.变量availableFlagSbCol的推导如下:
–如果ctrPredFlagL0和ctrPredFlagL1都等于0,则availableFlagSbCol被设置为等于0。
–否则,availableFlagSbCol被设置为等于1。
当availableFlagSbCol等于1时,适用以下:
–变量numSbX、numSbY、sbWidth、sbHeight和refIdxLXSbCol的推导如下:
numSbX=cbWidth>>3 (8-546)
numSbY=cbHeight>>3 (8-547)
sbWidth=cbWidth/numSbX (8-548)
sbHeight=cbHeight/numSbY (8-549)
refIdxLXSbCol=0 (8-550)
–对于xSbIdx=0..numSbX-1和ySbIdx=0..numSbY-1,运动矢量mvLXSbCol[xSbIdx][ySbIdx]和预测列表利用标志predFlagLXSbCol[xSbIdx][ySbIdx]的推导如下:
–指定当前编解码子块左上样点相对于当前图片的左上亮度样点的亮度位置(xSb,ySb),其推导如下:
xSb=xCb+xSbIdx*sbWidth+sbWidth/2 (8-551)
ySb=yCb+ySbIdx*sbHeight+sbHeight/2 (8-552)
–ColPic内的并置子块的位置(xColSb,yColSb)的推导如下。
–适用以下:
Figure BDA0003742166000000151
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下:
Figure BDA0003742166000000152
–否则(subpic_treated_as_pic_flag[SubPicIdx]等于0),适用以下:
Figure BDA0003742166000000153
基于子块的时域Merge基础运动数据的推导过程
该过程的输入是:
–包含当前编解码块的亮度编码树块的左上样点的位置(xCtb,yCtb),–覆盖右下中心样点的并置亮度编解码块的左上样点的位置(xColCtrCb,yColCtrCb)。
–相邻编解码单元的可用性标志availableFlagA1
–相邻编解码单元的参考索引refIdxLXA1
–相邻编解码单元的预测列表利用标记predFlagLXA1
–相邻编解码单元的1/16分数样点精度的运动矢量mvLXA1
该过程的输出是:
–运动矢量ctrMvL0和ctrMvL1,
–预测列表利用标志ctrPredFlagL0和ctrPredFlagL1,
–时域运动矢量tempMv。
变量tempMv被设置如下:
tempMv[0]=0 (8-558)
tempMv[1]=0 (8-559)
变量currPic指定当前图片。
当availableFlagA1等于TRUE时,适用以下:
–如果以下所有条件均为真,则tempMv设置为等于mvL0A1
–predFlagL0A1等于1,
–DiffPicOrderCnt(ColPic,RefPicList[0][refIdxL0A1])等于0,
–否则,如果以下所有条件都为真,则tempMv被设置为等于mvL1A1
–slice_type等于B,
–predFlagL1A1等于1,
–DiffPicOrderCnt(ColPic,RefPicList[1][refIdxL1A1])等于0。
ColPic内并置块的位置(xColCb,yColCb)的推导如下。
–适用以下:
Figure BDA0003742166000000161
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下:
Figure BDA0003742166000000162
–否则(subpic_treated_as_pic_flag[SubPicIdx]等于0,则适用以下:
Figure BDA0003742166000000163
亮度样点插值滤波过程
该过程的输入是:
–以全样点为单位的亮度位置(xIntL,yIntL),
–以分数样点为单位的亮度位置(xFracL,yFracL),
–以全样点为单位的亮度位置(xSbIntL,ySbIntL),指定用于参考样点填充的边界块的左上样点相对于参考图片的左上亮度样点,
–亮度参考样点阵列refPicLXL
–半样点插值滤波器索引hpelIfIdx,
–指定当前子块宽度的变量sbWidth,
–指定当前子块高度的变量sbHeight,
–指定当前子块的左上样点相对于当前图片的左上亮度样点的亮度位置(xSb,ySb),
该过程的输出是预测亮度样点值predSampleLXL
变量shift1、shift2和shift3的推导如下:
–变量shift1设置为等于Min(4,BitDepthY-8),变量shift2设置为等于6,变量shift3设置为等于Max(2,14-BitDepthY)。
–变量picW设置为等于pic_width_in_luma_samples,变量picH设置为等于pic_height_in_luma_samples。
每个1/16分数样点位置p的亮度插值滤波器系数fL[p]等于xFracL或yFracL,其推导如下:
–如果MotionModelIdc[xSb][ySb]大于0,且sbWidth和sbHeight均等于4,则亮度插值滤波器系数fL[p]在表8-12中指定。
–否则,亮度插值滤波器系数fL[p]在取决于hpelIfIdx的表8-11中指定。
对于i=0..7,以全样点为单位的亮度位置(xInti、yInti)的推导如下:
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下条件:
xInti=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,xIntL+i-3) (8-771)
yInti=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yIntL+i-3) (8-772)
–否则(subpic_treated_as_pic_flag[SubPicIdx]等于0),适用以下条件:
xInti=Clip3(0,picW-1,sps_ref_wraparound_enabled_flag?
Figure BDA0003742166000000181
yInti=Clip3(0,picH-1,yIntL+i-3)
(8-774)
色度样点插值过程
该过程的输入是:
–以全样点为单位的色度位置(xIntC,yIntC),
–以1/32分数样点为单位的色度位置(xFracC,yFracC),
–以全样点为单位的色度位置(xSbIntC,ySbIntC),其指定用于参考样点填充的边界块的左上样点相对于参考图片的左上色度样点,
–指定当前子块宽度的变量sbWidth,
–指定当前子块高度的变量sbHeight,
–色度参考样点阵列refPicLXC
该过程的输出是预测的色度样点值predSampleLXC
变量shift1、shift2和shift3的推导如下:
–变量shift1设置为等于Min(4,B BitDepthC-8),变量shift2设置为等于6,变量shift3设置为等于Max(2,14-BitDepthC)。
–变量picWC设置为等于pic_width_in_luma_samples/SubWidthC,变量picHC设置为等于pic_height_in_luma_samples/SubHeightC。
每个1/32分数样点位置p的色度插值滤波器系数fC[p]等于xFracC或yFracC,在表8-13中被指定。
变量xOffset设置为等于(sps_ref_wraparound_offset_minus1+1)*MinCbSizeY)/SubWidthC。
对于i=0..3,以全样点为单位的色度位置(xInti,yInti)的推导如下:
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下条件:
xInti=Clip3(SubPicLeftBoundaryPos/SubWidthC,SubPicRightBoundaryPos/SubWidthC,xIntL+i) (8-785)
yInti=Clip3(SubPicTopBoundaryPos/SubHeightC,SubPicBotBoundaryPos/SubHeightC,yIntL+i) (8-786)
–否则(subpic_treated_as_pic_flag[SubPicIdx]等于0),适用以下条件:
Figure BDA0003742166000000191
yInti=Clip3(0,picHC-1,yIntC+i-1)
(8-788)
2.4示例仅编码器基于GOP的时域滤波器
在一些实施例中,能够实施仅编码器的时域滤波器。作为预处理步骤,在编码器端进行滤波。读取要编码的所选图片之前和之后的源图片,并且对这些源图片应用相对于所选图片的基于块的运动补偿方法。使用运动补偿后的样点值对所选图片中的样点进行时域滤波。
取决于所选图片的时域子层以及QP来设置整体滤波强度。只有在时域子层0和1的图片被滤波,并且层0的图片相比于层1的图片,用更强的滤波器滤波。根据所选图片中的样点值和运动补偿图片中的并置样点之间的差值来调整每样点滤波强度,使得运动补偿图片和所选图片之间的小差值相比与较大差值被更强地滤波。
基于GOP的时域滤波器
在读取图片之后和编码之前直接引入时域滤波器。以下是更详细描述的步骤。
操作1:由编码器读取图片
操作2:如果图片在编解码层次中足够低,则在编码之前对其进行滤波。否则,图片不经滤波就被编码。POC%8==0的RA图片以及POC%4==0的LD图片被滤波。AI图片从不被滤波。
整体滤波器强度根据下式针对RA进行设置。
Figure BDA0003742166000000201
其中n是读取的图片数量。
对于LD情况,使用so(n)=0.95。
操作3:读取所选图片(下面称为原始图片)之前和/或之后的两个图片。在边缘情况下,例如,如果是第一个图片或者接近最后一个图片,则只读取可用的图片。
操作4:对每8×8图片块,估计相对于原始图片的读取图片前后的运动。
使用分层运动估计方案,并且图2中示出了层L0、L1和L2。通过对所有读取图片和原始图片(即图1中的L1)的每个2×2块进行平均来生成子采样图片。L2是使用相同的子采样方法从L1得到的。
图2示出了分层运动估计的不同层的示例。L0是原始精度。L1是L0的子采样版本。L2是L1的子采样版本。
首先,对L2中的每个16×16块进行运动估计。为每个选择的运动矢量计算平方差,并选择与最小差相对应的运动矢量。然后,当估计L1中的运动时,所选择的运动矢量被用作初始值。然后对L0中的运动估计进行同样的操作。作为最后一步,通过使用L0上的插值滤波器来估计每个8×8块的子像素运动。
使用VTM 6-抽头插值滤波器:
Figure BDA0003742166000000202
Figure BDA0003742166000000211
操作5:根据每个块的最佳匹配运动,在原始图片之前和之后的图片上应用运动补偿。即,使得每个块中的原始图片的样点坐标在参考图片中具有最佳匹配坐标。
操作6:按照以下步骤所述,逐一处理亮度和色度通道的样点。
操作7:使用以下公式计算新的样点值In
Figure BDA0003742166000000212
其中Io是原始样点的样点值,Ir(i)是运动补偿图片i的相应样点的强度,并且wr(i,a)是当可用运动补偿图片的数量为a时运动补偿图片i的权重。
在亮度通道中,权重wr(i,a)定义如下:
Figure BDA0003742166000000213
其中
sl=0.4
Figure BDA0003742166000000214
Figure BDA0003742166000000215
对于i和a的所有其他情况:sr(i,a)=0.3
σl(QP)=3*(QP-10)
ΔI(i)=Ir(i)-Io
对于色度通道,权重wr(i,a)定义如下:
Figure BDA0003742166000000221
其中sc=0.55并且σc=30。
操作8:对当前样点应用滤波器。产生的样点值单独存储。
操作9:对滤波后的图片进行编码。
2.5示例图片分割(片、图块、条带)
在一些实施例中,图片被分成一个或多个片行和一个或多个片列。片是覆盖图片的矩形区域的一系列CTU。
片被分成一个或多个图块,每个图块包括片内的多个CTU行。
未被分割成多个图块的片也称为图块。然而,作为片的真子集的图块不被称为片。
条带或者包含图片的多个片,或者包含片的多个图块。
子图片包含共同覆盖图片的矩形区域的一个或多个条带。
支持两种条带模式,即光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含按照图片的片光栅扫描的片序列。在矩形条带模式中,条带包含图片的多个图块,这些图块共同形成图片的矩形区域。矩形条带内的图块按照条带的图块光栅扫描顺序排列。
图5示出了图片的光栅扫描条带分割的示例,其中图片被分成12个片和3个光栅扫描条带。
图6示出了图片的矩形条带分割的示例,其中图片被分成24个片(6个片列和4个片行)和9个矩形条带。
图7示出了图片被分割为片、图块和矩形条带的示例,其中图片被划分为4个片(2个片列和2个片行)、11个图块(左上片包含1个图块,右上片包含5个图块,左下片包含2个图块,右下片包含3个图块)和4个矩形条带。
图片参数集RBSP语法
Figure BDA0003742166000000222
Figure BDA0003742166000000231
Figure BDA0003742166000000241
Figure BDA0003742166000000251
single_tile_in_pic_flag等于1指定参考PPS的每个图片中只有一个片。
single_tile_in_pic_flag等于0指定参考PPS的每个图片中有多于一个片。
注意–如果片内没有进一步的图块划分,则整个片被称为图块。当图片只包含单个片而没有进一步的图块划分时,其被称为单个图块。
比特流一致性的要求是,对于CVS内编解码图片所参考的所有PPS,single_tile_in_pic_flag的值应该相同。
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。
tile_cols_width_minus1加1指定当uniform_tile_spacing_flag等于1时,图片中除最右边的片列之外的片列的宽度,以CTB为单位。tile_cols_width_minus1的值应在0到PicWidthInCtbsY-1的范围内,包括端值。不存在时,tile_cols_width_minus1的值被推断为等于PicWidthInCtbsY-1。
tile_rows_height_minus1加1指定当uniform_tile_spacing_flag等于1时,图片中除底部片行之外的片行的高度,以CTB为单位。tile_rows_height_minus1的值应在0到PicHeightInCtbsY-1的范围内,包括–端值。不存在时,tile_rows_height_minus1的值被推断为等于PicHeightInCtbsY-1。
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中指定的推断。
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中指定的推断。
变量NumTilesInPic设置为等于(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)。
当single_tile_in_pic_flag等于0时,NumTilesInPic应大于1。
tile_column_width_minus1[i]加1指定第i个片列的宽度,以CTB为单位。
tile_row_height_minus1[i]加1指定第i个片行的高度,以CTB为单位。
brick_splitting_present_flag等于1指定参考PPS的图片的一个或多个片可以被分成两个或更多个图块。brick_splitting_present_flag等于0指定没有参考PPS的图片的片被分成两个或更多个图块。
num_tiles_in_pic_minus1加1指定参考PPS的每个图片中的片的数量。num_tiles_in_pic_minus1的值应等于NumTilesInPic–1。当不存在时,num_tiles_in_pic_minus1的值被推断为等于NumTilesInPic–1。
brick_split_flag[i]等于1指定第i个片被分成两个或更多个图块。brick_split_flag[i]等于0指定第i个片不被分成两个或更多个图块。当不存在时,brick_split_flag[i]的值被推断为等于0。[Ed.(HD/YK):依赖于SPS的PPS解析是通过添加语法条件“if(RowHeight[i]>1”引入的。对于uniform_brick_spacing_flag[i]也是如此。]
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。
brick_height_minus1[i]加1指定当uniform_brick_spacing_flag[i]等于1时,第i个片中不包括底部图块的图块行的高度,以CTB为单位。如果存在,brick_height_minus1的值应在0至RowHeight[i]-2的范围内,包括端值。当不存在时,brick_height_minus1[i]的值推断为等于RowHeight[i]-1。
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]的值按照条款6.5.1中指定的推断。
brick_row_height_minus1[i][j]加1指定当uniform_tile_spacing_flag等于0时第i个片中第j个图块的高度,以CTB为单位。
推导以下变量,并且当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]的值:
–列表RowHeight[j]指定第j个片行的高度,以CTB为单位,其中j的范围从0到num_tile_rows_minus1,包括端值,
–列表CtbAddrRsToBs[ctbAddrRs]指定从图片的CTB光栅扫描中的CTB地址到图块扫描中的CTB地址的转换,其中ctbAddrRs的范围从0到PicSizeInCtbsY-1,包括端值,
–列表CtbAddrBsToRs[ctbAddrBs]指定从图块扫描中的CTB地址到图片的CTB光栅扫描中的CTB地址的转换,其中ctbAddrRs的范围从0到PicSizeInCtbsY-1,包括端值,
–列表BrickId[ctbAddrBs]指定从图块扫描中的CTB地址到图块ID的转换,其中ctbAddrBs的范围从0到PicSizeInCtbsY-1,包括端值,
–列表NumCtusInBrick[brickIdx]指定从图块索引到图块中CTU数量的转换,其中brickIdx的范围从0到NumBricksInPic–1,包括端值,
–列表FirstCtbAddrBs[brickIdx]指定从图块ID到图块中第一个CTB的图块扫描中CTB地址的转换,brickIdx的范围从0到NumBricksInPic–1,包括端值。
single_brick_per_slice_flag等于1指定参考PPS的每个条带包括一个图块。single_brick_per_slice_flag等于0指定参考PPS的条带可以包括多于一个图块。当不存在时,single_brick_per_slice_flag的值被推断为等于1。
rect_slice_flag等于0指定每个条带内的图块处于光栅扫描顺序,并且不在PPS中信令通知条带信息。rect_slice_flag等于1指定每个条带内的图块覆盖图片的矩形区域,并且在PPS中用信令通知条带信息。当brick_splitting_present_flag等于1时,rect_slice_flag的值应等于1。当不存在时,rect_slice_flag被推断为等于1。
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。
bottom_right_brick_idx_length_minus1加1指定用于表示语法元素bottom_right_brick_idx_delta[i]的比特数。
bottom_right_brick_idx_length_minus1的值应在0到Ceil(Log2(NumBricksInPic))-1的范围内,包括端值。
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比特。
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]的负号。
比特流一致性的要求是,条带应当或者包括多个完整的片,或者仅包括一个片的完整图块的连续序列。
变量TopLeftBrickIdx[i]、BottomRightBrickIdx[i]、NumBricksInSlice[i]和BricksToSliceMap[j]指定位于第i个条带的左上角的图块的图块索引、位于第i个条带的右下角的图块的图块索引、第i个条带中的图块的数量以及图块到条带的映射,其推导如下:
Figure BDA0003742166000000291
通用条带标头语义
当存在时,条带标头语法元素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和lice_temporal_mvp_enabled_flag中的每一个的值在编解码图片的所有条带标头中应当是相同的。
变量CuQpDeltaVal指定包含cu_qp_delta_abs的编解码单元的亮度量化参数与其预测之间的差,该变量被设置为等于0。变量CuQpOffsetCb、CuQpOffsetCr和CuQpOffsetCbCr指定在确定包含cu_chroma_qp_offset_flag的编解码单元的Qp’Cb、Qp’Cr和Qp’CbCr量化参数的相应值时要使用的值,这些变量都被设置为等于0。
slice_pic_parameter_set_id指定正在使用的PPS的pps_pic_parameter_set_id的值。slice_pic_parameter_set_id的值应在0到63的范围内,包括端值。
比特流一致性的要求是,当前图片的TemporalId的值应该大于或等于pps_pic_parameter_set_id等于slice_pic_parameter_set_id的PPS的TemporalId的值。
slice_address指定条带的条带地址。当不存在时,slice_address的值被推断为等于0。
如果rect_slice_flag等于0,则适用以下:
–条带地址是由等式(7-59)指定的图块ID。
–slice_address的长度为Ceil(Log2(NumBricksInPic))比特。
–slice_address的值应在0到NumBricksInPic-1的范围内,包括端值。
否则(rect_slice_flag等于1),适用以下:
–条带地址是条带的条带ID。
–slice_address的长度是signalled_slice_id_length_minus1+1比特。
–如果signalled_slice_id_flag等于0,则slice_address的值应在0到num_slices_in_pic_minus1的范围内,包括端值。否则,slice_address的值应在0到2(signalled _slice_id_length_minus1+1)-1的范围内,包括端值。
比特流一致性的要求是应用以下约束:
–slice_address的值不应等于同一编解码图片的任何其它编解码条带NAL单元的slice_address的值。
–当rect_slice_flag等于0时,图片的条带将按照它们的slice_address值的升序排列。
–图片条带的形状应该是,当解码时,每个图块应该具有由图片边界组成或由先前解码的(多个)图块的边界组成的整个左边界和整个上边界。
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。
变量NumBricksInCurrSlice指定当前条带中的图块数,并且SliceBrickIdx[i]指定当前条带中第i个图块的图块索引,其推导如下:
Figure BDA0003742166000000311
Figure BDA0003742166000000321
变量SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos和SubPicBotBoundaryPos的推导如下:
Figure BDA0003742166000000322
2.6示例语法和语义
序列参数集RBSP语法
Figure BDA0003742166000000323
Figure BDA0003742166000000331
Figure BDA0003742166000000341
Figure BDA0003742166000000351
Figure BDA0003742166000000361
Figure BDA0003742166000000371
Figure BDA0003742166000000381
Figure BDA0003742166000000391
图片参数集RBSP语法
Figure BDA0003742166000000392
Figure BDA0003742166000000401
Figure BDA0003742166000000411
Figure BDA0003742166000000421
Figure BDA0003742166000000431
图片标头RBSP语法
Figure BDA0003742166000000432
Figure BDA0003742166000000441
Figure BDA0003742166000000451
Figure BDA0003742166000000461
Figure BDA0003742166000000471
Figure BDA0003742166000000481
Figure BDA0003742166000000491
Figure BDA0003742166000000501
subpics_present_flag等于1指示SPS RBSP语法中存在子图片参数。subpics_present_flag等于0指示SPS RBSP语法中不存在子图片参数。
注意2–当比特流是子比特流提取过程的结果,并且仅包含子比特流提取过程的输入比特流的子图片的子集时,可能需要在SPSs的RBSP中将subpics_present_flag的值设置为1。
sps_num_subpics_minus1加1指定子图片的数量。sps_num_subpics_minus1应在0到254的范围内。当不存在时,sps_num_subpics_minus1的值被推断为等于0。
subpic_ctu_top_left_x[i]指定第i个子图片的左上角CTU的水平位置,以CtbSizeY为单位。语法元素的长度为Ceil(Log2(pic_width_max_in_luma_samples/ CtbSizeY))比特。当不存在时,subpic_ctu_top_left_x[i]的值被推断为等于0。
subpic_ctu_top_left_y[i]指定第i个子图片的左上角CTU的垂直位置,以CtbSizeY为单位。语法元素的长度为Ceil(Log2(pic_height_max_in_luma_samples/ CtbSizeY))比特。当不存在时,subpic_ctu_top_left_y[i]的值被推断为等于0。
subpic_width_minus1[i]加1指定第i个子图片的宽度,以CtbSizeY为单位。语法元素的长度为Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_width_minus1[i]的值推断为等于Ceil(pic_width_max_in_luma_samples/ CtbSizeY)-1。
subpic_height_minus1[i]加1指定第i个子图片的高度,以CtbSizeY为单位。语法元素的长度为Ceil(Log2(pic_height_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_height_minus1[i]的值推断为等于Ceil(pic_height_max_in_luma_samples/ CtbSizeY)-1。
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。
loop_filter_across_subpic_enabled_flag[i]等于1指定可以执行跨CVS中每个编解码图片的第i个子图片的边界的环路滤波操作。loop_filter_cross_subpic_enabled_flag[i]等于0指定不执行跨CVS中每个编解码图片的第i个子图片的边界上的环路滤波操作。当不存在时,loop_filter_cross_subpic_enabled_pic_flag[i]的值被推断为等于1。
比特流一致性的要求是应用以下约束:
–对于任何两个子图片subpicA和subpicB,当subpicA的索引小于subpicB的索引时,在解码顺序上,subPicA的任何编解码NAL单元将在subPicB的任何编解码NAL单元之后。
–子图片的形状应该是使得,当解码时,每个子图片的整个左边界和整个上边界包括图片边界,或者包括先前解码的子图片的边界。
sps_subpic_id_present_flag等于1指定SPS中存在子图片Id映射。sps_subpic_id_present_flag等于0指定SPS中不存在子图片Id映射。
sps_subpic_id_signaling_present_flag等于1指定在SPS中信令通知子图片Id映射。sps_subpic_id_signaling_present_flag等于0指定在SPS中不信令通知子图片Id映射。当不存在时,sps_subpic_id_signaling_present_flag的值被推断为等于0。
sps_subpic_id_len_minus1加1指定用于表示语法元素sps_subpic_id[i]的比特数。sps_subpic_id_len_minus1的值应在0到15的范围内,包括端值。
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
ph_pic_parameter_set_id指定正在使用的PPS的pps_pic_parameter_set_id的值。ph_pic_parameter_set_id的值应在0到63的范围内,包括端值。
比特流一致性的要求是,图片标头的TemporalId的值应该大于或等于pps_pic_parameter_set_id等于ph_pic_parameter_set_id的PPS的TemporalId的值。
ph_subpic_id_signaling_present_flag等于1指定在图片标头中信令通知子图片Id映射。ph_subpic_id_signaling_present_flag等于0表示不在图片标头中信令通知子图片Id映射。
ph_subpic_id_len_minus1加1指定用于表示语法元素ph_subpic_id[i]的比特数。pic_subpic_id_len_minus1的值应在0到15的范围内,包括端值。
比特流一致性的要求是ph_subpic_id_len_minus1的值对于由CVS中的编码图片参考的所有图片标头应该是相同的。
ph_subpic_id[i]指定第i个子图片的子图片Id。ph_subpic_id[i]语法元素的长度为ph_subpic_id_len_minus1+1比特。
列表SubpicIdList[i]的推导如下:
Figure BDA0003742166000000521
去方块滤波过程
概述
该过程的输入是去方块之前的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
该过程的输出是去方块后的修改的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
首先滤波图片中的垂直边缘。然后,利用由垂直边缘滤波过程修改的样点作为输入,对图片中的水平边缘进行滤波。每个CTU的CTB中的垂直和水平边缘在编解码单元的基础上被单独处理。编解码单元中的编解码块的垂直边缘从编解码块左侧的边缘开始被滤波,按照它们的几何顺序通过边缘向编解码块的右侧前进。编解码单元中编解码块的水平边缘被滤波,从编解码块顶部的边缘开始,按照它们的几何顺序通过边缘向编解码块的底部前进。
注意–尽管在本规范中,滤波过程是以图片为基础进行指定的,但只要解码器正确考虑了处理依赖顺序以产生相同的输出值,滤波过程也可以以编解码单元为基础实现,并具有等同的结果。
去方块滤波过程应用于图片的所有编解码子块边缘和变换块边缘,除了以下类型的边缘:
–图片边界上的边缘,
与loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0的子图片的边 界重合的边缘,
–当PPS_loop_filter_cross_virtual_boundaries_disabled_flag等于1时,与图片的虚拟边界重合的边缘,
–当loop_filter_cross_tiles_enabled_flag等于0时与片边界重合的边缘,
–当loop_filter_cross_slices_enabled_flag等于0时与条带边界重合的边缘,
–与slice_deblocking_filter_disabled_flag等于1的条带的上边界或左边界重合的边缘,
–slice_deblocking_filter_disabled_flag等于1的条带内的边缘,
–不与亮度分量的4×4样点网格边界相对应的边缘,
–不与色度分量的8×8样点网格边界相对应的边缘,
–亮度分量内的边缘两侧的intra_bdpcm_luma_flag等于1的边缘,
–色度分量内的边缘两侧的intra_bdpcm_chroma_flag等于1的边缘,
–不是相关变换单元的边缘的色度子块的边缘。
一个方向上的去方块滤波过程
该过程的输入是:
–指定当前是处理亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA)的变量treeType,
–当treeType等于DUAL_TREE_LUMA时,去方块之前的重建图片,
即数组recPictureL
–当ChromaArrayType不等于0且treeType等于DUAL_TREE_CHROMA时,数组recPictureCb和recPictureCr
–指定是滤波垂直边缘(EDGE_VER)还是水平边缘(EDGE_HOR)的变量edgeType。
该过程的输出是去方块后的修改的重建图片,即:
–当treeType等于DUAL_TREE_LUMA时,数组recPictureL
–当ChromaArrayType不等于0且treeType等于DUAL_TREE_CHROMA时,数组recPictureCb和recPictureCr
变量firstCompIdx和lastCompIdx的推导如下:
firstCompIdx=(treeType==DUAL_TREE_CHROMA)?1:0 (8-1010)
lastCompIdx=(treeType==DUAL_TREE_LUMA||ChromaArrayType==0)?0:2 (8-1011)
对于由颜色分量索引cIdx指示的编解码单元的每个颜色分量的每个编解码单元和每个编解码块,具有编解码块宽度nCbW、编解码块高度nCbH和编解码块的左上样点的位置(xCb,yCb),cIdx的范围从firstCompIdx到lastCompIdx,包括first compidx和lastCompIdx,当cIdx等于0时,或者当cIdx不等于0且edgeType等于EDGE_VER且xCb%8等于0时,或者当cIdx不等于0且edgeType等于EDGE_HOR且yCb%8等于0时,通过以下有序步骤对边缘进行滤波:
1.变量filterEdgeFlag的推导如下:
–如果edgeType等于EDGE_VER,并且下列一个或多个条件为真,则filterEdgeFlag被设置为等于0:
–当前编解码块的左边界是图片的左边界。
当前编解码块的左边界是子图片的左边界或右边界,并且loop_filter_cross_ subpic_enabled_flag[SubPicIdx]等于0。
–当前编解码块的左边界是片的左边界,并且loop_filter_cross_tiles_enabled_flag等于0。
–当前编解码块的左边界是条带的左边界,并且loop_filter_cross_slices_enabled_flag等于0。
–当前编解码块的左边界是图片的垂直虚拟边界中的一个,并且VirtualBoundariesDisabledFlag等于1。
–否则,如果edgeType等于EDGE_HOR,并且以下一个或多个条件为真,则变量filterEdgeFlag设被置为等于0:
–当前亮度编解码块的顶部边界是图片的顶部边界。
当前编解码块的顶部边界是子图片的顶部或底部边界,并且loop_filter_ cross_subpic_enabled_flag[SubPicIdx]等于0。
–当前编解码块的顶部边界是片的顶部边界,并且loop_filter_cross_tiles_enabled_flag等于0。
–当前编解码块的顶部边界是条带的顶部边界,并且loop_filter_cross_slices_enabled_flag等于0。
–当前编解码块的顶部边界是图片的水平虚拟边界中的一个,并且VirtualBoundariesDisabledFlag等于1。
–否则,filterEdgeFlag被设置为等于1。
2.7示例TPM、HMVP和GEO
VVC中的TPM(triangular Prediction Mode,三角形预测模式)将块分成具有不同运动信息的两个三角形。
VVC中的HMVP(History-based Motion vector Prediction,基于历史的运动矢量预测)维护用于运动矢量预测的运动信息表。在对帧间编解码的块进行解码之后,该表被更新,但是如果该帧间编解码的块是TPM编解码的,则该表不被更新。
GEO(geometry partition mode,几何分割模式)是TPM的扩展。使用GEO,可以用直线将块分成两个分区,这两个分区可以是三角形,也可以不是三角形。
2.8 ALF、CC-ALF和虚拟边界
VVC中的ALF(Adaptive Loop-Filter,自适应环路滤波器)在图片被解码后应用,以提高图片质量。
在VVC中采用虚拟边界(Virtual Boundary,VB)使ALF易于硬件设计。利用VB,ALF在由两个ALF虚拟边界界定的ALF处理单元中进行。
CC-ALF(cross-component ALF,跨分量ALF)通过参考亮度样点的信息来对色度样点进行滤波。
2.9子图片的示例SEI
D.2.8子图片级别信息SEI消息语法
Figure BDA0003742166000000561
D.3.8子图片级别信息SEI消息语义
当根据附录A测试包含子图片的提取比特流的一致性时,子图片级别信息SEI消息包含关于比特流中子图片符合的级别的信息
当子图片级别信息SEI消息存在于CLVS的任何图片时,子图片级别信息SEI消息将存在于CLVS的第一个图片。子图片级别信息SEI消息按照解码顺序从当前图片持续到当前层,直到CLVS结束。适用于同一CLVS的所有子图片级信息SEI消息应具有相同的内容。
sli_seq_parameter_set_id指示并且应当等于SPS的sps_seq_parameter_set_id,该SPS由与子图片级别信息SEI消息相关联的编解码图片参考。sli_seq_parameter_set_id的值应等于与子图片级别信息SEI消息相关的编解码图片的ph_pic_parameter_set_id所引用的PPS中的pps_seq_parameter_set_id的值。
比特流一致性的要求是,当对于CLVS存在子图片级别信息SEI消息时,subpic_treated_as_pic_flag[i]的值对于0到sps_num_subpics_minus1范围内的每个i值应该等于1,包括端值。
num_ref_levels_minus1加1指定为sps_num_subpics_minus1+1个子图片中的每一个信令通知的参考级别的数量。
explicit_fraction_present_flag等于1指定存在语法元素ref_level_fraction_minus1[i]。explicit_fraction_present_flag等于0指定语法元素ref_level_fraction_minus1[i]不存在。
ref_level_idc[i]指示每个子图片符合附录A中指定的级别。除附录A中指定的值外,比特流不应包含ref_level_idc的值。ref_level_idc[i]的其他值保留供ITU-T|ISO/IEC将来使用。比特流一致性的要求是,对于大于i的任何k值,ref_level_idc[i]的值应小于或等于ref_level_idc[k]。
ref_level_fraction_minus1[i][j]加1指定与ref_level_idc[i]相关联的级别约束的分数,ref_level_idc[i]的第j个子图片符合条款A.4.1的指定。
变量SubPicSizeY[j]被设置为等于(subpic_width_minus1[j]+1)*(subpic_height_minus1[j]+1)。
当不存在时,ref_level_fraction_minus1[i][j]的值被推断为等于Ceil(256*SubPicSizeY[j]÷PicSizeInSamplesY*MaxLumaPs(general_level_idc)÷MaxLumaPs(ref_level_idc[i])–1。
变量RefLevelFraction[i][j]被设置为等于ref_level_fraction_minus1[i][j]+1。
变量SubPicNumTileCols[j]和SubPicNumTileRows[j]的推导如下:
Figure BDA0003742166000000571
Figure BDA0003742166000000581
变量SubPicCpbSizeVcl[i][j]和SubPicCpbSizeNal[i][j]的推导如下:
SubPicCpbSizeVcl[i][j]=Floor(CpbVclFactor*MaxCPB*RefLevelFraction[i][j]÷256) (D.6)
SubPicCpbSizeNal[i][j]=Floor(CpbNalFactor*MaxCPB*RefLevelFraction[i][j]÷256) (D.7)
其中MaxCPB从ref_level_idc[i]中推导得到,如条款A.4.2中所指定。
注意1–当提取子图片时,产生的比特流具有大于或等于SubPicCpbSizeVcl[i][j]和SubPicCpbSizeNal[i][j]的CpbSize(在SPS中指示或推断)。
比特流一致性的要求是,从提取第j个子图产生的并且符合具有general_tier_flag等于0且level等于ref_level_idc[i]的配置文件的比特流应遵守附录C中指定的每个比特流一致性测试的以下约束,其中j的范围从0到sps_num_subpics_minus1,包括端值,并且i的范围从0到num_ref_level_minus1,包括端值:
–Ceil(256*SubPicSizeY[i]÷RefLevelFraction[i][j])应小于或等于MaxLumaPs,其中MaxLumaPs在表A.1中被指定。
–Ceil(256*(subpic_width_minus1[i]+1)÷RefLevelFraction[i][j])的值应小于或等于Sqrt(MaxLumaPs*8)。
–Ceil(256*(subpic_height_minus1[i]+1)÷RefLevelFraction[i][j])的值应小于或等于Sqrt(MaxLumaPs*8)。
–SubPicNumTileCols[j]的值应小于或等于MaxTileCols,并且SubPicNumTileRows[j]的值应小于或等于MaxTileRows,其中MaxTileCols和MaxTileRows在表A.1中被指定。
对于包含一个或多个子图片并由子图片索引列表SubPicSetIndices和子图片集合NumSubPicInSet中的多个子图片组成的任何子图片集合,推导得到子图片集合的级别信息。
相对于参考级别ref_level_idc[i]的总级别分数的变量
SubPicSetAccLevelFraction[i]以及子图片集合的变量
SubPicSetCpbSizeVcl[i][j]和SubPicSetCpbSizeNal[i][j]的推导如下:
Figure BDA0003742166000000591
子图片集序列级别指示符SubPicSetLevelIdc的值的推导如下:
Figure BDA0003742166000000592
其中用于ref_level_idc[i]的MaxTileCols和MaxTileRows在表A.1中被指定。
符合具有general_tier_flag等于0且级别等于SubPicSetLevelIdc的简档的子图片集比特流应遵守附录C中指定的每个比特流一致性测试的以下约束C:
–对于VCL HRD参数,SubPicSetCpbSizeVcl[i]应小于或等于CpbVclFactor*MaxCPB,其中CpbVclFactor在表A.3中被指定并且MaxCPB以CpbVclFactor比特为单位在表A.1中被指定。
–对于NAL HRD参数,SubPicSetCpbSizeVcl[i]应小于或等于CpbNalFactor*MaxCPB,其中CpbNalFactor在表A.3中被指定并且MaxCPB以CpbNalFactor比特为单位在表A.1中被指定。
注意2–提取子图片集时,产生的比特流具有大于或等于SubPicCpbSizeVcl[i][j]和SubPicSetCpbSizeNal[i][j]的CpbSize(在SPS中指示或推断)。
2.10.调色板模式
2.10.1调色板模式的概念
调色板模式背后的基本思想是CU中的像素由有代表性的颜色值小集合来表示。这个集合被称为调色板。并且还可以通过信令通知后跟(可能量化的)分量值的逸出符来指示调色板之外的样点。这种像素称为逸出像素。调色板模式如图10所示。如图10所示,对于具有三个颜色分量(亮度和两个色度分量)的每个像素,建立调色板的索引,并且可以基于在调色板中建立的值来重建块。
2.10.2调色板条目的编解码
对于调色板编码块,引入以下关键方面:
1.基于预测值调色板和为当前调色板信令通知的新条目,如果存在,来构建当前调色板
2.将当前样点/像素分为两类:一类(第一类)包括当前调色板中的样点/像素,另一类(第二类)包括当前调色板之外的样点/像素。
A.对于第二类中的样点/像素,将量化(在编码器处)应用于样点/像素,并且信令通知量化值;并且(在解码器处)应用去量化。
2.10.2.1预测值调色板
对于调色板条目的编码,保持预测值调色板,在解码调色板编码块之后更新该预测值调色板。
2.10.2.1.1预测值调色板的初始化
预测值调色板在每个条带和每个片开始时初始化。在SPS中信令通知调色板和预测值调色板的最大尺寸。在HEVC-SCC中,在PPS中引入了palette_predictor_initializer_present_flag。当该标志为1时,在比特流中信令通知用于初始化预测值调色板的条目。
根据palette_predictor_initializer_present_flag的值,预测值调色板的尺寸被重置为0或使用PPS中信令通知的预测值调色板初始值条目进行初始化。在HEVC-SCC中,尺寸为0的预测值调色板初始化器被启用,以允许在PPS级别显式禁用预测值调色板初始化。
相应的语法、语义和解码过程定义如下:
7.3.2.2.3序列参数集屏幕内容编解码扩展语法
Figure BDA0003742166000000621
palette_mode_enabled_flag等于1指定调色板模式的解码过程可用于帧内块。palette_mode_enabled_flag等于0指定不应用调色板模式的解码过程。当不存在时,palette_mode_enabled_flag的值被推断为等于0。
palette_max_size指定最大允许调色板尺寸。当不存在时,palette_max_size的值被推断为等于0。
delta_palette_max_predictor_size指定最大允许调色板预测值尺寸和最大允许调色板尺寸之间的差值。当不存在时,delta_palette_max_predictor_size的值被推断为等于0。变量PaletteMaxPredictorSize的推导如下:
PaletteMaxPredictorSize=palette_max_size+delta_palette_max_predictor_size (0-57)
比特流一致性的一个要求是,当palette_max_size等于0时,delta_palette_max_predictor_size的值应该等于0。
sps_palette_predictor_initializer_present_flag等于1指定使用sps_palette_predictor_initializer_present_flag来初始化序列调色板预测值。sps_palette_predictor_initializer_present_flag等于0指定序列调色板预测值中的条目被初始化为等于0。当不存在时,sps_palette_predictor_initializer_present_flag的值被推断为等于0。
比特流一致性的一个要求是,当palette_max_size等于0时,sps_palette_predictor_initializer_present_flag的值应该等于0。
sps_num_palette_predictor_initializer_minus1加1指定序列调色板预测值初始值设定项中的条目数。
比特流一致性的一个要求是sps_num_palette_predictor_initializer_minus1加1的值应小于或等于PaletteMaxPredictorSize。
sps_palette_predictor_initializers[comp][i]指定SPS中第i个调色板条目的第comp个分量的值,该组件用于初始化PredictorPaletteEntries数组。对于0到sps_num_palette_predictor_initializer_minus1范围内的i值,sps_palette_predictor_initializers[0][i]的值应在0到(1<<BitDepthY)-1范围内,包括端值,sps_palette_predictor_initializers[1][i]和sps_palette_predictor_initializers[2][i]的值应在0到(1<<BitDepthC)-1范围内,包括端值。
7.3.2.3.3图片参数集图片内容编码扩展语法
Figure BDA0003742166000000641
pps_palette_predictor_initializer_present_flag等于1指定用于参考PPS的图片的调色板预测值初始值是基于PPS指定的调色板预测值初始值推导的。pps_palette_predictor_initializer_flag等于0指定用于参考PPS的图片的调色板预测值初始值被推断为等于由活动SPS指定的初始值。当不存在时,pps_palette_predictor_initializer_flag的值被推断为等于0。
比特流一致性的一个要求是,当palette_max_size等于0或palette_mode_enabled_flag等于0时,pps_palette_predictor_initializer_flag的值应该等于0。
pps_num_palette_predictor_initializer指定图片调色板预测值初始值设定项中的条目数。
比特流一致性的一个要求是pps_num_palette_predictor_initializer的值应小于或等于PaletteMaxPredictorSize。
调色板预测值变量被初始化如下:
–如果编解码树单元是片中的第一个编解码树单元,则适用以下:
–调用调色板预测值变量的初始化过程
–否则,如果entropy_coding_sync_enabled_flag等于1且CtbAddrInRs%PicWidthInCtbsY等于0或TileId[CtbAddrInTs]不等于TileId[CtbAddrRsToTs[CtbAddrInRs-1]],则适用以下:
–使用当前编解码树块的左上亮度样点的位置(x0,y0)如下推导空间相邻块T的左上亮度样点的位置(xNbT,yNbT):
(xNbT,yNbT)=(x0+CtbSizeY,y0-CtbSizeY) (0-58)
–调用z扫描顺序的块的可用性推导过程,以设置为等于(x0,y0)的位置(xCurr,yCurr)和设置为等于(xNbT,yNbT)的相邻位置(xNbY,yNbY)作为输入,并且将输出分配给availableFlagT。
–调用上下文变量、Rice参数初始化状态和调色板预测值变量的同步过程如下:
–如果availableFlagT等于1,则调用上下文变量、Rice参数初始化状态和调色板预测值变量的同步过程,以TableStateIdxWpp、TableMpsValWpp、TableStatCoeffWpp、PredictorPaletteSizeWpp和TablePredictorPaletteEntriesWpp作为输入。
–否则,适用以下:
–调用调色板预测值变量的初始化过程。
–否则,如果CtbAddrInRs等于slice_segment_address且dependent_slice_segment_flag等于1,则调用上下文变量和Rice参数初始化状态的同步过程,以TableStateIdxDs、TableMpsValDs、TableStatCoeffDs、PredictorPaletteSizeDs和TablePredictorPaletteEntriesDs作为输入。
–否则,适用以下:
–调用调色板预测值变量的初始化过程。
9.3.2.3调色板预测值条目的初始化过程
该过程的输出是初始化的调色板预测值变量PredictorPaletteSize和PredictorPaletteEntries。
变量numComps的推导如下:
numComps=(ChromaArrayType==0)?1:3 (0-59)
–如果pps_palette_predictor_initializer_present_flag等于1,则适用以下:
–PredictorPaletteSize被设置为等于pps_num_palette_predictor_initializer。
–PredictorPaletteEntries数组的推导如下:
for(comp=0;comp<numComps;comp++)
for(i=0;i<PredictorPaletteSize;i++) (0-60)
PredictorPaletteEntries[comp][i]=pps_palette_predictor_initializers[comp][i]
–否则(pps_palette_predictor_initializer_present_flag等于0),如果sps_palette_predictor_initializer_present_flag等于1,则适用以下:
–PredictorPaletteSize设置为等于sps_num_palette_predictor_initializer_minus1加1。
–PredictorPaletteEntries数组的推导如下:
for(comp=0;comp<numComps;comp++)
for(i=0;i<PredictorPaletteSize;i++) (0-61)
PredictorPaletteEntries[comp][i]=sps_palette_predictor_initializers[comp][i]
–否则(pps_palette_predictor_initializer_present_flag等于0且sps_palette_predictor_initializer_present_flag等于0),PredictorPaletteSize被设置为等于0。
2.10.2.1.2预测值调色板的使用
对于调色板预测值中的每个条目,信令通知重用标志以指示其是否是当前调色板的一部分。这在图9中示出。使用零的游程(run)长度编解码递送重用标志。此后,使用0阶指数哥伦布(Exponential Golomb,EG))码,即EG-0,来信令通知新调色板条目的数量。最后,信令通知新调色板条目的组件值。
2.10.2.2预测值调色板的更新
预测值调色板的更新通过以下步骤执行:
1.在解码当前块之前,存在预测值调色板,由PltPred0表示
2.通过首先插入来自PltPred0条目,然后插入当前调色板的新条目,来构建当前调色板表。
3.构建PltPred1:
A.首先将这些添加到当前调色板表中(可能包括来自PltPred0的)
B.如果未满,则根据升序条目索引添加PltPred0中未引用的条目。
2.10.3调色板索引的编解码
如图15所示,使用水平和垂直遍历扫描对调色板索引进行编解码。使用palette_transpose_flag在比特流中明确地信令通知扫描顺序。对于本小节的其余部分,假设扫描是水平的。
调色板索引使用两种调色板样点模式进行编码:“COPY_LEFT”和“COPY_ABOVE”。在“COPY_LEFT”模式下,调色板索引被分配给解码索引。在“COPY_ABOVE”模式下,复制上一行中样点的调色板索引。对于“COPY_LEFT”和“COPY_ABOVE”两种模式,信令通知游程值,游程值指定也使用相同模式编解码的后续样点的数量。
在调色板模式中,逸出样点的索引值是调色板条目的数量。并且,当逸出符号是“COPY_LEFT”或“COPY_ABOVE”模式下游程的一部分时,对每个逸出符号信令通知逸出分量值。调色板索引的编解码如图16所示。
这种语法顺序是按如下方式完成的。首先,信令通知CU的索引值的数量。接下来是使用截断二进制编解码来信令通知整个CU的实际索引值。索引数量和索引值都以旁路模式编解码。这将与索引相关的旁路库分组在一起。然后,调色板样点模式(如有必要)和游程以交错方式被信令通知。最后,与整个CU的逸出样点相对应的分量逸出值被分组在一起,并以旁路模式进行编解码。逸出样点的二进制化是具有三阶的EG编码,即EG-3。
附加的语法元素last_run_type_flag在信令通知索引值之后被信令通知。该语法元素与索引的数量相结合,消除了信令通知与块中最后一个游程相对应的游程值的需要。
在HEVC-SCC中,调色板模式也支持4:2:2、4:2:0和单色色度格式。对于所有色度格式,调色板条目和调色板索引的信令通知几乎是相同的。在非单色格式的情况下,每个调色板条目包括3个分量。对于单色格式,每个调色板条目包括一个分量。对于子采样色度方向,色度样点与可被2整除的亮度样点索引相关联。为CU重建调色板索引后,如果样点只有一个与之相关联的分量,则只使用调色板条目的第一分量。信令通知的唯一区别是逸出分量值。对于每个逸出样点,根据与该样点相关联的分量的数量,信令通知的逸出分量值的数量可能不同。
此外,调色板索引编解码中还有一个索引调整过程。当信令通知调色板索引时,左侧相邻索引或上方相邻索引应该不同于当前索引。因此,通过去除一种可能性,当前调色板索引的范围可以减少1。之后,索引用截断二进制(TB)二进制化来表示。
与该部分相关的文本如下所示,其中CurrPaletteIndex是当前调色板索引,adjustedRefPaletteIndex是预测索引。
变量PaletteIndexMap[xC][yC]指定调色板索引,它是由CurrentPaletteEntries表示的数组的索引。阵列索引xC、yC指定样点相对于图片左上亮度样点的位置(xC,yC)。PaletteIndexMap[xC][yC]的值应在0到MaxPaletteIndex的范围内,包括端值。
变量adjustedRefPaletteIndex的推导如下:
Figure BDA0003742166000000681
Figure BDA0003742166000000691
当CopyAboveIndicesFlag[xC][yC]等于0时,变量CurrPaletteIndex的推导如下:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++
2.10.3.1调色板编码块的解码过程
1.读取预测信息以标记预测值调色板中的哪些条目将被重用;
(palette_predictor_run)
2.读取当前块的新调色板条目
a)num_signalled_palette_entries
b)new_palette_entries
3.基于a)和b)构建CurrentPaletteEntries
4.读取逸出符号存在标志:palette_escape_val_present_flag以推导MaxPaletteIndex
5.编解码有多少样点不是用复制模式/游程模式编码的
a)num_palette_indices_minus1
b)对于未使用复制模式/游程模式编码的每个样点,在当前plt表中对palette_idx_idc进行编码
2.11 Merge估计区域(Merge Estimation Region,MER)
HEVC采用了MER。构建Merge候选列表的方式引入了相邻块之间的依赖性。特别是在嵌入式编码器实施方式中,相邻块的运动估计阶段通常是并行执行的,或者至少是流水线执行的,以增加吞吐量。对于AMVP来说,这不是一个大问题,因为MVP仅用于对运动搜索找到的MV进行差分编解码。然而,用于Merge模式的运动估计阶段通常只包括候选列表的构建和基于成本函数选择哪个候选的决定。由于前面提到的相邻块之间的相关性,相邻块的Merge候选列表不能并行生成,并且成为并行编码器设计的瓶颈。因此,在HEVC中引入了并行Merge估计级别,其指示通过检查候选块是否位于Merge估计区域(MER)中能够独立地导出Merge候选列表的区域。同一MER中的候选块不包括在Merge候选列表中。因此,它的运动数据不需要在列表构建时可用。当该级别例如是32时,32×32区域中的所有预测单元能够并行构建Merge候选列表,因为在相同32×32 MER中的所有Merge候选都没有被插入到列表中。图12图示了示出具有七个CU和十个PU的CTU分割的示例。第一个PU 0的所有潜在Merge候选都是可用的,因为它们在第一个32×32 MER之外。
对于第二MER,当该MER内的Merge估计应该是独立的时,PU 2-6的Merge候选列表不能包括来自这些PU的运动数据。因此,例如,当查看PU 5时,没有可用的Merge候选,因此不会被插入到Merge候选列表中。在这种情况下,PU 5的Merge列表仅包括时域候选(如果可用)和零MV候选。为了使编码器能够折衷并行性和编解码效率,并行Merge估计级别是自适应的,并且在图片参数集中作为log2_parallel_Merge_level_minus2来信令通知。允许以下MER尺寸:4×4(不可能并行Merge估计)、8×8、16×16、32×32和64×64。由更大的MER启用的更高程度的并行化从Merge候选列表中排除了更多的潜在候选。另一方面,这降低了编解码效率。当Merge估计区域大于4×4块时,Merge列表构建的另一个修改开始增加吞吐量。对于具有8×8亮度CB的CU,仅单个Merge候选列表用于CU内的所有PU。
3.由公开的实施例解决的技术问题的示例
(1)有一些设计能够违反子图片约束。
A.仿射构建候选中的TMVP可以在当前子图片的范围之外的并置图片中获取MV。
B.当在双向光流(Bi-Directional Optical Flow,BDOF)和预测细化光流(Prediction Refinement Optical Flow,PROF)中推导梯度时,需要提取两个扩展行和两个扩展列的整数参考样点。这些参考样点可能在当前子图片的范围之外。
C.当在亮度映射色度缩放(luma mapping chroma scaling(LMCS)中推导色度残差缩放因子时,所访问的重建亮度样点可能在当前子图片的范围之外。
D.当推导亮度帧内预测模式、帧内预测的参考样点、CCLM的参考样点、Merge/AMVP/CIIP/IBC/LMCS的空域相邻候选的相邻块可用性、量化参数、CABAC初始化过程、使用左侧和上方语法元素的ctxInc导出以及用于语法元素mtt_split_cu_vertical_flag的ctxInc时,相邻块可能在当前子图片的范围之外。子图片的表示可能导致具有不完整CTU的子图片。CTU分割和CU划分过程可能需要考虑不完整的CTU。
(2)信令通知的与子图片相关的语法元素可以任意大,这可能导致溢出问题。
(3)子图片的表示可能导致非矩形的子图片。
(4)目前,子图片和子图片网格是以4个样点为单位定义的。并且语法元素的长度取决于图片高度除以4。然而,由于当前pic_width_in_luma_samples和pic_height_in_luma_samples应为Max(8,MinCbSizeY)的整数倍,因此可能需要以8个样点为单位定义子图片网格。
(5)SPS语法,pic_width_max_in_luma_samples和pic_height_max_in_luma_samples可能需要被限制为不小于8。
(6)在当前设计中没有考虑参考图片重采样/可缩放性和子图片之间的相互作用。
(7)在时域滤波中,可能需要跨越不同子图片的样点。
(8)当信令通知条带时,在一些情况下,可以在没有信令通知的情况下推断信息。
(9)有可能所有定义的条带都不能覆盖整个图片或子图片。
(10)两个子图片的ID可以是相同的。
(11)pic_width_max_in_luma_samples/CtbSizeY可能等于0,导致无意义的Log2()运算。
(12)PH中的ID比PPS中的更优选,但不如SPS中的优选,这是不一致的。
(13)PPS中的log2_transform_skip_max_size_minus2是根据SPS中的sps_transform_skip_enabled_flag进行解析的,导致解析依赖关系。
(14)用于去方块的loop_filter_cross_subpic_enabled_flag仅考虑当前子图片,而不考虑相邻子图片。
(15)在基于子块的时域merging候选的推导过程中,当subpic_treatment_as_pic_flag[SubPicIdx]等于1时,并置图片内的并置子块的纵坐标的范围不受限制,可以参考子图片外的样点。
(16)在应用中,子图片被设计为提供灵活性,使得序列图片中相同位置的区域可以被独立解码或提取。该区域可能有一些特殊要求。例如,它可能是需要高质量的感兴趣区域(Region of Interest,ROI))。在另一示例中,它可以用作快速浏览视频的轨迹。在又一示例中,它可以提供低精度、低复杂度和低功耗的比特流,该比特流可以被馈送给对复杂度敏感的终端用户。所有这些应用可能要求子图片的区域应该用不同于其他部分的配置来编码。然而,在当前的VVC中,没有能够独立配置子图片的机制。
4.示例技术和实施例
下面详细列出了应被视为解释一般概念的示例。这些项目不应以狭隘的方式解释。此外,这些项目可以以任何方式组合。在下文中,时域滤波器用于表示需要其他图片中的样点的滤波器。Max(x,y)得出x和y中较大的一个。Min(x,y)得出x和y中较小的一个。
1.假设所需子图片的左上角坐标是(xTL,yTL)并且所需子图片的右下角坐标是(xBR,yBR),在图片中获取时域MV预测值以生成仿射运动候选(例如,构造的仿射Merge候选)所在的位置(称为位置RB)必须在所需子图片中。
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
b.在一个示例中,如果具有坐标(x,y)的位置RB在所需的子图片之外,则时域MV预测值被视为不可用。
i.在一个示例中,如果x>xBR,则位置RB在所需的子图片之外。
ii.在一个示例中,如果y>yBR,则位置RB在所需的子图片之外。
iii.在一个示例中,如果x<xTL,则位置RB在所需的子图片之外。
iv.在一个示例中,如果y<yTL,则位置RB在所需的子图片之外。
c.在一个示例中,如果位置RB在所需的子图片之外,则利用RB的替换。
i.可替换地,此外,替换位置应该在所需的子图片中。
d.在一个示例中,位置RB被裁剪至所需的子图片中。
i.在一个示例中,x被裁剪为x=Min(x,xBR)。
ii.在一个示例中,y被裁剪为y=Min(y,yBR)。
iii.在一个示例中,x被裁剪为x=Max(x,xTL)。
iv.在一个示例中,y被裁剪为y=Max(y,yTL)。
e.在一个示例中,位置RB可以是并置图片中当前块的对应块内的右下位置。
f.所提出的方法可以用于需要从不同于当前图片的图片中访问运动信息的其他编解码工具。
g.在一个示例中,是否应用上述方法(例如,位置RB必须在所需的子图片中(例如,如1.a和/或1.b中所要求的那样))可以取决于在VPS/DPS/SPS/PPS/APS/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[SubPicIdx],其中SubPicIdx是覆盖当前块的子图片的子图片索引。
2.假设所需子图片的左上角坐标是(xTL,yTL),所需子图片的右下角坐标是(xBR,yBR),则在插值过程中不使用的参考中提取整数样点所在的位置(称为位置S)必须在所需子图片中。
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
b.在一个示例中,如果具有坐标(x,y)的位置S在所需的子图片之外,则参考样点被视为不可用。
i.在一个示例中,如果x>xBR,则位置S在所需的子图片之外。
ii.在一个示例中,如果y>yBR,则位置S在所需的子图片之外。
iii.在一个示例中,如果x<xTL,则位置S在所需的子图片之外。
iv.在一个示例中,如果y<yTL,则位置S在所需的子图片之外。
c.在一个示例中,位置S被裁剪到所需的子图片中。
i.在一个示例中,x被裁剪为x=Min(x,xBR)。
ii.在一个示例中,y被裁剪为y=Min(y,yBR)。
iii.在一个示例中,x被裁剪为x=Max(x,xTL)。
iv.在一个示例中,y被裁剪为y=Max(y,yTL)。
d.在一个示例中,位置S是否必须在所需的子图片中(例如,如2.a和/或2.b中所要求的那样)可以取决于在VPS/DPS/SPS/PPS/APS/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[SubPicIdx],其中SubPicIdx是覆盖当前块的子图片的子图片索引。
e.在一个示例中,提取的整数样点用于生成BDOF和/或PORF中的梯度。
3.假设所需子图片的左上角坐标是(xTL,yTL),所需子图片的右下角坐标是(xBR,yBR),提取重建亮度样点值所在的位置(称为位置R)可以在所需子图片中。
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
b.在一个示例中,如果坐标为(x,y)的位置R在所需的子图片之外,则参考样点被视为不可用。
i.在一个示例中,如果x>xBR,则位置R在所需的子图片之外。
ii.在一个示例中,如果y>yBR,则位置R在所需的子图片之外。
iii.在一个示例中,如果x<xTL,则位置R在所需的子图片之外。
iv.在一个示例中,如果y<yTL,则位置R在所需的子图片之外。
c.在一个示例中,位置R被裁剪到所需的子图片中。
i.在一个示例中,x被裁剪为x=Min(x,xBR)。
ii.在一个示例中,y被裁剪为y=Min(y,yBR)。
iii.在一个示例中,x被裁剪为x=Max(x,xTL)。
iv.在一个示例中,y被裁剪为y=Max(y,yTL)。
d.在一个示例中,位置R是否必须在所需的子图片中(例如,如3.a和/或3.b中所要求的那样)可以取决于在VPS/DPS/SPS/PPS/APS/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[SubPicIdx],其中SubPicIdx是覆盖当前块的子图片的子图片索引。
e.在一个示例中,所获取的亮度样点用于推导LMCS中(多个)色度分量的缩放因子。
4.假设所需子图片的左上角坐标是(xTL,yTL),所需子图片的右下角坐标是(xBR,yBR),则BT/TT/QT划分的图片边界检查、BT/TT/QT深度推导和/或CU划分标志的信令通知所在的位置(称为位置N)必须在所需子图片中。
a.在一个示例中,所需的子图片是覆盖当前块的子图片。
b.在一个示例中,如果坐标为(x,y)的位置N在所需的子图片之外,则参考样点被视为不可用。
i.在一个示例中,如果x>xBR,则位置N在所需的子图片之外。
ii.在一个示例中,如果y>yBR,则位置N在所需的子图片之外。
iii.在一个示例中,如果x<xTL,则位置N在所需的子图片之外。
iv.在一个示例中,如果y<yTL,则位置N在所需的子图片之外。
c.在一个示例中,位置N被裁剪到所需的子图片中。
i.在一个示例中,x被裁剪为x=Min(x,xBR)。
ii.在一个示例中,y被裁剪为y=Min(y,yBR)。
iii.在一个示例中,x被裁剪为x=Max(x,xTL)。
iv.在一个示例中,y被裁剪为y=Max(y,yTL)。
d.在一个示例中,位置N是否必须在所需的子图片中(例如,如4.a和/或4.b中所要求的那样)可以取决于在VPS/DPS/SPS/PPS/APS/条带标头/片组标头中信令通知的一个或多个语法元素。例如,语法元素可以是subpic_treated_as_pic_flag[SubPicIdx],其中SubPicIdx是覆盖当前块的子图片的子图片索引。
5.基于历史的运动矢量预测(HMVP)表可以在解码一个图片中的新子图片之前被重置。
a.在一个示例中,可以重置用于IBC编解码的HMVP表
b.在一个示例中,可以重置用于帧间编解码的HMVP表
c.在一个实例中,可以重置用于帧内编解码的HMVP表
6.子图片语法元素可以以N(例如N=8、32等)个样点为单位来定义。
a.在一个示例中,子图片标识符网格的每个元素的宽度以N个样点为单位。
b.在一个示例中,子图片标识符网格的每个元素的高度以N个样点为单位。
c.在一个示例中,N被设置为CTU的宽度和/或高度。
7.图片宽度和图片高度的语法元素可以被限制为不小于K(K>=8)。
a.在一个示例中,图片宽度可以需要被限制为不小于8。
b.在一个示例中,图片高度可以需要被限制为不小于8。
8.一致性比特流应当满足不允许对一个视频单元(例如,序列)启用子图片编解码和自适应精度转换(Adaptive resolution conversion,ARC)/动态精度转换(Dynamicresolution conversion,DRC)/参考图片重采样(Reference picture resampling,RPR)。
a.在一个示例中,启用子图片编解码的信令通知可以在不允许ARC/DRC/RPR的条件下。
i.在一个示例中,当子图片被启用时,诸如subpics_present_flag等于1,对于该SPS有效的所有图片,pic_width_in_luma_samples等于max_width_in_luma_sample。
b.可替换地,可以对一个视频单元(例如,序列)启用子图片编解码和ARC/DRC/RPR两者。
i.在一个示例中,一致性比特流将满足由于ARC/DRC/RPR产生的下采样子图片仍将是宽度为K个CTU并且高度为M个CTU的形式,其中K和M都是整数。
ii.在一个示例中,一致性比特流将满足对于不位于图片边界(例如,右边界和/或下边界)的子图片,由于ARC/DRC/RPR产生的下采样子图片将仍然是宽度为K个CTU并且高度为M个CTU的形式,其中K和M都是整数。
iii.在一个示例中,可以基于图片精度来自适应地改变CTU尺寸。
1)在一个示例中,可以在SPS中信令通知最大CTU尺寸。对于具有较低精度的每个图片,可以基于降低的精度相应地改变CTU尺寸。
2)在一个示例中,可以在SPS和PPS和/或子图片级别中信令通知CTU尺寸。
9.可以约束语法元素subpic_grid_col_width_minus1和subpic_grid_row_height_minus1。
a.在一个示例中,subpic_grid_col_width_minus1必须不大于(或必须小于)T1。
b.在一个示例中,subpic_grid_row_height_minus1必须不大于(或必须小于)T2。
c.在一个示例中,在一致性比特流中,subpic_grid_col_width_minus1和/或subpic_grid_row_height_minus1必须遵循诸如项目3.a或3.b的约束
d.在一个示例中,3.a中的T1和/或3.b中的T2可以取决于视频编解码标准的档次/级别/层级。
e.在一个示例中,3.a中的T1可以取决于图片宽度。
i.例如,T1等于pic_width_max_in_luma_samples/4或pic_width_max_in_luma_samples/4+Off。Off可以是1、2、-1、-2等。
f.在一个示例中,3.b中的T2可以取决于图片宽度。
i.例如,T2等于pic_height_max_in_luma_samples/4或pic_height_max_in_luma_samples/4-1+Off。Off可以是1、2、-1、-2等。
10.约束两个子图片之间的边界必须是两个CTU之间的边界。
a.换句话说,CTU不能被一个以上的子图片覆盖。
b.在一个示例中,subpic_grid_col_width_minus1的单位可以是CTU宽度(例如32、64、128),而不是如VVC中的4。子图片网格宽度应为(subpic_grid_col_width_minus1+1)*CTU宽度。
c.在一个示例中,subpic_grid_col_height_minus1的单位可以是CTU高度(例如32、64、128),而不是如VVC中的4。子图片网格高度应为(subpic_grid_col_height_minus1+1)*CTU高度。
d.在一个示例中,在一致性比特流中,如果应用子图片方案,则必须满足约束。
11.约束子图片的形状必须是矩形的。
a.在一个示例中,在一致性比特流中,如果应用子图片方案,则必须满足约束。
b.子图片可以只包含矩形条带。例如,在一致性比特流中,如果应用子图片方案,则必须满足约束。
12.约束两个子图片不能重叠。
a.在一个示例中,在一致性比特流中,如果应用子图片方案,则必须满足约束。
b.可替换地,两个子图片可以彼此重叠。
13.约束图片中的任何位置必须被一个且仅一个子图片覆盖。
a.在一个示例中,在一致性比特流中,如果应用子图片方案,则必须满足约束。
b.可替换地,一个样点可以不属于任何子图片。
c.可替换地,一个样点可以属于一个以上的子图片。
14.可以约束在映射到相同序列中存在的每个精度的SPS中定义的子图片应该服从上述约束的位置和/或尺寸。
a.在一个示例中,映射到相同序列中存在的精度的SPS中定义的子图片的宽度和高度应该是N(例如8、16、32)个亮度样点的整数倍。
b.在一个示例中,可以为某些层定义子图片,并且可以将子图片映射到其他层。
i.例如,可以为序列中具有最高精度的层定义子图片。
ii.例如,可以为序列中具有最低精度的层定义子图片。
iii.可以在SPS/VPS/PPS/条带标头中信令通知为哪一层定义子图片。
c.在一个示例中,当子图片和不同精度都被应用时,所有精度(例如,宽度或/和高度)可以是给定精度的整数倍。
d.在一个示例中,SPS中定义的子图片的宽度和/或高度可以是CTU尺寸的整数倍(例如,M)。
e.可替换地,序列中的子图片和不同精度可以不被同时允许。
15.子图片可以只应用于某个(某些)层
a.在一个示例中,SPS中定义的子图片可以仅应用于序列中具有最高精度的层。
b.在一个示例中,SPS中定义的子图片可以仅应用于序列中具有最低时域id的层。
c.可以由SPS/VPS/PPS中的一个或多个语法元素来指示子图片可以应用于哪个(哪些)层。
d.可以由SPS/VPS/PPS中的一个或多个语法元素来指示子图片不能应用于哪个(哪些)层。
16.在一个示例中,可以在不使用subpic_grid_idx的情况下信令通知子图片的位置和/或维度。
a.在一个示例中,可以信令通知子图片的左上位置。
b.在一个示例中,可以信令通知子图片的右下位置。
c.在一个示例中,可以信令通知子图片的宽度。
d.在一个示例中,可以信令通知子图片的高度。
17.对于时域滤波器,当执行样点的时域滤波时,可以仅仅使用当前样点所属的相同子图片内的样点。所需样点可能在当前样点所属的同一图片中,也可能在其他图片中。
18.在一个示例中,是否和/或如何应用分割方法(诸如QT、水平BT、垂直BT、水平TT、垂直TT或不分割等)可以取决于当前块(或分区)是否跨越子图片的一个或多个边界。
a.在一个示例中,当图片边界被子图片边界代替时,也可以应用VVC中用于分割的图片边界处理方法。
b.在一个示例中,是否解析表示分割方法(诸如QT、水平BT、垂直BT、水平TT、垂直TT或不分割等)的语法元素(例如标志)可以取决于当前块(或分区)是否跨越子图片的一个或多个边界。
19.不是将一个图片划分成多个子图片并且每个子图片独立编解码,而是提出将图片划分成至少两个子区域集合,第一集合包括多个子图片,第二集合包括所有剩余的样点。
a.在一个示例中,第二集合中的样点不在任何子图片中。
b.可替换地,此外,可以基于第一集合的信息对第二集合进行编码/解码。
c.在一个示例中,可以利用默认值来标记样点/M×K子区域是否属于第二集合。
i.在一个示例中,默认值可以被设置为等于(max_subpics_minus1+K),其中K是大于1的整数。
ii.可以将默认值分配给subpic_grid_idx[i][j]以指示网格属于第二集合。
20.提出语法元素subpic_grid_idx[i][j]不能大于max_subpics_minus1。
a.例如,约束要求在一致性比特流中,subpic_grid_idx[i][j]不能大于max_subpics_minus1。
b.例如,编解码subpic_grid_idx[i][j]的码字不能大于max_subpics_minus1。
21.提出从0到max_subpics_minus1的任何整数必须等于至少一个subpic_grid_idx[i][j]。
22.在解码一个图片中的新子图片之前,可以重置IBC虚拟缓冲区。
a.在一个示例中,IBC虚拟缓冲区中的所有样点可以被重置为-1。
23.在解码一个图片中的新子图片之前,可以重置调色板条目列表。
a.在一个示例中,在解码一个图片中的新子图片之前,可以将PredictorPaletteSize设置为等于0。
24.是否信令通知条带的信息(例如,条带的数量和/或条带的范围)可以取决于片的数量和/或图块的数量。
a.在一个示例中,如果图片中的图块的数量是1,则num_slices_in_pic_minus1不被信令通知并且被推断为0。
b.在一个示例中,如果图片中的砖的数量是1,则可以不信令通知条带的信息(例如,条带的数量和/或条带的范围)。
c.在一个示例中,如果图片中图块的数量是1,则条带的数量可以被推断为1。并且条带覆盖了整个图片。在一个示例中,如果图片中的图块的数量是1,则single_brick_per_slice_flag不被信令通知并且被推断为1。
i.可替换地,如果图片中的图块数量为1,则single_brick_per_slice_flag必须为1。
d.示例性语法设计如下:
Figure BDA0003742166000000812
25.是否信令通知slice_address可以与条带是否被信令通知为矩形(例如,rect_slice_flag是否等于0或1)无关。
a.示例性语法设计如下:
if([[rect_slice_flag||]]NumBricksInPic>1)
slice_address u(v)
26.当条带被信令通知为矩形时,是否信令通知slice_address可以取决于条带的数量。
Figure BDA0003742166000000811
Figure BDA0003742166000000821
27.是否信令通知num_bricks_in_slice_minus1可以取决于slice_address和/或图片中的图块数量。
a.示例性语法设计如下:
Figure BDA0003742166000000822
28.是否信令通知loop_filter_across_bricks_enabled_flag可以取决于片的数量和/或图块的数量。
a.在一个示例中,如果图块的数量小于2,则不信令通知loop_filter_across_bricks_enabled_flag。
b.示例性语法设计如下:
Figure BDA0003742166000000823
29.比特流一致性的要求是图片的所有条带必须覆盖整个图片。
a.当条带被信令通知为矩形时,必须满足该要求(例如,rect_slice_flag等于1)。
30.比特流一致性的要求是子图片的所有条带必须覆盖整个子图片。
a.当条带被信令通知为矩形时,必须满足该要求(例如,rect_slice_flag等于1)。
31.比特流一致性的要求是条带不能与一个以上的子图片重叠。
32.比特流一致性的要求是片不能与一个以上的子图片重叠。
33.比特流一致性的要求是图块不能与一个以上的子图片重叠。
在下面的讨论中,维度为CW×CH的基本单元块(basic unit block,BUB)是矩形区域。例如,BUB可以是编解码树块(Coding Tree Block,CTB)。
34.在一个示例中,可以信令通知子图片的数量(表示为N)。
a.如果使用子图片(例如subpics_present_flag等于1),则在一致性比特流上可以需要在图片中有至少两个子图片。
b.可替换地,可以信令通知N减d(即,N-d),其中d是整数,诸如0、1或2。
c.例如,可以利用固定长度编解码来对N-d进行编解码,例如u(x)。
i.在一个示例中,x可以是固定的数字,诸如8。
ii.在一个示例中,可以在信令通知N-d之前信令通知x或x-dx,其中dx是整数,诸如0、1或2。信令通知的x可以不大于一致性比特流中的最大值。
iii.在一个示例中,x可以即时导出。
1)例如,x可以根据图片中BUB总数(表示为M)来导出。例如,x=Ceil(log2(M+d0))+d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
2)M可以推导为M=Ceiling(W/CW)×Ceiling(H/CH),其中W和H表示图片的宽度和高度,CW和CH表示BUB的宽度和高度。
d.例如,可以利用一元编解码或截断一元编解码来对N-d进行编解码。
e.在一个示例中,N-d的允许最大值可以是固定的数字。
i.可替换地,N-d的允许最大值可以根据图片中BUB总数(表示为M)来导出。例如,x=Ceil(log2(M+d0))+d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
35.在一个示例中,可以通过一个或多个所选择的位置(例如,左上/右上/左下/右下位置)和/或其宽度和/或其高度的指示来信令通知子图片。
a.在一个示例中,可以以维度为CW×CH的基本单元块(BUB)的粒度来信令通知子图片的左上位置。
i.例如,可以信令通知关于子图片的左上BUB的BUB的列索引(表示为Col)。
1)例如,可以信令通知Col-d,其中d是整数,诸如0、1或2。
a)可替换地,d可以等于先前编解码的子图片的Col加上d1,其中d1是整数,诸如-1、0或1。
b)可以信令通知Col-d的符号。
ii.例如,可以信令通知关于子图片的左上BUB的BUB的行索引(表示为Row)。
1)例如,可以信令通知Row-d,其中d是整数,诸如0、1或2。
a)可替换地,d可以等于先前编解码的子图片的Row加上d1,其中d1是整数,诸如-1、0或1。
b)可以信令通知Row-d的符号。
iii.上面提到的行/列索引(标记为Row)可以用编解码树块(CTB)单位来表示,例如,相对于图片左上位置的x或y坐标可以除以CTB尺寸并被信令通知。
iv.在一个示例中,是否信令通知子图片的位置可以取决于子图片索引。
1)在一个示例中,对于图片内的第一个子图片,左上位置可以不被信令通知。
a)可替换地,此外,左上位置可被推断,例如推断为(0,0)。
2)在一个示例中,对于图片内的最后一个子图片,左上位置可以不信令通知。
a)左上位置可以根据先前信令通知的子图片的信息来推断。
b.在一个示例中,子图片的宽度/高度/选定位置的指示可以用截断一进制/截断二进制/一进制/固定长度/第K个EG编解码(例如,K=0、1、2、3)来信令通知。
c.在一个示例中,子图片的宽度可以用维度为CW×CH的BUB的粒度来信令通知。
i.例如,可以信令通知子图片中BUB的列数(表示为W)。
ii.例如,可以信令通知W-d,其中d是整数,诸如0、1或2。
1)可替换地,d可以等于先前编解码的子图片的W加上d1,其中d1是整数,诸如-1、0或1。
2)可以信令通知W-d的符号。
d.在一个示例中,子图片的高度可以用维度为CW×CH的BUB的粒度来信令通知。
i.例如,可以信令通知子图片中BUB的行数(表示为H)。
ii.例如,可以信令通知H-d,其中d是整数,诸如0、1或2。
1)可替换地,d可以等于先前编解码的子图片的H加上d1,其中d1是整数,诸如-1、0或1。
2)可以信令通知H-d的符号。
e.在一个示例中,可以利用固定长度编解码来对Col-d进行编解码,例如u(x)。
i.在一个示例中,x可以是固定的数字,诸如8。
ii.在一个示例中,可以在信令通知Col-d之前信令通知x或x-dx,其中dx是整数,诸如0、1或2。信令通知的x可以不大于一致性比特流中的最大值。
iii.在一个示例中,x可以即时导出。
1)例如,x可以根据图片中BUB列的总数(表示为M)来导出。例如x=Ceil(log2(M+d0))+d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
2)M可以被导出为M=Ceiling(W/CW),其中W表示图片的宽度,CW表示BUB的宽度。
f.在一个示例中,可以利用固定长度编解码来对Row-d进行编解码,例如u(x)。
i.在一个示例中,x可以是固定的数字,诸如8。
ii.在一个示例中,可以在信令通知Row-d之前信令通知x或x-dx,其中dx是整数,诸如0、1或2。信令通知的x可以不大于一致性比特流中的最大值。
iii.在一个示例中,x可以即时导出。
1)例如,x可以根据图片中BUB行的总数(表示为M)来导出。例如x=Ceil(log2(M+d0))+d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
2)M可以导出为M=Ceiling(H/CH),其中H表示图片的高度,CH表示BUB的高度。
g.在一个示例中,可以用固定长度编解码来对W-d进行编解码,例如u(x)。
i.在一个示例中,x可以是固定的数字,诸如8。
ii.在一个示例中,可以在信令通知W-d之前信令通知x或x-dx,其中dx是整数,诸如0、1或2。信令通知的x可以不大于一致性比特流中的最大值。
iii.在一个示例中,x可以即时导出。
1)例如,x可以根据图片中BUB列的总数(表示为M)来导出。例如x=Ceil(log2(M+d0))+d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
2)M可以被导出为M=Ceiling(W/CW),其中W表示图片的宽度,CW表示BUB的宽度。
h.在一个示例中,可以用固定长度编解码来对H-d进行编解码,例如u(x)。
i.在一个示例中,x可以是固定的数字,诸如8。
ii.在一个示例中,可以在信令通知H-d之前信令通知x或x-dx,其中dx是整数,诸如0、1或2。信令通知的x可以不大于一致性比特流中的最大值。
iii.在一个示例中,x可以即时导出。
1)例如,x可以根据图片中BUB行的总数(表示为M)来导出。例如x=Ceil(log2(M+d0))+d1,其中d0和d1是两个整数,诸如-2、-1、0、1、2等。
2)M可以导出为M=Ceiling(H/CH),其中H表示图片的高度,CH表示BUB的高度。
i.可以为所有子图片信令通知Col-d和/或Row-d。
i.可替换地,可以不为所有子图片都信令通知Col-d和/或Row-d。
1)如果子图片的数量小于2(等于1),则可以不信令通知Col-d和/或Row-d。
2)例如,对于第一个子图片(例如,子图片索引(或子图片ID)等于0),可以不信令通知Col-d和/或Row-da)当它们没有被信令通知时,它们可以被推断为0。
3)例如,对于最后的子图片(例如,子图片索引(或子图片ID)等于NumSubPics-1),可以不信令通知Col-d和/或Row-d。
a)当它们没有被信令通知时,可以根据已经信令通知的子图片的位置和维度来推断它们。
j.可以为所有子图片信令通知W-d和/或H-d。
i.可替换地,可以不为所有子图片都信令通知W-d和/或H-d。
1)如果子图片的数量少于2(等于1),则可以不信令通知W-d和/或H-d。
2)例如,对于最后的子图片(例如,子图片索引(或子图片ID)等于NumSubPics-1),可以不信令通知W-d和/或H-d。
a)当它们没有被信令通知时,可以根据已经信令通知的子图片的位置和维度来推断它们。
k.在上面的项目符号中,BUB可以是编解码树块(CTB)。
36.在一个示例中,应该在已经信令通知CTB尺寸(例如,log2_ctu_size_minus5)的信息之后信令通知子图片的信息。
37.可以不为每个子图片信令通知subpic_treated_as_pic_flag[i]。相反,对于所有子图片,信令通知一个subpic_treated_as_pic_flag来控制子图片是否被视为图片。
38.可以不为每个子图片信令通知loop_filter_across_subpic_enabled_flag[i]。相反,对于所有子图片,信令通知一个loop_filter_across_subpic_enabled_flag来控制是否可以跨子图片应用环路滤波器。
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)。
a.在一个示例中,如果子图片的数量小于2(等于1),则可以不信令通知subpic_treated_as_pic_flag[i]和/或loop_filter_across_subpic_enabled_flag[i]。
40.当使用子图片时,可以应用RPR。
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}。
b.在一个示例中,如果图片A和图片B的精度不同,则图片A的CTB尺寸和图片B的CTB尺寸可以不同。
c.在一个示例中,假设维度为SAW×SAH的子图片SA在图片A中,维度为SBW×SBH的子图片SB在图片B中,SA与SB相对应,图片A和图片B之间沿水平和垂直方向的缩放比例是Rw和Rh,则
i.SAW/SBW或SBW/SAW应等于Rw。
ii.SAH/SBH或SBH/SAH应等于Rh。
41.当使用子图片时(例如,sub_pics_present_flag为真),可以在条带标头中信令通知子图片索引(或子图片ID),并且条带地址被解释为子图片中的地址而不是整个图片中的地址。
42.如果第一子图片和第二子图片不是相同的子图片,则要求第一子图片的子图片ID必须不同于第二子图片的子图片ID。
a.在一个示例中,在一致性比特流中,如果i不等于j,则要求sps_subpic_id[i]必须不等于sps_subpic_id[j]
b.在一个示例中,在一致性比特流中,如果i不等于j,则要求pps_subpic_id[i]必须不等于pps_subpic_id[j]
c.在一个示例中,在一致性比特流中,如果i不等于j,则要求ph_subpic_id[i]必须不等于ph_subpic_id[j]
d.在一个示例中,在一致性比特流中,如果i不等于j,则要求SubpicIdList[i]必须不等于SubpicIdList[j]
e.在一个示例中,可以信令通知表示为D[i]的差值,D[i]等于X_subpic_id[i]-X_subpic_id[i-P]。
i.例如,X可以是sps、pps或ph。
ii.例如,P等于1。
iii.例如,i>P。
iv.例如,D[i]必须大于0。
v.例如,可以信令通知D[i]-1。
43.提出了指定左上CTU的水平或垂直位置的语法元素(例如subpic_ctu_top_left_x或subpic_ctu_top_left_y)的长度可以被推导为Ceil(Log2(SS))比特,其中,SS必须大于0。这里,Ceil()函数返回大于或等于输入值的最小整数值。
a.在一个示例中,当语法元素指定左上CTU的水平位置(例如,subpic_ctu_top_left_x)时,SS=(pic_width_max_in_luma_samples+RR)/CtbSizeY。
b.在一个示例中,当语法元素指定左上CTU的垂直位置(例如,subpic_ctu_top_left_y)时,SS=(pic_height_max_in_luma_samples+RR)/CtbSizeY。
c.在一个示例中,RR是非零整数,诸如CtbSizeY-1。
44.提出了指定子图片的左上CTU的水平或垂直位置的语法元素(例如subpic_ctu_top_left_x或subpic_ctu_top_left_y)的长度可以被推导为Ceil(Log2(SS))比特,其中,SS必须大于0。这里,Ceil()函数返回大于或等于输入值的最小整数值。
a.在一个示例中,当语法元素指定子图片的左上CTU的水平位置(例如subpic_ctu_top_left_x)时,SS=(pic_width_max_in_luma_samples+RR)/CtbSizeY。
b.在一个示例中,当语法元素指定子图片的左上CTU的垂直位置(例如,subpic_ctu_top_left_y)时,SS=(pic_height_max_in_luma_samples+RR)/CtbSizeY。
c.在一个示例中,RR是非零整数,诸如CtbSizeY-1。
45.提出了指定子图片的宽度或高度(例如subpic_width_minus1或subpic_height_minus1)的语法元素的默认值(可以加上诸如1的偏移量P)可以被推导为Ceil(Log2(SS))-P,其中,SS必须大于0。这里,Ceil()函数返回大于或等于输入值的最小整数值。
a.在一个示例中,当语法元素指定子图片的默认宽度(例如subpic_width_minus1)(可以加上偏移量P)时,SS=(pic_width_max_in_luma_samples+RR)/CtbSizeY。
b.在一个示例中,当语法元素指定子图片的默认高度(例如subpic_height_minus1)(可以加上偏移量P)时,SS=(pic_height_max_in_luma_samples+RR)/CtbSizeY。
c.在一个示例中,RR是非零整数,诸如CtbSizeY-1。
46.提出了如果确定应该信令通知子图片ID的信息,则应该至少在SPS、PPS和图片标头中的一个中信令通知子图片ID的信息。
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。
47.提出了如果在SPS、PPS和图片标头中的任何一个中没有信令通知子图片ID的信息,但是确定应该信令通知该信息,则应该分配默认ID。
a.在一个示例中,如果ps_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的偏移量。示例性描述如下:
for(i=0;i<=sps_num_subpics_minus1;i++)
SubpicIdList[i]=sps_subpic_id_present_flag?
(sps_subpic_id_signalling_present_flag?sps_subpic_id[i]:
(ph_subpic_id_signalling_present_flag?ph_subpic_id[i]:
(pps_subpic_id_signalling_present_flag?pps_subpic_id[i]:i))):i
48.提出了如果在对应的PPS中信令通知子图片ID的信息,则不在图片标头中信令通知它们。
a.示例性语法设计如下,
Figure BDA0003742166000000901
Figure BDA0003742166000000911
b.在一个示例中,如果在SPS中信令通知子图片ID,则根据在SPS中信令通知的子图片ID的信息来设置子图片ID;否则,如果在PPS中信令通知子图片ID,则根据在PPS中信令通知的子图片ID的信息来设置子图片ID,否则,如果在图片标头中信令通知子图片ID,则根据在图片标头中信令通知的子图片ID的信息来设置子图片ID。示例性描述如下,
for(i=0;i<=sps_num_subpics_minus1;i++)
SubpicIdList[i]=sps_subpic_id_present_flag?
(sps_subpic_id_signalling_present_flag?sps_subpic_id[i]:
(pps_subpic_id_signalling_present_flag?pps_subpic_id[i]:
(ph_subpic_id_signalling_present_flag?ph_subpic_id[i]:i))):i
c.在一个示例中,如果在图片标头中信令通知子图片ID,则根据在图片标头中信令通知的子图片ID的信息来设置子图片ID;否则,如果在PPS中信令通知子图片ID,则根据在PPS中信令通知的子图片ID的信息来设置子图片ID,否则,如果在SPS中信令通知子图片ID,则根据在SPS中信令通知的子图片ID的信息来设置子图片ID。示例性描述如下,
for(i=0;i<=sps_num_subpics_minus1;i++)
SubpicIdList[i]=sps_subpic_id_present_flag?
(ph_subpic_id_signalling_present_flag?ph_subpic_id[i]:
(pps_subpic_id_signalling_present_flag?pps_subpic_id[i]:
(sps_subpic_id_signalling_present_flag?sps_subpic_id[i]:i))):i
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侧的子图片的子图片边界上进行环路滤波。
a.在一个示例中,如果loop_filter_across_subpic_enabled_flag[P]等于0或者loop_filter_across_subpic_enabled_flag[Q]等于0,则不对E进行滤波。
b.在一个示例中,如果loop_filter_across_subpic_enabled_flag[P]等于0并且loop_filter_across_subpic_enabled_flag[Q]等于0,则不对E进行滤波。
c.在一个示例中,是否对E的两侧进行滤波是分开控制的。
i.例如,当且仅当loop_filter_across_subpic_enabled_flag[P]等于1时,E的P侧被滤波。
ii.例如,当且仅当loop_filter_across_subpic_enabled_flag[Q]等于1时,E的Q侧被滤波。
50.提出了PPS中的指定用于变换跳过的最大块尺寸的语法元素SE(诸如log2_transform_skip_max_size_minus2)的信令/解析应该与SPS中的任何语法元素(诸如sps_transform_skip_enabled_flag)去耦合。
a.示例性的语法变化如下:
Figure BDA0003742166000000931
b.可替换地,可以在SPS中信令通知SE,诸如:
Figure BDA0003742166000000932
c.可替换地,可以在图片标头中信令通知SE,诸如:
Figure BDA0003742166000000933
51.在解码第一块之后是否和/或如何更新HMVP表(或命名为列表/存储/映射等)可以取决于第一块是否是用GEO编解码的。
a.在一个示例中,如果第一块是用GEO编解码的,则在解码第一块之后,可以不更新HMVP表。
b.在一个示例中,如果第一块是用GEO编解码的,则在解码第一块之后,可以更新HMVP表。
i.在一个示例中,可以利用由GEO划分的一个分区的运动信息来更新HMVP表。
ii.在一个示例中,可以利用由GEO划分的多个分区的运动信息来更新HMVP表。
52.在CC-ALF中,当前处理单元(例如,由两个ALF虚拟边界界定的ALF处理单元)之外的亮度样点被排除用于滤波对应处理单元中的色度样点。
a.当前处理单元之外的填充亮度样点可用于滤波对应处理单元中的色度样点。
i.本文中公开的任何填充方法都可以用于填充亮度样点。
b.可替换地,当前处理单元之外的亮度样点可用于滤波对应处理单元中的色度样点。
子图片级的参数的信令通知
53.提出了可以与子图片相关联地信令通知控制子图片的编解码行为的参数集。也就是说,对于每个子图片,可以信令通知参数集。该参数集可以包括:
a.对于帧间和/或帧内条带/图片,子图片中亮度分量的量化参数(a.Quantization Parameter,QP)或QP增量。
b.对于帧间和/或帧内条带/图片,子图片中色度分量的量化参数(QP)或QP增量。
c.参考图片列表管理信息。
d.帧间和/或帧内条带/图片CTU尺寸。
e.帧间和/或帧内条带/图片的最小CU尺寸。
f.帧间和/或帧内条带/图片的最大TU尺寸。
g.帧间和/或帧内条带/图片的最大/最小四叉树(Qual-Tree,QT)划分尺寸。
h.帧间和/或帧内条带/图片的最大/最小四叉树(QT)划分深度。
i.帧间和/或帧内条带/图片的最大/最小二叉树(BT)划分尺寸。
j.帧间和/或帧内条带/图片的最大/最小二叉树(Binary-Tree,BT)划分深度。
k.帧间和/或帧内条带/图片的最大/最小三叉树(Ternary-Tree,TT)划分尺寸。
l.帧间和/或帧内条带/图片的最大/最小三叉树(TT)划分深度。
m.帧间和/或帧内条带/图片的最大/最小多树(Multi-Tree,MTT)划分尺寸。
n.帧间和/或帧内条带/图片的最大/最小多树(MTT)划分深度。
o.控制编解码工具(包括开/关控制和/或设置控制),包括:(缩写见JVET-P2001-v14)。
i.加权预测
ii.SAO
iii.ALF
iv.变换跳过
v.BDPCM
vi.联合Cb-Cr残差编解码(JCCR)
vii.参考环绕
viii.TMVP
ix.sbTMVP
x.AMVR
xi.BDOF
xii.SMVD
xiii.DMVR
xiv.MMVD
xv.ISP
xvi.MRL
xvii.MIP
xviii.CCLM
xix.CCLM并置色度控制
xx.帧内和/或帧间的MTS
xxi.帧间的MTS
xxii.SBT
xxiii.SBT最大尺寸
xxiv.仿射
xxv.仿射类型
xxvi.调色板
xxvii.BCW
xxviii.IBC
xxix.CIIP
xxx.基于三角形的运动补偿
xxxi.LMCS
p.与VPS/SPS/PPS/图片标头/条带标头中的参数具有相同含义的任何其他参数,但控制子图片。
54.可以首先信令通知一个标志来指示所有子图片是否共享相同的参数。
a.可替换地,此外,如果参数是共享的,则不需要为不同的子图片信令通知多个参数集。
b.可替换地,此外,如果参数不共享,则需要进一步信令通知不同子图片的多个参数集。
55.可以应用不同子图片之间的参数预测编解码。
a.在一个示例中,可以对两个子图片的相同语法元素的两个值的差值进行编解码。
56.可以首先信令通知默认参数集。然后可以进一步信令通知与默认值相比的差值。
a.可替换地,此外,可以首先信令通知一个标志来指示所有子图片的参数集是否与默认集中的参数集相同。
57.在一个示例中,可以在SPS或PPS或图片标头中信令通知控制子图片的编解码行为的参数集。
a.可替换地,可以在SEI消息(例如在JVET-P2001-v14中定义的子图片级别信息SEI消息)或VUI消息中信令通知控制子图片编解码行为的参数集。
58.在该示例中,可以与子图片ID相关联地信令通知控制子图片的编解码行为的参数集。
59.在一个示例中,可以信令通知不同于VPS/SPS/PPS/图片标头/条带标头的视频单元(称为SPPS,子图片参数集),其包括控制子图片的编解码行为的参数集。
a.在一个示例中,信令通知与SPPS相关联的SPPS_index。
b.在一个示例中,为子图片信令通知SPPS_index,以指示与子图片相关联的SPPS。
60.在一个示例中,控制子图片的编解码行为的参数集中的第一控制参数可以覆盖该参数集中的第二控制参数,或者被第二控制参数覆盖,但是控制相同的编解码行为。例如,子图片的参数集中的诸如BDOF的编解码工具的开/关控制标志可以覆盖参数集之外的编解码工具的开/关控制标志或者被其覆盖。
a.该参数集之外的第二控制参数可以在VPS/SPS/PPS/图片标头/条带标头中。
61.当应用任何上述示例时,与条带/片/图块/子图片相关联的语法元素取决于与包含当前条带的子图片相关联的参数,而不是取决于与图片/序列相关联的参数。
62.约束在一致性比特流中,控制子图片的编解码行为的参数集中的第一控制参数必须与参数集之外的第二控制参数相同,但是控制相同的编解码行为。
63.在一个示例中,在SPS中信令通知第一标志,每个子图片一个标志,并且第一标志指定是否为与第一标志相关联的子图片信令通知general_constraint_info()语法结构。当对于子图片存在时,general_constraint_info()语法结构指示没有应用于CLVS上的子图片的工具。
a.可替换地,为每个子图片信令通知一个general_constraint_info()语法结构。
b.可替换地,在SPS中信令通知第二标志,仅一次,并且第二标志指定第一标志在SPS中对于每个子图片是存在还是不存在。
64.在一个示例中,规定SEI消息或某个VUI参数以指示某些编解码工具没有被应用或以特定方式应用于CLVS中的一个或多个子图片的集合(即,子图片集合的编解码条带),使得当子图片集合被提取和解码(例如,由移动设备解码)时,解码复杂度相对较低,因此解码的功耗相对较低。
a.可替换地,可以在DPS、VPS、SPS或一个独立的NAL单元中信令通知相同的信息。
调色板编解码
65.调色板尺寸和/或plt预测值尺寸的最大数量可以被限制为等于m*N,例如,N=8,其中,m是整数。
a.m或m+offset的值可以作为第一语法元素被信令通知,其中,offset是整数,诸如0。
i.第一语法元素可以通过一元编解码、指数Golomb编解码、莱斯编解码、固定长度编解码来二进制化。
Merge估计区域(MER)
66.可以信令通知的MER的尺寸可以取决于最大或最小CU或CTU尺寸。本文的术语“尺寸”可以指宽度、高度、宽度和高度,或者宽度×高度。
a.在一个示例中,可以信令通知S-Delta或M-S,其中,S是MER的尺寸。Delta和S是取决于最大或最小CU或CTU尺寸的整数。
例如:
i.Delta可以是最小CU或CTU尺寸。
ii.M可以是最大CU或CTU尺寸。
iii.Delta可以是最小CU或CTU尺寸+偏移量,其中,偏移量是整数,诸如1或-1。
iv.M可以是最大CU或CTU尺寸+偏移量,其中,偏移量是整数,诸如1或-1。
67.在一致性比特流中,MER的尺寸可能受到限制,这取决于CU或CTU的最大或最小尺寸。本文的术语“尺寸”可以指宽度、高度、宽度和高度,或者宽度×高度。
a.例如,MER的尺寸不允许大于或等于最大CU尺寸或CTU尺寸。
b.例如,MER的尺寸不允许大于最大CU尺寸或CTU尺寸。
c.例如,MER的尺寸不允许小于或等于最小CU尺寸或CTU尺寸的尺寸。
d.例如,MER的尺寸不允许小于最小CU或CTU尺寸的尺寸。
68.MER的尺寸可以通过索引来信令通知。
a.MER的尺寸可以通过1-1映射被映射到索引。
69.MER的尺寸或其索引可以由一元码、指数Golomb码、莱斯码或固定长度码来编解码。
考虑子图片的样点坐标调整
70.是否和/或如何裁剪并置图片内的并置子块的纵坐标(由yColSb表示)可以取决于当前子图片的subpic_treated_as_pic_flag[SubPicIdx]。
a.当当前子图片的subpic_treated_as_pic_flag[SubPicIdx]等于1时,并置图片内的并置子块的纵坐标(由yColSb表示)被裁剪。
b.在一个示例中,使用Clip3(T1,T2,yColSb)修改并置子块的纵坐标。
i.在一个示例中,yColSb可使用ySb+tempMv[1]来推导,其中ySb表示基本位置的纵坐标,其可以是当前编解码子块的右下中心样点或左上位置,并且tempMv[1]是偏移,其可从空间相邻编解码单元推导出来。
ii.在一个示例中,T1等于yCtb,T2等于Min(SubPicBotBoundaryPos,yCtb+(1<<CtbLog2SizeY)-1)),其中SubPicBotBoundaryPos表示当前子图片的底部边界的纵坐标,其可以等于Min(pic_height_max_in_luma_samples-1,(subpic_ctu_top_left_y[SubPicIdx]+subpic_height_minus1[SubPicIdx]+1)*CtbSizeY-1)。
子图片之间边界上的ALF和SAO
71.是否和/或如何对覆盖两个子图片之间的边界的区域中的样点应用ALF和/或SAO可以取决于两个子图片的信息。
a.是否和/或如何将ALF和/或SAO应用于第一子图片中的样点以及覆盖第一子图片和第二子图片之间的边界的区域中的样点可以取决于第二子图片的信息。
b.在一个示例中,如果在两个子图片中的至少一个子图片中子图片边界上禁用环路滤波器(例如,loop_filter_cross_subpic_enabled_flag等于0),则不应用覆盖两个子图片之间的边界的区域中的样点上的ALF和/或SAO。
c.在一个示例中,仅当在两个子图片中的子图片边界上禁用环路滤波器(例如,loop_filter_cross_subpic_enabled_flag等于0)时,才不应用覆盖两个子图片之间的边界的区域中的样点上的ALF和/或SAO。
d.如果边界是底部行坐标等于y0的顶部子图片A和顶部行坐标等于y0+1的底部子图片B之间的水平边界,则该区域包括行y0-M和行y0+1+N之间的两个子图片中的样点,包括行y0-M和行y0+1+N,其中,M和N是整数。
e.如果边界是最右列坐标等于x0的左子图片A和最左列坐标等于x0+1的右子图片B之间的垂直边界,则该区域包括列x0-M和列x0+1+N之间的两个子图片中的样点,包括列x0-M和列x0+1+N,其中,M和N是整数。
f.上述项目符号中的m和N可以如下被确定:
i.M和/或N可以取决于颜色格式和/或颜色分量
ii.M和/或N可以是固定的数字,诸如1、2、3或4
iii.M和N可以相同。
iv.M和N可以不同。
v.对于SAO和ALF,M和/或N可以不同地设置。
vi.可以信令通知M和/或N,诸如在VPS/SPS/DPS/PPS/APS/序列报头/图片报头/切片报头/CTU/CU中。
vii.M可以被设置为在ALF或SAO中使用的子图片A中样点的行数(或列数),以滤波子图片B中的样点
viii.N可以被设置为在ALF或SAO中使用的子图片B中样点的行数(或列数),以滤波子图片A中的样点
5.实施例
在以下实施例中,新添加的文本是粗体斜体,删除的文本用“[[]]”标记。
5.1实施例1:仿射构造的Merge候选的子图片约束
8.5.5.6用于构造的仿射控制点运动矢量Merge候选的推导过程
该过程的输入是:
–指定当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xCb,yCb),
–指定当前亮度编解码块的宽度和高度的两个变量cbWidth和cbHeight,
–可用性标志availableA0、availableA1、availableA2、availableB0、availableB1、availableB2、availableB3
–样点位置(xNbA0,yNbA0)、(xNbA1,yNbA1)、(xNbA2,yNbA2)、(xNbB0,yNbB0)、(xNbB1,yNbB1)、(xNbB2,yNbB2)和(xNbB3,yNbB3)。
该过程的输出是:
–所构建的仿射控制点运动矢量Merge候选的可用性标志availableFlagConstK,其中K=1..6,
–参考索引refIdxLXConstK,其中K=1..6,X是0或1,
–预测列表利用标志predFlagLXConstK,其中K=1..6,X是0或1,
–仿射运动模型索引motionModelIdcConstK,其中K=1..6,
–双向预测加权索引bcwIdxConstK,其中K=1..6,
–所构建的仿射控制点运动矢量cpMvLXConstK[cpIdx],其中cpIdx=0..2,K=1..6,X是0或1。
第四(并置的右下)控制点运动矢量cpMvLXCorner[3]、参考索引refIdxLXCorner[3]、预测列表利用标志predFlagLXCorner[3]和可用性标志availableFlagCorner[3]的推导如下,其中X是0和1:
–时域Merge候选的参考索引refIdxLXCorner[3]被设置为等于0,其中X为0或1。
–变量mvLXCol和availableFlagLXCol的推导如下,其中X为0或1:
–如果slice_temporal_mvp_enabled_flag等于0,则将mvLXCol的两个分量都设置为等于0,并将availableFlagLXCol设置为等于0。
–否则(slice_temporal_mvp_enabled_flag等于1),以下情况适用:
xColBr=xCb+cbWidth (8-601)
yColBr=yCb+cbHeight (8-602)
Figure BDA0003742166000001011
–如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY,
Figure BDA0003742166000001021
–变量colCb指定覆盖由
((xColBr>>3)<<3,(yColBr>>3)<<3)给定的修改位置的亮度编解码块位于由ColPic指定的并置图片内。
–亮度位置(xColCb,yColCb)被设置为等于由colCb指定的并置亮度编解码模块的左上样点相对于由ColPic指定的并置图片的左上样点。
–调用条款8.5.2.12中指定的并置运动矢量的推导过程,以currCb、colCb、(xColCb、yColCb)、refIdxLXCorner[3]和sbFlag设为等于0作为输入,并且将输出分配给mvLXCol和availableFlagLXCol。
–否则,mvLXCol的两个分量都被设置为等于0,availableFlagLXCol被设置为等于0。
5.2实施例2:仿射构造的Merge候选的子图片约束
8.5.5.6用于构造的仿射控制点运动矢量Merge候选的推导过程该过程的输入是:
–指定当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xCb,yCb),
–指定当前亮度编解码块的宽度和高度的两个变量cbWidth和cbHeight,
–可用性标志availableA0、availableA1、availableA2、availableB0、availableB1、availableB2、availableB3
–样点位置(xNbA0,yNbA0)、(xNbA1,yNbA1)、(xNbA2,yNbA2)、(xNbB0,yNbB0)、(xNbB1,yNbB1)、(xNbB2,yNbB2)和(xNbB3,yNbB3)。
该过程的输出是:
–所构建的仿射控制点运动矢量Merge候选的可用性标志availableFlagConstK,其中K=1..6,
–参考索引refIdxLXConstK,其中K=1..6,X是0或1,
–预测列表利用标志predFlagLXConstK,其中K=1..6,X是0或1,–仿射运动模型索引motionModelIdcConstK,其中K=1..6,
–双向预测加权索引bcwIdxConstK,其中K=1..6,
–所构建的仿射控制点运动矢量cpMvLXConstK[cpIdx],其中cpIdx=0..2,K=1..6,X是0或1。
第四个(并置的右下角)控制点运动矢量cpMvLXCorner[3]、参考索引refIdxLXCorner[3]、预测列表利用标志predFlagLXCorner[3]和可用性标志availableFlagCorner[3]的推导如下,其中X是0和1:
–时域Merge候选的参考索引refIdxLXCorner[3]被设置为等于0,其中X是0和1。
–变量mvLXCol和availableFlagLXCol的推导如下,其中X是0和1:
–如果slice_temporal_mvp_enabled_flag等于0,则将mvLXCol的两个分量都设置为等于0,并将availableFlagLXCol设置为等于0。
–否则(slice_temporal_mvp_enabled_flag等于1),以下情况适用:
ColBr=xCb+cbWidth (8-601)
yColBr=yCb+cbHeight (8-602)
Figure BDA0003742166000001031
–如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY,[[yColBr小于pic_height_in_luma_samples,xColBr小于pic_width_in_luma_samples,则适用]]:
–变量colCb指定覆盖由((xColBr>>3)<<3,(yColBr>>3)<<3)给定的修改位置的亮度编解码块处于由ColPic指定的并置图片内。
–亮度位置(xColCb,yColCb)被设置为等于colCb指定的并置亮度编解码模块的左上样点相对于由ColPic指定的并置图片的左上样点。
–调用条款8.5.2.12中指定的并置运动矢量的推导过程,以currCb、colCb、(xColCb、yColCb)、refIdxLXCorner[3]和sbFlag设为等于0作为输入,并且将输出分配给mvLXCol和availableFlagLXCol。
–否则,mvLXCol的两个分量都被设置为等于0,availableFlagLXCol被设置为等于0。
5.3实施例3:在子图片约束下提取整数样点
8.5.6.3.3.1亮度整数样点获取过程
该过程的输入是:
–以全样点为单位的亮度位置(xIntL,yIntL),
–亮度参考样点阵列refPicLXL,
该过程的输出是预测亮度样点值predSampleLXL
变量shift被设置为等于Max(2,14-BitDepthY)。
变量picW被设置为等于pic_width_in_luma_samples,变量picH被设置为等于pic_height_in_luma_samples。
以全样点为单位的亮度位置(xInt、yInt)推导如下:
Figure BDA0003742166000001041
xInt=Clip3(0,picW-1,sps_ref_wraparound_enabled_flag? (8-782)
ClipH((sps_ref_wraparound_offset_minus1+1)*MinCbSizeY,picW,xIntL):xIntL)
yInt=Clip3(0,picH-1,yIntL)
(8-783)
预测亮度样点值predSampleLXL的推导如下:
predSampleLXL=refPicLXL[xInt][yInt]<<shift3 (8-784)
5.4实施例4:在LMCS的色度残差缩放中推导变量invAvgLuma
8.7.5.3利用色度样点的亮度相关色度残差缩放处理的图片重建
该过程的输入是:
–当前色度变换块的左上色度样点相对于当前图片的左上色度样点的色度位置(xCurr,yCurr),
–指定色度变换块宽度的变量nCurrSw,
–指定色度变换块高度的变量nCurrSh,
–指定当前色度变换块的编解码块标志的变量tuCbfChroma,
–指定当前块的色度预测样点的(nCurrSw)×(nCurrSh)数组predSamples,
–指定当前块的色度残差样点的(nCurrSw)×(nCurrSh)数组resSamples,
该过程的输出是重建的色度图片样点阵列recSamples。
变量sizeY被设置为等于Min(CtbSizeY,64)。
对于i=0..nCurrSw 1,j=0..nCurrSh 1,重建的色度图片样点
recSamples的推导如下:
–…
–否则,应用以下:
–…
–变量currPic指定当前图片中重建亮度样点的数组。
–对于变量varScale的推导,应用以下有序步骤:
1.变量invAvgLuma的推导如下:
–数组recLuma[i]和变量cnt的推导如下,其中,i=0..(2*sizeY-1):
–变量cnt被设置为等于0。
Figure BDA0003742166000001061
–当availL等于TRUE时,数组recLuma[i](其中i=0..sizeY-1)被设置为等于
Figure BDA0003742166000001067
Figure BDA0003742166000001062
其中i=0..sizeY–1,并且cnt设置为等于sizeY
–当availT等于TRUE时,数组recLuma[cnt+i](其中,i=0..sizeY–1)被设置为等于
Figure BDA0003742166000001068
Figure BDA0003742166000001064
其中,i=0..sizeY–1,并且cnt设置为等于(cnt+sizeY)
–变量invAvgLuma的推导如下:
–如果cnt大于0,则应用以下:
invAvgLuma=Clip1Y((+(cnt>>1))>>Log2(cnt)) (8-1013)
–否则(cnt等于0),则应用以下:
invAvgLuma=1<<(BitDepthY–1) (8-1014)
5.5实施例5:以除了4个样点之外的N个(例如N=8或32)样点为单位定义子图片元素的示例
7.4.3.3序列参数集RBSP语义
subpic_grid_col_width_minus1加1指定子图片标识符网格的每个元素的宽度,以
Figure BDA0003742166000001065
个样点为单位。语法元素的长度为
Figure BDA0003742166000001069
比特。
变量NumSubPicGridCols的推导如下:
Figure BDA00037421660000010710
Figure BDA00037421660000010712
加1指定子图片标识符网格的每个元素的高度,以4个样点为单位。语法元素的长度为
Figure BDA00037421660000010711
比特。
变量NumSubPicGridRows的推导如下:
Figure BDA00037421660000010713
7.4.7.1通用条带标头语义
变量SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos和SubPicBotBoundaryPos的推导如下:
Figure BDA00037421660000010714
Figure BDA0003742166000001087
5.6实施例6:将图片宽度和图片高度限制为等于或大于8
7.4.3.3序列参数集RBSP语义
Figure BDA0003742166000001088
指定参考SPS的每个解码图片的以亮度样点为单位的最大宽度。pic_width_max_in_luma_samples不应等于0,并且应为[[MinCbSizeY]]
Figure BDA0003742166000001081
的整数倍。
Figure BDA0003742166000001089
指定参考SPS的每个解码图片的以亮度样点为单位的最大高度。pic_height_max_in_luma_samples不应等于0,并且应为[[MinCbSizeY]]
Figure BDA0003742166000001082
的整数倍。
5.7实施例7:针对BT/TT/QT划分、BT/TT/QT深度推导和/或CU划分标志的信令的子图片边界检查
6.4.2允许的二进制划分过程
变量allowBtSplit的推导如下:
–…
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_VER
–y0+cbHeight大于[[pic_height_in_luma_samples]]
Figure BDA0003742166000001084
Figure BDA0003742166000001083
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_VER
–cbHeight大于MaxTbSizeY
–x0+cbWidth大于[[pic_width_in_luma_samples]]
Figure BDA0003742166000001085
Figure BDA0003742166000001086
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_HOR
–cbWidth大于MaxTbSizeY
–y0+cbHeight大于[[pic_height_in_luma_samples]]
Figure BDA0003742166000001091
Figure BDA0003742166000001092
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–x0+cbWidth大于[[pic_width_in_luma_samples]]
Figure BDA0003742166000001093
Figure BDA0003742166000001094
–y0+cbHeight大于[[pic_height_in_luma_samples]]
Figure BDA0003742166000001095
Figure BDA0003742166000001096
–cbWidth大于minQtSize
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_HOR
–x0+cbWidth大于[[pic_width_in_luma_samples]]
Figure BDA0003742166000001097
Figure BDA0003742166000001098
–y0+cbHeight小于或等于[[pic_height_in_luma_samples]]
Figure BDA0003742166000001099
Figure BDA00037421660000010910
6.4.3允许的三进制划分过程
变量allowTtSplit的推导如下:
–如果下列一个或多个条件为真,allowTtSplit将设置为等于FALSE:
–cbSize小于或等于2*MinTtSizeY
–cbWidth大于Min(MaxTbSizeY,maxTtSize)
–cbHeight大于Min(MaxTbSizeY,maxTtSize)
–mttDepth大于或等于maxMttDepth
–x0+cbWidth大于[[pic_width_in_luma_samples]]
Figure BDA00037421660000010911
Figure BDA0003742166000001102
–y0+cbHeight大于[[pic_height_in_luma_samples]]
Figure BDA0003742166000001103
Figure BDA0003742166000001104
–treeType等于DUAL_TREE_CHROMA,并且(cbWidth/SubWidthC)*(cbHeight/SubHeightC)小于或等于32
–treeType等于DUAL_TREE_CHROMA,modeType等于MODE_TYPE_INTRA
–否则,allowTtSplit设置为TRUE。
7.3.8.2编解码树单元语法
Figure BDA0003742166000001101
7.3.8.4编解码树语法
Figure BDA0003742166000001121
Figure BDA0003742166000001131
5.8实施例8:定义子图片的示例
Figure BDA0003742166000001132
Figure BDA0003742166000001141
5.9实施例9:定义子图片的示例
Figure BDA0003742166000001142
Figure BDA0003742166000001151
5.10实施例10:定义子图片的示例
Figure BDA0003742166000001161
Figure BDA0003742166000001171
5.11实施例11:定义子图片的示例
Figure BDA0003742166000001172
Figure BDA0003742166000001181
Figure BDA0003742166000001182
5.12实施例:考虑子图片的去方块
8.8.3去方块滤波过程
8.8.3.1概述
该过程的输入是去方块之前的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
该过程的输出是去方块后的修改的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
首先对图片中的垂直边缘进行滤波。然后,利用由垂直边缘滤波过程修改的样点作为输入,对图片中的水平边缘进行滤波。每个CTU的CTB中的垂直和水平边缘在编解码单元的基础上被单独处理。编解码单元中的编解码块的垂直边缘从编解码块左侧的边缘开始被滤波,按照它们的几何顺序通过边缘向编解码块的右侧前进。编解码单元中编解码块的水平边缘被滤波,从编解码块顶部的边缘开始,按照它们的几何顺序通过边缘向编解码块的底部前进。
注意–尽管在本规范中,滤波过程是以图片为基础进行指定的,但只要解码器正确考虑了处理依赖顺序以产生相同的输出值,滤波过程也可以以编解码单元为基础实现,并具有等同的结果。
去方块滤波过程应用于图片的所有编解码子块边缘和变换块边缘,除了以下类型的边缘:
–图片边界上的边缘,
–[[当loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0时,与子图片的边界重合的边缘]]
–当PPS_loop_filter_cross_virtual_boundaries_disabled_flag等于1时,与图片的虚拟边界重合的边缘,
–当loop_filter_cross_tiles_enabled_flag等于0时,与片边界重合的边缘,
–当loop_filter_cross_slices_enabled_flag等于0时,与条带边界重合的边缘,
–当slice_deblocking_filter_disabled_flag等于1时,与条带的上边界或左边界重合的边缘,
–slice_deblocking_filter_disabled_flag等于1的条带内边缘,
–不与亮度分量的4×4样点网格边界相对应的边缘,
–不与色度分量的8×8样点网格边界相对应的边缘,
–亮度分量中边缘两侧的intra_bdpcm_luma_flag等于1的边缘,
–色度分量中边缘两侧的intra_bdpcm_chroma_flag等于1的边缘,
–不是相关变换单元的边缘的色度子块的边缘。
一个方向的去方块滤波过程
该过程的输入是:
–指定当前是处理亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA)的变量treeType,
–当treeType等于DUAL_TREE_LUMA时,去方块之前的重建图片,即数组recPictureL
–当ChromaArrayType不等于0且treeType等于DUAL_TREE_CHROMA时,数组recPictureCb和recPictureCr
–指定是对垂直边缘(EDGE_VER)还是水平边缘(EDGE_HOR)进行滤波的变量edgeType。
该过程的输出是去方块后的修改的重建图片,即:
–当treeType等于DUAL_TREE_LUMA时,数组recPictureL
–当ChromaArrayType不等于0且treeType等于DUAL_TREE_CHROMA时,数组recPictureCb和recPictureCr
变量firstCompIdx和lastCompIdx的推导如下:
firstCompIdx=(treeType==DUAL_TREE_CHROMA)?1:0 (8-1010)
lastCompIdx=(treeType==DUAL_TREE_LUMA||ChromaArrayType==0)?0:2 (8-1011)
对于由颜色分量索引cIdx指示的编解码单元的每个颜色分量的每个编解码单元和每个编解码块具有编解码块宽度nCbW、编解码块高度nCbH和编解码块的左上样点的位置(xCb,yCb),其中cIdx范围从firstCompIdx到lastCompIdx,包括first compidx和lastCompIdx,当cIdx等于0时,或者当cIdx不等于0且edgeType等于EDGE_VER并且xCb%8等于0时,或者当cIdx不等于0且edgeType等于EDGE_HOR且yCb%8等于0时,通过以下有序步骤对边缘进行滤波:
2.变量filterEdgeFlag的推导如下:
–如果edgeType等于EDGE_VER,并且下列一个或多个条件为真,则filterEdgeFlag被设置为等于0:
–当前编解码块的左边界是图片的左边界。
–[[当前编解码块的左边界是子图片的左边界或右边界,并且loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0。]]
–当前编解码块的左边界是片的左边界,并且loop_filter_cross_tiles_enabled_flag等于0。
–当前编解码块的左边界是条带的左边界,并且loop_filter_cross_slices_enabled_flag等于0。
–当前编解码块的左边界是图片的垂直虚拟边界中的一个,并且VirtualBoundariesDisabledFlag等于1。
–否则,如果edgeType等于EDGE_HOR,并且以下一个或多个条件为真,则变量filterEdgeFlag被设置为等于0:
–当前亮度编解码块的顶部边界是图片的顶部边界。
–[[当前编解码块的顶部边界是子图片的顶部或底部边界,并且loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0。]]
–当前编解码块的顶部边界是片的顶部边界,并且loop_filter_cross_tiles_enabled_flag等于0。
–当前编解码块的顶部边界是条带的顶部边界,并且loop_filter_cross_slices_enabled_flag等于0。
–当前编解码块的顶部边界是图片的水平虚拟边界中的一个,并且VirtualBoundariesDisabledFlag等于1。
–否则,filterEdgeFlag被设置为等于1。
Figure BDA0003742166000001211
该过程的输入包括:
–样点值pi和qi,其中i=0..3,
–pi和qi的位置,(xPi,yPi)和(xQi,yQi),其中i=0..2,
–变量dE,
–变量dEp和dEq分别包含对样点p1和q1进行滤波的决定,
–变量tC
该过程的输出是:
–经滤波样点的数量nDp和nDq,
–经滤波的样点值pi’和qj’,其中i=0..nDp-1,j=0..nDq–1。
取决于dE的值,应用以下过程
–如果变量dE等于2,则nDp和nDq都设置为等于3,并且应用以下强滤波:
p0′=Clip3(p0-3*tC,p0+3*tC,(p2+2*p1+2*p0+2*q0+q1+4)>>3) (8-1150)
p1′=Clip3(p1-2*tC,p1+2*tC,(p2+p1+p0+q0+2)>>2) (8-1151)
p2′=Clip3(p2-1*tC,p2+1*tC,(2*p3+3*p2+p1+p0+q0+4)>>3) (8-1152)
q0′=Clip3(q0-3*tC,q0+3*tC,(p1+2*p0+2*q0+2*q1+q2+4)>>3) (8-1153)
q1′=Clip3(q1-2*tC,q1+2*tC,(p0+q0+q1+q2+2)>>2) (8-1154)
q2′=Clip3(q2-1*tC,q2+1*tC,(p0+q0+q1+3*q2+2*q3+4)>>3) (8-1155)
–否则,nDp和nDq都设置为0,并应用以下弱滤波:
–应用以下:
Δ=(9*(q0-p0)-3*(q1-p1)+8)>>4 (8-1156)
–当Abs(Δ)小于tC*10时,应用以下有序步骤:
–滤波的样点值p0’和q0’指定如下:
Δ=Clip3(-tC,tC,Δ) (8-1157)
p0′=Clip1(p0+Δ) (8-1158)
q0′=Clip1(q0-Δ) (8-1159)
–当dEp等于1时,滤波的样点值p1’指定如下:
Δp=Clip3(-(tC>>1),tC>>1,(((p2+p0+1)>>1)-p1+Δ)>>1) (8-1160)
p1′=Clip1(p1+Δp) (8-1161)
–当dEq等于1时,滤波的样点值q1’指定如下:
Δq=Clip3(-(tC>>1),tC>>1,(((q2+q0+1)>>1)-q1-Δ)>>1) (8-1162)
q1′=Clip1(q1+Δq) (8-1163)
–nDp被设置为等于dEp+1,nDq被设置为等于dEq+1。当nDp大于0且包括包含样点p0的编解码块的编解码单元的pred_mode_plt_flag等于1时,nDp被设置为等于0
当nDq大于0且包括包含样点q0的编解码块的编解码单元的pred_mode_plt_flag等于1时,nDq被设置为等于0
Figure BDA0003742166000001231
该过程的输入是:
–变量maxFilterLengthP和maxFilterLengthQ,
–样点pi和qj,其中i=0..maxFilterLengthP并且j=0..maxFilterLengthQ,
–pi和qj的位置(xPi,yPi)和(xQj,yQj),其中i=0..maxFilterLengthP-1并且j=0..maxFilterLengthQ-1,
–变量tC
该过程的输出是:
–滤波的样点值pi’和qj’,其中i=0..maxFilterLengthP-1并且j=0..maxFilterLengthQ-1。
变量refMiddle的推导如下:
–如果maxFilterLengthP等于maxFilterLengthQ且maxFilterLengthP等于5,则应用以下:
refMiddle=(p4+p3+2*(p2+p1+p0+q0+q1+q2)+q3+q4+8)>>4 (8-1164)
–否则,如果maxFilterLengthP等于maxFilterLengthQ且
maxFilterLengthP不等于5,则应用以下:
refMiddle=(p6+p5+p4+p3+p2+p1+2*(p0+q0)+q1+q2+q3+q4+q5+q6+8)>>4 (8-1165)
–否则,如果下列条件中的一个为真,
–maxFilterLengthQ等于7且maxFilterLengthP等于5,
–maxFilterLengthQ等于5且maxFilterLengthP等于7,
应用以下:
refMiddle=(p5+p4+p3+p2+2*(p1+p0+q0+q1)+q2+q3+q4+q5+8)>>4 (8-1166)
–否则,如果下列条件之一为真,
–maxFilterLengthQ等于5且maxFilterLengthP等于3,
–maxFilterLengthQ等于3且maxFilterLengthP等于5,
应用以下:
refMiddle=(p3+p2+p1+p0+q0+q1+q2+q3+4)>>3 (8-1167)
–否则,如果maxFilterLengthQ等于7且maxFilterLengthP等于3,则
应用以下:
refMiddle=(2*(p2+p1+p0+q0)+p0+p1+q1+q2+q3+q4+q5+q6+8)>>4 (8-1168)
–否则,应用以下:
refMiddle=(p6+p5+p4+p3+p2+p1+2*(q2+q1+q0+p0)+q0+q1+8)>>4 (8-1169)
变量refP和refQ的推导如下:
refP=(pmaxFilterLengtP+pmaxFilterLengthP-1+1)>>1 (8-1170)
refQ=(qmaxFilterLengtQ+qmaxFilterLengthQ-1+1)>>1 (8-1171)
变量fi和tCPDi定义如下:
–如果maxFilterLengthP等于7,则应用以下:
f0..6={59,50,41,32,23,14,5} (8-1172)
tCPD0..6={6,5,4,3,2,1,1} (8-1173)
–否则,如果maxFilterLengthP等于5,则应用以下:
f0..4={58,45,32,19,6} (8-1174)
tCPD0..4={6,5,4,3,2} (8-1175)
–否则,应用以下:
f0..2={53,32,11} (8-1176)
tCPD0..2={6,4,2} (8-1177)
变量gj和tCQDj定义如下:
–如果maxFilterLengthQ等于7,则应用以下:
g0..6={59,50,41,32,23,14,5}
(8-1178)
tCQD0..6={6,5,4,3,2,1,1} (8-1179)
–否则,如果maxFilterLengthQ等于5,则应用以下:
g0..4={58,45,32,19,6} (8-1180)
tCQD0..4={6,5,4,3,2} (8-1181)
–否则,应用以下:
g0..2={53,32,11} (8-1182)
tCQD0..2={6,4,2} (8-1183)
滤波的样点值pi’和qj’的推导如下,其中i=0..maxFilterLengthP-1并且j=0..maxFilterLengthQ-1:
pi′=Clip3(pi-(tC*tCPDi)>>1,pi+(tC*tCPDi)>>1,(refMiddle*fi+refP*(64-fi)+32)>>6) (8-1184)
qj′=Clip3(qj-(tC*tCQDj)>>1,qj+(tC*tCQDj)>>1,(refMiddle*gj+refQ*(64-gj)+32)>>6) (8-1185)
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值pi’被对应的输入样点值pi代替,其中i=0..maxFilterLengthP-1。
当包括包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值qi’被对应的输入样点值qj代替,其中j=0..maxFilterLengthQ-1。
Figure BDA0003742166000001251
Figure BDA0003742166000001261
只有当ChromaArrayType不等于0时,才会调用此过程。
该过程的输入是:
–变量maxFilterLength,
–色度样点值pi和qi,其中i=0..maxFilterLengthCbCr,
–pi和qi的色度位置(xPi,yPi)和(xQi,yQi),其中i=0..maxFilterLengthCbCr-1,
–变量tC
该过程的输出是滤波的样点值pi’和qi’,其中i=0..maxFilterLengthCbCr-1。
滤波的样点值pi’和qi’的推导如下,其中i=0..maxFilterLengthCbCr-1:
–如果maxFilterLengthCbCr等于3,则应用以下强滤波:
p0′=Clip3(p0-tC,p0+tC,(p3+p2+p1+2*p0+q0+q1+q2+4)>>3) (8-1186)
p1′=Clip3(p1-tC,p1+tC,(2*p3+p2+2*p1+p0+q0+q1+4)>>3) (8-1187)
p2′=Clip3(p2-tC,p2+tC,(3*p3+2*p2+p1+p0+q0+4)>>3) (8-1188)
q0′=Clip3(q0-tC,q0+tC,(p2+p1+p0+2*q0+q1+q2+q3+4)>>3) (8-1189)
q1′=Clip3(q1-tC,q1+tC,(p1+p0+q0+2*q1+q2+2*q3+4)>>3) (8-1190)
q2′=Clip3(q2-tC,q2+tC,(p0+q0+q1+2*q2+3*q3+4)>>3) (8-1191)
–否则,应用以下弱滤波:
Δ=Clip3(-tC,tC,((((q0-p0)<<2)+p1-q1+4)>>3)) (8-1192)
p0′=Clip1(p0+Δ) (8-1193)
q0′=Clip1(q0-Δ) (8-1194)
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值pi’被对应的输入样点值pi代替,其中i=0..maxFilterLengthCbCr-1。
当包括包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值qi’被定义的输入样点值qi代替,其中i=0..maxFilterLengthCbCr-1:
Figure BDA0003742166000001271
5.13实施例:考虑子图片的去方块(解决方案#2)
8.8.3去方块滤波过程
8.8.3.1概述
该过程的输入是去方块之前的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
该过程的输出是去方块后的修改的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
去方块滤波过程应用于图片的所有编解码子块边缘和变换块边缘,除了以下类型的边缘:
–图片边界上的边缘,
–[[与loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0的子图片的边界重合的边缘]]
Figure BDA0003742166000001272
–当VirtualBoundariesDisabledFlag等于1时,与图片的虚拟边界重合的边缘,
–…
8.8.3.2一个方向的去方块滤波过程
该过程的输入是:
–指定当前是处理亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA)的变量treeType,
3.变量filterEdgeFlag的推导如下:
–如果edgeType等于EDGE_VER,并且下列一个或多个条件为真,则filterEdgeFlag被设置为等于0:
–当前编解码块的左边界是图片的左边界。
–[[当前编解码块的左边界是子图片的左边界或右边界,并且loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0。]]
Figure BDA0003742166000001281
–…
–否则,如果edgeType等于EDGE_HOR,并且以下一个或多个条件为真,则变量filterEdgeFlag被设置为等于0:
–当前亮度编解码块的顶部边界是图片的顶部边界。
–[[当前编解码块的顶部边界是子图片的顶部或底部边界,并且loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0。]]
Figure BDA0003742166000001282
5.14实施例:考虑子图片的去方块(解决方案#3)
8.8.3去方块滤波过程
8.8.3.1概述
该过程的输入是去方块之前的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
该过程的输出是去方块后的修改的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
去方块滤波过程应用于图片的所有编解码子块边缘和变换块边缘,除了以下类型的边缘:
–图片边界上的边缘,
–[[与loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0的子图片的边界重合的边缘]]
–当VirtualBoundariesDisabledFlag等于1时,与图片的虚拟边界重合的边缘,
–…
8.8.3.2一个方向的去方块滤波过程
该过程的输入是:
–指定当前是处理亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA)的变量treeType,
–…
4.变量filterEdgeFlag的推导如下:
–如果edgeType等于EDGE_VER,并且下列一个或多个条件为真,则filterEdgeFlag被设置为等于0:
–当前编解码块的左边界是图片的左边界。
–[[当前编解码块的左边界是子图片的左边界或右边界,并且loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0。]]
–…
–否则,如果edgeType等于EDGE_HOR,并且以下一个或多个条件为真,则变量filterEdgeFlag被设置为等于0:
–当前亮度编解码块的顶部边界是图片的顶部边界。
–[[当前编解码块的顶部边界是子图片的顶部或底部边界,并且loop_filter_cross_subpic_enabled_flag[SubPicIdx]等于0。]]
–…
8.8.3.6.6使用短滤波器对亮度样点进行滤波过程
当nDp大于0且包括包含样点p0的编解码块的编解码单元的pred_mode_plt_flag等于1时,nDp被设置为等于0
当nDq大于0且包括包含样点q0的编解码块的编解码单元的pred_mode_plt_flag等于1时,nDq被设置为等于0
Figure BDA0003742166000001301
8.8.3.6.7使用长滤波器对亮度样点进行滤波过程
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值pi’被对应的输入样点值pi代替,其中i=0..maxFilterLengthP-1。
当包括包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值qi’被对应的输入样点值qj代替,其中j=0..maxFilterLengthQ-1。
Figure BDA0003742166000001311
8.8.3.6.9色度样点的滤波过程
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值pi’被对应的输入样点值pi代替,其中i=0..maxFilterLengthP-1。
当包括包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值qi’被定义的输入样点值qi代替,其中i=i=0..maxFilterLengthQ–1。
Figure BDA0003742166000001312
Figure BDA0003742166000001321
5.15实施例:考虑子图片的去方块(解决方案#4)
8.8.3.6.6使用短滤波器对亮度样点进行滤波过程
当nDp大于0且包括包含样点p0的编解码块的编解码单元的pred_mode_plt_flag等于1时,nDp被设置为等于0
当nDq大于0且包括包含样点q0的编解码块的编解码单元的pred_mode_plt_flag等于1时,nDq被设置为等于0:
Figure BDA0003742166000001322
8.8.3.6.7使用长滤波器对亮度样点进行滤波过程
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值pi’被对应的输入样点值pi代替,其中i=0..maxFilterLengthP-1。
当包括包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值qi’被定义的输入样点值qi代替,其中i=i=0..maxFilterLengthQ–1。
Figure BDA0003742166000001323
Figure BDA0003742166000001331
8.8.3.6.9色度样点的滤波过程
当包括包含样点pi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值pi’被对应的输入样点值pi代替,其中i=0..maxFilterLengthP-1。
当包括包含样点qi的编解码块的编解码单元的pred_mode_plt_flag等于1时,滤波的样点值qi’被定义的输入样点值qi代替,其中i=i=0..maxFilterLengthQ–1。
Figure BDA0003742166000001332
5.16实施例:基于子块的时域merging候选的推导过程
8.5.5.3基于子块的时域merging候选的推导过程
–ColPic内的并置子块的位置(xColSb,yColSb)的推导如下。
–[[适用以下:]]
Figure BDA0003742166000001333
Figure BDA0003742166000001342
yColSb=Clip3(yCtb,Min(pic_height_in_luma_samples-1,yCtb+(1<<CtbLog2SizeY)-1),(735)ySb+tempMv[1])
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下:
xColSb=Clip3(xCtb,Min(SubPicRightBoundaryPos,xCtb+(1<<CtbLog2SizeY)+3),(736)xSb+tempMv[0])
–否则(subpic_treated_as_pic_flag[subpicidx]等于0),适用以下:
xColSb=Clip3(xCtb,Min(pic_width_in_luma_samples-1,xCtb+(1<<CtbLog2SizeY)+3),(737)xSb+tempMv[0])
8.5.5.4基于子块的时域merging基础运动数据的推导过程
ColPic内的并置子块的位置(xColSb,yColSb)的推导如下。
–[[适用以下:]]
Figure BDA0003742166000001343
Figure BDA0003742166000001351
yColCb=Clip3(yCtb,Min(pic_height_in_luma_samples-1,yCtb+(1<<CtbLog2SizeY)-1),(742)yColCtrCb+tempMv[1])
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下:
xColCb=Clip3(xCtb,Min(SubPicRightBoundaryPos,xCtb+(1<<CtbLog2SizeY)+3),(743)xColCtrCb+tempMv[0])
–否则(subpic_treated_as_pic_flag[subpicidx]等于0),适用以下:
xColCb=Clip3(xCtb,Min(pic_width_in_luma_samples-1,xCtb+(1<<CtbLog2SizeY)+3),(744)xColCtrCb+tempMv[0])
图3是视频处理装置300的框图。装置300可以用于实现本文描述的一个或多个方法。装置300可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置300可以包括一个或多个处理器312、一个或多个存储器314和视频处理硬件316。处理器312可以被配置为实现本文档中描述的一种或多种方法。存储器314可以用于存储用于实现本文所述方法和技术的数据和代码。视频处理硬件316可以用于在硬件电路中实现本文档中描述的一些技术。
图4是处理视频的方法400的流程图。方法400包括对于视频的第一视频区域中的视频块,确定(402)视频块和使用仿射模式的当前视频块的比特流表示之间的转换确定的时域运动矢量预测值所在的位置是否在第二视频区域内,并且基于该确定执行转换(404)。
在一些实施例中,以下解决方案可以被实现为优选解决方案。
以下解决方案可以与先前节中列出的项目(例如,项目1)中描述的其他技术一起实施。
1.一种视频处理方法,包括:对于视频的第一视频区域中的视频块,确定为视频块和使用仿射模式的当前视频块的比特流表示之间的转换确定的时域运动矢量预测值的位置是否在第二视频区域内;以及基于该确定来执行转换。
2.根据解决方案1所述的方法,其中,视频块被第一区域和第二区域覆盖。
3.根据解决方案1-2中任一项所述的方法,其中,在时域运动矢量预测值所在的位置在第二视频区域之外的情况下,时域运动矢量预测值被标记为不可用,并且在转换中不被使用。
以下解决方案可以与先前节中列出的项目(例如,项目2)中描述的其他技术一起实施。
4.一种视频处理方法,包括:对于视频的第一视频区域中的视频块,确定为视频块和当前视频块的比特流表示之间的转换提取的参考图片中的整数样点的位置是否在第二视频区域内,其中,在转换期间,参考图片不被用于插值过程;以及基于该确定来执行转换。
5.根据解决方案4所述的方法,其中,视频块被第一区域和第二区域覆盖。
6.根据解决方案4-5中任一个的方法,其中,在样点的位置在第二视频区域之外的情况下,样点被标记为不可用,并且在转换中不被使用。
以下解决方案可以与先前节中列出的项目(例如,项目3)中描述的其他技术一起实施。
7.一种视频处理方法,包括:对于视频的第一视频区域中的视频块,确定为视频块和当前视频块的比特流表示之间的转换提取的重建亮度样点值的位置是否在第二视频区域内;以及基于该确定来执行转换。
8.根据解决方案7所述的方法,其中,亮度样点被第一区域和第二区域覆盖。
9.根据解决方案7-8中任一项所述的方法,其中,在亮度样点的位置在第二视频区域之外的情况下,亮度样点被标记为不可用,并且在转换中不被使用。
以下解决方案可以与先前节中列出的项目(例如,项目4)中描述的其他技术一起实施。
10.一种视频处理方法,包括:对于视频的第一视频区域中的视频块,确定在视频块和当前视频块的比特流表示之间的转换期间执行视频块的分割相关检查、深度推导或分割标志信令的位置是否在第二视频区域内;以及基于该确定来执行转换。
11.根据解决方案10所述的方法,其中,该位置被第一区域和第二区域覆盖。
12.根据解决方案10-11中任一项所述的方法,其中,在该位置在第二视频区域之外的情况下,亮度样点被标记为不可用,并且在转换中不被使用。
以下解决方案可以与先前节中列出的项目(例如,项目8)中描述的其他技术一起实施。
13.一种视频处理方法,包括:在包括一个或多个视频图片的视频和该视频的编解码表示之间执行转换,视频图片包括一个或多个视频块,其中,编解码表示符合转换不使用视频单元内的子图片编码/解码和动态精度转换编码/解码工具或参考图片重采样工具的编解码语法要求。
14.根据解决方案13所述的方法,其中,视频单元与一个或多个视频图片的序列相对应。
15.根据解决方案13-14中任一项所述的方法,其中,动态精度转换编码/解码工具包括自适应精度转换编码/解码工具。
16.根据解决方案13-14中任一项所述的方法,其中,动态精度转换编码/解码工具包括动态精度转换编码/解码工具。
17.根据解决方案13-16中任一项所述的方法,其中,编解码表示指示视频单元符合编解码语法要求。
18.根据解决方案17所述的方法,其中,编解码表示指示视频单元使用子图片编解码。
19.根据解决方案17所述的方法,其中,编解码表示指示视频单元使用动态精度转换编码/解码工具或参考图片重采样工具。
以下解决方案可以与先前节中列出的项目(例如,项目10)中描述的其他技术一起实施。
20.根据解决方案1-19中任一项所述的方法,其中,第二视频区域包括视频子图片,并且其中,第二视频区域和另一视频区域的边界也是两个编解码树单元之间的边界。
21.根据解决方案1-19中任一项所述的方法,其中,第二视频区域包括视频子图片,并且其中,第二视频区域和另一视频区域的边界也是两个编解码树单元之间的边界。
以下解决方案可以与先前节中列出的项目(例如,项目11)中描述的其他技术一起实施。
22.根据解决方案1-21中任一项所述的方法,其中,第一视频区域和第二视频区域具有矩形形状。
以下解决方案可以与先前节中列出的项目(例如,项目12)中描述的其他技术一起实施。
23.根据解决方案1-22中任一项所述的方法,其中,第一视频区域和第二视频区域不重叠。
以下解决方案可以与先前节中列出的项目(例如,项目13)中描述的其他技术一起实施。
24.根据解决方案1-23中任一项所述的方法,其中,视频图片被划分成视频区域,使得视频图片中的像素被一个且仅一个视频区域覆盖。
以下解决方案可以与先前节中列出的项目(例如,项目15)中描述的其他技术一起实施。
25.根据解决方案1-24中任一项所述的方法,其中,由于视频图片位于视频序列的特定层中,视频图片被划分成第一视频区域和第二视频区域。
以下解决方案可以与先前节中列出的项目(例如,项目10)中描述的其他技术一起实施。
26.一种视频处理方法,包括:在包括一个或多个视频图片的视频和该视频的编解码表示之间执行转换,视频图片包括一个或多个视频块,其中,编解码表示符合第一语法元素subpic_grid_idx[i][j]不大于第二语法元素max_subpics_minus1的编解码语法要求。
27.根据解决方案26所述的方法,其中,表示第一语法元素的码字不大于表示第二语法元素的码字。
28.根据解决方案1-27中任一项所述的方法,其中,第一视频区域包括视频子图片。
29.根据解决方案1-28中任一项所述的方法,其中,第二视频区域包括视频子图片。
30.根据解决方案1至29中任一项所述的方法,其中,转换包括将视频编码成编解码表示。
31.根据解决方案1至29中任一项所述的方法,其中,转换包括解码编解码表示以生成视频的像素值。
32.一种视频解码装置,包括被配置为实现解决方案1至31中的一个或多个中所述的方法的处理器。
33.一种视频编码装置,包括被配置为实现解决方案1至31中的一个或多个中所述的方法的处理器。
34.一种计算机程序产品,其上存储有计算机代码,当计算机代码由处理器执行时,使处理器实现解决方案1至31中任一项所述的方法。
35.本文件中描述的方法、设备或系统。
图13是示出其中可以实现本文公开的各种技术的示例视频处理系统1300的框图。各种实施方式可以包括系统1300的一些或所有组件。系统1300可以包括用于接收视频内容的输入1302。视频内容可以以原始或未压缩的格式接收,例如8或10比特多分量像素值,或者可以是压缩或编码格式。输入1302可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口,诸如以太网、无源光网络(PON)等,以及诸如Wi-Fi或蜂窝接口的无线接口。
系统1300可以包括编解码组件1304,其可以实现本文档中描述的各种编解码或编码方法。编解码组件1304可以降低从输入1302到编解码组件1304的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。如组件1306所表示的,编解码组件1304的输出可以被存储,或者经由连接的通信被发送。组件1308可以使用在输入1302处接收的视频的存储或传送的比特流(或编码)表示来生成发送到显示接口1310的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且与编码解结果相反的相应解码工具或操作将由解码器执行。
外围总线接口或显示器接口的示例可以包括通用串行总线(USB)或高清多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以在各种电子设备中实现,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
图14是图示可利用本公开的技术的示例视频编解码系统100的框图。
如图14所示,视频编解码系统100可以包括源设备110和目的设备120。源设备110生成可以被称为视频编码设备的编码视频数据。目的设备120可以解码由可称为视频解码设备的源设备110生成的编码的视频数据。
源设备110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。
视频源112可以包括诸如视频捕获设备、从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统的源,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编解码表示。相关数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口116可以包括调制器/解调器(调制解调器)和/或发射器。编码的视频数据可经由I/O接口116通过网络130a直接发送到目的设备120。编码的视频数据还可以存储在存储介质/服务器130b上以供目的设备120存取。
目的设备120可以包括I/O接口126、视频解码器124和显示设备122。
I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以对编码的视频数据进行解码。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目的设备120集成在一起,或者可以在目的设备120的外部,目的设备120被配置为与外部显示设备接口。
视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(HEVC)标准、通用视频编解码(VVM)标准和其他当前和/或进一步的标准。
图15是图示视频编码器200的示例的框图,视频编码器200可以是图14所示的系统100中的视频编码器114。
视频编码器200可以被配置为执行本公开的任何或所有技术。在图9的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
视频编码器200的功能组件可以包括分割单元201、可包括模式选择单元203的预测单元202、运动估计单元204、运动补偿单元205和帧内预测单元206、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重建单元212、缓冲区213和熵编码单元214。
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在示例中,预测单元202可以包括帧内块复制(IBC)单元。IBC单元可以以IBC模式执行预测,其中至少一个参考图片是当前视频块所在的图片。
此外,一些组件,诸如运动估计单元204和运动补偿单元205,可以高度集成,但出于解释目的而在图9的示例中单独表示。
分割单元201可以将图片分割成一个或一个以上视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
模式选择单元203可以,例如基于错误结果选择编解码模式——帧内或帧间,并且将所得帧内或帧间编解码块提供到残差生成单元207以生成残差块数据,并且提供到重建单元212以重建编解码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(CIIP)模式的组合,在其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择运动矢量的精度(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲区213的一个或一个以上参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲区213的除了与当前视频块相关联的图片之外的图片的运动信息和解码样点来确定当前视频块的预测视频块。
运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带还是B条带中。
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后运动估计单元204可以生成指示包含参考视频块的列表0或列表1中的参考图片的参考索引和指示当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其它示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可在列表1中的参考图片中搜索当前视频块的另一参考视频块。然后运动估计单元204可以生成指示包含参考视频块的列表0或列表1中的参考图片的参考索引和指示当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来产生当前视频块的预测视频块。
在一些示例中,运动估计单元204可以输出用于解码器的解码处理的完整运动信息。
在一些示例中,运动估计单元204可以不输出当前视频的完整运动信息集。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量和所指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所述,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实现的预测信令通知技术的两个示例包括高级运动矢量预测(AMVP)和Merge模式信令。
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其它视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测的视频块和各种语法元素。
残差生成单元207可以通过从当前视频块减去(例如,由负号指示)当前视频块的预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中样点的不同样点分量相对应的残差视频块。
在其它示例中,当前视频块可以没有当前视频块的残差数据,例如在跳过模式中,并且残差产生单元207可以不执行减法操作。
变换处理单元208可以通过将一个或一个以上变换应用于与当前视频块相关联的残差视频块来生成当前视频块的一个或一个以上变换系数视频块。
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或一个以上量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块添加到来自由预测单元202生成的一个或一个以上预测视频块的对应样点,以生成与当前块相关联的重建视频块,用于存储在缓冲区213中。
在重建单元212重建视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码的数据并输出包括熵编码的数据的比特流。
图16是图示视频解码器300的示例的框图,视频解码器300可以是图14所示的系统100中的视频解码器114。
视频解码器300可以被配置为执行本公开的任何或所有技术。在图10的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
在图16的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、重建单元306和缓冲区307。在一些示例中,视频解码器300可以执行通常与针对视频编码器200(图15)描述的编码过程互逆的解码过程。
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编码的视频数据(例如,编码的视频数据块)。熵解码单元301可以解码熵编码的视频数据,并且运动补偿单元302可以从熵解码的视频数据确定包含运动矢量、运动矢量精度、参考图片列表索引和其它运动信息的运动信息。运动补偿单元302可以,例如通过执行AMVP和Merge模式来确定此信息。
运动补偿单元302可以生成运动补偿块,可以基于插值滤波器执行插值。语法元素中可以包括要以子像素精度使用的插值滤波器的识别符。
运动补偿单元302可以使用如视频编码器20在视频块的编码期间所使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据所接收的语法信息来确定视频编码器200所使用的插值滤波器,并使用插值滤波器来产生预测块。
运动补偿单元302可以使用一些语法信息来确定用于编码经编码的视频序列的帧和/或条带的块的尺寸、描述经编码的视频序列的图片的每一宏块如何被分割的分割信息、指示每一分割如何被编码的模式、每一经帧间编码的块的一个或一个以上参考帧(和参考帧列表)以及解码经编码的视频序列的其它信息。
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻的块形成预测块。逆量化单元303逆量化(即,去量化)比特流中提供的并且由熵解码单元301解码的量化视频块系数。逆变换单元303应用逆变换。
重建单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应的预测块相加,以形成解码的块。如果需要,还可以应用去方块滤波器来对解码的块进行滤波,以便去除块效应伪影。然后解码的视频块被存储在缓冲区307中,缓冲区307为后续的运动补偿/帧内预测提供参考块,并且还产生解码的视频以在显示设备上呈现。
图17是根据本技术的视频处理方法的流程图表示。方法1700包括,在操作1710,对于视频的当前图片中的当前视频块和该视频的比特流之间的转换,基于子图片是否被视为图片来确定修改当前图片的并置图片内的并置子块的纵坐标yColSb的方式。并置图片是当前图片的一个或多个参考图片中的一个。方法1700还包括,在操作1720,基于该确定执行转换。
在一些实施例中,比特流包括语法元素,该语法元素包括指示子图片是否被视为用于转换的图片的标志。在一些实施例中,在标志指示子图片被视为用于转换的图片的情况下,该方式包括裁剪用于转换的并置子块的纵坐标。在一些实施例中,并置子块的纵坐标yColSb由函数Clip3(T1,T2,yColSb)修改,其中T1和T2是实数。在一些实施例中,yColSb基于ySb+tempMv[1]来确定。ySb表示基本位置的纵坐标,该基本位置是与并置子块相对应的当前子块的右下或左上位置,tempMv[1]是基于当前视频块的空间相邻编解码单元来确定的偏移量。在一些实施例中,T1等于yCtb,T2等于Min(SubPicBotBoundaryPos,yCtb+(1<<CtbLog2SizeY)-1))。yCtb表示编解码树块的纵坐标,SubPicBotBoundaryPos表示当前子图片的底部边界的纵坐标,CtbLog2SizeY表示编解码树块的垂直维度。在一些实施例中,SubPicBotBoundaryPos等于Min(pic_height_max_in_luma_samples-1,(subpic_ctu_top_left_y[SubPicIdx]+subpic_height_minus1[SubPicIdx]+1)*CtbSizeY-1),其中pic_height_max_in_luma_samples指示当前图片的最大高度,subpic_ctu_top_left_y指示当前子图片的左上垂直位置,subpic_height_minus1指示当前子图片的高度,以及CtbSizeY指示编解码树块的垂直维度。
图18是根据本技术的视频处理方法的流程图表示。方法1800包括,在操作1810,对于包括至少两个子图片的视频的当前图片和该视频的比特流之间的转换,基于两个子图片的信息确定对覆盖两个子图片之间的边界的区域应用滤波操作的方式。方法1800还包括,在操作1820,根据该确定来执行转换。
在一些实施例中,滤波操作包括自适应环路滤波操作或样点自适应偏移(SAO)滤波操作。在一些实施例中,基于两个子图片中的第二子图片的信息来确定对区域和两个子图片中的第一子图片应用滤波操作的方式。在一些实施例中,如果在两个子图片的至少一个子图片边界上禁用滤波操作,则滤波操作不被应用于该区域。在一些实施例中,边界是水平边界。第一子图片位于具有底部行坐标y0的第二子图片之上,第二子图片具有顶部行坐标y0+1,并且该区域包括位于行y0-M和y0+1+N之间的样点,M和N是整数。在一些实施例中,边界是垂直边界。第一子图片位于具有最右列x0的第二图片的左侧,第二子图片具有最左列x0+1,并且该区域包括位于列x0-M和列x0+1+N之间的样点,M和N是整数。在一些实施例中,基于视频的颜色格式或颜色分量来确定至少M或N。在一些实施例中,至少M或N是固定数。在一些实施例中,M与N相同。在一些实施例中,M与N不同。在一些实施例中,对于滤波操作,M和N不同。在一些实施例中,在比特流中信令通知至少M或N。在一些实施例中,M等于第一子图片中用于滤波第二子图片中样点的样点的行数或列数。在一些实施例中,N等于用于滤波第一子图片中样点的第二子图片中样点的行数或列数。
在一些实施例中,该转换从比特流生成视频。在一些实施例中,该转换从视频生成比特流。
在一个示例方面,一种用于存储视频的比特流的方法包括对于视频的当前图片中的当前视频块和该视频的比特流之间的转换,基于子图片是否被视为图片来确定修改当前图片的并置图片内的并置子块的纵坐标yColSb的方式。并置图片是当前图片的一个或多个参考图片中的一个。该方法还包括基于该确定从当前视频块生成视频的比特流,并将该比特流存储在非暂时性计算机可读记录介质中。
在另一示例方面,一种用于存储视频的比特流的方法包括对于包括至少两个子图片的视频的当前图片和该视频的比特流之间的转换,基于两个子图片的信息来确定对覆盖两个子图片之间的边界的区域应用滤波操作的方式。该方法还包括基于该确定生成视频的比特流,并将该比特流存储在非暂时性计算机可读记录介质中。
所公开的技术的一些实施例包括做出决定或确定以启用视频处理工具或模式。在示例中,当启用视频处理工具或模式时,编码器将在视频块的处理中使用或实施所述工具或模式,但可能不一定基于工具或模式的使用来修改所得比特流。也就是说,当基于决定或确定启用视频处理工具或模式时,从视频的块到该视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于该决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在一个示例中,当视频处理工具或模式被禁用时,编码器在将视频块转换成视频的比特流表示时将不使用该工具或模式。在另一个例子中,当视频处理工具或模式被禁用时,解码器将在知道比特流没有被使用基于决定或确定而启用的视频处理工具或模式修改的情况下处理比特流。
本申请文件中描述的所公开的和其他解决方案、示例、实施例、模块和功能操作能在数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。所公开的和其他实施例能够实现为一个或多个计算机程序产品,即编码在有形的且非易失的计算机可读介质上的计算机程序指令的一个或多个模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
本申请文件中描述的过程和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及CD ROM和DVD ROM盘。处理器和存储器可以由专用逻辑电路来补充,或Merge到专用逻辑电路中。
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实现和示例,可以基于本专利文件中描述和说明的内容做出其他实现、增强和变体。

Claims (29)

1.一种视频处理方法,包括:
对于视频的当前图片中的当前视频块与所述视频的比特流之间的转换,基于子图片是否被视为图片来确定修改当前图片的并置图片内的并置子块的纵坐标yColSb的方式,其中,所述并置图片是所述当前图片的一个或多个参考图片中的一个;以及
基于所述确定来执行所述转换。
2.根据权利要求1所述的方法,其中,所述比特流包括语法元素,所述语法元素包括指示子图片是否被视为所述转换的图片的标志。
3.根据权利要求2所述的方法,其中,在所述标志指示子图片被视为所述转换的图片,则所述方式包括裁剪所述转换的并置子块的纵坐标。
4.根据权利要求1至3中任一项所述的方法,其中,所述并置子块的纵坐标yColSb由函数Clip3(T1,T2,yColSb)修改,其中,T1和T2是实数。
5.根据权利要求4所述的方法,其中,yColSb基于ySb+tempMv[1]来确定,其中,ySb表示基本位置的纵坐标,所述基本位置是与所述并置子块相对应的当前子块的右下位置或左上位置,并且其中,tempMv[1]是基于所述当前视频块的空间相邻编解码单元来确定的偏移。
6.根据权利要求4所述的方法,其中,T1等于yCtb,并且T2等于Min(SubPicBotBoundaryPos,yCtb+(1<<CtbLog2SizeY)-1)),其中,yCtb表示编解码树块的纵坐标,其中,SubPicBotBoundaryPos表示所述当前子图片的底部边界的纵坐标,并且其中,CtbLog2SizeY表示所述编解码树块的垂直维度。
7.根据权利要求6所述的方法,其中,SubPicBotBoundaryPos等于Min(pic_height_max_in_luma_samples-1,(subpic_ctu_top_left_y[SubPicIdx]+subpic_height_minus1[SubPicIdx]+1)*CtbSizeY-1),其中,pic_height_max_in_luma_samples指示所述当前图片的最大高度,subpic_ctu_top_left_y指示所述当前子图片的左上垂直位置,subpic_height_minus1指示所述当前子图片的高度,并且CtbSizeY指示编解码树块的垂直维度。
8.一种视频处理方法,包括:
对于视频的包括至少两个子图片的当前图片和所述视频的比特流之间的转换,基于所述两个子图片的信息确定对覆盖所述两个子图片之间的边界的区域应用滤波操作的方式;以及
根据所述确定来执行所述转换。
9.根据权利要求8所述的方法,其中,所述滤波操作包括自适应环路滤波操作或样点自适应偏移(SAO)滤波操作。
10.根据权利要求8或9所述的方法,其中,对所述区域和所述两个子图片的第一子图片应用滤波操作的方式是基于所述两个子图片的第二子图片的信息来确定的。
11.根据权利要求8至10中任一项所述的方法,其中,在所述两个子图片的至少一个中的子图片边界上禁用滤波操作的情况下,所述滤波操作不被应用于所述区域。
12.根据权利要求8至11中任一项所述的方法,其中,所述边界是水平边界,其中,第一子图片位于具有底部行坐标y0的第二子图片上方,其中,所述第二子图片具有顶部行坐标y0+1,并且其中,所述区域包括位于行y0-M和y0+1+N之间的样点,M和N是整数。
13.根据权利要求8至11中任一项所述的方法,其中,所述边界是垂直边界,其中,第一子图片位于具有最右列x0的第二图片的左侧,其中,所述第二子图片具有最左列x0+1,并且其中,所述区域包括位于列x0-M和x0+1+N之间的样点,M和N是整数。
14.根据权利要求12或13所述的方法,其中,至少M或N是基于所述视频的颜色格式或颜色分量来确定的。
15.权利要求12或13的方法,其中,至少M或N是固定数。
16.权利要求12或13的方法,其中,M与N相同。
17.权利要求12或13的方法,其中,M与N不同。
18.根据权利要求12或13所述的方法,其中,M和N对于所述滤波操作是不同的。
19.根据权利要求12或13所述的方法,其中,至少M或N在所述比特流中被信令通知。
20.根据权利要求12或13所述的方法,其中,M等于用于滤波第二子图片中的样点的第一子图片中的样点的行数或列数。
21.根据权利要求12或13所述的方法,其中,N等于用于滤波第一子图片中样点的第二子图片中样点的行数或列数。
22.根据权利要求1至21中任一项所述的方法,其中,所述转换从所述比特流生成所述视频。
23.根据权利要求1至21中任一项所述的方法,其中,所述转换从所述视频生成所述比特流。
24.一种存储视频比特流的方法,包括:
对于视频的当前图片中的当前视频块与所述视频的比特流之间的转换,基于子图片是否被视为图片来确定修改所述当前图片的并置图片内的并置子块的纵坐标yColSb的方式,其中,所述并置图片是所述当前图片的一个或多个参考图片之中的一个;
基于所述确定,从当前视频块生成所述视频的所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中。
25.一种存储视频比特流的方法,包括:
对于视频的包括至少两个子图片的当前图片和所述视频的比特流之间的转换,基于所述两个子图片的信息确定对覆盖所述两个子图片之间的边界的区域应用滤波操作的方式;
基于所述确定生成所述视频的所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中。
26.一种视频处理装置,包括被配置为实现权利要求1至25中任一项或多项所述的方法的处理器。
27.一种计算机可读介质,其上存储有代码,当所述代码被执行时,使处理器实现权利要求1至25中任一项或多项所述的方法。
28.一种计算机可读介质,存储根据权利要求1至25中任一项生成的比特流。
29.根据本文档中描述的方法或系统生成的方法、装置、比特流。
CN202180009033.0A 2020-01-13 2021-01-13 视频编解码中的子图片边界滤波 Pending CN115280768A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2020/071863 2020-01-13
CN2020071863 2020-01-13
PCT/CN2021/071360 WO2021143698A1 (en) 2020-01-13 2021-01-13 Subpicture boundary filtering in video coding

Publications (1)

Publication Number Publication Date
CN115280768A true CN115280768A (zh) 2022-11-01

Family

ID=76863570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180009033.0A Pending CN115280768A (zh) 2020-01-13 2021-01-13 视频编解码中的子图片边界滤波

Country Status (2)

Country Link
CN (1) CN115280768A (zh)
WO (1) WO2021143698A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10455248B2 (en) * 2008-10-06 2019-10-22 Lg Electronics Inc. Method and an apparatus for processing a video signal
WO2014106651A1 (en) * 2013-01-04 2014-07-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient scalable coding concept
US10015515B2 (en) * 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
US10419755B2 (en) * 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding

Also Published As

Publication number Publication date
WO2021143698A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
CN114631321B (zh) 子图片与环路滤波之间的相互影响
WO2021027767A1 (en) Position restriction for inter coding mode
JP7454681B2 (ja) ビデオコーディング及び復号の制約
CN114503577B (zh) 视频比特流中子图片信令通知的语法
CN115280768A (zh) 视频编解码中的子图片边界滤波
WO2021129805A1 (en) Signaling of parameters at sub-picture level in a video bitstream
CN114270831B (zh) 视频处理中的子图片尺寸定义

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination