CN115606177A - 在跨分量视频编解码中使用相邻样点 - Google Patents
在跨分量视频编解码中使用相邻样点 Download PDFInfo
- Publication number
- CN115606177A CN115606177A CN202180023235.0A CN202180023235A CN115606177A CN 115606177 A CN115606177 A CN 115606177A CN 202180023235 A CN202180023235 A CN 202180023235A CN 115606177 A CN115606177 A CN 115606177A
- Authority
- CN
- China
- Prior art keywords
- samples
- neighboring
- sample
- video
- luma
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/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/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/117—Filters, e.g. for pre-processing or post-processing
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种视频处理的方法,包括:对于视频的视频块与视频的比特流之间的转换,根据次序来确定所选相邻样点列表,其中,该次序指定上相邻样点在左相邻样点之前被添加到所选相邻样点列表中;以及基于跨分量线性模型来执行转换,其中,该跨分量线性模型的参数是使用基于来自所选相邻样点列表的样点的推导方法推导出的。
Description
相关申请的交叉引用
根据适用的专利法和/或根据《巴黎公约》的规则,本申请是为了及时要求于2020年3月21日提交的国际专利申请No.PCT/CN2020/080535和于2020年3月29日提交的国际专利申请No.PCT/CN2020/081958的优先权和权益而做出的。就法律指定的所有目的而言,上述申请的全部公开内容通过引用并入本文作为本申请公开内容的一部分。
技术领域
本文件与视频和图像编解码(coding)技术相关。
背景技术
数字视频占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。
发明内容
所公开的技术可以由视频或图像解码器或编码器实施例使用,以使用跨分量(cross-component)线性模型预测来执行编码或解码。
在一个示例方面,公开了一种处理视频的方法。该方法包括:对于视频的色度块与视频的编解码表示之间的转换,通过使用下采样的共位(collocated)相邻顶部亮度样点来推导跨分量线性模型的参数,该下采样的共位相邻顶部亮度样点是使用下采样滤波器根据共位亮度块的N条上相邻线(line)生成的,其中N是正整数;以及使用预测的色度块来执行转换,该预测的色度块是使用跨分量线性模型生成的。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,根据次序确定所选相邻样点列表,其中,该次序指定上相邻样点在左相邻样点之前被添加到所选相邻样点列表;以及基于该跨分量线性模型来执行该转换,其中,该跨分量线性模型的参数是使用基于来自所选相邻样点列表的样点的推导方法推导出的。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,通过使用具有索引值的下采样的上相邻亮度样点来推导跨分量线性模型的参数,该索引值在基于用于推导跨分量线性模型的左相邻色度样点的数量和上相邻色度样点的数量确定的范围内;以及基于跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,通过使用视频块的三行上相邻亮度样点来推导跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,通过使用视频块的T1行和T2列左上相邻亮度样点来推导跨分量线性模型的参数,其中,T1和T2是整数;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,通过使用上相邻亮度样点的行的数量来推导跨线性分量模型的参数,其中,该数量取决于指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移的语法元素;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,基于指定是否和/或如何填充左上相邻样点取决于左上相邻样点中的至少一个的可用性而不是左上相邻样点和/或上相邻样点的可用性的规则来推导跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,基于指定在推导参数的过程中是否使用左上相邻亮度样点取决于左上相邻亮度样点的可用性的规则来推导跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,基于指定在推导参数的过程中是否和/或如何使用和/或填充左上相邻亮度样点取决于左上相邻亮度样点、左相邻亮度样点和/或顶部相邻亮度样点的可用性的规则来推导跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,基于指定是否检查左上相邻亮度样点的可用性和/或是否使用和/或是否填充左上相邻亮度样点取决于视频的色度颜色格式的规则来推导跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,基于指定是否填充左上相邻亮度样点和/或要填充哪个样点取决于语法元素的规则来推导跨分量线性模型的参数,该语法元素指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,基于指定在顶部相邻亮度样点和/或左相邻亮度样点不可用的情况下,使用视频块的最顶部相邻样点和/或最左相邻样点推导顶部相邻亮度样点和/或左相邻亮度样点,来推导跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行该转换。
在一个示例方面,公开了一种处理视频的方法。该方法包括,对于视频的视频块与视频的比特流之间的转换,通过根据预定的次序填充顶部相邻样点、左相邻样点和左上相邻样点,来推导跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行该转换。
在另一个示例方面,上述方法可以由包括处理器的视频编码器装置来实现。
在又一个示例方面,这些方法可以以处理器可执行指令的形式来实现,并且存储在计算机可读程序介质上。
本文档中还描述了这些和其他方面。
附图说明
图1A示出了图片中4:2:2亮度和色度样点的标称垂直和水平位置。
图1B示出了视频编码器的示例。
图2示出了67种帧内预测模式的示例。
图3示出了水平和垂直遍历扫描(traverse scan)的示例。
图4示出了用于推导α和β的样点的位置的示例。
图5示出了将4x8样点的块划分为两个可独立解码区域的示例。
图6示出了利用垂直预测量(predictor)处理像素行以最大化4xN块的吞吐量的次序的示例。
图7示出了低频不可分变换(low-Frequency Non-Separable Transform,LFNST)过程的示例。
图8示出了在推导4:2:2视频的CCLM参数时使用的相邻色度样点和下采样的共位相邻亮度样点的示例。
图9示出了视频处理装置的示例。
图10示出了视频编码器的框图。
图11是视频处理方法的示例的流程图。
图12是视频处理系统的示例的框图。
图13示出了当前块中的样点和要使用的左上样点(蓝圈)的示例。
图14是示出视频编解码系统的示例的框图。
图15是示出根据本公开的一些实施例的编码器的框图。
图16是示出根据本公开的一些实施例的解码器的框图。
图17A至图17L示出了基于所公开技术的一些实现方式的示例方法的流程图。
具体实施方式
本文档提供了图像或视频比特流的解码器可以使用各种技术来改进解压缩或解码的数字视频或图像的质量。为简洁起见,本文使用的术语“视频”包括图片序列(传统上称为视频)和单个图像。此外,视频编码器还可以在编码过程中实现这些技术,以便重构用于进一步编码的解码的帧。
为了便于理解,在本文档中使用了章节标题,但是不将实施例和技术限制到对应的章节。这样,来自一个章节的实施例可以与来自其他章节的实施例相组合。
1.简要概述
本发明与视频编解码技术相关。具体地,它与图像/视频编解码中的跨分量线性模型预测和其他编解码工具相关。它可以应用于现有的视频编解码标准(如HEVC)、或即将要定案的标准(例如,多功能视频编码(VCC))。它还可以应用于未来的视频编解码标准或视频编解码器。
2.背景技术
视频编解码标准主要通过公知的ITU-T和ISO/IEC标准的发展而演进。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4Visual,并且这两个组织联合制定了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索小组(JVET)。此后,JVET已经采用了多种新方法,并将其放入名为联合探索模型(JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家组(JVET)成立,以致力于VVC标准,目标是与HEVC相比比特率降低50%。
2.1.颜色空间和色度子采样
颜色空间(也被称为颜色模型(或颜色系统))是抽象数学模型,它简单地将颜色的范围描述为数字的元组,通常为3或4个值或颜色分量(例如,RGB)。基本上来说,颜色空间是对坐标系统和子空间的详细阐述。
对于视频压缩,最常使用的颜色空间是YCbCr和RGB。
YcbCr、Y′CbCr或Y Pb/Cb Pr/Cr(也写作YCBCR或Y'CBCR)是用作视频和数字拍摄系统中彩色图像管道(pipeline)一部分的颜色空间族。Y′是亮度分量,CB和CR是蓝差和红差色度分量。Y′(带上标)区别于Y,其是亮度(luminance),意味着光强度是基于伽马校正的RGB原色被非线性编码的。
色度子采样是通过对色度信息实现比对亮度信息的分辨率更低的分辨率来对图像进行编码的实践,这利用了人类视觉系统对颜色差异的敏感度低于对亮度的敏感度。
2.1.1. 4:4:4
三个Y'CbCr分量中的每一个都具有相同的采样率,因此不存在色度子采样。这种方案有时用于高端电影扫描器(film scanner)和电影后期制作(cinematic postproduction)。
2.1.2. 4:2:2
两个色度分量以亮度的采样率的一半被采样:水平色度分辨率减半,而垂直色度分辨率不变。这使未压缩的视频信号的带宽减少了三分之一,而几乎没有视觉差。VVC工作草案中的图1A描述了4:2:2颜色格式的标称垂直和水平位置的示例。
2.1.3. 4:2:0
在4:2:0中,与4:1:1相比,水平采样翻倍,但由于在这种方案中,Cb和Cr通道只在每个交替的线(line)上被采样,因此垂直分辨率减半。因此,数据率是相同的。Cb和Cr各自在水平和垂直方向上都以为2的因子被子采样。4:2:0方案有三种变体,具有不同的水平和垂直定位(siting)。
·在MPEG-2中,Cb和Cr在水平方向上是共址的(cosite/co-site)。Cb和Cr在垂直方向上位于像素之间(位于像素的间隙中)。
·在JPEG/JFIF、H.261和MPEG-1中,Cb和Cr位于交替的亮度样点之间的空隙中间。
·在4:2:0DV中,Cb和Cr在水平方向上是共址的。在垂直方向上,它们共址于交替的线上。
表2-1.从chroma_format_idc和separate_colour_plane_flag推导出的SubWidthC和SubHeightC值
2.2.典型视频编解码器的编解码流程
图1B示出了VVC的编码器框图的示例,其包含三个环内滤波块:去块滤波器(DF)、样点自适应偏移(SAO)和ALF。与使用预定义滤波器的DF不同,SAO和ALF利用当前图片的原始样点,以分别通过增加偏移和通过应用有限脉冲响应(FIR)滤波器来减少原始样点和重构样点之间的均方误差,其中以经编解码的边信息来信令通知偏移和滤波器系数。ALF位于每个图片的最后一个处理阶段,并且可以被视为试图捕捉和修复先前阶段所产生的伪影(artifact)的工具。
2.3.具有67种帧内预测模式的帧内模式编解码
为了捕获自然视频中呈现的任意边缘方向,定向帧内模式的数量从HEVC中使用的33种扩展到65种。附加的定向模式在图2中被描绘为红色虚线箭头,而平面和DC模式保持不变。这些更密集的定向帧内预测模式适用于所有的块尺寸,并且适用于亮度帧内预测和色度帧内预测两者。
如图2所示,传统的角度帧内预测方向被定义为顺时针方向的45度到-135度。在VTM中,若干个传统的角度帧内预测模式被适应性地替换为用于非方形块的广角帧内预测模式。经替换的模式使用原始的方法来信令通知,并且在解析后被重新映射到广角模式的索引。帧内预测模式的总数没有改变,即,67个,并且帧内模式编解码也没有改变。
在HEVC中,每一个经帧内编解码的块都是方形的,其每条边的长度都是2的幂。因此,使用DC模式生成帧内预测量不需要除法操作。在VVC中,在一般情况下,块可以具有使得每个块必须使用除法操作的矩形形状。为了避免DC预测的除法操作,对于非方形块,仅用较长的边来计算平均。
图2示出了67中帧内预测模式的示例。
2.4.帧间预测
对于每个帧间预测的CU,由运动向量、参考图片索引和参考图片列表使用索引组成的运动参数,以及VVC的新编解码特征所需的附加信息将用于帧间预测的样点生成。运动参数可以以显式或隐式的方式来信令通知。当CU以跳过模式被编解码时,该CU与一个PU相关联,并且不存在显著的残差系数、经编解码的运动向量增量或参考图片索引。指定Merge模式,由此从相邻CU获得当前CU的运动参数,包括空域和时域候选以及VVC中引入的附加调度(schedule)。Merge模式可以应用于任何帧间预测的CU,而不仅应用于跳过模式。Merge模式的备选方案是运动参数的显式传输,其中每个CU显式地信令通知运动向量、每个参考图片列表的对应的参考图片索引、以及参考图片列表使用标志和其他所需信息。
2.5.帧内块复制(IBC)
帧内块复制(IBC)是在SCC上的HEVC扩展中采用的工具。众所周知,其能显著提高屏幕内容材料的编解码效率。由于IBC模式是作为块级编解码模式实现的,所以在编码器处执行块匹配(BM),以为每个CU找到最佳的块向量(或运动向量)。这里,块向量用于指示从当前块到参考块的位移,该参考块已经在当前图片中被重构。IBC编解码的CU的亮度块向量是整数精度的。色度块向量也舍入到整数精度。当与AMVR相组合时,IBC模式可以在1像素(-pel)和4像素运动向量精度之间切换。IBC编解码的CU被视为除帧内预测模式或帧间预测模式外的第三种预测模式。IBC模式适用于宽度和高度两者都小于或等于64个亮度样点的CU。
在编码器侧,对IBC执行基于哈希的运动估计。编码器对宽度或高度之一不大于16个亮度样点的块执行RD检查。对于非Merge模式,首先使用基于哈希的搜索执行块向量搜索。如果哈希搜索没有返回有效的候选,则将执行基于块匹配的局部搜索。
在基于哈希值的搜索中,当前块和参考块之间的哈希密钥匹配(32比特CRC)被扩展到所有允许的块尺寸。当前图片中每一个位置的哈希密钥计算是基于4x4子块的。对于较大尺寸的当前块,当所有4×4子块的哈希密钥与对应的参考位置中的哈希密钥相匹配时,确定哈希密钥与参考块的哈希密钥相匹配。如果找到多个参考块的哈希密钥与当前块的哈希密钥相匹配,则计算每个匹配的参考的块向量成本,并且选择成本最低的一个。
在块匹配搜索中,搜索范围被设置为涵盖之前和当前的CTU。
在CU级,IBC模式用标志来信令通知,并且其可以作为IBC AMVP模式或IBC跳过/Merge模式来信令通知,如下所示:
-IBC跳过/Merge模式:Merge候选索引用于指示列表中来自相邻候选IBC编解码的块的哪个块向量被用于预测当前块。Merge列表由空域、HMVP和成对的候选组成。
-IBC AMVP模式:块向量差以与运动向量差相同的方式被编解码。块向量预测方法使用两个候选者作为预测量,一个来自左邻居,一个来自上邻居(如果是IBC编码的)。当任何一个邻居都不可用时,将使用默认的块向量作为预测量。信令通知标志以指示块向量预测量索引。
2.6.调色板模式
对于调色板模式信令,调色板模式被编解码为编解码单元的预测模式,即,编解码单元的预测模式可以是MODE_INTRA、MODE_INTER、MODE_IBC和MODE_PLT。如果利用了调色板模式,则CU中的像素值由代表性颜色值的小集合来表示。这个集合被称为调色板。对于值接近调色板颜色的像素,信令通知调色板索引。对于调色板外的像素,用跳出(escape)符号表示该像素,并且直接信令通知经量化的像素值。
为了解码调色板编码的块,解码器需要解码调色板颜色和索引。调色板颜色由调色板表来描述,并且由调色板表编解码工具来编码。为每个CU信令通知跳出标志,以指示当前CU中是否存在跳出符号。如果跳出符号存在,则调色板表累加一,并且最后的索引被分配给跳出模式。CU中所有像素的调色板索引形成调色板索引图,并且由调色板索引图编解码工具进行编码。
对于调色板索引图的编解码,需要维护调色板预测量。调色板预测量在每个条带的起始处被初始化,预测量被重置为0。对于调色板预测量中的每个条目,信令通知重用标志以指示它是否是当前调色板的一部分。使用为零的游程长度(run-length)编解码来发送重用标志。在此之后,使用0阶的索引哥伦布(Golomb)码来信令通知新调色板条目的数量。最后,信令通知新调色板条目的分量值。在对当前CU进行编码后,调色板预测量将使用当前调色板来更新,并且来自先前调色板预测量的未在当前调色板中重用的条目将被添加到新调色板预测量的末尾,直到达到允许的最大尺寸(调色板填充(palette stuffing))。
对于调色板索引图的编解码,如图3所示,使用水平和垂直遍历扫描来对索引进行编解码。使用palette_transpose_flag在比特流中显式地信令通知扫描次序。
图3示出了水平遍历扫描和垂直遍历扫描的示例。
调色板索引使用两种主要的调色板采样模式来编解码:“INDEX”和“COPY_ABOVE”。除了在使用水平扫描时的顶行、在使用垂直扫描时的第一列、或者当先前的模式是“COPY_ABOVE”时,使用标志来信令通知该模式。在“COPY_ABOVE”模式下,复制上行中的样点的调色板索引。在“INDEX”模式下,显式地信令通知调色板索引。对于“INDEX”模式和“COPY_ABOVE”模式两者,信令通知游程(run)值,该游程值指定使用相同模式编解码的像素数。
索引图(index map)的编码次序如下:首先,信令通知CU的索引值的数量。然后使用截断二进制编解码信令通知整个CU的实际索引值。索引的数量和索引值两者都是以旁路模式编解码的。这将索引相关的旁路分组到一起。然后,以交错的方式信令通知调色板模式(INDEX或COPY_ABOVE)和游程。最后,与整个CU的跳出样点相对应的分量跳出值被分组到一起并以旁路模式进行编解码。在信令通知索引值之后,信令通知附加的语法元素last_run_type_flag。这个语法元素与索引的数量相结合,消除了信令通知块中最后一个游程所对应的游程值的需要。
在VTM中,为I条带启用了双树,其针对亮度和色度分离了编解码单元分割。因此,在这个提案中,调色板被分别应用于亮度(Y分量)和色度(Cb和Cr分量)。如果禁用了双树,则调色板将被联合应用于Y、Cb、Cr分量,与HEVC调色板相同。
2.7.跨分量线性模型预测
在VVC中使用跨分量线性模型(CCLM)预测模式,对于该模式,通过使用以下线性模型,基于同一CU的重构亮度样点来预测色度样点:
predC(i,j)=α·recL′(i,j)+β (2-1)
其中predC(i,j)表示CU中的预测色度样点,并且recL(i,j)表示同一CU的下采样的重构亮度样点。
图4示出了LM模式中涉及的左样点和上样点的位置以及当前块的样点的示例。
图4示出了用于推导α和β的样点的位置的示例。
除了在LM模式下上模板和左模板可以一起用于计算线性模型的系数外,它们也可以在其他两种LM模式(即LM_A和LM_L模式)下交替使用。在LM_A模式下,仅上模板用于计算线性模型系数。为了获取更多的样点,上模板被扩展为(W+H)。在LM_L模式下,仅左模板用于计算线性模型系数。为了获取更多的样点,左模板被扩展到(H+W)。对于非方形块,上模板被扩展到W+W,左模板被扩展到H+H。
CCLM的参数(α和β)是利用最多四个相邻色度样点和它们对应的下采样的亮度样点推导出的。假设当前的色度块维度是W×H,那么W’和H’被设置为:
–当应用LM模式时,W’=W,H’=H;
–当应用LM-A模式时,W’=W+H;
–当应用LM-L模式时,H’=H+W;
上相邻位置表示为S[0,-1]…S[W’-1,-1],左相邻位置表示为S[-1,0]…S[-1,H’-1]。然后,四个样点被选择为:
–当应用LM模式且上相邻样点和左相邻样点两者都可用时,S[W’/4,-1]、S[3W’/4,-1]、S[-1,H’/4]、S[-1,3H’/4];
–当应用LM-A模式或者仅上相邻样点可用时,S[W’/8,-1]、S[3W’/8,-1]、S[5W’/8,-1]、S[7W’/8,-1];
–当应用LM-L模式或仅左相邻样点可用时,S[-1,H’/8]、S[-1,3H’/8]、S[-1,5H’/8]、S[-1,7H’/8];
对所选位置处的四个相邻亮度样点进行下采样,并进行四次比较,以找出两个较小的值:x0 A和x1 A,以及两个较大的值:x0 B和x1 B。它们的对应色度样点值表示为y0 A、y1 A、y0 B和y1 B。然后xA、xB、yA和yB被如下推导出:
Xa=(x0 A+x1 A+1)>>1;Xb=(x0 B+x1 B+1)>>1;Ya=(y0 A+y1 A+1)>>1;Yb=(y0 B+y1 B+1)>>1(2-2)
最后,根据以下公式获得线性模型参数α和β。
β=Yb-α·Xb (2-4)
用于计算参数α的除法操作是利用查找表来实现的。为了减少存储表所需的内存,diff(差)值(最大值和最小值之差)和参数α用指数表示法来表示。例如,diff用4比特有效部分和指数来近似表示。因此,1/diff的表被缩减为16个有效比特(significand)的值的16个元素,如下所示:
DivTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (2-5)
这样做的好处是既能降低计算的复杂度,又能减少存储所需表的内存大小。
为了匹配4:2:0视频序列的色度样点位置,向亮度样点应用两种类型的下采样滤波器,以实现水平方向和垂直方向两者上的2比1下采样率。对下采样滤波器的选择由SPS级标志来指定。两种下采样滤波器如下,分别对应于“类型0”和“类型2”内容。
注意,当上参考线在CTU边界处时,仅一条亮度线(帧内预测中的一般线缓冲)用于形成下采样的亮度样点。
这样的参数计算是作为解码过程的一部分来执行的,而不仅是作为编码器搜索操作。因此,没有使用语法来向解码器传达α值和β值。
对于色度帧内模式编解码,总共允许8种帧内模式用于色度帧内模式编解码。这些模式包括5种传统的帧内模式和3种跨分量线性模式(LM、LM_A和LM_L)。表2-2示出了色度模式信令和推导过程。色度模式编解码直接取决于对应的亮度块的帧内预测模式。由于在I条带中启用用于亮度和色度的分离的块分割结构,因此一个色度块可以对应多个亮度块。因此,对于色度DM模式,直接继承覆盖当前色度块的中心位置的对应的亮度块的帧内预测模式。
表2-2.当启用cclm_is时从亮度模式推导色度预测模式
JVET-Q2001-vE中INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC);
–指定变换块的宽度的变量nTbW,
–指定变换块的高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=-1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=-1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置为(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–变量availTL被如下推导出:
availTL=availL&&availT (352)
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW-1,直到availTR等于FALSE或x等于2*nTbW–1为止:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH-1,直到availLB等于FALSE或y等于2*nTbH–1为止:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN-1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于(xTbY+x,yTbY+y)位置处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1..-3,y=0..SubHeightC*numSampL-1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1..SubWidthC*numSampT–1,y=-1..-2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1..-3,y=-1..SubHeightC*numSampL-1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=-1,-2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1,y=-1,-2。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH-1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL-1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL-1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT-1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换(swap):
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx)(386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0,并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY-minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
2.8.块差分脉冲码调制编码(BDPCM)
在JVET-M0057中提出了BDPCM。由于水平(或者垂直)预测量的形状,其使用左(A)(或者顶部(B))像素来预测当前像素,最有吞吐量效率的处理块的方式是并行处理一列(或者线)的所有像素,并且依次处理这些列(或者线)。为了提高吞吐量,我们引入了以下过程:当在该块上选择的预测量是垂直的时,将宽度为4的块划分为具有水平界限(frontier)的两半;当在该块上选择的预测量是水平的时,将高度为4的块划分为具有垂直界限的两半。
当块被划分时,不允许来自一个区域的样点使用来自另一个区域的像素来计算预测:如果出现这种情况,则在预测方向上,预测像素被参考像素所替代。图5示出了在垂直预测的4x8块中,当前像素X的不同位置。
图5示出了将4x8样点块划分为两个可独立解码区域的示例。
由于这一特性,现在可以在2个周期内处理4x4块,并且在4个周期内处理4x8或8x4块,以此类推,如图6所示。
图6示出了利用垂直预测量处理像素行以最大限度地提高的4xN块的吞吐量的次序的示例。
表2-3总结了处理块所需的周期的数量,这取决于块尺寸。显而易见的是,可以以每个周期8个像素或更多个像素来处理任意维度都大于或等于8的块。
表2-3.尺寸为4xN、Nx4的块的最坏情况吞吐量
2.9.量化残差域BDPCM
在JVET-N0413中,提出了量化残差域BDPCM(以下简称为RBDPCM)。类似于帧内预测,通过在预测方向(水平或垂直预测)上的样点复制对整个块进行帧内预测。残差被量化,并且量化残差与其预测量(水平或垂直)量化值之间的差值被编解码。
对于尺寸为M(行)×N(列)的块,令ri,j,0≤f≤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))被添加到帧内块预测值,以产生重构的样点值。
这种方案的主要好处是,在系数解析期间可以动态地(on the fly)进行逆DPCM,只要系数被解析时添加预测量、或者可以在解析之后执行逆DPCM。
在量化残差域BDPCM中总是使用变换跳过。
2.10.VVC中的多重变换集(MTS)
在VTM中,支持尺寸达64×64的大块尺寸变换,这主要适用于较高分辨率的视频,例如,1080p和4K序列。对于尺寸(宽度或高度、或宽度和高度两者)等于64的变换块,高频变换系数被清零(zeroed out),从而仅保留低频系数。例如,对于M×N变换块,M为块宽,N为块高,当M等于64时,只保留变换系数的左32列。类似地,当N等于64时,仅保留变换系数的顶部32行。当变换跳过模式被用于大块时,使用整个块,而不将任何值清零。VTM还支持SPS中可配置的最大变换尺寸,使得编码器可以取决于特定实现方式的需要来灵活地选择至多16长度、32长度或64长度的变换尺寸。
除了已经在HEVC采用的DCT-II,多重变换选择(MTS)方案还被用于帧间和帧内编解码块的残差编解码。它使用来自DCT8/DST7的多个所选变换。新引入的变换矩阵是DST-VII和DCT-VIII。表2-4示出了所选DST/DCT的基函数。
表2-4.N点输入时DCT-II/VIII和DSTVII的变换基函数
为了保持变换矩阵的正交性,变换矩阵比HEVC中的变换矩阵被更准确地量化。为了将变换系数的中间值保持在16比特范围内,在水平和垂直变换之后,所有系数是具有10比特的。
为了控制MTS方案,在SPS级别分别为帧内和帧间指定单独的启用标志。当在SPS启用MTS时,信令通知CU级别标志,以指示MTS是否被应用。这里,MTS仅适用于亮度。当满足以下条件时,信令通知MTS CU级别标志。
-宽度和高度都小于或等于32
-CBF标志等于一
如果MTS CU标志等于零,则在两个方向上应用DCT2。然而,如果MTS CU标志等于一,则另外信令通知两个其它标志,以分别指示水平方向和垂直方向的变换类型。变换和信令映射表如表2-5所示。通过移除帧内模式和块形状依赖性,使用针对ISP和隐式MTS的统一变换选择。如果当前块处于ISP模式,或者如果当前块是帧内块并且帧内显式MTS和帧间显式MTS两者都开启,则仅DST7用于水平变换核心和垂直变换核心两者。当涉及到变换矩阵精度,使用8比特初级(primary)变换核心(core)。因此,HEVC中使用的所有变换核心保持相同,包括4点DCT-2和DST-7、8点、16点和32点DCT-2。并且,包括64点DCT-2、4点DCT-8、8点、16点、32点DCT-7和DCT-8的其他变换核心使用8比特初级变换核心。
表2-5.变换和信令映射表
为了降低大的尺寸的DST-7和DCT-8的复杂度,对于尺寸(宽度或高度、或宽度和高度两者)等于32的DST-7和DCT-8块,高频变换系数被清零。仅保留16×16较低频区域内的系数。
与HEVC一样,块的残差可以用变换跳过模式来编解码。为了避免语法编解码的冗余,当CU级MTS_CU_flag不等于0时,不信令通知变换跳过标志。用于变换跳过的块尺寸限制与JEM4中用于MTS的块尺寸限制相同,这指示当块宽度和高度两者都等于或小于32时,变换跳过适用于CU。注意,当针对当前CU激活LFNST或MIP时,隐式MTS变换被设置为DCT2。此外,当针对帧间编解码的块启用MTS时,仍然可以启用隐式MTS。
2.11.低频不可分变换(LFNST)
在VVC中,如图7所示,LFNST(低频不可分变换)(也被称为缩减的二级变换)应用于正向初级变换和量化之间(在编码器处)以及去量化和逆向初级变换之间(在解码器处)。在LFNST中,根据块尺寸应用4x4不可分变换或8x8不可分变换。例如,4x4 LFNST适用于小块(即,最小(宽度,高度)<8),并且8x8 LFNST适用于大块(即,最小(宽度,高度)>4)。
图7示出了低频不可分变换(LFNST)过程的示例。
下面以输入为例描述在LFNST中使用的不可分变换的应用。为了应用4x4LFNST,4x4输入块X
不可分变换被计算为其中表示变换系数向量,并且T是16x16变换矩阵。16x1系数向量随后使用该块的扫描次序(水平、垂直或对角线)被重新组织为4x4块。具有较小索引的系数将以较小扫描索引被放置在4x4系数块中。
2.11.1.缩减的不可分变换
LFNST(低频不可分变换)基于直接矩阵乘法来应用不可分变换,使得其仅需通过单个遍次(pass)就可以实现,而无需多次迭代。然而,需要降低不可分变换矩阵维度,以最小化计算复杂度和存储变换系数的内存空间。因此,在LFNST中使用了缩减的不可分变换(或RST)方法。缩减的不可分变换的主要思想是将N(对于8x8的NSST,N通常等于64)维向量映射到不同空间中的R维向量,其中N/R(R<N)是缩减因子。因此,RST矩阵不是NxN矩阵,而是变成了R×N矩阵,如下所示。
其中变换的R个行是N维空间的R个基(base)。RT的逆变换矩阵是其正变换的转置。对于8x8 LFNST,应用了为4的缩减因子,并且64x64直接矩阵(其是传统8x8不可分变换矩阵尺寸)被缩减为16x48直接矩阵。因此,48×16逆RST矩阵在解码器侧用于生成8×8左上区域的核心(初级)变换系数。当应用16x48矩阵而不是16x64(与16x48矩阵具有相同的变换集配置)时,16x48矩阵中的每一个都从左上8x8块中排除右下4x4块的三个4x4块中获取48个输入数据。在缩减的维度的帮助下,用于存储所有LFNST矩阵的内存用量从10KB减少到8KB,伴有合理的性能下降。为了降低复杂度,LFNST被限制为仅在第一个系数子组以外的所有系数都无效(non-significant)的情况下才适用。因此,当应用LFNST时,所有仅初级(primary-only)变换系数都必须是零。这允许在最后有效(last-significant)位置上对LFNST索引信令的调节,因此避免了当前LFNST设计中的额外系数扫描,需要这种额外系数扫描来检查仅特定位置处的有效系数。对LFNST的最坏情况处理(就每个像素的乘法而言)将针对4x4和8x8块的不可分变换分别限制为8x16和8x48变换。在这些情况下,对于其他小于16的尺寸,当应用LFNST时,最后有效扫描位置必须小于8。对于形状为4xN和Nx4且N>8的块,提出的限制意味着现在仅应用一次LFNST,并且仅将LFNST应用于左上4x4区域。由于在应用LFNST时所有仅初级系数都是零,因此在这种情况下,初级变换所需的操作数量减少。从编码器的角度来看,当测试LFNST变换时,显著地简化了对系数的量化。必须对前16个系数(按扫描次序)以最大程度进行率失真优化的量化,强制剩余的系数为零。
2.11.2.LFNST变换选择
在LFNST中总共有4个变换集,并且使用每一变换集2个不可分变换矩阵(内核)。从帧内预测模式到变换集的映射是预定义的,如表2-6所示。如果三种CCLM模式(INTRA_LT_CCLM、INTRA_T_CCLM或INTRA_L_CCLM)之一被用于当前块(81<=predModeIntra<=83),则为当前色度块选择变换集0。对于每个变换集,所选不可分二次变换候选由显式信令通知的LFNST索引来进一步指定。在变换系数之后针对每个帧内CU在比特流中信令通知一次索引。
表2-6.变换选择表
2.11.3.LFNST索引信令和与其他工具的交互
由于LFNST被限制为仅在第一个系数子组之外的所有系数都无效时才适用,所以LFNST索引编解码取决于最后有效系数的位置。此外,LFNST索引是经上下文编解码的,但不取决于帧内预测模式,并且仅第一个二进制位(bin)是上下文编码的。此外,LFNST适用于帧内条带和帧间条带两者中的帧内CU,并且适用于亮度和色度。如果启用了双树,则针对亮度和色度分别信令通知LFNST索引。对于帧间条带(禁用了双树),信令通知单个LFNST索引并且单个LFNST索引用于亮度和色度两者。
当选择了ISP模式时,禁用LFNST并且不信令通知RST索引,因为即使RST被应用于每一个可行的分割块,性能改善也是微小的。此外,针对ISP预测的残差禁用RST可以降低编码复杂度。当选择MIP模式时,也禁用LFNST并且不信令通知索引。
考虑到由于现有的最大变换尺寸限制(64x64),大于64x64的大CU被隐式地划分(TU分片(tiling)),对于一定数量的解码管道阶段,LFNST索引搜索可能使数据缓冲增加四倍。因此,LFNST被允许的最大尺寸被限制为64x64。注意,仅与DCT2一起启用LFNST。
2.12.针对色度的变换跳过
VVC中引入了色度变换跳过(TS)。动机是通过将transform_skip_flag和mts_idx重新定位到residual_coding部分,在亮度和色度之间统一TS和MTS信令。为色度TS添加了一个上下文模型。对mts_idx没有改变上下文模型和二进制化(binarization)。此外,在使用色度TS时,也应用TS残差编解码。
语义
transform_skip_flag[x0][y0][cIdx]指定是否对相关联的亮度变换块应用变换。数组索引x0,y0指定所考虑的变换块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。transform_skip_flag[x0][y0][cIdx]等于1指定不对当前亮度变换块应用变换。数组索引cIdx指定颜色分量的指示符;其对于亮度等于0,对于Cb等于1并且对于Cr等于2。transform_skip_flag[x0][y0][cIdx]等于0指定决定是否对当前变换块应用变换取决于其他语法元素。当transform_skip_flag[x0][y0][cIdx]不存在时,它被推断为等于0。
2.13.针对色度的BDPCM
除了色度TS支持,还向色度分量添加了BDPCM。如果sps_bdpcm_enable_flag是1,则向SPS添加附加的语法元素sps_bdpcm_chroma_enable_flag。这些标志具有以下行为,如表2-7所示。
表2-7.亮度和色度BDPCM的sps标志
当BDPCM仅可用于亮度时,当前行为不变。当BDPCM也可用于色度时,针对每个色度块发送bdpcm_chroma_flag。其指示是否对色度块使用BDPCM。当其开启时,BDPCM用于两个色度分量,并且附加的bdpcm_dir_chroma标志被编解码,指示用于两个色度分量的预测方向。
在两个Block-DPCM块之间的边界上去激活去块滤波器,因为这两个块都没有使用通常负责阻挡伪影的变换阶段。这种去激活对于亮度分量和色度分量独立发生。
3.公开的解决方案所解决的技术问题的示例
CCLM和TS中对线性参数推导的当前设计存在以下问题:
1.对于非4:4:4颜色格式,CCLM中对线性参数的推导涉及相邻色度样点和下采样的相邻亮度样点。如图8所示,在当前VVC中,当最近的线不在CTU边界处时,对于4:2:2视频,使用当前块上方的第二条线来推导下采样的相邻顶部亮度样点。然而,对于4:2:2视频,垂直分辨率不变。因此,在下采样的相邻顶部亮度样点和相邻色度样点之间存在相移。
图8示出了在推导4:2:2视频的CCLM参数时使用的相邻色度样点和下采样的相邻亮度样点的示例。
2.在当前VVC中,相同的最大块尺寸被用于条件检查,以用于亮度变换跳过标志的信令通知和色度变换跳过标志的信令通知。这样的设计没有考虑到颜色格式,这是不期望的。
a.类似的问题也存在于亮度BDPCM标志的信令通知和色度BDPCM标志的信令通知中,其中,在条件检查中使用相同的最大块尺寸。
3.在JVET-Q2001-vE中规定的VVC中,左相邻样点被放入所选相邻样点列表(在上相邻样点之前)中。然而,将上相邻样点放在左相邻样点之前可能更好。
4.在JVET-Q2001-vE中规定的VVC中,分配两行相邻亮度样点。然而,当sps_chroma_vertical_collocated_flag等于1时,需要三行相邻亮度样点。
5.在JVET-Q2001-vE中规定的VVC中,当左相邻亮度样点不可用时,左相邻亮度样点使用当前块的最左样点填充,并且左上相邻亮度样点使用顶部相邻亮度样点填充。然而,尚未推导出顶部相邻亮度样点。例如,在JVET-Q2001-vE中。
“-当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=-1..SubHeightC*numSampL–1。
-当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。”
6.在JVET-Q2001-vE中规定的VVC中,当顶部(或/和左)相邻亮度样点不可用时,会错误地推导出顶部(或/和左)相邻亮度样点。例如,在JVET-Q2001-vE中,当顶部相邻亮度样点不可用时,“当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2”被用于推导顶部相邻亮度样点。然而,当顶部相邻亮度样点不可用时,numSampT已经被设置为等于0。
7.在当前VVC中,当左上相邻亮度样点可用时,左上相邻亮度样点用于推导CCLM参数,但当左上相邻亮度样点在不同条带中时(例如,在光栅条带(raster-slice)的情况下),左上相邻亮度样点不可用。
4.实施例和技术的例举
下面的例举应当被视为解释一般概念的示例。这些项目不应该以狭义的方式来解释。此外,这些项目可以以任何方式来组合。
在本文档中,术语“CCLM”表示,利用跨颜色分量信息来预测当前颜色分量的样点/残差、或推导当前颜色分量中样点的重构的编解码工具。其不限于VVC中描述的CCLM技术。
CCLM中对线性参数的推导
1.当推导色度块的CCLM参数时,其共位亮度块的一个或多个上相邻线可以用于推导其下采样的共位相邻上亮度样点。
a.在一个示例中,当当前色度块不在顶部CTU边界处时,共位亮度块的最近的上方的线(而不是上方第二条线)用于推导下采样的共位相邻顶部亮度样点。
i.在一个示例中,一个相同的下采样滤波器可以用于推导下采样的共位相邻顶部亮度样点和下采样的共位相邻左亮度样点。
1)例如,可以使用[1 2 1]滤波器。更具体地,pDsY[x]=(pY[2*x–1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2,其中pY[2*x][-1],pY[2*x-1][-1],pY[2*x+1][-1]是来自最近的上相邻线的亮度样点,并且pDstY[x]表示下采样的共位相邻顶部亮度样点。
ii.在一个示例中,不同的下采样滤波器(例如,不同的滤波器抽头/不同的滤波器系数)可以用于推导下采样的共位相邻顶部亮度样点和下采样的共位相邻左亮度样点。
iii.在一个示例中,无论色度块的位置如何(例如,色度块可以在或不在顶部CTU边界处),一个相同的下采样滤波器可以用于推导下采样的共位相邻顶部亮度样点。
iv.在一个示例中,上述方法可能仅适用于4:2:2格式的图像/视频。
b.在一个示例中,当当前色度块不在顶部CTU边界处时,上相邻亮度样点(包括共位亮度块的最近的上方的线,但不包括上方的第二条线)可以用于推导下采样的共位相邻顶部亮度样点。
c.在一个示例中,对下采样的共位相邻顶部亮度样点的推导可以取决于位于多条线处的样点。
i.在一个示例中,其可以取决于共位亮度块上方的第二最近的线和最近的线两者。
ii.在一个示例中,对于不同的颜色格式(例如,4:2:0和4:2:2),下采样的共位相邻顶部亮度样点可以使用一个相同的下采样滤波器来推导。
1)在一个示例中,可以利用6抽头滤波器(例如,[1 2 1;1 2 1])。
a)在一个示例中,下采样的共位相邻顶部亮度样点可以被推导为:pDsY[x]=(pY[2*x–1][-2]+2*pY[2*x][-2]+pY[2*x+1][-2]+pY[2*x–1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+4)>>3,其中pY是对应的亮度样点,并且pDstY[x]表示下采样的共位相邻顶部亮度样点。
b)可替代地,进一步地,当sps_cclm_colocated_chroma_flag等于0时,可以应用上述方法。
2)在一个示例中,可以利用5抽头滤波器(例如,[0 1 0;1 4 1;0 1 0])。
a)在一个示例中,下采样的共位相邻顶部亮度样点可以被推导为:pDsY[x]=(pY[2*x][-2]+pY[2*x-1][-1]+4*pY[2*x][-1]+pY[2*x+1][-1]+pY[2*x][0]+4)>>3,其中pY是对应的亮度样点,并且pDstY[x]表示下采样的共位相邻顶部亮度样点。
b)可替代地,进一步地,当sps_cclm_colocated_chroma_flag等于1时,可以应用上述方法。
iii.在一个示例中,上述方法可能仅适用于4:2:2格式的图像/视频。
变换跳过编解码块的最大块尺寸(例如,其中transform_skip_flag等于1、或者BDPCM或其他旁路变换过程/使用恒等变换(identity transform)的模式)
2.变换跳过编解码块的最大块尺寸可以取决于颜色分量。用MaxTsSizeY和MaxTsSizeC分别表示亮度和色度的变换跳过编解码块的最大块尺寸。
a.在一个示例中,亮度分量和色度分量的最大块尺寸可以是不同的。
b.在一个示例中,两个色度分量的最大块尺寸可以是不同的。
c.在一个示例中,可以分别信令通知亮度分量和色度分量或每个颜色分量的最大块尺寸。
i.在一个示例中,可以在序列级/图片级/条带级/片(tile)组级(诸如在序列标头/图片标头/SPS/VPS/DPS/PPS/APS/条带标头/片组标头中)信令通知MaxTsSizeC/MaxTsSizeY。
ii.在一个示例中,可以有条件地(诸如根据是否启用变换跳过/是否启用BDPCM)信令通知MaxTsSizeY。
iii.在一个示例中,可以有条件地(诸如根据是否启用颜色格式/变换跳过或是否启用BDPCM)信令通知MaxTsSizeC。
iv.可替代地,可以利用亮度分量和色度分量的最大块尺寸之间的预测性编解码。
d.在一个示例中,MaxTsSizeC可以取决于MaxTsSizeY。
i.在一个示例中,MaxTsSizeC可以被设置为等于MaxTsSizeY。
ii.在一个示例中,MaxTsSizeC可以被设置为等于MaxTsSizeY/N(N是整数)。例如,N=2。
e.在一个示例中,MaxTsSizeC可以根据色度子采样率来设置。
i.在一个示例中,MaxTsSizeC被设置为等于MaxTsSizeY>>SubWidthC,其中SubWidthC在表2-1中定义。
ii.在一个示例中,MaxTsSizeC被设置为等于MaxTsSizeY>>SubHeightC,其中SubHeightC在表2-1中定义。
iii.在一个示例中,MaxTsSizeC被设置为等于MaxTsSizeY>>max(SubWidthC,SubHeightC)。
iv.在一个示例中,MaxTsSizeC被设置为等于MaxTsSizeY>>min(SubWidthC,SubHeightC)。
3.变换编解码块的最大允许块尺寸宽度和高度可以被不同的定义。
a.在一个示例中,可以分别信令通知最大允许块尺寸宽度和高度。
b.在一个示例中,色度变换编解码块的最大允许块尺寸宽度和高度可以分别表示为MaxTsSizeWC和MaxTsSizeHC。MaxTsSizeWC可以被设置为等于MaxTsSizeY>>SubWidthC,并且MaxTsSizeHC可以被设置为等于MaxTsSizeY>>SubHeightC。
i.在一个示例中,MaxTsSizeY是项目2中定义的MaxTsSizeY。
4.是否信令通知色度块的变换跳过标志(例如,transform_skip_flag[x0][y0][1]和/或transform_skip_flag[x0][y0][2])可以取决于色度变换跳过编解码块的最大允许尺寸。
a.在一个示例中,可以根据以下条件有条件地信令通知色度变换跳过标志。
i.在一个示例中,条件是:tbW小于或等于MaxTsSizeC,并且tbH小于或等于MaxTsSizeC,其中tbW和tbH是当前色度块的宽度和高度。
1)在一个示例中,MaxTsSizeC可以被定义为项目2-3中的MaxTsSizeC。
ii.在一个示例中,条件是:tbW小于或等于MaxTsSizeWC,并且tbH小于或等于MaxTsSizeHC,其中tbW和tbH是当前色度块的宽度和高度,MaxTsSizeWC和MaxTsSizeHC分别表示色度变换跳过编解码块的最大允许块尺寸宽度和高度。
1)在一个示例中,MaxTsSizeWC和/或MaxTsSizeHC可以被定义为项目3中的MaxTsSizeWC和/或MaxTsSizeHC。
b.在一个示例中,上述方法可以通过用“BDPCM”替代“变换跳过”而适用于对色度BDPCM标志(例如,intra_bdpcm_chroma_flag)的编解码。
5.代替对两个色度颜色分量的两个TS标志进行编解码,提出使用一个语法来指示对两个色度颜色分量的TS的使用。
a.在一个示例中,代替对transform_skip_flag[x0][y0][1]和/或transform_skip_flag[x0][y0][2])进行编解码,而是对单个语法元素(例如,TS_chroma_flag)进行编解码。
i.在一个示例中,单个语法元素的值是二进制值。
1)此外,进一步地,两个色度分量块根据单个语法元素共享相同的TS模式的开启/关闭控制。
a)在一个示例中,单个语法元素的值等于0指示对两者都禁用TS。
b)在一个示例中,单个语法元素的值等于0指示对两者都启用TS。
2)可替代地,进一步地,第二语法元素可以根据单个语法元素的值是否等于K(例如,K=1)来进一步信令通知。
a)在一个示例中,单个语法元素的值等于0指示对两者都禁用TS;单个语法元素的值等于0指示对两个色度分量中的至少一个启用TS。
b)第二语法元素可以用于指示TS被应用于两个色度分量中的哪一个,和/或TS被应用于两个色度分量。
ii.在一个示例中,单个语法元素的值是非二进制值。
1)在一个示例中,单个语法元素的值等于K0指示对两者都禁用TS。
2)在一个示例中,单个语法元素的值等于K1指示对第一色度颜色分量启用TS,并且对第二颜色分量禁用TS。
3)在一个示例中,单个语法元素的值等于K2指示对第一色度颜色分量禁用TS,并且对第二颜色分量启用TS。
4)在一个示例中,单个语法元素的值等于K3指示对两者都启用TS。
5)在一个示例中,单个语法元素可以用固定长度、一元码(unary)、截断一元码、第k阶EG二进制化方法来编解码。
iii.在一个示例中,单个语法元素和/或第二语法元素可以是经上下文编解码的或经旁路编解码的。
一般主张(claim)
6.可以在序列级/图片级/条带级/片组级(诸如在序列标头/图片标头/SPS/VPS/DPS/PPS/APS/条带标头/片组标头中)信令通知是否和/或如何应用上述公开的方法。
7.是否和/或如何应用上述公开的方法可以取决于编解码信息,诸如颜色格式、单树/双树分割。
对CCLM的附加主张
8.在CCLM参数推导过程中,上相邻样点被放入所选相邻样点列表中左相邻样点之前,并且所选相邻样点列表用于推导CCLM参数(例如,使用4点推导方法,其中两个较大值被平均且两个较小值被平均,并且两个平均值用于推导线性参数)。实施例4示出了示例。
9.在CCLM参数推导过程中,当得到表示为pSelDsY[idx]的下采样的上相邻亮度样点时,索引值idx应该在cntL到cntL+cntT–1的范围内,其中cntL和cntT分别表示用于推导CCLM参数的左相邻色度样点和上相邻色度样点的数量。
a.实施例5示出了示例。
b.可替代地,进一步地,左相邻样点被放入所选相邻样点列表中上相邻样点之前。
10.在CCLM参数推导过程中,分配三行上相邻亮度样点。实施例6示出了示例。
11.在CCLM参数推导过程中,分配T1行和T2列左上相邻亮度样点。
a.在一个示例中,T1=2且T2=2。实施例12示出了示例。
b.在一个示例中,T1=3且T2=3。
12.在CCLM参数推导过程中,要分配的上亮度相邻样点的行数可以取决于指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移(shift)的变量或语法元素,诸如JVET-Q2001-vE中的sps_chroma_vertical_collocated_flag。
a.在一个示例中,当sps_chroma_vertical_collocated_flag等于1时,分配三行上相邻亮度样点。否则,分配两行上相邻亮度样点。实施例7示出了示例。
13.在上述示例中,相邻亮度样点可以是下采样前或下采样后的样点。
14.在CCLM参数推导过程中,是否和/或如何填充左上相邻样点可以取决于左上相邻样点中的至少一个的可用性,而不是左相邻样点和/或上相邻样点的可用性。
a.在一个示例中,左上相邻样点中的至少一个的可用性可以取决于左上相邻样点中的至少一个和当前块中的样点是在同一条带中还是在不同条带中。
i.此外,上述条带可以是矩形条带或非矩形条带。
b.在一个示例中,如果左上相邻样点中的至少一个和当前块中的样点在不同条带中,则填充左上相邻样点。
c.在一个示例中,如果至少一个左上相邻样点的可用性为FALSE,则填充左上相邻样点。
15.在CCLM参数推导过程中,当左上相邻亮度样点“不可用”时,可以不使用它们。
a.在一个示例中,如果相邻样点不在当前图片、或当前子图片、或当前片、或当前条带、或当前图砖(brick)、或当前CTU、或当前处理单元、或任何其他当前视频单元中,则它是“不可用的”。
i.在一个示例中,对于图13所示的非矩形条带情况,左上相邻亮度样点是“不可用的”,它们与当前块在不同条带中。
b.在一个示例中,是否在CCLM的过程中使用左上相邻亮度样点可以取决于它们是否与当前块在同一图片/子图片/片/条带/图砖/CTU/处理单元/其他视频单元中。
i.在一个示例中,当左上相邻亮度样点与当前块在不同的光栅条带中时,可以不在CCLM的过程中使用左上相邻亮度样点。
1)实施例10示出了示例。
ii.在一个示例中,可以不在CCLM的过程中使用左上相邻亮度样点,尽管它们与当前块在同一图片/子图片/片/条带/图砖/CTU/处理单元/其他视频单元中。
c.在CCLM参数推导过程中,当左上相邻亮度样点“不可用”时,可以使用重复填充来生成左上相邻亮度样点。用(x,y)表示当前块的左上样点位置。用pY[i][j]表示去块滤波器过程之前的重构亮度样点。用pD[m][n]表示填充的左上亮度样点,其中m=x–1..x-M,n=y–1..y–N,其中M和N是整数(诸如1)。
i.在一个示例中,当左相邻亮度样点或/和顶部相邻亮度样点可用时,可以使用重复填充方法。
ii.在一个示例中,当顶部相邻亮度样点可用时,可以从顶部相邻亮度样点来填充左上相邻亮度样点。
2)在一个示例中,pD[m][n]=pY[x][n]。
iii.在一个示例中,当左相邻亮度样点可用时,可以从左相邻亮度样点来填充左上相邻亮度样点。
3)在一个示例中,pD[m][n]=pY[m][y]。
iv.在一个示例中,当顶部相邻亮度样点可用且左相邻亮度样点可用时,可以从顶部相邻亮度样点来填充左上相邻亮度样点。
4)在一个示例中,pD[m][n]=pY[x][n]。
v.可替代地,当顶部相邻亮度样点可用且左相邻亮度样点可用时,可以从左相邻亮度样点来填充左上相邻亮度样点。
5)在一个示例中,pD[m][n]=pY[m][y]。
vi.在一个示例中,M=2,N=2或M=3,N=3。
d.可替代地,当左上相邻亮度样点“不可用”时,它们可以被预定义的值替代。
i.在一个示例中,预定义的值可以等于常数值,例如,128。
ii.在一个示例中,预定义的值可以使用左相邻亮度样点或/和顶部相邻亮度样点来推导。
6)在一个示例中,预定义的值可以等于左相邻亮度样点或/和顶部相邻亮度样点的平均值。
iii.在一个示例中,预定义的值可以取决于样点的比特深度。例如,预定义的值可以等于1<<(BD–1),其中BD表示样点的比特深度。
e.可替代地,即使左上相邻亮度样点“可用”,也可以使用上述项目14.c中的填充方法和项目14.d中的预定义的值来替代可用的左上相邻亮度样点。
i.实施例11示出了示例。
f.在一个示例中,是否检查左上相邻亮度样点的可用性可以取决于左上相邻亮度样点是否可用或/和顶部相邻亮度样点是否可用。
i.在一个示例中,仅在左相邻亮度样点和顶部相邻亮度样点两者都可用的情况下,才检查左上相邻亮度样点的可用性。实施例17示出了示例。
g.在一个示例中,是否和/或如何使用或/和填充左上相邻亮度样点可以取决于左上相邻亮度样点、或/和左相邻亮度样点、或/和顶部相邻亮度样点的可用性。
i.在一个示例中,仅在左上相邻亮度样点可用的情况下,才使用左上相邻亮度样点。
ii.在一个示例中,仅在左上相邻亮度样点、左相邻亮度样点和顶部相邻亮度样点可用的情况下,才使用左上相邻亮度样点。实施例18示出了示例。
iii.在一个示例中,当左相邻亮度样点和/或顶部相邻亮度样点可用时,可以填充左上相邻亮度样点。
1)在一个示例中,仅在左相邻亮度样点或顶部相邻亮度样点可用而左上相邻亮度样点不可用的情况下,才可以填充左上相邻亮度样点。
2)在一个示例中,仅在左相邻亮度样点和顶部相邻亮度样点可用而左上相邻亮度样点不可用的情况下,才可以填充左上相邻亮度样点。
3)在一个示例中,左上相邻亮度样点可以使用顶部相邻亮度样点来填充。相邻左上亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1,-2,y=-1,-2。实施例18示出了示例。
4)在一个示例中,左上相邻亮度样点可以使用顶部相邻亮度样点来填充。相邻左上亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1,-2,y=-1,-2。实施例19示出了示例。
5)在一个示例中,左上相邻亮度样点可以使用顶部相邻亮度样点和左相邻亮度样点来填充。
h.在一个示例中,是否检查左上相邻亮度样点的可用性,或/和使用左上相邻亮度样点,或/和填充左上相邻亮度样点可以取决于色度颜色格式。
i.在一个示例中,当使用4:4:4颜色格式时,不需要检查左上相邻亮度样点的可用性,或/和使用左上相邻亮度样点,或/和填充左上相邻亮度样点。实施例20示出了示例。
i.在一个示例中,是否填充左上相邻亮度样点和/或需要填充哪些样点可以取决于指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移的变量或语法元素,诸如JVET-Q2001-vE中的sps_chroma_vertical_collocated_flag。
i.在一个示例中,当sps_chroma_vertical_collocated_flag等于1时,填充左上相邻样点。否则,不填充左上相邻样点。实施例14示出了示例。
16.在CCLM的过程中,提出在顶部(或/和左)相邻亮度样点不可用时,使用当前块的最顶部(或/和最左)样点来推导顶部(或/和左)相邻亮度样点。并且左上相邻样点可以使用左(或/和顶部)相邻亮度样点来推导。
a.在一个示例中,当顶部相邻亮度样点不可用时,顶部相邻亮度样点和左上相邻亮度样点可以使用当前块的最顶部样点和左相邻亮度样点来推导。
i.在一个示例中,顶部相邻亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=0..SubWidthC*nTbW–1,y=-1..-2。并且左上相邻亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1,y=-1..-2,其中pY[0][0]表示当前块的左上样点,nTbW表示当前块的宽度,在2.1中定义了SubWidthC。
ii.在一个示例中,顶部相邻样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=0..SubWidthC*nTbW–1,y=-1..-N。并且左上相邻亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-M..-1,y=-1..-N,其中pY[0][0]表示当前块的左上样点,nTbW表示当前块的宽度,在2.1中定义了SubWidthC。实施例13示出了示例。
1)在一个示例中,M和N是整数,诸如M=2,N=3。
2)在一个示例中,M可以取决于色度颜色格式,诸如M=SubWidthC,在2.1中定义了SubWidthC。
3)在一个示例中,可以填充最多T个左上相邻亮度样点,其中T是整数,诸如1。
a)在一个示例中,pY[-M][-1]=pY[-M][0],其中M=1或M=SubWidthC。
b.在一个示例中,当左相邻亮度样点不可用时,左相邻亮度样点和左上相邻亮度样点可以使用当前块的最左样点和顶部相邻亮度样点来推导。
i.在一个示例中,左相邻亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=0..-3,y=-1..SubHeightC*nTbH–1。并且左上相邻亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=0..-3,y=-1,其中pY[0][0]表示当前块的左上样点,nTbH表示当前块的高度,在2.1中定义了SubHeightC。
ii.在一个示例中,左相邻亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1..-M,y=0..SubHeightC*nTbH–1。并且左上相邻亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1..-M,y=-1..-N,其中pY[0][0]表示当前块的左上样点,nTbH表示当前块的高度,在2.1中定义了SubHeightC。
实施例15示出了示例。
1)在一个示例中,M和N是整数,诸如M=1,N=3。
2)在一个示例中,N可以取决于色度颜色格式,诸如N=SubHeightC,在2.1中定义了SubHeightC。
3)在一个示例中,可以填充最多T个左上相邻亮度样点,其中T是整数,诸如1。
a)在一个示例中,pY[-1][-N]=pY[0][-N],其中N=1或N=SubHeightC。
b)可替代地,T等于2,pY[-1][-1]=pY[0][-1],pY[-1][-2]=pY[0][-2]。
iii.在一个示例中,可以在推导顶部相邻亮度样点之后填充左上亮度相邻样点。实施例16示出了示例。
c.在一个示例中,可以在填充顶部(或/和左)相邻亮度样点的过程中使用在项目13中推导出的左上相邻亮度样点。
d.在一个示例中,是否填充顶部(或/和左)相邻亮度(或色度)样点和/或需要填充哪些相邻样点可以取决于色度颜色格式。
i.在一个示例中,当使用4:4:4颜色格式时,不需要填充顶部(或/和左)相邻亮度样点。实施例21示出了示例。
e.在一个示例中,当填充顶部(或/和左)相邻亮度样点时,使用15(诸如15.c)中的方法填充左上相邻亮度样点。实施例22示出了示例。
17.在CCLM预测过程中,对顶部相邻样点、左相邻样点和左上相邻样点的填充可以按固定次序进行。相邻样点可以是亮度样点或色度样点。
a.例如,次序可以是顶部相邻样点填充、左相邻样点填充、以及左上相邻样点填充。
b.例如,次序可以是左相邻填充、顶部相邻样点填充、以及左上相邻样点填充。
c.例如,次序可以是左上相邻填充、顶部相邻样点填充、以及左相邻样点填充。
d.例如,次序可以是左上相邻填充、左相邻样点填充、以及顶部相邻样点填充。
5.实施例
本节示出了示例实施例以及修改当前VVC标准以描述这些实施例的方式。对VVC规范的修改用粗体和斜体突出显示。删除的文本用双括号标记(例如,[[a]表示对字符“a”的删除)。
5.1.实施例1
JVET-P2001-v9中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
…
3.下采样的共位亮度样点pDsY[x][y],其中x=0..nTbW–1,y=0..nTbH–1,被如下推导出:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH-1:pDstY[x][y]=pY[x][y] (8-159)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4被如下指定:
F1[i]=1,其中i=0..1 (8-160)
F2[0]=1,F2[1]=2,F2[2]=1 (8-161)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (8-162)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (8-163)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (8-164)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (8-165)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (8-166)
–否则,以下情况适用:
F1[0]=2,F1[1]=0 (8-167)
F3[1][1]=8 (8-168)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (8-169)
…
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT-1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
…
–否则(sps_cclm_colocated_chroma_flag等于0),以下情况适用:
–如果x大于0,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC*x-1][[[-2]]-1]+F4[0][2]*pY[SubWidthC*x-1][[[-1]]-2]+F4[1][1]*pY[SubWidthC*x][[[-2]]-1]+F4[1][2]*pY[SubWidthC*x][[[-1]]-2]+F4[2][1]*pY[SubWidthC*x+1][[[-2]]-1]+F4[2][2]*pY[SubWidthC*x+1][[[-1]]-2]+4)>>3 (8-193)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (8-194)
–否则(x等于0),以下情况适用:
–如果availTL等于TRUE并且bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1][[[-2]]-1]+F4[0][2]*pY[-1][[[-1]]-2]+F4[1][1]*pY[0][[[-2]]-1]+F4[1][2]*pY[0][[[-1]]-2]+F4[2][1]*pY[1][[[-2]]-1]+F4[2][2]*pY[1][[[-1]]2]+4)>>3 (8-195)
–否则,如果availTL等于TRUE并且bCTUboundary等于TRUE,则以下情况适用:
pSelDsY[idx]=(F2[0]*pY[-1][-1]+F2[1]*pY[0][-1]+F2[2]*pY[1][-1]+2)>>2(8-196)
–否则,如果availTL等于FALSE并且bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F1[1]*pY[0][-2]+F1[0]*pY[0][-1]+1)>>1 (8-197)
–否则(availTL等于FALSE并且bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=pY[0][-1] (8-198)
…
5.2.实施例2
本实施例示出了关于根据最大允许变换跳过编解码块尺寸进行色度变换跳过标志编解码的示例。JVET-P2001-v9中规定的工作草案可以如下修改。
7.3.9.10变换单元语法…
...
5.3.实施例3
本实施例示出了关于根据最大允许色度变换跳过编解码块尺寸进行色度BDPCM标志编解码的示例。JVET-P2001-v9中规定的工作草案可以如下修改。
7.3.9.5编解码单元语法
…
…
5.4.实施例4
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=-1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=-1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–变量availTL被如下推导出:
availTL=availL&&availT (352)
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW-1,直到availTR等于FALSE或x等于2*nTbW–1为止:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH-1,直到availLB等于FALSE或y等于2*nTbH-1为止:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置为(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代),被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配。
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN-1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1,被如下推导出:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC-1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1..-3,y=0..SubHeightC*numSampL-1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1..SubWidthC*numSampT–1,y=-1..-2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1..-3,y=-1..SubHeightC*numSampL-1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=-1,-2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1,y=-1,-2。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH–1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
[[4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL–1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL-1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT-1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)]]
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGr
pIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrp
Idx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY-minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.5.实施例5
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=-1,y=0..2*nTbH-1且x=0..2*nTbW–1,y=-1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1),被设置为等于FALSE的checkPredModeY、以及cIdx为作输入,并且输出被分配给availT。
–变量availTL被如下推导出:
availTL=availL&&availT (352)
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW-1,直到availTR等于FALSE或x等于2*nTbW–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH-1,直到availLB等于FALSE或y等于2*nTbH–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN-1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1..-3,y=0..SubHeightC*numSampL-1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1..SubWidthC*numSampT–1,y=-1..-2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1..-3,y=-1..SubHeightC*numSampL-1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=-1,-2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1,y=-1,-2。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,
y=1..nTbH-1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4
被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL-1,并且选择的下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL-1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT-1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下推导出,其中idx=[[0]]cntL..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY-minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC–minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.6.实施例6
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=-1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=-1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1),被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–变量availTL被如下推导出:
availTL=availL&&availT (352)
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW-1,直到availTR等于FALSE或x等于2*nTbW–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH-1,直到availLB等于FALSE或y等于2*nTbH–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN-1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1..-3,y=0..SubHeightC*numSampL-1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1..SubWidthC*numSampT–1,y=-1..-2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1..-3,y=-1..SubHeightC*numSampL-1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=-1,-[[2]]3。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1,y=-1,-2,-3。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH-1:pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4
被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL-1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL-1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT-1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2(377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY-minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC-minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.7.实施例7
JVET-Q2001-vE中规定的工作草案可以被如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=-1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=-1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–变量availTL被如下推导出:
availTL=availL&&availT (352)
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW-1,直到availTR等于FALSE或x等于2*nTbW–1为止:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH-1,直到availLB等于FALSE或y等于2*nTbH–1为止:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、以及被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN-1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC-1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1..-3,y=0..SubHeightC*numSampL-1。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=-1..-3,y=-1..SubHeightC*numSampL-1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=-1,y=-1,-2。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH–1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4
被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适
用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL-1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL-1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT-1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0,并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY–minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC–minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.8.实施例8
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW–1,直到availTR等于FALSE或x等于2*nTbW–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH–1,直到availLB等于FALSE或y等于2*nTbH–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN–1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC-1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1..SubWidthC*numSampT–1,y=-1..-2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH-1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH–
1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL–1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL–1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT–1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL
+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0,并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY-minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC–minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.9.实施例9
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–变量availTL被如下推导出:
availTL=availL&&availT (352)
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW–1,直到availTR等于FALSE或x等于2*nTbW–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH–1,直到availLB等于FALSE或y等于2*nTbH–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN–1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC-1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1..SubWidthC*[[numSampT]]nTbW–1,y=-1..-2。
–[[当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。]]
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH–1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4
被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL–1,并且选择的下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL–1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT–1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0,并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY–minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC–minC(396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,其中y=0..nTbH–1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.10.实施例10
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW–1,直到availTR等于FALSE或x等于2*nTbW–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH–1,直到availLB等于FALSE或y等于2*nTbH–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN–1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–[[当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。]]
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–
1,y=0..nTbH–1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH–1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4
被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL–1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL–1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT–1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx–cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0,并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY–minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC–minC(396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.11.实施例11
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW–1,直到availTR等于FALSE或x等于2*nTbW–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH–1,直到availLB等于FALSE或y等于2*nTbH–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN-1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–[[当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。]]
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH–
1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4
被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适
用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL–1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL–1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT–1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx-cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下推导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0,并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY–minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC–minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.12.实施例12
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–变量availTL被如下推导出:
availTL=availL&&availT (352)
–可用右上相邻色度样点的数量numTopRight被如下推导出:
–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。
–当predModeIntra等于INTRA_T_CCLM时,以下情况适用于x=nTbW..2*nTbW–1,直到availTR等于FALSE或x等于2*nTbW–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY+x,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availTR。
–当vailTR等于TRUE时,numTopRight累加1。
–可用左下相邻色度样点的数量numLeftBelow被如下推导出:
–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。
–当predModeIntra等于INTRA_L_CCLM时,以下情况适用于y=nTbH..2*nTbH–1,直到availLB等于FALSE或y等于2*nTbH–1为止。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY+y)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availLB。
–当availLB等于TRUE时,numLeftBelow累加1。
顶部和右上的可用相邻色度样点的数量numSampT和左边和左下的可用相邻色度样点的数量numSampL被如下推导出:
–如果predModeIntra等于INTRA_LT_CCLM,则以下情况适用:
numSampT=availT?nTbW:0 (353)
numSampL=availL?nTbH:0 (354)
–否则,以下情况适用:
numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (355)
numSampL=(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (356)
变量bCTUboundary被如下推导出:
bCTUboundary=(yTbY&(CtbSizeY-1)==0)?TRUE:FALSE (357)
变量cntN和数组pickPosN(其中N被L和T替代)被如下推导出:
–变量numIs4N被如下推导出:
numIs4N=((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)(358)
–变量startPosN被设置为等于numSampN>>(2+numIs4N)。
–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。
–如果availN等于TRUE并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:
–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)。
–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN–1。
–否则,cntN被设置为等于0。
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–[[2]]3。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,–2,y=–1,–2。
3.下采样的共位亮度样点pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=1..nTbW–1,y=1..nTbH–1:
pDstY[x][y]=pY[x][y] (360)
–否则,以下情况适用:
–一维滤波器系数数组F1和F2,以及二维滤波器系数数组F3和F4被如下指定:
F1[0]=2,F1[1]=0 (361)
F2[0]=1,F2[1]=2,F2[2]=1 (362)
F3[i][j]=F4[i][j]=0,其中i=0..2,j=0..2 (363)
–如果SubWidthC和SubHeightC两者都等于2,则以下情况适用:
F1[0]=1,F1[1]=1 (364)
F3[0][1]=1,F3[1][1]=4,F3[2][1]=1,F3[1][0]=1,F3[1][2]=1 (365)
F4[0][1]=1,F4[1][1]=2,F4[2][1]=1 (366)
F4[0][2]=1,F4[1][2]=2,F4[2][2]=1 (367)
–否则,以下情况适用:
F3[1][1]=8 (368)
F4[0][1]=2,F4[1][1]=4,F4[2][1]=2, (369)
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F3[1][0]*pY[SubWidthC*x][SubHeightC*y-1]+F3[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F3[1][1]*pY[SubWidthC*x][SubHeightC*y]+F3[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F3[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+4)>>3 (370)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–pDsY[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
pDsY[x][y]=(F4[0][1]*pY[SubWidthC*x-1][SubHeightC*y]+F4[0][2]*pY[SubWidthC*x-1][SubHeightC*y+1]+F4[1][1]*pY[SubWidthC*x][SubHeightC*y]+F4[1][2]*pY[SubWidthC*x][SubHeightC*y+1]+F4[2][1]*pY[SubWidthC*x+1][SubHeightC*y]+F4[2][2]*pY[SubWidthC*x+1][SubHeightC*y+1]+4)>>3 (371)
4.当numSampL大于0时,选择的相邻左色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL–1,并且所选下采样的相邻左亮度样点pSelDsY[idx]被如下推导出,其中idx=0..cntL–1:
–变量y被设置为等于pickPosL[idx]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[-1][y] (372)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[-SubWidthC][SubHeightC*y-1]+F3[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F3[1][1]*pY[-SubWidthC][SubHeightC*y]+F3[2][1]*pY[1-SubWidthC][SubHeightC*y]+F3[1][2]*pY[-SubWidthC][SubHeightC*y+1]+4)>>3(373)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[-1-SubWidthC][SubHeightC*y]+F4[0][2]*pY[-1-SubWidthC][SubHeightC*y+1]+F4[1][1]*pY[-SubWidthC][SubHeightC*y]+F4[1][2]*pY[-SubWidthC][SubHeightC*y+1]+F4[2][1]*pY[1-SubWidthC][SubHeightC*y]+F4[2][2]*pY[1-SubWidthC][SubHeightC*y+1]+4)>>3 (374)
5.当numSampT大于0时,选择的相邻顶部色度样点pSelC[idx]被设置为等于p[pickPosT[idx-cntL]][-1],其中idx=cntL..cntL+cntT–1,并且下采样的相邻顶部亮度样点pSelDsY[idx]被如下指定,其中idx=0..cntL+cntT–1:
–变量x被设置为等于pickPosT[idx–cntL]。
–如果SubWidthC和SubHeightC两者都等于1,则以下情况适用:
pSelDsY[idx]=pY[x][-1] (375)
–否则,以下情况适用:
–如果sps_chroma_vertical_collocated_flag等于1,则以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F3[1][0]*pY[SubWidthC*x][-1-SubHeightC]+F3[0][1]*pY[SubWidthC*x-1][-SubHeightC]+F3[1][1]*pY[SubWidthC*x][-SubHeightC]+F3[2][1]*pY[SubWidthC*x+1][-SubHeightC]+F3[1][2]*pY[SubWidthC*x][1-SubHeightC]+4)>>3(376)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (377)
–否则(sps_chroma_vertical_collocated_flag等于0),以下情况适用:
–如果bCTUboundary等于FALSE,则以下情况适用:
pSelDsY[idx]=(F4[0][1]*pY[SubWidthC x-1][-1]+F4[0][2]*pY[SubWidthC*x-1][-2]+F4[1][1]*pY[SubWidthC*x][-1]+F4[1][2]*pY[SubWidthC*x][-2]+F4[2][1]*pY[SubWidthC*x+1][-1]+F4[2][2]*pY[SubWidthC*x+1][-2]+4)>>3 (378)
–否则(bCTUboundary等于TRUE),以下情况适用:
pSelDsY[idx]=(F2[0]*pY[SubWidthC*x-1][-1]+F2[1]*pY[SubWidthC*x][-1]+F2[2]*pY[SubWidthC*x+1][-1]+2)>>2 (379)
6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC被如下导出:
–当cntT+cntL等于2时,pSelComp[3]被设置为等于pSelComp[0],pSelComp[2]被设置为等于pSelComp[1],pSelComp[0]被设置为等于pSelComp[1],并且pSelComp[1]被设置为等于pSelComp[3],其中Comp被DsY和C替代。
–数组minGrpIdx和maxGrpIdx被如下推导出:
minGrpIdx[0]=0 (380)
minGrpIdx[1]=2 (381)
maxGrpIdx[0]=1 (382)
maxGrpIdx[1]=3 (383)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]被如下调换:
(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1]) (384)
–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]被如下调换:
(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1]) (385)
–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,数组minGrpIdx和maxGrpIdx被如下调换:
(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx) (386)
–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]被如下调换:
(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0]) (387)
–变量maxY、maxC、minY和minC被如下推导出:
maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1 (388)
maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1 (389)
minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1 (390)
minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1 (391)
7.变量a、b和k被如下推导出:
–如果numSampL等于0,并且numSampT等于0,则以下情况适用:
k=0 (392)
a=0 (393)
b=1<<(BitDepth-1) (394)
–否则,以下情况适用:
diff=maxY–minY (395)
–如果diff不等于0,则以下情况适用:
diffC=maxC–minC (396)
x=Floor(Log2(diff)) (397)
normDiff=((diff<<4)>>x)&15 (398)
x+=(normDiff!=0)?1:0 (399)
y=Abs(diffC)>0?Floor(Log2(Abs(diffC)))+1:0 (400)
a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (401)
k=((3+x-y)<1)?1:3+x-y (402)
a=((3+x-y)<1)?Sign(a)*15:a (403)
b=minC-((a*minY)>>k) (404)
其中divSigTable[]被如下指定:
divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (405)
–否则(diff等于0),以下情况适用:
k=0 (406)
a=0 (407)
b=minC (408)
8.预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
predSamples[x][y]=Clip1(((pDsY[x][y]*a)>>k)+b) (409)
注意—这个过程使用sps_chroma_vertical_collocated_flag。然而,为了简化实现方式,这个过程不使用sps_chroma_horizontal_collocated_flag。
5.13.实施例13
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。
5.14.实施例14
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。
5.15.实施例15
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–[[1]]SubHeightC..SubHeightC*[[numSampL]]nTbH–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。
5.16.实施例16
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1,:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–[[当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。]]
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。
5.17.实施例17
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1或x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
5.18.实施例18
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–[[当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。]]
5.19.实施例19
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–[[当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。]]
5.20.实施例20
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
…
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
5.21.实施例21
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。
5.22.实施例22
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=[[–1]]0..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=[[-1]]0..SubHeightC*numSampL-1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2,。
5.23.实施例23
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
…
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–[[当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。]]
5.24.实施例24
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT (352)]]
…
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–[[当availTL等于TRUE时,相邻左上亮度样点pY[x][y],被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。]]
5.25.实施例25
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
…
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–[[当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。]]
5.26.实施例26
JVET-Q2001-vE中规定的工作草案可以如下修改。
8.4.5.2.13INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范
这个过程的输入是:
–帧内预测模式predModeIntra,
–当前变换块的左上样点相对于当前图片的左上样点的样点位置(xTbC,yTbC),
–指定变换块宽度的变量nTbW,
–指定变换块高度的变量nTbH,
–指定当前块的颜色分量的变量cIdx,
–色度相邻样点p[x][y],其中x=–1,y=0..2*nTbH–1且x=0..2*nTbW–1,y=–1。
这个过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1。
当前亮度位置(xTbY,yTbY)被如下推导出:
(xTbY,yTbY)=(xTbC<<(SubWidthC-1),yTbC<<(SubHeightC-1)) (351)
变量availL、availT和availTL被如下推导出:
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY-1,yTbY)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availL。
–调用条款6.4.4中规定的相邻块可用性的推导过程,以被设置为等于(xTbY,yTbY)的当前亮度位置(xCurr,yCurr)、相邻亮度位置(xTbY,yTbY-1)、被设置为等于FALSE的checkPredModeY、以及cIdx作为输入,并且输出被分配给availT。
–[[变量availTL被如下推导出:
availTL=availL&&availT(352)]]
…
预测样点predSamples[x][y]被如下推导出,其中x=0..nTbW–1,y=0..nTbH–1:
–如果numSampL和numSampT两者都等于0,则以下情况适用:
predSamples[x][y]=1<<(BitDepth-1) (359)
–否则,以下有序步骤适用:
1.共位亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..nTbW*SubWidthC–1,y=0..nTbH*SubHeightC–1。
2.相邻亮度样点pY[x][y]被如下推导出:
–当numSampL大于0时,相邻左亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1..–3,y=0..SubHeightC*numSampL–1。
–当availT等于FALSE时,相邻顶部亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..SubWidthC*numSampT–1,y=–1..–2。
–当availL等于FALSE时,相邻左亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–3,y=–1..SubHeightC*numSampL–1。
–当numSampT大于0时,相邻顶部亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=0..SubWidthC*numSampT–1,y=–1,–2。
–[[当availTL等于TRUE时,相邻左上亮度样点pY[x][y]被设置为等于位置(xTbY+x,yTbY+y)处的、去块滤波器过程之前的重构亮度样点,其中x=–1,y=–1,–2。]]
图9是视频处理装置900的框图。装置900可以用于实现本文描述的方法中的一个或多个。装置900可以体现在智能电话、平板、计算机、物联网(Internet of Things,IoT)接收器等中。装置900可以包括一个或多个处理器902、一个或多个存储器904和视频处理硬件906。(多个)处理器902可以被配置为实现本文档中描述的一个或多个方法。存储器(多个存储器)904可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件906可以用于以硬件电路实现本文档中描述(在前面的章节中列出)的一些技术。
图10示出了视频编码器的框图。
图11是处理视频的方法1100的流程图。该方法1100包括:对于视频的色度块与视频的编解码表示之间的转换,通过使用下采样的共位相邻顶部亮度样点来推导(1102)跨分量线性模型的参数,该下采样的共位相邻顶部亮度样点是使用下采样滤波器根据共位亮度块的N条上相邻线生成的,其中N是正整数;以及使用预测的色度块来执行(1104)转换,该预测的色度块是使用跨分量线性模型生成的。
图12是可以在其中实现所公开的技术的示例视频处理系统的框图。
图12是示出可以在其中实现本文公开的各种技术的示例视频处理系统1200的框图。各种实现方式可以包括系统1200的一些或所有组件。系统1200可以包括用于接收视频内容的输入1202。视频内容可以以例如8比特或10比特多分量像素值的原始或未压缩格式来接收、或者可以是压缩或编码格式。输入1202可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(Passive Optical Network,PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
系统1200可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件1204。编解码组件1204可以将来自输入1202的视频的平均比特率减小为编解码组件1204的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件1204的输出可以被存储、或者经由如由组件1206表示的通信连接来发送。在输入1202处接收到的视频的存储或通信传送的比特流(或编解码)表示可以由组件1208用于生成像素值或被发送到显示接口1210的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编码结果的对应的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(Universal SerialBus,USB)、或高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)、或显示端口(Displayport)等。存储接口的示例包括SATA(Serial Advanced TechnologyAttachment,串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备(诸如移动电话、膝上型计算机、智能电话、或能够执行数字数据处理和/或视频显示的其他设备)中。
图14是示出可以利用本公开的技术的示例视频编解码系统100的框图。
如图14所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成经编码的视频数据,该源设备110可以被称为视频编码设备。目的地设备120可以解码由源设备110生成的经编码的视频数据,该目的地设备120可以被称为视频解码设备。
源设备110可以包括视频源112、视频编码器114和输入/输出(input/output,I/O)接口19。
视频源112可以包括诸如视频捕获设备的源、从视频内容提供商接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码,以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括经编解码的图片和相关联的数据。经编解码的图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口19可以包括调制器/解调器(调制解调器)和/或发送器。经编码的视频数据可以通过网络130a经由I/O接口19直接发送到目的地设备120。经编解码的视频数据也可以存储在存储介质/服务器130b上,以供目的地设备120访问。
目的地设备120可以包括I/O接口126、视频解码器124和显示设备122。
I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或存储介质/服务器130b获取经编码的视频数据。视频解码器124可以对经编码的视频数据进行解码。显示设备122可以向用户显示经解码的视频数据。显示设备122可以与目的地设备120集成、或者可以在目的地设备120的外部,其中目的地设备120被配置为与外部显示设备接口。
视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(High Efficiency Video Coding,HEVC)标准、通用视频编解码(Versatile VideoCoding,VVC)标准和其他当前和/或进一步的标准。
图15是示出视频编码器200的示例的框图,该视频编码器200可以是图14所示的系统100中的视频编码器114。
视频编码器200可以被配置为执行本公开的任何或所有技术。在图15的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
视频编码器200的功能组件可以包括分割单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214,预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(IBC)单元。IBC单元可以在IBC模式下执行预测,在该IBC模式下,至少一个参考图片是当前视频块所在的图片。
此外,一些组件(诸如运动估计单元204和运动补偿单元205)可以高度集成,但是为了解释的目的地,在图15的示例中单独表示。
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
模式选择单元203可以例如基于误差结果选择编解码模式(帧内或帧间)之一,并将所得的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,并提供给重构单元212以重构编码块用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(intra and inter predication,CIIP)模式的组合,在CIIP模式下,预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择运动向量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的除了与当前视频块相关联的图片之外的图片的运动信息和经解码的样点来确定当前视频块的预测视频块。
运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带或B条带中。
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元204然后可以生成指示列表0或列表1中包含参考视频块的参考图片的参考索引和指示当前视频块和参考视频块之间的空域位移的运动向量。运动估计单元204可以输出参考索引、预测方向指示符和运动向量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。运动估计单元204然后可以生成指示列表0和列表1中包含参考视频块的参考图片的参考索引和指示参考视频块和当前视频块之间的空域位移的运动向量。运动估计单元204可以输出当前视频块的运动向量和参考索引作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元204可以输出完全的运动信息集以用于解码器的解码处理。
在一些示例中,运动估计单元204可以不输出当前视频的完全的运动信息集。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与临近视频块的运动信息足够相似。
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块具有与另一视频块相同的运动信息的值。
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一视频块和运动向量差(motion vector difference,MVD)。运动向量差指示当前视频块的运动向量和所指示的视频块的运动向量之间的差。视频解码器300可以使用所指示的视频块的运动向量和运动向量差来确定当前视频块的运动向量。
如上所述,视频编码器200可以预测性地信令通知运动向量。可以由视频编码器200实现的预测信令技术的两个示例包括高级运动向量预测(advanced motion vectorpredication,AMVP)和混合(Merge)模式信令。
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其他视频块的经解码的样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元207可以通过从当前视频块中减去(例如,由减号指示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
在其他示例中,对于当前视频块,可能没有当前视频块的残差数据,例如,在跳过模式下,并且残差生成单元207可能不执行减法操作。
变换处理单元208可以通过对与当前视频块相关联的残差视频块应用一个或多个变换来生成对于当前视频块的一个或多个变换系数视频块。
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(uantization parameter,QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重构视频块,以用于存储在缓冲器213中。
在重构单元212重构视频块之后,可以执行环路滤波操作来减少视频块中的视频块伪影。
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收到数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
图16是示出视频解码器300的示例的框图,该视频解码器300可以是图14所示的系统100中的视频解码器114。
视频解码器300可以被配置为执行本公开的任何或所有技术。在图16的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
在图16的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与针对视频编码器200描述的编码过程相反的解码过程(例如,图15)。
熵解码单元301可以检索经编码的比特流。经编码的比特流可以包括经熵编码的视频数据(例如,视频数据的编码块)。熵解码单元301可以解码经熵编码的视频数据,并且从经熵解码的视频数据,运动补偿单元302可以确定运动信息,该运动信息包括运动向量、运动向量精度、参考图片列表索引和其他运动信息。运动补偿单元302可以例如通过执行AMVP和Merge模式来确定这样的信息。
运动补偿单元302可以产生运动补偿块,可以基于插值滤波器执行插值。语法元素中可以包括要以子像素精度使用的插值滤波器的标识符。
运动补偿单元302可以使用视频编码器20在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据接收到的语法信息确定视频编码器200使用的插值滤波器,并使用该插值滤波器来产生预测块。
运动补偿单元302可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述如何对编码视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分割区进行编码的模式、每个帧间编码块的一个或多个参考帧(和参考帧列表)以及解码编码视频序列的其他信息。
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻块形成预测块。逆量化单元303逆量化(即,去量化)比特流中提供的并由熵解码单元301解码的经量化的视频块系数。逆变换单元303应用逆变换。
重构单元306可以将残差块与运动补偿单元202或帧内预测单元303生成的对应的预测块相加,以形成经解码的块。如果需要,还可以应用去块滤波器来对经解码的块进行滤波,以便移除块效应伪影。经解码的视频块然后被存储在缓冲器307中,该缓冲器307为后续的运动补偿提供参考块。
所公开的技术的一些实施例包括作出决定或确定启用视频处理工具或模式。在示例中,当启用视频处理工具或模式时,编码器将在对视频的块的处理中使用或实现该工具或模式,但不一定基于对该工具或模式的使用而修改得到的比特流。也就是说,当基于决定或确定启用视频处理工具或模式时,从视频的块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一个示例中,当启用视频处理工具或模式时,解码器将在知道已经基于视频处理工具或模式修改了比特流的情况下处理比特流。也就是说,从视频的比特流表示到视频的块的转换将使用基于决定或确定而启用的视频处理工具或模式来执行。
所公开的技术的一些实施例包括作出决定或确定禁用视频处理工具或模式。在示例中,当禁用视频处理工具或模式时,编码器将不在视频的块到视频的比特流表示的转换中使用该工具或模式。在另一个示例中,当禁用视频处理工具或模式时,解码器将在知道没有使用基于决定或确定而禁用的视频处理工具或模式修改比特流的情况下处理比特流。
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间应用视频压缩算法,反之亦然。如语法所定义的,当前视频块的比特流表示可以例如对应于共置或者散布在比特流内不同位置中的比特。例如,可以根据变换的和经编解码的误差残差值并且还使用比特流中的标头和其他字段中的比特来对宏块进行编码。
接下来提供对一些实施例优选的示例的例举。下面的条款示出了上述章节(例如项目8-16)中讨论的技术的示例实施例。
1.一种视频处理的方法(例如,如图17A所示的方法1710),包括:对于视频的视频块与视频的比特流之间的转换,根据次序来确定(1712)所选相邻样点列表,其中,该次序指定上相邻样点在左相邻样点之前被添加到所选相邻样点列表;以及基于该跨分量线性模型来执行(1714)转换,其中,该跨分量线性模型的参数是使用推导方法推导出的,该推导方法是基于来自所选相邻样点列表的样点的。
2.条款1的方法,其中,该推导方法是4点推导方法,在该4点推导方法中,两个较大样点被平均并且两个较小值被平均,并且这两个平均值用于推导线性参数。
3.条款1的方法,其中,该跨分量线性模型的参数是通过使用下采样的上相邻亮度样点推导出的。
4.条款1的方法,其中,上相邻样点和左相邻样点在下采样之前或之后。
5.一种视频处理的方法(例如,如图17B所示的方法1720),包括:对于视频的视频块与视频的比特流之间的转换,通过使用具有索引值的下采样的上相邻亮度样点来推导(1722)跨分量线性模型的参数,该索引值在基于用于推导跨分量线性模型的左相邻色度样点的数量和上相邻色度样点的数量确定的范围内;以及基于该跨分量线性模型的参数来执行(1724)转换。
6.条款5的方法,其中,该索引值在从cntL到cntL+cntT–1的范围内,其中,cntL和cntT分别表示用于推导CCLM参数的左相邻色度样点和上相邻色度样点的数量。
7.条款5的方法,其中,左相邻色度样点在上相邻亮度样点之前被添加到相邻样点列表中。
8.条款5的方法,其中,该跨分量线性模型的参数是使用4点推导方法推导出的,在该4点推导方法中,两个较大样点被平均并且两个较小的值被平均,并且这两个平均值用于推导线性参数。
9.一种视频处理的方法(例如,如图17C所示的方法1730),包括:对于视频的视频块与视频的比特流之间的转换,通过使用视频块的上相邻亮度样点的三行来推导(1732)跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行(1734)转换。
10.条款9的方法,其中,该跨分量线性模型的参数是使用4点推导方法推导出的,在该4点推导方法中,两个较大样点被平均并且两个较小值被平均,并且这两个平均值用于推导线性参数。
11.条款9的方法,其中,上相邻亮度样点和左相邻样点在下采样之前或之后。
12.一种视频处理的方法(例如,如图17D所示的方法1740),包括:对于视频的视频块与视频的比特流之间的转换,通过使用视频块的T1行和T2列左上相邻亮度样点来推导(1742)跨分量线性模型的参数,其中T1和T2是整数;以及基于该跨分量线性模型的参数来执行(1744)转换。
13.条款12的方法,其中,T1=2且T2=2。
14.条款12的方法,其中,T1=3且T2=3。
15.条款12的方法,其中,左上相邻亮度样点在下采样之前或之后。
16.一种视频处理的方法(例如,如图17E所示的方法1750),包括:对于视频的视频块与视频的比特流之间的转换,通过使用上相邻亮度样点的行的数量来推导(1752)跨线性分量模型的参数,其中该数量取决于指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移的语法元素;以及基于该跨分量线性模型的参数来执行(1754)转换。
17.条款16的方法,其中,该语法元素是sps_chroma_vertical_collocated_flag。
18.条款16的方法,其中,在该语法元素指示预测过程以针对相对于对应的亮度样点位置没有垂直偏移的色度样点位置而设计的方式操作的情况下,该数量为3。
19.条款17的方法,其中,在该语法元素指示预测过程不以针对相对于对应的亮度样点位置没有垂直偏移的色度样点位置而设计的方式操作情况下,该数量为2。
20.条款16的方法,其中,上相邻亮度样点在下采样之前或之后。
21.一种视频处理的方法(例如,如图17F所示的方法1760),包括:对于视频的视频块与视频的比特流之间的转换,基于指定是否和/或如何填充左上相邻样点取决于左上相邻样点中的至少一个的可用性而不是左上相邻样点和/或上相邻样点的可用性的规则来推导(1762)跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行(1764)转换。
22.条款21的方法,其中,左上相邻样点中的至少一个的可用性取决于左上相邻样点中的至少一个和视频块中的样点是在同一条带中还是在不同条带中。
23.条款22的方法,其中,同一条带或不同条带之一是矩形条带或非矩形条带。
24.条款22的方法,其中,该规则还指定在左上相邻样点中的至少一个和视频块中的样点在不同条带中时,填充左上相邻样点。
25.条款21的方法,其中,该规则还指定在左上相邻样点中的至少一个不可用的情况下,填充左上相邻样点。
26.一种视频处理的方法(例如,如图17G所示的方法1766),包括:对于视频的视频块与视频的比特流之间的转换,基于指定在推导参数的过程中是否使用左上相邻亮度样点取决于左上相邻亮度样点的可用性的规则来推导(1767)跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行(1768)转换。
27.条款26的方法,其中,在左上相邻亮度样点不在当前图片、或当前子图片、或当前片、或当前条带、或当前图砖、或当前编解码树单元、或当前处理单元、或任何其他当前视频单元中的情况下,左上相邻亮度样点不可用。
28.条款26的方法,其中,在左上相邻亮度样点与视频块中的样点在不同条带中的情况下,左上相邻亮度样点不可用。
29.条款26的方法,其中,该规则指定是否使用左上相邻亮度样点取决于左上相邻亮度样点和视频块的样点是否在同一图片、或同一子图片、或同一片、或同一条带、或同一图砖、或同一编解码树单元、或同一处理单元、或同一任何其他视频单元中。
30.条款26的方法,其中,该规则指定在左上相邻亮度样点与视频块的样点在不同的光栅条带中的情况下,不使用左上相邻亮度样点。
31.条款26的方法,其中,该规则指定在左上相邻亮度样点和视频块的样点在同一图片、或同一子图片、或同一片、或同一条带、或同一图砖、或同一编解码树单元、或同一处理单元、或同一任何其他视频单元中的情况下,不使用左上相邻亮度样点。
32.条款26的方法,其中,该规则还指定在左上相邻亮度样点不可用的情况下,使用重复填充来生成填充的左上相邻亮度样点。
33.条款26的方法,其中,该规则还指定在左上相邻亮度样点可用的情况下,使用重复填充来生成填充的左上相邻亮度样点。
34.条款32或33的方法,其中,该规则还指定在左相邻亮度样点或顶部相邻亮度样点中的至少一个可用的情况下使用重复填充。
35.条款32或33的方法,其中,在顶部相邻亮度样点可用的情况下,从顶部相邻亮度样点来填充左上相邻亮度样点。
36.条款35的方法,其中,pD[m][n]=pY[x][n],其中,(x,y)指示左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x–1..x–M,n=y–1..y–N,M和N是整数。
37.条款33或34的方法,其中,在左相邻亮度样点可用的情况下,从左相邻亮度样点来填充左上相邻亮度样点。
38.条款37的方法,其中,pD[m][n]=pY[m][y],其中(x,y)指示左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x–1..x–M,n=y–1..y–N,M和N是整数。
39.条款32或33的方法,其中,在顶部相邻亮度样点可用并且左相邻亮度样点可用的情况下,从顶部相邻亮度样点来填充左上相邻亮度样点。
40.条款39的方法,其中,pD[m][n]=pY[x][n],其中(x,y)指示左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x–1..x–M,n=y–1..y–N,M和N是整数。
41.条款32或33的方法,其中,在左相邻亮度样点可用并且顶部相邻亮度样点可用的情况下,从左相邻亮度样点来填充左上相邻亮度样点。
42.条款41的方法,其中,pD[m][n]=pY[m][y],其中(x,y)指示左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x–1..x–M,n=y–1..y–N,M和N是整数。
43.条款36、38、40和42中任一项的方法,其中,M=N=2或M=N=3。
44.条款26的方法,其中,该规则还指定在左上相邻亮度样点不可用的情况下使用预定义的值。
45.条款26的方法,其中,该规则还指定是否检查左上相邻亮度样点的可用性取决于左相邻亮度样点和/或顶部相邻亮度样点的可用性。
46.条款45的方法,其中,该规则还指定仅在左相邻亮度样点和顶部相邻亮度样点两者都可用时,才检查左上相邻亮度样点的可用性。
47.一种视频处理的方法(例如,如图17H所示的方法1770),包括:对于视频的视频块与视频的比特流之间的转换,基于指定在推导参数的过程中是否和/或如何使用和/或填充左上相邻亮度样点取决于左上相邻亮度样点、左相邻亮度样点和/或顶部相邻亮度样点的可用性的规则来推导(1772)跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行(1774)转换。
48.条款47的方法,其中,该规则指定仅在左上相邻亮度样点可用的情况下,才使用左上相邻亮度样点。
49.条款47的方法,其中,该规则指定仅在左上相邻亮度样点、左相邻亮度样点和顶部相邻亮度样点可用的情况下,才使用左上相邻亮度样点。
50.条款47的方法,其中,该规则指定在左相邻亮度样点和/或顶部相邻亮度样点可用的情况下,填充左上相邻亮度样点。
51.条款50的方法,其中,该规则指定仅在(1)左相邻亮度样点或顶部相邻亮度样点可用并且(2)左上相邻亮度样点不可用的情况下,才填充左上相邻亮度样点。
52.条款50的方法,其中,该规则指定仅在(1)左相邻亮度样点和顶部相邻亮度样点可用并且(2)左上相邻亮度样点不可用的情况下,才填充左上相邻亮度样点。
53.条款50的方法,其中,该规则指定使用顶部相邻亮度样点和/或左相邻亮度样点来填充左上相邻亮度样点。
54.条款53的方法,其中,左上相邻亮度样点pY[x][y]被设置为等于pY[0][y]或pY[x][0]的亮度样点,其中x=–1或–2,y=–1或–2。
55.一种视频处理的方法(例如,如图17I所示的方法1780),包括:对于视频的视频块与视频的比特流之间的转换,基于指定是否检查左上相邻亮度样点的可用性和/或是否使用和/或是否填充左上相邻亮度样点取决于视频的色度颜色格式的规则来推导(1782)跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行(1784)转换。
56.条款55的方法,其中,该规则指定在视频的色度格式为4:4:4的情况下,不检查左上相邻亮度样点的可用性和/或不使用和/或不填充左上相邻亮度样点。
57.一种视频处理的方法(例如,如图17J所示的方法1790),包括:对于视频的视频块与视频的比特流之间的转换,基于指定是否填充左上相邻亮度样点和/或要填充哪个样点取决于语法元素的规则来推导(1792)跨分量线性模型的参数,该语法元素指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移;以及基于该跨分量线性模型的参数来执行(1794)转换。
58.条款57的方法,其中,该语法元素是sps_chroma_vertical_collocated_flag。
59.条款57的方法,其中,该规则还指定在该语法元素具有特定值的情况下,填充左上相邻亮度样点。
60.条款57的方法,其中,该规则还指定在左上相邻亮度样点可用的情况下使用预定义的值。
61.条款60的方法,其中,该预定义的值等于常数值。
62.条款60的方法,其中,该预定义的值是使用左相邻亮度样点或/和顶部相邻亮度样点推导出的。
63.条款60的方法,其中,该预定义的值等于左相邻亮度样点或/和顶部相邻亮度样点的平均值。
64.条款60的方法,其中,该预定义的值取决于视频块的样点的比特深度。
65.条款60的方法,其中,该预定义的值等于1<<(BD-1),其中BD表示视频块的样点的比特深度。
66.一种视频处理的方法(例如,如图17K所示的方法1800),包括:对于视频的视频块与视频的比特流之间的转换,基于指定在顶部相邻亮度样点和/或左相邻亮度样点不可用的情况下,使用视频块的最顶部样点和/或最左样点推导顶部相邻亮度样点和/或左相邻亮度样点–的规则来推导(1802)跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行(1804)转换。
67.条款66的方法,其中,该规则还指定在左相邻亮度样点和/或顶部相邻亮度样点可用的情况下,使用左相邻亮度样点和/或顶部相邻亮度样点来推导左上相邻亮度样点。
68.条款67的方法,其中,该规则还指定在顶部相邻亮度样点不可用的情况下,使用视频块的最顶部样点和左相邻亮度样点来推导顶部相邻亮度样点和左上相邻亮度样点。
69.条款68的方法,其中,顶部相邻样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=–1..–M,y=0..SubHeightC*nTbH–1,并且左上相邻亮度样点pY[x][y]被设置为等于亮度样点pY[x][0],其中x=-M..-1,y=-1..-N,其中pY[0][0]表示视频块的左上样点,nTbW表示视频块的宽度,M和N是整数,并且SubHeightC是视频块的高度并且是根据包括视频块的图片的色度格式从表中获得的。
70.条款69的方法,其中,M=2且N=3。
71.条款69的方法,其中,M取决于色度格式。
72.条款69的方法,其中,填充最多T个左上相邻亮度样点,其中,T是整数。
73.条款67的方法,其中,该规则还指定在左相邻亮度样点不可用的情况下,使用当前块的最左样点和顶部相邻亮度样点来推导左相邻亮度样点和左上相邻亮度样点。
74.条款73的方法,其中,左相邻样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–M,y=0..SubHeightC*nTbH–1,并且左上相邻亮度样点pY[x][y]被设置为等于亮度样点pY[0][y],其中x=–1..–M,y=–1..–N,其中,pY[0][0]表示视频块的左上样点,nTbH表示视频块的高度,M和N是整数,并且SubHeightC是视频块的高度并且是根据包括视频块的图片的色度格式从表中获得的。
75.条款74的方法,其中,M=1且N=3。
76.条款74的方法,其中,M取决于色度格式。
77.条款74的方法,其中,填充最多T个左上相邻亮度样点,其中,T是整数。
78.条款67的方法,其中,该规则还指定使用左上相邻亮度样点来填充顶部相邻亮度样点和/或左相邻亮度样点。
79.条款66的方法,其中,该规则还指定是否填充顶部相邻亮度样点和/或左相邻亮度样点和/或顶部相邻色度样点和/或左相邻色度样点取决于视频的色度格式。
80.条款66的方法,其中,该规则还指定在视频的色度格式为4:4:4的情况下,不填充顶部相邻亮度样点和/或左相邻亮度样点和/或顶部相邻色度样点和/或左相邻色度样点。
81.条款66的方法,其中,该规则还指定使用重复填充。
82.一种视频处理的方法(例如,如图17L所示的方法1810),包括:对于视频的视频块与视频的比特流之间的转换,通过根据预定的次序填充顶部相邻样点、左相邻样点和左上相邻样点来推导(1812)跨分量线性模型的参数;以及基于该跨分量线性模型的参数来执行(1814)转换。
83.条款82的方法,其中,顶部相邻样点、左相邻样点和左上相邻样点根据预定的次序被依次填充。
84.条款82的方法,其中,左相邻样点、顶部相邻样点和左上相邻样点根据预定的次序被依次填充。
85.条款82的方法,其中,左上相邻样点、顶部相邻样点和左相邻样点根据预定的次序被依次填充。
86.条款82的方法,其中,左上相邻样点、左相邻样点和顶部相邻样点根据预定的次序被依次填充。
87.条款1至86中任一项的方法,其中,该跨分量线性模型使用线性模式来根据另一分量推导色度分量的预测值。
88.条款1至87中任一项的方法,其中,该转换包括将视频编码成比特流。
89.条款1至87中任一项的方法,其中,该转换包括从比特流中解码视频。
90.条款1至87的方法,其中,该转换包括从视频生成比特流,并且该方法还包括:将该比特流存储在非暂时性计算机可读记录介质中。
91.一种视频处理装置,包括被配置为实现条款1至90中任一项或多项所述的方法的处理器。
92.一种存储视频的比特流的方法,包括,条款1至90中任一项所述的方法,并且还包括将该比特流存储到非暂时性计算机可读记录介质上。
93.一种存储程序代码的计算机可读介质,该程序代码在被执行时使处理器实现条款1至90中任一项或多项所述的方法。
94.一种计算机可读介质,其存储根据上述方法中的任一种生成的比特流。
95.一种用于存储比特流表示的视频处理装置,其中,该视频处理装置被配置为实现条款1至90中任一项或多项所述的方法。
本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中或在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中或者在它们中的一个或多个的组合中实现。所公开的以及其他实施例可以被实现为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译语言或解释语言)来编写,并且其可以以任何形式(包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元)来部署。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
本文档中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。一般地,处理器将从只读存储器或随机访问存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)、或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传送数据、或者从其接收数据并向其传送数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可换式磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
尽管本专利文档包含多个细节,但这些细节不应被解释为对任何主题或可能要求保护的范围的限制,而是作为特定于特定技术的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实现或以任何合适的子组合实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初是如此要求保护的,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,尽管在附图中以特定次序描绘了操作,但是这不应该被理解为需要以所示的特定次序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
仅描述了一些实现方式和示例,并且可以基于本专利文档中描述和示出的内容来做出其他实现方式、增强和变化。
Claims (95)
1.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,根据次序来确定所选相邻样点列表,其中,所述次序指定上相邻样点在左相邻样点之前被添加到所述所选相邻样点列表;以及
基于跨分量线性模型来执行所述转换,
其中,跨分量线性模型的参数是使用基于来自所述所选相邻样点列表的样点的推导方法推导出的。
2.根据权利要求1所述的方法,其中,所述推导方法是4点推导方法,在所述4点推导方法中,两个较大样点被平均并且两个较小值被平均,并且所述两个平均值用于推导线性参数。
3.根据权利要求1所述的方法,其中,所述跨分量线性模型的参数是通过使用下采样的上相邻亮度样点推导出的。
4.根据权利要求1所述的方法,其中,所述上相邻样点和所述左相邻样点在下采样之前或之后。
5.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,通过使用具有索引值的下采样的上相邻亮度样点来推导跨分量线性模型的参数,所述索引值在基于用于推导所述跨分量线性模型的左相邻色度样点的数量和上相邻色度样点的数量确定的范围内;以及
基于所述跨分量线性模型的参数来执行所述转换。
6.根据权利要求5所述的方法,其中,所述索引值在从cntL到cntL+cntT-1的范围内,其中,cntL和cntT分别表示用于推导CCLM参数的左相邻色度样点和上相邻色度样点的数量。
7.根据权利要求5所述的方法,其中,所述左相邻色度样点在所述上相邻亮度样点之前被添加到相邻样点列表中。
8.根据权利要求5所述的方法,其中,所述跨分量线性模型的参数是使用4点推导方法推导出的,在所述4点推导方法中,两个较大样点被平均并且两个较小的值被平均,并且所述两个平均值用于推导线性参数。
9.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,通过使用所述视频块的三行上相邻亮度样点来推导跨分量线性模型的参数;以及
基于所述跨分量线性模型的参数来执行所述转换。
10.根据权利要求9所述的方法,其中,所述跨分量线性模型的参数是使用4点推导方法推导出的,在所述4点推导方法中,两个较大样点被平均并且两个较小值被平均,并且所述两个平均值用于推导线性参数。
11.根据权利要求9所述的方法,其中,所述上相邻亮度样点和所述左相邻样点在下采样之前或之后。
12.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,通过使用所述视频块的T1行和T2列左上相邻亮度样点来推导跨分量线性模型的参数,其中,T1和T2是整数;以及
基于所述跨分量线性模型的参数来执行所述转换。
13.根据权利要求12所述的方法,其中,T1=2且T2=2。
14.根据权利要求12所述的方法,其中,T1=3且T2=3。
15.根据权利要求12所述的方法,其中,所述左上相邻亮度样点在下采样之前或之后。
16.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,通过使用上相邻亮度样点的行的数量来推导跨线性分量模型的参数,其中,所述数量取决于指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移的语法元素;以及
基于所述跨分量线性模型的参数来执行所述转换。
17.根据权利要求16所述的方法,其中,所述语法元素是sps_chroma_ve rtical_collocated_flag。
18.根据权利要求16所述的方法,其中,在所述语法元素指示预测过程以针对相对于对应的亮度样点位置没有垂直偏移的色度样点位置而设计的方式操作的情况下,所述数量为3。
19.根据权利要求17所述的方法,其中,在所述语法元素指示预测过程不以针对相对于对应的亮度样点位置没有垂直偏移的色度样点位置而设计的方式操作情况下,所述数量为2。
20.根据权利要求16所述的方法,其中,所述上相邻亮度样点在下采样之前或之后。
21.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,基于指定是否和/或如何填充左上相邻样点取决于所述左上相邻样点中的至少一个的可用性而不是左相邻样点和/或上相邻样点的可用性的规则来推导跨分量线性模型的参数;以及
基于所述跨分量线性模型的参数来执行所述转换。
22.根据权利要求21所述的方法,其中,所述左上相邻样点中的至少一个的可用性取决于所述左上相邻样点中的至少一个和所述视频块中的样点是在同一条带中还是在不同条带中。
23.根据权利要求22所述的方法,其中,所述同一条带或不同条带之一是矩形条带或非矩形条带。
24.根据权利要求22所述的方法,其中,所述规则还指定在所述左上相邻样点中的至少一个和所述视频块中的样点在不同条带中时,填充所述左上相邻样点。
25.根据权利要求21所述的方法,其中,所述规则还指定在至少一个左上相邻样点不可用的情况下,填充所述左上相邻样点。
26.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,基于指定在推导跨分量线性模型的参数的过程中是否使用左上相邻亮度样点取决于所述左上相邻亮度样点的可用性的规则来推导跨分量线性模型的参数;以及
基于所述跨分量线性模型的参数来执行所述转换。
27.根据权利要求26所述的方法,其中,在所述左上相邻亮度样点不在当前图片、或当前子图片、或当前片、或当前条带、或当前图砖、或当前编解码树单元、或当前处理单元、或任何其他当前视频单元中的情况下,所述左上相邻亮度样点不可用。
28.根据权利要求26所述的方法,其中,在所述左上相邻亮度样点与所述视频块中的样点在不同条带中的情况下,所述左上相邻亮度样点不可用。
29.根据权利要求26所述的方法,其中,所述规则指定是否使用所述左上相邻亮度样点取决于所述左上相邻亮度样点和所述视频块的样点是否在同一图片、或同一子图片、或同一片、或同一条带、或同一图砖、或同一编解码树单元、或同一处理单元、或同一任何其他视频单元中。
30.根据权利要求26所述的方法,其中,所述规则指定在所述左上相邻亮度样点与所述视频块的样点在不同的光栅条带中的情况下,不使用所述左上相邻亮度样点。
31.根据权利要求26所述的方法,其中,所述规则指定在所述左上相邻亮度样点和所述视频块的样点在同一图片、或同一子图片、或同一片、或同一条带、或同一图砖、或同一编解码树单元、或同一处理单元、或同一任何其他视频单元中的情况下,不使用所述左上相邻亮度样点。
32.根据权利要求26所述的方法,其中,所述规则还指定在所述左上相邻亮度样点不可用的情况下,使用重复填充来生成填充的左上相邻亮度样点。
33.根据权利要求26所述的方法,其中,所述规则还指定在所述左上相邻亮度样点可用的情况下,使用重复填充来生成填充的左上相邻亮度样点。
34.根据权利要求32或33所述的方法,其中,所述规则还指定在左相邻亮度样点或顶部相邻亮度样点中的至少一个可用的情况下,使用重复填充。
35.根据权利要求32或33所述的方法,其中,在所述顶部相邻亮度样点可用的情况下,从顶部相邻亮度样点来填充所述左上相邻亮度样点。
36.根据权利要求35所述的方法,其中,pD[m][n]=pY[x][n],其中,(x,y)指示所述左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x-1..x-M,n=y-1..y-N,M和N是整数。
37.根据权利要求33或34所述的方法,其中,在所述左相邻亮度样点可用的情况下,从左相邻亮度样点来填充所述左上相邻亮度样点。
38.根据权利要求37所述的方法,其中,pD[m][n]=pY[m][y],其中(x,y)指示所述左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x-1..x-M,n=y-1..y-N,M和N是整数。
39.根据权利要求32或33所述的方法,其中,在所述顶部相邻亮度样点可用并且左相邻亮度样点可用的情况下,从顶部相邻亮度样点来填充所述左上相邻亮度样点。
40.根据权利要求39所述的方法,其中,pD[m][n]=pY[x][n],其中(x,y)指示所述左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x-1..x-M,n=y-1..y-N,M和N是整数。
41.根据权利要求32或33所述的方法,其中,在所述左相邻亮度样点可用并且顶部相邻亮度样点可用的情况下,从左相邻亮度样点来填充所述左上相邻亮度样点。
42.根据权利要求41所述的方法,其中,pD[m][n]=pY[m][y],其中(x,y)指示所述左上相邻亮度样点的位置,pY[i][j]指示去块滤波器过程之前的重构亮度样点,并且pD[m][n]指示填充的左上相邻亮度样点,其中m=x-1..x-M,n=y-1..y-N,M和N是整数。
43.根据权利要求36、38、40和42中任一项所述的方法,其中,M=N=2或M=N=3。
44.根据权利要求26所述的方法,其中,所述规则还指定在所述左上相邻亮度样点不可用的情况下,使用预定义的值。
45.根据权利要求26所述的方法,其中,所述规则还指定是否检查所述左上相邻亮度样点的可用性取决于左相邻亮度样点和/或顶部相邻亮度样点的可用性。
46.根据权利要求45所述的方法,其中,所述规则还指定仅在所述左相邻亮度样点和所述顶部相邻亮度样点两者都可用时,才检查所述左上相邻亮度样点的可用性。
47.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,基于指定在推导跨分量线性模型的参数的过程中是否和/或如何使用和/或填充左上相邻亮度样点取决于左上相邻亮度样点、左相邻亮度样点和/或顶部相邻亮度样点的可用性的规则来推导跨分量线性模型的参数;以及
基于所述跨分量线性模型的参数来执行所述转换。
48.根据权利要求47所述的方法,其中,所述规则指定仅在所述左上相邻亮度样点可用的情况下,才使用所述左上相邻亮度样点。
49.根据权利要求47所述的方法,其中,所述规则指定仅在所述左上相邻亮度样点、所述左相邻亮度样点和所述顶部相邻亮度样点可用的情况下,才使用所述左上相邻亮度样点。
50.根据权利要求47所述的方法,其中,所述规则指定在所述左相邻亮度样点和/或所述顶部相邻亮度样点可用的情况下,填充所述左上相邻亮度样点。
51.根据权利要求50所述的方法,其中,所述规则指定仅在(1)所述左相邻亮度样点或所述顶部相邻亮度样点可用并且(2)所述左上相邻亮度样点不可用的情况下,才填充所述左上相邻亮度样点。
52.根据权利要求50所述的方法,其中,所述规则指定仅在(1)所述左相邻亮度样点和所述顶部相邻亮度样点可用并且(2)所述左上相邻亮度样点不可用的情况下,才填充所述左上相邻亮度样点。
53.根据权利要求50所述的方法,其中,所述规则指定使用所述顶部相邻亮度样点和/或所述左相邻亮度样点来填充所述左上相邻亮度样点。
54.根据权利要求53所述的方法,其中,所述左上相邻亮度样点,即pY[x][y],被设置为等于pY[0][y]或pY[x][0]的亮度样点,其中x=-1或-2,y=-1或-2。
55.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,基于指定是否检查左上相邻亮度样点的可用性和/或是否使用和/或是否填充所述左上相邻亮度样点取决于所述视频的色度颜色格式的规则来推导跨分量线性模型的参数;以及
基于所述跨分量线性模型的参数来执行所述转换。
56.根据权利要求55所述的方法,其中,所述规则指定在所述视频的色度格式为4:4:4的情况下,不检查所述左上相邻亮度样点的可用性和/或不使用和/或不填充所述左上相邻亮度样点。
57.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,基于指定是否填充左上相邻亮度样点和/或要填充哪个样点取决于语法元素的规则来推导跨分量线性模型的参数,所述语法元素指示色度样点位置相对于对应的亮度样点位置是否没有垂直偏移;以及
基于所述跨分量线性模型的参数来执行所述转换。
58.根据权利要求57所述的方法,其中,所述语法元素是sps_chroma_ve rtical_collocated_flag。
59.根据权利要求57所述的方法,其中,所述规则还指定在所述语法元素具有特定值的情况下,填充所述左上相邻亮度样点。
60.根据权利要求57所述的方法,其中,所述规则还指定在所述左上相邻亮度样点可用的情况下,使用预定义的值。
61.根据权利要求60所述的方法,其中,所述预定义的值等于常数值。
62.根据权利要求60所述的方法,其中,所述预定义的值是使用左相邻亮度样点或/和顶部相邻亮度样点推导出的。
63.根据权利要求60所述的方法,其中,所述预定义的值等于左相邻亮度样点或/和顶部相邻亮度样点的平均值。
64.根据权利要求60所述的方法,其中,所述预定义的值取决于所述视频块的样点的比特深度。
65.根据权利要求60所述的方法,其中,所述预定义的值等于1<<(BD-1),其中BD表示所述视频块的样点的比特深度。
66.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,基于指定在顶部相邻亮度样点和/或左相邻亮度样点不可用的情况下,使用所述视频块的最顶部样点和/或最左样点推导顶部相邻亮度样点和/或左相邻亮度样点的规则,来推导跨分量线性模型的参数;以及
基于所述跨分量线性模型的参数来执行所述转换。
67.根据权利要求66所述的方法,其中,所述规则还指定在所述左相邻亮度样点和/或所述顶部相邻亮度样点可用的情况下,使用所述左相邻亮度样点和/或所述顶部相邻亮度样点来推导左上相邻亮度样点。
68.根据权利要求67所述的方法,其中,所述规则还指定在所述顶部相邻亮度样点不可用的情况下,使用所述视频块的最顶部样点和所述左相邻亮度样点来推导所述顶部相邻亮度样点和所述左上相邻亮度样点。
69.根据权利要求68所述的方法,其中,所述顶部相邻样点,即pY[x][y],被设置为等于亮度样点pY[x][0],其中x=-1..-M,y=0..SubH eightC*nTbH-1,并且所述左上相邻亮度样点,即pY[x][y],被设置为等于亮度样点pY[x][0],其中x=-M..-1,y=-1..-N,其中pY[0][0]表示所述视频块的左上样点,nTbW表示所述视频块的宽度,M和N是整数,并且SubHeightC是所述视频块的高度并且是根据包括所述视频块的图片的色度格式从表中获得的。
70.根据权利要求69所述的方法,其中,M=2且N=3。
71.根据权利要求69所述的方法,其中,M取决于色度格式。
72.根据权利要求69所述的方法,其中,填充最多T个左上相邻亮度样点,其中,T是整数。
73.根据权利要求67所述的方法,其中,所述规则还指定在所述左相邻亮度样点不可用的情况下,使用当前块的最左样点和所述顶部相邻亮度样点来推导所述左相邻亮度样点和所述左上相邻亮度样点。
74.根据权利要求73所述的方法,其中,所述左相邻样点,即pY[x][y],被设置为等于亮度样点pY[0][y],其中x=-1..-M,y=0..SubHeigh tC*nTbH-1,并且所述左上相邻亮度样点,即pY[x][y],被设置为等于亮度样点pY[0][y],其中x=-1..-M,y=-1..-N,其中,pY[0][0]表示所述视频块的左上样点,nTbH表示所述视频块的高度,M和N是整数,并且SubHeightC是所述视频块的高度并且是根据包括所述视频块的图片的色度格式从表中获得的。
75.根据权利要求74所述的方法,其中,M=1且N=3。
76.根据权利要求74所述的方法,其中,M取决于色度格式。
77.根据权利要求74所述的方法,其中,填充最多T个左上相邻亮度样点,其中,T是整数。
78.根据权利要求67所述的方法,其中,所述规则还指定使用所述左上相邻亮度样点来填充所述顶部相邻亮度样点和/或所述左相邻亮度样点。
79.根据权利要求66所述的方法,其中,所述规则还指定是否填充所述顶部相邻亮度样点和/或所述左相邻亮度样点和/或顶部相邻色度样点和/或左相邻色度样点取决于所述视频的色度格式。
80.根据权利要求66所述的方法,其中,所述规则还指定在所述视频的色度格式为4:4:4的情况下,不填充所述顶部相邻亮度样点和/或所述左相邻亮度样点和/或顶部相邻色度样点和/或左相邻色度样点。
81.根据权利要求66所述的方法,其中,所述规则还指定使用重复填充。
82.一种视频处理的方法,包括:
对于视频的视频块与所述视频的比特流之间的转换,通过根据预定的次序填充顶部相邻样点、左相邻样点和左上相邻样点来推导跨分量线性模型的参数;以及
基于所述跨分量线性模型的参数来执行所述转换。
83.根据权利要求82所述的方法,其中,所述顶部相邻样点、所述左相邻样点和所述左上相邻样点根据预定的次序被依次填充。
84.根据权利要求82所述的方法,其中,所述左相邻样点、所述顶部相邻样点和所述左上相邻样点根据预定的次序被依次填充。
85.根据权利要求82所述的方法,其中,所述左上相邻样点、所述顶部相邻样点和所述左相邻样点根据预定的次序被依次填充。
86.根据权利要求82所述的方法,其中,所述左上相邻样点、所述左相邻样点和所述顶部相邻样点根据预定的次序被依次填充。
87.根据权利要求1至86中任一项所述的方法,其中,所述跨分量线性模型使用线性模式来根据另一分量推导色度分量的预测值。
88.根据权利要求1至87中任一项所述的方法,其中,所述转换包括将所述视频编码成所述比特流。
89.根据权利要求1至87中任一项所述的方法,其中,所述转换包括从所述比特流中解码所述视频。
90.根据权利要求1至87中任一项所述的方法,其中,所述转换包括从所述视频生成所述比特流,并且所述方法还包括:将所述比特流存储在非暂时性计算机可读记录介质中。
91.一种视频处理装置,包括被配置为实现根据权利要求1至90中任一项或多项所述的方法的处理器。
92.一种存储视频的比特流的方法,包括根据权利要求1至90中任一项所述的方法,并且还包括将所述比特流存储到非暂时性计算机可读记录介质。
93.一种存储程序代码的计算机可读介质,所述程序代码在被执行时使处理器实现根据权利要求1至90中任一项或多项所述的方法。
94.一种计算机可读介质,其存储根据上述方法中的任一种生成的比特流。
95.一种用于存储比特流表示的视频处理装置,其中,所述视频处理装置被配置为实现根据权利要求1至90中任一项或多项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020080535 | 2020-03-21 | ||
CNPCT/CN2020/081958 | 2020-03-29 | ||
CN2020081958 | 2020-03-29 | ||
CNPCT/CN2020/080535 | 2021-03-21 | ||
PCT/CN2021/082045 WO2021190440A1 (en) | 2020-03-21 | 2021-03-22 | Using neighboring samples in cross-component video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115606177A true CN115606177A (zh) | 2023-01-13 |
Family
ID=77890943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180023235.0A Pending CN115606177A (zh) | 2020-03-21 | 2021-03-22 | 在跨分量视频编解码中使用相邻样点 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20230036581A1 (zh) |
CN (1) | CN115606177A (zh) |
WO (1) | WO2021190440A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024169947A1 (en) * | 2023-02-16 | 2024-08-22 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for video processing |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4094441A4 (en) * | 2020-04-01 | 2023-08-16 | Huawei Technologies Co., Ltd. | METHOD AND APPARATUS FOR SAMPLE EXTRACTION AND FILLING FOR SUB-SAMPLING FILTERING FOR CROSS-COMPONENT LINEAR MODEL PREDICTION |
US11575909B2 (en) * | 2020-04-07 | 2023-02-07 | Tencent America LLC | Method and apparatus for video coding |
WO2024109618A1 (en) * | 2022-11-21 | 2024-05-30 | Mediatek Inc. | Method and apparatus of inheriting cross-component models with cross-component information propagation in video coding system |
WO2024193577A1 (en) * | 2023-03-20 | 2024-09-26 | Mediatek Inc. | Methods and apparatus for hiding bias term of cross-component prediction model in video coding |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020120141A (ja) * | 2017-05-26 | 2020-08-06 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置、フィルタ装置 |
CN118413666A (zh) * | 2017-11-28 | 2024-07-30 | Lx 半导体科技有限公司 | 图像编码/解码方法、图像数据的传输方法和存储介质 |
CN116708833A (zh) * | 2018-07-02 | 2023-09-05 | Lg电子株式会社 | 编解码和发送方法及存储介质 |
CN110999290B (zh) * | 2018-07-15 | 2021-07-16 | 华为技术有限公司 | 使用跨分量线性模型进行帧内预测的方法和装置 |
TWI814890B (zh) * | 2018-08-17 | 2023-09-11 | 大陸商北京字節跳動網絡技術有限公司 | 簡化的跨分量預測 |
US11197005B2 (en) * | 2018-11-08 | 2021-12-07 | Qualcomm Incorporated | Cross-component prediction for video coding |
-
2021
- 2021-03-22 CN CN202180023235.0A patent/CN115606177A/zh active Pending
- 2021-03-22 WO PCT/CN2021/082045 patent/WO2021190440A1/en active Application Filing
-
2022
- 2022-09-21 US US17/950,037 patent/US20230036581A1/en active Pending
-
2023
- 2023-11-06 US US18/502,724 patent/US20240098266A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024169947A1 (en) * | 2023-02-16 | 2024-08-22 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for video processing |
Also Published As
Publication number | Publication date |
---|---|
WO2021190440A1 (en) | 2021-09-30 |
US20240098266A1 (en) | 2024-03-21 |
US20230036581A1 (en) | 2023-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7534399B2 (ja) | クロス成分映像コーディングにおける線形パラメータの導出 | |
CN113728642A (zh) | 编解码视频的量化残差差分脉冲编解码调制表示 | |
CN115244924A (zh) | 跨分量自适应环路滤波器的信令通知 | |
CN115606177A (zh) | 在跨分量视频编解码中使用相邻样点 | |
US20220141465A1 (en) | Method and device for processing video signal | |
KR102649584B1 (ko) | 크로마 인트라 모드에 기초한 크기 제한 | |
WO2021104409A1 (en) | Cross-component adaptive filtering and subblock coding | |
WO2021088951A1 (en) | Quantization properties of adaptive in-loop color-space transform for video coding | |
CN113841402A (zh) | 视频编解码中大块的变换设计 | |
CN115066899A (zh) | 编解码视频的可分二次变换处理 | |
CN114342398A (zh) | 默认缩放矩阵和用户定义缩放矩阵的使用 | |
JP2024023524A (ja) | クロスコンポーネント映像コーディングの信号通知のための構文 | |
JP2023521119A (ja) | ビデオコーディングにおけるスキップブロックの変換のための最小許容量子化 | |
CN115606182A (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 |