CN113826390A - 屏幕内容编解码的帧内块复制 - Google Patents
屏幕内容编解码的帧内块复制 Download PDFInfo
- Publication number
- CN113826390A CN113826390A CN202080036494.2A CN202080036494A CN113826390A CN 113826390 A CN113826390 A CN 113826390A CN 202080036494 A CN202080036494 A CN 202080036494A CN 113826390 A CN113826390 A CN 113826390A
- Authority
- CN
- China
- Prior art keywords
- block
- mode
- current video
- prediction
- video
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 468
- 241000023320 Luma <angiosperm> Species 0.000 claims abstract description 148
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims abstract description 148
- 238000012545 processing Methods 0.000 claims abstract description 77
- 238000006243 chemical reaction Methods 0.000 claims abstract description 53
- 239000013598 vector Substances 0.000 claims description 169
- 230000008569 process Effects 0.000 claims description 118
- 238000005192 partition Methods 0.000 claims description 87
- 238000009795 derivation Methods 0.000 claims description 39
- 230000011218 segmentation Effects 0.000 claims description 30
- 230000011664 signaling Effects 0.000 claims description 29
- 230000009977 dual effect Effects 0.000 claims description 27
- 230000003044 adaptive effect Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 15
- 238000007499 fusion processing Methods 0.000 claims description 15
- 230000007704 transition Effects 0.000 claims description 15
- 230000001419 dependent effect Effects 0.000 claims description 12
- 238000002156 mixing Methods 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 230000002123 temporal effect Effects 0.000 claims description 10
- 230000004927 fusion Effects 0.000 claims description 9
- 230000009466 transformation Effects 0.000 claims description 9
- 230000015654 memory Effects 0.000 claims description 8
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 5
- 238000009499 grossing Methods 0.000 claims description 5
- 230000003287 optical effect Effects 0.000 claims description 5
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 4
- 230000007717 exclusion Effects 0.000 claims description 2
- 239000000523 sample Substances 0.000 description 145
- 101001036283 Xenopus laevis DNA-binding protein inhibitor ID-3-A Proteins 0.000 description 18
- 239000013074 reference sample Substances 0.000 description 18
- 238000003491 array Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 12
- 238000001914 filtration Methods 0.000 description 9
- 238000005070 sampling Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000013139 quantization Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 239000011449 brick Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 description 2
- 241000209094 Oryza Species 0.000 description 2
- 235000007164 Oryza sativa Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 235000009566 rice Nutrition 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- FZEIVUHEODGHML-UHFFFAOYSA-N 2-phenyl-3,6-dimethylmorpholine Chemical compound O1C(C)CNC(C)C1C1=CC=CC=C1 FZEIVUHEODGHML-UHFFFAOYSA-N 0.000 description 1
- 101100154579 Arabidopsis thaliana NTR2 gene Proteins 0.000 description 1
- 101100026204 Gallus gallus NEGR1 gene Proteins 0.000 description 1
- 102100022223 Neuronal growth regulator 1 Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
描述了用于视频编解码的屏幕内容编解码的帧内块复制(IBC)的设备、系统和方法。一种用于视频处理的示例性方法,包括执行视频的色度分量的当前图片的当前视频块和视频的比特流表示之间的转换,其中比特流表示符合格式规则,并且其中格式规则指定基于对应于当前视频块的一个或多个亮度块是否使用帧内块复制(IBC)模式在比特流表示中编解码,对当前视频块使用IBC模式的指示被选择性地包括在比特流表示中,其中IBC模式包括基于来自当前图片的样点使用当前视频块的预测。
Description
相关申请的交叉引用
根据适用的专利法和/或依据巴黎公约的规则,本申请旨在及时要求2019年5月16日提交的国际专利申请No.PCT/CN2019/087235、2019年5月22日提交的国际专利申请No.PCT/CN2019/087993、2019年6月6日提交的国际专利申请No.PCT/CN2019/090265、2019年6月20日提交的国际专利申请No.PCT/CN2019/092153、2019年6月25日提交的国际专利申请No.PCT/CN2019/092833和2019年7月8日提交的国际专利申请No.PCT/CN2019/095158的优先权和权益。出于根据美国法律的所有目的,前述申请的整个公开通过引用而并入作为本申请公开的一部分。
技术领域
本文档涉及视频和图像编解码技术。
背景技术
数字视频占据互联网和其他数字通信网络上使用的最大带宽。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。
发明内容
描述了与数字视频编解码相关的设备、系统和方法,具体地,涉及视频编解码的屏幕内容编解码的帧内块复制(Intra Block Copy,IBC)。所描述的方法可以被应用于现有的视频编解码标准(例如,高效视频编解码(HEVC))和未来的视频编解码标准(例如,多功能视频编解码(VVC))或编解码器。
在一个示例性方面,公开了一种视频处理的方法。该方法包括执行视频的色度分量的当前图片的当前视频块和视频的比特流表示之间的转换,其中比特流表示符合格式规则,并且其中格式规则指定基于对应于当前视频块的一个或多个亮度块是否使用帧内块复制(IBC)模式在比特流表示中编解码,对当前视频块使用IBC模式的指示被选择性地包括在比特流表示中,其中IBC模式包括基于来自当前图片的样点使用当前视频块的预测。
在另一个示例性方面,公开了一种视频处理的方法。该方法包括:为视频的当前视频块确定对当前视频块使用帧内块复制(IBC)模式被禁用或者对应于当前视频块的块矢量无效;基于该确定,使用默认帧内模式生成当前视频块的预测;以及基于该预测,执行当前视频块和视频的比特流表示之间的转换。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括:为视频的当前视频块和视频的比特流表示之间的转换,对当前视频块选择性地启用帧内块复制(IBC)模式;以及在选择性地启用之后,执行转换,其中当前视频块包括一个或多个子块,并且其中子块中的至少一个与无效块矢量相关联。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括执行视频的当前图片的当前视频块和视频的比特流表示之间的转换,其中基于来自预测块的预测,使用帧内块复制模式在比特流表示中表示当前视频块,并且其中预测块包括具有默认值的像素。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括为使用帧内块复制(IBC)模式编解码的色度视频块,基于邻近色度块的运动矢量或块矢量来推导色度视频块的运动矢量或块矢量,以及基于该推导,执行色度视频块和视频的比特流表示之间的转换。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括确定当前视频块来自具有内容类型的视频的视频单元,以及基于该确定,执行当前视频块和视频的比特流表示之间的转换,其中在视频单元级别,在比特流表示中指示内容类型,并且其中基于规则根据内容类型,编解码工具选择性地可用于该转换。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括为使用三角形分割模式(TPM)编解码的当前视频块,存储当前视频块的至少一个子块的单向预测信息,以及使用单向预测信息,执行视频的当前视频块和视频的比特流表示之间的转换。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括基于当前视频块的编解码树结构,做出关于对当前视频块选择性地启用编解码模式的决定,以及基于该决定,执行当前视频块和当前视频块的比特流表示之间的转换。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括基于使用帧内块复制(IBC)模式编解码的视频的当前视频块的尺寸来确定预定义变换,以及基于该确定,执行当前视频块和视频的比特流表示之间的转换,其中,该转换包括在编码期间应用当前视频块的IBC预测和比特流表示中的残差编解码之间的预定义变换,或者在解码期间应用比特流表示中编解码的当前视频块的残差和重构的IBC之间的预定义变换的逆变换。
在又一个示例性方面,公开了一种视频处理的方法。该方法包括对视频的当前视频块有条件地启用当前视频块的利用单向预测的三角形预测模式(TPM),以及在有条件地启用之后,执行当前视频块和视频的比特流表示之间的转换,其中TPM包括将当前视频块划分成多个子块,至少一个子块具有非正方形形状。
在又一个示例方面,上述方法可以由包括处理器的视频编码器装置来实施。
在又一个示例方面,这些方法可以以处理器可执行指令的形式体现,并存储在计算机可读程序介质上。
本文档中还描述了这些和其他方面。
附图说明
图1示出了帧内块复制的示例。
图2示出了五个空域邻近候选的示例。
图3示出了以调色板模式编解码的块的示例。
图4示出了使用调色板预测值来信令通知调色板条目的示例。
图5示出了水平和垂直遍历扫描的示例。
图6示出了调色板索引的编解码的示例。
图7示出了多类型树划分模式的示例。
图8示出了用于在跨分量线性模型(cross-component linear model,CCLM)预测模式下推导参数的样点的示例。
图9示出了67种帧内预测模式的示例。
图10示出了当前块的左侧和上方邻居的示例。
图11示出了与预测块邻近的四条参考线的示例。
图12A示出了帧内子分割方法的4×8和8×4块的划分的示例。
图12B示出了帧内子分割方法的除了4×8、8×4和4×4之外的所有块的划分的示例。
图13A-图3D示出了位置依赖帧内预测组合(Position DependentIntraPrediction Combination,PDPC)方法所使用的应用于对角线和相邻角度帧内模式的样点的示例。
图14示出了基于三角形分割的帧间预测的示例。
图15示出了用于构建单向预测候选列表的空域和时域邻近块的示例。
图16示出了融合(blending)过程中使用的权重的示例。
图17示出了覆盖亮度区域的选择的亮度块的示例。
图18示出了左侧和上方邻近块的示例。
图19A和图19B分别示出了三角形分割模式(TPM)下的对角线和反对角线分割的示例。
图20示出了包含位于对角线或反对角线上的样点的子块的示例。
图21A示出了包含位于宽度大于高度的块的对角线或反对角线上的样点的子块的示例。
图21B示出了包含位于宽度小于高度的块的对角线或反对角线上的样点的子块的示例。
图21C示出了包含位于宽度等于高度的块的对角线或反对角线上的样点的子块的示例。
图22A-图22J是视频处理方法的示例的流程图。
图23是实施本文档中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。
图24是其中可以实施所公开的技术的示例视频处理系统的框图。
具体实施方式
本文档提供了图像或视频比特流的解码器可以使用的各种技术,以提高解压缩或解码的数字视频或图像的质量。为简洁起见,本文使用的术语“视频”包括图片序列(传统上称为视频)和单个图像。此外,视频编码器也可以在编码过程中实施这些技术,以便重构用于进一步编码的解码帧。
为了便于理解,在本文档中使用了章节标题,并且不将实施例和技术限制于相应的章节。这样,来自一个章节的实施例可以与来自其他章节的实施例相结合。
1.概述
本文档涉及视频编解码技术。具体地,它涉及屏幕内容编解码的IBC。它可以被应用于现有的视频编解码标准,如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高级视频编解码(Advanced Video Coding,AVC)和H.265/HEVC[1,2]标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索组(Joint Video Exploration Team,JVET)。此后,JVET采用了许多新方法,并将其放入名为联合探索模型(JointExploration Model,JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家组(JVET)成立,以致力于VVC(Versatile Video Coding,多功能视频编解码)标准,目标是与HEVC相比比特率降低50%。
VVC草案的最新版本,即多功能视频编解码(草案4)可以在以下处找到:
http://phenix.it-
sudparis.eu/jvet/doc_end_user/current_document.php?id=5755
VVC的最新参考软件,称为VTM可以在以下处找到:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-4.0
2.1帧内块复制
HEVC屏幕内容编解码扩展(HEVC-SCC)和当前VVC测试模型(VTM-4.0)采用了帧内块复制(IBC),也称为当前图片参考。IBC将运动补偿的概念从帧间编解码扩展到帧内编解码。如图1所示范的,当应用IBC时,当前块由相同图片中的参考块预测。在当前块被编解码或解码之前,参考块中的样点必须已经被重构。尽管IBC对大多数相机捕捉的序列并不那么有效,但它示出对屏幕内容的显著编解码增益。原因是屏幕内容图片中有很多重复的图案,诸如图标和文本字符。IBC可以有效地移除这些重复图案之间的冗余。在HEVC-SCC中,如果帧间编解码单元(CU)选择当前图片作为其参考图片,则它可以应用IBC。在这种情况下,MV被重命名为块矢量(BV),并且BV总是具有整数像素精度。为了与主简表(profile)HEVC兼容,当前图片在解码图片缓冲区(DPB)中被标记为“长期”参考图片。应当注意,类似地,在多视图/3D视频编解码标准中,视图间参考图片也被标记为“长期”参考图片。
在BV找到其参考块之后,可以通过复制参考块来生成预测。残差可以通过从原始信号中减去参考像素得到。然后,可以像在其他编解码模式下一样应用变换和量化。
然而,当参考块在图片之外,或与当前块重叠,或在重构区域之外,或在受一些约束限制的有效区域之外时,部分或全部像素值没有被定义。基本上,有两种解决方案来处理这样的问题。一种是不允许这样的情况,例如在比特流一致性中。另一种是对那些未定义的像素值应用填充。以下子章节详细描述了解决方案。
2.2HEVC屏幕内容编解码扩展中的IBC
在HEVC的屏幕内容编解码扩展中,当块使用当前图片作为参考时,它应该保证整个参考块在可用的重构区域内,如以下规范文本所指示的:
变量offsetX和offsetY被推导如下:
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0)(8-106)
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0)(8-107)
比特流一致性的要求是,当参考图片是当前图片时,亮度运动矢量mvLX应当遵守以下约束:
–当调用第6.4.1条中指定的z扫描顺序块可用性的推导过程时,其中以设置为等于(xCb,yCb)的(xCurr,yCurr)和设置为等于(xPb+(mvLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offsetY)的邻近亮度位置(xNbY,yNbY)作为输入,输出应当等于TRUE(真)。
–当调用第6.4.1条中指定的z扫描顺序块可用性的推导过程时,其中以设置为等于(xCb,yCb)的(xCurr,yCurr)和设置为等于(xPb+(mvLX[0]>>2)+nPbW-1+offsetX,yPb+(mvLX[1]>>2)+nPbH-1+offsetY)的邻近亮度位置(xNbY,yNbY)作为输入,输出应当等于TRUE。
–一个或两个以下条件应当为真:
–(mvLX[0]>>2)+nPbW+xB1+offsetX的值小于或等于0。
–(mvLX[1]>>2)+nPbH+yB1+offsetY的值小于或等于0。
–以下条件应当为真:
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbSizeY-xCurr/CtbSizeY<=yCurr/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY(8-108)
因此,参考块与当前块重叠或者参考块在图片之外的情况将不会发生。不需要填充参考或预测块。
2.3VVC测试模型中的IBC
在当前VVC测试模型(即,VTM-4.0设计)中,整个参考块应该与当前编解码树单元(CTU)一起,并且不与当前块重叠。因此,不需要填充参考或预测块。IBC标志被编解码为当前CU的预测模式。因此,对于每个CU,总共有三种预测模式,MODE_INTRA、MODE_INTER和MODE_IBC。
2.3.1IBC Merge模式
在IBC Merge模式中,从比特流中解析指向IBC Merge候选列表中的条目的索引。IBC Merge列表的构建可以根据以下步骤顺序进行总结:
·步骤1:推导空域候选
·步骤2:插入HMVP候选
·步骤3:插入成对平均候选
在空域Merge候选的推导中,在位于位置A1、B1、B0、A0和B2的候选中最多选择四个Merge候选。的候选当中最多选择四个Merge候选。推导的顺序为A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任何PU不可用(例如,因为它属于另一个条带或片)或未以IBC模式编解码时,才考虑位置B2。在位置A1处的候选被添加之后,剩余候选的插入经受冗余检查,该冗余检查确保具有相同运动信息的候选从列表中排除,以便提高编解码效率。
在插入空域候选之后,如果IBC Merge列表尺寸仍然小于最大IBC Merge列表尺寸,则可以插入来自HMVP表的IBC候选。在插入HMVP候选时执行冗余检查。
最终,成对平均候选被插入到IBC Merge列表中。
当由Merge候选标识的参考块在图片之外,或者与当前块重叠,或者在重构区域之外,或者在受一些约束限制的有效区域之外时,该Merge候选被称为无效Merge候选。
值得注意的是,无效Merge候选可以被插入到IBC Merge列表中。
VVC采用JVET-N0843。在JVET-N0843中,IBC中的Merge模式和AMVP模式的BV预测值将共享一个共同的预测值列表,该列表由以下元素组成:
о2个空域邻近位置(如图2中的A1、B1)
о5个HMVP条目
о默认的零矢量
对于Merge模式,最多将使用该列表的前6个条目;对于AMVP模式,将使用该列表的前2个条目。并且该列表符合共享Merge列表区域要求(在SMR内共享相同的列表)。
除了上述BV预测值候选列表,JVET-N0843还提出简化HMVP候选和现有Merge候选(A1,B1)之间的修剪(pruning)操作。在简化过程中,最多有2次修剪操作,因为它只比较第一个HMVP候选和(多个)空域Merge候选。
在最新的VVC和VTM5中,提出在之前的VTM和VVC版本中的当前比特流约束之上,显式使用语法约束来禁用128×128IBC模式,这使得IBC标志的存在取决于CU尺寸<128×128。
2.3.2IBC AMVP模式
在IBC AMVP模式下,从比特流中解析指向IBC AMVP列表中的条目的AMVP索引。IBCAMVP列表的构建可以根据以下步骤顺序进行总结:
·步骤1:推导空域候选
о检查A0、A1,直到找到可用候选。
о检查B0、B1、B2,直到找到可用候选。
·步骤2:插入HMVP候选
·步骤3:插入零候选
在插入空域候选之后,如果IBC AMVP列表尺寸仍然小于最大IBCAMVP列表尺寸,则可以插入HMVP表中的IBC候选。
最后,零候选被插入到IBC AMVP列表中。
2.3.3.色度IBC模式
在当前的VVC中,色度IBC模式下的运动补偿是在子块级别执行的。色度块将被分割成几个子块。每个子块确定相应的亮度块是否有块矢量,如果有,则确定其有效性。当前VTM存在编码器约束,如果当前色度CU中的所有子块都具有有效的亮度块矢量,则将测试色度IBC模式。例如,在YUV420视频上,色度块是N×M,然后共位的亮度区域是2N×2M。色度块的子块尺寸为2×2。执行色度mv推导和块复制过程需要几个步骤。
1)色度块将首先被分割成(N>>1)*(M>>1)个子块。
2)左上采样坐标为(x,y)的每个子块获取覆盖相同左上采样坐标为(2x,2y)的相应亮度块。
3)编码器校验所获取的亮度块的块矢量(bv)。如果满足以下条件之一,该bv将被视为无效。
a.相应亮度块的bv不存在。
b.由bv标识的预测块尚未重构。
c.由bv标识的预测块与当前块部分或完全重叠。
4)子块的色度运动矢量被设置为相应亮度子块的运动矢量。
当所有子块找到有效bv时,编码器允许IBC模式。
下面列出了IBC块的解码过程。IBC模式下与色度mv推导相关的部分用粗体双括号括起来,即{{·}}。
8.6.1在IBC预测中编解码的编解码单元的通用解码过程
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块的左顶部样点相对于当前图片的左顶部亮度样点的位置。
–变量cbWidth,指定亮度样点中当前编解码块的宽度,
–变量cbHeight,指定亮度样点中当前编解码块的高度,
–变量treeType,指定是使用单树还是双树,如果使用双树,则指定当前树是否对应于亮度或色度分量。
该过程的输出是环路滤波前的修改后的重构图片。
以亮度位置(xCb,yCb)、亮度样点中当前编解码块的宽度cbWidth和亮度样点中当前编解码块的高度cbHeight以及变量treeType作为输入,调用条款8.7.1中规定的量化参数推导过程。
以ibc预测模式编解码的编解码单元的解码过程由以下有序步骤组成:
1.当前编解码单元的运动矢量分量推导如下:
1.如果树类型等于SINGLE_TREE或DUAL_TREE_LUMA,则以下适用:
–以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,调用条款8.6.2.1中规定的运动矢量分量的推导过程,并且以亮度运动矢量mvL[0][0]作为输出。
–当treeType等于SINGLE_TREE时,以亮度运动矢量mvL[0][0]作为输入,调用条款8.6.2.9中规定的色度矢量的推导过程,并且以色度运动矢量mvC[0][0]作为输出。
–水平方向上的亮度编解码子块的数量numSbX和垂直方向上的亮度编解码子块的数量numSbY都设置为等于1。
1.否则,如果treeType等于DUAL_TREE_CHROMA,则以下适用:
–水平方向上的亮度编解码子块的数量numSbX和垂直方向上的亮度编解码子块的数量numSbY推导如下:
numSbX=(cbWidth>>2)(8-886)
numSbY=(cbHeight>>2)(8-887)
–{{对于xSbIdx=0…numSbX-1,ySbIdx=0...numSbY-1,色度运动矢量mvC[xSbIdx][ySbIdx]推导如下:
–亮度运动矢量mvL[xSbIdx][ySbIdx]推导如下:
–并置亮度编解码单元的位置(xCuY,yCuY)推导如下:
xCuY=xCb+xSbIdx*4(8-888)
yCuY=yCb+ySbIdx*4(8-889)
–如果CuPredMode[xCuY][yCuY]等于MODE_INTRA,则以下适用:
mvL[xSbIdx][ySbIdx][0]=0(8-890)
mvL[xSbIdx][ySbIdx][1]=0(8-891)
preflag l0[xSbIdx][ySbIdx]=0(8-892)
preflag L1[xSbIdx][ySbIdx]=0(8-893)
–否则(CuPredMode[xCuY][yCuY]等于MODE_IBC),以下适用:
mvL[xSbIdx][ySbIdx][0]=MvL0[xCuY][yCuY][0](8-894)
mvL[xSbIdx][ySbIdx][1]=MvL0[xCuY][yCuY][1](8-895)
predFlagL0[xSbIdx][ySbIdx]=1(8-896)
predFlagL1[xSbIdx][ySbIdx]=0(8-897)}}
–以mvL[xSbIdx][ySbIdx]作为输入,并且mvC[xSbIdx][ySbIdx]作为输出来调用条款8.6.2.9中色度运动矢量的推导过程。
–比特流一致性要求色度运动矢量mvC[xSbIdx][ySbIdx]应遵守以下约束:
–当以设置为等于(xCb/SubWidthC,yCb/SubHeightC)的当前色度位置(xCurr,yCurr),和邻近色度位置((xCb/SubWidthC+(mvC[xSbIdx][ySbIdx][0]>>5),yCb/SubHeightC+(mvC[xSbIdx][ySbIdx][1]>>5))作为输入,调用条款6.4.X[Ed(BB):邻近块可用性检查过程tbd]中规定的块可用性的推导过程时,输出应等于TRUE。
–当以设置为等于(xCb/SubWidthC,yCb/SubHeightC)的当前色度位置(xCurr,yCurr),和邻近色度位置(xCb/SubWidthC+(mvC[xSbIdx][ySbIdx][0]>>5)+cbWidth/SubWidthC-1,yCb/SubHeightC+(mvC[xSbIdx][ySbIdx][1]>>5)+cbHeight/SubHeightC-1)作为输入,调用条款6.4.X[Ed(BB):邻近块可用性检查过程tbd]中规定的块可用性的推导过程时,输出应等于TRUE。
–以下一个或两个条件应当为真:
–(MVc[xSbIdx][ySbIdx][0]>>5)+xSbIdx*2+2小于或等于0。
–(MVc[xSbIdx][ySbIdx][1]>>5)+ySbIdx*2+2小于或等于0。
2.当前编解码单元的预测样点推导如下:
–如果treeType等于SINGLE_TREE或DUAL_TREE_LUMA,则当前编解码单元的预测样点推导如下:
·以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight、水平方向的亮度编解码子块数量numSbX和垂直方向的亮度编解码子块数量numSbY、亮度运动矢量mvL[xSbIdx][ySbIdx](其中xSbIdx=0..numSbX-1且ySbIdx=0..numSbY-1)以及设置为等于0的变量cIdx作为输入,并且以ibc预测样点(predSample),即预测亮度样点的(cbWidth)×(cbHeight)阵列predSamplesL作为输出,来调用第8.6.3.1条中规定的ibc块的解码过程。
–否则,如果treeType等于SINGLE_TREE或DUAL_TREE_CHROMA,则当前编解码单元的预测样点推导如下:
·以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight、水平方向的亮度编解码子块数量numSbX和垂直方向的亮度编解码子块数量numSbY、亮度运动矢量mvL[xSbIdx][ySbIdx](其中xSbIdx=0..numSbX-1且ySbIdx=0..numSbY-1)以及设置为等于1的变量cIdx作为输入,并且以ibc预测样点(predSample),即色度分量Cb的预测色度样点的(cbWidth/2)×(cbHeight/2)阵列predSamplesCb作为输出,来调用第8.6.3.1条中规定的ibc块的解码过程。
·以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight、水平方向的亮度编解码子块数量numSbX和垂直方向的亮度编解码子块数量numSbY、亮度运动矢量mvL[xSbIdx][ySbIdx](其中xSbIdx=0..numSbX-1且ySbIdx=0..numSbY-1)以及设置为等于2的变量cIdx作为输入,并且以ibc预测样点(predSample),即色度分量Cr的预测色度样点的(cbWidth/2)×(cbHeight/2)阵列predSamplesCr作为输出,来调用第8.6.3.1条中规定的ibc块的解码过程。
3.变量NumSbX[xCb][yCb]和NumSbY[xCb][yCb]分别设置为等于NumSbX和NumSbY。
4.当前编解码单元的残差样点推导如下:
–当treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,以设置为等于亮度位置(xCb,yCb)的位置(xTb0,yTb0),设置为等于亮度编解码块宽度cbWidth的宽度nTbW,设置为等于亮度编解码块高度cbHeight的高度nTbH,设置为等于0的变量cIdx作为输入,并且以阵列resSamplesL作为输出,调用第8.5.8条中规定的以帧间预测模式编解码的编解码块的残差信号的解码过程。
–当treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,以设置为等于色度位置(xCb/2,yCb/2)的位置(xTb0,yTb0),设置为等于色度编解码块宽度cbWidth/2的宽度nTbW,设置为等于色度编解码块高度cbHeight/2的高度nTbH,设置为等于1的变量cIdx作为输入,并且以阵列resSamplesCb作为输出,调用第8.5.8条中规定的以帧间预测模式编解码的编解码块的残差信号的解码过程。
–当treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,以设置为等于色度位置(xCb/2,yCb/2)的位置(xTb0,yTb0),设置为等于色度编解码块宽度cbWidth/2的宽度nTbW,设置为等于色度编解码块高度cbHeight/2的高度nTbH,设置为等于2的变量cIdx作为输入,并且以阵列resSamplesCr作为输出,调用第8.5.8条中规定的以帧间预测模式编解码的编解码块的残差信号的解码过程。
5.当前编解码单元的重构样点推导如下:
–当treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,以设置为等于(xCb,yCb)的块位置(xB,yB),设置为等于cbWidth的块宽度bWidth,设置为等于cbHeight的块高度bHeight,设置为等于0的变量cIdx,设置为等于predSamplesL的(cbWidth)×(cbHeight)阵列predSample,以及设置为等于resSamplesL的(cbWidth)×(cbHeight)阵列resSample作为输入,调用第8.7.5条中规定的色彩分量的图片重构过程,并且输出是环内滤波之前的修改后的重构图片。
–当treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,以设置为等于(xCb/2,yCb/2)的块位置(xB,yB),设置为等于cbWidth/2的块宽度bWidth,设置为等于cbHeight/2的块高度bHeight,设置为等于1的变量cIdx,设置为等于predSamplesCb的(cbWidth/2)×(cbHeight/2)阵列predSample,以及设置为等于resSamplesCb的(cbWidth/2)×(cbHeight/2)阵列resSample作为输入,调用第8.7.5条中规定的色彩分量的图片重构过程,并且输出是环内滤波之前的修改后的重构图片。
–当treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,以设置为等于(xCb/2,yCb/2)的块位置(xB,yB),设置为等于cbWidth/2的块宽度bWidth,设置为等于cbHeight/2的块高度bHeight,设置为等于2的变量cIdx,设置为等于predSamplesCr的(cbWidth/2)×(cbHeight/2)阵列predSample,以及设置为等于resSamplesCr的(cbWidth/2)×(cbHeight/2)阵列resSample作为输入,调用第8.7.5条中规定的色彩分量的图片重构过程,并且输出是环内滤波之前的修改后的重构图片。
2.4自适应运动矢量精度(AMVR)
在HEVC中,当条带报头中的use_integer_mv_flag等于0时,以四分之一亮度样点为单元信令通知(CU的运动矢量和预测运动矢量之间的)运动矢量差值(MVD)。在VVC,引入了CU级别的自适应运动矢量精度(AMVR)。AMVR允许CU的MVD以不同精度编解码。
根据当前CU的模式(正常AMVP模式或仿射AVMP模式),可以如下自适应地选择当前CU的MVD:
–正常AMVP模式:四分之一亮度样点、整数亮度样点或四亮度样点。
–仿射AMVP模式:四分之一亮度样点、整数亮度样点或1/16亮度样点。
如果当前CU具有至少一个非零MVD分量,则有条件地信令通知CU级MVD精度指示。如果所有MVD分量(即参考列表L0和参考列表L1的水平和垂直MVD)都为零,则推断四分之一亮度样点MVD精度。
对于具有至少一个非零MVD分量的CU,信令通知第一标志以指示四分之一亮度样点MVD精度是否用于CU。如果第一个标志为0,则不需要进一步的信令通知,并且四分之一亮度样点MVD精度用于当前CU。否则,信令通知第二标志,以指示整数亮度样点还是四亮度样点MVD精度用于正常的AMVP CU。相同的第二标志用于指示整数亮度样点MVD精度还是1/16亮度样点MVD精度用于仿射AMVP CU。为了确保重构的MV具有预期的精度(四分之一亮度样点、整数亮度样点或四亮度样点),在与MVD相加之前,CU的运动矢量预测值将被取整到与MVD相同的精度。运动矢量预测值向零取整(即,负运动矢量预测值向正无穷大取整,并且正运动矢量预测值向负无穷大取整)。
编码器使用RD检查来确定当前CU的运动矢量精度。为了避免总是对每个MVD精度执行三次CU级RD检查,在VTM4中,除了四分之一亮度样点之外,MVD精度的RD检查仅在有条件的情况下调用。对于正常的AVMP模式,首先计算四分之一亮度样点MVD精度和整数亮度样点MV精度的RD代价。然后,将整数亮度样点MVD精度的RD代价与四分之一亮度样点MVD精度的RD代价进行比较,以决定是否有必要进一步检查四亮度样点MVD精度的RD代价。当四分之一亮度样点MVD精度的RD代价远小于整数亮度样点MVD精度的RD代价时,将跳过四亮度样点MVD精度的RD检查。对于仿射AMVP模式,如果在检查仿射Merge/跳过模式、Merge/跳过模式、四分之一亮度样点MVD精度正常AMVP模式和四分之一亮度样点MVD精度仿射AMVP模式的率失真代价后未选择仿射帧间模式,则不检查1/16亮度样点MV精度和1像素MV精度仿射帧间模式。此外,在1/16亮度样点和四分之一亮度样点MV精确仿射帧间模式中,在四分之一亮度样点MV精确仿射帧间模式中获得的仿射参数被用作起始搜索点。
2.5在HEVC屏幕内容编解码扩展(HEVC-SCC)中的调色板模式
调色板模式背后的基本思想是CU中的样点由代表性色彩值的小集合表示。该集合被称为调色板。也可以通过信令通知逸出符号(escape symbol)(其后是(可能是量化的)分量值)来指示调色板之外的样点。这在图3中示出。
在HEVC-SCC中的调色板模式下,使用预测方式对调色板和索引图进行编解码。
2.5.1调色板条目的编解码
对于调色板条目的编解码,保持调色板预测值。调色板的最大尺寸以及调色板预测值在SPS中被信令通知。在HEVC-SCC中,在PPS中引入了palette_predictor_initializer_present_flag。当该标志为1时,用于初始化调色板预测值的条目在比特流中信令通知。调色板预测值在每个CTU行、每个条带和每个片的开头初始化。根据palette_predictor_initializer_present_flag的值,调色板预测值被重置为0或使用PPS中信令通知的调色板预测值初始化器条目进行初始化。在HEVC-SCC中,启用了尺寸为0的调色板预测值初始化器,以允许在PPS级别显式禁用调色板预测值初始化。
对于调色板预测值中的每个条目,信令通知重用标志,以指示它是否是当前调色板的一部分。这在图4中示出。使用零的游程长度编解码来传送重用标志。此后,新调色板条目的数量使用0阶的指数Golomb码来信令通知。最终,新调色板条目的分量值被信令通知。
2.5.2调色板索引的编解码
如图5所示,使用水平和垂直遍历扫描对调色板索引进行编解码。使用palette_transpose_flag在比特流中显式信令通知扫描顺序。对于该子章节的其余部分,假设扫描为水平。
调色板索引使用两种主要的调色板样点模式进行编解码:“INDEX”和“COPY_ABOVE”。如前所解释的,逸出符号也作为“INDEX”模式被信令通知,并被分配等于最大调色板尺寸的索引。除了顶行或先前模式为“COPY_ABOVE”时,该模式使用标志来信令通知。在“COPY_ABOVE”模式下,复制上面行中的样点的调色板索引。在“INDEX”模式下,调色板索引是显式信令通知的。对于“INDEX”和“COPY_ABOVE”模式两者,指定也使用相同模式进行编解码的后续样点的数量的游程值被信令通知。当逸出符号是“INDEX”或“COPY_ABOVE”模式下的游程的一部分时,针对每个逸出符号信令通知逸出分量值。调色板索引的编解码在图6中示出。
该语法顺序按如下方式完成。首先,信令通知CU的索引值的数量。随后是使用截断二进制编解码的整个CU的实际索引值的信令通知。索引数量以及索引值都在旁路模式下进行编解码。这将索引相关的旁路二进制位分组在一起。然后调色板样点模式(如有必要)和游程以交错方式信令通知。最终,对应于整个CU的逸出样点的分量逸出值被分组在一起,并在旁路模式下进行编解码。
附加语法元素,last_run_type_flag,在信令通知索引值之后被信令通知。该语法元素与索引的数量相结合,消除了信令通知与块中的最后游程相对应的游程值的需要。
在HEVC-SCC中,也针对4:2:2、4:2:0和单色色度格式启用调色板模式。对于所有色度格式,调色板条目和调色板索引的信令通知几乎是相同的。在非单色格式的情况下,每个调色板条目由3个分量组成。对于单色格式,每个调色板条目由单个分量组成。对于子采样色度方向,色度样点与可被2整除的亮度样点索引相关联。在为CU重构调色板索引后,如果样点只有与其相关联的单个分量,则只使用调色板条目的第一分量。信令通知的唯一差别是逸出分量值。对于每个逸出样点,根据与该样点相关联的分量的数量,信令通知的逸出分量值的数量可能不同。
2.6变换跳过模式下的系数编解码
在JVET-M0464和JVET-N0280中,为了使残差编解码适应变换跳过级别的统计和信号特征,对变换跳过(TS)模式下的系数编解码提出了几个修改。
提议的修改列出如下。
没有最后的显著扫描位置:由于残差信号反映了预测之后的空域残差,并且没有对TS执行通过变换的能量集中,所以不再给出在变换块的右底部的尾随零或不显著级别的更高概率。因此,在这种情况下,省略了最后显著扫描位置信令。
子块CBF:最后显著扫描位置信令的缺失要求TS的具有coded_sub_block_flag的子块CBF信令被修改如下:
·由于量化,前述无意义序列可能仍然局部地出现在变换块内。因此,如上所述移除最后显著扫描位置,并为所有子块编解码coded_sub_block_flag。
·覆盖DC频率位置的子块(左顶部子块)的coded_sub_block_flag呈现了特殊情况。在VVC草案3中,该子块的coded_sub_block_flag从不被信令通知并且总是被推断为等于1。当最后显著扫描位置位于另一个子块中时,这意味着在DC子块之外有至少一个显著级别。因此,DC子块可以只包含零/非显著级别,尽管该子块的coded_sub_block_flag被推断为等于1。在TS中缺失最后扫描位置信息的情况下,每个子块的coded_sub_block_flag被信令通知。这还包括DC子块的coded_sub_block_flag,除了当所有其他coded_sub_block_flag语法元素已经等于0时。在这种情况下,DCcoded_sub_block_flag被推断为等于1(inferDcSbCbf=1)。因为在该DC子块中必须有至少一个显著级别,所以如果该DC子块中的所有其他sig_coeff_flag语法元素都等于0,则反而(0,0)处的第一位置的sig_coeff_flag语法元素不被信令通知并被推导为等于1(injectsbdcsigcoefflag=1)。
·coded_sub_block_flag的上下文建模被改变。上下文模型索引被计算为当前子块的左边的coded_sub_block_flag和上方的coded_sub_block_flag之和,而不是两者的逻辑析取(disjunction)。
sig_coeff_flag上下文建模:修改sig_coeff_flag上下文建模中的局部模板,以仅包括当前扫描位置左边的邻居(NB0)和上方的邻居(NB1)。上下文模型偏移只是重要邻近位置sig_coeff_flag[NB0]+sig_coeff_flag[NB1]的数量。因此,根据当前变换块内的对角线d的不同上下文集的选择被移除。这产生了三个上下文模型和用于编解码sig_coeff_flag标志的单个上下文模型集。
abs_level_gt1_flag和par_level_flag上下文建模:对abs_level_gt1_flag和par_level_flag采用单个上下文模型。
abs_remainder编解码:尽管变换跳过残差绝对级别的经验分布通常仍然符合拉普拉斯或几何分布,但是存在比变换系数绝对级别更大的不稳定性。具体地,对于残差绝对级别,连续实现窗口内的方差更高。这激发了对abs_remainder语法二值化和上下文建模的以下修改:
·在二值化中使用更高的截止值(即,从利用sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag的编解码到abs_remainder的Rice码的转变点)、以及每个二进制位位置的专用上下文模型产生更高的压缩效率。增加截止值将导致更多的“大于X”标志,例如引入abs_level_gt5_flag、abs_level_gt7_flag等,直到达到截止值。截止值本身固定为5(numGtFlags=5)。
·修改Rice参数推导的模板,即仅当前扫描位置的左边的邻居和上方的邻居被认为类似于sig_coeff_flag上下文建模的局部模板。
coeff_sign_flag上下文建模:由于记号序列内的不稳定性以及预测残差常常偏置的事实,即使当全局经验分布几乎均匀分布时,也可以使用上下文模型对记号进行编解码。单个专用上下文模型用于记号的编解码,并且符号在sig_coeff_flag之后被解析,以将所有上下文编解码二进制位保持在一起。
2.7量化残差块差分脉冲码调制(QR-BDPCM)
在JVET-M0413中,提出了量化残差块差分脉冲码调制(QR-BDPCM)来有效编解码屏幕内容。
QR-BDPCM中使用的预测方向可以是垂直和水平预测模式。通过在类似于帧内预测的预测方向(水平或垂直预测)上的样点复制,对整个块进行帧内预测。残差被量化,量化残差与其预测值(水平或垂直)量化值之间的增量(delta)被编解码。这可以通过以下进行描述:对于尺寸为M(行)×N(列)的块,假设ri,j,0≤i≤M-1,0≤j≤N-1是在使用来自上方或左边块边界样点的未滤波样点水平地(跨预测块逐线复制左边邻近像素值)或垂直地(在预测块中将顶部邻近线复制到每条线)执行帧内预测之后的预测残差。假设Q(ri,j),0≤i≤M-1,0≤j≤N-1表示残差ri,j的量化版本,其中残差是原始块和预测块值之间的差。然后将块DPCM应用于量化残差样点,得到具有元素的修改后的M×N阵列当信令通知垂直BDPCM时:
对于水平预测,应用类似的规则,通过以下获得残差量化样点
在解码器侧,使上面计算相反,以产生Q(ri,j),0≤i≤M-1,0≤j≤N-1。对于垂直预测情况,
对于水平情况,
逆量化残差Q-1(Q(ri,j))被添加到帧内块预测值,以产生重构样点值。
该方案的主要好处是,在系数解析期间可以动态地执行逆DPCM,只要在解析系数时添加预测值,或者其可以在解析之后被执行。
QR-BDPCM的草案文本改变如下所示。
7.3.6.5编解码单元语法
等于1的bdpcm_flag[x0][y0]指定bdpcm_dir_flag存在于包括位置(x0,y0)处的亮度编解码块的编解码单元中
等于0的bdpcm_dir_flag[x0][y0]指定要在bdpcm块中使用的预测方向为水平,否则为垂直。
2.8分割结构
在HEVC中,通过使用被称为编解码树的四元树结构,CTU被划分成CU,以适应各种局部特性。关于是使用图片间(时域)预测还是图片内(空域)预测来编解码图片区域的决定是在叶CU级别做出的。根据PU划分类型,每个叶CU可以进一步被划分成一个、两个或四个PU。在一个PU内,应用相同的预测过程,并且在PU的基础上将相关信息传输到解码器。在通过应用基于PU划分类型的预测过程获得残差块之后,可以根据与CU的编解码树类似的另一个四元树结构将叶CU分割成变换单元(transform unit,TU)。HEVC结构的一个重要特征是它具有多重分割概念,包括CU、PU和TU。
在VVC中,使用二元和三元划分分割结构的嵌套多类型树(MTT)的四叉树取代了多个分割单元类型的概念,即它移除了CU、PU和TU概念的分离,除了CU可能大于PU的少数情况,例如当CU的尺寸大于最大变换长度时,并且支持CU分割形状的更大灵活性。在编解码树结构中,CU可以是正方形或矩形。编解码树单元(coding tree unit,CTU)首先由四元树(又名四叉树)结构分割。然后,可以通过多类型树结构进一步分割四元树叶节点。如图7所示,多类型树结构中有四种划分类型,垂直二元划分(SPLIT_BT_VER)、水平二元划分(SPLIT_BT_HOR)、垂直三元划分(SPLIT_TT_VER)、水平三元划分(SPLIT_TT_HOR)。多类型树的叶节点被称为编解码单元(coding unit,CU),并且除非CU对于最大变换长度来说太大,否则这种分割被用于预测和变换处理,而不需要任何进一步的分割。这意味着在大多数情况下,在采用嵌套多类型树的四叉树编解码块结构中,CU、PU和TU具有相同的块尺寸。当支持的最大变换长度小于CU色彩分量的宽度或高度时,就会出现异常。此外,亮度分量和色度分量在I片上具有独立的分割结构。此外,JVET-K0353和JVET-K0354提出信令通知标志,以确定是否在CTU/CU级别使用单独的分割结构。
2.9.跨分量线性模型(cross-component linear model,CCLM)预测
为了减少跨分量冗余,在VTM4中使用跨分量线性模型(CCLM)预测模式,在该模式下,通过使用如下线性模型,基于相同CU的重构亮度样点来预测色度样点:
predC(i,j)=α·recL′(i,j)+β
其中,predC(i,j)表示CU中的预测色度样点,并且recL′(i,j)表示同一CU的下采样重构亮度样点。线性模型参数α和β源自两个样点的亮度值和色度值之间的关系,这两个样点是在下采样的邻近亮度样点集合内的具有最小样点值和最大样点的亮度样点以及它们相应的色度样点。根据以下等式获得线性模型参数α和β。
β=Yb-α·Xb
其中Ya和Xa表示具有最大亮度样点值的亮度样点的亮度值和色度值。并且Xb和Yb分别表示具有最小亮度样点的亮度样点的亮度值和色度值。图8示出了左侧和上方样点的位置以及CCLM模式中涉及的当前块的样点的示例。
2.10JVET-N0185中具有67种帧内预测模式的帧内模式编解码
为了捕获自然视频中出现的任意边缘方向,VTM4中的定向帧内模式的数量从HEVC中使用的33扩展到65。不在HEVC中的新定向模式,在图9中用红色虚线箭头表示。并且平面模式和DC模式保持不变。这些更密集的方向帧内预测模式适用于所有块尺寸以及亮度和色度的帧内预测。
对于帧内块提出了,不论是否应用了MRL和ISP的编解码工具的统一的6-MPM列表。如图10所示,基于VTM4.0中的左侧邻近块和上方邻近块的帧内模式来构建MPM列表。
假设将左侧的模式表示为左,并将上方块的模式表示为上,则按照以下顺序步骤构建统一的MPM列表:
–当邻近块的帧内预测模式无效时,默认情况下其帧内模式设置为平面。
–如果左和上相同且都成角度:
MPM列表→{平面,左,左-1,左+1,DC,左-2}
–如果左和上不同并且都成角度:
在左和上中将模式Max设置为较大模式
如果左和上模式的差在2到62之间(包括2和62),
MPM列表→{平面,左,上,DC,Max-1,Max+1}
否则
MPM列表→{平面,左,上,DC,Max-2,Max+2}
–如果左和上不同,并且左和上模式之一是角度模式,另一个是非角度模式:
在左和上中将模式Max设置为较大模式
MPM列表→{平面,Max,DC,Max-1,Max+1,Max-2}
–如果左和上两种模式均为非角度模式:
MPM列表→{平面,DC,V,H,V-4,V+4}
值得注意的是,当模式索引(例如,Max+2)超出范围[0,6]时,可以用另一有效的模式索引来代替。
与剩余的MPM候选分开信令通知第一个MPM候选,即平面模式。
更详细的语法,语义和解码处理的描述如下:
7.3.6.5编解码单元语法
语法元素intra_luma_mpm_flag[x0][y0]、intra_luma_not_planar_flag[x0][y0]、intra_luma_mpm_idx[x0][y0]和intra_luma_mpm_remainder[x0][y0]规定亮度样点的帧内预测模式。阵列索引x0,y0规定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。当intra_luma_mpm_flag[x0][y0]等于1时,根据条款8.4.2,从邻近的帧内预测编解码单元推断出帧内预测模式。
当intra_luma_mpm_flag[x0][y0]不存在时(例如,启用ISP或启用MRL(参考索引>0)),则推断它等于1。
当intra_luma_not_planar_flag[x0][y0]不存在时(例如,启用了MRL),则推断它等于1。
8.4.2亮度帧内预测模式的推导过程
此过程的输入是:
–亮度位置(xCb,yCb)规定当前亮度编解码块的左上样点相对于当前图片的左上亮度样点,
–变量cbWidth规定亮度样点中当前编解码块的宽度,
–变量cbHeight规定亮度样点中当前编解码块的高度。
在此过程中,推导亮度帧内预测模式IntraPredModeY[xCb][yCb]。
表8-1规定帧内预测模式IntraPredModeY[xCb][yCb]的值以及其相关联名称。
表8-1–帧内预测模式和相关联名称的规范
帧内预测模式 | 相关联名称 |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2..66 | INTRA_ANGULAR2..INTRA_ANGULAR66 |
81..83 | INTRA_LT_CCLM,INTRA_L_CCLM,INTRA_T_CCLM |
注–:帧内预测模式INTRA_LT_CCLM,INTRA_L_CCLM和INTRA_T_CCLM仅适用于色度分量。
IntraPredModeY[xCb][yCb]的推导如下:
–如果intra_luma_not_planar_flag[xCb][yCb]等于1,则有以下有序步骤:
1.分别设置邻近位置(xNbA,yNbA)为等于(xCb-1,yCb+cbHeight-1)和(xNbB,yNbB)为等于(xCb+cbWidth-1,yCb-1)。
2.对于由A或B替换的X,变量candIntraPredModeX的推导如下:
–调用条款6.4.X[Ed.(BB):邻近块可用性检查处理tbd]中规定的可用性检查处理,其中将设置为等于(xCb,yCb)的位置(xCurr,yCurr)和设置为等于(xNbX,yNbX)的邻近位置(xNbY,yNbY)作为输入,并且将输出分配给availableX。
–候选帧内预测模式candIntraPredModeX的推导如下:
–如果以下一个或多个条件为真,则设置candIntraPredModeX等于INTRA_PLANAR。
–变量availableX等于FALSE。
–CuPredMode[xNbX][yNbX]不等于MODE_INTRA,并且ciip_flag[xNbX][yNbX]不等于1。
–pcm_flag[xNbX][yNbX]等于1。
–X等于B并且yCb-1小于((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)。
–否则,设置candIntraPredModeX等于IntraPredModeY[xNbX][yNbX]。
3.x=0..4的candModeList[x]的推导如下:
–如果candIntraPredModeB等于candIntraPredModeA,并且candIntraPredModeA大于INTRA_DC,则x=0..4的candModeList[x]推导如下:
candModeList[0]=candIntraPredModeA(8-10)
candModeList[1]=2+((candIntraPredModeA+61)%64)(8-12)
candModeList[2]=2+((candIntraPredModeA-1)%64)(8-13)
candModeList[3]=INTRA_DC(8-11)
candModeList[4]=2+((candIntraPredModeA+60)%64)(8-14)
–否则,如果candIntraPredModeB不等于candIntraPredModeA,并且candIntraPredModeA或candIntraPredModeB大于INTRA_DC,则以下条件适用:
–变量minAB和maxAB的推导如下:
minAB=Min(candIntraPredModeA,candIntraPredModeB)(8-24)
maxAB=Max(candIntraPredModeA,candIntraPredModeB)(8-25)
–如果candIntraPredModeA和candIntraPredModeB都大于INTRA_DC,则x=0..4的candModeList[x]的推导如下:
candModeList[0]=candIntraPredModeA(8-27)
candModeList[1]=candIntraPredModeB(8-29)
candModeList[2]=INTRA_DC(8-29)
–如果maxAB-minAB的范围为2到62(包括2和62),则以下适用:
candModeList[3]=2+((maxAB+61)%64)(8-30)
candModeList[4]=2+((maxAB-1)%64)(8-31)
–否则,以下适用:
candModeList[3]=2+((maxAB+60)%64)(8-32)
candModeList[4]=2+((maxAB)%64)(8-33)
–否则(candIntraPredModeA或candIntraPredModeB大于INTRA_DC),则x=0..4的candModeList[x]的推导如下:
candModeList[0]=maxAB(8-65)
candModeList[1]=INTRA_DC(8-66)
candModeList[2]=2+((maxAB+61)%64)(8-66)
candModeList[3]=2+((maxAB-1)%64)(8-67)
candModeList[4]=2+((maxAB+60)%64)(8-68)
–否则,以下适用:
candModeList[0]=INTRA_DC(8-71)
candModeList[1]=INTRA_ANGULAR50(8-72)
candModeList[2]=INTRA_ANGULAR18(8-73)
candModeList[3]=INTRA_ANGULAR46(8-74)
candModeList[4]=INTRA_ANGULAR54(8-75)
4.通过运用以下步骤可以推导IntraPredModeY[xCb][yCb]:
–如果intra_luma_mpm_flag[xCb][yCb]等于1,则设置IntraPredModeY[xCb][yCb]为等于candModeList[intra_luma_mpm_idx[xCb][yCb]]。
–否则,通过运用以下有序步骤来推导IntraPredModeY[xCb][yCb]:
1.对于i=0..3且对于每个i,j=(i+1)..4,当candModeList[i]大于candModeList[j]时,两个值将按如下交换:
(candModeList[i],candModeList[j])=Swap(candModeList[i],candModeList[j])
(8-94)
2.通过以下有序步骤推导IntraPredModeY[xCb][yCb]:
i.设置IntraPredModeY[xCb][yCb]为等于intra_luma_mpm_remainder[xCb][yCb]。
ii..将IntraPredModeY[xCb][yCb]的值增加1。
iii..对于等于0到4的i,包括当IntraPredModeY[xCb][yCb]大于或等于candModeList[i]时,将IntraPredModeY[xCb][yCb]的值增加1。
–否则(intra_luma_not_planar_flag[xCb][yCb]等于0),设置IntraPredModeY[xCb][yCb]为等于INTRA_PLANAR。
设置变量IntraPredModeY[x][y]为等于IntraPredModeY[xCb][yCb](其中x=xCb..xCb+cbWidth-1且y=yCb..yCb+cbHeight-1)。
2.11多参考线(Multiple reference line,MRL)帧内预测
多参考线(MRL)帧内预测使用更多参考线进行帧内预测。在图11中,描绘了4条参考线的示例,其中段A和F的样点不是从重构的邻近样点中提取的,而是分别用来自段B和E的最接近的样点填充。HEVC图像内预测使用最近的参考线(即参考线0)。在MRL,使用了另外两条线(参考线1和参考线3)。
选择的参考线的索引(mrl_idx)被信令通知并用于生成帧内预测值。对于大于0的参考线idx,仅包括MPM列表中的附加参考线模式,并且仅信令通知MPM索引,不包括剩余模式。在帧内预测模式之前信令通知参考线索引,并且在信令通知非零参考线索引的情况下,平面和DC模式被排除在帧内预测模式之外。
对CTU内块的第一行禁用MRL,以防止使用当前CTU行以外的扩展参考样点。此外,当使用附加行时,PDPC被禁用。
2.12帧内子分割(Intra Sub-Partitions,ISP)
帧内子分割(ISP)工具根据块尺寸,将亮度帧内预测块垂直或水平划分为2个或4个子分割。例如,ISP的最小块尺寸为4×8(或8×4)。如果块尺寸大于4×8(或8×4),则相应的块被4个子分割划分。图12A和图12B示出了两种可能性的示例。所有子分割都满足至少有16个样点的条件。
表1:熵编解码系阵列尺寸
块尺寸 | 系阵列尺寸 |
1×N,N≥16 | 1×16 |
N×1,N≥16 | 16×1 |
2×N,N≥8 | 2×8 |
N×2,N≥8 | 8×2 |
所有其他可能的M×N情况 | 4×4 |
对于每个子分割,通过将残差信号添加到预测信号来获得重构样点。这里,通过诸如熵解码、逆量化和逆变换的处理来生成残差信号。因此,每个子分割的重构样点值可用于生成下一个子分割的预测,并且每个子分割被重复处理。此外,要处理的第一个子分割是包含CU左顶部样点的子分割,然后继续向下(水平分割)或向右(垂直分割)。结果,用于生成子分割预测信号的参考样点仅位于行的左侧和上方。所有子分割共享相同的帧内模式。以下是ISP与其他编解码工具交互的总结。
–多参考线(MRL):如果一个块的MRL索引不是0,则ISP编解码模式将被推断为0,因此ISP模式信息不会发送到解码器。
–熵编解码系阵列尺寸:熵编解码子块的尺寸已被修改,使得它们在所有可能的情况下都有16个样点,如表1所示。请注意,新尺寸仅影响ISP产生的块(维度之一小于4个样点)。在所有其他情况下,系阵列保持4×4大小。
–CBF编解码:假设至少有一个子分割具有非零CBF。因此,如果n是子分割的数量,并且第一n-1个子分割产生了零CBF,则第n个子分割的CBF被推断为1。
–MPM用法:MPM标志将被推断为ISP模式编解码的块中的一个标志,并且MPM列表被修改以排除DC模式,并优先考虑ISP水平划分的水平帧内模式和垂直划分的垂直帧内模式。
–变换尺寸限制:所有长度大于16点的ISP变换都使用DCT-II。
–PDPC:当CU使用ISP编解码模式时,PDPC滤波器将不会应用于结果子分割。
–MTS标志:如果CU使用ISP编解码模式,MTS CU标志将被设置为0,并且不会被发送到解码器。因此,编码器不会对每个结果子分割的不同可用转换执行RD测试。ISP模式的转换选择将改为固定的,并且是根据帧内模式、处理顺序和所用的块尺寸选择的。因此,不需要信令通知。例如,让tH和tV分别是为w×h子分割选择的水平和垂直变换,其中w是宽度,h是高度。然后根据以下规则选择变换:
о如果w=1或h=1,则分别没有水平或垂直变换。
о如果w=2或w>32,则tH=DCT-II
о如果h=2或h>32,则tV=DCT-II
о否则,根据表2选择变换。
表2:根据帧内模式的变换选择
2.13模式依赖帧内平滑(Mode dependent intra smoothing,MDIS)
利用四抽头帧内插值滤波器来提高定向帧内预测精度。在HEVC中,双抽头线性插值滤波器已经被用于以定向预测模式(即,不包括平面和DC预测值)生成帧内预测块。在VTM4中,简化后的6位4抽头高斯插值滤波器仅用于定向帧内模式。非定向帧内预测过程未被修改。4抽头滤波器的选择是根据提供非分数位移的定向帧内预测模式的MDIS条件来执行的,即除了以下模式之外的所有定向模式:2、HOR_IDX、DIA_IDX、VER_IDX、66。
根据帧内预测模式,执行以下参考样点处理:
1.定向帧内预测模式被分类为以下组之一:
A.垂直或水平模式(HOR_IDX、VER_IDX),
B.对角线模式,表示45度的倍数的角度(2、DIA_IDX、VDIA_IDX),
C.剩余定向模式;
2.如果定向帧内预测模式被分类为属于组A,则不对参考样点应用滤波器来生成预测样点;
3.否则,如果模式落入组B,则[1,2,1]参考样点滤波器可以被应用于参考样点(取决于MDIS条件),以根据所选择的方向进一步将这些滤波值复制到帧内预测值中,但是不应用插值滤波器;
4.否则,如果模式被分类为属于组C,则仅将帧内参考样点插值滤波器应用于参考样点,以生成根据所选方向落入参考样点之间的分数或整数位置的预测样点(不执行参考样点滤波)。
2.14位置依赖帧内预测组合(PDPC)
在VTM4中,通过位置依赖帧内预测组合(PDPC)方法进一步修改平面模式的帧内预测结果。PDPC是一种帧内预测方法,其调用未滤波边界参考样点和利用滤波后的边界参考样点的HEVC类型帧内预测的组合。PDPC应用于以下帧内模式,而无需信令通知:平面、DC、水平、垂直、左底部角度模式及其八个相邻角度模式,以及右顶部角度模式及其八个相邻角度模式。
使用帧内预测模式(DC、平面、角度)和参考样点的线性组合根据如下等式来预测预测样点pred(x,y):
pred(x,y)=(wL×R-1,y+wT×Rx,-1–wTL×R-1,-1+(64–wL–wT+wTL)×pred(x,y)+32)>>6
其中,Rx,-1和R-1,y分别表示位于当前样点(x,y)顶部和左侧的参考样点,并且R-1,-1表示位于当前块左顶部的参考样点。
如果PDPC应用于DC、平面、水平和垂直帧内模式,则不需要附加的边界滤波器,如HEVC DC模式边界滤波器或水平/垂直模式边缘滤波器的情况所要求的。
图13A-图13D示出了应用于各种预测模式的PDPC的参考样点(Rx,-1,R-1,y和R-1,-1)的定义。预测样点pred(x’,y’)位于预测块内的(x’,y’)处。作为示例,对于对角线模式,参考样点Rx,-1的坐标x由x=x’+y’+1给定,并且参考样点R-1,y的坐标y类似地由y=x’+y’+1给定。对于其他角度模式,参考样点Rx,-1和R-1,y可以位于分数样点位置。在这种情况下,使用最近整数样点位置的样点值。
PDPC权重取决于预测模式,如表3所示。
表3:根据预测模式的PDPC权重的示例
预测模式 | wT | wL | wTL |
对角线右顶部 | 16>>((y’<<1)>>shift) | 16>>((x’<<1)>>shift) | 0 |
对角线左底部 | 16>>((y’<<1)>>shift) | 16>>((x’<<1)>>shift) | 0 |
相邻的对角线右顶部 | 32>>((y’<<1)>>shift) | 0 | 0 |
相邻的对角线左底部 | 0 | 32>>((x’<<1)>>shift) | 0 |
2.15去方块滤波器
在VTM4中,去方块滤波处理大多与在HEVC中相同。但是,添加了以下修改。
(a)去方块滤波器的滤波强度取决于重构样点的平均亮度水平。
(b)去方块tC表扩展
(c)更强亮度去方块滤波器
(d)更强色度去方块滤波器
2.15.1更强去方块滤波器或更强亮度去方块滤波器
当在边界任一侧的样点属于大块时,使用双线性滤波器(更强的去方块滤波器)。当垂直边缘的宽度大于或等于32时,并且水平边缘的高度大于或等于32时,定义属于大块的样点。然后,对于i=0至Sp-1的块边界样点pi和对于j=0至Sq-1的qi被线性插值替换,如下所示:
pi′=(fi*Middles,t+(64-fi)*Ps+32)>>6),clipped to pi±tcPDi
qj′=(gj*Middles,t+(64-gj)*Qs+32)>>6),clipped to qj±tcPDj
在本文中,tcPDi和tcPDj项是位置依赖裁剪,并且如下给定gj、fi、Middles,t、Ps和Qs:
表4–更强亮度去方块参数的推导
当所有条件1、条件2均为真时,上述更强亮度滤波器用于侧边大于或等于32的块。条件1是“大块条件”。该条件检测P侧和Q侧的样点是否属于大块。条件2和条件3由以下确定:
Condition1=(d<β)?TRUE:FALSE
Condition2=StrongFilterCondition=(dpq小于(β>>2),sp3+sq3小于
(3*β>>5),并且Abs(p0-q0)小于(5*tC+1)>>1)?TRUE:FALSE
2.16帧间预测的三角形分割模式(Triangle Partition Mode,TPM)
在VTM4中,对于帧间预测,支持三角形分割模式。三角形分割模式仅适用于8×8或更大的CU,并且以跳过模式或者Merge模式编解码,但不以MMVD或CIIP模式编解码。对于满足这些条件的CU,信令通知CU级标志,以指示是否应用三角形分割模式。
当使用这种模式时,使用对角线划分或反对角线划分,CU被均匀地划分成两个三角形分割,如图14所示。CU中的每个三角形分割都是使用其自身的运动进行帧间预测的;对于每个分割仅允许向预测,也就是说,每个分割具有一个运动矢量和一个参考索引。应用单向预测运动约束以确保与传统双向预测相同,每个CU仅需要两个运动补偿预测。每个分割的单向预测运动是从使用3.4.10.1的过程构建的单向预测候选列表中推导的。
如果CU级别标志指示当前CU使用三角形分割模式编解码。如果使用三角形分割模式,则进一步信令通知指示三角形分割方向(对角线或反对角线)的标志和两个Merge索引(每个分割一个)。在预测三角形分割中的每一个之后,使用具有自适应权重的融合处理来调整沿着对角线或反对角线边缘的样点值。这是整个CU的预测信号,并且变换和量化处理将像在其他预测模式中一样应用于整个CU。最后,使用三角形分割模式预测的CU的运动场以4×4单元存储,如在2.16.3中所示。
2.16.1单向预测候选列表
单向预测候选列表包括五个单向预测运动矢量候选。该列表是从七个邻近块推导的,包括五个空域邻近块(图15中标记为1到5)和两个时域并置块(图15中标记为6到7)。收集七个邻近块的运动矢量并按照以下次序将其放入单向预测候选列表:首先,单向预测邻近块的运动矢量;然后,对于双向预测邻近块,L0运动矢量(也就是双向预测MV的L0运动矢量部分),L1运动矢量(也就是双向预测MV的L1运动矢量部分),以及双向预测MV的L0运动矢量和L1运动矢量的平均运动矢量。如果候选的数量少于五个,则零运动矢量被添加到列表的末尾。
2.16.2沿三角形分割边缘融合
在使用每个三角形分割自身的运动来预测每个三角形分割之后,将融合应用于两个预测信号,以推导对角线或反对角线边缘周围的样点。融合过程中使用以下权重:
о如图16所示,对于亮度,{7/8、6/8、5/8、4/8、3/8、2/8、1/8},并且对于色度,{6/8、4/8、2/8}。
2.16.3运动场存储
以三角形分割模式编解码的CU的运动矢量以4×4为单元存储。根据每个4×4单元的位置,存储单向预测或双向预测运动矢量。分别将Mv1和Mv2表示为分割1和分割2的单向预测运动矢量。如果4×4单元位于图16的示例中所示的非加权区域中,则为该4×4单元存储Mv1或Mv2。否则,如果4×4单元位于加权区域,则存储双向预测运动矢量。根据以下过程从Mv1和Mv2推导双向预测运动矢量:
1)如果Mv1和Mv2来自不同的参考图片列表(一个来自L0,并且另一个来自L1),则Mv1和Mv2被简单地组合以形成双向预测运动矢量。
2)否则,如果Mv1和Mv2来自同一列表,并且不失一般性,假设它们都来自L0。在这种情况下,
2.a)如果Mv2(或Mv1)的参考图片出现在L1,则使用L1中的该参考图片将Mv2(或Mv1)转换成L1运动矢量。然后将这两个运动矢量组合形成双向预测运动矢量;
2.b)否则,代替双向预测运动,仅存储单向预测运动Mv1。
3.实施例解决的问题的示例
设计一些编解码工具(例如,IBC、帧内预测、去方块),而没有考虑屏幕内容的特征,这可能导致如下几个问题:
(1)在子块级别执行色度IBC,并且色度IBC标志总是被信令通知。当不是所有的子块都具有有效的块矢量时,色度IBC标志的信令通知可能具有冗余。
(2)由于滤波处理,对于屏幕内容编解码,帧内预测可能效率较低。
(3)对于屏幕内容,PDPC可能效率较低。
(4)对于屏幕内容,长抽头去方块滤波器可能效率较低。
(5)由于双树结构,RDPCM可能效率较低。
(6)IBC模式可能偏好变换跳过模式,因为这两种模式都是为屏幕内容编解码而设计的。
(7)对于屏幕内容,当前TPM设计中的融合可能效率较低。
(8)三角形预测模式(TPM)仅允许用于B条带,因为对于加权区域,双向预测应用了从每个分割的运动信息生成的两个预测块之一的位置依赖权重。
4.用于屏幕内容编解码的IBC的示例方法
下面的详细发明应该被认为是解释一般概念的示例。这些发明不应该被狭义地解释。此外,这些发明可以以任何方式组合。
1.是否信令通知色度块的IBC模式的指示可以基于是否对一个或多个选择的亮度块启用IBC。
a.在一个示例中,当对于亮度分量和色度分量允许不同的分割结构(例如,启用双树)时,是否信令通知色度块的IBC模式的指示可以基于是否对一个或多个选择的亮度块启用IBC。
b.在一个示例中,当选择的亮度块中的一个或多个没有以IBC模式编解码时,例如当它们都没有以IBC模式编解码时,可以跳过对色度块的IBC模式的指示的信令通知。
i.此外,可替代地,当它没有被信令通知时,色度块的IBC模式的使用可以被推断为假。
c.在一个示例中,当选择的亮度块中的至少一个以IBC模式编解码时,可以信令通知色度块的IBC模式的指示。
i.可替代地,当所有选择的亮度块都以IBC模式编解码时,可以信令通知色度块的IBC模式的指示。
d.在一个示例中,选择的亮度块的尺寸可以是最小CU/PU/TU尺寸或运动/模式存储的单元(诸如4×4)。
e.在一个示例中,选择的亮度块可以是覆盖对应亮度区域的中心、左顶部、右顶部、左底部或右底部位置的CU/PU/TU。图17中示出了对应亮度区域的示例。
i.在一个示例中,假设当前色度块的左顶部坐标为(x0,y0),当前色度块的宽度和高度分别为w0和h0。对应亮度区域中的左顶部样点的坐标、对应亮度区域的宽度和高度可以根据色彩格式进行缩放。
1)对于4:2:0色彩格式,并置亮度区域的左顶部坐标为(2*x0,2*y0),其宽度和高度分别为2*w0和2*h0。
2)对于4:4:4色彩格式,并置亮度区域的左顶部坐标为(x0,y0),其宽度和高度分别为w0和h0。
ii.假设并置亮度区域的左顶部坐标为(x,y),并且其宽度和高度为W和H,那么中心位置的坐标可以为:
1)(x+W/2,y+H/2)
2)(x+W/2-1,y+H/2-1)
3)(x+W/2,y+H/2-1)
4)(x+W/2-1,y+H/2)
iii.假设并置亮度区域的左顶部坐标为(x,y),并且其宽度和高度为W和H,那么左顶部位置的坐标可以为(x,y)。
iv.假设并置亮度区域的左顶部坐标为(x,y),并且其宽度和高度为W和H,那么右顶部位置的坐标可以为:
1)(x+W,y)
2)(x+W-1,y)
v.假设并置亮度区域的左顶部坐标为(x,y),并且其宽度和高度为W和H,那么左底部位置的坐标可以为:
1)(x,y+H)
2)(x,y+H-1)
vi.假设并置亮度区域的左顶部坐标为(x,y),并且其宽度和高度为W和H,那么右底部位置的坐标可以为:
1)(x+W,y+H)
2)(x+W,y+H-1)
3)(x+W-1,y+H)
4)(x+W-1,y+H-1)
2.是否信令通知色度块的IBC模式的指示可以基于是否对一个或多个选择的亮度块和色度邻近(相邻或/和不相邻)块启用IBC。
a.在一个示例中,当对亮度分量和色度分量允许不同的分割结构(例如,启用双树)时,可以启用以上方法。
b.在一个示例中,当选择的亮度块中的一个或多个和色度邻近块没有以IBC模式编解码时,例如当它们都没有以IBC模式编解码时,可以跳过对色度块的IBC模式的指示的信令通知。
i.此外,可替代地,当它没有被信令通知时,色度块的IBC模式的使用可以被推断为假。
c.在一个示例中,当选择的亮度块中的至少一个和色度邻近块以IBC模式编解码时,可以信令通知色度块的IBC模式的指示。
i.可替代地,当所有选择的亮度块和色度邻近块都以IBC模式编解码时,可以信令通知色度块的IBC模式的指示。
d.在一个示例中,可以利用两个色度邻近块,诸如图10中的左侧和上方。
3.当IBC模式被推断为假或bv无效时,可以使用默认帧内模式来生成预测。
a.在一个示例中,当IBC模式被推断为假或bv无效时,可以使用由特定
MPM帧内模式指示的帧内模式。
i.在一个示例中,使用MPM中的第一模式。
ii.在一个示例中,使用MPM中的第一可用模式。
b.在一个示例中,当IBC模式被推断为假或bv无效时,可以使用预定义的帧内预测模式。
i.在一个示例中,可以使用PLANNAR模式。
ii.在一个示例中,可以使用DC模式。
iii.在一个示例中,可以使用RDPCM模式。
iv.在一个示例中,DM模式可以用于色度块。
v.在一个示例中,LM模式可以用于色度块。
c.在一个示例中,要使用的帧内模式可以在DPS/SPS/VPS/PPS/APS/图片头/条带头/片组头/最大编解码单元(Largest Coding Unit,LCU)/编解码单元(CU)/LCU行/LCU组中被信令通知
4.提出对块启用IBC模式,即使块内的一些子块与有效的块矢量不相关联。
a.在一个示例中,以上方法可以被应用于色度块,并且色度子块的块矢量可以从对应的亮度块推导或者从比特流推导。
b.在一个示例中,如果对应亮度块的bv不存在,则其可以被视为无效。
c.在一个示例中,如果由bv标识的预测块尚未被重构,则bv可以被视为无效。
d.在一个示例中,如果由bv标识的预测块与当前块部分或完全重叠,则bv可以被视为无效。
e.在一个示例中,如果由bv标识的预测块部分地或在IBC搜索范围/IBC参考区域之外,则bv可以被视为无效。
5.IBC编解码块的预测块可以用默认值填充。并且对于IBC编解码的色度子块,是使用默认值还是使用由块矢量指向的参考块可以取决于子块的可用性。
a.在一个示例中,当子块不具有有效的块矢量或运动矢量时,该子块可以被视为“不可用”。
i.此外,可替代地,在一个示例中,如果子块的对应亮度块没有以IBC模式编解码,则该子块可能不可用。
ii.此外,可替代地,在一个示例中,如果子块的对应亮度块以IBC模式编解码,但是其运动矢量或块矢量对于当前色度子块无效,则该子块可能不可用。
b.在一个示例中,色度IBC可以仅在块复制过程期间使用默认值来填充不可用的子块。可用的子块遵循原始块复制过程。
c.在一个示例中,只要任何子块是不可用的,色度IBC可以使用默认值来填充所有子块。
i.在一个示例中,不可用的子块可以表示该子块不具有有效的块矢量或运动矢量。
1)此外,可替代地,在一个示例中,如果子块的对应亮度块没有以IBC模式编解码,则该子块可能不可用。
2)此外,可替代地,在一个示例中,如果子块的对应亮度块以IBC模式编解码,但是其运动矢量或块矢量对于当前子块无效,则该子块可能不可用。
d.在一个示例中,默认值可以是整数样点值(例如,128或512),并且它可以基于
i.样点比特深度
ii.先前编解码/解码的图片的重构样点
iii.相邻/不相邻的邻近块的重构样点。
iv.可替代地,可以在视频单元(DPS/VPS/SPS/PPS/APS/条带头/片组头/CTU/CU)中信令通知默认值。
6.色度IBC编解码块中的块/子块/样点的运动/块矢量可以基于邻近色度块的运动/块矢量来推导。
a.此外,可替代地,当不能从对应亮度区域中的选择的亮度块推导块矢量时,可以应用以上方法。
b.在一个示例中,可以基于左侧邻近块推导色度IBC编解码块中的块/子块/样点的运动/块矢量。
i.例如,可以从(多个)左侧邻近块的块矢量复制块矢量。
c.在一个示例中,可以基于上方邻近块推导色度IBC编解码块中的块/子块/样点的运动/块矢量。
i.例如,可以从(多个)上方邻近块的块矢量复制块矢量
d.在一个示例中,可以有序地检查多个邻近色度块,以找到对于当前色度块有效的块矢量。
e.在一个示例中,左侧邻近块和上方邻近块可以是标记为L和A的块,如图18所示。
f.在一个示例中,假设当前色度块的左顶部坐标为(x,y),并且其宽度和高度为W和H,那么邻近块可以是覆盖该位置的基本块(诸如4×4块):
i.(x-1,y+i),其中i是整数,并且范围从0到2*H
ii.(x+i,y-1),其中i是整数,并且范围从0到2*W
7.视频内容(例如,屏幕或相机捕捉的)的指示可以在序列/图片/条带/片/砖块(brick)/视图/其他视频单元级别中被信令通知/推导。此外,可以进一步启用以下方法:
a.是否应用和/或如何应用帧内预测过程可以基于视频内容。
i.在一个示例中,帧内预测可以使用参考样点行或参考样点列中的子样点的最近整数样点作为预测,以取代基于视频内容(例如,屏幕内容或自然内容)的插值过程。
ii.在一个示例中,可以基于视频内容(例如,屏幕内容或自然内容)禁用PDPC。
iii.在一个示例中,可以基于视频内容(例如,屏幕内容或自然内容)禁用帧内参考平滑。
iv.在一个示例中,可以对屏幕内容禁用基于矩阵的帧内预测。
b.是否应用和/或如何应用帧间预测过程可以基于视频内容。
i.在一个示例中,可以基于视频内容(例如,屏幕内容或自然内容)禁用AMVR。
ii.在一个示例中,基于视频内容(例如,屏幕内容或自然内容),可以不允许分数运动矢量。
iii.在一个示例中,可以对屏幕内容禁用BDOF
iv.在一个示例中,可以对屏幕内容禁用DMVR
v.在一个示例中,可以对屏幕内容禁用仿射运动补偿
vi.在一个示例中,可以对屏幕内容禁用TPM中的融合过程(例如,从第2.16.2节中定义的加权区域的两个分割的运动信息推导的加权预测)。
1)在一个示例中,以与两个分割之一相同的方式处理加权区域中的样点,即,利用根据两个分割之一的运动信息的单向预测。让A和B分别是从分割0和分割1的运动信息获得的运动补偿块。在一个示例中,分别在图19A和19B中在对角线和反对角线划分方向下示出了分割0和分割1。
a.在一个示例中,在融合过程中,对于位于加权区域的样点,A和B的权重可以分别为1和0。
i.在一个示例中,对于所有划分方向,可以应用该方法。
b.可替代地,在融合过程中,对于位于加权区域的样点,A和B的权重可以分别为0和1。
i.在一个示例中,对于对角线划分方向,可以应用该方法。
ii.在一个示例中,对于反对角线划分方向,可以应用该方法。
c.在一个示例中,每个样点可以针对A和B选择其权重,而不是被限制在分割内。
i.在一个示例中,对于用TPM编解码的块中的给定位置,该位置的A和B权重可以为{1,0}或{0,1}。
d.如何选择与运动信息相关联的权重/分割以生成位于加权区域和/或非加权区域的样点的预测块可以是固定的,诸如使用子项目符号a。
i.可替代地,它可以根据解码信息逐块改变。
1.在一个示例中,解码信息可以是划分方向,诸如根据子项目符号b。
2.在一个示例中,解码信息可以是解码的Merge索引。
a.在一个示例中,如果分割0的Merge索引小于分割1的Merge索引,则可以将A的权重设置为M(例如,M=1)。
b.在一个示例中,如果分割0的Merge索引大于分割1的Merge索引,则可以将B的权重设置为M。
3.在一个示例中,解码信息可以是参考图片/运动信息。
a.在一个示例中,如果分割0的参考索引小于或不大于分割1的参考索引,则可以将A的权重设置为M(例如,M=1)。
b.在一个示例中,如果分割0的运动矢量(MV)小于或不大于分割1的运动矢量,则可以将A的权重设置为M(例如,M=1)。
i.在一个示例中,MV0不大于MV1可以被定义为abs(MV0.x)+abs(MV0.y)<=abs(MV1.x)+abs(MV1.y),其中x和y是MV的水平和垂直分量,并且abs是得到输入的绝对值的运算。
ii.在一个示例中,MV0不大于MV1可以被定义为max(abs(MV0.x),abs(MV0.y))<=max(abs(MV1.x),abs(MV1.y)),其中x和y是MV的水平和垂直分量,max是从两个输入得到较大输入的运算,并且abs是得到输入的绝对值的运算。
iii.在一个示例中,MV0小于MV1可以被定义为abs(MV0.x)+abs(MV0.y)<abs(MV1.x)+abs(MV1.y),其中x和y是MV的水平和垂直分量,并且abs是得到输入的绝对值的运算。
iv.在一个示例中,MV0小于MV1可以被定义为max(abs(MV0.x),abs(MV0.y))<max(abs(MV1.x),abs(MV1.y)),其中x和y是MV的水平和垂直分量,max是从两个输入得到较大输入的运算,并且abs是得到输入的绝对值的运算。
4.在一个示例中,解码信息可以是从哪里推导Merge候选(例如,从哪个空域邻近块或者从时域或HMVP)。
2)在一个示例中,可以对加权区域中的样点应用相等的权重。
3)对于以上方法,加权区域可以仅包括位于块的对角线/反对角线处的样点。
a.可替代地,加权区域可以是整个块。
4)在一个示例中,以上方法(例如,融合过程)可以在子块级别执行。
a.在一个示例中,以上方法可以被应用于具有特定位置的子块。
b.在一个示例中,以上方法可以被应用于包含位于对角线或反对角线(作为加权区域,在图23A-图23C中标记为灰色区域)上的样点的子块中的样点
vii.在一个示例中,对于屏幕内容,可以减少TPM中融合过程中的加权线的数量。
1)在一个示例中,亮度块和色度块的加权线的数量可以是N和M条对角线或反对角线,两个条件中的至少一个为真:N小于7,M小于3。
a.在一个示例中,M可以保持为3,并且N也可以为3。
i.此外,可替代地,色度块上的当前融合过程也可以被应用于亮度块。
b.在一个示例中,M和N可以基于
i.视频内容(例如,屏幕内容或自然内容)
ii.在DPS/SPS/VPS/PPS/APS/图片头/条带头/片组头/最大编解码单元(LCU)/编解码单元(CU)/LCU行/LCU组/TU/PU中信令通知的消息
iii.当前块和/或其邻近块的块大小
iv.当前块和/或其邻近块的块形状
v.色彩格式(诸如4:2:0、4:4:4)的指示
vi.编解码树结构
vii.条带/片组类型和/或图片类型
viii.色彩分量(例如,可以仅应用于色度分量或亮度分量)
ix.时域层ID
x.标准的简表/级别/层级
c.是否应用和/或如何应用去方块可以基于视频内容。
i.在一个示例中,可以基于视频内容(例如,屏幕内容或自然内容)禁用长抽头滤波器。
ii.在一个示例中,可以基于视频内容(例如,屏幕内容或自然内容)禁用去方块滤波器。
8.提出仅存储TPM编解码块内的所有子块的单向预测信息。通过MvInfo0和MvInfo1表示两个分割的运动信息,例如,在图19A和19B中,MvInfo0和MvInfo1分别对应于分割0和分割1的运动信息。
a.在一个示例中,对于子块,单向预测信息可以与MvInfo0和MvInfo1之一相同。
b.在一个示例中,对于子块,单向预测信息可以从MvInfo0和/或MvInfo1推导。
c.在一个示例中,对于子块,要存储的运动信息可以由以下规则确定:
i.在一个示例中,该规则包括参考图片的参考图片索引/MV值/POC值。
1)在一个示例中,如果MvInfo0的参考索引小于或不大于MvInfo1的参考索引,则可以存储MvInfo0。
ii.在一个示例中,如果MvInfo0的运动矢量(MV)小于或不大于MvInfo1的运动矢量,则可以存储MvInfo0。
1)在一个示例中,MV0不大于MV1可以被定义为abs(MV0.x)+abs(MV0.y)<=abs(MV1.x)+abs(MV1.y),其中x和y是MV的水平和垂直分量,并且abs是得到输入的绝对值的运算。
2)在一个示例中,MV0不大于MV1可以被定义为max(abs(MV0.x),abs(MV0.y))<=max(abs(MV1.x),abs(MV1.y)),其中x和y是MV的水平和垂直分量,max是从两个输入得到较大输入的运算,并且abs是得到输入的绝对值的运算。
3)在一个示例中,MV0小于MV1可以被定义为abs(MV0.x)+abs(MV0.y)<abs(MV1.x)+abs(MV1.y),其中x和y是MV的水平和垂直分量,并且abs是得到输入的绝对值的运算。
4)在一个示例中,MV0小于MV1可以被定义为max(abs(MV0.x),abs(MV0.y))<max(abs(MV1.x),abs(MV1.y)),其中x和y是MV的水平和垂直分量,max是从两个输入得到较大输入的运算,并且abs是得到输入的绝对值的运算。
iii.在一个示例中,以上方法可以仅被应用于特定位置处的子块,诸如包含位于对角线或反对角线(图20中的灰色区域)上的样点的子块。
iv.在一个示例中,以上方法可以仅被应用于加权区域处的子块,诸如图21A-图21C中描绘的那些。
d.在一个示例中,当应用项目符号7时,可以应用以上方法。
e.在一个示例中,可以在条件下应用以上方法,诸如当视频内容是屏幕内容时或者当指示这些方法的标志被启用时。
9.对利用单向预测的视频单元(例如,P图片/条带/片/砖块/独立子区域/CU/PU)有条件地启用三角形预测模式(TPM)。
a.在一个示例中,当仅从一个运动信息集合预测一个TPM编解码块内的每个样点,并且对于运动存储的每个单元,仅一个运动信息集合时,可以有条件地信令通知对视频单元允许TPM的指示。
i.可替代地,可以有条件地信令通知对视频单元允许TPM的指示。该条件可以包括:1)当禁用TPM融合或屏幕内容的标志为真时,以及2)当前视频单元为单向预测。
b.对于一个图片/条带/片/砖块或其他视频单元,可以以不同的方式应用TPM,例如,可以自适应地改变运动存储和/或运动补偿(例如,如何应用融合)。
i.在一个示例中,如何启用/应用TPM的方式可以取决于预测单元(例如,单向预测或双向预测)。
10.是否启用RDPCM可以取决于编解码树结构类型。
a.在一个示例中,对于给定的编解码树结构类型(例如,双树),可以跳过对RDPCM模式的指示和/或与RDPCM模式相关的其他语法的信令通知,并且可以推断RDPCM信息。
b.在一个示例中,当应用双编解码树结构类型时,RDPCM模式的指示可以被推断为假。
11.是否启用QR-BDPCM可以取决于编解码树结构类型。
a.在一个示例中,对于给定的编解码树结构类型(例如,双树),可以跳过对QR-BDPCM模式的指示和/或与QR-BDPCM模式相关的其他语法的信令通知,并且可以推断QR-BDPCM信息。
b.在一个示例中,当应用双编解码树结构类型时,QR-BDPCM模式的指示可以被推断为假。
12.是否启用CCLM可以取决于编解码树结构类型。
a.在一个示例中,对于给定的编解码树结构类型(例如,双树),可以跳过对CCLM模式的指示和/或与CCLM模式相关的其他语法的信令通知,并且可以推断CCLM信息。
b.在一个示例中,当应用双编解码树结构类型时,CCLM模式的指示可以被推断为假。
13.对于特定尺寸的IBC块,可以总是应用变换跳过(TS)模式
a.在一个示例中,当预测模式是特定尺寸的IBC时,TS模式的指示可以被推断为真
i.可替代地,当预测模式是IBC时,TS模式的指示可以被推断为假。
ii.在一个示例中,对于4×4IBC块,可以总是应用TS模式。
iii.在一个示例中,对于尺寸大于32×32的IBC块,可以总是应用TS模式。
b.在一个示例中,当预测模式是特定尺寸的IBC时,DCT变换的使用可以被推断为假。
i.可替代地,当预测模式是IBC时,DCT变换的使用可以被推断为真。
14.对于特定尺寸的IBC块,可以应用变换跳过(TS)模式。
a.在一个示例中,当预测模式是特定尺寸的IBC(例如,以IBC模式编解码的64×64块)时,可以应用变换跳过。
15.对于特定尺寸的IBC块,可以总是应用预定义变换(包括恒等变换(identitytransform),即变换跳过)。
a.在一个示例中,当块的宽度在特定范围内时,预定义变换可以总是被应用为水平变换。
i.在一个示例中,当宽度等于或小于给定阈值T1和/或等于或大于给定阈值T2时,TS可以总是被应用为水平变换。
1)否则,DCT2可以总是被应用为水平变换。
2)在一个示例中,T1等于16。
3)在一个示例中,T2等于4。
b.在一个示例中,当块的高度在特定范围内时,TS可以总是被应用为垂直变换。
i.在一个示例中,当高度等于或小于给定阈值T3和/或等于或大于给定阈值T4时,TS可以总是被应用为垂直变换。
1)否则,DCT2可以总是被应用为垂直变换。
2)在一个示例中,T3等于16。
3)在一个示例中,T4等于4。
c.阈值可以在DPS/SPS/VPS/PPS/APS/图片头/条带头/片组头/最大编解码单元(LCU)/编解码单元(CU)/LCU行/LCU组中被信令通知
d.是否应用以上机制可以通过在DPS/SPS/VPS/PPS/APS/图片头/条带头/片组头/最大编解码单元(LCU)/编解码单元(CU)/LCU行/LCU组中信令通知的标志进行控制。
16.是否和/或如何应用以上方法可以基于:
a.视频内容(例如,屏幕内容或自然内容)
b.在DPS/SPS/VPS/PPS/APS/图片头/条带头/片组头/最大编解码单元(LCU)/编解码单元(CU)/LCU行/LCU组中信令通知的消息
c.当前块和/或其邻近块的块大小
d.当前块和/或其邻近块的块形状
e.色彩格式(诸如4:2:0、4:4:4)的指示
f.编解码树结构
g.条带/片组类型和/或图片类型
h.色彩分量(例如,可以仅应用于色度分量或亮度分量)
i.时域层ID
j.标准的简表/级别/层级
5.所公开的技术的示例性实施例
第5.1和5.2节中描述的实施例基于JVET-N1001-v4。修改用粗体双括号括起来,即{{·}}。
5.1实施例#1
本子章节给出了色度IBC模式信令通知的示例。
5.1.1实施例#1-1
7.3.7.5编解码单元语法
{{等于1的pred_mode_chroma ibc_flag规定当启用双树时,在IBC预测模式下编解码当前色度编解码单元。等于0的pred_mode_chroma ibc_flag规定当前编解码单元不在IBC预测模式下编解码。
当pred_mode_ibc_flag不存在时,其被推断如下:
如果cu_skip_flag[x0][y0]等于1,并且cbWidth等于4,且cbHeight等于4,则pred_mode_chroma_ibc_flag被推断为等于1.
否则,当解码I条带时,pred_mode_chroma_ibc_flag被推断为等于sps_ibc_enabled_flag的值,并且当分别解码P条带或B条带时,pred_mode_chroma_ibc_flag被推断为等于0。
当pred_mode_ibc_flag等于1时,变量CuPredMode[x][y]被设置为等于MODE_IBC_CHROMA,其中x=x0..x0+cbWidth–1并且y=y0..y0+cbHeight–1。}}
5.1.2实施例#1-2
7.3.7.5编解码单元语法
5.2实施例#2
本子章节给出了视频内容的信令通知和使用的示例。
7.3.2.3序列参数集RBSP语法
7.3.5条带头语法
7.3.5.1通用条带头语法
7.3.2.3序列参数集RBSP语法
7.3.5条带头语法
7.3.5.1通用条带头语法
等于1的sps_{{tpm_blending_off}}_flag规定融合处理被直接复制取代。当sps_tpm_blending_off_flag不存在时,其被推断为等于0。
等于1的slice_{{tpm_blending_off}}_flag规定融合处理被直接复制取代。当slice_scc_flag不存在时,其被推断为等于0。
8.4.4.2.4参考样点滤波过程
该过程的输入是:
–变量refIdx,指定帧内预测参考线索引,
–变量nTbW,指定变换块宽度,
–变量nTbH,指定变换块高度,
–变量refW,指定参考样点宽度,
–变量refH,指定参考样点高度,
–(未滤波的)邻近样点refUnfilt[x][y],其中x=-1-refIdx,y=-1-refIdx..refH–1以及x=-refIdx..refW-1,y=-1-refIdx,
–变量cIdx,指定当前块的色彩分量。
该过程的输出是参考样点p[x][y],其中x=-1-refIdx,y=-1-refIdx..refH-1以及x=-refIdx..refW-1,y=-1-refIdx。
变量filterFlag的推导如下:
–如果以下所有条件均为真,则filterFlag设置为1
–refIdx等于0
–{{tile_group_scc_flag为0}}
–nTbW*nTbH大于32
–cIdx等于0
–IntraSubPartitionsSplitType等于ISP_NO_SPLIT
–以下一个或多个条件为真:
–predModeIntra等于NTRA_PLANAR
–predModeIntra等于INTRA_ANGULAR34
–predModeIntra等于INTRA_ANGULAR2,并且nTbH大于或等于nTbW
–predModeIntra等于INTRA_ANGULAR66,并且nTbH大于或等于nTbW
–否则,filterFlag设置为等于0。
对于参考样点p[x][y]的推导,以下适用:
–如果filterFlag等于1,则经滤波的样点值p[x][y],其中x=-1,y=-1..refH-1并且x=0..refW-1,y=-1推导如下:
…
–否则,参考样点值p[x][y]将设置为等于未滤波的样点值refUnfilt[x][y],其中x=-1-refIdx,y=-1-refIdx..refH-1并且x=-refIdx..refW-1,y=-1-refIdx。
8.4.4.2.9位置依赖帧内预测样点滤波过程
该过程的输入是:
–帧内预测模式predModeIntra,
–变量nTbW,指定变换块宽度,
–变量nTbH,指定变换块高度,
–变量refW,指定参考样点宽度,
–变量refH,指定参考样点高度,
–预测样点predSamples[x][y],其中x=0..nTbW-1,y=0..nTbH-1,
–邻近样点p[x][y],其中x=-1,y=-1..refH–1并且x=0..refW-1,y=-1,
–变量cIdx,指定当前块的色彩分量。
该过程的输出是经修改的预测样点predSamples[x][y],其中x=0..nTbW-1,y=0..nTbH–1。
根据cIdx的值,函数clip1Cmp设置如下:
–如果cIdx等于0,clip1Cmp被设置为等于Clip1Y。
–否则,clip1Cmp被设置为等于Clip1C。
变量nScale设置为((Log2(nTbW)+Log2(nTbH)-2)>>2)。
参考样点阵列mainRef[x]和sideRef[y],其中x=0..refW–1并且y=0..refH-1推导如下:
mainRef[x]=p[x][-1](8-226)
sideRef[y]=p[-1][y]
变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y],其中x=0..nTbW-1,y=0..nTbH-1推导如下:
{{如果tile_group_scc_flag为1,则refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]都设置为等于0。}}
–否则,以下内容适用
–如果predModeIntra等于INTRA_PLANAR or INTRA_DC,则以下适用:
…
–否则,如果predModeIntra等于INTRA_ANGULAR18或者INTRA_ANGULAR50,则以下适用:
…
–否则,如果predModeIntra等于INTRA_ANGULAR2或者INTRA_ANGULAR66,,则以下适用:
…
–否则,如果predModeIntra小于或等于INTRA_ANGULAR10,则适用以下顺序步骤:
…
–否则,如果predModeIntra大于或等于INTRA_ANGULAR58,则适用以下顺序步骤:
…
–否则,refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]都设置为等于0。
经修改的预测样点的值predSamples[x][y],其中x=0..nTbW 1,y=0..nTbH-1推导如下:
predSamples[x][y]=clip1Cmp((refL[x][y]*wL[x]+refT[x][y]*wT[y]-p[-1][-1]*wTL[x][y]+(64-wL[x]-wT[y]+wTL[x][y])*predSamples[x][y]+32)
>>6)(8-254)
8.4.4.2.7INTRA_ANGULAR2..INTRA_ANGULAR66帧内预测模式的规范
该过程的输入是:
–帧内预测模式predModeIntra,
–变量refIdx,指定帧内预测参考线索引,
–变量nTbW,指定变换块宽度,
–变量nTbH,指定变换块高度,
–变量refW,指定参考样点宽度,
–变量refH,指定参考样点高度,
–变量nCbW,指定编解码块宽度,
–变量nCbH,指定编解码块高度,
–变量cIdx,指定当前块的色彩分量,
–邻近样点p[x][y],其中x=-1-refIdx,y=-1-refIdx..refH–1以及x=-refIdx..refW-1,y=-1-refIdx。
该过程的输出是经修改的帧内预测模式predModeIntra以及预测样点predSamples[x][y],其中x=0..nTbW-1,y=0..nTbH-1。
变量nTbS设置为等于(Log2(nTbW)+Log2(nTbH))>>1。
…
–如果predModeIntra大于或等于34,则适用以下顺序步骤:
1.参考样点阵列ref[x]的规定如下:
…
2.预测样点的值predSamples[x][y],其中x=0..nTbW-1,y=0..nTbH-1推导如下:
–索引变量iIdx和乘法因子iFact推导如下:
iIdx=((y+1+refIdx)*intraPredAngle)>>5+refIdx(8-137)
iFact=((y+1+refIdx)*intraPredAngle)&31(8-138)
–如果cIdx等于0,则以下适用:
–{{如果tile_group_scc_flag为1,则predssamples[x][y]设置为ref[x+iIdx+1]
–否则,下列情况适用:}}
i.插值滤波器系数fT[j],其中j=0..3推导如下:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j](8-139)
ii.预测样点predSamples[x][y]的值推导如下:
–否则(cIdx不等于0),根据iFact的值,以下适用:
–{{如果tile_group_scc_flag为1,则predSamples[x][y]设置为ref[x+iIdx+1]
–否则,以下适用:}}
–如果iFact不等于0,则预测样点predSamples[x][y]的值推导如下:
predSamples[x][y]=((32-iFact)*ref[x+iIdx+1]+iFact*ref[x+iIdx+2]+16)>>5(8-141)
–否则,预测样点predSamples[x][y]的值推导如下:
predSamples[x][y]=ref[x+iIdx+1](8-142)
–否则(predModeIntra小于34),以下有序步骤适用:
1.参考样点阵列ref[x]的规定如下:
…
2.预测样点的值predSamples[x][y],其中0..nTbW-1,y=0..nTbH-1推导如下:
–索引变量iIdx和乘法因子iFact推导如下:
iIdx=((x+1+refIdx)*intraPredAngle)>>5(8-150)
iFact=((x+1+refIdx)*intraPredAngle)&31(8-151)
–如果cIdx等于0,则以下适用:
{{如果tile_group_scc_flag为1,则predSamples[x][y]设置为ref[x+iIdx+1]
否则,以下适用:}}
插值滤波器系数fT[j]其中j=0..3推导如下:
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j](8-152)
–预测样点predSamples[x][y]的值推导如下:
–否则(cIdx不等于0),根据iFact的值,以下适用:
–{{如果tile_group_scc_flag为1,则predSamples[x][y]设置为ref[x+iIdx+1]
–否则,下列情况适用:}}
–如果iFact不等于0,则预测样点predSamples[x][y]的值推导如下:
predSamples[x][y]=
((32-iFact)*ref[y+iIdx+1]+iFact*ref[y+iIdx+2]+16)
>>5(8-154)
–否则,预测样点predSamples[x][y]的值推导如下:
predSamples[x][y]=ref[y+iIdx+1].(8-155)
8.8.3.3变换块边界的推导过程
该过程的输入是:
–位置(xCb,yCb),指定当前编解码块的左顶部样点相对于当前图片的左顶部样点的位置,
–变量nCbW,指定当前编解码块宽度,
–变量nCbH,指定当前编解码块高度,
–变量cIdx,指定当前编解码块的色彩分量,
–变量filterEdgeFlag,
–二维(nCbW)×(nCbH)阵列edgeFlags,
–二维(nCbW)×(nCbH)阵列maxFilterLengthQs和maxFilterLengthPs,
–变量edgeType,指定是垂直的边缘(EDGE_VER)还是水平的边缘(EDGE_HOR)被滤波。
该过程的输出是:
–经修改的二维(nCbW)×(nCbH)阵列edgeFlags,
–经修改的二维(nCbW)×(nCbH)阵列maxFilterLengthQs、maxFilterLengthPs。
根据edgeType,阵列edgeFlags、maxFilterLengthPs和maxFilterLengthQs推导如下:
–如果edgeType等于EDGE_VER,则以下适用:
–变量numEdges设置为等于Max(1,nCbW/8)。
–对于xEdge=0..numEdges-1并且y=0..nCbH-1,以下适用:
–当前编解码块内的水平位置x被设置为等于xEdge*8。
–edgeFlags[x][y]的值推导如下:
–…
–当edgeFlags[x][y]等于1时,以下适用:
–如果cIdx等于0,则以下适用:
–maxFilterLengthQs[x][y]的值推导如下:
–如果变换块在亮度位置(xCb+x,yCb+y)的亮度样点宽度等于或大于32{{且tile_group_scc_flag为0}},则maxFilterLengthQs[x][y]设置为等于7。
–否则,maxFilterLengthQs[x][y]设置为等于3。
–maxFilterLengthPs[x][y]的值推导如下:
–如果变换块在亮度位置(xCb+x-1,yCb+y)的亮度样点宽度等于或大于32{{并且tile_group_scc_flag为0}},则maxFilterLengthPs[x][y]设置为等于7。
–否则,maxFilterLengthPs[x][y]设置为等于3。
–否则(cIdx不等于0),maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]的值推导如下:
–…
–否则(edgeType等于EDGE_HOR),以下适用:
–变量numEdges设置为等于Max(1,nCbH/8)。
–对于yEdge=0..numEdges–1并且x=0..nCbW-1,适用于以下情况:
–当前编解码块内的垂直位置y被设置为等于yEdge*8。
–edgeFlags[x][y]的值推导如下:
–…
–当edgeFlags[x][y]等于1时,以下适用:
–如果cIdx等于0,则以下适用:
–maxFilterLengthQs[x][y]的值推导如下:
–如果变换块在亮度位置(xCb+x,yCb+y)的亮度样点的高度等于或大于32{{并且tile_group_scc_flag为0}},则maxFilterLengthQs[x][y]设置为等于7。
–否则,maxFilterLengthQs[x][y]设置为等于3。
–maxFilterLengthPs[x][y]的值推导如下:
–如果变换块在亮度位置(xCb+x,yCb+y-1)的亮度样点高度等于或大于32{{并且tile_group_scc_flag为0}},则maxFilterLengthPs[x][y]设置为等于7。
–否则,maxFilterLengthPs[x][y]设置为等于3。
–否则(cIdx不等于0),maxFilterLengthPs[x][y]和maxFilterLengthQs[x][y]的值推导如下:
…
5.2.1三角形Merge模式的加权样点预测过程的实施例#1
8.5.7.2三角形Merge模式的加权样点预测过程
该过程的输入是:
–两个变量nCbW和nCbH,指定当前编解码块的宽度和高度,
–两个(nCbW)×(nCbH)阵列predSamplesLA和predSamplesLB,
–变量triangleDir,指定分割方向,
–变量cIdx,指定色彩分量索引。
该过程的输出是预测样点值的(nCbW)×(nCbH)阵列pbSamples。
变量nCbR推导如下:
nCbR=(nCbW>nCbH)?(nCbW/nCbH):(nCbH/nCbW)(8-820)
变量bitDepth推导如下:
–如果cIdx等于0,则bitDepth设置为等于BitDepthY。
–否则,bitDepth设置为等于BitDepthC。
变量shift1和offset1的推导如下:
–变量shift1设置为等于Max(5,17-bitDepth)。
–变量offset1设置为等于1<<(shift1-1)。
根据triangleDir、wS和cIdx的值,预测样点pbSamples[x][y],其中x=0..nCbW–1并且y=0..nCbH-1推导如下:
–变量wIdx的推导如下:
–如果cIdx等于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(x/nCbR-y)+4))(8-821)
:(Clip3(0,8,(x-y/nCbR)+4))
–否则,如果cIdx等于0且triangleDir等于1,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(nCbH-1-x/nCbR-y)+4))(8-822)
(Clip3(0,8,(nCbW-1-x-y/nCbR)+4))
–否则,如果cIdx大于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(x/nCbR-y)+2))(8-823)
:(Clip3(0,4,(x-y/nCbR)+2))
–否则(如果cIdx大于0且triangleDir等于1),以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(nCbH-1-x/nCbR-y)+2))(8-824)
(Clip3(0,4,(nCbW-1-x-y/nCbR)+2))
–指定预测样点权重的变量wValue是使用wIdx和cIdx推导的,如下所示:
wValue=(cIdx==0)?Clip3(0,8,wIdx):Clip3(0,8,wIdx*2)(8-825)
指定预测样点的权重是使用wIdx和cIdx推导的,如下所示:
–预测样点值推导如下:
{{如果tile_group_scc_flag为1,
如果triangleDir等于0且x>=y或者triangleDir等于1且x+y>=nCbW,
pbSamples[x][y]=predSamplesLA[x][y]
否则(triangleDir等于0且x<y或者triangleDir等于1且x+y<nCbW)
pbSamples[x][y]=predSamplesLB[x][y]
否则(tile_group_scc_flag为0)}}
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,
(predSamplesLA[x][y]*wValue+
predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)(8-826)
三角形Merge模式的加权样点预测过程的实施例#2
8.5.7.1通用
当对编解码单元进行解码,其中MergeTriangleFlag[xCb][yCb]等于1时调用该过程。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块的左顶部样点相对于当前图片的左顶部亮度样点的位置。
–变量cbWidth,指定亮度样点中当前编解码块的宽度,
–变量cbHeight,指定亮度样点中当前编解码块高度,
–1/16分数样点精度中的亮度运动矢量mvA和mvB,
–色度运动矢量mvCA和mvCB,
–参考索引refIdxA和refIdxB,
–预测列表标志predListFlagA和predListFlagB。
该过程的输出是:
–亮度预测样点的(cbWidth)×(cbHeight)阵列predSamplesL,
–分量Cb的色度预测样点的(cbWidth/2)×(cbHeight/2)阵列predSamplesCb,
–分量Cr的色度预测样点的(cbWidth/2)×(cbHeight/2)阵列predSamplesCr。
假设predSamplesLAL和predSamplesLBL是预测亮度样点值的(cbWidth)×(cbHeight)阵列,predSamplesLACb、predSamplesLBCb、predSamplesLACr和predSamplesLBCr是预测色度样点值的(cbWidth/2)×(cbHeight/2)阵列。
predSamplesL、predSamplesCb和predSamplesCr通过以下有序步骤推导:
1.对于分别为A和B的N,以下适用:
–由亮度样点的有序二维阵列refPicLNL和色度样点的两个有序二维阵列refPicLNCb和refPicLNCr组成的参考图片是通过调用条款8.5.6.2中规定的过程推导的,其中,将X设置为等于predListFlagN并且refIdxX设置为等于refIdxN作为输入。
–阵列predSamplesLNL是通过调用条款8.5.6.3中规定的分数采样插值过程推导的,其中将亮度位置(xCb,yCb),设置为等于cbWidth的亮度编解码块宽度sbWidth,设置为等于cbHeight的亮度编解码块高度sbHeight,设置为等于(0,0)的运动矢量偏移量mvOffset,设置为等于mvN的运动矢量mvLX,设置为等于refPicLNL的参考阵列refPicLXL,设置为等于FALSE的变量bdofFlag,以及设置为等于0的变量cIdx作为输入。
–阵列predSamplesLNCb是通过调用条款8.5.6.3中规定的分数样点插值过程推导的,其中将亮度位置(xCb,yCb)、设置为等于cbWidth/2的编解码块宽度sbWidth,设置为等于cbHeight/2的编解码块高度sbHeight,设置为等于(0,0)的运动矢量偏移量mvOffset,设置为等于mvCN的运动矢量mvLX,设置为等于refPicLNCb的参考阵列refPicLXCb,设置为等于FALSE的变量bdofFlag,以及设置为等于1的变量cIdx作为输出。
–阵列predSamplesLNCr是通过调用条款8.5.6.3中规定的分数样点插值过程推导的,其中将亮度位置(xCb,yCb),设置为等于cbWidth/2的编解码块宽度sbWidth,设置为等于cbHeight/2的编解码块高度sbHeight,设置为等于(0,0)的运动矢量偏移量mvOffset,设置为等于mvCN的运动矢量mvLX,设置为等于refPicLNCr的参考阵列refPicLXCr,设置为等于FALSE的变量bdofFlag,以及设置为等于2的变量cIdx 2作为输入。
2.Merge三角形模式变量triangleDir的分割方向设置为等于merge_triangle_split_dir[xCb][yCb]。
3.当前亮度编解码块中的预测样点predSamplesL[xL][yL],其中xL=0..cbWidth–1并且yL=0..cbHeight-1是通过调用条款8.5.7.2中规定的三角形Merge模式的加权样点预测过程推导的,其中,将设置为等于cbWidth的编解码块宽度nCbW,设置为等于cbHeight的编解码块高度nCbH,样点阵列predSamplesLAL和predSamplesLBL,{{设置为等于refIdxA和refIdxB的refIdx0和refIdx1}}以及变量triangleDir,以及等于0的cIdx作为输入。
4.当前色度分量Cb编解码块中的预测样点,predSamplesCb[xC][yC],其中xC=0..cbWidth/2-1并且yC=0..cbHeight/2–1,是通过调用条款8.5.7.2中规定的三角形Merge模式的加权样点预测过程推导的,其中将设置为等于cbWidth/2的编解码块宽度nCbW,设置为等于cbHeight/2的编解码块高度nCbH,样点阵列predSamplesLACb和predSamplesLBCb,以及{{设置为等于refIdxA和refIdxB的refIdx0和refIdx1,}}以及变量triangleDir,以及等于1的cIdx作为输入。
5.当前色度分量Cr编解码块内的预测样点predSamplesCr[xC][yC],其中xC=0..cbWidth/2-1并且yC=0..cbHeight/2-1,是通过调用条款8.5.7.2中指定的三角形Merge模式的加权样点预测过程推导的,其中将设置为等于cbWidth/2的编解码块宽度nCbW,设置为等于cbHeight/2的编解码块高度nCbH,样点阵列predSamplesLACr和predSamplesLBCr,,{{设置为等于refIdxA和refIdxB的refIdx0和refIdx1,}}以及变量triangleDir,和设置为等于2的cIdx作为输入。
6.调用在条款8.5.7.3中规定的Merge三角形模式的运动矢量存储处理,其中将亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth、亮度编解码块高度cbHeight、划分方向triangleDir、亮度运动矢量mvA和mvB、参考索引refIdxA和refIdxB以及预测列表标志predListFlagA和predListFlagB作为输入。
8.5.7.2三角形Merge模式的加权样点预测过程该过程的输入是:
–两个变量nCbW和nCbH,指定当前编解码块的宽度和高度,
–两个(nCbW)×(nCbH)阵列predSamplesLA和predSamplesLB,
–变量triangleDir,指定分割方向,
–变量cIdx,指定色彩分量索引,
–{{变量refIdx0,指定预测块A的参考索引,
–变量refIdx1,指定预测块B的参考索引}}
该过程的输出是预测样点值的(nCbW)×(nCbH)阵列pbSamples。
变量nCbR推导如下:
nCbR=(nCbW>nCbH)?(nCbW/nCbH):(nCbH/nCbW)(8-820)
变量bitDepth推导如下:
–如果cIdx等于0,则bitDepth设置为等于BitDepthY。
–否则,bitDepth设置为等于BitDepthC。
变量shift1和offset1的推导如下:
–变量shift1设置为等于Max(5,17-bitDepth)。
–变量offset1设置为等于1<<(shift1-1)。
根据triangleDir、wS和cIdx的值,预测样点pbSamples[x][y],其中x=0..nCbW–1并且y=0..nCbH-1推导如下:
–变量wIdx的推导如下:
–如果cIdx等于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(x/nCbR-y)+4))(8-821)
:(Clip3(0,8,(x-y/nCbR)+4))
–否则,如果cIdx等于0且triangleDir等于1,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(nCbH-1-x/nCbR-y)+4))(8-822)
(Clip3(0,8,(nCbW-1-x-y/nCbR)+4))
–否则,如果cIdx大于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(x/nCbR-y)+2))(8-823)
:(Clip3(0,4,(x-y/nCbR)+2))
–否则(如果cIdx大于0且triangleDir等于1),以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(nCbH-1-x/nCbR-y)+2))(8-824)
(Clip3(0,4,(nCbW-1-x-y/nCbR)+2))
–指定预测样点权重的变量wValue是使用wIdx和cIdx推导的,如下所示:
{{如果tile_group_scc_flag等于1
如果triangleDir等于0
wValue=(nCbW>nCbH)?((x/nCbR-y)==0?(refIdx0<=refIdx1?8:0):
8*Clip3(0,1,(x/nCbR-y))):((x-y/nCbR)==0?(refIdx0<=refIdx1?8:
0):8*Clip3(0,1,(x-y/nCbR)))
否则,如果triangleDir等于1,
wValue=(nCbW>nCbH)?((nCbH-1-x/nCbR-y)==0?(refIdx0<=refIdx1?
8:0):8*Clip3(0,1,(nCbH-1-x/nCbR-y))):((nCbW-1-x-y/nCbR)==0?
(refIdx0<=refIdx1?8:0):8*Clip3(0,1,(nCbW-1-x-y/nCbR)))
否则,}}
wValue=(cIdx==0)?Clip3(0,8,wIdx):Clip3(0,8,wIdx*2)(8-825)
–预测样点值推导如下:
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,
(predSamplesLA[x][y]*wValue+
predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)(8-826)
5.2.3三角形Merge模式的加权样点预测过程的实施例#3
8.5.7.2三角形Merge模式的加权样点预测过程
该过程的输入是:
–两个变量nCbW和nCbH,指定当前编解码块的宽度和高度,
–两个(nCbW)×(nCbH)阵列predSamplesLA和predSamplesLB,
–变量triangleDir,指定分割方向,
–变量cIdx,指定色彩分量索引。
该过程的输出是预测样点值的(nCbW)×(nCbH)阵列pbSamples。
变量nCbR推导如下:
nCbR=(nCbW>nCbH)?(nCbW/nCbH):(nCbH/nCbW)(8-820)变量bitDepth推导如下:
–如果cIdx等于0,则bitDepth设置为等于BitDepthY。
–否则,bitDepth设置为等于BitDepthC。
变量shift1和offset1的推导如下:
–变量shift1设置为等于Max(5,17-bitDepth)。
–变量offset1设置为等于1<<(shift1-1)。
根据triangleDir、wS和cIdx的值,预测样点pbSamples[x][y],其中x=0..nCbW–1并且y=0..nCbH-1推导如下:
–变量wIdx的推导如下:
–如果cIdx等于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(x/nCbR-y)+4))(8-821)
:(Clip3(0,8,(x-y/nCbR)+4))
–否则,如果cIdx等于0且triangleDir等于1,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(nCbH-1-x/nCbR-y)+4))(8-822)
(Clip3(0,8,(nCbW-1-x-y/nCbR)+4))
–否则,如果cIdx大于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(x/nCbR-y)+2))(8-823)
:(Clip3(0,4,(x-y/nCbR)+2))
–否则(如果cIdx大于0且triangleDir等于1),以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(nCbH-1-x/nCbR-y)+2))(8-824)
(Clip3(0,4,(nCbW-1-x-y/nCbR)+2))
–指定预测样点权重的变量wValue是使用wIdx和cIdx推导的,如下所示:
wValue=(cIdx==0)?Clip3(0,8,wIdx):Clip3(0,8,wIdx*2)(8-825)
{{如果tile_group_scc_flag等于1
如果triangleDir等于0
wValue=(nCbW>nCbH)?(x/nCbR-y<0?0:8)):(x-y/nCbR<0?0:8)
否则,如果triangleDir等于1,
wValue=(nCbW>nCbH)?(nCbH-1-x/nCbR–y<0?0:8):
(nCbW-1-x-y/nCbR<0?0:8)
否则,}}
wValue=(cIdx==0)?Clip3(0,8,wIdx):Clip3(0,8,wIdx*2)(8-825)
指定预测样点的权重是使用wIdx和cIdx推导的,如下所示:
–预测样点值推导如下:
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,
(predSamplesLA[x][y]*wValue+
predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)(8-826)
5.2.4三角形Merge模式的加权样点预测过程的实施例#4
8.5.7.1通用
当对编解码单元进行解码,其中MergeTriangleFlag[xCb][yCb]等于1时调用该过程。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块的左顶部样点相对于当前图片的左顶部亮度样点的位置。
–变量cbWidth,指定亮度样点中当前编解码块的宽度,
–变量cbHeight,指定亮度样点中当前编解码块高度,
–1/16分数样点精度中的亮度运动矢量mvA和mvB,
–色度运动矢量mvCA和mvCB,
–参考索引refIdxA和refIdxB,
–预测列表标志predListFlagA和predListFlagB。
该过程的输出是:
–亮度预测样点的(cbWidth)×(cbHeight)阵列predSamplesL,
–分量Cb的色度预测样点的(cbWidth/2)×(cbHeight/2)阵列predSamplesCb,
–分量Cr的色度预测样点的(cbWidth/2)×(cbHeight/2)阵列predSamplesCr。
假设predSamplesLAL和predSamplesLBL是预测亮度样点值的(cbWidth)×(cbHeight)阵列,predSamplesLACb、predSamplesLBCb、predSamplesLACr和predSamplesLBCr是预测色度样点值的(cbWidth/2)×(cbHeight/2)阵列。
predSamplesL、predSamplesCb和predSamplesCr通过以下有序步骤推导:
7.对于分别为A和B的N,以下适用:
–由亮度样点的有序二维阵列refPicLNL和色度样点的两个有序二维阵列refPicLNCb和refPicLNCr组成的参考图片是通过调用条款8.5.6.2中规定的过程推导的,其中,将X设置为等于predListFlagN并且refIdxX设置为等于refIdxN作为输入。
–阵列predSamplesLNL是通过调用条款8.5.6.3中规定的分数采样插值过程推导的,其中将亮度位置(xCb,yCb),设置为等于cbWidth的亮度编解码块宽度sbWidth,设置为等于cbHeight的亮度编解码块高度sbHeight,设置为等于(0,0)的运动矢量偏移量mvOffset,设置为等于mvN的运动矢量mvLX,设置为等于refPicLNL的参考阵列refPicLXL,设置为等于FALSE的变量bdofFlag,以及设置为等于0的变量cIdx
作为输入。
–阵列predSamplesLNCb是通过调用条款8.5.6.3中规定的分数样点插值过程推导的,其中将亮度位置(xCb,yCb)、设置为等于cbWidth/2的编解码块宽度sbWidth,设置为等于cbHeight/2的编解码块高度sbHeight,设置为等于(0,0)的运动矢量偏移量mvOffset,设置为等于mvCN的运动矢量mvLX,设置为等于refPicLNCb的参考阵列refPicLXCb,设置为等于FALSE的变量bdofFlag,以及设置为等于1的变量cIdx作为输出。
–阵列predSamplesLNCr是通过调用条款8.5.6.3中规定的分数样点插值过程推导的,其中将亮度位置(xCb,yCb),设置为等于cbWidth/2的编解码块宽度sbWidth,设置为等于cbHeight/2的编解码块高度sbHeight,设置为等于(0,0)的运动矢量偏移量mvOffset,设置为等于mvCN的运动矢量mvLX,设置为等于refPicLNCr的参考阵列refPicLXCr,设置为等于FALSE的变量bdofFlag,以及设置为等于2的变量cIdx 2作为输入。
8.Merge三角形模式变量triangleDir的分割方向设置为等于merge_triangle_split_dir[xCb][yCb]。
9.当前亮度编解码块中的预测样点predSamplesL[xL][yL],其中xL=0..cbWidth–1并且yL=0..cbHeight-1是通过调用条款8.5.7.2中规定的三角形Merge模式的加权样点预测过程推导的,其中,将设置为等于cbWidth的编解码块宽度nCbW,设置为等于cbHeight的编解码块高度nCbH,样点阵列predSamplesLAL和predSamplesLBL,{{设置为等于mvA和mvB的MVa和MVb}}以及变量triangleDir,以及等于0的cIdx作为输入。
10.当前色度分量Cb编解码块中的预测样点,predSamplesCb[xC][yC],其中xC=0..cbWidth/2-1并且yC=0..cbHeight/2–1,是通过调用条款8.5.7.2中规定的三角形Merge模式的加权样点预测过程推导的,其中将设置为等于cbWidth/2的编解码块宽度nCbW,设置为等于cbHeight/2的编解码块高度nCbH,样点阵列predSamplesLACb和predSamplesLBCb,以及{{设置为等于mvCA和mvCB的MVa和MVb,}}以及变量triangleDir,以及等于1的cIdx作为输入。
11.当前色度分量Cr编解码块内的预测样点predSamplesCr[xC][yC],其中xC=0..cbWidth/2-1并且yC=0..cbHeight/2-1,是通过调用条款8.5.7.2中指定的三角形Merge模式的加权样点预测过程推导的,其中将设置为等于cbWidth/2的编解码块宽度nCbW,设置为等于cbHeight/2的编解码块高度nCbH,样点阵列predSamplesLACr和predSamplesLBCr,,{{设置为等于mvCA和mvCB的MVa和MVb}}以及变量triangleDir,和设置为等于2的cIdx作为输入。
12.调用在条款8.5.7.3中规定的Merge三角形模式的运动矢量存储处理,其中将亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth、亮度编解码块高度cbHeight、划分方向triangleDir、亮度运动矢量mvA和mvB、参考索引refIdxA和refIdxB以及预测列表标志predListFlagA和predListFlagB作为输入。
8.5.7.2三角形Merge模式的加权样点预测过程
该过程的输入是:
–两个变量nCbW和nCbH,指定当前编解码块的宽度和高度,
–两个(nCbW)×(nCbH)阵列predSamplesLA和predSamplesLB,
–变量triangleDir,指定分割方向,
–变量cIdx,指定色彩分量索引,
–{{变量MVa,指定预测块A的运动矢量,
–变量MVb,指定预测块B的运动矢量}}
该过程的输出是预测样点值的(nCbW)×(nCbH)阵列pbSamples。
变量nCbR推导如下:
nCbR=(nCbW>nCbH)?(nCbW/nCbH):(nCbH/nCbW)(8-820)
变量bitDepth推导如下:
–如果cIdx等于0,则bitDepth设置为等于BitDepthY。
–否则,bitDepth设置为等于BitDepthC。
变量shift1和offset1的推导如下:
–变量shift1设置为等于Max(5,17-bitDepth)。
–变量offset1设置为等于1<<(shift1-1)。
根据triangleDir、wS和cIdx的值,预测样点pbSamples[x][y],其中x=0..nCbW–1并且y=0..nCbH-1推导如下:
–变量wIdx的推导如下:
–如果cIdx等于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(x/nCbR-y)+4))(8-821)
:(Clip3(0,8,(x-y/nCbR)+4))
–否则,如果cIdx等于0且triangleDir等于1,则以下适用:wIdx=(nCbW>nCbH)?(Clip3(0,8,(nCbH-1-x/nCbR-y)+4))(8-822)
(Clip3(0,8,(nCbW-1-x-y/nCbR)+4))
–否则,如果cIdx大于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(x/nCbR-y)+2))(8-823)
:(Clip3(0,4,(x-y/nCbR)+2))
–否则(如果cIdx大于0且triangleDir等于1),以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(nCbH-1-x/nCbR-y)+2))(8-824)
(Clip3(0,4,(nCbW-1-x-y/nCbR)+2))
–指定预测样点权重的变量wValue是使用wIdx和cIdx推导的,如下所示:
{{如果tile_group_scc_flag等于1
如果triangleDir等于0
wValue=(nCbW>nCbH)?((x/nCbR-y)==0?(Max(MVa[0],MVa[1])<=
(Max(MVb[0],MVb[1])?8:0):8*Clip3(0,1,(x/nCbR-y))):
((x-y/nCbR)==0?((Max(MVa[0],MVa[1])<=(Max(MVb[0],MVb[1])?8:
0):8*Clip3(0,1,(x-y/nCbR)))
否则,如果triangleDir等于1,
wValue=(nCbW>nCbH)?((nCbH-1-x/nCbR-y)==0?
((Max(MVa[0],MVa[1])<=(Max(MVb[0],MVb[1])?8:0):8*Clip3(0,1,
(nCbH-1-x/nCbR-y))):((nCbW-1-x-y/nCbR)==0?
((Max(MVa[0],MVa[1])<=(Max(MVb[0],MVb[1])?8:0):8*Clip3(0,1,
(nCbW-1-x-y/nCbR)))
否则,}}
wValue=(cIdx==0)?Clip3(0,8,wIdx):Clip3(0,8,wIdx*2)(8-825)
–预测样点值推导如下:
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,
(predSamplesLA[x][y]*wValue+
predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)(8-826)
5.2.5三角形Merge模式的加权样点预测过程的实施例#5
该过程的输入是:
–两个变量nCbW和nCbH,指定当前编解码块的宽度和高度,
–两个(nCbW)×(nCbH)阵列predSamplesLA和predSamplesLB,
–变量triangleDir,指定分割方向,
–变量cIdx,指定色彩分量索引。
–{{变量MVa,指定预测块A的运动矢量,
–变量MVb,指定预测块B的运动矢量}}
该过程的输出是预测样点值的(nCbW)×(nCbH)阵列pbSamples。
变量nCbR推导如下:
nCbR=(nCbW>nCbH)?(nCbW/nCbH):(nCbH/nCbW)(8-820)
变量bitDepth推导如下:
–如果cIdx等于0,则bitDepth设置为等于BitDepthY。
–否则,bitDepth设置为等于BitDepthC。
变量shift1和offset1的推导如下:
–变量shift1设置为等于Max(5,17-bitDepth)。
–变量offset1设置为等于1<<(shift1-1)。
根据triangleDir、wS和cIdx的值,预测样点pbSamples[x][y],其中x=0..nCbW–1并且y=0..nCbH-1推导如下:
{{如果slice_tpm_blending_off_flag等于1
变量numSbX和numSbY指定当前编解码块中4×4块的数量
在水平和垂直方向上被设置为等于numSbX=nCbW>>2和numSbY=nCbH>>2。
对于在子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0..numSbX–1,并且ySbIdx=0..numSbY-1,以下适用:
变量xIdx和yIdx的推导如下:
xIdx=(cbWidth>cbHeight)?(xSbIdx/nCbR):xSbIdx(8-813)
yIdx=(cbWidth>cbHeight)?ySbIdx:(ySbIdx/nCbR)(8-814)
变量sType的推导如下:
如果triangleDir等于0,则以下适用:
sType=(xIdx==yIdx)?2:((xIdx>yIdx)?0:1)(8-815)
否则(triangleDir等于1),以下适用:
sType=(xIdx+yIdx==minSb)?2:((xIdx+yIdx<minSb)?0:1)(8-816)如果sType等于2,则以下适用:
wValue=(Max(Abs(MVa[0]),Abs(MVa[1]))<=Max(Abs(MVb[0]),Abs(MVb[1])))?8:0否则,以下适用:
wValue=(sType==0?8:0)
否则,以下适用:}}
–变量wIdx的推导如下:
如果cIdx等于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(x/nCbR-y)+4))(8-821)
:(Clip3(0,8,(x-y/nCbR)+4))
否则,如果cIdx等于0且triangleDir等于1,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(nCbH-1-x/nCbR-y)+4))(8-822)
(Clip3(0,8,(nCbW-1-x-y/nCbR)+4))
否则,如果cIdx大于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(x/nCbR-y)+2))(8-823)
:(Clip3(0,4,(x-y/nCbR)+2))
否则(如果cIdx大于0且triangleDir等于1),以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(nCbH-1-x/nCbR-y)+2))(8-824)
(Clip3(0,4,(nCbW-1-x-y/nCbR)+2))
–指定预测样点权重的变量wValue是使用wIdx和cIdx推导的,如下所示:
wValue=(cIdx==0)?Clip3(0,8,wIdx):Clip3(0,8,wIdx*2)(8-825)
–预测样点值推导如下:
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,(predSamplesLA[x][y]*wValue+
predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)(8-826)
5.2.6三角形Merge模式的加权样点预测过程的实施例#6
该过程的输入是:
–两个变量nCbW和nCbH,指定当前编解码块的宽度和高度,
–两个(nCbW)×(nCbH)阵列predSamplesLA和predSamplesLB,
–变量triangleDir,指定分割方向,
–变量cIdx,指定色彩分量索引。
–{{变量MVa,指定预测块A的运动矢量,
–变量MVb,指定预测块B的运动矢量}}
该过程的输出是预测样点值的(nCbW)×(nCbH)阵列pbSamples。
变量nCbR推导如下:
nCbR=(nCbW>nCbH)?(nCbW/nCbH):(nCbH/nCbW)(8-820)
变量bitDepth推导如下:
–如果cIdx等于0,则bitDepth设置为等于BitDepthY。
–否则,bitDepth设置为等于BitDepthC。
变量shift1和offset1的推导如下:
–变量shift1设置为等于Max(5,17-bitDepth)。
–变量offset1设置为等于1<<(shift1-1)。
根据triangleDir、wS和cIdx的值,预测样点pbSamples[x][y],其中x=0..nCbW–1并且y=0..nCbH-1推导如下:
–变量wIdx的推导如下:
–如果cIdx等于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(x/nCbR-y)+4))(8-821)
:(Clip3(0,8,(x-y/nCbR)+4))
–否则,如果cIdx等于0且triangleDir等于1,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,8,(nCbH-1-x/nCbR-y)+4))(8-822)
(Clip3(0,8,(nCbW-1-x-y/nCbR)+4))
–否则,如果cIdx大于0且triangleDir等于0,则以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(x/nCbR-y)+2))(8-823)
:(Clip3(0,4,(x-y/nCbR)+2))
–否则(如果cIdx大于0且triangleDir等于1),以下适用:
wIdx=(nCbW>nCbH)?(Clip3(0,4,(nCbH-1-x/nCbR-y)+2))(8-824)
(Clip3(0,4,(nCbW-1-x-y/nCbR)+2))
–指定预测样点权重的变量wValue是使用wIdx和cIdx推导的,如下所示:
{{如果slice_tpm_blending_off_flag等于1
变量wOffset推导为
wOffset=(Max(Abs(MVa[0]),Abs(MVa[1]))<=Max(Abs(MVb[0]),Abs(MVb[1])))?0.5:-0.5}}
wValue=(cIdx==0)?Clip3(0,8,(wIdx+wOffset-4)*16):Clip3(0,8,(wIdx+wOffset-2)*16)
{{否则,}}
wValue=(cIdx==0)?Clip3(0,8,wIdx):Clip3(0,8,wIdx*2)(8-825)
–预测样点值推导如下:
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,
(predSamplesLA[x][y]*wValue+
predSamplesLB[x][y]*(8-wValue)+offset1)>>shift1)(8-826)
5.2.7三角形Merge模式的加权样点预测过程的实施例#7
当对编解码单元进行解码,其中MergeTriangleFlag[xCb][yCb]等于1时调用该过程。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块的左顶部样点相对于当前图片的左顶部亮度样点的位置。
–变量cbWidth,指定亮度样点中当前编解码块的宽度,
–变量cbHeight,指定亮度样点中当前编解码块高度,
–变量triangleDir,指定分割方向,
–1/16分数样点精度中的亮度运动矢量mvA和mvB,
–参考索引refIdxA和refIdxB,
–预测列表标志predListFlagA和predListFlagB。
指定当前编解码块中在水平方向和垂直方向上的4×4块的数量的变量numSbX和numSbY被设置为等于numSbX=cbWidth>>2和numSbY=cbHeight>>2。
变量minSb设置为等于min(numSbX,numSbY)。
变量cbRatio推导如下:
cbRatio=(cbWidth>cbHeight)?(cbWidth/cbHeight):(cbHeight/cbWidth)(8-812)
变量refIdxTempA是通过调用在条款8.5.7.4中规定的三角形Merge模式的参考图片映射处理推导的,其中将X设置为等于predListFlagA,并且refIdxN设置为等于refIdxA作为输入。
变量refIdxTempB是通过调用条款8.5.7.4中规定的三角形Merge模式的参考图片映射处理推导的,其中将X设置为等于predListFlagB,并且refIdxN设置为等于refIdxB作为输入。
对于在子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0..numSbX–1,并且ySbIdx=0..numSbY-1,以下适用:
–变量xIdx和yIdx的推导如下:
xIdx=(cbWidth>cbHeight)?(xSbIdx/nCbR):xSbIdx(8-813)
yIdx=(cbWidth>cbHeight)?ySbIdx:(ySbIdx/nCbR)(8-814)
–变量sType的推导如下:
–如果triangleDir等于0,则以下适用:
sType=(xIdx==yIdx)?2:((xIdx>yIdx)?0:1)(8-815)
–否则(triangleDir等于1),以下适用:
sType=(xIdx+yIdx==minSb)?2:((xIdx+yIdx<minSb)?0:1)(8-816)
–根据sType的值,进行以下分配:
–如果sType等于0,则以下适用:
predFlagL0=(predListFlagA==0)?1:0
(8-817)
predFlagL1=(predListFlagA==0)?0:1
(8-818)
refIdxL0=(predListFlagA==0)?refIdxA:-1(8-819)
refIdxL1=(predListFlagA==0)?-1:refIdxA(8-820)
mvL0[0]=(predListFlagA==0)?mvA[0]:0(8-821)
mvL0[1]=(predListFlagA==0)?mvA[1]:0(8-822)
mvL1[0]=(predListFlagA==0)?0:mvA[0](8-823)
mvL1[1]=(predListFlagA==0)?0:mvA[1](8-824)
–否则,如果sType等于1,则以下适用:
predFlagL0=(predListFlagB==0)?1:0
(8-825)
predFlagL1=(predListFlagB==0)?0:1
(8-826)
refIdxL0=(predListFlagB==0)?refIdxB:-1(8-827)
refIdxL1=(predListFlagB==0)?-1:refIdxB(8-828)
mvL0[0]=(predListFlagB==0)?mvB[0]:0(8-829)
mvL0[1]=(predListFlagB==0)?mvB[1]:0(8-830)
mvL1[0]=(predListFlagB==0)?0:mvB[0](8-831)
mvL1[1]=(predListFlagB==0)?0:mvB[1](8-832)
否则(sType等于2),则以下适用:
{{tile_group_scc_flag等于1,
变量predFromA推导如下:
predFromA=(Max(MVa[0],MVa[1])<=Max(MVb[0],MVb[1])?1:0如果predFromA等于1
predFlagL0=(predListFlagA==0)?1:0
(8-817)
predFlagL1=(predListFlagA==0)?0:1
(8-818)
refIdxL0=(predListFlagA==0)?refIdxA:-1(8-819)
refIdxL1=(predListFlagA==0)?-1:refIdxA(8-820)
mvL0[0]=(predListFlagA==0)?mvA[0]:0(8-821)
mvL0[1]=(predListFlagA==0)?mvA[1]:0(8-822)
mvL1[0]=(predListFlagA==0)?0:mvA[0](8-823)
mvL1[1]=(predListFlagA==0)?0:mvA[1](8-824)
否则,predFromA等于0,
predFlagL0=(predListFlagB==0)?1:0
(8-825)
predFlagL1=(predListFlagB==0)?0:1
(8-826)
refIdxL0=(predListFlagB==0)?refIdxB:-1(8-827)
refIdxL1=(predListFlagB==0)?-1:refIdxB(8-828)
mvL0[0]=(predListFlagB==0)?mvB[0]:0(8-829)
mvL0[1]=(predListFlagB==0)?mvB[1]:0(8-830)
mvL1[0]=(predListFlagB==0)?0:mvB[0](8-831)
mvL1[1]=(predListFlagB==0)?0:mvB[1](8-832)}}
如果predListFlagA+predListFlagB等于1,
predFlagL0=1(8-833)
predFlagL1=1(8-834)
refIdxL0=(predListFlagA==0)?refIdxA:refIdxB(8-835)
refIdxL1=(predListFlagA==0)?refIdxB:refIdxA(8-836)
mvL0[0]=(predListFlagA==0)?mvA[0]:mvB[0](8-837)
mvL0[1]=(predListFlagA==0)?mvA[1]:mvB[1](8-838)
mvL1[0]=(predListFlagA==0)?mvB[0]:mvA[0](8-839)
mvL1[1]=(predListFlagA==0)?mvB[1]:mvA[1](8-840)
如果predListFlagA+predListFlagB等于0,则以下适用:
predFlagL0=1(8-841)
predFlagL1=(refIdxTempA==-1&&refIdxTempB==-1)?0:1(8-842)
refIdxL0=(refIdxTempB!=-1)?refIdxA:(8-843)
((refIdxTempA!=-1)?refIdxB:refIdxA)
refIdxL1=(refIdxTempB!=-1)?refIdxTempB:(8-844)
((refIdxTempA!=-1)?refIdxTempA:-1)
mvL0[0]=(refIdxTempB!=-1)?mvA[0]:(8-845)
((refIdxTempA!=-1)?mvB[0]:mvA[0])
mvL0[1]=(refIdxTempB!=-1)?mvA[1]:(8-846)
((refIdxTempA!=-1)?mvB[1]:mvA[1])
mvL1[0]=(refIdxTempB!=-1)?mvB[0]:(8-847)
((refIdxTempA!=-1)?mvA[0]:0)
mvL1[1]=(refIdxTempB!=-1)?mvB[1]:(8-848)
((refIdxTempA!=-1)?mvA[1]:0)
如果predListFlagA+predListFlagB等于2,则以下适用:
predFlagL0=(refIdxTempA==-1&&refIdxTempB==-1)?0:1(8-849)
predFlagL1=1(8-850)
refIdxL0=(refIdxTempB!=-1)?refIdxTempB:(8-851)
((refIdxTempA!=-1)?refIdxTempA:-1)
refIdxL1=(refIdxTempB!=-1)?refIdxA:(8-852)
((refIdxTempA!=-1)?refIdxB:refIdxA)
mvL0[0]=(refIdxTempB!=-1)?mvB[0]:(8-853)
((refIdxTempA!=-1)?mvA[0]:0)
mvL0[1]=(refIdxTempB!=-1)?mvB[1]:(8-854)
((refIdxTempA!=-1)?mvA[1]:0)
mvL1[0]=(refIdxTempB!=-1)?mvA[0]:(8-855)
((refIdxTempA!=-1)?mvB[0]:mvA[0])
mvL1[1]=(refIdxTempB!=-1)?mvA[1]:(8-856)
((refIdxTempA!=-1)?mvB[1]:mvA[1])
–对于x=0..3并且y=0..3,做出以下分配:
MvL0[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=mvL0(8-857)
MvL1[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=mvL1(8-858)
RefIdxL0[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=refIdxL0(8-859)
RedIdxL1[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=refIdxL1(8-860)
PredFlagL0[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=predFlagL0(8-861)
PredFlagL1[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=predFlagL1(8-862)
5.2.8三角形Merge模式的加权样点预测过程的实施例#8
当对编解码单元进行解码,其中MergeTriangleFlag[xCb][yCb]等于1时调用该过程。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块的左顶部样点相对于当前图片的左顶部亮度样点的位置。
–变量cbWidth,指定亮度样点中当前编解码块的宽度,
–变量cbHeight,指定亮度样点中当前编解码块高度,
–变量triangleDir,指定分割方向,
–1/16分数样点精度中的亮度运动矢量mvA和mvB,
–参考索引refIdxA和refIdxB,
–预测列表标志predListFlagA和predListFlagB。
指定当前编解码块中在水平方向和垂直方向上的4×4块的数量的变量numSbX和numSbY被设置为等于numSbX=cbWidth>>2和numSbY=cbHeight>>2。
变量minSb设置为等于min(numSbX,numSbY)。
变量cbRatio推导如下:
cbRatio=(cbWidth>cbHeight)?(cbWidth/cbHeight):(cbHeight/cbWidth)(8-812)
变量refIdxTempA是通过调用在条款8.5.7.4中规定的三角形Merge模式的参考图片映射处理推导的,其中将X设置为等于predListFlagA,并且refIdxN设置为等于refIdxA作为输入。
变量refIdxTempB是通过调用条款8.5.7.4中规定的三角形Merge模式的参考图片映射处理推导的,其中将X设置为等于predListFlagB,并且refIdxN设置为等于refIdxB作为输入。
对于在子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0..numSbX–1,并且ySbIdx=0..numSbY-1,以下适用:
–变量xIdx和yIdx的推导如下:
xIdx=(cbWidth>cbHeight)?(xSbIdx/nCbR):xSbIdx (8-813)
yIdx=(cbWidth>cbHeight)?ySbIdx:(ySbIdx/nCbR) (8-814)
–变量sType的推导如下:
–如果triangleDir等于0,则以下适用:
sType=(xIdx==yIdx)?2:((xIdx>yIdx)?0:1) (8-815)
–否则(triangleDir等于1),以下适用:
sType=(xIdx+yIdx==minSb)?2:((xIdx+yIdx<minSb)?0:1) (8-816)
{{变量storeFromA推导如下
如果slice_tpm_blending_off_flag等于1,
storeFromA=(Max(Abs(MVa[0]),Abs(MVa[1]))<=Max(Abs(MVb[0]),Abs(MVb[1]))?1:0
否则
storeFromA=-1}}
–根据sType的值,进行以下分配:
–如果sType等于0,或者storeFromA等于1,则以下适用:
predFlagL0=(predListFlagA==0)?1:0(8-817)
predFlagL1=(predListFlagA==0)?0:1(8-818)
refIdxL0=(predListFlagA==0)?refIdxA:-1 (8-819)
refIdxL1=(predListFlagA==0)?-1:refIdxA (8-820)
mvL0[0]=(predListFlagA==0)?mvA[0]:0 (8-821)
mvL0[1]=(predListFlagA==0)?mvA[1]:0 (8-822)
mvL1[0]=(predListFlagA==0)?0:mvA[0] (8-823)
mvL1[1]=(predListFlagA==0)?0:mvA[1] (8-824)
–否则,如果sType等于1,或者storeFromA等于0,则以下适用:
predFlagL0=(predListFlagB==0)?1:0
(8-825)
predFlagL1=(predListFlagB==0)?0:1(8-826)
refIdxL0=(predListFlagB==0)?refIdxB:-1 (8-827)
refIdxL1=(predListFlagB==0)?-1:refIdxB (8-828)
mvL0[0]=(predListFlagB==0)?mvB[0]:0 (8-829)
mvL0[1]=(predListFlagB==0)?mvB[1]:0 (8-830)
mvL1[0]=(predListFlagB==0)?0:mvB[0] (8-831)
mvL1[1]=(predListFlagB==0)?0:mvB[1] (8-832)
–否则(sType等于2),则以下适用:
–如果predListFlagA+predListFlagB等于1,
predFlagL0=1 (8-833)
predFlagL1=1 (8-834)
refIdxL0=(predListFlagA==0)?refIdxA:refIdxB (8-835)
refIdxL1=(predListFlagA==0)?refIdxB:refIdxA (8-836)
mvL0[0]=(predListFlagA==0)?mvA[0]:mvB[0] (8-837)
mvL0[1]=(predListFlagA==0)?mvA[1]:mvB[1] (8-838)
mvL1[0]=(predListFlagA==0)?mvB[0]:mvA[0] (8-839)
mvL1[1]=(predListFlagA==0)?mvB[1]:mvA[1] (8-840)
–如果predListFlagA+predListFlagB等于0,则以下适用:
predFlagL0=1 (8-841)
predFlagL1=(refIdxTempA==-1&&refIdxTempB==-1)?0:1(8-842)
refIdxL0=(refIdxTempB!=-1)?refIdxA:(8-843)
((refIdxTempA!=-1)?refIdxB:refIdxA)
refIdxL1=(refIdxTempB!=-1)?refIdxTempB:(8-844)
((refIdxTempA!=-1)?refIdxTempA:-1)
mvL0[0]=(refIdxTempB!=-1)?mvA[0]:(8-845)
((refIdxTempA!=-1)?mvB[0]:mvA[0])
mvL0[1]=(refIdxTempB!=-1)?mvA[1]:(8-846)
((refIdxTempA!=-1)?mvB[1]:mvA[1])
mvL1[0]=(refIdxTempB!=-1)?mvB[0]:(8-847)
((refIdxTempA!=-1)?mvA[0]:0)
mvL1[1]=(refIdxTempB!=-1)?mvB[1]:(8-848)
((refIdxTempA!=-1)?mvA[1]:0)
–如果predListFlagA+predListFlagB等于2,则以下适用:
predFlagL0=(refIdxTempA==-1&&refIdxTempB==-1)?0:1(8-849)
predFlagL1=1 (8-850)
refIdxL0=(refIdxTempB!=-1)?refIdxTempB:(8-851)
((refIdxTempA!=-1)?refIdxTempA:-1)
refIdxL1=(refIdxTempB!=-1)?refIdxA:(8-852)
((refIdxTempA!=-1)?refIdxB:refIdxA)
mvL0[0]=(refIdxTempB!=-1)?mvB[0]:(8-853)
((refIdxTempA!=-1)?mvA[0]:0)
mvL0[1]=(refIdxTempB!=-1)?mvB[1]:(8-854)
((refIdxTempA!=-1)?mvA[1]:0)
mvL1[0]=(refIdxTempB!=-1)?mvA[0]:(8-855)
((refIdxTempA!=-1)?mvB[0]:mvA[0])
mvL1[1]=(refIdxTempB!=-1)?mvA[1]:(8-856)
((refIdxTempA!=-1)?mvB[1]:mvA[1])
–对于x=0..3并且y=0..3,做出以下分配:
MvL0[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=mvL0 (8-857)
MvL1[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=mvL1 (8-858)
RefIdxL0[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=refIdxL0 (8-859)
RedIdxL1[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=refIdxL1 (8-860)
PredFlagL0[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=predFlagL0 (8-861)
PredFlagL1[(xSbIdx<<2)+x][(ySbIdx<<2)+y]=predFlagL1 (8-862)
上面描述的示例可以结合在下面描述的方法(例如,方法2200)的上下文中,其可以在视频解码器或视频编码器处实施。
图22A示出了用于视频处理的示例性方法的流程图。方法2200包括,在步骤2202,执行视频的色度分量的当前图片的当前视频块和视频的比特流表示之间的转换。在一些实施例中,比特流表示符合格式规则,并且格式规则指定基于对应于当前视频块的一个或多个亮度块是否使用帧内块复制(IBC)模式在比特流表示中编解码,对当前视频块使用IBC模式的指示被选择性地包括在比特流表示中,IBC模式包括基于来自当前图片的样点使用当前视频块的预测。
图22B示出了用于视频处理的示例性方法的流程图。方法2210包括,在步骤2212,为视频的当前视频块确定对当前视频块使用帧内块复制(IBC)模式被禁用或者对应于当前视频块的块矢量无效。
方法2210包括,在步骤2214,基于该确定,使用默认帧内模式生成当前视频块的预测。
方法2210包括,在步骤2216,基于该预测,执行当前视频块和视频的比特流表示之间的转换。
图22C示出了用于视频处理的示例性方法的流程图。方法2220包括,在步骤2222,为视频的当前视频块和视频的比特流表示之间的转换,对当前视频块选择性地启用帧内块复制(IBC)模式。
方法2220包括,在步骤2224,在选择性地启用之后,执行转换。在一些实施例中,其中,当前视频块包括一个或多个子块,并且其中,子块中的至少一个与无效块矢量相关联。
图22D示出了用于视频处理的示例性方法的流程图。方法2230包括,在步骤2232,执行视频的当前图片的当前视频块和视频的比特流表示之间的转换,其中,基于来自预测块的预测,使用帧内块复制模式在比特流表示中表示当前视频块,并且其中,预测块包括具有默认值的像素。
图22E示出了用于视频处理的示例性方法的流程图。方法2240包括,在步骤2242,为使用帧内块复制(IBC)模式编解码的色度视频块,基于邻近色度块的运动矢量或块矢量来推导色度视频块的运动矢量或块矢量。
方法2240包括,在步骤2244,基于该推导,执行色度视频块和视频的比特流表示之间的转换。
图22F示出了用于视频处理的示例性方法的流程图。方法2250包括,在步骤2252,确定当前视频块来自具有内容类型的视频的视频单元。
方法2250包括,在步骤2254,基于该确定,执行当前视频块和视频的比特流表示之间的转换。在一些实施例中,在视频单元级别,在比特流表示中指示内容类型,并且基于规则根据内容类型,编解码工具选择性地可用于该转换。
图22G示出了用于视频处理的示例性方法的流程图。方法2260包括,在步骤2262,为使用三角形分割模式(TPM)编解码的当前视频块,存储当前视频块的至少一个子块的单向预测信息。
方法2260包括,在步骤2264,使用单向预测信息,执行视频的当前视频块和视频的比特流表示之间的转换。
图22H示出了用于视频处理的示例性方法的流程图。方法2270包括,在步骤2272,基于当前视频块的编解码树结构,做出关于对当前视频块选择性地启用编解码模式的决定。
方法2270包括,在步骤2274,基于该决定,执行当前视频块和当前视频块的比特流表示之间的转换。
图22I示出了用于视频处理的示例性方法的流程图。方法2280包括,在步骤2282,基于使用帧内块复制(IBC)模式编解码的视频的当前视频块的尺寸来确定预定义变换。
方法2280包括,在步骤2284,基于该确定,执行当前视频块和视频的比特流表示之间的转换。在一些实施例中,该转换包括在编码期间应用当前视频块的IBC预测和比特流表示中的残差编解码之间的预定义变换,或者在解码期间应用比特流表示中编解码的当前视频块的残差和重构的IBC之间的预定义变换的逆变换。
图22J示出了用于视频处理的示例性方法的流程图。方法2290包括,在步骤2292,对视频的当前视频块有条件地启用当前视频块的利用单向预测的三角形预测模式(TPM)。
方法2290包括,在步骤2294,在有条件地启用之后,执行当前视频块和视频的比特流表示之间的转换。在一些实施例中,TPM包括将当前视频块划分成多个子块,至少一个子块具有非正方形形状。
在一些实施例中,可以实施以下技术解决方案:
A1.一种用于视频处理的方法,包括执行视频的色度分量的当前图片的当前视频块和视频的比特流表示之间的转换,其中比特流表示符合格式规则,并且其中格式规则指定基于对应于当前视频块的一个或多个亮度块是否使用帧内块复制(IBC)模式在比特流表示中编解码,对当前视频块使用IBC模式的指示被选择性地包括在比特流表示中,其中IBC模式包括基于来自当前图片的样点使用当前视频块的预测。
A2.根据解决方案A1所述的方法,还包括接收一个或多个亮度块的第一允许分割结构的指示;以及在接收到第一允许分割的指示之后,接收视频的色度分量的第二允许分割结构的指示。
A3.根据解决方案A1所述的方法,其中,基于对一个或多个亮度块中的至少一个亮度块禁用IBC模式,指示从比特流表示中排除。
A4.根据解决方案A3所述的方法,其中,对一个或多个亮度块中的每一个亮度块禁用IBC模式。
A5.根据解决方案A1所述的方法,其中,当对一个或多个亮度块中的至少一个亮度块启用IBC模式时,指示被包括在比特流表示中。
A6.根据解决方案A1所述的方法,其中,一个或多个亮度块的尺寸是最小编解码单元(CU)尺寸、最小预测单元(PU)尺寸、最小变换单元(TU)尺寸或运动存储或模式存储的单元的尺寸。
A7.根据解决方案A1所述的方法,其中,指示的包括还基于一个或多个亮度块的位置。
A8.根据解决方案A1所述的方法,其中,指示的包括还基于对色度分量的当前图片的邻近块启用IBC模式。
A9.根据解决方案A8所述的方法,其中,邻近块与当前视频块相邻。
A10.根据解决方案A8所述的方法,其中,邻近块与当前视频块不相邻。
A11.根据解决方案A8所述的方法,其中,第一分割结构可允许用于一个或多个亮度块,并且不同于第一分割结构的第二分割结构可允许用于色度分量。
A12.一种用于视频处理的方法,包括为视频的当前视频块确定对当前视频块使用帧内块复制(IBC)模式被禁用或者对应于当前视频块的块矢量无效;基于该确定,使用默认帧内模式生成当前视频块的预测;以及基于该预测,执行当前视频块和视频的比特流表示之间的转换。
A13.根据解决方案A12所述的方法,其中,默认帧内模式由预定的最可能模式(MPM)帧内模式指示。
A14.根据解决方案A13所述的方法,其中,预定的MPM帧内模式是MPM列表中的第一模式。
A15.根据解决方案A13所述的方法,其中,预定的帧内模式是MPM列表中的第一可用模式。
A16.根据解决方案A12所述的方法,其中,默认帧内模式是PLANAR模式、DC模式或残差差分脉冲码调制(RDPCM)模式。
A17.根据解决方案A12所述的方法,其中,默认帧内模式的指示在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行或LCU组中被信令通知。
A18.一种用于视频处理的方法,包括为视频的当前视频块和视频的比特流表示之间的转换,对当前视频块选择性地启用帧内块复制(IBC)模式;以及在选择性地启用之后,执行转换,其中当前视频块包括一个或多个子块,并且其中子块中的至少一个与无效块矢量相关联。
A19.根据解决方案A18所述的方法,其中,对视频的色度分量的当前图片的当前视频块启用IBC模式,并且其中,该方法还包括从对应亮度块或从比特流表示推导对应于色度分量的块矢量。
A20.根据解决方案A18所述的方法,还包括确定对应于与色度分量相关联的亮度块的块矢量不存在;以及基于该确定,将块矢量指定为无效。
A21.一种用于视频处理的方法,包括:执行视频的当前图片的当前视频块和视频的比特流表示之间的转换,其中基于来自预测块的预测,使用帧内块复制模式在比特流表示中表示当前视频块,并且其中预测块包括具有默认值的像素。
A22.根据解决方案A21所述的方法,其中,具有默认值的像素基于当前视频块的子块不可用。
A23.根据解决方案A22所述的方法,其中,对应于子块的块矢量无效或者子块的运动矢量有效。
A24.根据解决方案A22所述的方法,其中,子块的亮度块不使用IBC模式进行编解码。
A25.根据解决方案A22至A24中任一项所述的方法,其中,默认值基于当前视频块的样点的比特深度、先前编解码或解码的图片的一个或多个重构样点、或者邻近块的一个或多个重构样点。
A26.根据解决方案A22至A24中任一项所述的方法,其中,默认值在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、条带头、片组头、编解码树单元(CTU)或编解码单元(CU)中被信令通知。
A27.根据解决方案A21所述的方法,其中,预测块基于由对应于IBC编解码的色度子块的块矢量指示的参考块。
A28.一种用于视频处理的方法,包括为使用帧内块复制(IBC)模式编解码的色度视频块,基于邻近色度块的运动矢量或块矢量来推导色度视频块的运动矢量或块矢量;以及基于该推导,执行色度视频块和视频的比特流表示之间的转换。
A29.根据解决方案A28所述的方法,其中,邻近色度块是左侧邻近块。
A30.根据解决方案A28所述的方法,其中,邻近色度块是上方邻近块。
A31.根据解决方案A28所述的方法,其中,色度视频块的左顶部坐标为(x,y),其中,色度视频块的尺寸为W×H,其中,邻近色度块是覆盖具有坐标(x-1,y+i)的样点的基本块,其中i、W和H是整数,并且其中i的范围从0到2×H。
A32.根据解决方案A28所述的方法,其中,色度视频块的左顶部坐标为(x,y),其中,色度视频块的尺寸为W×H,其中邻近色度块是覆盖具有坐标(x+i,y-1)的样点的基本块,其中i、W和H是整数,并且其中i的范围从0到2×W。
A33.根据解决方案A31或A32所述的方法,其中,基本块是4×4块。
A34.一种用于视频处理的方法,包括确定当前视频块来自具有内容类型的视频的视频单元;以及基于该确定,执行当前视频块和视频的比特流表示之间的转换,其中在视频单元级别,在比特流表示中指示内容类型,并且其中基于规则根据内容类型,编解码工具选择性地可用于该转换。
A35.根据解决方案A34所述的方法,其中,编解码工具包括帧内预测工具。
A36.根据解决方案A35所述的方法,其中,帧内预测工具包括被禁用的位置依赖帧内预测组合(PDPC)工具。
A37.根据解决方案A35所述的方法,其中,帧内预测工具包括被禁用的帧内参考平滑。
A38.根据解决方案A35所述的方法,其中,帧内预测过程包括被禁用的基于矩阵的帧内预测。
A39.根据解决方案A34所述的方法,其中,编解码工具包括帧间预测工具。
A40.根据解决方案A39所述的方法,其中,帧间预测工具包括被禁用的自适应运动矢量精度(AMVR)工具。
A41.根据解决方案A39所述的方法,其中,帧间预测工具包括被禁用的双向光流(BDOF)工具。
A42.根据解决方案A39所述的方法,其中,帧间预测工具包括被禁用的解码器侧运动矢量细化(DMVR)工具。
A43.根据解决方案A34所述的方法,其中,编解码工具包括在去方块过程中对当前视频块应用长抽头滤波器。
A44.根据解决方案A34所述的方法,其中,编解码工具包括被禁用的帧间预测的三角形分割模式(TPM)的融合过程。
A45.根据解决方案A44所述的方法,其中,沿着第一三角形分割和第二三角形分割的边缘应用融合过程。
A46.根据解决方案A44或A45所述的方法,其中,TPM生成对角线分割。
A47.根据解决方案A44或A45所述的方法,其中,TPM生成反对角线分割。
A48.根据解决方案A44或A45所述的方法,其中,用于视频的色度分量和亮度分量的融合过程中的加权线的数量分别为N和M,其中N和M是正整数。
A49.根据解决方案A48所述的方法,其中,N≤7并且M≤3。
A50.根据解决方案A48所述的方法,其中,N=3并且M=3。
A51.根据解决方案A48所述的方法,其中,M和N基于当前视频块中的屏幕内容、当前视频块的形状、当前视频块的色彩格式的指示、包括当前视频块的图片的图片类型、当前视频块的时域层的标识或者在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、变换单元(TU)或预测单元(PU)中信令通知的消息中的至少一个。
A52.根据解决方案A45所述的方法,其中,第一运动补偿块基于第一三角形分割的运动信息来推导,并且第二运动补偿块基于第二三角形分割的运动信息来推导,并且其中融合过程中的第一运动补偿块和第二运动补偿块的一个或多个权重基于第一三角形分割和第二三角形分割的参考索引或运动矢量。
A53.根据解决方案A45所述的方法,其中,边缘是当前视频块的对角线或反对角线。
A54.一种用于视频处理的方法,包括为使用三角形分割模式(TPM)编解码的当前视频块,存储当前视频块的至少一个子块的单向预测信息;以及使用单向预测信息,执行视频的当前视频块和视频的比特流表示之间的转换。
A55.根据解决方案A54所述的方法,其中,TPM将当前视频块分割为分别包括第一运动信息(MvInfo0)和第二运动信息(MvInfo1)的第一分割和第二分割。
A56.根据解决方案A55所述的方法,其中,单向预测信息与MvInfo0和MvInfo1中的一个相同。
A57.根据解决方案A55所述的方法,其中,单向预测信息基于MvInfo0和/或MvInfo1来推导。
A58.根据解决方案A54至A57中任一项所述的方法,其中,至少一个子块包括当前视频块的所有子块。
A59.根据解决方案A54至A57中任一项所述的方法,其中,至少一个子块包括沿着当前视频块的对角线区域或反对角线区域的一个或多个子块。
A60.一种用于视频处理的方法,包括基于当前视频块的编解码树结构,做出关于对当前视频块选择性地启用编解码模式的决定;以及基于该决定,执行当前视频块和当前视频块的比特流表示之间的转换。
A61.根据解决方案A60所述的方法,其中,基于编解码树结构是双编解码树结构,比特流表示包括被推断为假的编解码模式的指示。
A62.根据解决方案A60所述的方法,其中,基于编解码树结构是双编解码树结构,比特流表示排除编解码模式的信令。
A63.根据解决方案A60至A62中任一项所述的方法,其中,编解码模式包括残差差分脉冲码调制(RDPCM)模式。
A64.根据解决方案A60至A62中任一项所述的方法,其中,编解码模式包括跨分量线性模型(CCLM)预测模式。
A65.根据解决方案A60至A62中任一项所述的方法,其中,编解码模式包括量化残差块差分脉冲码调制(QR-BDPCM)。
A66.一种用于视频处理的方法,包括基于使用帧内块复制(IBC)模式编解码的视频的当前视频块的尺寸来确定预定义变换;以及基于该确定,执行当前视频块和视频的比特流表示之间的转换,其中,该转换包括在编码期间应用当前视频块的IBC预测和比特流表示中的残差编解码之间的预定义变换,或者在解码期间应用比特流表示中编解码的当前视频块的残差和重构的IBC之间的预定义变换的逆变换。
A67.根据解决方案A66所述的方法,其中,预定义变换是变换跳过(TS)操作,并且其中尺寸为4×4或大于32×32。
A68.根据解决方案A66所述的方法,其中,预定义变换是离散余弦变换(DCT)。
A69.根据解决方案A66所述的方法,其中,预定义变换是变换跳过(TS)操作,并且其中尺寸为64×64。
A70.根据解决方案A66所述的方法,其中,预定义变换是水平变换,其中基于块的宽度小于或等于第一阈值(T1)且大于第二阈值(T2),预定义变换是变换跳过(TS)操作,否则预定义变换是离散余弦变换(DCT)-II,并且其中T1和T2是整数。
A71.根据解决方案A66所述的方法,其中,预定义变换是垂直变换,其中基于块的高度小于或等于第一阈值(T1)且大于第二阈值(T2),预定义变换是变换跳过(TS)操作,否则预定义变换是离散余弦变换(DCT)-II,并且其中T1和T2是整数。
A72.根据解决方案A70或A71所述的方法,其中,T1=16并且T2=4。
A73.一种用于视频处理的方法,包括对视频的当前视频块有条件地启用当前视频块的利用单向预测的三角形预测模式(TPM);以及在有条件地启用之后,执行当前视频块和视频的比特流表示之间的转换,其中TPM包括将当前视频块划分成多个子块,至少一个子块具有非正方形形状。
A74.根据解决方案A73所述的方法,其中,有条件地启用是基于在比特流表示中信令通知的标志为真,并且其中该标志禁用TPM融合和屏幕内容。
A75.根据解决方案A73所述的方法,其中,对运动存储和/或运动补偿有条件地启用TPM。
A76.根据解决方案A1至A75中任一项所述的方法,其中,执行转换还基于当前视频块中的屏幕内容、当前视频块的形状、当前视频块的色彩格式的指示、包括当前视频块的图片的图片类型、当前视频块的时域层的标识或者在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、变换单元(TU)或预测单元(PU)中信令通知的消息中的至少一个。
A77.根据解决方案A1至A76中任一项所述的方法,其中,执行转换包括从比特流表示生成当前视频块。
A78.根据解决方案A1至A76中任一项所述的方法,其中,执行转换包括从当前视频块生成比特流表示。
A79.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器执行时使得处理器实施解决方案A1至A78中的任何一项中的方法。
A80.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行解决方案A1至A78中的任何一项中方法的程序代码。
在一些实施例中,可以实施以下技术解决方案:
B1.一种用于处理视频的方法,包括为包括色度分量和多个亮度分量的当前视频块,做出关于在比特流表示中选择性地信令通知色度分量的帧内块复制(IBC)模式的指示的决定,其中选择性地信令通知是基于对多个亮度分量中的一个或多个选择的亮度分量启用IBC模式;以及基于该决定,执行当前视频块和当前视频块的比特流表示之间的转换。
B2.根据解决方案B1所述的方法,还包括接收一个或多个选择的亮度分量的第一允许分割结构的至少一个指示;以及在接收到至少一个指示之后,接收色度分量的第二允许分割结构。
B3.根据解决方案B1所述的方法,其中,当对一个或多个选择的亮度分量中的至少一个禁用IBC模式时,该指示不被信令通知。
B4.根据解决方案B3所述的方法,其中,对一个或多个选择的亮度分量中的每一个禁用IBC模式。
B5.根据解决方案B1所述的方法,其中,当对一个或多个选择的亮度分量中的至少一个启用IBC模式时,该指示在比特流表示中被信令通知。
B6.根据解决方案B1所述的方法,其中,一个或多个选择的亮度分量的尺寸是最小编解码单元(CU)、预测单元(PU)或变换单元(TU)尺寸。
B7.根据解决方案B1所述的方法,其中,选择性地信令通知还基于一个或多个选择的亮度分量的位置。
B8.根据解决方案B1所述的方法,其中,选择性地信令通知还基于对当前视频块的邻近块的色度分量启用IBC模式。
B9.根据解决方案B8所述的方法,其中,邻近块与当前视频块相邻。
B10.根据解决方案B8所述的方法,其中,邻近块与当前视频块不相邻。
B11.根据解决方案B8所述的方法,还包括接收一个或多个选择的亮度分量的第一允许分割结构的至少一个指示;以及在接收到至少一个指示之后,接收色度分量的第二允许分割结构。
B12.根据解决方案B1所述的方法,其中,色度分量的块矢量基于多个亮度块的对应亮度块或比特流表示。
B13.一种用于视频处理的方法,包括为使用帧内块复制(IBC)模式编解码的当前视频块,基于当前视频块的子块的可用性来配置预测块;以及基于该配置,执行当前视频块和当前视频块的比特流表示之间的转换。
B14.根据解决方案B13所述的方法,其中,子块不可用,并且其中预测块用默认值填充。
B15.根据解决方案B14所述的方法,其中,子块不包括有效的块矢量或有效的运动矢量。
B16.根据解决方案B14所述的方法,其中,子块的亮度分量不使用IBC模式进行编解码。
B17.根据解决方案B14至B16中任一项所述的方法,其中,默认值基于当前视频块的样点的比特深度、先前编解码或解码的图片的一个或多个重构样点、或者邻近块的一个或多个重构样点。
B18.根据解决方案B14至B16中任一项所述的方法,其中,默认值在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、条带头、片组头、编解码树单元(CTU)或编解码单元(CU)中被信令通知。
B19.根据解决方案B13所述的方法,其中,子块是可用的,并且其中预测块基于由子块的IBC编解码的色度分量的块矢量指示的参考块。
B20.一种用于视频处理的方法,包括为使用帧内块复制(IBC)模式编解码的当前视频块的色度分量,基于邻近视频块的色度分量的运动矢量或块矢量来推导当前视频块的色度分量的运动矢量或块矢量;以及基于该推导,执行当前视频块和当前视频块的比特流表示之间的转换。
B21.根据解决方案B20所述的方法,其中,邻近视频块是左侧邻近块。
B22.根据解决方案B20所述的方法,其中,邻近视频块是上方邻近块。
B23.根据解决方案B20所述的方法,其中,当前视频块的左顶部坐标为(x,y),其中当前视频块的尺寸为W×H,其中邻近视频块是覆盖具有坐标(x-1,y+i)的样点的基本块,其中i、W和H是整数,并且其中i的范围从0到2×H。
B24.根据解决方案B20所述的方法,其中,当前视频块的左顶部坐标为(x,y),其中当前视频块的尺寸为W×H,其中邻近视频块是覆盖具有坐标(x+i,y-1)的样点的基本块,其中i、W和H是整数,并且其中i的范围从0到2×W。
B25.根据解决方案B23或24所述的方法,其中,基本块是4×4块。
B26.一种用于视频处理的方法,包括为当前视频块,做出关于在当前视频块中选择性地启用编解码过程的决定,其中该决定基于当前视频块中的视频内容的指示,并且其中该指示在当前视频块的比特流表示中被信令通知;以及基于该决定,执行当前视频块和当前视频块的比特流表示之间的转换。
B27.根据解决方案B26所述的方法,其中,编解码过程包括帧内预测过程。
B28.根据解决方案B27所述的方法,其中,帧内预测过程包括被禁用的位置依赖帧内预测组合(PDPC)过程。
B29.根据解决方案B27所述的方法,其中,帧内预测过程包括被禁用的帧内参考平滑过程。
B30.根据解决方案B27所述的方法,其中,帧内预测过程包括被禁用的基于矩阵的帧内预测。
B31.根据解决方案B26所述的方法,其中,编解码过程包括帧间预测过程。
B32.根据解决方案B31所述的方法,其中,帧间预测过程包括被禁用的自适应运动矢量精度(AMVR)过程。
B33.根据解决方案B31所述的方法,其中,帧间预测过程包括被禁用的双向光流(BDOF)过程。
B34.根据解决方案B31所述的方法,其中,帧间预测过程包括被禁用的解码器侧运动矢量细化(DMVR)过程。
B35.根据解决方案B26所述的方法,其中,编解码过程包括在去方块过程中对当前视频块应用长抽头滤波器。
B36.一种用于视频处理的方法,包括基于当前视频块的编解码树结构,做出关于对当前视频块选择性地启用编解码模式的决定;以及基于该决定,执行当前视频块和当前视频块的比特流表示之间的转换。
B37.根据解决方案B26所述的方法,其中,编解码树结构是双编解码树结构,并且其中编解码模式被禁用。
B38.根据解决方案B36或37所述的方法,其中,编解码模式包括残差差分脉冲码调制(RDPCM)模式。
B39.根据解决方案B36或37所述的方法,其中,编解码模式包括跨分量线性模型(CCLM)预测模式。
B40.一种用于视频处理的方法,包括基于当前视频块的预测模式是帧内块复制(IBC)模式,做出关于在当前视频块和当前视频块的比特流表示之间的转换期间选择性地启用编解码模式的决定;以及执行当前视频块和当前视频块的比特流表示之间的转换。
B41.根据解决方案B40所述的方法,其中,编解码模式是被启用的变换跳过模式。
B42.根据解决方案B41所述的方法,其中,当前视频块的尺寸为4×4。
B43.根据解决方案B1至B42中任一项所述的方法,其中,执行转换还基于当前视频块中的屏幕内容、当前视频块的形状、当前视频块的色彩格式的指示、包括当前视频块的图片的图片类型、当前视频块的时域层的标识或者在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、变换单元(TU)或预测单元(PU)中信令通知的消息中的至少一个。
B44.一种用于视频处理的方法,包括为当前视频块,确定当前视频块的帧内块复制(IBC)模式被推断为假或者当前视频块的块矢量无效;基于该确定并使用默认帧内模式,生成当前视频块的预测;以及基于该生成,执行当前视频块和当前视频块的比特流表示之间的转换。
B45.根据解决方案B44所述的方法,其中,默认帧内模式是最可能模式(MPM)列表中的第一模式。
B46.根据解决方案B44所述的方法,其中,默认帧内模式是最可能模式(MPM)列表中的第一可用模式。
B47.根据解决方案B44所述的方法,其中,默认帧内模式是PLANAR模式、DC模式或残差差分脉冲码调制(RDPCM)模式。
B48.根据解决方案B44所述的方法,其中,默认帧内模式的指示在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行或LCU组中被信令通知。
B49.一种用于视频处理的方法,包括在当前视频块和当前视频块的比特流表示之间的转换期间,对当前视频块应用预定义变换,其中该应用基于使用帧内块复制(IBC)模式编解码的当前视频块的尺寸。
B50.根据解决方案B49所述的方法,其中,当前视频块的宽度(W)在第一范围内,并且其中预定义变换被应用为水平变换。
B51.根据解决方案B50所述的方法,其中,预定义变换是变换跳过(TS),并且其中T1≤W≤T2。
B52.根据解决方案B49所述的方法,其中,当前视频块的高度(H)在第一范围内,并且其中预定义变换被应用为垂直变换。
B53.根据解决方案B52所述的方法,其中,预定义变换是变换跳过(TS),并且其中T1≤H≤T2。
B54.根据解决方案B51或B53所述的方法,其中,T1=4并且T2=16。
B55.根据解决方案B51或B53所述的方法,其中,T1或T2在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行或LCU组中被信令通知。
B56.根据解决方案B26所述的方法,其中,编解码过程包括被禁用的帧间预测的三角形分割模式(TPM)的融合过程。
B57.根据解决方案B56所述的方法,其中,沿着第一三角形分割和第二三角形分割的边缘应用融合过程。
B58.根据解决方案B56或B57所述的方法,其中,TPM生成对角线分割。
B59.根据解决方案B56或B57所述的方法,其中,TPM生成反对角线分割。
B60.根据解决方案B56或B57所述的方法,其中,当前视频块的色度分量和亮度分量的融合过程中的加权线的数量分别为N和M,其中N和M是正整数。
B61.根据解决方案B60所述的方法,其中,N≤7并且M≤3。
B62.根据解决方案B61所述的方法,其中,N=3并且M=3。
B63.根据解决方案B60所述的方法,其中,M和N基于当前视频块中的屏幕内容、当前视频块的形状、当前视频块的色彩格式的指示、包括当前视频块的图片的图片类型、当前视频块的时域层的标识或者在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、变换单元(TU)或预测单元(PU)中信令通知的消息中的至少一个。
B65.一种用于视频处理的方法,包括为使用几何分割被分割为第一分割和第二分割的当前视频块,确定第一分割和第二分割满足条件;以及通过基于条件选择用于转换的参数,执行当前视频块和当前视频块的比特流表示之间的转换。
B66.根据解决方案B65所述的方法,其中,条件是第一分割的参考索引小于第二分割的参考索引,并且其中用于转换的参数包括用于获得运动预测值的权重。
B67.根据解决方案B65所述的方法,其中,条件是第一分割的运动矢量小于第二分割的运动矢量。
B68.根据解决方案B1至B67中任一项所述的方法,其中,转换包括将当前视频块编码为比特流表示。
B69.根据解决方案B1至B67中任一项所述的方法,其中,转换包括对比特流表示进行解码以生成当前视频块。
B70.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器执行时使得处理器实施解决方案B1至B69中的任何一项中的方法。
B71.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于实施解决方案B1至B69中的任何一项中的方法的程序代码。
图23是视频处理装置2300的框图。装置2300可以用于实施本文描述的一个或多个方法。装置2300可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2300可以包括一个或多个处理器2302、一个或多个存储器2304和视频处理硬件2306。(多个)处理器2302可以被配置为实施本文档中描述的一种或多种方法(包括,但不限于方法2200)。存储器(多个存储器)2304可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2306可以用于在硬件电路系统中实施本文档中描述的一些技术。
在一些实施例中,视频编解码方法可以使用如参考图23所述的在硬件平台上实施的装置来实施。
所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在一个示例中,当启用视频处理工具或模式时,编码器将在视频块的处理中使用或实施该工具或模式,但是不一定基于该工具或模式的使用来修改结果比特流。也就是说,从视频块到视频的比特流表示的转换将使用当视频处理工具或模式基于决定或确定被启用时的视频处理工具或模式。在另一示例中,当视频处理工具或模式被启用时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在一个示例中,当视频处理工具或模式被禁用时,编码器将不会在视频块到视频的比特流表示的转换中使用该工具或模式。在另一个示例中,当视频处理工具或模式被禁用时,解码器将在知道比特流没有被使用基于决定或确定而被禁用的视频处理工具或模式修改的情况下处理比特流。
图24是示出可以在其中实施本文公开的各种技术的示例视频处理系统2400的框图。各种实施方式可以包括系统2400的一些或所有组件。系统2400可以包括用于接收视频内容的输入2402。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入2402可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
系统2400可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件2404。编解码组件2404可以将来自输入2402的视频的平均比特率减小到编解码组件2404的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件2404的输出可以被存储,或者经由如由组件2406表示的通信连接而发送。在输入2402处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件2408用于生成像素值或传送到显示接口2410的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然特定视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)、或高清晰度多媒体接口(HDMI)、或显示端口(Displayport)等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
根据前述内容,将会理解,为了说明的目的,本文已经描述了当前公开的技术的具体实施例,但是在不脱离本发明的范围的情况下,可以进行各种修改。因此,当前公开的技术除了由所附权利要求限定之外不受限制。
本专利文档中描述的主题和功能操作的实施方式可以在各种系统、数字电子电路或计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序产品,即,编码在有形的和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、影响机器可读传播信号的物质组合或它们中的一个或多个的组合。术语“数据处理装置”或“数据处理单元”涵盖用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适于在计算环境中使用的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在一台计算机或位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并产生输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC)。
举例来说,适于执行计算机程序的处理器包括通用微处理器和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合到一个或多个大容量存储设备,以从一个或多个大容量存储设备接收数据或向一个或多个大容量存储设备传送数据,或者两者都包括。然而,计算机不需要这样的设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路来补充或并入其中。
尽管本专利文档包含许多细节,但这些细节不应被解释为对任何发明的范围或可能要求保护的内容的限制,而是对特定发明的特定实施例所特有的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管特征可以在上面被描述为在某些组合中起作用,甚至最初也是这样要求保护的,但是在某些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,尽管在附图中以特定的顺序描述了操作,但是这不应该被理解为要求以所示的特定顺序或顺序执行这些操作,或者执行所有示出的操作,以获得期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应该被理解为在所有实施例中需要这样的分离。
仅描述了一些实施方式和示例,可以基于本专利文档中描述和说明的内容做出其他实施方式、增强和变化。
Claims (80)
1.一种用于视频处理的方法,包括:
执行视频的色度分量的当前图片的当前视频块和视频的比特流表示之间的转换,
其中,所述比特流表示符合格式规则,并且
其中,所述格式规则指定基于对应于当前视频块的一个或多个亮度块是否使用帧内块复制(IBC)模式在比特流表示中编解码,对当前视频块使用IBC模式的指示被选择性地包括在比特流表示中,
其中,所述IBC模式包括基于来自当前图片的样点使用当前视频块的预测。
2.根据权利要求1所述的方法,还包括:
接收一个或多个亮度块的第一允许分割结构的指示;以及
在接收到第一允许分割的指示之后,接收视频的色度分量的第二允许分割结构的指示。
3.根据权利要求1所述的方法,其中,基于对一个或多个亮度块中的至少一个亮度块禁用IBC模式,指示从比特流表示中排除。
4.根据权利要求3所述的方法,其中,对一个或多个亮度块中的每一个亮度块禁用IBC模式。
5.根据权利要求1所述的方法,其中,当对一个或多个亮度块中的至少一个亮度块启用IBC模式时,指示被包括在比特流表示中。
6.根据权利要求1所述的方法,其中,所述一个或多个亮度块的尺寸是最小编解码单元(CU)尺寸、最小预测单元(PU)尺寸、最小变换单元(TU)尺寸或运动存储或模式存储的单元的尺寸。
7.根据权利要求1所述的方法,其中,所述指示的包括还基于一个或多个亮度块的位置。
8.根据权利要求1所述的方法,其中,所述指示的包括还基于对色度分量的当前图片的邻近块启用IBC模式。
9.根据权利要求8所述的方法,其中,所述邻近块与当前视频块相邻。
10.根据权利要求8所述的方法,其中,所述邻近块与当前视频块不相邻。
11.根据权利要求8所述的方法,其中,第一分割结构可允许用于一个或多个亮度块,并且不同于第一分割结构的第二分割结构可允许用于色度分量。
12.一种用于视频处理的方法,包括:
为视频的当前视频块确定对当前视频块使用帧内块复制(IBC)模式被禁用或者对应于当前视频块的块矢量无效;
基于所述确定,使用默认帧内模式生成当前视频块的预测;以及
基于所述预测,执行当前视频块和视频的比特流表示之间的转换。
13.根据权利要求12所述的方法,其中,所述默认帧内模式由预定的最可能模式(MPM)帧内模式指示。
14.根据权利要求13所述的方法,其中,所述预定的MPM帧内模式是MPM列表中的第一模式。
15.根据权利要求13所述的方法,其中,所述预定的帧内模式是MPM列表中的第一可用模式。
16.根据权利要求12所述的方法,其中,所述默认帧内模式是PLANAR模式、DC模式或残差差分脉冲码调制(RDPCM)模式。
17.根据权利要求12所述的方法,其中,默认帧内模式的指示在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行或LCU组中被信令通知。
18.一种用于视频处理的方法,包括:
为视频的当前视频块和视频的比特流表示之间的转换,对当前视频块选择性地启用帧内块复制(IBC)模式;以及
在选择性地启用之后,执行转换,
其中,所述当前视频块包括一个或多个子块,并且
其中,子块中的至少一个与无效块矢量相关联。
19.根据权利要求18所述的方法,其中,对视频的色度分量的当前图片的当前视频块启用IBC模式,并且其中,所述方法还包括:
从对应亮度块或从比特流表示推导对应于色度分量的块矢量。
20.根据权利要求18所述的方法,还包括:
确定对应于与色度分量相关联的亮度块的块矢量不存在;以及
基于所述确定,将块矢量指定为无效。
21.一种用于视频处理的方法,包括:
执行视频的当前图片的当前视频块和视频的比特流表示之间的转换,
其中,基于来自预测块的预测,使用帧内块复制模式在比特流表示中表示当前视频块,并且
其中,所述预测块包括具有默认值的像素。
22.根据权利要求21所述的方法,其中,具有默认值的像素基于当前视频块的子块不可用。
23.根据权利要求22所述的方法,其中,对应于子块的块矢量无效或者子块的运动矢量有效。
24.根据权利要求22所述的方法,其中,所述子块的亮度块不使用IBC模式进行编解码。
25.根据权利要求22至24中任一项所述的方法,其中,所述默认值基于当前视频块的样点的比特深度、先前编解码或解码的图片的一个或多个重构样点、或者邻近块的一个或多个重构样点。
26.根据权利要求22至24中任一项所述的方法,其中,默认值在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、条带头、片组头、编解码树单元(CTU)或编解码单元(CU)中被信令通知。
27.根据权利要求21所述的方法,其中,所述预测块基于由对应于IBC编解码的色度子块的块矢量指示的参考块。
28.一种用于视频处理的方法,包括:
为使用帧内块复制(IBC)模式编解码的色度视频块,基于邻近色度块的运动矢量或块矢量来推导色度视频块的运动矢量或块矢量;以及
基于所述推导,执行色度视频块和视频的比特流表示之间的转换。
29.根据权利要求28所述的方法,其中,所述邻近色度块是左侧邻近块。
30.根据权利要求28所述的方法,其中,所述邻近色度块是上方邻近块。
31.根据权利要求28所述的方法,其中,所述色度视频块的左顶部坐标为(x,y),其中,所述色度视频块的尺寸为W×H,其中,所述邻近色度块是覆盖具有坐标(x-1,y+i)的样点的基本块,其中i、W和H是整数,并且其中i的范围从0到2×H。
32.根据权利要求28所述的方法,其中,所述色度视频块的左顶部坐标为(x,y),其中,所述色度视频块的尺寸为W×H,其中,所述邻近色度块是覆盖具有坐标(x+i,y-1)的样点的基本块,其中i、W和H是整数,并且其中i的范围从0到2×W。
33.根据权利要求31或32所述的方法,其中,所述基本块是4×4块。
34.一种用于视频处理的方法,包括:
确定当前视频块来自具有内容类型的视频的视频单元;以及
基于所述确定,执行当前视频块和视频的比特流表示之间的转换,
其中,在视频单元级别,在比特流表示中指示内容类型,并且
其中,基于规则根据内容类型,编解码工具选择性地可用于所述转换。
35.根据权利要求34所述的方法,其中,所述编解码工具包括帧内预测工具。
36.根据权利要求35所述的方法,其中,所述帧内预测工具包括被禁用的位置依赖帧内预测组合(PDPC)工具。
37.根据权利要求35所述的方法,其中,所述帧内预测工具包括被禁用的帧内参考平滑。
38.根据权利要求35所述的方法,其中,所述帧内预测过程包括被禁用的基于矩阵的帧内预测。
39.根据权利要求34所述的方法,其中,所述编解码工具包括帧间预测工具。
40.根据权利要求39所述的方法,其中,所述帧间预测工具包括被禁用的自适应运动矢量精度(AMVR)工具。
41.根据权利要求39所述的方法,其中,所述帧间预测工具包括被禁用的双向光流(BDOF)工具。
42.根据权利要求39所述的方法,其中,所述帧间预测工具包括被禁用的解码器侧运动矢量细化(DMVR)工具。
43.根据权利要求34所述的方法,其中,所述编解码工具包括在去方块过程中对当前视频块应用长抽头滤波器。
44.根据权利要求34所述的方法,其中,所述编解码工具包括被禁用的帧间预测的三角形分割模式(TPM)的融合过程。
45.根据权利要求44所述的方法,其中,沿着第一三角形分割和第二三角形分割的边缘应用融合过程。
46.根据权利要求44或45所述的方法,其中,所述TPM生成对角线分割。
47.根据权利要求44或45所述的方法,其中,所述TPM生成反对角线分割。
48.根据权利要求44或45所述的方法,其中,用于视频的色度分量和亮度分量的融合过程中的加权线的数量分别为N和M,其中N和M是正整数。
49.根据权利要求48所述的方法,其中,N≤7并且M≤3。
50.根据权利要求48所述的方法,其中,N=3并且M=3。
51.根据权利要求48所述的方法,其中,M和N基于当前视频块中的屏幕内容、当前视频块的形状、当前视频块的色彩格式的指示、包括当前视频块的图片的图片类型、当前视频块的时域层的标识或者在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、变换单元(TU)或预测单元(PU)中信令通知的消息中的至少一个。
52.根据权利要求45所述的方法,其中,第一运动补偿块基于第一三角形分割的运动信息来推导,并且第二运动补偿块基于第二三角形分割的运动信息来推导,并且其中,融合过程中的第一运动补偿块和第二运动补偿块的一个或多个权重基于第一三角形分割和第二三角形分割的参考索引或运动矢量。
53.根据权利要求45所述的方法,其中,所述边缘是当前视频块的对角线或反对角线。
54.一种用于视频处理的方法,包括:
为使用三角形分割模式(TPM)编解码的当前视频块,存储当前视频块的至少一个子块的单向预测信息;以及
使用单向预测信息,执行视频的当前视频块和视频的比特流表示之间的转换。
55.根据权利要求54所述的方法,其中,所述TPM将当前视频块分割为分别包括第一运动信息(MvInfo0)和第二运动信息(MvInfo1)的第一分割和第二分割。
56.根据权利要求55所述的方法,其中,所述单向预测信息与MvInfo0和MvInfo1中的一个相同。
57.根据权利要求55所述的方法,其中,所述单向预测信息基于MvInfo0和/或MvInfo1来推导。
58.根据权利要求54至57中任一项所述的方法,其中,所述至少一个子块包括当前视频块的所有子块。
59.根据权利要求54至57中任一项所述的方法,其中,所述至少一个子块包括沿着当前视频块的对角线区域或反对角线区域的一个或多个子块。
60.一种用于视频处理的方法,包括:
基于当前视频块的编解码树结构,做出关于对当前视频块选择性地启用编解码模式的决定;以及
基于所述决定,执行当前视频块和当前视频块的比特流表示之间的转换。
61.根据权利要求60所述的方法,其中,基于编解码树结构是双编解码树结构,比特流表示包括被推断为假的编解码模式的指示。
62.根据权利要求60所述的方法,其中,基于编解码树结构是双编解码树结构,比特流表示排除编解码模式的信令。
63.根据权利要求60至62中任一项所述的方法,其中,所述编解码模式包括残差差分脉冲码调制(RDPCM)模式。
64.根据权利要求60至62中任一项所述的方法,其中,所述编解码模式包括跨分量线性模型(CCLM)预测模式。
65.根据权利要求60至62中任一项所述的方法,其中,所述编解码模式包括量化残差块差分脉冲码调制(QR-BDPCM)。
66.一种用于视频处理的方法,包括:
基于使用帧内块复制(IBC)模式编解码的视频的当前视频块的尺寸来确定预定义变换;以及
基于所述确定,执行当前视频块和视频的比特流表示之间的转换,其中,所述转换包括:
在编码期间应用当前视频块的IBC预测和比特流表示中的残差编解码之间的预定义变换,或者
在解码期间应用比特流表示中编解码的当前视频块的残差和重构的IBC之间的预定义变换的逆变换。
67.根据权利要求66所述的方法,其中,所述预定义变换是变换跳过(TS)操作,并且其中,所述尺寸为4×4或大于32×32。
68.根据权利要求66所述的方法,其中,所述预定义变换是离散余弦变换(DCT)。
69.根据权利要求66所述的方法,其中,所述预定义变换是变换跳过(TS)操作,并且其中,所述尺寸为64×64。
70.根据权利要求66所述的方法,其中,所述预定义变换是水平变换,其中基于块的宽度小于或等于第一阈值(T1)且大于第二阈值(T2),预定义变换是变换跳过(TS)操作,否则预定义变换是离散余弦变换(DCT)-II,并且其中T1和T2是整数。
71.根据权利要求66所述的方法,其中,所述预定义变换是垂直变换,其中基于块的高度小于或等于第一阈值(T1)且大于第二阈值(T2),预定义变换是变换跳过(TS)操作,否则预定义变换是离散余弦变换(DCT)-II,并且其中T1和T2是整数。
72.根据权利要求70或71所述的方法,其中,T1=16并且T2=4。
73.一种用于视频处理的方法,包括:
对视频的当前视频块有条件地启用当前视频块的利用单向预测的三角形预测模式(TPM);以及
在有条件地启用之后,执行当前视频块和视频的比特流表示之间的转换,
其中,所述TPM包括将当前视频块划分成多个子块,至少一个子块具有非正方形形状。
74.根据权利要求73所述的方法,其中,所述有条件地启用是基于在比特流表示中信令通知的标志为真,并且其中,所述标志禁用TPM融合和屏幕内容。
75.根据权利要求73所述的方法,其中,对运动存储和/或运动补偿有条件地启用TPM。
76.根据权利要求1至75中任一项所述的方法,其中,执行转换还基于当前视频块中的屏幕内容、当前视频块的形状、当前视频块的色彩格式的指示、包括当前视频块的图片的图片类型、当前视频块的时域层的标识或者在解码器参数集(DPS)、视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、变换单元(TU)或预测单元(PU)中信令通知的消息中的至少一个。
77.根据权利要求1至76中任一项所述的方法,其中,执行转换包括从比特流表示生成当前视频块。
78.根据权利要求1至76中任一项所述的方法,其中,执行转换包括从当前视频块生成比特流表示。
79.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器实施根据权利要求1至78中任一项所述的方法。
80.一种存储在非暂时性计算机可读介质上的计算机程序产品,所述计算机程序产品包括用于执行根据权利要求1至78中任一项所述方法的程序代码。
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2019/087235 | 2019-05-16 | ||
CN2019087235 | 2019-05-16 | ||
CNPCT/CN2019/087993 | 2019-05-22 | ||
CN2019087993 | 2019-05-22 | ||
CNPCT/CN2019/090265 | 2019-06-06 | ||
CN2019090265 | 2019-06-06 | ||
CNPCT/CN2019/092153 | 2019-06-20 | ||
CN2019092153 | 2019-06-20 | ||
CN2019092833 | 2019-06-25 | ||
CNPCT/CN2019/092833 | 2019-06-25 | ||
CNPCT/CN2019/095158 | 2019-07-08 | ||
CN2019095158 | 2019-07-08 | ||
PCT/US2020/033134 WO2020232355A1 (en) | 2019-05-16 | 2020-05-15 | Intra block copy for screen content coding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113826390A true CN113826390A (zh) | 2021-12-21 |
CN113826390B CN113826390B (zh) | 2024-03-08 |
Family
ID=73289262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080036494.2A Active CN113826390B (zh) | 2019-05-16 | 2020-05-15 | 屏幕内容编解码的帧内块复制 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113826390B (zh) |
WO (1) | WO2020232355A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125442A (zh) * | 2022-01-29 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 屏幕视频编码模式确定方法、编码方法、装置和计算设备 |
WO2024015113A1 (en) * | 2022-07-13 | 2024-01-18 | Tencent America LLC | Weight derivation of multiple reference line for intra prediction fusion |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3709643A1 (en) * | 2019-03-11 | 2020-09-16 | InterDigital VC Holdings, Inc. | Intra prediction mode partitioning |
WO2022256353A1 (en) * | 2021-05-31 | 2022-12-08 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices for geometric partition mode with motion vector refinement |
US11876978B2 (en) * | 2021-08-31 | 2024-01-16 | Tencent America LLC | Intra prediction mode information propagation for geometric partition mode with IBC and intra prediction |
WO2023040968A1 (en) * | 2021-09-15 | 2023-03-23 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
WO2023246893A1 (en) * | 2022-06-22 | 2023-12-28 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
WO2024012533A1 (en) * | 2022-07-15 | 2024-01-18 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
WO2024046479A1 (en) * | 2022-09-03 | 2024-03-07 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for video processing |
WO2024081261A1 (en) * | 2022-10-10 | 2024-04-18 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices with intra block copy |
WO2024078630A1 (en) * | 2022-10-14 | 2024-04-18 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for video processing |
US20240129454A1 (en) * | 2022-10-17 | 2024-04-18 | Tencent America LLC | Boundary filtering on intrabc and intratmp coded blocks |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104322064A (zh) * | 2012-04-16 | 2015-01-28 | 韩国电子通信研究院 | 编码方法和解码方法以及使用其的设备 |
CN105556963A (zh) * | 2013-10-14 | 2016-05-04 | 联发科技(新加坡)私人有限公司 | 用于hevc范围扩展的残差差分脉冲编码调制方法 |
CN106416245A (zh) * | 2014-06-19 | 2017-02-15 | 高通股份有限公司 | 用于块内复制的系统和方法 |
US20170099490A1 (en) * | 2015-10-02 | 2017-04-06 | Qualcomm Incorporated | Constrained intra-prediction for block copy mode |
CN107646195A (zh) * | 2015-06-08 | 2018-01-30 | Vid拓展公司 | 用于屏幕内容编码的帧内块复制模式 |
CN109743576A (zh) * | 2018-12-28 | 2019-05-10 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2843946A4 (en) * | 2012-04-25 | 2016-01-20 | Samsung Electronics Co Ltd | MULTILOSYVIEW VIDEO COORDINATION METHOD USING A REFERENCE FILMS FOR MULTILOOK VIEW VIEW AND DEVICE THEREFOR, AND MULTIPLE VIDEO VIDEO CODING METHODS USING A REFERENCE FILMS FOR MULTILOOK VIEWS AND METHOD THEREFOR |
US9351005B2 (en) * | 2012-09-24 | 2016-05-24 | Qualcomm Incorporated | Bitstream conformance test in video coding |
KR102257269B1 (ko) * | 2013-10-14 | 2021-05-26 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐 |
US9832467B2 (en) * | 2014-10-07 | 2017-11-28 | Qualcomm Incorporated | Deblock filtering for intra block copying |
US20170105014A1 (en) * | 2015-10-08 | 2017-04-13 | Qualcomm Incorporated | Luma-driven chroma scaling for high dynamic range and wide color gamut contents |
-
2020
- 2020-05-15 CN CN202080036494.2A patent/CN113826390B/zh active Active
- 2020-05-15 WO PCT/US2020/033134 patent/WO2020232355A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104322064A (zh) * | 2012-04-16 | 2015-01-28 | 韩国电子通信研究院 | 编码方法和解码方法以及使用其的设备 |
CN105556963A (zh) * | 2013-10-14 | 2016-05-04 | 联发科技(新加坡)私人有限公司 | 用于hevc范围扩展的残差差分脉冲编码调制方法 |
CN106416245A (zh) * | 2014-06-19 | 2017-02-15 | 高通股份有限公司 | 用于块内复制的系统和方法 |
CN107646195A (zh) * | 2015-06-08 | 2018-01-30 | Vid拓展公司 | 用于屏幕内容编码的帧内块复制模式 |
US20170099490A1 (en) * | 2015-10-02 | 2017-04-06 | Qualcomm Incorporated | Constrained intra-prediction for block copy mode |
CN109743576A (zh) * | 2018-12-28 | 2019-05-10 | 杭州海康威视数字技术股份有限公司 | 编码方法、解码方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125442A (zh) * | 2022-01-29 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 屏幕视频编码模式确定方法、编码方法、装置和计算设备 |
WO2024015113A1 (en) * | 2022-07-13 | 2024-01-18 | Tencent America LLC | Weight derivation of multiple reference line for intra prediction fusion |
Also Published As
Publication number | Publication date |
---|---|
WO2020232355A1 (en) | 2020-11-19 |
CN113826390B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113826390B (zh) | 屏幕内容编解码的帧内块复制 | |
CN114026859B (zh) | 在变换跳过模式中修改量化参数的技术 | |
CN113056916B (zh) | 基于子块的运动候选的选择和信令 | |
CN113950836B (zh) | 基于矩阵的帧内预测的上下文确定 | |
WO2021027776A1 (en) | Buffer management in subpicture decoding | |
CN114208174B (zh) | 预测过程中的调色板模式编解码 | |
WO2021073631A1 (en) | Interplay between subpictures and in-loop filtering | |
TW201743619A (zh) | 在視訊寫碼中適應性迴路濾波中之多個濾波器之混淆 | |
CN114641997B (zh) | 基于颜色分量的语法信令通知和解析 | |
US12041223B2 (en) | Chroma intra mode derivation in screen content coding | |
CN114208185B (zh) | 预测处理中调色板模式的模式确定 | |
US11765367B2 (en) | Palette mode with intra block copy prediction | |
CN114145018B (zh) | 调色板模式的量化处理 | |
WO2021063421A1 (en) | Syntax for subpicture signaling in a video bitstream | |
CN113475077B (zh) | 调色板模式使用指示的独立编解码 | |
CN114342408A (zh) | 视频编码中帧内编码模式的扩展 | |
CN113841402A (zh) | 视频编解码中大块的变换设计 | |
CN113615188B (zh) | 调色板模式使用指示的联合编解码 | |
CN113678448B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |