CN115362677A - 在视频比特流中以子图片级别信令通知参数 - Google Patents

在视频比特流中以子图片级别信令通知参数 Download PDF

Info

Publication number
CN115362677A
CN115362677A CN202080089302.4A CN202080089302A CN115362677A CN 115362677 A CN115362677 A CN 115362677A CN 202080089302 A CN202080089302 A CN 202080089302A CN 115362677 A CN115362677 A CN 115362677A
Authority
CN
China
Prior art keywords
picture
sub
video
bitstream
equal
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
CN202080089302.4A
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 CN115362677A publication Critical patent/CN115362677A/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/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/187Methods 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 a scalable video layer
    • 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
    • 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/124Quantisation
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution

Landscapes

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

Abstract

描述了在视频比特流中以子图片级别信令通知参数的方法、系统和设备。一种视频处理的示例方法包括:执行包括图片的视频与视频的比特流之间的转换,图片包括一个或多个子图片,其中,比特流符合格式规则,其中,格式规则指定比特流包括参数集,参数集控制与子图片的标识(ID)相关联的一个或多个子图片中的子图片的编解码行为。

Description

在视频比特流中以子图片级别信令通知参数
相关申请的交叉引用
根据适用的《专利法》和/或《巴黎公约》的规定,本申请及时要求于2019年12月25日提交的国际专利申请号PCT/CN2019/128124的优先权和利益。出于法律上的所有目的,将前述申请的全部公开以引用方式并入本文,作为本申请公开的一部分。
技术领域
本申请文件涉及视频和图像编码和解码技术。
背景技术
尽管视频压缩取得了进步,但是数字视频仍在互联网和其他数字通信网络上占据最大带宽使用量。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将持续增长。
发明内容
描述了在视频比特流中以子图片级别信令通知参数的方法、系统和设备。公开的技术可以由其中执行基于子图片的编码或解码的视频或图像解码器或编码器实施例使用。
在一个示例方面,公开了一种视频处理的方法。该方法包括:执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,其中,所述比特流符合格式规则,其中,所述格式规则指定所述比特流包括参数集,所述参数集控制与子图片的标识(ID)相关联的所述一个或多个子图片中的子图片的编解码行为。
在另一示例方面,公开了一种视频处理的方法。该方法包括:执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,其中,当前参数集被配置为控制所述一个或多个子图片中的至少一个子图片的编解码行为,其中,所述比特流符合格式规则,其中,所述格式规则指定在所述比特流中信令通知所述当前参数集和默认参数集之间的差值之前,在所述比特流中信令通知与所述当前参数集相对应的所述默认参数集。
在又一示例方面,公开了一种视频处理的方法。该方法包括:执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,其中,所述比特流符合格式规则,其中,所述比特流包括参数集,所述参数集包括用于控制子图片的编解码属性的第一控制参数和第二控制参数,并且其中,所述格式规则指定所述第一控制参数是否或如何被所述第二控制参数覆盖以用于解码。
在又一示例方面,公开了一种视频处理的方法。该方法包括:执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,其中,与所述一个或多个子图片中的每个子图片相对应的一个或多个第一标志被包括在序列参数集(SPS)中,其中,所述一个或多个第一标志中的每个第一标志指示是否为与每个第一标志相对应的子图片信令通知约束信息,并且其中,所述约束信息指示未被应用于编解码层视频序列(CLVS)上的对应子图片的编解码工具。
在又一示例方面,上述方法可由包括处理器的视频编码器装置实现。
在又一示例方面,上述方法可由包括处理器的视频解码器装置实现。
在又一示例方面,这些方法可以实现为处理器可执行指令的形式,并存储在计算机可读程序介质上。
在本文档中进一步描述了这些方面和其他方面。
附图说明
图1示出了时域运动矢量预测(TMVP)和子块TMVP中的区域约束的示例。
图2示出了分级运动估计方案的示例。
图3示出了具有18乘12亮度CTU的图片的示例,该图片被分割成12个片和3个光栅扫描条带。
图4示出了具有18乘12亮度CTU的图片的示例,该图片被分割成24个片和9个矩形条带。
图5示出了被分割成4个片、11个砖块和4个矩形条带的图片的示例。
图6是示出其中可以实现本文公开的各种技术的示例视频处理系统的框图。
图7是用于视频处理的示例硬件平台的框图。
图8是图示能够实现本公开的一些实施例的示例视频编解码系统的框图。
图9是图示能够实现本公开的一些实施例的编码器的示例的框图。
图10是图示能够实现本公开的一些实施例的解码器的示例的框图。
图11-图14示出了视频处理的示例方法的流程图。
具体实施方式
本文档提供了各种技术,图像或视频比特流的解码器可以使用这些技术来提高解压缩或解码的数字视频或图像的质量。为简洁起见,这里使用的术语“视频”包括图片的序列(传统上称为视频)和单独的图像。此外,视频编码器也可在编码过程期间实施这些技术,以便重建用于进一步编码的经解码帧。
本文件中使用的章节标题是为了易于理解,并不将实施例和技术限于相应的章节。这样,来自一个部分的实施例可以与来自其他部分的实施例相结合。
1.概要
本申请文件涉及视频编解码技术。具体地,本申请文件涉及调色板编解码,其在视频编解码中使用基于基色的表示。其可以应用于现有的视频编解码标准,如HEVC,也可以应用于待定的标准(多功能视频编解码)。其也可适用于未来的视频编解码标准或视频编解码器。
2.初步讨论
视频编解码标准主要是通过开发公知的ITU-T和ISO/IEC标准而发展起来的。ITU-T开发了H.261和H.263,ISO/IEC开发了MPEG-1和MPEG-4视觉,并且两个组织联合开发了H.262/MPEG-2视频、H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准[1,2]。自H.262以来,视频编解码标准基于混合视频编解码结构,其中采用了时域预测加变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索团队(JVET)。此后,JVET采纳了许多新方法并将其引入到名为联合探索模型(JEM)的参考软件中。在2018年4月,成立了VCEG(Q6/16)与ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家小组(JVET),以致力于目标在于相比HEVC降低50%比特率的VVC标准。
可以在以下位置找到VVC草案的最新版本,即多功能视频编解码(草案4):
http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=5755
可以在以下位置找到名为VTM的VVC的最新参考软件:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-5.0
2.1 VVC中的TMVP和子块TMVP中的区域约束
图1示出了TMVP和子块TMVP中的区域约束
如图1所示,在TMVP和子块TMVP中,约束时域MV只能从并置的CTU加上一列4×4块中取出。
2.2 JVET-O0141中提出的子图片
本文提出了一种基于子图片的VVC编解码设计。该提案是JVET-N0826的后续,但现在基于第14届JVET会议上采用的基于片和砖块的灵活分片方法。
该提案概述如下:
1)图片可以被分成子图片。
2)在SPS中指示子图片存在的指示,以及子图片的其它序列级信息。
3)在解码过程(不包括环路滤波操作)中是否将子图片视为图片可以由比特流来控制。
4)是否禁用跨子图片边界的环路滤波可以由每个子图片的比特流来控制。DBF、SAO和ALF过程被更新用于控制跨子图片边界的环路滤波操作。
5)为简单起见,作为起点,在SPS中信令通知以亮度样点为单位的子图片宽度、高度、水平偏移和垂直偏移。子图片边界被约束为条带边界。
6)通过稍微更新coding_tree_unit()语法来指定在解码过程(不包括环路滤波操作)中将子图片视为图片,并且更新到以下解码过程:
(高级)时域亮度运动矢量预测的推导过程
亮度样点双线性插值过程
亮度样点8抽头插值滤波过程
色度样点插值过程
7)子图片ID在SPS中被明确指定,并且被包括在片组标头中,以使能子图片序列的提取,而无需改变VCL NAL单元。
8)提出输出子图片集(OSPS)来指定子图片及其集合的规范提取和一致性点。
2.3多功能视频编解码中的子图片(草案6)
■序列参数集RBSP语法
Figure BDA0003706653790000051
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 BDA0003706653790000061
Figure BDA0003706653790000071
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_across_subpic_enabled_flag[i]等于0指定不在跨CVS中每个编解码图片的第i个子图片的边界上执行环路滤波操作。当不存在时,loop_filter_across_subpic_enabled_pic_flag[i]的值被推断为等于1。
比特流一致性的要求是应用以下约束:
–对于任何两个子图片subpicA和subpicB,当subpicA的索引小于subpicB的索引时,在解码顺序上,subPicA的任何编解码的NAL单元将在subPicB的任何编解码的NAL单元之后。
–子图片的形状应该是当解码时,每个子图片的整个左边界和整个上边界应该由图片边界组成,或者由先前解码的子图片的边界组成。
■列表CtbToSubPicIdx[ctbAddrRs]用于范围从0到PicSizeInCtbsY-1(包括端值)的ctbAddrRs,指定从图片光栅扫描中的CTB地址到子图片索引的转换,其推导如下:
Figure BDA0003706653790000081
Figure BDA0003706653790000091
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 BDA0003706653790000092
变量SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos和SubPicBotBoundaryPos的推导如下:
Figure BDA0003706653790000101
时域亮度运动矢量预测的推导过程
该过程的输入是:
–当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(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)
–如果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?
ClipH((sps_ref_wraparound_offset_minus1+1)*MinCbSizeY,picW,(xIntL+i)):(8-462)
xIntL+i)
yInti=Clip3(0,picH-1,yIntL+i) (8-463)
基于子块的时域Merging候选的推导过程
该过程的输入是:
–当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(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,
–预测列表利用率标志pred flag 0sbcol[xs bidx][ySbIdx]和pred flag1sbcol[xs bidx][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中指定的基于子块的时域Merging基本运动数据的推导过程,以位置(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)推导如下。
–以下内容适用于:
yColSb=Clip3(yCtb,
Min(CurPicHeightInSamplesY-1,yCtb+(1<<CtbLog2SizeY)-1), (8-553)
ySb+(tempMv[1]>>4))
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下条件:
xColSb=Clip3(xCtb,
Min(SubPicRightBoundaryPos,xCtb+(1<<CtbLog2SizeY)+3), (8-554)
xSb+(tempMv[0]>>4))
–否则(sub pic_treated_as_pic_flag[sub picidx]等于0),以下情况适用:
xColSb=Clip3(xCtb,
Min(CurPicWidthInSamplesY-1,xCtb+(1<<CtbLog2SizeY)+3), (8-555)
xSb+(tempMv[0]>>4))
基于子块的时域merging基础运动数据的推导过程
该过程的输入是:
–包含当前编解码块的亮度编码树块的左上样点的位置(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时,以下情况适用:
–如果以下所有条件均为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)的推导如下。
–以下内容适用于:
yColCb=Clip3(yCtb,
Min(CurPicHeightInSamplesY-1,yCtb+(1<<CtbLog2SizeY)-1), (8-560)
yColCtrCb+(tempMv[1]>>4))
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则适用以下条件:
xColCb=Clip3(xCtb,
Min(SubPicRightBoundaryPos,xCtb+(1<<CtbLog2SizeY)+3), (8-561)
xColCtrCb+(tempMv[0]>>4))
–否则(subpic_treated_as_pic_flag[SubPicIdx]等于0),则以下适用:
xColCb=Clip3(xCtb,
Min(CurPicWidthInSamplesY-1,xCtb+(1<<CtbLog2SizeY)+3), (8-562)
xColCtrCb+(tempMv[0]>>4))
亮度样点插值滤波过程
该过程的输入是:
–以全样点为单位的亮度位置(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?
ClipH((sps_ref_wraparound_offset_minus1+1)*MinCbSizeY,picW,xIntL+i-3): (8-773)
xIntL+i-3)
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),适用以下条件:xInti=Clip3(0,picWC-1,
sps_ref_wraparound_enabled_flag?ClipH(xOffset,picWC,xIntC+i-1):(8-787)
xIntC+i-1)
yInti=Clip3(0,picHC-1,yIntC+i-1)
(8-788)
2.4仅编码器基于GOP的时域滤波器(JCTVC-AI0023)
JCTVC-AI0023提出了仅编码器的时域滤波器。作为预处理步骤,在编码器端进行滤波。读取要编码的所选图片之前和之后的源图片,并且对这些源图片应用相对于所选图片的基于块的运动补偿方法。使用运动补偿后的样点值对所选图片中的样点进行时域滤波。
取决于所选图片的时域子层以及QP来设置整体滤波强度。只有时域子层0和1的图片被滤波,而层0的图片被比层1的图片更强的滤波器滤波。根据所选图片中的样点值和运动补偿图片中的并置样点之间的差异来调整每样点滤波强度,使得运动补偿图片和所选图片之间的小差异比大差异被更强地滤波。
基于GOP的时域滤波器
在读取图片之后和编码之前直接引入时域滤波器。以下是更详细描述的步骤。
步骤1:由编码器读取图片
步骤2:如果图片在编解码层次中足够低,则在编码之前对其进行滤波。否则,图片不经滤波就被编码。POC%8==0的RA图片以及POC%4==0的LD图片被滤波。AI图片从不被滤波。
整体滤波器强度根据下式针对RA进行设置。
Figure BDA0003706653790000201
其中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-抽头插值滤波器:
0:0,0,64,0,0,0
1:1,-3,64,4,-2,0
2:1,-6,62,9,-3,1
3:2,-8,60,14,-5,1
4:2,-9,57,19,-7,2
5:3,-10,53,24,-8,2
6:3,-11,50,29,-9,2
7:3,-11,44,35,-10,3
8:1,-7,38,38,-7,1
9:3,-10,35,44,-11,3
10:2,-9,29,50,-11,3
11:2,-8,24,53,-10,3
12:2,-7,19,57,-9,2
13:1,-5,14,60,-8,2
14:1,-3,9,62,-6,1
15:0,-2,4,64,-3,1
步骤5:根据每个块的最佳匹配运动,在原始图片之前和之后的图片上应用运动补偿。即,使得每个块中的原始图片的样点坐标在参考图片中具有最佳匹配坐标。
步骤6:按照以下步骤所述,逐一处理亮度和色度通道的样点。
步骤7:使用以下公式计算新的样点值In
Figure BDA0003706653790000211
其中Io是原始样点的样点值,Ir(i)是运动补偿图片i的相应样点的强度,并且wr(i,a)是当可用运动补偿图片的数量为a时运动补偿图片i的权重。
在亮度通道中,权重wr(i,a)定义如下:
Figure BDA0003706653790000212
其中
sl=0.4
Figure BDA0003706653790000221
Figure BDA0003706653790000222
对于i和a的所有其他情况:sr(i,a)=0.3
σl(QP)=3*(QP-10)
ΔI(i)=Ir(i)-Io
对于色度通道,权重wr(i,a)定义如下:
Figure BDA0003706653790000223
其中sc=0.55并且σc=30。
步骤8:对当前样点应用滤波器。产生的样点值单独存储。
步骤9:对滤波后的图片进行编码。
2.5.JVET-O2001-vE中的图片分割(片、砖块、条带)
在VVC中,图片被分成一个或多个片行和一个或多个片列。片是覆盖图片的矩形区域的一系列CTU。
片被分成一个或多个砖块,每个砖块由片内的多个CTU行组成。
未被分割成多个砖块的片也称为砖块。然而,作为片的真子集的砖块不被称为片。
条带或者包含图片的多个片,或者包含片的多个砖块。
子图片包含共同覆盖图片的矩形区域的一个或多个条带。
支持两种条带模式,即光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图片的片光栅扫描中的片序列。在矩形条带模式中,条带包含图片的多个砖块,这些砖块共同形成图片的矩形区域。矩形条带内的砖块按照条带的砖块光栅扫描顺序排列。
图3示出了图片的光栅扫描条带分割的示例,其中图片被分成12个片和3个光栅扫描条带。
图4示出了图片的矩形条带分割的示例,其中图片被分成24个片(6个片列和4个片行)和9个矩形条带。
图5示出了被分割为片、砖块和矩形条带的图片的示例,其中图片被划分为4个片(2个片列和2个片行)、11个砖块(左上片包含1个砖块,右上片包含5个砖块,左下片包含2个砖块,右下片包含3个砖块)和4个矩形条带。
图片参数集RBSP语法
Figure BDA0003706653790000231
Figure BDA0003706653790000241
Figure BDA0003706653790000251
Figure BDA0003706653790000252
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以CTB为单位指定当uniform_tile_spacing_flag等于1时,图片中除最右边的片列之外的片列的宽度。tile_cols_width_minus1的值应在0到PicWidthInCtbsY-1的范围内,包括–端值。不存在时,tile_cols_width_minus1的值被推断为等于PicWidthInCtbsY-1。
tile_rows_height_minus1加1以CTB为单位指定当uniform_tile_spacing_flag等于1时,图片中除底部片行之外的片行的高度。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的范围内,包括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以CTB为单位指定第i个片列的宽度。
tile_row_height_minus1[i]加1以CTB为单位指定第i个片行的高度。
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以CTB为单位指定当uniform_brick_spacing_flag[i]等于1时,第i个片中不包括底部砖块的砖块行的高度。如果存在,brick_height_minus1的值应在0至RowHeight[i]-2的范围内,包括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的范围内,包括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以CTB为单位指定当uniform_tile_spacing_flag等于0时第i个片中第j个砖块的高度。
推导以下变量,并且当uniform_tile_spacing_flag等于1时,推导num_tile_columns_minus1和num_tile_rows_minus1的值,并且对于范围从0到NumTilesInPic-1(包括0和NumTilesInPic-1)的每个i,当uniform_brick_spacing_flag[i]等于1时,通过调用条款6.5.1中指定的CTB光栅和砖块扫描转换过程,推断num_brick_rows_minus2[i]的值:
–列表RowHeight[j]以CTB为单位指定第j个片行的高度,j的范围从0到num_tile_rows_minus1,包括0和num_tile_rows_minus1,
–列表CtbAddrRsToBs[ctbAddrRs]指定从图片的CTB光栅扫描中的CTB地址到砖块扫描中的CTB地址的转换,ctbAddrRs的范围从0到PicSizeInCtbsY-1,包括0和PicSizeInCtbsY-1,
–列表CtbAddrBsToRs[ctbAddrBs]指定从砖块扫描中的CTB地址到图片的CTB光栅扫描中的CTB地址的转换,ctbAddrRs的范围从0到PicSizeInCtbsY-1,包括0和PicSizeInCtbsY–1,
–列表BrickId[ctbAddrBs]指定从砖块扫描中的CTB地址到砖块ID的转换,ctbAddrBs的范围从0到PicSizeInCtbsY-1,包括0和PicSizeInCtbsY–1,
–列表NumCtusInBrick[brickIdx]指定从砖块索引到砖块中CTU数量的转换,brickIdx的范围从0到NumBricksInPic–1,包括0和NumBricksInPic–1,
–列表FirstCtbAddrBs[brickIdx]指定从砖块ID到砖块中第一个CTB的砖块扫描中CTB地址的转换,brickIdx的范围从0到NumBricksInPic–1,包括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的范围内,包括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的范围内,包括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 BDA0003706653790000291
Figure BDA0003706653790000301
通用条带标头语义
当存在时,条带标头语法元素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的范围内,包括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的范围内,包括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的范围内,包括0和num_slices_in_pic_minus1。否则,slice_address的值应在0到2(signalled_slice_id_length_minus1+1)-1的范围内,包括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的范围内,包括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 BDA0003706653790000321
变量SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos和SubPicBotBoundaryPos的推导如下:
Figure BDA0003706653790000322
Figure BDA0003706653790000331
2.6 JVET-P2001-V8中的语法和语义
序列参数集RBSP语法
Figure BDA0003706653790000332
Figure BDA0003706653790000341
Figure BDA0003706653790000351
Figure BDA0003706653790000361
Figure BDA0003706653790000371
Figure BDA0003706653790000381
Figure BDA0003706653790000391
Figure BDA0003706653790000401
图片参数集RBSP语法
Figure BDA0003706653790000402
Figure BDA0003706653790000411
Figure BDA0003706653790000421
Figure BDA0003706653790000431
Figure BDA0003706653790000441
图片标头RBSP语法
Figure BDA0003706653790000442
Figure BDA0003706653790000451
Figure BDA0003706653790000461
Figure BDA0003706653790000471
Figure BDA0003706653790000481
Figure BDA0003706653790000491
Figure BDA0003706653790000501
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]以CtbSizeY为单位指定第i个子图片的左上角CTU的水平位置。语法元素的长度为Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_ctu_top_left_x[i]的值被推断为等于0。
subpic_ctu_top_left_y[i]以CtbSizeY为单位指定第i个子图片的左上角CTU的垂直位置。语法元素的长度为Ceil(Log2(pic_height_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_ctu_top_left_y[i]的值被推断为等于0。
subpic_width_minus1[i]加1以CtbSizeY为单位指定第i个子图片的宽度。语法元素的长度为Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_width_minus1[i]的值推断为等于Ceil(pic_width_max_in_luma_samples/CtbSizeY)-1。
subpic_height_minus1[i]加1以CtbSizeY为单位指定第i个子图片的高度。语法元素的长度为Ceil(Log2(pic_height_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_height_minus1[i]的值推断为等于Ceil(pic_height_max_in_luma_samples/CtbSizeY)-1。
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的范围内,包括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,包括0和sps_num_subpics_minus1,sps_subpic_id[i]的值被推断为等于i
ph_pic_parameter_set_id指定正在使用的PPS的pps_pic_parameter_set_id的值。ph_pic_parameter_set_id的值应在0到63的范围内,包括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的范围内,包括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]的推导如下:
列表SubpicIdList[i]推导如下:
Figure BDA0003706653790000531
去方块滤波过程
概述
该过程的输入是去方块之前的重建图片,即数组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(三角形预测模式)将块分成具有不同运动信息的两个三角形。
VVC中的HMVP(基于历史的运动矢量预测)维护用于运动矢量预测的运动信息表。在对帧间编解码的块进行解码之后,该表被更新,但是如果帧间编解码的块是TPM编解码的,则该表不被更新。
JVET-P0884中提出的GEO是TPM的扩展。使用GEO,可以用直线将块分成两个分割,这两个分割可以是三角形,也可以不是三角形。
2.8 ALF、CC-ALF和虚拟边界
VVC中的ALF(自适应环路滤波器)在图片被解码后被应用,以提高图片质量。
在VVC中采用虚拟边界(VB)使ALF易于硬件设计。利用VB,ALF在由两个ALF虚拟边界界定的ALF处理单元中进行。
JVET-P1008中提出的CC-ALF通过参考亮度样点的信息来对色度样点进行滤波。
2.9 JVET-P2001-v14中子图的SEI
D.2.8子图片级别信息SEI消息语法
Figure BDA0003706653790000571
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,包括0和sps_num_subpics_minus1。
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 BDA0003706653790000581
Figure BDA0003706653790000591
变量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,包括0和sps_num_subpics_minus1,并且i的范围从0到num_ref_level_minus1,包括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 BDA0003706653790000601
子图片集序列级别指示符SubPicSetLevelIdc的值的推导如下:
Figure BDA0003706653790000602
其中用于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中指示或推断)。
3.由公开的实施例解决的技术问题的示例
1.VVC中有一些设计违反了子图片约束。
a.仿射构建的候选中的TMVP可以在当前子图片的范围之外的并置图片中获取MV。
b.当在双向光流(BDOF)和预测细化光流(PROF)中推导梯度时,需要提取整数参考样点的两个扩展行和两个扩展列。这些参考样点可能在当前子图片的范围之外。
c.当在亮度映射色度缩放(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.在应用中,子图片被设计为提供灵活性,使得序列图片中相同位置的区域可以被独立解码或提取。该区域可能有一些特殊要求。例如,它可能是需要高质量的感兴趣区域(ROI)。在另一示例中,它可以用作快速浏览视频的轨迹。在又一示例中,它可以提供低分辨率、低复杂度和低功耗的比特流,该比特流可以被馈送给对复杂度敏感的终端用户。所有这些应用可能要求子图片的区域应该用不同于其他部分的配置来编码。然而,在当前的VVC中,没有能够独立配置子图片的机制。
4.技术解决方案示例
下面的详细列出了应被视为解释一般概念的示例。这些条目不应以狭隘的方式解释。此外,这些条目可以以任何方式组合。
在下文中,时域滤波器用于表示需要其他图片中的样点的滤波器(例如,在JCTVC-AI0023中提出的滤波器)。
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 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是否必须在所需的子图片中(例如,如4.a和/或4.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是否必须在所需的子图片中(例如,如5.a和/或5.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.一致性比特流应当满足不允许对一个视频单元(例如,序列)启用子图片编解码和自适应分辨率转换(ARC)/动态分辨率转换(DRC)/参考图片重采样(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.在一个示例中,可以利用默认值来标记样点/MxK子区域是否属于第二集合。
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 BDA0003706653790000711
Figure BDA0003706653790000721
25.是否信令通知slice_address可以与条带是否被信令通知为矩形(例如,rect_slice_flag是否等于0或1)无关。
a.示例性语法设计如下:
Figure BDA0003706653790000722
26.当条带被信令通知为矩形时,是否信令通知slice_address可以取决于条带的数量。
Figure BDA0003706653790000723
27.是否信令通知num_bricks_in_slice_minus1可以取决于slice_address和/或图片中的砖块数量。
a.示例性语法设计如下:
Figure BDA0003706653790000724
28.是否信令通知loop_filter_across_bricks_enabled_flag可以取决于片的数量和/或砖块的数量。
a.在一个示例中,如果砖块的数量小于2,则不信令通知loop_filter_across_bricks_enabled_flag。
b.示例性语法设计如下:
Figure BDA0003706653790000731
29.比特流一致性的要求是图片的所有条带必须覆盖整个图片。
a.当条带被信令通知为矩形时,必须满足该要求(例如,rect_slice_flag等于1)。
30.比特流一致性的要求是子图片的所有条带必须覆盖整个子图片。
a.当条带被信令通知为矩形时,必须满足该要求(例如,rect_slice_flag等于1)。
31.比特流一致性的要求是条带不能与一个以上的子图片重叠。
32.比特流一致性的要求是片不能与一个以上的子图片重叠。
33.比特流一致性的要求是砖块不能与一个以上的子图片重叠。
在下面的讨论中,维度为CW×CH的基本单元块(BUB)是矩形区域。例如,BUB可以是编解码树块(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)例如,对于第一个子图片,可以不信令通知Col-d和/或Row-d(例如,子图片索引(或子图片ID)等于0)a)当它们没有被信令通知时,它们可以被推断为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。
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。
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。
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的偏移量。示例性描述如下:
Figure BDA0003706653790000811
48.提出了如果在对应的PPS中信令通知子图片ID的信息,则不在图片标头中信令通知它们。
a.示例性语法设计如下,
Figure BDA0003706653790000812
Figure BDA0003706653790000821
b.在一个示例中,如果在SPS中信令通知子图片ID,则根据在SPS中信令通知的子图片ID的信息来设置子图片ID;否则,如果在PPS中信令通知子图片ID,则根据在PPS中信令通知的子图片ID的信息来设置子图片ID,否则,如果在图片标头中信令通知子图片ID,则根据在图片标头中信令通知的子图片ID的信息来设置子图片ID。示例性描述如下,
Figure BDA0003706653790000822
c.在一个示例中,如果在图片标头中信令通知子图片ID,则根据在图片标头中信令通知的子图片ID的信息来设置子图片ID;否则,如果在PPS中信令通知子图片ID,则根据在PPS中信令通知的子图片ID的信息来设置子图片ID,否则,如果在SPS中信令通知子图片ID,则根据在SPS中信令通知的子图片ID的信息来设置子图片ID。示例性描述如下,
Figure BDA0003706653790000823
Figure BDA0003706653790000831
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 BDA0003706653790000832
Figure BDA0003706653790000841
b.可替换地,可以在SPS中信令通知SE,诸如:
Figure BDA0003706653790000842
c.可替换地,可以在图片标头中信令通知SE,诸如:
Figure BDA0003706653790000843
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.对于帧间和/或帧内条带/图片,子图片中亮度分量的量化参数(QP)或QP增量。
b.对于帧间和/或帧内条带/图片,子图片中色度分量的量化参数(QP)或QP增量。
c.参考图片列表管理信息。
d.帧间和/或帧内条带/图片CTU尺寸。
e.帧间和/或帧内条带/图片的最小CU尺寸。
f.帧间和/或帧内条带/图片最大TU尺寸。
g.帧间和/或帧内条带/图片的最大/最小四叉树(QT)划分尺寸。
h.帧间和/或帧内条带/图片最大/最小四叉树(QT)划分深度。
i.用于帧间和/或帧内条带/图片的最大/最小二叉树(BT)划分尺寸。
j.帧间和/或帧内条带/图片最大/最小二叉树(BT)划分深度。
k.帧间和/或帧内条带/图片最大/最小三叉树(TT)划分尺寸。
l.帧间和/或帧内条带/图片最大/最小三叉树(TT)划分深度。
m.帧间和/或帧内条带/图片最大/最小多树(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单元中信令通知相同的信息。
5.实施例
在下面的实施例中,从VVC规范中删除的文本用粗体双括号括起来,例如,[[a]]表示“a”已被删除。
5.1实施例1:仿射构建的merge候选的子图片约束(解决方案1)
JVET-O2001-v14中指定的工作草案可能会有如下更改。
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)
rightBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos:pic_width_in_luma_samples-1
botBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?
SubPicBotBoundaryPos:pic_height_in_luma_samples-1
–如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY、yColBr小于或等于botBoundaryPos,xColBr小于或等于rightBoundaryPos,则适用以下情况:
–变量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候选的子图片约束(解决方案2)
JVET-O2001-v14中指定的工作草案可能会有如下更改。
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)
rightBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos:pic_width_in_luma_samples-1
botBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?
SubPicBotBoundaryPos:pic_height_in_luma_samples–1
xColBr=Min(rightBoundaryPos,xColBr)
yColBr=Min(botBoundaryPos,yColBr)
–如果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亮度整数样点获取过程
该过程的输入是:
–以全样点为单位的亮度位置(xIntL,yIntL),
–亮度参考样点阵列refPicLXL,
该过程的输出是预测亮度样点值predSampleLXL
变量shift被设置为等于Max(2,14-BitDepthY)。
变量picW被设置为等于pic_width_in_luma_samples,变量picH被设置为等于pic_height_in_luma_samples。
以全样点为单位的亮度位置(xInt、yInt)推导如下:
–如果subpic_treated_as_pic_flag[SubPicIdx]等于1,则应用以下:
xInt=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,xInt)
yInt=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yInt)
–否则:
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
JVET-O2001-v14中指定的工作草案可能会有如下更改。
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。
–变量rightBoundaryPos和botBoundaryPos的推导如下:rightBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?......SubPicRightBoundaryPos:pic_width_in_luma_samples-1botBoundaryPos=subpic_treated_as_pic_flag[SubPicIdx]?.........SubPicBotBoundaryPos:pic_height_in_luma_samples–1
–当availL等于TRUE时,数组recLuma[i](其中i=0..sizeY-1)被设置为等于
Figure BDA0003706653790000941
Figure BDA0003706653790000942
其中i=0..sizeY–1,并且cnt设置为等于sizeY
–当availT等于TRUE时,数组recLuma[cnt+i](其中,i=0..sizeY–1)被设置为等于
Figure BDA0003706653790000943
Figure BDA0003706653790000944
其中,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)样点为单位定义子图片元素的示例
JVET-O2001-v14中指定的工作草案可能会有如下更改。
7.4.3.3序列参数集RBSP语义
subpic_grid_col_width_minus1加1以[[4]]N个样点为单位指定子图片标识符网格的每个元素的宽度。语法元素的长度为
Ceil(Log2(pic_width_max_in_luma_samples/[[4]]N)))比特。
变量NumSubPicGridCols的推导如下:
Figure BDA0003706653790000951
subpic_grid_row_height_minus1加1以4个样点为单位指定子图片标识符网格的每个元素的高度。语法元素的长度为
Ceil(Log2(pic_height_max_in_luma_samples/[[4]]N))比特。
变量NumSubPicGridRows的推导如下:
NumSubPicGridRows=
(pic_height_max_in_luma_samples+subpic_grid_row_height_minus1*[[4]]N+N-1)/
(subpic_grid_row_height_minus1*[[4+3]]N+N-1)
7.4.7.1通用条带标头语义
变量SubPicIdx、SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos和SubPicBotBoundaryPos的推导如下:
Figure BDA0003706653790000953
Figure BDA0003706653790000961
5.6实施例6:将图片宽度和图片高度限制为等于或大于8
JVET-O2001-v14中指定的工作草案可能会有如下更改。
7.4.3.3序列参数集RBSP语义
pic_width_max_in_luma_samples指定参考SPS的每个解码图片的以亮度样点为单位的最大宽度。pic_width_max_in_luma_samples不应等于0,并且应为[[MinCbSizeY]]Max(8,MinCbSizeY)的整数倍。
pic_height_max_in_luma_samples指定参考SPS的每个解码图片的以亮度样点为单位的最大高度。pic_height_max_in_luma_samples不应等于0,并且应为[[MinCbSizeY]]Max(8,MinCbSizeY)的整数倍。
5.7实施例7:针对BT/TT/QT划分、BT/TT/QT深度推导和/或CU划分标志的信令的子图片边界检查
JVET-O2001-v14中指定的工作草案可能会有如下更改。
6.4.2允许的二进制划分过程
变量allowBtSplit的推导如下:
–…
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_VER
–y0+cbHeight大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?SubPicBotBoundaryPos+1:pic_height_in_luma_samples。
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_VER
–cbHeight大于MaxTbSizeY
–x0+cbWidth大于[[pic_width_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos+1:pic_width_in_luma_samples
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_HOR
–cbWidth大于MaxTbSizeY
–y0+cbHeight大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?SubPicBotBoundaryPos+1:pic_height_in_luma_samples。
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–x0+cbWidth大于[[pic_width_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos+1:pic_width_in_luma_samples
–y0+cbHeight大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?SubPicBotBoundaryPos+1:pic_height_in_luma_samples。
–cbWidth大于minQtSize
–否则,如果以下所有条件都为真,allowBtSplit将被设置为等于FALSE
–btSplit等于SPLIT_BT_HOR
–x0+cbWidth大于[[pic_width_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos+1:pic_width_in_luma_samples
–y0+cbHeight小于或等于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?
SubPicBotBoundaryPos+1:pic_height_in_luma_samples。
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]]subpic_treated_as_pic_flag[SubPicIdx]?
SubPicRightBoundaryPos+1:pic_width_in_luma_samples
–y0+cbHeight大于[[pic_height_in_luma_samples]]subpic_treated_as_pic_flag[SubPicIdx]?SubPicBotBoundaryPos+1:pic_height_in_luma_samples。
–treeType等于DUAL_TREE_CHROMA,并且(cbWidth/SubWidthC)*(cbHeight/SubHeightC)小于或等于32
–treeType等于DUAL_TREE_CHROMA,modeType等于MODE_TYPE_INTRA
–否则,allowTtSplit设置为TRUE。
7.3.8.2编解码树单元语法
Figure BDA0003706653790000991
7.3.8.4编解码树语法
Figure BDA0003706653790001001
Figure BDA0003706653790001011
Figure BDA0003706653790001021
5.8实施例8:定义子图片的示例
Figure BDA0003706653790001022
Figure BDA0003706653790001031
5.9实施例9:定义子图片的示例
Figure BDA0003706653790001032
Figure BDA0003706653790001041
5.10实施例10:定义子图片的示例
Figure BDA0003706653790001042
Figure BDA0003706653790001051
5.11实施例11:定义子图片的示例
Figure BDA0003706653790001061
Figure BDA0003706653790001071
NumSubPics=num_subpics_minus2+2。
5.12实施例:考虑子图片的去方块
去方块滤波过程
概述
该过程的输入是去方块之前的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
该过程的输出是去方块后的修改的重建图片,即数组recPictureL,以及当ChromaArrayType不等于0时,数组recPictureCb和recPictureCr
首先对图片中的垂直边缘进行滤波。然后,利用由垂直边缘滤波过程修改的样点作为输入,对图片中的水平边缘进行滤波。每个CTU的CTB中的垂直和水平边缘在编解码单元的基础上被单独处理。编解码单元中的编解码块的垂直边缘从编解码块左侧的边缘开始被过滤,按照它们的几何顺序通过边缘向编解码块的右侧前进。编解码单元中编解码块的水平边缘被滤波,从编解码块顶部的边缘开始,按照它们的几何顺序通过边缘向编解码块的底部前进。
注意–尽管在本规范中,滤波过程是以图片为基础进行指定的,但只要解码器正确考虑了处理依赖顺序以产生相同的输出值,滤波过程也可以以编解码单元为基础实现,并具有等同的结果。
去方块滤波过程应用于图片的所有编解码子块边缘和变换块边缘,除了以下类型的边缘:
–图片边界上的边缘,
–[[当loop_filter_cross_sub pic_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_sub pic_enabled_flag[SubPicIdx]等于0。]]
–当前编解码块的顶部边界是片的顶部边界,并且loop_filter_cross_tiles_enabled_flag等于0。
–当前编解码块的顶部边界是条带的顶部边界,并且loop_filter_cross_slices_enabled_flag等于0。
–当前编解码块的顶部边界是图片的水平虚拟边界中的一个,并且VirtualBoundariesDisabledFlag等于1。
–否则,filterEdgeFlag被设置为等于1。
使用短滤波器对亮度样点进行滤波过程
该过程的输入包括:
–样点值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
当nDp大于0且loop_filter_across_subpic_enabled_flag[subPicIdxP]等于0时,nDp被设置为等于0,其中subPicIdxP是包含样点p0的子图片的子图片索引。
当nDq大于0并且loop_filter_across_subpic_enabled_flag[subPicIdxQ]等于0时,nDq被设置为等于0,其中subPicIdxQ是包含样点q0的子图片的子图片索引。
使用长滤波器对亮度样点进行滤波过程
该过程的输入是:
–变量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。
当loop_filter_across_subpic_enabled_flag[subPicIdxP]等于0时,滤波的样点值pi’被对应的输入样点值pi代替,其中subPicIdxP是包含样点p0的子图片的子图片索引,i=0..maxFilterLengthP-1。
当loop_filter_across_subpic_enabled_flag[subPicIdxQ]等于0时,滤波的样点值qi’被对应的输入样点值qj代替,其中subPicIdxQ是包含样点q0的子图片的子图片索引,j=0..maxFilterLengthQ-1。
色度样点的滤波过程
只有当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:
当loop_filter_across_subpic_enabled_flag[subPicIdxP]等于0时,滤波的样点值pi’被对应的输入样点值pi代替,其中subPicIdxP是包含样点p0的子图片的子图片索引,i=0..maxFilterLengthCbCr-1。
当loop_filter_across_subpic_enabled_flag[subPicIdxQ]等于0时,滤波的样点值qi’被对应的输入样点值qi代替,其中subPicIdxQ是包含样点q0的子图片的子图片索引,i=0..maxFilterLengthCbCr-1:
图6是示出其中可以实现本文公开的各种技术的示例视频处理系统6000的框图。各种实施方式可以包括系统6000的一些或所有组件。系统6000可以包括用于接收视频内容的输入6002。视频内容可以以原始或未压缩的格式接收,例如8或10比特多分量像素值,或者可以是压缩或编码格式。输入6002可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口,诸如以太网、无源光网络(PON)等,以及诸如Wi-Fi或蜂窝接口的无线接口。
系统6000可以包括编解码组件6004,其可以实现本文档中描述的各种编解码或编码方法。编解码组件6004可以降低从输入6002到编解码组件6004的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。如组件6006所表示的,编解码组件6004的输出可以被存储,或者经由连接的通信被发送。组件6008可以使用在输入6002处接收的视频的存储或传送的比特流(或编码)表示来生成发送到显示接口6010的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且与编码解结果相反的相应解码工具或操作将由解码器执行。
外围总线接口或显示器接口的示例可以包括通用串行总线(USB)或高清多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以在各种电子设备中实现,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
图7是视频处理装置7000的框图。装置7000可以用于实现本文描述的一种或多种方法。装置7000可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置7000可以包括一个或多个处理器7002、一个或多个存储器7004和视频处理硬件7006。处理器7002可以被配置为实现本文档(例如,图11-图14)中描述的一种或多种方法。存储器7004可以用于存储用于实现本文所述方法和技术的数据和代码。视频处理硬件7006可以用于在硬件电路中实现本文档中描述的一些技术。在一些实施例中,硬件7006可以部分或完全在处理器7002内,例如图形处理器。
图8是图示可利用本公开的技术的示例视频编解码系统100的框图。如图8所示,视频编解码系统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)标准和其他当前和/或进一步的标准。
图9是图示视频编码器200的示例的框图,视频编码器200可以是图8所示的系统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可以执行一个或多个熵编码操作以生成熵编码的数据并输出包括熵编码的数据的比特流。
图10是图示视频解码器300的示例的框图,视频解码器300可以是图8所示的系统100中的视频解码器114。
视频解码器300可以被配置为执行本公开的任何或所有技术。在图10的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
在图10的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、重建单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与针对视频编码器200(图9)描述的编码过程互逆的解码过程。
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编码的视频数据(例如,编码的视频数据块)。熵解码单元301可以解码熵编码的视频数据,并且运动补偿单元302可以从熵解码的视频数据确定包含运动矢量、运动矢量精度、参考图片列表索引和其它运动信息的运动信息。运动补偿单元302可以,例如通过执行AMVP和merge模式来确定此信息。
运动补偿单元302可以生成运动补偿块,可以基于插值滤波器执行插值。语法元素中可以包括要以子像素精度使用的插值滤波器的识别符。
运动补偿单元302可以使用如视频编码器20在视频块的编码期间所使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据所接收的语法信息来确定视频编码器200所使用的插值滤波器,并使用插值滤波器来产生预测块。
运动补偿单元302可以使用一些语法信息来确定用于编码经编码的视频序列的帧和/或条带的块的尺寸、描述经编码的视频序列的图片的每一宏块如何被分割的分割信息、指示每一分割如何被编码的模式、每一经帧间编码的块的一个或一个以上参考帧(和参考帧列表)以及解码经编码的视频序列的其它信息。
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻的块形成预测块。逆量化单元303逆量化(即,去量化)比特流中提供的并且由熵解码单元301解码的量化视频块系数。逆变换单元303应用逆变换。
重建单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应的预测块相加,以形成解码的块。如果需要,还可以应用去方块滤波器来对解码的块进行滤波,以便去除块效应伪影。然后解码的视频块被存储在缓冲器307中,缓冲器307为后续的运动补偿/帧内预测提供参考块,并且还产生解码的视频以在显示设备上呈现。
图11-图14示出了可以在例如图6-图10所示的实施例中实现上述技术解决方案的示例方法。
图11示出了视频处理的示例方法1100的流程图。方法1100包括:在操作1110,执行包括图片的视频和视频的比特流之间的转换,图片包括一个或多个子图片,比特流符合格式规则,格式规则指定比特流包括参数集,参数集控制与子图片的标识(ID)相关联的一个或多个子图片中的子图片的编解码行为。
图12示出了视频处理的示例方法1200的流程图。方法1200包括:在操作1210,执行包括图片的视频和视频的比特流之间的转换,图片包括一个或多个子图片,当前参数集被配置为控制一个或多个子图片中的至少一个子图片的编解码行为,并且比特流符合格式规则,格式规则指定在比特流中信令通知当前参数集和默认参数集之间的差之前,在比特流中信令通知与当前参数集相对应的默认参数集。
图13示出了视频处理的示例方法1300的流程图。方法1300包括:在操作1310,执行包括图片的视频和视频的比特流之间的转换,图片包括一个或多个子图片,比特流包括参数集,参数集包括用于控制子图片的编解码属性的第一控制参数和第二控制参数,并且比特流符合格式规则,格式规则指定第一控制参数是否或如何被第二控制参数覆盖以用于解码。
图14示出了视频处理的示例方法1400的流程图。方法1400包括:在操作1410,执行包括图片的视频和视频的比特流之间的转换,图片包括一个或多个子图片,与一个或多个子图片中的每一个相对应的一个或多个第一标志被包括在序列参数集(SPS)中,一个或多个第一标志中的每个第一标志指示是否为与每个第一标志相对应的子图片信令通知约束信息,并且约束信息指示未被应用于编解码层视频序列(CLVS)上的对应子图片的编解码工具。
接下来提供由一些实施例优选的解决方案列表。
1.一种视频处理方法,包括:执行包括图片的视频与该视频的比特流之间的转换,图片包括一个或多个子图片,其中,比特流符合格式规则,其中,格式规则指定比特流包括参数集,参数集控制与子图片的标识(ID)相关联的一个或多个子图片中的子图片的编解码行为。
2.根据解决方案1所述的方法,其中,参数集包括以下中的至少一种:子图片的亮度分量的量化参数(QP)或QP增量、子图片的色度分量的QP或QP增量、参考图片列表管理信息、图片的编解码树单元(CTU)尺寸、图片的最小编解码单元(CU)尺寸、图片的最大变换单元(TU)尺寸,图片的最大四叉树(QT)划分尺寸、图片的最小QT划分尺寸、图片的最大QT划分深度、图片的最小QT划分深度、图片的最大二叉树(BT)划分尺寸、图片的最小BT划分尺寸、图片的最大BT划分深度、图片的最小BT划分深度、图片的最大三叉树(TT)划分尺寸、图片的最小TT划分尺寸、图片的最大TT划分深度、图片的最小TT划分深度、图片的最大多叉树(MT)划分尺寸、图片的最小MT划分尺寸、图片的最大MT划分深度、图片的最小MT划分深度,并且参数集控制一个或多个编解码工具。
3.根据解决方案2所述的方法,其中,一个或多个编解码工具包括以下中的至少一种:加权预测、样点自适应偏移(SAO)、自适应环路滤波(ALF)、变换跳过、块差分脉冲编解码调制(BDPCM)、联合Cb-Cr残差(JCCR)编解码、参考环绕、时域运动矢量预测(TMVP)、子块时域运动矢量预测(sbTMVP)、自适应运动矢量分辨率(AMVR)、双向光流(BDOF)、对称运动矢量差(SMVD)、解码器侧运动矢量细化(DMVR)、利用运动矢量差的Merge(MMVD)、帧内子分割(ISP)模式、(MRL)、基于矩阵的帧内预测(MIP)、跨分量线性模型(CCLM)、CCLM并置色度控制、用于帧内和/或帧间的多变换设置(MTS)、用于帧间的MTS、子块变换(SBT)、SBT最大尺寸、仿射编解码、仿射类型编解码、调色板编解码、具有CU权重的双向预测(BCW)、帧内块复制(IBC)、组合帧间-帧内预测(CIIP)、基于三角形的运动补偿,以及亮度映射与色度变换(LMCS)。
4.根据解决方案1至3中的任一项所述的方法,其中,比特流包括指示一个或多个子图片中的每一个的参数集相同的单个标志。
5.根据解决方案4所述的方法,其中,对于一个或多个子图片,在比特流中只信令通知参数集的单个副本。
6.根据解决方案1所述的方法,其中,执行转换包括对一个或多个子图片中的至少两个子图片的参数集应用预测编解码。
7.根据解决方案6所述的方法,其中,对两个不同子图片的语法元素的两个值之间的差值进行编解码。
8.根据解决方案1所述的方法,其中,在序列参数集(SPS)、图片参数集(PPS)或图片标头中信令通知参数集。
9.根据解决方案1所述的方法,其中,在补充增强信息(SEI)消息或视频使用信息(VUI)消息中信令通知参数集。
10.根据解决方案9所述的方法,其中,SEI消息是子图片级信息SEI消息。
11.根据解决方案1所述的方法,其中,在子图片参数集(SPPS)中信令通知参数集,子图片参数集不同于视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、图片标头和条带标头。
12.根据解决方案11所述的方法,其中,在比特流中信令通知与SPPS相关联的SPPS索引。
13.根据解决方案11所述的方法,其中,在比特流中信令通知指示与对应的子图片相关联的SPPS的SPPS索引。
14.根据解决方案1至13中任一项所述的方法,其中,比特流包括与条带、片、砖块或子图片相关联的语法元素,并且其中,语法元素取决于包括当前条带的子图片的参数集。
15.根据解决方案1至13中任一项所述的方法,其中,参数集的第一控制参数控制编解码行为,并且其中,基于一致性规则,控制编解码行为的参数集的第二控制参数与第一控制参数相同。
16.根据解决方案1所述的方法,其中,在比特流中信令通知关于编解码层视频序列(CLVS)中一个或多个编解码工具的应用的指示。
17.根据解决方案16所述的方法,其中,在补充增强信息(SEI)消息或视频使用信息(VUI)消息中信令通知指示。
18.根据解决方案16所述的方法,其中,在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)或独立网络抽象层(NAL)单元中信令通知指示。
19.一种视频处理方法,包括:执行包括图片的视频与该视频的比特流之间的转换,图片包括一个或多个子图片,其中,当前参数集被配置为控制一个或多个子图片中的至少一个子图片的编解码行为,其中,比特流符合格式规则,其中,格式规则指定在比特流中信令通知当前参数集和默认参数集之间的差值之前,在比特流中信令通知与当前参数集相对应的默认参数集。
20.根据解决方案19所述的方法,其中,格式规则进一步指定在默认参数集之后,信令通知默认参数集和当前参数集之间的差值。
21.根据解决方案9所述的方法,其中,在默认参数集之前,在比特流中信令通知指示一个或多个子图片中的每个子图片的编解码行为由默认参数集控制的标志。
22.一种视频处理方法,包括:执行包括图片的视频与该视频的比特流之间的转换,图片包括一个或多个子图片,其中,比特流符合格式规则,其中,比特流包括参数集,参数集包括用于控制子图片的编解码属性的第一控制参数和第二控制参数,并且其中,格式规则指定第一控制参数是否或如何被第二控制参数覆盖以用于解码。
23.根据解决方案22所述的方法,其中,在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、图片标头或条带标头中信令通知第二控制参数。
24.一种视频处理方法,包括:执行包括图片的视频与该视频的比特流之间的转换,图片包括一个或多个子图片,其中,与一个或多个子图片中的每个子图片相对应的一个或多个第一标志被包括在序列参数集(SPS)中,其中,一个或多个第一标志中的每个第一标志指示是否为与每个第一标志相对应的子图片信令通知约束信息,并且其中,约束信息指示未被应用于编解码层视频序列(CLVS)上的对应子图片的编解码工具。
25.根据解决方案24所述的方法,其中,在比特流中信令通知指示一个或多个第一标志中的每个第一标志是否被信令通知的第二标志。
26.根据解决方案24或25所述的方法,其中,约束信息包括general_constraint_info()语法结构。
27.根据解决方案1至26中任一项所述的方法,其中,转换包括从比特流中解码视频。
28.根据解决方案1至26中任一项所述的方法,其中,转换包括将视频编码为比特流。
29.一种将表示视频的比特流写入计算机可读记录介质的方法,包括:根据解决方案1至26中任一项所述的方法从视频生成比特流;以及将比特流写入计算机可读记录介质。
30.一种用于存储视频的比特流的方法,包括:执行包括图片的视频和该视频的比特流之间的转换,图片包括一个或多个子图片;从当前块生成比特流;以及将比特流存储在非暂时性计算机可读记录介质中,其中,比特流符合格式规则,其中,格式规则指定比特流包括参数集,参数集控制与子图片的标识(ID)相关联的一个或多个子图片中的子图片的编解码行为。
31.一种视频处理装置,包括被配置为实现如解决方案1至30中任一项或多项所述的方法的处理器。
32.一种其上存储有指令的计算机可读介质,当所述指令被执行时使处理器实现如解决方案1至30中任一项或多项所述的方法。
33.一种计算机可读介质,其中存储根据解决方案1至30中任一项生成的比特流。
34.一种用于存储比特流的视频处理装置,其中,视频处理装置被配置为实现如解决方案1至30中任一项或多项所述的方法。
本申请文件中描述的所公开的和其他解决方案、示例、实施例、模块和功能操作能在数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。所公开的和其他实施例能够实现为一个或多个计算机程序产品,即编码在有形的且非易失的计算机可读介质上的计算机程序指令的一个或多个模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
本申请文件中描述的过程和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及CD ROM和DVD ROM盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实现和示例,可以基于本专利文件中描述和说明的内容做出其他实现、增强和变体。

Claims (34)

1.一种视频处理方法,包括:
执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,
其中,所述比特流符合格式规则,
其中,所述格式规则指定所述比特流包括参数集,所述参数集控制与子图片的标识(ID)相关联的所述一个或多个子图片中的子图片的编解码行为。
2.根据权利要求1所述的方法,其中,所述参数集包括以下中的至少一种:所述子图片的亮度分量的量化参数(QP)或QP增量、所述子图片的色度分量的QP或QP增量、参考图片列表管理信息、所述图片的编解码树单元(CTU)尺寸、所述图片的最小编解码单元(CU)尺寸、所述图片的最大变换单元(TU)尺寸,所述图片的最大四叉树(QT)划分尺寸、所述图片的最小QT划分尺寸、所述图片的最大QT划分深度、所述图片的最小QT划分深度、所述图片的最大二叉树(BT)划分尺寸、所述图片的最小BT划分尺寸、所述图片的最大BT划分深度、所述图片的最小BT划分深度、所述图片的最大三叉树(TT)划分尺寸、所述图片的最小TT划分尺寸、所述图片的最大TT划分深度、所述图片的最小TT划分深度、所述图片的最大多叉树(MT)划分尺寸、所述图片的最小MT划分尺寸、所述图片的最大MT划分深度、所述图片的最小MT划分深度,并且所述参数集控制一个或多个编解码工具。
3.根据权利要求2所述的方法,其中,所述一个或多个编解码工具包括以下中的至少一种:加权预测、样点自适应偏移(SAO)、自适应环路滤波(ALF)、变换跳过、块差分脉冲编解码调制(BDPCM)、联合Cb-Cr残差(JCCR)编解码、参考环绕、时域运动矢量预测(TMVP)、子块时域运动矢量预测(sbTMVP)、自适应运动矢量分辨率(AMVR)、双向光流(BDOF)、对称运动矢量差(SMVD)、解码器侧运动矢量细化(DMVR)、利用运动矢量差的Merge(MMVD)、帧内子分割(ISP)模式、(MRL)、基于矩阵的帧内预测(MIP)、跨分量线性模型(CCLM)、CCLM并置色度控制、用于帧内和/或帧间的多变换设置(MTS)、用于帧间的MTS、子块变换(SBT)、SBT最大尺寸、仿射编解码、仿射类型编解码、调色板编解码、具有CU权重的双向预测(BCW)、帧内块复制(IBC)、组合帧间-帧内预测(CIIP)、基于三角形的运动补偿,以及亮度映射与色度变换(LMCS)。
4.根据权利要求1至3中的任一项所述的方法,其中,所述比特流包括指示所述一个或多个子图片中的每一个的参数集相同的单个标志。
5.根据权利要求4所述的方法,其中,对于所述一个或多个子图片,在所述比特流中只信令通知所述参数集的单个副本。
6.根据权利要求1所述的方法,其中,执行所述转换包括对所述一个或多个子图片中的至少两个子图片的参数集应用预测编解码。
7.根据权利要求6所述的方法,其中,对两个不同子图片的语法元素的两个值之间的差值进行编解码。
8.根据权利要求1所述的方法,其中,在序列参数集(SPS)、图片参数集(PPS)或图片标头中信令通知所述参数集。
9.根据权利要求1所述的方法,其中,在补充增强信息(SEI)消息或视频使用信息(VUI)消息中信令通知所述参数集。
10.根据权利要求9所述的方法,其中,所述SEI消息是子图片级信息SEI消息。
11.根据权利要求1所述的方法,其中,在子图片参数集(SPPS)中信令通知所述参数集,所述子图片参数集不同于视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、图片标头和条带标头。
12.根据权利要求11所述的方法,其中,在所述比特流中信令通知与SPPS相关联的SPPS索引。
13.根据权利要求11所述的方法,其中,在所述比特流中信令通知指示与对应的子图片相关联的SPPS的SPPS索引。
14.根据权利要求1至13中任一项所述的方法,其中,所述比特流包括与条带、片、砖块或子图片相关联的语法元素,并且其中,所述语法元素取决于包括当前条带的子图片的参数集。
15.根据权利要求1至13中任一项所述的方法,其中,所述参数集的第一控制参数控制编解码行为,并且其中,基于一致性规则,控制所述编解码行为的所述参数集的第二控制参数与所述第一控制参数相同。
16.根据权利要求1所述的方法,其中,在所述比特流中信令通知关于编解码层视频序列(CLVS)中一个或多个编解码工具的应用的指示。
17.根据权利要求16所述的方法,其中,在补充增强信息(SEI)消息或视频使用信息(VUI)消息中信令通知所述指示。
18.根据权利要求16所述的方法,其中,在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)或独立网络抽象层(NAL)单元中信令通知所述指示。
19.一种视频处理方法,包括:
执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,
其中,当前参数集被配置为控制所述一个或多个子图片中的至少一个子图片的编解码行为,
其中,所述比特流符合格式规则,
其中,所述格式规则指定在所述比特流中信令通知所述当前参数集和默认参数集之间的差值之前,在所述比特流中信令通知与所述当前参数集相对应的所述默认参数集。
20.根据权利要求19所述的方法,其中,所述格式规则进一步指定在所述默认参数集之后,信令通知所述默认参数集和所述当前参数集之间的差值。
21.根据权利要求19所述的方法,其中,在所述默认参数集之前,在所述比特流中信令通知指示所述一个或多个子图片中的每个子图片的编解码行为由所述默认参数集控制的标志。
22.一种视频处理方法,包括:
执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,
其中,所述比特流符合格式规则,
其中,所述比特流包括参数集,所述参数集包括用于控制子图片的编解码属性的第一控制参数和第二控制参数,并且
其中,所述格式规则指定所述第一控制参数是否或如何被所述第二控制参数覆盖以用于解码。
23.根据权利要求22所述的方法,其中,在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、图片标头或条带标头中信令通知所述第二控制参数。
24.一种视频处理方法,包括:
执行包括图片的视频与所述视频的比特流之间的转换,所述图片包括一个或多个子图片,
其中,与所述一个或多个子图片中的每个子图片相对应的一个或多个第一标志被包括在序列参数集(SPS)中,其中,所述一个或多个第一标志中的每个第一标志指示是否为与每个第一标志相对应的子图片信令通知约束信息,并且其中,所述约束信息指示未被应用于编解码层视频序列(CLVS)上的对应子图片的编解码工具。
25.根据权利要求24所述的方法,其中,在所述比特流中信令通知第二标志,其指示是否信令通知所述一个或多个第一标志中的每个第一标志。
26.根据权利要求24或25所述的方法,其中,所述约束信息包括general_constraint_info()语法结构。
27.根据权利要求1至26中任一项所述的方法,其中,所述转换包括从所述比特流中解码所述视频。
28.根据权利要求1至26中任一项所述的方法,其中,所述转换包括将所述视频编码为所述比特流。
29.一种将表示视频的比特流写入计算机可读记录介质的方法,包括:
根据权利要求1至26中任一项所述的方法从视频生成比特流;以及
将所述比特流写入计算机可读记录介质。
30.一种用于存储视频的比特流的方法,包括:
执行包括图片的视频和所述视频的比特流之间的转换,所述图片包括一个或多个子图片;
从当前块生成所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中,
其中,所述比特流符合格式规则,
其中,所述格式规则指定所述比特流包括参数集,所述参数集控制与子图片的标识(ID)相关联的所述一个或多个子图片中的子图片的编解码行为。
31.一种视频处理装置,包括被配置为实现如权利要求1至30中任一项或多项所述的方法的处理器。
32.一种其上存储有指令的计算机可读介质,当所述指令被执行时使处理器实现如权利要求1至30中任一项或多项所述的方法。
33.一种计算机可读介质,其中存储根据权利要求1至30中任一项生成的比特流。
34.一种用于存储比特流的视频处理装置,其中,所述视频处理装置被配置为实现如权利要求1至30中任一项或多项所述的方法。
CN202080089302.4A 2019-12-25 2020-12-25 在视频比特流中以子图片级别信令通知参数 Pending CN115362677A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019128124 2019-12-25
CNPCT/CN2019/128124 2019-12-25
PCT/CN2020/139389 WO2021129805A1 (en) 2019-12-25 2020-12-25 Signaling of parameters at sub-picture level in a video bitstream

Publications (1)

Publication Number Publication Date
CN115362677A true CN115362677A (zh) 2022-11-18

Family

ID=76573708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080089302.4A Pending CN115362677A (zh) 2019-12-25 2020-12-25 在视频比特流中以子图片级别信令通知参数

Country Status (3)

Country Link
KR (1) KR20220114555A (zh)
CN (1) CN115362677A (zh)
WO (1) WO2021129805A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8988531B2 (en) * 2010-07-08 2015-03-24 Texas Instruments Incorporated Method and apparatus for sub-picture based raster scanning coding order
US9491457B2 (en) * 2012-09-28 2016-11-08 Qualcomm Incorporated Signaling of regions of interest and gradual decoding refresh in video coding

Also Published As

Publication number Publication date
WO2021129805A1 (en) 2021-07-01
KR20220114555A (ko) 2022-08-17

Similar Documents

Publication Publication Date Title
CN114631321B (zh) 子图片与环路滤波之间的相互影响
WO2021027767A1 (en) Position restriction for inter coding mode
KR102609308B1 (ko) 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스
CN114556924A (zh) 视频处理中色度残差的联合编解码与滤波
US20230008778A1 (en) Interplay between picture header and slice header of a video bitstream
JP7454681B2 (ja) ビデオコーディング及び復号の制約
WO2021129805A1 (en) Signaling of parameters at sub-picture level in a video bitstream
CN115280768A (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