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

交叉分量预测的使用限制的制作方法

2022-12-03 09:31:20 来源:中国专利 TAG:
交叉分量预测的使用限制1.相关申请的交叉引用2.根据适用的专利法和/或根据《巴黎公约》的规则,本技术是为了及时要求对2020年4月18日提交的国际专利申请no.pct/cn2020/085484的优先权和利益。就法律规定的所有目的而言,上述申请的全部公开内容通过引用并入作为本技术公开的一部分。
技术领域
:3.本文件涉及视频和图像编解码技术。
背景技术
::4.在互联网和其他数字通信网络中,数字视频占据了最大的带宽使用量。随着能够接收并显示视频的连接用户设备的数量增加,预计针对数字视频使用的带宽需求将继续增长。技术实现要素:5.所公开的技术可以由视频或图像解码器或编码器实施例用于使用交叉分量线性模型预测来执行编码或解码。6.在一个示例方面,公开了一种处理视频的方法。方法包括:针对在视频的色度块与视频的经编解码表示之间的转换,通过下采样的同位相邻顶部亮度样点来推导交叉分量线性模型的参数,所述下采样的同位相邻顶部亮度样点是使用下采样滤波器从同位亮度块的n个上方相邻行生成的,其中n是正整数;以及使用使用交叉分量线性模型生成的经预测色度块来执行转换。7.在另一示例方面,公开了一种处理视频的方法。该方法包括:对于具有4:2:2颜色格式的视频的视频块与视频的比特流之间的转换,根据规则确定用于视频块的交叉分量线性模型的参数;以及基于该确定来执行转换,并且其中,语法元素指示视频的色度样点是否相对于视频的亮度样点垂直移位,并且其中规则指定该参数是独立于语法元素的值而确定的。8.在另一示例方面,公开了一种处理视频的方法。该方法包括:根据规则执行视频与视频的比特流之间的转换,并且其中格式规则指定由于视频具有4:2:2或4:4:4颜色格式,指示色度样点位置是否相对于对应的亮度样点位置垂直移位的字段被设置为默认值。9.在另一示例方面,公开了一种处理视频的方法。该方法包括:对于视频的视频块与视频的比特流之间的转换,根据规则确定用于视频块的交叉分量线性模型(cclm)的参数;以及基于该确定来执行转换,并且其中该规则指定仅在表示相邻亮度样点的变量具有特定值的情况下才在cclm的参数的确定中使用该变量。10.在另一示例方面,公开了一种处理视频的方法。该方法包括:对于包括视频单元的视频与该视频的比特流之间的转换,根据规则确定是否针对该视频单元启用第一编解码工具,其中规则指定第一编解码工具和第二编解码工具是互斥启用的,并且其中第一编解码工具或第二编解码工具包括符号数据隐藏工具;以及根据该确定来执行转换。11.在另一示例方面,公开了一种处理视频的方法。该方法包括:对于包括视频单元的视频与该视频的比特流之间的转换,根据规则确定是否针对该视频单元启用第一编解码工具,其中规则指定第一编解码工具和第二编解码工具是互斥启用的,并且其中第一编解码工具或第二编解码工具包括依赖量化工具;以及根据该确定来执行转换。12.在另一示例方面,公开了一种处理视频的方法。该方法包括:根据规则执行包括包含一个或多个条带的一个或多个图片的视频与该视频的比特流之间的转换,并且其中规则指定条带的条带类型取决于用于该条带的参考图片列表的参考图片条目。13.在另一示例方面,公开了一种处理视频的方法。该方法包括:根据规则执行包括包含一个或多个条带的一个或多个图片的视频和该视频的比特流之间的转换,其中规则指定自适应参数集(aps)中允许的滤波器的数量或aps的数量取决于视频的经编解码信息。14.在另一示例方面,上述方法可以由包括处理器的视频编码器装置来实现。15.在又一示例方面,这些方法可以以处理器可执行指令的形式实现,并存储在计算机可读程序介质上。16.本文件还描述了这些和其他方面。附图说明17.图1a示出了图片中4:2:2的亮度和色度样点的标称垂直和水平位置。18.图1b示出了视频编码器的示例。19.图2示出67个帧内预测模式的示例。20.图3示出了水平和垂直遍历扫描的示例。21.图4示出了用于α和β的推导的样点的位置示例。22.图5示出了将4x8样点的块划分为两个独立的可解码区域的示例。23.图6示出了为了将具有垂直预测器的4xn块的吞吐量最大化而进行的像素行的处理的示例顺序。24.图7示出了低频不可分离变换(lfnst)过程的示例。25.图8示出了在用于4:2:2视频的cclm参数的推导中使用的相邻色度样点和下采样的同位相邻亮度样点的示例。26.图9示出了视频处理装置的示例。27.图10示出了视频编码器的框图。28.图11是视频处理方法的示例的流程图。29.图12是视频处理系统的示例的框图。30.图13示出了当前块中的样点和要使用的左上样点的示例。31.图14是示出示例视频编解码系统的框图。32.图15是示出根据所公开技术的一些实施例的编码器的框图。33.图16是示出根据所公开技术的一些实施例的解码器的框图。34.图17a和图17b是根据所公开技术的一些实施例的示例视频处理方法的流程图。35.图18是根据所公开技术的一些实施例的视频处理的示例方法的流程图。36.图19a至图19d是根据所公开技术的一些实施例的示例视频处理方法的流程图。具体实施方式37.本文件提供了可由图像或视频比特流的解码器使用以改进经解压缩或经解码的数字视频或图像的质量的各种技术。为了简洁起见,本文使用术语“视频”来包括图片序列(传统上称为视频)和单个图像。此外,视频编码器还可以在编码过程中实现这些技术,以便重建用于进一步编码的经解码帧。38.为了便于理解,在本文档中使用了节标题,并且节标题并不将实施例和技术限制到对应的小节。因此,来自一节的实施例可以与来自其他节的实施例组合。39.1.简要概述40.本发明涉及视频编解码技术。具体地,它涉及图像/视频编解码中的交叉分量线性模型预测和其他编解码工具。它可以应用于现有的视频编解码标准(如hevc),或有待最终确定的标准(多功能视频编解码)。它也可能适用于未来的视频编解码标准或视频编解码器。41.2.
背景技术
:42.视频编解码标准主要是通过公知的itu-t和iso/iec标准的开发而发展起来的。itu-t制定了h.261和h.263,iso/iec制定了mpeg-1和mpeg-4视觉,两个组织联合制定了h.262/mpeg-2视频、h.264/mpeg-4高级视频编解码(avc)标准和h.265/hevc标准。自h.262以来,视频编解码标准是基于混合视频编解码结构的,其中使用时域预测加变换编解码。为了探索超越hevc的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索小组(jvet)。此后,许多新的方法被jvet所采用,并被引入到名为联合探索模型(jem)的参考软件中。2018年4月,vceg(q6/16)和iso/iecjtc1sc29/wg11(mpeg)之间的联合视频专家团队(jvet)成立,旨在制定vvc标准,目标是比hevc降低50%的比特率。43.vvc草案的最新版本,即多功能视频编码(草案7)可在以下网址找到:44.http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/16_geneva/wg11/jvet-p2001-v9.zip45.vvc的最新参考软件(名称为vtm)可在以下网址找到:46.https://vcgit.hhi.fraunhofer.de/jvet/vvcsoftware_vtm/-/tags/vtm-6.047.2.1.颜色空间与色度子采样48.颜色空间,也称为颜色模型(或颜色系统),是一种抽象的数学模型,它简单地将颜色范围描述为数字元组,通常为3或4个值或颜色分量(例如rgb)。从根本上说,颜色空间是对坐标系统和子空间的一种阐述。49.对于视频压缩,最常用的颜色空间是ycbcr和rgb。50.ycbcr、y’cbcr或ypb/cbpr/cr,也被写成ycbcr或y’cbcr,是在视频和数字摄影系统中用作颜色图像管线的一部分的一族颜色空间。y’是亮度分量,cb和cr是蓝色差和红色差色度分量。y’(带上标符号)与y区分开来,y是亮度,这意味着光强度是基于伽马校正的rgb原色进行非线性编码的。51.色度子采样是利用人类视觉系统对色差的敏感度低于对亮度的敏感度,通过实现色度信息的分辨率低于亮度信息的分辨率来对图像进行编码的实践。52.2.1.1.4:4:453.三个y’cbcr分量中的每一个具有相同的采样率,因此不存在色度子采样。这种方案有时用于高端胶片扫描仪和电影后期制作。54.2.1.2.4:2:255.两个色度分量以亮度的一半采样率进行采样:水平色度分辨率减半,而垂直色度分辨率不变。这将未经压缩视频信号的带宽减少三分之一,而视觉差异很小或没有视觉差异。4:2:2颜色格式的标称垂直和水平位置的示例在vvc工作草案中的图1a中描绘。56.2.1.3.4:2:057.在4:2:0中,水平采样比4:1:1增加了一倍,但由于在这一方案中cb和cr通道仅在每条交替行上被采样,垂直分辨率降低了一半。因此,数据速率是相同的。cb和cr在水平和垂直两者上都以2的因子进行子采样。4:2:0方案有三种变体,具有不同的水平和垂直位置。58.·在mpeg-2中,cb和cr在水平方向上是共址的(cosited)。cb和cr在垂直方向上位于像素之间(间隔地位于)。59.·在jpeg/jfif、h.261和mpeg-1中,cb和cr间隔地位于交替亮度样点之间的中间。60.·在4:2:0dv中,cb和cr在水平方向上共址。在垂直方向上,它们在交替的行上共址。61.表2-1从chroma_format_idc和separate_colour_plane_flag推导的subwidthc和subheightc值[0062][0063][0064]2.2.典型视频编解码器的编解码流程[0065]图1b示出了vvc的编码器框图的示例,其包含三个环内滤波块:去方块滤波器(df)、样点自适应偏移(sao)和alf。与使用预定义滤波器的df不同,sao和alf利用当前图片的原始样点,分别通过添加偏移和应用有限脉冲响应(fir)滤波器来减小原始样点与重建样点之间的均方误差,其中经编解码侧信息信令通知偏移和滤波器系数。alf位于每个图片的最后一个处理阶段,并且可以看作是一个试图捕捉和修复前几个阶段制造的伪影的工具。[0066]2.3.具有67个帧内预测模式的帧内模式编解码[0067]为了捕获自然视频中呈现的任意边缘方向,方向帧内模式的数量从hevc中使用的33个扩展到65个。附加方向模式在图2中被描绘为红色虚线箭头,平面模式和dc模式保持不变。这些更密集的方向帧内预测模式适用于所有块尺寸以及亮度和色度帧内预测两者。[0068]如图2所示,传统的角度帧内预测方向在顺时针方向上被定义为从45度至-135度。在vtm中,对于非正方形块,采用宽角度帧内预测模式自适应地替代了几种传统的角度帧内预测模式。替代后的模式用原始方法来被信令通知,并且在解析后被重新映射到宽角度模式的索引上。帧内预测模式的总数不变,即67个,并且帧内模式编解码不变。[0069]在hevc中,每个帧内编解码的块具有正方形形状,其每边的长度是2的幂。因此,使用dc模式生成帧内预测器不需要除法操作。在vvc中,块可以具有矩形形状,在一般情况下需要对每个块使用除法操作。为了避免dc预测的除法运算,对于非方形块,只使用较长边计算平均值。[0070]图2示出67个帧内预测模式的示例。[0071]2.4.帧间预测[0072]对于每个帧间预测cu,运动参数由运动矢量、参考图片索引和参考图片列表使用索引,以及将用于帧间预测样点生成的vvc的新编解码特征所需的附加信息组成。运动参数可以以显式或隐式的方式来信令通知。当用跳过模式对cu进行编解码时,cu与一个pu相关联,并且没有显著的残差系数,没有编解码运动矢量增量或参考图片索引。指定merge模式,由此从相邻cu获得当前cu的运动参数,包括空域和时域候选,以及在vvc中引入的附加调度。merge模式不仅适用于跳过模式,还可应用于任何帧间预测cu。merge模式的替代方案是运动参数的显式传输,其中每个cu显式地信令通知运动矢量、每个参考图片列表的对应参考图片索引和参考图片列表使用标志以及其他所需信息。[0073]2.5.帧内块复制(ibc)[0074]帧内块复制(ibc)是scc上的hevc扩展中所采用的工具。众所周知,它显著地提高了屏幕内容材料的编解码效率。由于ibc模式被实现为块级编解码模式,因此在编码器处执行块匹配(bm)以找到每个cu的最佳块矢量(或运动矢量)。这里,使用块矢量来指示从当前块到参考块的位移,参考块已经在当前图片内重建。ibc编解码的cu的亮度块矢量是整数精度的。色度块矢量也取整到整数精度。当与amvr相结合时,ibc模式可以在1像素与4像素运动矢量精度之间切换。ibc编解码的cu被视为除帧内或帧间预测模式之外的第三预测模式。ibc模式适用于宽度和高度均小于或等于64个亮度样点的cu。[0075]在编码器侧,针对ibc执行基于哈希的运动估计。编码器对宽度或高度不超过16个亮度样点的块执行rd检查。对于非merge模式,首先使用基于哈希的搜索来执行块矢量搜索。如果哈希搜索没有返回有效的候选,则将执行基于块匹配的本地搜索。[0076]在基于哈希的搜索中,当前块与参考块之间的哈希键匹配(32比特crc)被扩展到所有允许的块尺寸。当前图片中每个位置的哈希键计算基于4×4子块。对于较大尺寸的当前块,当所有4×4个子块的所有哈希键都与对应参考位置中的哈希键匹配时,确定与参考块的哈希键匹配的哈希键。如果发现多个参考块的哈希键与当前块的哈希键匹配,则计算每个匹配参考的块矢量成本,并选择成本最小的一个。[0077]在块匹配搜索中,搜索范围被设置为同时覆盖先前和当前的ctu。[0078]在cu级,ibc模式用标志来信令通知,它可以作为ibcamvp模式或ibc跳过/merge模式来信令通知,如下所示:[0079]-ibc跳过/merge模式:merge候选索引被用于指示列表中来自相邻候选ibc编解码块的哪些块矢量被用于预测当前块。merge列表由空域候选、hmvp候选和成对候选组成。[0080]-ibcamvp模式:块矢量差以与运动矢量差相同的方式进行编解码。块矢量预测方法使用两个候选作为预测器,一个来自左邻区(leftneighbour),一个来自上邻区(如果是ibc编解码)。当任何一个邻区不可用时,将使用默认的块矢量作为预测器。标志被信令通知以指示块矢量预测器索引。[0081]2.6.调色板模式[0082]对于调色板模式信令通知,调色板模式被编解码为编解码单元的预测模式,即,编解码单元的预测模式可以是mode_intra、mode_inter、mode_ibc和mode_plt。如果使用调色板模式,cu中的像素值由小的代表性颜色值集合来表示。该集合被称为调色板。对于值接近调色板颜色的像素,调色板索引被信令通知。对于值在调色板之外的像素,用转义符号表示该像素,并直接信令通知量化的像素值。[0083]为了对调色板编码块进行解码,解码器需要对调色板颜色和索引进行解码。调色板颜色由调色板表描述,并且由调色板表编解码工具编码。对每个cu信令通知转义标志以指示当前cu中是否存在转义符号。如果存在转义符号,则调色板表将增加一个,并且最后一个索引被分配给转义模式。cu中所有像素的调色板索引形成调色板索引图,并由调色板索引图编解码工具进行编码。[0084]为了对调色板表进行编解码,维护了调色板预测器。在预测器被重置为0的每个条带的开始处初始化预测器。对于调色板预测器中的每个条目,重用标志被信令通知以指示它是否是当前调色板的一部分。重用标志使用零的游程编解码来发送。在此之后,使用0阶的指数哥伦布码来信令通知新调色板条目的数量。最后,信令通知新调色板条目的分量值。在对当前cu进行编码后,调色板预测器将使用当前调色板进行更新,并且来自前一个调色板预测器中未在当前调色板中重用的条目将被添加到新的调色板预测器的末尾,直到达到允许的最大尺寸(调色板填充)。[0085]为了对调色板索引图进行编解码,使用如图3所示的水平和垂直遍历扫描来对索引进行编解码。使用palette_transpose_flag在比特流中显式地信令通知扫描顺序。[0086]图3示出了水平和垂直遍历扫描的示例。[0087]调色板索引使用两种主要的调色板样点模式进行编解码:‘index’和‘copy_above’。除了使用水平扫描时的顶部行、使用垂直扫描时的第一列或以前的模式是‘copy_above’时,使用标志来信令通知模式。在‘copy_above’模式下,复制上方行中样点的调色板索引。在‘index’模式下,显式地信令通知调色板索引。对于‘index’和‘copy_above’模式,都会信令通知一个游程值,该值指定使用相同模式进行编解码的像素数。[0088]索引图的编码顺序如下:首先,信令通知cu的索引值的数量。随后使用截断二进制编解码来信令通知整个cu的实际索引值。索引数和索引值两者都以旁路模式进行编解码。这将索引相关的旁路二进制数(bypassbins)分组在一起。然后,调色板模式(index或copy_above)和游程值以交织的方式被信令通知。最后,对应于整个cu的转义样点的分量转义值被分组在一起并以旁路模式进行编解码。在信令通知索引值之后信令通知附加语法元素last_run_type_flag。这个语法元素与索引数结合使用,就不需要信令通知对应于块中最后一次游程的游程值。[0089]在vtm中,针对i条带启用了二元树,将亮度(luma)和色度(chroma)编解码单元划分分开。因此,在本方案中,调色板分别应用于亮度(y分量)和色度(cb和cr分量)。如果二元树被禁用,调色板将被共同应用在y,cb,cr分量上,与hevc调色板相同。[0090]2.7.交叉分量线性模型预测[0091]在vvc中使用交叉分量线性模型(cclm)预测模式,对于该模式,通过使用如下线性模型基于相同cu的重建亮度样点来预测色度样点:[0092]predc(i,j)=α·recl′(i,j) βꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(2-1)[0093]其中predc(i,j)表示cu中的经预测色度样点,而recl(i,j)表示相同cu的下采样的重建亮度样点。[0094]图4示出了lm模式中涉及的左侧和上方样点以及当前块的样点的位置的示例。[0095]图4示出了用于α和β的推导的样点的位置示例。[0096]除了上方模板和左侧模板可以被用于在lm模式下一起计算线性模型系数外,它们还可以在其他两种lm模式(即lm_a和lm_l模式)中交替使用。在lm_a模式下,只使用上方模板计算线性模型系数。为了得到更多的样点,将上方模板扩展为(w h)。在lm_l模式下,只使用左侧模板计算线性模型系数。为了得到更多的样点,左侧模板被扩展为(h w)。对于非正方形块,上方模板被扩展为w w,左侧模板被扩展为h h。[0097]利用至多四个相邻色度样点及其对应的下采样的亮度样点推导cclm参数(α和β)。假设当前色度块维数为w×h,则w’和h’被设置为[0098]—当应用lm模式时,w’=w,h’=h;[0099]—当应用lm-a模式时,w’=w h;[0100]—当应用lm-l模式时,h’=h w;[0101]上方相邻位置表示为s[0,-1]…s[w’‑1,-1],而左侧相邻位置表示为s[-1,0]…s[-1,h’‑1]。然后将四个样点被选为[0102]—当应用lm模式且上方和左侧相邻样点均可用时,s[w’/4,-1],s[3w’/4,-1],s[-1,h’/4],s[-1,3h’/4];[0103]—当应用lm-a模式或只有上方相邻样点可用时,s[w’/8,-1],s[3w’/8,-1],s[5w’/8,-1],s[7w’/8,-1];[0104]—当应用lm-l模式或只有左侧相邻样点可用时,s[-1,h’/8],s[-1,3h’/8],s[-1,5h’/8],s[-1,7h’/8];[0105]对所选位置上的四个相邻亮度样点进行下采样并进行四次比较,以找到两个较小的值:x0a和x1a,以及两个较大的值:x0b和x1b。它们对应的色度样点值表示为y0a、y1a、y0b和y1b。则xa、xb、ya和yb推导为:[0106]xa=(x0a x1a 1)》》1;xb=(x0b x1b 1)》》1;ya=(y0a y1a 1)》》1;yb=(y0b y1b 1)》》1ꢀꢀ(2-2)[0107]最后,根据以下等式求得线性模型参数α和β。[0108][0109]β=yb-α·xbꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(2-4)[0110]计算参数α的除法运算是用查找表实现的。为了减少存储表所需的内存,diff值(最大值与最小值之间的差值)和参数α用指数表示法表示。例如,diff是用一个4比特有效部分和一个指数来近似的。因此,1/diff的表被简化为用于16个有意义的值的16个元素,如下所示:[0111]divtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀꢀꢀ(2-5)[0112][0113]这样做的好处是既减少了计算的复杂性,又减少了存储所需表所需的内存大小。[0114]为了匹配4:2:0视频序列的色度样点位置,对亮度样点应用两种下采样滤波器,在水平方向和垂直方向两者上实现2:1的下采样率。下采样滤波器的选择由sps级别标志指定。两个下采样滤波器如下所示,分别对应于“类型0”和“类型2”内容。[0115][0116][0117]注意,当上参考行在ctu边界处时,仅使用一个亮度行(在帧内预测中一般是行缓冲器)来得出下采样亮度样点。[0118]该参数计算作为解码过程的一部分而不只是作为编码器搜索操作来执行。结果,不使用语法将α和β值传递给解码器。[0119]对于色度帧内模式编解码,允许总共8个帧内模式用于色度帧内模式编解码。这些模式包括五种传统的帧内模式和三种交叉分量线性模型模式(lm,lm_a和lm_l)。色度模式信令和推导过程如表2-2中所示。色度模式编解码直接依赖于对应亮度块的帧内预测模式。由于在i条带中启用了亮度和色度分量的单独的块划分结构,因此一个色度块可以对应于多个亮度块。因此,对于色度dm模式,直接继承覆盖当前色度块中心位置的对应亮度块的帧内预测模式。[0120]表2-2.当cclm_is被启用时从亮度模式的色度预测的推导[0121][0122][0123]jvet-q2001-ve中intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[0124]8.4.5.2.13[0125]对这一过程的输入是:[0126]—帧内预测模式predmodeintra,[0127]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[0128]—指定变换块宽度的变量ntbw,[0129]—指定变换块高度的变量ntbh,[0130]—指定当前块的颜色分量的变量cidx,[0131]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[0132]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[0133]当前亮度位置(xtby,ytby)如下推导:[0134](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀ(351)[0135]变量availl、availt和availtl如下推导:[0136]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[0137]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[0138]—变量availtl如下推导:[0139]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)[0140]—可用的右上相邻色度样点数numtopright如下推导:[0141]—变量numtopright被设置为0,而availtr被设置为真(true)。[0142]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[0143]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[0144]—当availtr等于真(true)时,numtopright增加1。[0145]—可用的左下相邻色度样点数numleftbelow如下推导:[0146]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[0147]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2[0148]×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[0149]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[0150]—当availlb等于真(true)时,numleftbelow增加1。[0151]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[0152]—如果predmodeintra等于intra_lt_cclm,则适用以下:[0153]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[0154]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[0155]—否则,适用以下:[0156]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)[0157]numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0(356)[0158]变量bctuboundary如下推导:[0159]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀ(357)[0160]n被l和t替代的变量cntn和数组pickposn,如下推导:[0161]—变量numis4n如下推导:[0162]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[0163]—变量startposn被设置为等于numsampn》》(2 numis4n)。[0164]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[0165]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[0166]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[0167]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[0168]—否则,cntn被设置为等于0。[0169]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0170]—如果numsampl和numsampt两者都等于0,则适用以下:[0171]predsamples[x][y]=1《《(bitdepth-1)(359)[0172]—否则,将应用以下有序步骤:[0173]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[0174]2.相邻亮度样点py[x][y]如下推导:[0175]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[0176]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[0177]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[0178]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[0179]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[0180]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[0181]—如果subwidthc和subheightc两者都等于1,则适用以下:[0182]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[0183]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[0184]—否则,适用以下:[0185]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[0186]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[0187]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[0188]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2(363)[0189]—如果subwidthc和subheightc两者都等于2,则适用以下:[0190]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[0191]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀ(365)[0192]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀ(366)[0193]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀ(367)[0194]—否则,适用以下:[0195]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[0196]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,(369)[0197]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0198]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0199]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [0200]f3[0][1]×py[subwidthc×x-1][subheightc×y] [0201]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[0202]f3[2][1]×py[subwidthc×x 1][subheightc×y] [0203]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[0204]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0205]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0206]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [0207]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [0208]f4[1][1]×py[subwidthc×x][subheightc×y] ꢀꢀꢀꢀꢀ(371)[0209]f4[1][2]×py[subwidthc×x][subheightc×y 1] [0210]f4[2][1]×py[subwidthc×x 1][subheightc×y] [0211]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[0212]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[0213]—变量y被设置为等于pickposl[idx]。[0214]—如果subwidthc和subheightc两者都等于1,则适用以下:[0215]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[0216]—否则,适用以下:[0217]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [0218]f3[0][1]×py[-1-subwidthc][subheightc×y] [0219]f3[1][1]×py[-subwidthc][subheightc×y] ꢀꢀꢀ(373)[0220]f3[2][1]×py[1-subwidthc][subheightc×y] [0221]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[0222]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [0223]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [0224]f4[1][1]×py[-subwidthc][subheightc×y] ꢀꢀꢀꢀ(374)[0225]f4[1][2]×py[-subwidthc][subheightc×y 1] [0226]f4[2][1]×py[1-subwidthc][subheightc×y] [0227]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[0228]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样的相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[0229]—变量x被设置为等于pickpost[idx-cntl]。[0230]—如果subwidthc和subheightc两者都等于1,则适用以下:[0231]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[0232]—否则,适用以下:[0233]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0234]—如果bctuboundary等于假(false),则适用以下:pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [0235]f3[0][1]×py[subwidthc×x-1][-subheightc] [0236]f3[1][1]×py[subwidthc×x][-subheightc] (376)[0237]f3[2][1]×py[subwidthc×x 1][-subheightc] [0238]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[0239]—否则(bctuboundary是真(true)),则适用以下:[0240]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [0241]f2[1]×py[subwidthc×x][-1] (377)[0242]f2[2]×py[subwidthc×x 1][-1] 2)》》2[0243]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0244]—如果bctuboundary等于假(false),则适用以下:[0245]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [0246]f4[0][2]×py[subwidthc×x-1][-2] [0247]f4[1][1]×py[subwidthc×x][-1] ꢀꢀꢀꢀꢀ(378)[0248]f4[1][2]×py[subwidthc×x][-2] [0249]f4[2][1]×py[subwidthc×x 1][-1] [0250]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[0251]—否则(bctuboundary是真(true)),则适用以下:[0252]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [0253]f2[1]×py[subwidthc×x][-1] (379)[0254]f2[2]×py[subwidthc×x 1][-1] 2)》》2[0255]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[0256]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[0257]—数组mingrpidx和maxgrpidx如下推导:[0258]mingrpidx[0]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(380)[0259]mingrpidx[1]=2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(381)[0260]maxgrpidx[0]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(382)[0261]maxgrpidx[1]=3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(383)[0262]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[0263](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1(384)[0264]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[0265](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1]ꢀꢀꢀ(385)[0266][0267]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[0268](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)(386)[0269]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[0270](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀ(387)[0271][0272]—变量maxy、maxc、miny和minc如下推导:[0273]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(388)[0274]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(389)[0275]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀ(390)[0276]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1ꢀꢀꢀ(391)[0277]7.变量a、b和k如下推导:[0278]—如果numsampl等于0且numsampt等于0,则适用以下:[0279]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[0280]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[0281]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[0282]—否则,适用以下:[0283]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(395)[0284]—如果diff不等于0,则适用以下:[0285]diffc=maxc-mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(396)[0286]x=floor(log2(diff))ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(397)[0287]normdiff=((diff《《4)》》x)&15ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(398)[0288]x =(normdiff!=0)?1:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(399)[0289]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0(400)[0290]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》y(401)[0291]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(402)[0292]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(403)[0293]b=minc-((a×miny)》》k)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(404)[0294]其中divsigtable[]如下指定:[0295]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}(405)[0296]—否则(diff等于0),则适用以下:[0297]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(406)[0298]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(407)[0299]b=mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(408)[0300]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0301]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀꢀ(409)[0302]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[0303]2.8.块差分脉码调制编解码(bdpcm)[0304]bdpcm是在jvet-m0057中提出的。由于水平(垂直)预测器的形状,其使用左侧(a)(顶部(b))像素来预测当前像素,处理块的最吞吐量高效的方式是并行地处理一列(行)的所有像素,并顺序地处理这些列(行)。为了提高吞吐量,我们引入了以下过程:当在这个块上选择的预测器是垂直的时,宽度为4的块被分成具有水平边界的两半;当在这个块上选择的预测器是水平的时,高度为4的块被分成具有垂直边界的两半。[0305]当块被划分时,来自一个区域的样点不被允许使用来自另一个区域的像素来计算预测:如果出现这种情况,预测像素被预测方向上的参考像素替换。对于垂直预测的4×8块中的当前像素x的不同位置,这在图5中示出。[0306]图5示出了将4x8样点的块划分为两个独立的可解码区域的示例。[0307]由于这个特性,现在有可能在2个周期内处理一个4×4块,在4个周期内处理一个4×8或8×4块,依此类推,如图6所示。[0308]图6示出了为了将具有垂直预测器的4xn块的吞吐量最大化而进行的像素行的处理的示例顺序。[0309]表2-3总结了处理块所需的周期数,这取决于块的尺寸。表明两个维度都大于或等于8的任何块可以按照每个周期8个像素甚至更多来处理是容易解决的的。[0310]表2-3.尺寸为4×n,n×4的块的最坏情况吞吐量[0311][0312]2.9.量化残差域bdpcm[0313]在jvet-n0413中,提出了量化残差域bdpcm(以下称为rbdpcm)。通过在与帧内预测类似的预测方向(水平或垂直预测)上的样点复制对整个块进行帧内预测。对残差进行量化,并对量化残差与其预测器(水平或垂直)量化值之间的增量进行编解码。[0314]对于尺寸为m(行)×n(列)的块,设ri,j,0≤i≤m-1,0≤j≤n-1为使用来自上方或左侧块边界样点的未经滤波样点水平地(跨预测块逐行复制左侧相邻像素值)或垂直地(将顶部相邻行复制到预测块中的每一行)执行帧内预测后的预测残差。设q(ri,k),0≤i≤m-1,0≤j≤n-1表示残差ri,j的经量化版本,其中残差是原始块值与经预测块值之间的差。然后对经量化的残差样点应用块dpcm,得到具有元素的经修正的m×n数组当信令通知垂直bdpcm时:[0315][0316]对于水平预测,应用类似的规则,残差量化样点通过以下获得[0317][0318]残差量化样点被发送到解码器。[0319]在解码器端,上述计算被反转以产生q(ri,j),0≤i≤m-1,0≤j≤n-1。对于垂直预测情况,[0320][0321]对于水平情况,[0322][0323]将经逆量化残差q-1(q(ri,j))与块内预测值相加,以产生重建样点值。[0324]该方案的主要优点是,逆dpcm可以在系数解析期间动态进行,只需在系数被解析时添加预测器即可,也可以在解析后进行。[0325]在量化残差域bdpcm中,常采用变换跳过法。[0326]2.10.vvc中的多重变换集(mts)[0327]在vtm中,启用大的块尺寸变换,高达64×64的尺寸,这主要用于更高分辨率的视频,例如1080p和4k序列。对于尺寸(宽度或高度,或宽度和高度两者)等于64的变换块,高频变换系数被归零,从而仅保留低频系数。例如,对于m×n的变换块,m为块宽并且n为块高,当m等于64时,只保留左侧32列变换系数。同样,当n等于64时,只保留顶部32行变换系数。当变换跳过模式被用于大的块时,将使用整个块而不清零任何值。vtm还支持sps中可配置的最大变换尺寸,使得编码器可以根据具体实现的需要灵活地选择高达16长度、32长度或64长度的变换尺寸。[0328]除了在hevc中使用的dct-ii外,还使用多重变换选择(mts)方案对帧间和帧内编解码的块进行残差编解码。它使用dct8/dst7中的多个选定变换。新引入的变换矩阵是dst-vii和dct-viii。表2-4示出了所选dst/dct的基本函数。[0329]表2-4.n点输入的dct-ii/viii和dstvii变换基本函数[0330][0331][0332]为了保持变换矩阵的正交性,变换矩阵的量化比hevc中的变换矩阵更精确。为了保持变换后的系数的中间值保持在16比特范围内,在水平变换和垂直变换之后,所有的系数都应该是10比特的。[0333]为了控制mts方案,在sps级分别针对帧内和帧间指定单独的启用标志。当在sps处启用mts时,会信令通知cu级别标志来指示是否应用mts。在这里,mts仅适用于亮度。当满足以下条件时,将信令通知mtscu级别标志。[0334]—宽度和高度两者均小于或等于32[0335]—cbf标志等于1[0336]如果mtscu标志等于零,则在两个方向上都应用dct2。然而,如果mtscu标志等于1,则另外信令通知两个其他标志以分别指示水平方向和垂直方向的变换类型。变换和信令映射表如表2-5中所示。统一了isp的变换选择,并且通过消除帧内模式和块形状的依赖关系使用隐式mts。如果当前块是isp模式,或者如果当前块是帧内块,并且帧内和帧间显式mts都打开,则只有dst7被用于水平和垂直变换核两者。当涉及到变换矩阵精度时,使用8比特主变换核。因此,hevc中使用的所有变换核都保持不变,包括4点dct-2和dst-7,8点、16点和32点dct-2。而且,包括64点dct-2,4点dct-8,8点、16点、32点dst-7和dct-8在内的其他变换核使用8比特主变换核。[0337]表2-5.变换和信令映射表[0338][0339][0340]为了降低大尺寸dst-7和dct-8的复杂度,对于尺寸(宽度或高度,或宽度和高度两者)等于32的dst-7和dct-8块,高频变换系数被归零。仅保留16×16低频区域内的系数。[0341]与在hevc中一样,块的残差可以用变换跳过模式进行编解码。为了避免语法编解码的冗余,当cu级别mts_cu_flag不等于零时,不信令通知变换跳过标志。变换跳过的块尺寸限制与jem4中的mts相同,这指示变换跳过适用于块宽和块高均等于或小于32的cu。注意,当针对当前cu激活lfnst或mip时,隐式mts变换被设置为dct2。而且,当针对帧间编解码块启用mts时,仍然可以启用隐式mts。[0342]2.1.1.低频不可分离变换(lfnst)[0343]在vvc中,如图7所示,在前向主变换和量化之间(在编码器处)以及在去量化和反向主变换之间(在解码器侧)应用lfnst(低频不可分离变换),它被称为简化的辅变换。在lfnst中,根据块尺寸采用4×4不可分离变换或8×8不可分离变换。例如,4×4lfnst应用于小块(即,min(width,height)《8),而8×8lfnst应用于较大的块(即,min(width,height)》4)。[0344]图7示出了低频不可分离变换(lfnst)过程的示例。[0345]下面以输入为例,描述了lfnst中使用的不可分离变换的应用。要应用4×4lfnst,4×4输入块x[0346][0347]首先表示为矢量[0348][0349]不可分离变换被计算为其中指示变换系数矢量,t是16×16变换矩阵。随后使用该块的扫描顺序(水平、垂直或对角线)将16×1系数矢量重新组织为4×4块。具有较小索引的系数将与较小扫描索引一起放在4×4系数块中。[0350]2.11.1简化的不可分离变换[0351]lfnst(低频不可分离变换)是在直接矩阵乘法的基础上应用不可分离变换,使其在单个遍次中实现,无需多次迭代。然而,需要降低不可分离的变换矩阵维数,以最小化计算复杂度和存储变换系数的存储空域。因此,在lfnst中使用简化的不可分离变换(或rst)方法。简化的不可分离变换的主要思想是将一个n(8×8nsst的n通常等于64)维矢量映射到不同空间中的r维矢量,其中n/r(r《n)是约简因子。因此,rst矩阵替代n×n矩阵成为如下所示的r×n矩阵:[0352][0353]其中变换的r行是n维空间的r个基。rt的逆变换矩阵是其前向变换的转置。对于8×8lfnst,采用4的约简因子(reductionfactor),将传统的8×8不可分离变换矩阵尺寸64×64的直接矩阵缩减为16×48的直接矩阵。因此,在解码器侧使用48×16逆rst矩阵来生成8×8左上区域的核心(主要)变换系数。当使用具有相同的变换集配置的16×48矩阵而不是16×64矩阵时,每个矩阵从左上8×8块不包括右下4×4块中的三个4×4块中获取48个输入数据。在降维的帮助下,存储所有lfnst矩阵的内存占用从10kb减少到8kb,性能下降合理。为了降低复杂度,lfnst被限制为仅当第一系数子组之外的所有系数都是非有效的时才适用。因此,当应用lfnst时,所有的主变换系数必须为零。这允许在最低有效位置上的lfnst索引信令的调节,因此避免了当前lfnst设计中仅在特定位置检查有效系数所需的额外系数扫描。lfnst的最坏情况处理(就每像素的乘法而言)将4×4和8×8块的不可分离变换分别限制为8×16和8×48变换。在这些情况下,当应用lfnst时,最低有效扫描位置必须小于8,对于其他尺寸小于16。对于形状为4×n和n×4且n》8的块,建议的限制意味着lfnst现在只应用一次,并且只应用于左上的4×4区域。当应用lfnst时,由于所有仅主系数都为零,因此在这种情况下,主转换所需的操作数减少了。从编码器的角度来看,当测试lfnst变换时,系数的量化被显著简化。必须对前16个系数(按扫描顺序)进行最大速率失真优化量化,其余系数强制为零。[0354]2.11.2.lfnst变换选择[0355]lfnst中使用了总共4个变换集,每个变换集使用2个不可分离变换矩阵(核)。从帧内预测模式到变换集的映射是如表2-6中所示预定义的。如果三种cclm模式(intra_lt_cclm、intra_t_cclm或intra_l_cclm)中的一种用于当前块(81《=predmodeintra《=83),则为当前色度块选择变换集0。对于每个变换集,通过显式信令通知的lfnst索引进一步指定所选择的不可分离辅变换候选。在变换系数之后,每个cu在比特流中信令通知一次索引。[0356]表2-6.变换选择表[0357]intrapredmodetr集索引intrapredmode《010《=intrapredmode《=102《=intrapredmode《=12113《=intrapredmode《=23224《=intrapredmode《=44345《=intrapredmode《=55256《=intrapredmode《=80181《=intrapredmode《=830[0358]2.11.3.lfnst索引信令及其与其他工具的交互[0359]由于lfnst被限制为只有在第一个系数子组之外的所有系数都是非有效的情况下才适用,因此lfnst索引编解码依赖于最后一个有效系数的位置。另外,lfnst索引是上下文编解码的,但不依赖于帧内预测模式,并且仅第一二进制数是上下文编解码的。此外,lfnst在条带内和条带间两者中以及针对亮度和色度两者都被应用于帧内cu。如果启用了二元树,则分别信令通知亮度和色度的lfnst索引。对于条带间(二元树禁用),单个lfnst索引被信令通知并用于亮度和色度两者。[0360]当选择isp模式时,禁用lfnst,并且不信令通知rst索引,因为即使将rst应用于每个可行的划分块,性能改善也是微乎其微的。此外,对isp预测残差禁用rst可以降低编码复杂度。当选择mip模式时,lfnst也被禁用并且不信令通知索引。[0361]考虑到由于现有的最大变换尺寸限制(64×64),大于64×64的较大cu被隐式拆分(tu平铺(tiling)),对于一定数量的解码管线阶段,lfnst索引搜索可以将数据缓冲增加四倍。因此,lfnst允许的最大尺寸限制在64×64。注意,lfnst仅在dct2中启用。[0362]2.12.用于色度的变换跳过[0363]在vvc中引入了色度变换跳过(ts)。其动机是通过将transform_skip_flag和mts_idx重新定位到residual_coding部分,来统一亮度与色度之间的ts和mts信令。为色度ts增加了一个上下文模型。对于mts_idx没有更改上下文模型和二值化。另外,在使用色度ts时也应用ts残差编解码。[0364]语义[0365]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。[0366]用于色度的bdpcm[0367]除了色度ts支持,bdpcm被添加到色度分量。如果sps_bdpcm_enable_flag为1,则向sps添加另一个语法元素sps_bdpcm_chroma_enable_flag。这些标志具有以下行为,如表2-7所示。[0368]表2-7.亮度和色度bdpcm的sps标志[0382]6.在jvet-q2001-ve中规定的vvc中,当顶部(或/和左侧)相邻亮度样点不可用时,它们被错误地推导。例如,在jvet-q2001-ve中,“当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]”被用于在顶部相邻亮度样点不可用时推导它们。然而,当顶部相邻亮度样点不可用时,numsampt被设置为0。[0383]7.在当前的vvc中,当顶部和左侧相邻亮度样点可用时,左上相邻亮度样点被用于cclm参数的推导,但当顶部和左侧相邻亮度样点位于不同的条带中时(例如在光栅条带情况下),左上相邻亮度样点不可用。[0384]4.实施例和技术的列表[0385]下面的列表应该被认为是解释一般概念的示例。不应狭隘地解释这些项目。此外,这些项目可以以任何方式组合。[0386]在本文中,术语“cclm”表示一种编解码工具,其利用交叉颜色分量信息来预测当前颜色分量的样点/残差或推导当前颜色分量中样点的重建。并不局限于vvc中描述的cclm技术。[0387]cclm中线性参数的推导[0388]1.当推导色度块的cclm参数时,可以使用其同位亮度块的一个或多个上方相邻行来推导其下采样的同位相邻顶部亮度样点。[0389]a.在一个示例中,当当前色度块不在顶部ctu边界处时,同位亮度块的最近的上方行而不是上方的第二行可以被用于推导下采样的同位相邻顶部亮度样点。[0390]i.在一个示例中,一个相同的下采样滤波器可以被用于推导下采样的同位相邻顶部亮度样点和下采样同位相邻左侧亮度样点。[0391]1)例如,可以使用[121]滤波器。更具体地,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]是来自最近的上方相邻行上的亮度样点,而pdsy[x]表示下采样的同位相邻顶部亮度样点。[0392]ii.在一个示例中,不同的下采样滤波器(例如,不同的滤波器抽头/不同的滤波器系数)可以被用于推导下采样的同位相邻顶部亮度样点和下采样的同位相邻左侧亮度样点。[0393]iii.在一个示例中,一个相同的下采样滤波器可以被用于推导下采样的同位相邻顶部亮度样点,而不管色度块的位置(例如,色度块可以在顶部ctu边界处,也可以不在顶部ctu边界处)。[0394]iv.在一个示例中,上述方法可以仅应用于4:2:2格式的图片/视频。[0395]b.在一个示例中,当当前色度块不在顶部ctu边界处时,上方相邻亮度样点,包括同位亮度块的最近的上方行但不包括上方的第二行可以被用于推导下采样的同位相邻顶部亮度样点。[0396]c.在一个示例中,下采样的同位相邻顶部亮度样点的推导可以依赖于位于多行处的样点。[0397]i.在一个示例中,它可以依赖于同位亮度块上方的第二最近行和最近行。[0398]ii.在一个示例中,对于不同的颜色格式(例如,4:2:0和4:2:2),可以使用一个相同的下采样滤波器推导下采样的同位相邻顶部亮度样点。[0399]1)在一个示例中,可以使用6抽头滤波器(例如,[121;121])。[0400]a)在一个示例中,下采样的同位相邻顶部亮度样点可以推导为:pdsy[x]=(py[2×x-1][-2] 2×py[2×x][-2] py[2×x-1][-1] 2×py[2×x][-1] py[2×x 1][-1] py[2×x 1][-1] 4)》》3,其中py是对应的亮度样点,并且pdsy[x]表示下采样的同位相邻顶部亮度样点。[0401]b)可替代地,此外,当sps_cclm_colocated_chroma_flag等于0时,可以应用上述方法。[0402]2)在一个示例中,可以使用5抽头滤波器(例如,[010;141;010])。[0403]a)在一个示例中,下采样的同位相邻顶部亮度样点可以推导为:pdsy[x]=(py[2×x][-2] py[2×x][-1] 4×py[2×x][-1] py[2×x 1][-1] py[2×x][0] 4)》》3,其中py是对应的亮度样点,并且pdsy[x]表示下采样的同位相邻顶部亮度样点。[0404]b)可替代地,此外,当sps_cclm_colocated_chroma_flag等于1时,可以应用上述方法。[0405]iii.在一个示例中,上述方法可以仅应用于4:2:2格式的图片/视频。[0406]变化跳过编解码块的最大块尺寸(例如,在transform_skip_flag等于1的情况下,或bdpcm或其他跳过变换处理/使用标识变换的模式下)[0407]2.变换跳过编解码块的最大块尺寸可以取决于颜色分量。分别用maxtssizey和maxtssizec表示用于亮度和色度的变换跳过编解码块的最大块尺寸。[0408]a.在一个示例中,用于亮度和色度分量的最大块尺寸可以不同。[0409]b.在一个示例中,用于两个色度分量的最大块尺寸可以不同。[0410]c.在一个示例中,用于亮度和色度分量或用于每个颜色分量的最大块尺寸可以被单独地信令通知。[0411]i.在一个示例中,maxtssizec/maxtssizey可以在序列级/图片级/条带级/片组级上被信令通知,诸如在序列标头/图片标头/sps/vps/dps/pps/aps/条带标头/片组标头中。[0412]ii.在一个示例中,可以有条件地信令通知maxtssizey,诸如根据变换跳过是否启用/bdpcm是否启用。[0413]iii.在一个示例中,可以有条件地信令通知maxtssizec,诸如根据颜色格式/变换跳过是否启用/bdpcm是否启用。[0414]iv.可替代地,可以使用用于亮度和色度分量的最大块尺寸之间的预测编解码。[0415]d.在一个示例中,maxtssizec可能依赖于maxtssizey。[0416]i.在一个示例中,maxtssizec可以被设置为等于maxtssizey。[0417]ii.在一个示例中,maxtssizec可以被设置为等于maxtssizey/n(n是整数)。例如,n=2。[0418]e.在一个示例中,maxtssizec可以根据色度子采样比来设置。[0419]i.在一个示例中,maxtssizec被设置为等于maxtssizey》》subwidthc,其中subwidthc在表2-1中定义。[0420]ii.在一个示例中,maxtssizec被设置为等于maxtssizey》》subheightc,其中subheightc在表2-1中定义。[0421]iii.在一个示例中,maxtssizec被设置为等于maxtssizey》》max(subwidthc,subheightc)。[0422]iv.在一个示例中,maxtssizec被设置为等于maxtssizey》》min(subwidthc,subheightc)。[0423]3.变换编解码块的最大允许块尺寸、宽度和高度可以不同地定义。[0424]a.在一个示例中,最大允许的块尺寸宽度和高度可以分别被信令通知。[0425]b.在一个示例中,色度变换编解码块的最大允许块尺寸宽度和高度可以分别表示为maxtssizewc和maxtssizehc。maxtssizewc可以被设置为等于maxtssizey》》subwidthc,maxtssizehc可以设置为等于maxtssizey》》subheightc。[0426]i.在一个示例中,maxtssizey是项目符号2中定义的那个。[0427]4.是否信令通知针对色度块的变换跳过标志(例如,transform_skip_flag[x0][y0][1]和/或transform_skip_flag[x0][y0][2])可以取决于色度变换跳过编解码块的最大允许尺寸。[0428]a.在一个示例中,可以根据以下条件有条件地信令通知色度变换跳过标志:[0429]i.在一个例子中,条件是:tbw小于或等于maxtssizec且tbh小于或等于maxtssizec,其中tbw和tbh是当前色度块的宽度和高度。[0430]1)在一个示例中,maxtssizec可以定义为项目符号2-3中的那个。[0431]ii.在一个示例中,条件是:tbw小于或等于maxtssizewc且tbh小于或等于maxtssizehc,其中tbw和tbh是当前色度块的宽度和高度,maxtssizewc和maxtssizehc分别表示色度变换跳过编解码块的最大允许块尺寸宽度和高度。[0432]1)在一个示例中,maxtssizewc和/或maxtssizehc可以定义为项目符号3中的那个。[0433]b.在一个示例中,通过将“变换跳过”替换为“bdpcm”,上述方法可以适用于色度bdpcm标志(例如,intra_bdpcm_chroma_flag)的编解码。[0434]5.提出用一个语法来指示针对两个色度颜色分量的ts使用,而不是针对两个色度颜色分量对两个ts标志进行编解码。[0435]a.在一个示例中,代替对transform_skip_flag[x0][y0][1]和/或transform_skip_flag[x0][y0][2])进行编解码,可以对单个语法元素(例如ts_chroma_flag)进行编解码。[0436]i.在一个示例中,单个语法元素的值是二进制值。[0437]1)此外,可替代地,两个色度分量块根据单个语法元素共享相同的ts模式的开/关控制。[0438]a)在一个示例中,单个语法元素的值等于0指示ts对两者都禁用。[0439]b)在一个示例中,单个语法元素的值等于0指示ts对两者都启用。[0440]2)此外,可替代地,可以基于单个语法元素的值是否等于k(例如,k=1)进一步信令通知第二语法元素。[0441]a)在一个示例中,单个语法元素的值等于0指示ts对两者都禁用;单个语法元素的值等于0指示对两个色度分量中的至少一个启用了ts。[0442]b)第二语法元素可以被用于指示ts被应用于两个色度分量中的哪一个和/或ts被应用于它们两者。[0443]ii.在一个示例中,单个语法元素的值是非二进制值。[0444]1)在一个示例中,单个语法元素的值等于k0指示ts对两者都禁用。[0445]2)在一个示例中,单个语法元素的值等于k1指示对于第一色度颜色分量启用ts,对于第二颜色分量禁用ts。[0446]3)在一个示例中,单个语法元素的值等于k2指示对于第一色度颜色分量禁用ts,对于第二颜色分量启用ts。[0447]4)在一个示例中,单个语法元素的值等于k3指示ts对两者都启用。[0448]5)在一个示例中,单个语法元素可以用固定长度、一元、截断一元、k阶eg二值化方法来进行编解码。[0449]iii.在一个示例中,单个语法元素和/或第二语法元素可以被上下文编解码或旁路编解码。[0450]一般声明[0451]6.是否和/或如何应用上述公开的方法可以在序列级/图片级/条带级/片组级上被信令通知,诸如在序列标头/图片标头/sps/vps/dps/pps/aps/条带标头/片组标头中。[0452]7.是否和/或如何应用上述公开的方法取决于编解码信息,诸如颜色格式、单树/二元树划分。[0453]对cclm的附加声明[0454]8.在cclm参数推导过程中,在左侧相邻样点之前将上方相邻样点放入所选择的相邻样点列表中,并使用所选择的相邻样点列表来推导cclm参数(例如,使用4点推导法,其中两个较大的值平均,两个较小的值平均,并且使用这两个平均值来推导线性参数)。在实施例5中演示了一个示例。[0455]9.在cclm参数推导过程中,当得到表示为pseldsy[idx]的下采样的上方相邻亮度样点时,索引值idx应该在cntl至cntl cntt-1的范围中,其中cntl和cntt分别表示用于推导cclm参数的左侧相邻色度样点和上方相邻色度样点的数量。[0456]a.在实施例5中演示了一个示例。[0457]b.此外,可替代地,左侧相邻样点在上方相邻样点之前被放入选定的相邻样点列表中。[0458]10.在cclm参数推导过程中,分配三行的上方相邻亮度样点。在实施例6中演示了一个示例。[0459]11.在cclm参数推导过程中,分配t1行和t2列的左上相邻亮度样点。[0460]a.在一个示例中,t1=2和t2=2。在实施例12中演示了一个示例。[0461]b.在一个示例中,t1=3和t2=3。[0462]12.在cclm参数推导过程中,要分配的上方亮度相邻样点的行数可以取决于指示是否相对于对应亮度样点位置不垂直移位的色度样点位置的变量或语法元素,诸如jvet-q2001-ve中的sps_chroma_vertical_collocated_flag。[0463]a.在一个示例中,当sps_chroma_vertical_collocated_flag等于1时,分配三行的上方相邻亮度样点。否则,分配两行的上方相邻亮度样点。在实施例7中演示了示例。[0464]13.在上述示例中,相邻亮度样点可以是下采样前的相邻亮度样点,也可以是下采样后的相邻亮度样点。[0465]14.在cclm参数推导过程中,是否和/或如何填充左上相邻样点可以取决于左上相邻样点中至少一个的可用性,而不是左侧相邻样点和/或上方相邻样点的可用性。[0466]a.在一个示例中,左上相邻样点中的至少一个的可用性可以取决于左上相邻样点和当前块中的样点中的至少一个是在相同的条带中还是在不同的条带中。[0467]i.此外,上述条带可以是矩形条带,也可以是非矩形条带。[0468]b.在一个示例中,如果左上相邻样点和当前块中的样点中的至少一个在不同的条带中,则填充左上相邻样点。[0469]c.在一个示例中,如果至少一个左上相邻样点的可用性为假,则填充左上相邻样点。[0470]15.在cclm参数推导过程中,当左上相邻亮度样点“不可用”时,可以不使用它们。[0471]a.在一个示例中,如果相邻样点在当前图片、或当前子图片、或当前片、或当前条带、或当前砖块、或当前ctu、或当前处理单元或任何其他当前视频单元之外,则相邻样点是“不可用的”。[0472]i.在一个示例中,对于图13所示的非矩形条带情况,位于与当前块不同的条带中的左上相邻亮度样点是“不可用的”。[0473]b.在一个示例中,在cclm的过程中是否使用左上相邻亮度样点可以取决于它们是否与当前块在相同的图片/子图片/片/条带/砖块/ctu/处理单元/其他视频单元中。[0474]i.在一个示例中,当左上相邻亮度样点位于与当前块不同的光栅条带中时,可以不在cclm过程中使用它们。[0475]1)在实施例10中演示了一个示例。[0476]ii.在一个示例中,左上相邻亮度样点可以不在cclm过程中使用,尽管它们与当前块在相同的图片/子图片/片/条带/砖块/ctu/处理单元/其他视频单元中。[0477]c.在cclm参数推导过程中,当左上相邻亮度样点“不可用”时,可以使用重复填充来生成左上相邻亮度样点。用(x,y)表示当前块的左上样点位置。用py[i][j]表示去方块滤波过程之前的重建亮度样点。用pd[m][n]表示经填充的左上亮度样点,其中m=x-1...x-m,n=y-1...y-n,其中m和n是诸如1的整数。[0478]i.在一个示例中,当左侧或/和顶部相邻亮度样点可用时,可以使用重复填充方法。[0479]ii.在一个示例中,当顶部相邻亮度样点可用时,可以从顶部相邻亮度样点填充左上相邻亮度样点。[0480]2)在一个示例中,pd[m][n]=py[x][n]。[0481]iii.在一个示例中,当左侧相邻亮度样点可用时,可以从左侧相邻亮度样点填充左上相邻亮度样点。[0482]3)在一个示例中,pd[m][n]=py[m][y]。[0483]iv.在一个示例中,当顶部相邻亮度样点可用并且左侧相邻亮度样点可用时,可以从顶部相邻亮度样点填充左上相邻亮度样点。[0484]4)在一个示例中,pd[m][n]=py[x][n]。[0485]v.可替代地,当顶部相邻亮度样点可用并且左侧相邻亮度样点可用时,可以从左侧相邻亮度样点填充左上相邻亮度样点。[0486]5)在一个示例中,pd[m][n]=py[m][y]。[0487]vi.在一个示例中,m=2,n=2,或m=3,n=3。[0488]d.可替代地,当左上相邻亮度样点“不可用”时,它们可以被预定义的值替换。[0489]i.在一个示例中,预定值可以等于常量值,例如128。[0490]ii.在一个示例中,可以使用左侧或/和顶部相邻亮度样点推导预定义值。[0491]6)在一个示例中,预定义值可以等于左侧或/和顶部相邻亮度样点的平均值。[0492]iii.在一个示例中,预定义值可以依赖于样点的比特深度。例如,预定义值可以等于1《《(bd-1),其中bd表示样点的比特深度。[0493]e.可替代地,即使左上相邻亮度样点是“可用的”,也可以使用项目符号14.c中的上述填充方法和项目符号14.d中的预定义值来替换可用的左上相邻亮度样点。[0494]i.在实施例11中演示了一个示例。[0495]f.在一个示例中,是否检查左上相邻亮度样点的可用性可以取决于左侧相邻亮度样点是否可用或/和顶部相邻亮度样点是否可用。[0496]i.在一个示例中,仅当左侧相邻亮度样点和顶部相邻亮度样点都可用时,才检查左上相邻亮度样点的可用性。在实施例17中示出了一个示例。[0497]g.在一个示例中,是否和/或如何使用或/和填充左上相邻亮度样点可以取决于左上、或/和左侧、或/和顶部相邻亮度样点的可用性。[0498]i.在一个示例中,仅当左上相邻亮度样点可用时,才可以使用左上相邻亮度样点。[0499]ii.在一个示例中,仅当左上、左侧和顶部相邻亮度样点可用时,才可以使用左上相邻亮度样点。在实施例18中示出了一个示例。[0500]iii.在一个示例中,当左侧和/或顶部相邻亮度样点可用时,可以填充左上相邻亮度样点。[0501]1)在一个示例中,仅当左侧或顶部相邻亮度样点可用并且左上相邻亮度样点不可用时,才可以填充左上相邻亮度样点。[0502]2)在一个示例中,仅当左侧和顶部相邻亮度样点可用并且左上相邻亮度样点不可用时,才可以填充左上相邻亮度样点。[0503]3)在一个示例中,可以使用顶部相邻亮度样点填充左上相邻亮度样点。其中x=-1,-2,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于亮度样点py[0][y]。在实施例18中示出了一个示例。[0504]4)其中在一个示例中,可以使用顶部相邻亮度样点填充左上相邻亮度样点。x=-1,-2,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于亮度样点py[x][0]。在实施例19中示出了一个示例。[0505]5)在一个示例中,可以使用顶部和左侧相邻亮度样点填充左上相邻亮度样点。[0506]h.在一个示例中,是否检查左上相邻亮度样点的可用性,或者/和使用左上相邻亮度样点,或者/和填充左上相邻亮度样点可以取决于色度颜色格式。[0507]i.在一个示例中,当使用4:4:4颜色格式时,不需要检查左上相邻亮度样点的可用性,或/和使用左上相邻亮度样点,或/和填充左上相邻亮度样点。在实施例20中示出了一个示例。[0508]i.在一个示例中,是否填充左上相邻亮度样点和/或哪些样点需要填充可以取决于指示是否相对于对应亮度样点位置不垂直移位的色度样点位置的变量或语法元素,诸如jvet-q2001-ve中的sps_chroma_vertical_collocated_flag。[0509]i.在一个示例中,当sps_chroma_vertical_collocated_flag等于1时,填充左上相邻亮度样点。否则,左上相邻样点不被填充。在实施例14中演示了示例。[0510]16.在cclm过程中,当顶部(或/和左侧)相邻亮度样点不可用时,使用当前块的最顶部(或/和最左侧)样点推导顶部(或/和左侧)相邻亮度样点。并且可以使用左侧(或/和顶部)可用的相邻亮度样点来推导左上相邻样点。[0511]a.在一个示例中,当顶部相邻亮度样点不可用时,可以使用当前块的最顶部样点和左侧相邻亮度样点来推导顶部和左上相邻亮度样点。[0512]i.在一个示例中,其中x=0..subwidthc×ntbw-1,y=-1..-2的顶部相邻亮度样点py[x][y]被设置为等于亮度样点py[x][0]。并且将其中x=-1,y=-1..-2的左上相邻亮度样点py[x][y]设置为等于亮度样点py[x][0],其中py[0][0]表示当前块的左上样点,ntbw表示当前块的宽度,而subwidthc在2.1中定义。[0513]ii.在一个示例中,其中x=0..subwidthc×ntbw-1,y=-1..-n的顶部相邻样点py[x][y]被设置为等于亮度样点py[x][0]。并且将其中x=-m..-1,y=-1..-n的左上相邻亮度样点py[x][y]设置为等于亮度样点py[x][0],其中py[0][0]表示当前块的左上样点,ntbw表示当前块的宽度,而subwidthc在2.1中定义。在实施例13中演示了一个示例。[0514]1)在一个示例中,m和n是整数,诸如m=2和n=3。[0515]2)在一个示例中,m可以依赖于色度颜色格式,诸如m=subwidthc,这是在2.1中定义的。[0516]3)在一个示例中,可以填充最多t个左上相邻亮度样点,其中t是整数(诸如1)。[0517]a)在一个示例中,py[-m][-1]=py[-m][0],其中m=1或m=subwidthc。[0518]b.在一个示例中,当左侧相邻亮度样点不可用时,可以使用当前块的最左侧样点和顶部相邻亮度样点来推导左侧和左上相邻亮度样点。[0519]i.在一个示例中,其中x=0..-3,y=-1..subheightc×ntbh-1的左侧相邻亮度样点py[x][y]被设置为等于亮度样点py[0][y]。并且将其中x=0..-3,y=-1的左上相邻亮度样点py[x][y]设置为等于亮度样点py[0][y],其中py[0][0]表示当前块的左上样点,ntbh表示当前块的高度,而subheightc在2.1中定义。[0520]ii.在一个示例中,其中x=-1..-m,y=0..subheightc×ntbh-1的左侧相邻亮度样点py[x][y]被设置为等于亮度样点py[0][y]。并且将其中x=-1..-m,y=-1..-n的左上相邻亮度样点py[x][y]设置为等于亮度样点py[0][y],其中py[0][0]表示当前块的左上样点,ntbh表示当前块的高度,而subheightc在2.1中定义。在实施例15中演示了示例。[0521]1)在一个示例中,m和n是整数,诸如m=2,n=3。[0522]2)在一个示例中,m可以取决于色度颜色格式,诸如n=subheightc,这是在2.1中定义的。[0523]3)在一个示例中,可以填充最多t个左上相邻亮度样点,其中t是整数(诸如1)。[0524]a)在一个示例中,py[-1][-n]=py[0][-n],其中n=1或n=subheightc。[0525]b)可替代地,t等于2。py[-1][-1]=py[0][-1],py[-1][-2]=py[0][-2]。[0526]iii.在一个示例中,可以在推导顶部相邻亮度样点之后填充左上亮度相邻样点。在实施例16中演示了一个示例。[0527]c.在一个示例中,在填充顶部(或/和左侧)相邻亮度样点的过程中,可以使用在项目13中推导的左上相邻亮度样点。[0528]d.在一个示例中,是否填充顶部(或/和左侧)相邻亮度(或色度)样点和/或哪些相邻样点需要被填充取决于色度颜色格式。[0529]i.在一个示例中,当使用4:4:4颜色格式时,不需要填充顶部(或/和左侧)相邻亮度样点。在实施例21中示出了一个示例。[0530]e.在一个示例中,当填充顶部(或/和左侧)相邻亮度样点时,使用15(诸如15.c)中的方法填充左上相邻亮度样点。在实施例22中示出了一个示例。[0531]17.在cclm预测过程中,可以以固定的顺序进行顶部相邻样点、左侧相邻样点和左上相邻样点的填充。相邻样点可以是亮度样点或色度样点。[0532]a.例如,顺序可能是顶部相邻样点填充、左侧相邻样点填充以及左上相邻样点填充。[0533]b.例如,顺序可能是左侧相邻填充、顶部相邻样点填充以及左上相邻样点填充。[0534]c.例如,顺序可能是左上相邻填充、顶部相邻样点填充以及左侧相邻样点填充。[0535]d.例如,顺序可能是左上相邻填充、左侧相邻样点填充以及顶部相邻样点填充。[0536]18.4:2:2颜色格式视频的cclm中的下采样过程可以与语法元素或变量(诸如jvet-q2001-ve中的sps_chroma_vertical_collocated_flag)解耦,该语法元素或变量指示色度样点位置是否相对于对应的亮度样点位置垂直移位。[0537]a.在一个示例中,下采样过程可以指对相邻上方亮度样点进行下采样,或/和对相邻左侧亮度样点进行下采样,或/和对当前亮度块中的样点进行下采样。[0538]b.在一个示例中,无论sps_chroma_vertical_collocated_flag等于1还是0,固定滤波器(诸如具有系数[1/4,2/4,1/4]或[2/8,4/8,2/8]的3抽头水平滤波器)可以用于4:2:2颜色格式视频的cclm中的下采样过程。在实施例27和实施例28中示出了一个示例。[0539]19.在一个示例中,指示色度样点位置是否相对于对应的亮度样点位置垂直移位的变量或语法元素(例如,jvet-q2001-ve中的sps_chroma_vertical_collocated_flag)可以被设置为默认值,诸如对于4:2:2和/或4:4:4:4颜色格式的0或1。[0540]a.在一个示例中,当sps_chroma_vertical_collocated_flag不存在时,其可以被推断为等于1。[0541]b.在一个示例中,当sps_chroma_vertical_collocated_flag不存在时,其可以被推断为等于0。[0542]20.在cclm过程中,只有当表示相邻亮度样点的变量被设置为有效值时,才能使用该变量。在实施例29和实施例30中示出了一个示例。[0543]a.在一个示例中,表示相邻上方亮度样点的变量可以在去方块滤波过程之前被设置为等于重建的亮度样点。[0544]i.在一个示例中,当相邻上方亮度样点可用时(例如,在jvet-q2001-ve中availt等于真),表示用py[x][y]表示的相邻上方亮度样点的变量被设置为等于在位置(xtby x,ytby y)处去方块滤波过程之前的重建亮度样点,其中(xtby,ytby)表示当前块的左上位置。[0545]1)在一个示例中,x和y可以在x=0...subwidthc×max(numsampt,ntbw)-1,y=-1,-2的范围内,其中ntbw表示当前块的宽度,并且subwidthc在2.1中定义,并且numsampt指示在顶部和右上上可用的相邻色度样点的数量,并且在jvet-q2001-ve中定义。[0546]b.在一个示例中,表示相邻左侧亮度样点的变量可以在去方块滤波过程之前被设置为等于重建的亮度样点。[0547]i.在一个示例中,当相邻左侧亮度样点可用时(例如,在jvet-q2001-ve中availl等于真),表示用py[x][y]表示的相邻左侧亮度样点的变量被设置为等于在位置(xtby x,ytby y)处去方块滤波过程之前的重建亮度样点,其中(xtby,ytby)表示当前块的左上位置。[0548]1)在一个示例中,x和y可以在x=-1..-3,y=0..subheightc×max(numsampl,ntbh)-1的范围内,其中ntbh表示当前块的宽度,并且subheightc在2.1中定义,并且numsampl指示在左侧和左下上可用的相邻色度样点的数量,并且在jvet-q2001-ve中定义。[0549]21.条带的条带类型可以取决于该条带的参考图片条目。[0550]a.在一个示例中,如果列表0的参考图片条目的数量等于0,并且列表1的参考图片条目的数量等于0,则条带类型一定是i条带。[0551]i.在一个示例中,在这种情况下条带类型没有被信令通知。[0552]b.在一个示例中,如果列表0的参考图片条目的数量大于0,并且列表1的参考图片条目的数量等于0,则条带类型一定是p条带。[0553]i.可替代地,如果列表0的参考图片条目的数量大于0,并且列表1的参考图片条目的数量等于0,则条带类型不可能是b条带。[0554]ii.在一个示例中,在这种情况下条带类型没有被信令通知。[0555]c.可以在信令通知或推断条带类型之前信令通知或推断条带的参考图片条目。[0556]i.条带的参考图片条目可以在与图片相关联的图片标头中被信令通知。[0557]22.aps中允许的滤波器的总数或aps的总数可以根据经编解码信息(诸如子图片的数量)来限制。[0558]a.aps中允许的滤波器的总数可以包括具有pu的所有apsnal单元中的alfaps中的亮度/色度alf和cc-alf的总数。[0559]b.aps中允许的滤波器的总数可以包括用于亮度分量(或亮度alf滤波器)的自适应环路滤波器类的总数、用于色度分量的替代滤波器(色度alf滤波器)的总数和/或具有pu的所有apsnal单元中的交叉分量滤波器的总数。[0560]c.aps是alfaps/缩放列表aps/lmcsaps。[0561]d.如何信令通知apsid,和/或将由视频单元使用的aps的数量取决于限制的数量。[0562]23.一致性比特流应遵循以下规则:如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用bdpcm,则禁用符号数据隐藏。[0563]a.可替代地,一致性比特流应遵循以下规则,如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用了符号数据隐藏,则禁用bdpcm。[0564]24.一致性比特流应遵循以下规则:如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用了仅应用标识变换的变换跳过/编解码工具,则禁用符号数据隐藏。[0565]a.可替代地,一致性比特流应遵循以下规则,如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用了符号数据隐藏,则仅应用标识变换的变换跳过/编解码工具被禁用。[0566]25.一致性比特流应遵循以下规则:如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用bdpcm,则禁用dq(依赖量化)。[0567]a.可替代地,一致性比特流应遵循以下规则,如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用了dq,则禁用bdpcm。[0568]26.一致性比特流应遵循以下规则:如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用了仅应用标识变换的变换跳过/编解码工具,则禁用dq(依赖量化)。[0569]a.可替代地,一致性比特流应遵循以下规则,如果对视频单元(例如,序列/图片/条带/片/砖块/子图片)启用了dq,则仅应用标识变换的变换跳过/编解码工具被禁用。[0570]5.实施例[0571]本节示出示例实施例和修改当前vvc标准以描述这些实施例的方法。对vvc规范的更改以粗体和斜体突出显示。删除的文本用双括号标记(例如,[[a]]表示删除字符“a”)。[0572]5.1.实施例1[0573]jvet-p2001-v9中规定的工作草案可作如下更改。[0574]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[0575]…[0576]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[0577]—如果subwidthc和subheightc两者都等于1,则适用以下:[0578]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[0579]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀ(8-159)[0580]—否则,适用以下:[0581]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[0582]f1[i]=1,其中i=0..1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-160)[0583]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-161)[0584]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀ(8-162)[0585]—如果subwidthc和subheightc两者都等于2,则适用以下:[0586]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-163)[0587]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀꢀ(8-164)[0588]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀꢀꢀꢀꢀ(8-165)[0589]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-166)[0590]—否则,适用以下:[0591]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-167)[0592]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-168)[0593]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀ(8-169)[0594]…[0595]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样的相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1,如下指定:[0596]…[0597]—否则(sps_cclm_colocated_chroma_flag等于0),则适用以下:[0598]—如果x大于0,则适用以下:[0599]—如果bctuboundary等于假(false),则适用以下:[0600][0601]—否则(bctuboundary是真(true)),则适用以下:[0602]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [0603]f2[1]×py[subwidthc×x][-1] ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-194)[0604]f2[2]×py[subwidthc×x 1][-1] 2)》》2[0605]—否则(x等于0),则适用以下:[0606]—如果availtl等于真(true)且bctuboundary等于假(false),则适用以下:[0607][0608]—否则,如果availtl等于真(true)且bctuboundary等于真(true),则适用以下:[0609]pseldsy[idx]=(f2[0]×py[-1][-1] f2[1]×py[0][-1] f2[2]×py[1][-1] 2)》》2ꢀꢀꢀꢀꢀ(8-196)[0610]—否则,如果availtl等于假(false)且bctuboundary等于真(true),则适用以下:[0611]pseldsy[idx]=(f1[1]×py[0][-2] f1[0]×py[0][-1] 1)》》1ꢀꢀ(8-197)[0612]—否则(availtl等于假(false)且bctuboundary等于真(true)),则适用以下:[0613]pseldsy[idx]=py[0][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8-198)[0614]…[0615]5.2.实施例2[0616]本实施例示出了根据最大允许变换跳过编解码块尺寸进行色度变换跳过标志编解码的示例。jvet-p2001-v9中规定的工作草案可作如下更改。[0617]7.3.9.10变换单元语法[0618]…[0619][0620][0621]…[0622]5.3.实施例3[0623]本实施例示出了根据最大允许色度变换跳过编解码块尺寸进行色度bdpcm标志编解码的示例。jvet-p2001-v9中规定的工作草案可作如下更改。[0624]7.3.9.5编解码单元语法[0625]…[0626][0627][0628]…[0629]5.4.实施例4[0630]jvet-q2001-ve中规定的工作草案可作如下更改。[0631]8.4.5.2.13[0632]对这一过程的输入是:[0633]—帧内预测模式predmodeintra,[0634]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[0635]—指定变换块宽度的变量ntbw,[0636]—指定变换块高度的变量ntbh,[0637]—指定当前块的颜色分量的变量cidx,[0638]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[0639]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[0640]当前亮度位置(xtby,ytby)如下推导:[0641](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀ(351)[0642]变量availl、availt和availtl如下推导:[0643]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[0644]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[0645]—变量availtl如下推导:[0646]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)[0647]—可用的右上相邻色度样点数numtopright如下推导:[0648]—变量numtopright被设置为0,而availtr被设置为真(true)。[0649]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[0650]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[0651]—当availtr等于真(true)时,numtopright增加1。[0652]—可用的左下相邻色度样点数numleftbelow如下推导:[0653]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[0654]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[0655]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[0656]—当availlb等于真(true)时,numleftbelow增加1。[0657]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[0658]—如果predmodeintra等于intra_lt_cclm,则适用以下:[0659]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[0660]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[0661]—否则,适用以下:[0662]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)[0663]numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(356)[0664]变量bctuboundary如下推导:[0665]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀ(357)[0666]n被l和t替代的变量cntn和数组pickposn,如下推导:[0667]—变量numis4n如下推导:[0668]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[0669]—变量startposn被设置为等于numsampn》》(2 numis4n)。[0670]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[0671]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[0672]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[0673]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[0674]—否则,cntn被设置为等于0。[0675]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0676]—如果numsampl和numsampt两者都等于0,则适用以下:[0677]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(359)[0678]—否则,将应用以下有序步骤:[0679]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[0680]2.相邻亮度样点py[x][y]如下推导:[0681]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[0682]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[0683]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[0684]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[0685]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[0686]3.下采样的同位亮度样点pdsy[x][y],x=0..ntbw-1,y=0..ntbh-1如下推导:[0687]—如果subwidthc和subheightc两者都等于1,则适用以下:[0688]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[0689]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[0690]—否则,适用以下:[0691]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[0692]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[0693]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[0694]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[0695]—如果subwidthc和subheightc两者都等于2,则适用以下:[0696]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[0697]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,[0698]f3[1][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(365)[0699]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(366)[0700]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(367)[0701]—否则,适用以下:[0702]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[0703]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(369)[0704]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0705]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0706]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [0707]f3[0][1]×py[subwidthc×x-1][subheightc×y] [0708]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[0709]f3[2][1]×py[subwidthc×x 1][subheightc×y] [0710]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[0711]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0712]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0713]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [0714]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [0715]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[0716]f4[1][2]×py[subwidthc×x][subheightc×y 1] [0717]f4[2][1]×py[subwidthc×x 1][subheightc×y] [0718]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[0719][[4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[0720]—变量y被设置为等于pickposl[idx]。[0721]—如果subwidthc和subheightc两者都等于1,则适用以下:[0722]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[0723]—否则,适用以下:[0724]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0725]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [0726]f3[0][1]×py[-1-subwidthc][subheightc×y] [0727]f3[1][1]×py[-subwidthc][subheightc×y] (373)[0728]f3[2][1]×py[1-subwidthc][subheightc×y] [0729]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[0730]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0731]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [0732]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [0733]f4[1][1]×py[-subwidthc][subheightc×y] (374)[0734]f4[1][2]×py[-subwidthc][subheightc×y 1] [0735]f4[2][1]×py[1-subwidthc][subheightc×y] [0736]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[0737]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[0738]—变量x被设置为等于pickpost[idx-cntl]。[0739]—如果subwidthc和subheightc两者都等于1,则适用以下:[0740]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[0741]—否则,适用以下:[0742]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0743]—如果bctuboundary等于假(false),则适用以下:[0744]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [0745]f3[0][1]×py[subwidthc×x-1][-subheightc] [0746]f3[1][1]×py[subwidthc×x][-subheightc] (376)[0747]f3[2][1]×py[subwidthc×x 1][-subheightc] [0748]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[0749]—否则(bctuboundary是真(true)),则适用以下:[0750]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [0751]f2[1]×py[subwidthc×x][-1] (377)[0752]f2[2]×py[subwidthc×x 1][-1] 2)》》2[0753]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0754]—如果bctuboundary等于假(false),则适用以下:[0755]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [0756]f4[0][2]×py[subwidthc×x-1][-2] [0757]f4[1][1]×py[subwidthc×x][-1] (378)[0758]f4[1][2]×py[subwidthc×x][-2] [0759]f4[2][1]×py[subwidthc×x 1][-1] [0760]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[0761]—否则(bctuboundary是真(true)),则适用以下:pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [0762]f2[1]×py[subwidthc×x][-1] (379)[0763]f2[2]×py[subwidthc×x 1][-1] 2)》》2]][0764][0765][0766]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[0767]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[0768]—数组mingrpidx和maxgrpidx如下推导:[0769]mingrpidx[0]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(380)[0770]mingrpidx[1]=2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(381)[0771]maxgrpidx[0]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(382)[0772]maxgrpidx[1]=3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(383)[0773]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[0774](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀꢀ(384)[0775]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[0776](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀ(385)[0777]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[0778](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)(386)[0779]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[0780](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀꢀ(387)[0781]—变量maxy、maxc、miny和minc如下推导:[0782]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)[0783]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[0784]7.变量a、b和k如下推导:[0785]—如果numsampl等于0且numsampt等于0,则适用以下:[0786]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[0787]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[0788]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[0789]—否则,适用以下:[0790]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(395)[0791]—如果diff不等于0,则适用以下:[0792]diffc=maxc-minc(396)[0793]x=floor(log2(diff))(397)[0794]normdiff=((diff《《4)》》x)&15ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(398)[0795]x =(normdiff!=0)?1:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(399)[0796]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀ(400)[0797]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀ(401)[0798]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(402)[0799]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(403)[0800]b=minc-((a×miny)》》k)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(404)[0801]其中divsigtable[]如下指定:[0802]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀ(405)[0803]—否则(diff等于0),则适用以下:[0804]k=0ꢀꢀꢀ(406)[0805]a=0ꢀꢀꢀ(407)[0806]b=mincꢀꢀꢀ(408)[0807]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0808]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[0809]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[0810]5.5.实施例5[0811]jvet-q2001-ve中规定的工作草案可作如下更改。[0812]8.4.5.2.13[0813]对这一过程的输入是:[0814]—帧内预测模式predmodeintra,[0815]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[0816]—指定变换块宽度的变量ntbw,[0817]—指定变换块高度的变量ntbh,[0818]—指定当前块的颜色分量的变量cidx,[0819]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,x=0..2×ntbw-1,y=-1。[0820]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[0821]当前亮度位置(xtby,ytby)如下推导:[0822](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀ(351)[0823]变量availl、availt和availtl如下推导:[0824]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[0825]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[0826]—变量availtl如下推导:[0827]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)[0828]—可用的右上相邻色度样点数numtopright如下推导:[0829]—变量numtopright被设置为0,而availtr被设置为真(true)。[0830]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2[0831]×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[0832]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[0833]—当availtr等于真(true)时,numtopright增加1。[0834]—可用的左下相邻色度样点数numleftbelow如下推导:[0835]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[0836]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[0837]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[0838]—当availlb等于真(true)时,numleftbelow增加1。[0839]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[0840]—如果predmodeintra等于intra_lt_cclm,则适用以下:[0841]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀ(353)[0842]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀ(354)[0843]—否则,适用以下:[0844]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀ(356)[0845]变量bctuboundary如下推导:[0846]bctuboundary=(ytby&(ctbsizey-1)==0)?true:false(357)[0847]n被l和t替代的变量cntn和数组pickposn,如下推导:[0848]—变量numis4n如下推导:[0849]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀꢀ(358)[0850]—变量startposn被设置为等于numsampn》》(2 numis4n)。[0851]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[0852]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[0853]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[0854]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[0855]—否则,cntn被设置为等于0。[0856]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0857]—如果numsampl和numsampt两者都等于0,则适用以下:[0858]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀ(359)[0859]—否则,将应用以下有序步骤:[0860]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[0861]2.相邻亮度样点py[x][y]如下推导:[0862]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[0863]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[0864]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[0865]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[0866]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[0867]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[0868]—如果subwidthc和subheightc两者都等于1,则适用以下:[0869]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[0870]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[0871]—否则,适用以下:[0872]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[0873]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[0874]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[0875]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[0876]—如果subwidthc和subheightc两者都等于2,则适用以下:[0877]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[0878]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀꢀ(365)[0879]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀꢀꢀꢀ(366)[0880]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀ(367)[0881]—否则,适用以下:[0882]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[0883]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀꢀ(369)[0884]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0885]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0886]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [0887]f3[0][1]×py[subwidthc×x-1][subheightc×y] [0888]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[0889]f3[2][1]×py[subwidthc×x 1][subheightc×y] [0890]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[0891]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0892]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0893]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [0894]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [0895]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[0896]f4[1][2]×py[subwidthc×x][subheightc×y 1] [0897]f4[2][1]×py[subwidthc×x 1][subheightc×y] [0898]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[0899]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[0900]—变量y被设置为等于pickposl[idx]。[0901]—如果subwidthc和subheightc两者都等于1,则适用以下:[0902]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[0903]—否则,适用以下:[0904]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0905]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [0906]f3[0][1]×py[-1-subwidthc][subheightc×y] [0907]f3[1][1]×py[-subwidthc][subheightc×y] (373)[0908]f3[2][1]×py[1-subwidthc][subheightc×y] [0909]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[0910]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0911]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [0912]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [0913]f4[1][1]×py[-subwidthc][subheightc×y] (374)[0914]f4[1][2]×py[-subwidthc][subheightc×y 1] [0915]f4[2][1]×py[1-subwidthc][subheightc×y] [0916]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[0917]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样的相邻顶部亮度样点pseldsy[idx],其中idx=[[0]]cntl..cntl cntt-1如下指定:[0918]—变量x被设置为等于pickpost[idx-cntl]。[0919]—如果subwidthc和subheightc两者都等于1,则适用以下:[0920]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[0921]—否则,适用以下:[0922]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[0923]—如果bctuboundary等于假(false),则适用以下:[0924]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [0925]f3[0][1]×py[subwidthc×x-1][-subheightc] [0926]f3[1][1]×py[subwidthc×x][-subheightc] (376)[0927]f3[2][1]×py[subwidthc×x 1][-subheightc] [0928]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[0929]—否则(bctuboundary是真(true)),则适用以下:[0930]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [0931]f2[1]×py[subwidthc×x][-1] (377)[0932]f2[2]×py[subwidthc×x 1][-1] 2)》》2[0933]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[0934]—如果bctuboundary等于假(false),则适用以下:[0935]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [0936]f4[0][2]×py[subwidthc×x-1][-2] [0937]f4[1][1]×py[subwidthc×x][-1] ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(378)[0938]f4[1][2]×py[subwidthc×x][-2] [0939]f4[2][1]×py[subwidthc×x 1][-1] [0940]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[0941]—否则(bctuboundary是真(true)),则适用以下:[0942]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [0943]f2[1]×py[subwidthc×x][-1] ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(379)[0944]f2[2]×py[subwidthc×x 1][-1] 2)》》2[0945]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[0946]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[0947]—数组mingrpidx和maxgrpidx如下推导:[0948]mingrpidx[0]=0ꢀꢀꢀꢀꢀ(380)[0949]mingrpidx[1]=2ꢀꢀꢀꢀꢀ(381)[0950]maxgrpidx[0]=1ꢀꢀꢀꢀꢀ(382)[0951]maxgrpidx[1]=3ꢀꢀꢀꢀꢀ(383)[0952]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[0953](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀꢀ(384)[0954]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[0955](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀ(385)[0956]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[0957](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀ(386)[0958]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[0959](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀ(387)[0960]—变量maxy、maxc、miny和minc如下推导:[0961]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)[0962]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1ꢀꢀ(391)[0963]7.变量a、b和k如下推导:[0964]—如果numsampl等于0且numsampt等于0,则适用以下:[0965]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[0966]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[0967]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[0968]—否则,适用以下:[0969]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(395)[0970]—如果diff不等于0,则适用以下:[0971]diffc=maxc-mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(396)[0972]x=floor(log2(diff))ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(397)[0973]normdiff=((diff《《4)》》x)&15ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(398)[0974]x =(normdiff!=0)?1:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(399)[0975]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0(400)[0976]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》y(401)[0977]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(402)[0978]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(403)[0979]b=minc-((a×miny)》》k)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(404)[0980]其中divsigtable[]如下指定:[0981]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(405)[0982]—否则(diff等于0),则适用以下:[0983]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(406)[0984]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(407)[0985]b=mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(408)[0986]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[0987]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[0988]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[0989]5.6.实施例6[0990]jvet-q2001-ve中规定的工作草案可作如下更改。[0991]8.4.5.2.13[0992]对这一过程的输入是:[0993]—帧内预测模式predmodeintra,[0994]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[0995]—指定变换块宽度的变量ntbw,[0996]—指定变换块高度的变量ntbh,[0997]—指定当前块的颜色分量的变量cidx,[0998]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,x=0..2×ntbw-1,y=-1。[0999]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[1000]当前亮度位置(xtby,ytby)如下推导:[1001](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀ(351)[1002]变量availl、availt和availtl如下推导:[1003]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[1004]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[1005]—变量availtl如下推导:[1006]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)[1007]—可用的右上相邻色度样点数numtopright如下推导:[1008]—变量numtopright被设置为0,而availtr被设置为真(true)。[1009]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[1010]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[1011]—当availtr等于真(true)时,numtopright增加1。[1012]—可用的左下相邻色度样点数numleftbelow如下推导:[1013]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[1014]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[1015]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[1016]—当availlb等于真(true)时,numleftbelow增加1。[1017]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[1018]—如果predmodeintra等于intra_lt_cclm,则适用以下:[1019]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[1020]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[1021]—否则,适用以下:[1022]numsampt=(availt&&predmodeintra==intra_t_cclm)?[1023](ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)[1024]numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(356)[1025]变量bctuboundary如下推导:[1026]bctuboundary=(ytby&(ctbsizey-1)==0)?true:false(357)[1027]n被l和t替代的变量cntn和数组pickposn,如下推导:[1028]—变量numis4n如下推导:[1029]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[1030]—变量startposn被设置为等于numsampn》》(2 numis4n)。[1031]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[1032]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[1033]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[1034]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[1035]—否则,cntn被设置为等于0。[1036]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1037]—如果numsampl和numsampt两者都等于0,则适用以下:[1038]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[1039]—否则,将应用以下有序步骤:[1040]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[1041]2.相邻亮度样点py[x][y]如下推导:[1042]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1043]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[1044]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[1045]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1046]—当availtl等于真(true)时,其中x=-1,的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1047]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[1048]—如果subwidthc和subheightc两者都等于1,则适用以下:[1049]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[1050]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[1051]—否则,适用以下:[1052]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[1053]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[1054]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[1055]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[1056]—如果subwidthc和subheightc两者都等于2,则适用以下:[1057]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[1058]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀ(365)[1059]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(366)[1060]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(367)[1061]—否则,适用以下:[1062]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[1063]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(369)[1064]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1065]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1066]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [1067]f3[0][1]×py[subwidthc×x-1][subheightc×y] [1068]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[1069]f3[2][1]×py[subwidthc×x 1][subheightc×y] [1070]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[1071]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1072]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1073]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [1074]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [1075]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[1076]f4[1][2]×py[subwidthc×x][subheightc×y 1] [1077]f4[2][1]×py[subwidthc×x 1][subheightc×y] [1078]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[1079]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[1080]—变量y被设置为等于pickposl[idx]。[1081]—如果subwidthc和subheightc两者都等于1,则适用以下:[1082]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[1083]—否则,适用以下:[1084]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1085]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [1086]f3[0][1]×py[-1-subwidthc][subheightc×y] [1087]f3[1][1]×py[-subwidthc][subheightc×y] (373)[1088]f3[2][1]×py[1-subwidthc][subheightc×y] [1089]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[1090]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1091]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [1092]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [1093]f4[1][1]×py[-subwidthc][subheightc×y] (374)[1094]f4[1][2]×py[-subwidthc][subheightc×y 1] [1095]f4[2][1]×py[1-subwidthc][subheightc×y] [1096]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[1097]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样的相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[1098]—变量x被设置为等于pickpost[idx-cntl]。[1099]—如果subwidthc和subheightc两者都等于1,则适用以下:[1100]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[1101]—否则,适用以下:[1102]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1103]—如果bctuboundary等于假(false),则适用以下:[1104]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [1105]f3[0][1]×py[subwidthc×x-1][-subheightc] [1106]f3[1][1]×py[subwidthc×x][-subheightc] (376)[1107]f3[2][1]×py[subwidthc×x 1][-subheightc] [1108]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[1109]—否则(bctuboundary是真(true)),则适用以下:[1110]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1111]f2[1]×py[subwidthc×x][-1] (377)[1112]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1113]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1114]—如果bctuboundary等于假(false),则适用以下:[1115]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [1116]f4[0][2]×py[subwidthc×x-1][-2] [1117]f4[1][1]×py[subwidthc×x][-1] (378)[1118]f4[1][2]×py[subwidthc×x][-2] [1119]f4[2][1]×py[subwidthc×x 1][-1] [1120]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[1121]—否则(bctuboundary是真(true)),则适用以下:[1122]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1123]f2[1]×py[subwidthc×x][-1] (379)[1124]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1125]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[1126]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[1127]—数组mingrpidx和maxgrpidx如下推导:[1128]mingrpidx[0]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(380)[1129]mingrpidx[1]=2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(381)[1130]maxgrpidx[0]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(382)[1131]maxgrpidx[1]=3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(383)[1132]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[1133](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀ(384)[1134]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[1135](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀ(385)[1136]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[1137](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀꢀ(386)[1138]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[1139](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀ(387)[1140]—变量maxy、maxc、miny和minc如下推导:[1141]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀꢀꢀ(388)[1142]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1ꢀꢀ(389)[1143]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀ(390)[1144]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[1145]7.变量a、b和k如下推导:[1146]—如果numsampl等于0且numsampt等于0,则适用以下:[1147]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[1148]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[1149]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[1150]—否则,适用以下:[1151]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(395)[1152]—如果diff不等于0,则适用以下:[1153]diffc=maxc-mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(396)[1154]x=floor(log2(diff))ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(397)[1155]normdiff=((diff《《4)》》x)&15ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(398)[1156]x =(normdiff!=0)?1:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(399)[1157]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀ(400)[1158]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀ(401)[1159]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(402)[1160]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(403)[1161]b=minc-((a×miny)》》k)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(404)[1162]其中divsigtable[]如下指定:[1163]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀꢀ(405)[1164]—否则(diff等于0),则适用以下:[1165]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(406)[1166]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(407)[1167]b=mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(408)[1168]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1169]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[1170]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[1171]5.7.实施例7[1172]jvet-q2001-ve中规定的工作草案可作如下更改。[1173]8.4.5.2.13[1174]对这一过程的输入是:[1175]—帧内预测模式predmodeintra,[1176]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[1177]—指定变换块宽度的变量ntbw,[1178]—指定变换块高度的变量ntbh,[1179]—指定当前块的颜色分量的变量cidx,[1180]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1以及x=0..2×ntbw-1,y=-1。[1181]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[1182]当前亮度位置(xtby,ytby)如下推导:[1183](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀ(351)[1184]变量availl、availt和availtl如下推导:[1185]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[1186]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[1187]—变量availtl如下推导:[1188]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)[1189]—可用的右上相邻色度样点数numtopright如下推导:[1190]—变量numtopright被设置为0,而availtr被设置为真(true)。[1191]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[1192]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[1193]—当availtr等于真(true)时,numtopright增加1。[1194]—可用的左下相邻色度样点数numleftbelow如下推导:[1195]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[1196]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[1197]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[1198]—当availlb等于真(true)时,numleftbelow增加1。[1199]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[1200]—如果predmodeintra等于intra_lt_cclm,则适用以下:[1201]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[1202]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[1203]—否则,适用以下:[1204]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)[1205]numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(356)[1206]变量bctuboundary如下推导:[1207]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀꢀ(357)[1208]n被l和t替代的变量cntn和数组pickposn,如下推导:[1209]—变量numis4n如下推导:[1210]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀꢀ(358)[1211]—变量startposn被设置为等于numsampn》》(2 numis4n)。[1212]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[1213]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[1214]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[1215]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[1216]—否则,cntn被设置为等于0。[1217]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1218]—如果numsampl和numsampt两者都等于0,则适用以下:[1219]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(359)[1220]—否则,将应用以下有序步骤:[1221]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[1222]2.相邻亮度样点py[x][y]如下推导:[1223]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1224]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[1225]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[1226]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、1、[[-2]]的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1227]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1228]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[1229]—如果subwidthc和subheightc两者都等于1,则适用以下:[1230]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[1231]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[1232]—否则,适用以下:[1233]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[1234]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[1235]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[1236]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[1237]—如果subwidthc和subheightc两者都等于2,则适用以下:[1238]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[1239]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀ(365)[1240]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(366)[1241]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(367)[1242]—否则,适用以下:[1243]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[1244]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(369)[1245]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1246]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1247]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [1248]f3[0][1]×py[subwidthc×x-1][subheightc×y] [1249]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[1250]f3[2][1]×py[subwidthc×x 1][subheightc×y] [1251]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[1252]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1253]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1254]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [1255]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [1256]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[1257]f4[1][2]×py[subwidthc×x][subheightc×y 1] [1258]f4[2][1]×py[subwidthc×x 1][subheightc×y] [1259]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[1260]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[1261]—变量y被设置为等于pickposl[idx]。[1262]—如果subwidthc和subheightc两者都等于1,则适用以下:[1263]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[1264]—否则,适用以下:[1265]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1266]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [1267]f3[0][1]×py[-1-subwidthc][subheightc×y] [1268]f3[1][1]×py[-subwidthc][subheightc×y] (373)[1269]f3[2][1]×py[1-subwidthc][subheightc×y] [1270]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[1271]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1272]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [1273]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [1274]f4[1][1]×py[-subwidthc][subheightc×y] (374)[1275]f4[1][2]×py[-subwidthc][subheightc×y 1] [1276]f4[2][1]×py[1-subwidthc][subheightc×y] [1277]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[1278]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[1279]—变量x被设置为等于pickpost[idx-cntl]。[1280]—如果subwidthc和subheightc两者都等于1,则适用以下:[1281]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[1282]—否则,适用以下:[1283]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1284]—如果bctuboundary等于假(false),则适用以下:[1285]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [1286]f3[0][1]×py[subwidthc×x-1][-subheightc] [1287]f3[1][1]×py[subwidthc×x][-subheightc] (376)[1288]f3[2][1]×py[subwidthc×x 1][-subheightc] [1289]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[1290]—否则(bctuboundary是真(true)),则适用以下:[1291]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1292]f2[1]×py[subwidthc×x][-1] ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(377)[1293]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1294]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1295]—如果bctuboundary等于假(false),则适用以下:[1296]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [1297]f4[0][2]×py[subwidthc×x-1][-2] [1298]f4[1][1]×py[subwidthc×x][-1] ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(378)[1299]f4[1][2]×py[subwidthc×x][-2] [1300]f4[2][1]×py[subwidthc×x 1][-1] [1301]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[1302]—否则(bctuboundary是真(true)),则适用以下:[1303]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1304]f2[1]×py[subwidthc×x][-1] ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(379)[1305]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1306]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[1307]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[1308]—数组mingrpidx和maxgrpidx如下推导:[1309]mingrpidx[0]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(380)[1310]mingrpidx[1]=2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(381)[1311]maxgrpidx[0]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(382)[1312]maxgrpidx[1]=3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(383)[1313]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[1314](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀꢀ(384)[1315]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[1316](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀꢀ(385)[1317]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[1318](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀ(386)[1319]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[1320](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀ(387)[1321]—变量maxy、maxc、miny和minc如下推导:[1322]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)[1323]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[1324]7.变量a、b和k如下推导:[1325]—如果numsampl等于0且numsampt等于0,则适用以下:[1326]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[1327]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[1328]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[1329]—否则,适用以下:[1330]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(395)[1331]—如果diff不等于0,则适用以下:[1332]diffc=maxc-mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(396)[1333]x=floor(log2(diff))ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(397)[1334]normdiff=((diff《《4)》》x)&15ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(398)[1335]x =(normdiff!=0)?1:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(399)[1336]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀꢀꢀ(400)[1337]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀꢀꢀꢀꢀ(401)[1338]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(402)[1339]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(403)[1340]b=minc-((a×miny)》》k)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(404)[1341]其中divsigtable[]如下指定:[1342]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀ(405)[1343]—否则(diff等于0),则适用以下:[1344]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(406)[1345]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(407)[1346]b=mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(408)[1347]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1348]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀ(409)[1349]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[1350]5.8.实施例8[1351]jvet-q2001-ve中规定的工作草案可作如下更改。[1352]8.4.5.2.13[1353]对这一过程的输入是:[1354]—帧内预测模式predmodeintra,[1355]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[1356]—指定变换块宽度的变量ntbw,[1357]—指定变换块高度的变量ntbh,[1358]—指定当前块的颜色分量的变量cidx,[1359]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,x=0。2×ntbw-1,y=-1。[1360]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[1361]当前亮度位置(xtby,ytby)如下推导:[1362](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀ(351)[1363]变量availl、availt和availtl如下推导:[1364]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[1365]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[1366][1367][[—变量availtl如下推导:[1368]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)]][1369]—可用的右上相邻色度样点数numtopright如下推导:[1370]—变量numtopright被设置为0,而availtr被设置为真(true)。[1371]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[1372]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[1373]—当availtr等于真(true)时,numtopright增加1。[1374]—可用的左下相邻色度样点数numleftbelow如下推导:[1375]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[1376]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[1377]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[1378]—当availlb等于真(true)时,numleftbelow增加1。[1379]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[1380]—如果predmodeintra等于intra_lt_cclm,则适用以下:[1381]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[1382]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[1383]—否则,适用以下:[1384]numsampt=(availt&&predmodeintra==intra_t_cclm)?[1385](ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀ(356)[1386]变量bctuboundary如下推导:[1387]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀ(357)[1388]n被l和t替代的变量cntn和数组pickposn,如下推导:[1389]—变量numis4n如下推导:[1390]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[1391]—变量startposn被设置为等于numsampn》》(2 numis4n)。[1392]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[1393]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[1394]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[1395]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[1396]—否则,cntn被设置为等于0。[1397]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1398]—如果numsampl和numsampt两者都等于0,则适用以下:[1399]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(359)[1400]—否则,将应用以下有序步骤:[1401]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[1402]2.相邻亮度样点py[x][y]如下推导:[1403]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1404]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[1405]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[1406]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1407]—[[当]]availtl等于真(true)时,x=-1,-2,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1408][1409]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[1410]—如果subwidthc和subheightc两者都等于1,则适用以下:[1411]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[1412]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[1413]—否则,适用以下:[1414]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[1415]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[1416]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[1417]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[1418]—如果subwidthc和subheightc两者都等于2,则适用以下:[1419]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[1420]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀꢀ(365)[1421]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(366)[1422]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(367)[1423]—否则,适用以下:[1424]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[1425]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(369)[1426]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1427]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1428]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [1429]f3[0][1]×py[subwidthc×x-1][subheightc×y] [1430]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[1431]f3[2][1]×py[subwidthc×x 1][subheightc×y] [1432]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[1433]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1434]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1435]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [1436]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [1437]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[1438]f4[1][2]×py[subwidthc×x][subheightc×y 1] [1439]f4[2][1]×py[subwidthc×x 1][subheightc×y] [1440]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[1441]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[1442]—变量y被设置为等于pickposl[idx]。[1443]—如果subwidthc和subheightc两者都等于1,则适用以下:[1444]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[1445]—否则,适用以下:[1446]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1447]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [1448]f3[0][1]×py[-1-subwidthc][subheightc×y] [1449]f3[1][1]×py[-subwidthc][subheightc×y] (373)[1450]f3[2][1]×py[1-subwidthc][subheightc×y] [1451]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[1452]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1453]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [1454]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [1455]f4[1][1]×py[-subwidthc][subheightc×y] (374)[1456]f4[1][2]×py[-subwidthc][subheightc×y 1] [1457]f4[2][1]×py[1-subwidthc][subheightc×y] [1458]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[1459]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[1460]—变量x被设置为等于pickpost[idx-cntl]。[1461]—如果subwidthc和subheightc两者都等于1,则适用以下:[1462]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[1463]—否则,适用以下:[1464]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1465]—如果bctuboundary等于假(false),则适用以下:[1466]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [1467]f3[0][1]×py[subwidthc×x-1][-subheightc] [1468]f3[1][1]×py[subwidthc×x][-subheightc] (376)[1469]f3[2][1]×py[subwidthc×x 1][-subheightc] [1470]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[1471]—否则(bctuboundary是真(true)),则适用以下:[1472]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1473]f2[1]×py[subwidthc×x][-1] (377)[1474]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1475]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1476]—如果bctuboundary等于假(false),则适用以下:[1477]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [1478]f4[0][2]×py[subwidthc×x-1][-2] [1479]f4[1][1]×py[subwidthc×x][-1] (378)[1480]f4[1][2]×py[subwidthc×x][-2] [1481]f4[2][1]×py[subwidthc×x 1][-1] [1482]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[1483]—否则(bctuboundary是真(true)),则适用以下:[1484]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1485]f2[1]×py[subwidthc×x][-1] (379)[1486]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1487]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[1488]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[1489]—数组mingrpidx和maxgrpidx如下推导:[1490]mingrpidx[0]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(380)[1491]mingrpidx[1]=2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(381)[1492]maxgrpidx[0]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(382)[1493]maxgrpidx[1]=3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(383)[1494]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[1495](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀ(384)[1496]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[1497](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀ(385)[1498]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[1499](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀꢀ(386)[1500]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[1501](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀ(387)[1502]—变量maxy、maxc、miny和minc如下推导:[1503]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(388)[1504]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(389)[1505]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀꢀꢀ(390)[1506]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1ꢀꢀ(391)[1507]7.变量a、b和k如下推导:[1508]—如果numsampl等于0且numsampt等于0,则适用以下:[1509]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[1510]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[1511]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[1512]—否则,适用以下:[1513]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(395)[1514]—如果diff不等于0,则适用以下:[1515]diffc=maxc-mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(396)[1516]x=floor(log2(diff))ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(397)[1517]normdiff=((diff《《4)》》x)&15ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(398)[1518]x =(normdiff!=0)?1:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(399)[1519]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀꢀꢀ(400)[1520]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀꢀꢀꢀꢀ(401)[1521]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(402)[1522]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(403)[1523]b=minc-((a×miny)》》k)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(404)[1524]其中divsigtable[]如下指定:[1525]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀ(405)[1526]—否则(diff等于0),则适用以下:[1527]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(406)[1528]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(407)[1529]b=mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(408)[1530]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1531]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[1532]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[1533]5.9.实施例9[1534]jvet-q2001-ve中规定的工作草案可作如下更改。[1535]8.4.5.2.13[1536]对这一过程的输入是:[1537]—帧内预测模式predmodeintra,[1538]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[1539]—指定变换块宽度的变量ntbw,[1540]—指定变换块高度的变量ntbh,[1541]—指定当前块的颜色分量的变量cidx,[1542]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,x=0。2×ntbw-1,y=-1。[1543]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[1544]当前亮度位置(xtby,ytby)如下推导:[1545](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀꢀ(351)[1546]变量availl、availt和availtl如下推导:[1547]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[1548]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[1549]—变量availtl如下推导:[1550]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)[1551]—可用的右上相邻色度样点数numtopright如下推导:[1552]—变量numtopright被设置为0,而availtr被设置为真(true)。[1553]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[1554]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[1555]—当availtr等于真(true)时,numtopright增加1。[1556]—可用的左下相邻色度样点数numleftbelow如下推导:[1557]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[1558]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[1559]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[1560]—当availlb等于真(true)时,numleftbelow增加1。[1561]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[1562]—如果predmodeintra等于intra_lt_cclm,则适用以下:[1563]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[1564]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[1565]—否则,适用以下:[1566]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀ(356)[1567]变量bctuboundary如下推导:[1568]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀꢀ(357)[1569]n被l和t替代的变量cntn和数组pickposn,如下推导:[1570]—变量numis4n如下推导:[1571]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[1572]—变量startposn被设置为等于numsampn》》(2 numis4n)。[1573]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[1574]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[1575]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[1576]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[1577]—否则,cntn被设置为等于0。[1578]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1579]—如果numsampl和numsampt两者都等于0,则适用以下:[1580]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(359)[1581]—否则,将应用以下有序步骤:[1582]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[1583]2.相邻亮度样点py[x][y]如下推导:[1584]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1585]—当availt等于假(false)时,其中—当availt等于假(false)时,其中y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[1586][[—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。]][1587]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1588][1589]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1590]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[1591]—如果subwidthc和subheightc两者都等于1,则适用以下:[1592]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[1593]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[1594]—否则,适用以下:[1595]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[1596]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[1597]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[1598]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[1599]—如果subwidthc和subheightc两者都等于2,则适用以下:[1600]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[1601]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀꢀꢀꢀ(365)[1602]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(366)[1603]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(367)[1604]—否则,适用以下:[1605]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[1606]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(369)[1607]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1608]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1609]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [1610]f3[0][1]×py[subwidthc×x-1][subheightc×y] [1611]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[1612]f3[2][1]×py[subwidthc×x 1][subheightc×y] [1613]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[1614]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1615]—pdsy[x][y],x=0..ntbw-1,y=0..ntbh-1如下推导:[1616]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [1617]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [1618]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[1619]f4[1][2]×py[subwidthc×x][subheightc×y 1] [1620]f4[2][1]×py[subwidthc×x 1][subheightc×y] [1621]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[1622]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[1623]—变量y被设置为等于pickposl[idx]。[1624]—如果subwidthc和subheightc两者都等于1,则适用以下:[1625]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[1626]—否则,适用以下:[1627]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1628]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [1629]f3[0][1]×py[-1-subwidthc][subheightc×y] [1630]f3[1][1]×py[-subwidthc][subheightc×y] (373)[1631]f3[2][1]×py[1-subwidthc][subheightc×y] [1632]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[1633]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1634]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [1635]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [1636]f4[1][1]×py[-subwidthc][subheightc×y] (374)[1637]f4[1][2]×py[-subwidthc][subheightc×y 1] [1638]f4[2][1]×py[1-subwidthc][subheightc×y] [1639]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[1640]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[1641]—变量x被设置为等于pickpost[idx-cntl]。[1642]—如果subwidthc和subheightc两者都等于1,则适用以下:[1643]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[1644]—否则,适用以下:[1645]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1646]—如果bctuboundary等于假(false),则适用以下:[1647]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [1648]f3[0][1]×py[subwidthc×x-1][-subheightc] [1649]f3[1][1]×py[subwidthc×x][-subheightc] (376)[1650]f3[2][1]×py[subwidthc×x 1][-subheightc] [1651]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[1652]—否则(bctuboundary是真(true)),则适用以下:[1653]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1654]f2[1]×py[subwidthc×x][-1] (377)[1655]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1656]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1657]—如果bctuboundary等于假(false),则适用以下:[1658]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [1659]f4[0][2]×py[subwidthc×x-1][-2] [1660]f4[1][1]×py[subwidthc×x][-1] (378)[1661]f4[1][2]×py[subwidthc×x][-2] [1662]f4[2][1]×py[subwidthc×x 1][-1] [1663]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[1664]—否则(bctuboundary是真(true)),则适用以下:[1665]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1666]f2[1]×py[subwidthc×x][-1] (379)[1667]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1668]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[1669]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[1670]—数组mingrpidx和maxgrpidx如下推导:[1671]mingrpidx[0]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(380)[1672]mingrpidx[1]=2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(381)[1673]maxgrpidx[0]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(382)[1674]maxgrpidx[1]=3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(383)[1675]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[1676](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀ(384)[1677]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[1678](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀ(385)[1679]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[1680](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀꢀ(386)[1681]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[1682](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀꢀ(387)[1683]—变量maxy、maxc、miny和minc如下推导:[1684]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(388)[1685]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1(389)[1686]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀꢀꢀꢀꢀꢀ(390)[1687]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[1688]7.变量a、b和k如下推导:[1689]—如果numsampl等于0且numsampt等于0,则适用以下:[1690]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[1691]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[1692]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[1693]—否则,适用以下:[1694]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(395)[1695]—如果diff不等于0,则适用以下:[1696]diffc=maxc-mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(396)[1697]x=floor(log2(diff))ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(397)[1698]normdiff=((diff《《4)》》x)&15ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(398)[1699]x =(normdiff!=0)?1:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(399)[1700]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀꢀꢀ(400)[1701]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀꢀꢀꢀꢀ(401)[1702]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(402)[1703]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(403)[1704]b=minc-((a×miny)》》k)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(404)[1705]其中divsigtable[]如下指定:[1706]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀ(405)[1707]—否则(diff等于0),则适用以下:[1708]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(406)[1709]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(407)[1710]b=mincꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(408)[1711]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1712]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[1713]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[1714]5.10.实施例10[1715]jvet-q2001-ve中规定的工作草案可作如下更改。[1716]8.4.5.2.13[1717]对这一过程的输入是:[1718]—帧内预测模式predmodeintra,[1719]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[1720]—指定变换块宽度的变量ntbw,[1721]—指定变换块高度的变量ntbh,[1722]—指定当前块的颜色分量的变量cidx,[1723]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[1724]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[1725]当前亮度位置(xtby,ytby)如下推导:[1726](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀ(351)[1727]变量availl、availt和availtl如下推导:[1728]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[1729]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[1730][1731][[—变量availtl如下推导:[1732]availtl=availl&&availtꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(352)]][1733]—可用的右上相邻色度样点数numtopright如下推导:[1734]—变量numtopright被设置为0,而availtr被设置为真(true)。[1735]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[1736]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[1737]—当availtr等于真(true)时,numtopright增加1。[1738]—可用的左下相邻色度样点数numleftbelow如下推导:[1739]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[1740]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[1741]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[1742]—当availlb等于真(true)时,numleftbelow增加1。[1743]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[1744]—如果predmodeintra等于intra_lt_cclm,则适用以下:[1745]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[1746]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[1747]—否则,适用以下:[1748]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀ(356)[1749]变量bctuboundary如下推导:[1750]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀ(357)[1751]n被l和t替代的变量cntn和数组pickposn,如下推导:[1752]—变量numis4n如下推导:[1753]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀꢀ(358)[1754]—变量startposn被设置为等于numsampn》》(2 numis4n)。[1755]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[1756]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[1757]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[1758]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[1759]—否则,cntn被设置为等于0。[1760]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1761]—如果numsampl和numsampt两者都等于0,则适用以下:[1762]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(359)[1763]—否则,将应用以下有序步骤:[1764]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[1765]2.相邻亮度样点py[x][y]如下推导:[1766]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1767][[—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[1768]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。]][1769]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1770]—[[当]]availtl等于真(true)时,x=-1,-2,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1771][1772][1773]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[1774]—如果subwidthc和subheightc两者都等于1,则适用以下:[1775]—pdsy[x][y],x=1..ntbw-1,y=1..ntbh-1如下推导:[1776]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[1777]—否则,适用以下:[1778]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[1779]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[1780]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[1781]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[1782]—如果subwidthc和subheightc两者都等于2,则适用以下:[1783]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[1784]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,[1785]f3[1][2]=1(365)[1786]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1(366)[1787]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1(367)[1788]—否则,适用以下:[1789]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[1790]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀ(369)[1791]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1792]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1793]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [1794]f3[0][1]×py[subwidthc×x-1][subheightc×y] [1795]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[1796]f3[2][1]×py[subwidthc×x 1][subheightc×y] [1797]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[1798]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1799]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1800]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [1801]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [1802]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[1803]f4[1][2]×py[subwidthc×x][subheightc×y 1] [1804]f4[2][1]×py[subwidthc×x 1][subheightc×y] [1805]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[1806]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[1807]—变量y被设置为等于pickposl[idx]。[1808]—如果subwidthc和subheightc两者都等于1,则适用以下:[1809]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[1810]—否则,适用以下:[1811]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1812]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [1813]f3[0][1]×py[-1-subwidthc][subheightc×y] [1814]f3[1][1]×py[-subwidthc][subheightc×y] (373)[1815]f3[2][1]×py[1-subwidthc][subheightc×y] [1816]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[1817]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1818]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [1819]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [1820]f4[1][1]×py[-subwidthc][subheightc×y] (374)[1821]f4[1][2]×py[-subwidthc][subheightc×y 1] [1822]f4[2][1]×py[1-subwidthc][subheightc×y] [1823]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[1824]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[1825]—变量x被设置为等于pickpost[idx-cntl]。[1826]—如果subwidthc和subheightc两者都等于1,则适用以下:[1827]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[1828]—否则,适用以下:[1829]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1830]—如果bctuboundary等于假(false),则适用以下:[1831]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [1832]f3[0][1]×py[subwidthc×x-1][-subheightc] [1833]f3[1][1]×py[subwidthc×x][-subheightc] (376)[1834]f3[2][1]×py[subwidthc×x 1][-subheightc] [1835]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[1836]—否则(bctuboundary是真(true)),则适用以下:[1837]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1838]f2[1]×py[subwidthc×x][-1] (377)[1839]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1840]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1841]—如果bctuboundary等于假(false),则适用以下:[1842]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [1843]f4[0][2]×py[subwidthc×x-1][-2] [1844]f4[1][1]×py[subwidthc×x][-1] (378)[1845]f4[1][2]×py[subwidthc×x][-2] [1846]f4[2][1]×py[subwidthc×x 1][-1] [1847]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[1848]—否则(bctuboundary是真(true)),则适用以下:[1849]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [1850]f2[1]×py[subwidthc×x][-1] (379)[1851]f2[2]×py[subwidthc×x 1][-1] 2)》》2[1852]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[1853]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[1854]—数组mingrpidx和maxgrpidx如下推导:[1855]mingrpidx[0]=0ꢀꢀꢀꢀꢀ(380)[1856]mingrpidx[1]=2ꢀꢀꢀꢀꢀ(381)[1857]maxgrpidx[0]=1ꢀꢀꢀꢀꢀ(382)[1858]maxgrpidx[1]=3ꢀꢀꢀꢀꢀ(383)[1859]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[1860](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀ(384)[1861]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[1862](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀꢀ(385)[1863]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[1864](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀꢀ(386)[1865]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[1866](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀ(387)[1867]—变量maxy、maxc、miny和minc如下推导:[1868]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀ(388)[1869]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(389)[1870]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀꢀꢀ(390)[1871]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[1872]7.变量a、b和k如下推导:[1873]—如果numsampl等于0且numsampt等于0,则适用以下:[1874]k=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(392)[1875]a=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(393)[1876]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(394)[1877]—否则,适用以下:[1878]diff=maxy-minyꢀꢀꢀꢀꢀ(395)[1879]—如果diff不等于0,则适用以下:[1880]diffc=maxc-mincꢀꢀꢀ(396)[1881]x=floor(log2(diff))ꢀꢀꢀ(397)[1882]normdiff=((diff《《4)》》x)&15ꢀꢀꢀ(398)[1883]x =(normdiff!=0)?1:0(399)[1884]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀ(400)[1885]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀꢀ(401)[1886]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀ(402)[1887]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀ(403)[1888]b=minc-((a×miny)》》k)ꢀꢀꢀ(404)[1889]其中divsigtable[]如下指定:[1890]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(405)[1891]—否则(diff等于0),则适用以下:[1892]k=0(406)[1893]a=0(407)[1894]b=minc(408)[1895]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1896]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[1897]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[1898]5.11.实施例11[1899]jvet-q2001-ve中规定的工作草案可作如下更改。[1900]8.4.5.2.13[1901]对这一过程的输入是:[1902]—帧内预测模式predmodeintra,[1903]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[1904]—指定变换块宽度的变量ntbw,[1905]—指定变换块高度的变量ntbh,[1906]—指定当前块的颜色分量的变量cidx,[1907]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[1908]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[1909]当前亮度位置(xtby,ytby)如下推导:[1910](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))(351)[1911]变量availl、availt和availtl如下推导:[1912]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[1913]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[1914][[—变量availtl如下推导:[1915]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)]][1916]—可用的右上相邻色度样点数numtopright如下推导:[1917]—变量numtopright被设置为0,而availtr被设置为真(true)。[1918]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[1919]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[1920]—当availtr等于真(true)时,numtopright增加1。[1921]—可用的左下相邻色度样点数numleftbelow如下推导:[1922]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[1923]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[1924]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[1925]—当availlb等于真(true)时,numleftbelow增加1。[1926]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[1927]—如果predmodeintra等于intra_lt_cclm,则适用以下:[1928]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀ(353)[1929]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀ(354)[1930]—否则,适用以下:[1931]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)[1932]numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(356)[1933]变量bctuboundary如下推导:[1934]bctuboundary=(ytby&(ctbsizey-1)==0)?true:false(357)[1935]n被l和t替代的变量cntn和数组pickposn,如下推导:[1936]—变量numis4n如下推导:[1937]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[1938]—变量startposn被设置为等于numsampn》》(2 numis4n)。[1939]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[1940]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[1941]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[1942]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[1943]—否则,cntn被设置为等于0。[1944]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1945]—如果numsampl和numsampt两者都等于0,则适用以下:[1946]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[1947]—否则,将应用以下有序步骤:[1948]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[1949]2.相邻亮度样点py[x][y]如下推导:[1950]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1951]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[1952]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[1953]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[1954][[—当availtl等于真(true)时,x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。]][1955][1956]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[1957]—如果subwidthc和subheightc两者都等于1,则适用以下:[1958]—pdsy[x][y],x=1..ntbw-1,y=1..ntbh-1如下推导:[1959]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[1960]—否则,适用以下:[1961]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[1962]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[1963]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(362)[1964]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(363)[1965]—如果subwidthc和subheightc两者都等于2,则适用以下:[1966]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[1967]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1(365)[1968]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1(366)[1969]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1(367)[1970]—否则,适用以下:[1971]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[1972]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀ(369)[1973]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1974]pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1975]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [1976]f3[0][1]×py[subwidthc×x-1][subheightc×y] [1977]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[1978]f3[2][1]×py[subwidthc×x 1][subheightc×y] [1979]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[1980]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[1981]pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[1982]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [1983]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [1984]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[1985]f4[1][2]×py[subwidthc×x][subheightc×y 1] [1986]f4[2][1]×py[subwidthc×x 1][subheightc×y] [1987]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[1988]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[1989]—变量y被设置为等于pickposl[idx]。[1990]—如果subwidthc和subheightc两者都等于1,则适用以下:[1991]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[1992]—否则,适用以下:[1993]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[1994]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [1995]f3[0][1]×py[-1-subwidthc][subheightc×y] [1996]f3[1][1]×py[-subwidthc][subheightc×y] (373)[1997]f3[2][1]×py[1-subwidthc][subheightc×y] [1998]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[1999]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[2000]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [2001]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [2002]f4[1][1]×py[-subwidthc][subheightc×y] (374)[2003]f4[1][2]×py[-subwidthc][subheightc×y 1] [2004]f4[2][1]×py[1-subwidthc][subheightc×y] [2005]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[2006]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[2007]—变量x被设置为等于pickpost[idx-cntl]。[2008]—如果subwidthc和subheightc两者都等于1,则适用以下:[2009]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[2010]—否则,适用以下:[2011]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[2012]—如果bctuboundary等于假(false),则适用以下:[2013]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [2014]f3[0][1]×py[subwidthc×x-1][-subheightc] [2015]f3[1][1]×py[subwidthc×x][-subheightc] (376)[2016]f3[2][1]×py[subwidthc×x 1][-subheightc] [2017]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[2018]—否则(bctuboundary是真(true)),则适用以下:[2019]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2020]f2[1]×py[subwidthc×x][-1] (377)[2021]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2022]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[2023]—如果bctuboundary等于假(false),则适用以下:[2024]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [2025]f4[0][2]×py[subwidthc×x-1][-2] [2026]f4[1][1]×py[subwidthc×x][-1] (378)[2027]f4[1][2]×py[subwidthc×x][-2] [2028]f4[2][1]×py[subwidthc×x 1][-1] [2029]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[2030]—否则(bctuboundary是真(true)),则适用以下:[2031]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2032]f2[1]×py[subwidthc×x][-1] (379)[2033]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2034]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[2035]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[2036]—数组mingrpidx和maxgrpidx如下推导:[2037]mingrpidx[0]=0ꢀꢀꢀꢀꢀ(380)[2038]mingrpidx[1]=2ꢀꢀꢀꢀꢀ(381)[2039]maxgrpidx[0]=1ꢀꢀꢀꢀꢀ(382)[2040]maxgrpidx[1]=3ꢀꢀꢀꢀꢀ(383)[2041]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[2042](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀ(384)[2043]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[2044](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀꢀ(385)[2045]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[2046](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀ(386)[2047]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[2048](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀꢀ(387)[2049]—变量maxy、maxc、miny和minc如下推导:[2050]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(388)[2051]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(389)[2052]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀꢀꢀꢀꢀꢀ(390)[2053]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[2054]7.变量a、b和k如下推导:[2055]—如果numsampl等于0且numsampt等于0,则适用以下:[2056]k=0ꢀꢀꢀꢀꢀ(392)[2057]a=0ꢀꢀꢀꢀꢀ(393)[2058]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(394)[2059]—否则,适用以下:[2060]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀ(395)[2061]—如果diff不等于0,则适用以下:[2062]diffc=maxc-mincꢀꢀꢀ(396)[2063]x=floor(log2(diff))ꢀꢀꢀ(397)[2064]normdiff=((diff《《4)》》x)&15ꢀꢀꢀ(398)[2065]x =(normdiff!=0)?1:0ꢀꢀꢀ(399)[2066]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀ(400)[2067]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀꢀ(401)[2068]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀ(402)[2069]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀ(403)[2070]b=minc-((a×miny)》》k)ꢀꢀꢀ(404)[2071]其中divsigtable[]如下指定:[2072]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀ(405)[2073]—否则(diff等于0),则适用以下:[2074]k=0(406)[2075]a=0(407)[2076]b=minc(408)[2077]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2078]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[2079]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[2080]5.12.实施例12[2081]jvet-q2001-ve中规定的工作草案可作如下更改。[2082]8.4.5.2.13[2083]对这一过程的输入是:[2084]—帧内预测模式predmodeintra,[2085]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2086]—指定变换块宽度的变量ntbw,[2087]—指定变换块高度的变量ntbh,[2088]—指定当前块的颜色分量的变量cidx,[2089]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2090]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2091]当前亮度位置(xtby,ytby)如下推导:[2092](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀ(351)[2093]变量availl、availt和availtl如下推导:[2094]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2095]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2096]—变量availtl如下推导:[2097]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)[2098]—可用的右上相邻色度样点数numtopright如下推导:[2099]—变量numtopright被设置为0,而availtr被设置为真(true)。[2100]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[2101]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[2102]—当availtr等于真(true)时,numtopright增加1。[2103]—可用的左下相邻色度样点数numleftbelow如下推导:[2104]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[2105]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[2106]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[2107]—当availlb等于真(true)时,numleftbelow增加1。[2108]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[2109]—如果predmodeintra等于intra_lt_cclm,则适用以下:[2110]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀ(353)[2111]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀ(354)[2112]—否则,适用以下:[2113]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)[2114]numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(356)[2115]变量bctuboundary如下推导:[2116]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀꢀ(357)[2117]n被l和t替代的变量cntn和数组pickposn,如下推导:[2118]—变量numis4n如下推导:[2119]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[2120]—变量startposn被设置为等于numsampn》》(2 numis4n)。[2121]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[2122]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[2123]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[2124]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[2125]—否则,cntn被设置为等于0。[2126]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2127]—如果numsampl和numsampt两者都等于0,则适用以下:[2128]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(359)[2129]—否则,将应用以下有序步骤:[2130]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2131]2.相邻亮度样点py[x][y]如下推导:[2132]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2133]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2134]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2135]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-3的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2136]—当availtl等于真(true)时,其中y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2137]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[2138]—如果subwidthc和subheightc两者都等于1,则适用以下:[2139]—pdsy[x][y],x=1..ntbw-1,y=1..ntbh-1如下推导:[2140]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[2141]—否则,适用以下:[2142]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[2143]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[2144]f2[0]=1,f2[1]=2,f2[2]=1(362)[2145]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2(363)[2146]—如果subwidthc和subheightc两者都等于2,则适用以下:[2147]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[2148]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1(365)[2149]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1(366)[2150]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1(367)[2151]—否则,适用以下:[2152]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[2153]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀ(369)[2154]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[2155]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2156]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [2157]f3[0][1]×py[subwidthc×x-1][subheightc×y] [2158]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[2159]f3[2][1]×py[subwidthc×x 1][subheightc×y] [2160]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[2161]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[2162]—pdsy[x][y]其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2163]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [2164]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [2165]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[2166]f4[1][2]×py[subwidthc×x][subheightc×y 1] [2167]f4[2][1]×py[subwidthc×x 1][subheightc×y] [2168]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[2169]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[2170]—变量y被设置为等于pickposl[idx]。[2171]—如果subwidthc和subheightc两者都等于1,则适用以下:[2172]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[2173]—否则,适用以下:[2174]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[2175]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [2176]f3[0][1]×py[-1-subwidthc][subheightc×y] [2177]f3[1][1]×py[-subwidthc][subheightc×y] (373)[2178]f3[2][1]×py[1-subwidthc][subheightc×y] [2179]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[2180]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[2181]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [2182]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [2183]f4[1][1]×py[-subwidthc][subheightc×y] (374)[2184]f4[1][2]×py[-subwidthc][subheightc×y 1] [2185]f4[2][1]×py[1-subwidthc][subheightc×y] [2186]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[2187]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中idx=0..cntl cntt-1如下指定:[2188]—变量x被设置为等于pickpost[idx-cntl]。[2189]—如果subwidthc和subheightc两者都等于1,则适用以下:[2190]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀ(375)[2191]—否则,适用以下:[2192]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[2193]—如果bctuboundary等于假(false),则适用以下:[2194]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [2195]f3[0][1]×py[subwidthc×x-1][-subheightc] [2196]f3[1][1]×py[subwidthc×x][-subheightc] (376)[2197]f3[2][1]×py[subwidthc×x 1][-subheightc] [2198]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[2199]—否则(bctuboundary是真(true)),则适用以下:[2200]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2201]f2[1]×py[subwidthc×x][-1] (377)[2202]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2203]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[2204]—如果bctuboundary等于假(false),则适用以下:[2205]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [2206]f4[0][2]×py[subwidthc×x-1][-2] [2207]f4[1][1]×py[subwidthc×x][-1] (378)[2208]f4[1][2]×py[subwidthc×x][-2] [2209]f4[2][1]×py[subwidthc×x 1][-1] [2210]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[2211]—否则(bctuboundary是真(true)),则适用以下:[2212]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2213]f2[1]×py[subwidthc×x][-1] (379)[2214]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2215]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[2216]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[2217]—数组mingrpidx和maxgrpidx如下推导:[2218]mingrpidx[0]=0ꢀꢀꢀꢀꢀ(380)[2219]mingrpidx[1]=2ꢀꢀꢀꢀꢀ(381)[2220]maxgrpidx[0]=1ꢀꢀꢀꢀꢀ(382)[2221]maxgrpidx[1]=3ꢀꢀꢀꢀꢀ(383)[2222]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[2223](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀꢀ(384)[2224]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[2225](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀꢀ(385)[2226]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[2227](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀꢀ(386)[2228]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[2229](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀ(387)[2230]—变量maxy、maxc、miny和minc如下推导:[2231]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(388)[2232]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1ꢀꢀ(389)[2233]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀꢀ(390)[2234]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[2235]7.变量a、b和k如下推导:[2236]—如果numsampl等于0且numsampt等于0,则适用以下:[2237]k=0ꢀꢀꢀꢀꢀ(392)[2238]a=0ꢀꢀꢀꢀꢀ(393)[2239]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(394)[2240]—否则,适用以下:[2241]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀ(395)[2242]—如果diff不等于0,则适用以下:[2243]diffc=maxc-mincꢀꢀꢀꢀ(396)[2244]x=floor(log2(diff))ꢀꢀꢀ(397)[2245]normdiff=((diff《《4)》》x)&15ꢀꢀꢀ(398)[2246]x =(normdiff!=0)?1:0(399)y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀ(400)[2247]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀꢀ(401)[2248]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀ(402)[2249]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀ(403)[2250]b=minc-((a×miny)》》k)ꢀꢀꢀ(404)[2251]其中divsigtable[]如下指定:[2252]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀ(405)[2253]—否则(diff等于0),则适用以下:[2254]k=0ꢀꢀꢀ(406)[2255]a=0ꢀꢀꢀ(407)[2256]b=mincꢀꢀꢀ(408)[2257]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2258]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[2259]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[2260]5.13.实施例13[2261]jvet-q2001-ve中规定的工作草案可作如下更改。[2262]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2263]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2264]—如果numsampl和numsampt两者都等于0,则适用以下:[2265]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2266]—否则,将应用以下有序步骤:[2267]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2268]2.相邻亮度样点py[x][y]如下推导:[2269]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2270]—当availt等于假(false)时,其中—当availt等于假(false)时,其中y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2271]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2272]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2273]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2274]5.14.实施例14[2275]jvet-q2001-ve中规定的工作草案可作如下更改。[2276]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2277]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2278]—如果numsampl和numsampt两者都等于0,则适用以下:[2279]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀ(359)[2280]—否则,将应用以下有序步骤:[2281]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2282]2.相邻亮度样点py[x][y]如下推导:[2283]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2284]—当availt等于假(false)—当availt等于假(false)时,其中y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2285]当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2286]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2287]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2288]5.15.实施例15[2289]jvet-q2001-ve中规定的工作草案可作如下更改。[2290]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2291]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2292]—如果numsampl和numsampt两者都等于0,则适用以下:[2293]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2294]—否则,将应用以下有序步骤:[2295]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2296]2.相邻亮度样点py[x][y]如下推导:[2297]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2298]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2299]—当availl等于假(false)时,其中x=-1..-3,的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2300]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2301]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2302]5.16.实施例16[2303]jvet-q2001-ve中规定的工作草案可作如下更改。[2304]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2305]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2306]—如果numsampl和numsampt两者都等于0,则适用以下:[2307]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2308]—否则,将应用以下有序步骤:[2309]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2310]2.相邻亮度样点py[x][y]如下推导:[2311]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2312]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2313]—[[当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。]][2314]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2315][2316]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2317]5.17.实施例17[2318]jvet-q2001-ve中规定的工作草案可作如下更改。[2319]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2320]对这一过程的输入是:[2321]—帧内预测模式predmodeintra,[2322]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2323]—指定变换块宽度的变量ntbw,[2324]—指定变换块高度的变量ntbh,[2325]—指定当前块的颜色分量的变量cidx,[2326]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2327]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2328]当前亮度位置(xtby,ytby)如下推导:[2329](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀꢀ(351)[2330]变量availl、availt和availtl如下推导:[2331]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2332]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2333][2334][[-变量availtl如下推导:[2335]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)]][2336]5.18.实施例18[2337]jvet-q2001-ve中规定的工作草案可作如下更改。[2338]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2339]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2340]—如果numsampl和numsampt两者都等于0,则适用以下:[2341]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2342]—否则,将应用以下有序步骤:[2343]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2344]2.相邻亮度样点py[x][y]如下推导:[2345]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2346]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2347]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2348]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2349][[-当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。]][2350][2351]5.19.实施例19[2352]jvet-q2001-ve中规定的工作草案可作如下更改。[2353]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2354]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2355]—如果numsampl和numsampt两者都等于0,则适用以下:[2356]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀ(359)[2357]—否则,将应用以下有序步骤:[2358]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2359]2.相邻亮度样点py[x][y]如下推导:[2360]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2361]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2362]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2363]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2364][[-当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。]][2365][2366]5.20.实施例20[2367]jvet-q2001-ve中规定的工作草案可作如下更改。[2368]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2369]对这一过程的输入是:[2370]—帧内预测模式predmodeintra,[2371]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2372]—指定变换块宽度的变量ntbw,[2373]—指定变换块高度的变量ntbh,[2374]—指定当前块的颜色分量的变量cidx,[2375]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2376]该过程的输出是经预测样点predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2377]当前亮度位置(xtby,ytby)如下推导:[2378](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀꢀ(351)[2379]变量availl、availt和availtl如下推导:[2380]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2381]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2382][2383][[-变量availtl如下推导:[2384]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)]][2385]…[2386]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2387]—如果numsampl和numsampt两者都等于0,则适用以下:[2388]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(359)[2389]—否则,将应用以下有序步骤:[2390]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2391]2.相邻亮度样点py[x][y]如下推导:[2392]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2393]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2394]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2395]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2396]—当availtl等于真(true)—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2422]—当availl等于假(false)时,其中x=-1..-3,y=[[-1]]0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2423]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2424]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2425][2426]5.23.实施例23[2427]jvet-q2001-ve中规定的工作草案可作如下更改。[2428]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2429]对这一过程的输入是:[2430]—帧内预测模式predmodeintra,[2431]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2432]—指定变换块宽度的变量ntbw,[2433]—指定变换块高度的变量ntbh,[2434]—指定当前块的颜色分量的变量cidx,[2435]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2436]该过程的输出是predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2437]当前亮度位置(xtby,ytby)如下推导:(xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(351)[2438]变量availl、availt和availtl如下推导:[2439]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2440]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2441][2442][[-变量availtl如下推导:[2443]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)]][2444]…[2445]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2446]—如果numsampl和numsampt两者都等于0,则适用以下:[2447]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2448]—否则,将应用以下有序步骤:[2449]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2450]2.相邻亮度样点py[x][y]如下推导:[2451]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2452]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2453]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2454]—当numsampt大于0时,x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2455][[-当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。]][2456][2457]5.24.实施例24[2458]jvet-q2001-ve中规定的工作草案可作如下更改。[2459]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2460]对这一过程的输入是:[2461]—帧内预测模式predmodeintra,[2462]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2463]—指定变换块宽度的变量ntbw,[2464]—指定变换块高度的变量ntbh,[2465]—指定当前块的颜色分量的变量cidx,[2466]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2467]该过程的输出是predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2468]当前亮度位置(xtby,ytby)如下推导:[2469](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀ(351)[2470]变量availl、availt和availtl如下推导:[2471]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2472]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2473][2474][[-变量availtl如下推导:[2475]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)]][2476]…[2477]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2478]—如果numsampl和numsampt两者都等于0,则适用以下:[2479]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2480]—否则,将应用以下有序步骤:[2481]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2482]2.相邻亮度样点py[x][y]如下推导:[2483]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2484]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2485]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2486]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2487][[-当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。]][2488][2489]5.25.实施例25[2490]jvet-q2001-ve中规定的工作草案可作如下更改。[2491]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2492]对这一过程的输入是:[2493]—帧内预测模式predmodeintra,[2494]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2495]—指定变换块宽度的变量ntbw,[2496]—指定变换块高度的变量ntbh,[2497]—指定当前块的颜色分量的变量cidx,[2498]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2499]该过程的输出是predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2500]当前亮度位置(xtby,ytby)如下推导:[2501](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀ(351)[2502][2503]变量availl、availt和availtl如下推导:[2504]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2505]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2506][2507][[-变量availtl如下推导:[2508]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)]][2509]…[2510]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2511]—如果numsampl和numsampt两者都等于0,则适用以下:[2512]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2513]—否则,将应用以下有序步骤:[2514]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2515]2.相邻亮度样点py[x][y]如下推导:[2516]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2517]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2518]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2519]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2520][[-当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。]][2521][2522]5.26.实施例26[2523]jvet-q2001-ve中规定的工作草案可作如下更改。[2524]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2525]对这一过程的输入是:[2526]—帧内预测模式predmodeintra,[2527]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2528]—指定变换块宽度的变量ntbw,[2529]—指定变换块高度的变量ntbh,[2530]—指定当前块的颜色分量的变量cidx,[2531]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2532]该过程的输出是predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2533]当前亮度位置(xtby,ytby)如下推导:[2534](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀꢀ(351)[2535]变量availl、availt和availtl如下推导:[2536]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2537]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2538][2539][[-变量availtl如下推导:[2540]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)]][2541]…[2542]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2543]—如果numsampl和numsampt两者都等于0,则适用以下:[2544]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2545]—否则,将应用以下有序步骤:[2546]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2547]2.相邻亮度样点py[x][y]如下推导:[2548]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2549]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2550]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2551]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2552][[-当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。]][2553][2554]5.27.实施例27[2555]jvet-q2001-ve中规定的工作草案可作如下更改。[2556]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2557]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2558]—如果numsampl和numsampt两者都等于0,则适用以下:[2559]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2560]—否则,将应用以下有序步骤:[2561]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2562]2.相邻亮度样点py[x][y]如下推导:[2563]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2564]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2565]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2566]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2567]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2568]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[2569]—如果subwidthc和subheightc两者都等于1,则适用以下:[2570]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[2571]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[2572]—否则,适用以下:[2573]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[2574]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[2575]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀ(362)[2576]f3[i][j]=f4[i][j]=0,withi=0..2,j=0..2ꢀꢀꢀ(363)[2577]—如果subwidthc和subheightc两者都等于2,则适用以下:[2578]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[2579]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1ꢀꢀꢀ(365)[2580]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀ(366)[2581]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀ(367)[2582]—否则,适用以下:[2583][2584]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀ(369)[2585]—如果sps_chroma_vertical_collocated_flag等于1,则适用以下:[2586]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2587]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [2588]f3[0][1]×py[subwidthc×x-1][subheightc×y] [2589]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[2590]f3[2][1]×py[subwidthc×x 1][subheightc×y] [2591]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[2592]—否则(sps_chroma_vertical_collocated_flag等于0),则适用以下:[2593]—pdsy[x][y],x=0..ntbw-1,y=0..ntbh-1如下推导:[2594]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [2595]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [2596]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[2597]f4[1][2]×py[subwidthc×x][subheightc×y 1] [2598]f4[2][1]×py[subwidthc×x 1][subheightc×y] [2599]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[2600]5.28.实施例28[2601]jvet-q2001-ve中规定的工作草案可作如下更改。[2602]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2603]对这一过程的输入是:[2604]—帧内预测模式predmodeintra,[2605]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2606]—指定变换块宽度的变量ntbw,[2607]—指定变换块高度的变量ntbh,[2608]—指定当前块的颜色分量的变量cidx,[2609]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2610]该过程的输出是predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2611]当前亮度位置(xtby,ytby)如下推导:[2612](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀꢀ(351)[2613]变量availl、availt和availtl如下推导:[2614]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2615]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2616]—变量availtl如下推导:[2617]availtl=availl&&availtꢀꢀꢀꢀꢀꢀ(352)[2618]—可用的右上相邻色度样点数numtopright如下推导:[2619]—变量numtopright被设置为0,而availtr被设置为真(true)。[2620]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[2621]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[2622]—当availtr等于真(true)时,numtopright增加1。[2623]—可用的左下相邻色度样点数numleftbelow如下推导:[2624]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[2625]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[2626]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[2627]—当availlb等于真(true)时,numleftbelow增加1。[2628]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[2629]—如果predmodeintra等于intra_lt_cclm,则适用以下:[2630]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀ(353)[2631]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀ(354)[2632]—否则,适用以下:[2633]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)[2634]numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(356)[2635]变量bctuboundary如下推导:[2636]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀꢀꢀꢀ(357)[2637]n被l和t替代的变量cntn和数组pickposn,如下推导:[2638]—变量numis4n如下推导:[2639]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀꢀ(358)[2640]—变量startposn被设置为等于numsampn》》(2 numis4n)。[2641]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[2642]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[2643]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[2644]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[2645]—否则,cntn被设置为等于0。[2646][2647]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2648]—如果numsampl和numsampt两者都等于0,则适用以下:[2649]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(359)[2650]—否则,将应用以下有序步骤:[2651]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2652]2.相邻亮度样点py[x][y]如下推导:[2653]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2654]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2655]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2656]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2657]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2658]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[2659]—如果subwidthc和subheightc两者都等于1,则适用以下:[2660]pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[2661]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[2662]—否则,适用以下:[2663]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[2664]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[2665]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀ(362)[2666]f3[i][j]=f4[i][j]=0,withi=0..2,j=0..2ꢀꢀꢀꢀ(363)[2667]—如果subwidthc和subheightc两者都等于2,则适用以下:[2668]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[2669]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1(365)[2670]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀ(366)[2671]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀꢀ(367)[2672][2673]—否则,适用以下:[2674]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[2675]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀ(369)[2676][2677]—如果[[sps_chroma_vertical_collocated_flag]]bverticalcollocated等于1,则适用以下:[2678]—pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2679]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [2680]f3[0][1]×py[subwidthc×x-1][subheightc×y] [2681]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[2682]f3[2][1]×py[subwidthc×x 1][subheightc×y] [2683]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[2684]—否则([[sps_chroma_vertical_collocated_flag]]bverticalcollocated等于0),则适用以下:[2685]—pdsy[x][y],x=0..ntbw-1,y=0..ntbh-1如下推导:[2686]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [2687]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [2688]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[2689]f4[1][2]×py[subwidthc×x][subheightc×y 1] [2690]f4[2][1]×py[subwidthc×x 1][subheightc×y] [2691]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[2692]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[2693]—变量y被设置为等于pickposl[idx]。[2694]—如果subwidthc和subheightc两者都等于1,则适用以下:[2695]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[2696]—否则,适用以下:[2697]—如果[[sps_chroma_vertical_collocated_flag]]等于1,则适用以下:[2698]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [2699]f3[0][1]×py[-1-subwidthc][subheightc×y] [2700]f3[1][1]×py[-subwidthc][subheightc×y] (373)[2701]f3[2][1]×py[1-subwidthc][subheightc×y] [2702]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[2703]—否则([[sps_chroma_vertical_collocated_flag]]等于0),则适用以下:[2704]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [2705]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [2706]f4[1][1]×py[-subwidthc][subheightc×y] (374)[2707]f4[1][2]×py[-subwidthc][subheightc×y 1] [2708]f4[2][1]×py[1-subwidthc][subheightc×y] [2709]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[2710]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][-1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中其如下指定:[2711]—变量x被设置为等于pickpost[idx-cntl]。[2712]—如果subwidthc和subheightc两者都等于1,则适用以下:[2713]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[2714]—否则,适用以下:[2715]—如果[[sps_chroma_vertical_collocated_flag]]bverticalcollocated等于1,则适用以下:[2716]—如果bctuboundary等于假(false),则适用以下:[2717]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [2718]f3[0][1]×py[subwidthc×x-1][-subheightc] [2719]f3[1][1]×py[subwidthc×x][-subheightc] (376)[2720]f3[2][1]×py[subwidthc×x 1][-subheightc] [2721]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[2722]—否则(bctuboundary是真(true)),则适用以下:[2723]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2724]f2[1]×py[subwidthc×x][-1] (377)[2725]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2726]—否则([[sps_chroma_vertical_collocated_flag]]等于0),则适用以下:[2727]—如果bctuboundary等于假(false),则适用以下:[2728]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [2729]f4[0][2]×py[subwidthc×x-1][-2] [2730]f4[1][1]×py[subwidthc×x][-1] (378)[2731]f4[1][2]×py[subwidthc×x][-2] [2732]f4[2][1]×py[subwidthc×x 1][-1] [2733]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[2734]—否则(bctuboundary是真(true)),则适用以下:[2735]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2736]f2[1]×py[subwidthc×x][-1] (379)[2737]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2738]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[2739]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[2740]—数组mingrpidx和maxgrpidx如下推导:[2741]mingrpidx[0]=0ꢀꢀꢀꢀꢀ(380)[2742]mingrpidx[1]=2ꢀꢀꢀꢀꢀ(381)[2743]maxgrpidx[0]=1ꢀꢀꢀꢀꢀ(382)[2744]maxgrpidx[1]=3ꢀꢀꢀꢀꢀ(383)[2745]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[2746](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀꢀ(384)[2747]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[2748](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀꢀ(385)[2749]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[2750](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀꢀ(386)[2751]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[2752](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀ(387)[2753]—变量maxy、maxc、miny和minc如下推导:[2754]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1ꢀꢀ(388)[2755]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1ꢀꢀꢀ(389)[2756]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1ꢀꢀ(390)[2757]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1(391)[2758]7.变量a、b和k如下推导:[2759]—如果numsampl等于0且numsampt等于0,则适用以下:[2760]k=0ꢀꢀꢀꢀꢀ(392)[2761]a=0ꢀꢀꢀꢀꢀ(393)[2762]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(394)[2763]—否则,适用以下:[2764]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀ(395)[2765]—如果diff不等于0,则适用以下:[2766]diffc=maxc-mincꢀꢀꢀ(396)[2767]x=floor(log2(diff))ꢀꢀꢀ(397)[2768]normdiff=((diff《《4)》》x)&15ꢀꢀꢀ(398)[2769]x =(normdiff!=0)?1:0ꢀꢀꢀ(399)[2770]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀ(400)[2771]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀ(401)[2772]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀ(402)[2773]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀ(403)[2774]b=minc-((a×miny)》》k)ꢀꢀꢀ(404)[2775]其中divsigtable[]如下指定:[2776]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(405)[2777]—否则(diff等于0),则适用以下:[2778]k=0ꢀꢀꢀ(406)[2779]a=0ꢀꢀꢀ(407)[2780]b=mincꢀꢀ(408)[2781]8.预测样点predsample[x][y],x=0..ntbw-1,y=0..ntbh-1如下推导:predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[2782]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[2783]5.29.实施例29[2784]jvet-q2001-ve中规定的工作草案可作如下更改。[2785]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2786]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2787]—如果numsampl和numsampt两者都等于0,则适用以下:[2788]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀ(359)[2789]—否则,将应用以下有序步骤:[2790]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2791]2.相邻亮度样点py[x][y]如下推导:[2792]—当[[numsampl大于0]]时,其中x=-1..-3、的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2793]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2794]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2795]—当[[numsampt大于0]]时,其中[2796]y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2797]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2798]5.30.实施例30[2799]jvet-q2001-ve中规定的工作草案可作如下更改。[2800]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2801]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2802]—如果numsampl和numsampt两者都等于0,则适用以下:[2803]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(359)[2804]—否则,将应用以下有序步骤:[2805]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2806]2.相邻亮度样点py[x][y]如下推导:[2807]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2808][2809]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2810]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2811]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2812][2813]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2814]5.31.实施例31[2815]jvet-q2001-ve中规定的工作草案可作如下更改。[2816]8.4.5.2.13intra_lt_cclm、intra_l_cclm和intra_t_cclm帧内预测模式的规范[2817]对这一过程的输入是:[2818]—帧内预测模式predmodeintra,[2819]—当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbc,ytbc),[2820]—指定变换块宽度的变量ntbw,[2821]—指定变换块高度的变量ntbh,[2822]—指定当前块的颜色分量的变量cidx,[2823]—色度相邻样点p[x][y],其中x=-1,y=0..2×ntbh-1,以及x=0..2×ntbw-1,y=-1。[2824]该过程的输出是predsamples[x][y],其中x=0..ntbw-1,y=0..ntbh-1。[2825]当前亮度位置(xtby,ytby)如下推导:[2826](xtby,ytby)=(xtbc《《(subwidthc-1),ytbc《《(subheightc-1))ꢀꢀ(351)[2827]变量availl、availt和availtl如下推导:[2828]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availl。[2829]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availt。[2830]—变量availtl如下推导:[2831]availtl=availl&&availtꢀꢀꢀꢀꢀ(352)[2832]—可用的右上相邻色度样点数numtopright如下推导:[2833]—变量numtopright被设置为0,而availtr被设置为真(true)。[2834]—当predmodeintra等于intra_t_cclm时,以下适用于x=ntbw..2×ntbw-1,直到availtr等于假(false)或x等于2×ntbw-1:[2835]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby x,ytby-1)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availtr。[2836]—当availtr等于真(true)时,numtopright增加1。[2837]—可用的左下相邻色度样点数numleftbelow如下推导:[2838]—变量numleftbelow被设置为0,而availlb被设置为真(true)。[2839]—当predmodeintra等于intra_l_cclm时,以下适用于y=ntbh..2×ntbh-1,直到availlb等于假(false)或y等于2×ntbh-1:[2840]—使用设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xtby-1,ytby y)、设置为等于假(flase)的checkpredmodey和cidx作为输入调用条款6.4.4中指定的相邻块可用性的推导过程,并将输出指派给availlb。[2841]—当availlb等于真(true)时,numleftbelow增加1。[2842]在顶部和右上的可用相邻色度样点数numsampt和在左侧和左下的可用相邻色度样点数numsampl如下推导:[2843]—如果predmodeintra等于intra_lt_cclm,则适用以下:[2844]numsampt=availt?ntbw:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(353)[2845]numsampl=availl?ntbh:0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(354)[2846]—否则,适用以下:[2847]numsampt=(availt&&predmodeintra==intra_t_cclm)?(ntbw min(numtopright,ntbh)):0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(355)numsampl=(availl&&predmodeintra==intra_l_cclm)?(ntbh min(numleftbelow,ntbw)):0ꢀꢀꢀꢀꢀꢀꢀ(356)[2848]变量bctuboundary如下推导:[2849]bctuboundary=(ytby&(ctbsizey-1)==0)?true:falseꢀꢀ(357)[2850]n被l和t替代的变量cntn和数组pickposn,如下推导:[2851]—变量numis4n如下推导:[2852]numis4n=((availt&&availl&&predmodeintra==intra_lt_cclm)?0:1)ꢀꢀ(358)[2853]—变量startposn被设置为等于numsampn》》(2 numis4n)。[2854]—变量pickstepn被设置为等于max(1,numsampn》》(1 numis4n))。[2855]—如果availn等于真(true)并且predmodeintra等于intra_lt_cclm或intra_n_cclm,则进行以下赋值:[2856]—cntn被设置为等于min(numsampn,(1 numis4n)《《1)。[2857]—pickposn[pos]被设置为等于(startposn pos×pickstepn),其中pos=0..cntn-1。[2858]—否则,cntn被设置为等于0。[2859][2860]预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2861]—如果numsampl和numsampt两者都等于0,则适用以下:[2862]predsamples[x][y]=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(359)[2863]—否则,将应用以下有序步骤:[2864]1.其中x=0..ntbw×subwidthc-1,y=0..tbh×subheightc-1的同位亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点。[2865]2.相邻亮度样点py[x][y]如下推导:[2866]—当numsampl大于0时,其中x=-1..-3、y=0..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2867]—当availt等于假(false)时,其中x=-1..subwidthc×numsampt-1,y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于亮度样点py[x][0]。[2868]—当availl等于假(false)时,其中x=-1..-3,y=-1..subheightc×numsampl-1的相邻左侧亮度样点py[x][y]被设置为等于亮度样点py[0][y]。[2869]—当numsampt大于0时,其中x=0..subwidthc×numsampt-1、y=-1..-2的相邻顶部亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2870]—当availtl等于真(true)时,其中x=-1,y=-1,-2的相邻左上亮度样点py[x][y]被设置为等于在位置(xtby x,ytby y)处的去方块滤波处理过程之前的重建亮度样点。[2871]3.下采样的同位亮度样点pdsy[x][y],其中x=0..ntbw-1,y=0..ntbh-1,如下推导:[2872]—如果subwidthc和subheightc两者都等于1,则适用以下:[2873]—pdsy[x][y],其中x=1..ntbw-1,y=1..ntbh-1如下推导:[2874]pdsty[x][y]=py[x][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(360)[2875]—否则,适用以下:[2876]—一维滤波器系数数组f1和f2以及二维滤波器系数数组f3和f4如下指定。[2877]f1[0]=2,f1[1]=0ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(361)[2878]f2[0]=1,f2[1]=2,f2[2]=1ꢀꢀꢀꢀꢀꢀ(362)[2879]f3[i][j]=f4[i][j]=0,其中i=0..2,j=0..2ꢀꢀꢀꢀꢀ(363)[2880]—如果subwidthc和subheightc两者都等于2,则适用以下:[2881]f1[0]=1,f1[1]=1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(364)[2882]f3[0][1]=1,f3[1][1]=4,f3[2][1]=1,f3[1][0]=1,f3[1][2]=1(365)[2883]f4[0][1]=1,f4[1][1]=2,f4[2][1]=1ꢀꢀꢀ(366)[2884]f4[0][2]=1,f4[1][2]=2,f4[2][2]=1ꢀꢀꢀ(367)[2885][2886]—否则,适用以下:[2887]f3[1][1]=8ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(368)[2888]f4[0][1]=2,f4[1][1]=4,f4[2][1]=2,ꢀꢀꢀꢀꢀꢀ(369)[2889][2890]—如果[[sps_chroma_vertical_collocated_flag]]等于1,则适用以下:[2891]—pdsy[x][y],x=0..ntbw-1,y=0..ntbh-1如下推导:[2892]pdsy[x][y]=(f3[1][0]×py[subwidthc×x][subheightc×y-1] [2893]f3[0][1]×py[subwidthc×x-1][subheightc×y] [2894]f3[1][1]×py[subwidthc×x][subheightc×y] (370)[2895]f3[2][1]×py[subwidthc×x 1][subheightc×y] [2896]f3[1][2]×py[subwidthc×x][subheightc×y 1] 4)》》3[2897]—否则([[sps_chroma_vertical_collocated_flag]]等于0),则适用以下:[2898]—pdsy[x][y],x=0..ntbw-1,y=0..ntbh-1如下推导:[2899]pdsy[x][y]=(f4[0][1]×py[subwidthc×x-1][subheightc×y] [2900]f4[0][2]×py[subwidthc×x-1][subheightc×y 1] [2901]f4[1][1]×py[subwidthc×x][subheightc×y] (371)[2902]f4[1][2]×py[subwidthc×x][subheightc×y 1] [2903]f4[2][1]×py[subwidthc×x 1][subheightc×y] [2904]f4[2][2]×py[subwidthc×x 1][subheightc×y 1] 4)》》3[2905]4.当numsampl大于0时,所选择的相邻左色度样点pselc[idx]被设置为等于p[-1][pickposl[idx]],其中idx=0..cntl-1,并且所选择的下采样相邻左亮度样点pseldsy[idx],其中idx=0..cntl-1如下推导:[2906]—变量y被设置为等于pickposl[idx]。[2907]—如果subwidthc和subheightc两者都等于1,则适用以下:[2908]pseldsy[idx]=py[-1][y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(372)[2909]—否则,适用以下:[2910]—如果[[sps_chroma_vertical_collocated_flag]]等于1,则适用以下:[2911]pseldsy[idx]=(f3[1][0]×py[-subwidthc][subheightc×y-1] [2912]f3[0][1]×py[-1-subwidthc][subheightc×y] [2913]f3[1][1]×py[-subwidthc][subheightc×y] (373)[2914]f3[2][1]×py[1-subwidthc][subheightc×y] [2915]f3[1][2]×py[-subwidthc][subheightc×y 1] 4)》》3[2916]—否则([[sps_chroma_vertical_collocated_flag]]等于0),则适用以下:[2917]pseldsy[idx]=(f4[0][1]×py[-1-subwidthc][subheightc×y] [2918]f4[0][2]×py[-1-subwidthc][subheightc×y 1] [2919]f4[1][1]×py[-subwidthc][subheightc×y] (374)[2920]f4[1][2]×py[-subwidthc][subheightc×y 1] [2921]f4[2][1]×py[1-subwidthc][subheightc×y] [2922]f4[2][2]×py[1-subwidthc][subheightc×y 1] 4)》》3[2923]5.当numsampt大于0时,所选择的相邻顶部色度样点pselc[idx]被设置为等于p[pickpost[idx-cntl]][1],其中idx=cntl..cntl cntt-1,并且下采样相邻顶部亮度样点pseldsy[idx],其中如下指定:[2924]—变量x被设置为等于pickpost[idx-cntl]。[2925]—如果subwidthc和subheightc两者都等于1,则适用以下:[2926]pseldsy[idx]=py[x][-1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(375)[2927]—否则,适用以下:[2928]—如果[[sps_chroma_vertical_collocated_flag]]等于1,则适用以下:[2929]—如果bctuboundary等于假(false),则适用以下:[2930]pseldsy[idx]=(f3[1][0]×py[subwidthc×x][-1-subheightc] [2931]f3[0][1]×py[subwidthc×x-1][-subheightc] [2932]f3[1][1]×py[subwidthc×x][-subheightc] (376)[2933]f3[2][1]×py[subwidthc×x 1][-subheightc] [2934]f3[1][2]×py[subwidthc×x][1-subheightc] 4)》》3[2935]—否则(bctuboundary是真(true)),则适用以下:[2936]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2937]f2[1]×py[subwidthc×x][-1] (377)[2938]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2939]—否则([[sps_chroma_vertical_collocated_flag]]等于0),则适用以下:[2940]—如果bctuboundary等于假(false),则适用以下:[2941]pseldsy[idx]=(f4[0][1]×py[subwidthcx-1][-1] [2942]f4[0][2]×py[subwidthc×x-1][-2] [2943]f4[1][1]×py[subwidthc×x][-1] (378)[2944]f4[1][2]×py[subwidthc×x][-2] [2945]f4[2][1]×py[subwidthc×x 1][-1] [2946]f4[2][2]×py[subwidthc×x 1][-2] 4)》》3[2947]—否则(bctuboundary是真(true)),则适用以下:[2948]pseldsy[idx]=(f2[0]×py[subwidthc×x-1][-1] [2949]f2[1]×py[subwidthc×x][-1] (379)[2950]f2[2]×py[subwidthc×x 1][-1] 2)》》2[2951]6.当cntt cntl不等于0时,变量miny、maxy、minc和maxc如下推导:[2952]—当cntt cntl等于2时,pselcomp[3]被设置为等于pselcomp[0],pselcomp[2]被设置为等于pselcomp[1],pselcomp[0]被设置为等于pselcomp[1],pselcomp[1]被设置为等于pselcomp[3],comp被替换为dsy和c。[2953]—数组mingrpidx和maxgrpidx如下推导:[2954]mingrpidx[0]=0ꢀꢀꢀꢀꢀ(380)[2955]mingrpidx[1]=2ꢀꢀꢀꢀꢀ(381)[2956]maxgrpidx[0]=1ꢀꢀꢀꢀꢀ(382)[2957]maxgrpidx[1]=3ꢀꢀꢀꢀꢀ(383)[2958]—当pseldsy[mingrpidx[0]]大于pseldsy[mingrpidx[1]]时,mingrpidx[0]和mingrpidx[1]按以下方式交换:[2959](mingrpidx[0],mingrpidx[1])=swap(mingrpidx[0],mingrpidx[1])ꢀꢀ(384)[2960]—当pseldsy[maxgrpidx[0]]大于pseldsy[maxgrpidx[1]]时,maxgrpidx[0]和maxgrpidx[1]按以下方式交换:[2961](maxgrpidx[0],maxgrpidx[1])=swap(maxgrpidx[0],maxgrpidx[1])ꢀꢀꢀ(385)[2962]—当pseldsy[mingrpidx[0]]大于pseldsy[maxgrpidx[1]]时,数组mingrpidx和maxgrpidx按以下方式交换:[2963](mingrpidx,maxgrpidx)=swap(mingrpidx,maxgrpidx)ꢀꢀꢀꢀꢀꢀꢀ(386)[2964]—当pseldsy[mingrpidx[1]]大于pseldsy[maxgrpidx[0]]时,mingrpidx[1]和maxgrpidx[0]按以下方式交换:[2965](mingrpidx[1],maxgrpidx[0])=swap(mingrpidx[1],maxgrpidx[0])ꢀꢀꢀ(387)[2966]—变量maxy、maxc、miny和minc如下推导:[2967]maxy=(pseldsy[maxgrpidx[0]] pseldsy[maxgrpidx[1]] 1)》》1(388)[2968]maxc=(pselc[maxgrpidx[0]] pselc[maxgrpidx[1]] 1)》》1[2969](389)[2970]miny=(pseldsy[mingrpidx[0]] pseldsy[mingrpidx[1]] 1)》》1(390)[2971]minc=(pselc[mingrpidx[0]] pselc[mingrpidx[1]] 1)》》1[2972](391)[2973]7.变量a、b和k如下推导:[2974]—如果numsampl等于0且numsampt等于0,则适用以下:[2975]k=0ꢀꢀꢀꢀꢀ(392)[2976]a=0ꢀꢀꢀꢀꢀ(393)[2977]b=1《《(bitdepth-1)ꢀꢀꢀꢀꢀꢀꢀꢀ(394)[2978]—否则,适用以下:[2979]diff=maxy-minyꢀꢀꢀꢀꢀꢀꢀ(395)[2980]—如果diff不等于0,则适用以下:[2981]diffc=maxc-mincꢀꢀꢀ(396)[2982]x=floor(log2(diff))ꢀꢀꢀ(397)[2983]normdiff=((diff《《4)》》x)&15ꢀꢀ(398)[2984]x =(normdiff!=0)?1:0ꢀꢀꢀ(399)[2985]y=abs(diffc)》0?floor(log2(abs(diffc))) 1:0ꢀꢀꢀ(400)[2986]a=(diffc×(divsigtable[normdiff]|8) 2y-1)》》yꢀꢀꢀ(401)[2987]k=((3 x-y)《1)?1:3 x-yꢀꢀꢀ(402)[2988]a=((3 x-y)《1)?sign(a)×15:aꢀꢀꢀ(403)[2989]b=minc-((a×miny)》》k)ꢀꢀꢀ(404)[2990]其中divsigtable[]如下指定:[2991]divsigtable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}ꢀꢀꢀ(405)[2992]—否则(diff等于0),则适用以下:[2993]k=0(406)[2994]a=0(407)[2995]b=minc(408)[2996]8.预测样点predsample[x][y],其中x=0..ntbw-1,y=0..ntbh-1如下推导:[2997]predsamples[x][y]=clip1(((pdsy[x][y]×a)》》k) b)ꢀꢀꢀꢀꢀ(409)[2998]注意-此过程使用sps_chroma_vertical_collocated_flag。但是,为了简化实现,它没有使用sps_chroma_horizontal_collocated_flag。[2999]图9是视频处理装置900的框图。装置900可用于实现本文描述的一个或多个方法。装置900可以体现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置900可以包括一个或多个处理器902、一个或多个存储器904和视频处理硬件906。处理器(多个处理器)902可以被配置为实现本文件中描述的一个或多个方法。存储器(多个存储器)904可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件906可用于在硬件电路中实现本文件中描述的一些技术(例如,在前一节中列出的)。[3000]图10示出了视频编码器的框图。[3001]图11是处理视频的方法1100的流程图。方法1100包括:针对在视频的色度块与视频的经编解码表示之间的转换,通过使用下采样的同位相邻顶部亮度样点来推导(1102)交叉分量线性模型的参数,该采样的同位相邻顶部亮度样点是使用下采样滤波器从同位亮度块的n个上方相邻行生成的,其中n是正整数;以及使用经预测色度块来执行(1104)转换,该经预测块是使用交叉分量线性模型生成的。[3002]图12是其中可以实现所公开的技术的示例视频处理系统的框图。[3003]图12是示出可以在其中实现本文公开的各种技术的示例视频处理系统1200的框图。各种实现可包括系统1200的部分或全部组件。系统1200可以包括用于接收视频内容的输入1202。该视频内容可以以原始或未压缩格式接收,例如,8比特或10比特多分量像素值,或者可以以经压缩或经编码格式接收。输入1202可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等的有线接口和诸如wi-fi或蜂窝接口的无线接口。[3004]系统1200可以包括编解码组件1204,其可以实现本文件中描述的各种编解码或编码方法。编解码组件1204可以降低从输入1202到编解码组件1204的输出的视频的平均比特率,以产生该视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1204的输出可以存储,或者经由连接的通信发送,如组件1206所表示的。在输入1202处接收的视频的存储或通信的比特流(或经编解码的)表示可以由组件1208用于生成向显示接口1210发送的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但应理解,编解码工具或操作在编码器处使用,并且将编解码结果逆转的对应解码工具或操作将由解码器执行。[3005]外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文件中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或者能够执行数字数据处理和/或视频显示的其他设备。[3006]图14是示出可以利用本公开的技术的示例视频编解码系统100的框图。[3007]如图14所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成经编码视频数据,其可以被称为视频编码设备。目的地设备120可以对源设备110生成的经编码视频数据进行解码,目的地设备120可以被称为视频解码设备。[3008]源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。[3009]视频源112可以包括诸如视频捕获设备的源、用于从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的经编解码表示的比特序列。比特流可以包括经编解码图片和相关联的数据。经编解码图片是图片的经编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发送器。经编码视频数据可以经由i/o接口116通过网络130a直接向目的地设备120发送。经编码视频数据也可以存储在存储介质/服务器130b上,以供目的地设备120访问。[3010]目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。[3011]i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获得经编码视频数据。视频解码器124可以对经编码视频数据进行解码。显示设备122可以将经解码视频数据向用户显示。显示设备122可以与目的地设备120集成,或者可以在目的地设备120的外部,目的地设备120被配置为与外部显示设备接口。[3012]视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(hevc)标准、多功能视频编解码(vvc)标准和其他当前和/或未来的标准。[3013]图15是示出视频编码器200的示例的框图,视频编码器200可以是图14所示的系统100中的视频编码器114。[3014]视频编码器200可以被配置为执行本公开的任何或所有技术。在图15的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。[3015]视频编码器200的功能组件可以包括划分单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重建单元212、缓冲器213和熵编解码单元214,预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。[3016]在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,在该模式中至少一个参考图片是当前视频块所在的图片。[3017]此外,诸如运动估计单元204和运动补偿单元205的一些组件可以是高度集成的,但为了说明的目的,在图15的示例中分开表示。[3018]划分单元201可以将图片划分为一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。[3019]模式选择单元203可以例如基于误差结果,在帧内或帧间选择编码模式之一,并将所得的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,以及提供给重建单元212以重建经编码块以用作参考图片。在一些示例中,模式选择单元203可以选择组合帧内和帧间预测(ciip)模式,其中,预测基于帧间预测信号和帧内预测信号。模式选择单元203还可以在帧间预测的情况下为块选择运动矢量的分辨率(例如,子像素或整数像素精度)。[3020]为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓冲器213的除与当前视频块相关联的图片之外的图片的经解码样点来确定当前视频块的预测视频块。[3021]运动估计单元204和运动补偿单元205可以例如根据当前视频块是处于i条带、p条带还是b条带中,对当前视频块执行不同的操作。[3022]在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以搜索列表0或列表1的参考图片以获得用于当前视频块的参考视频块。然后,运动估计单元204可以生成指示包含参考视频块的列表0或列表1中的参考图片的参考索引,以及指示当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的经预测视频块。[3023]在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索用于当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索用于当前视频块的另一参考视频块。然后,运动估计单元204可以生成指示包含参考视频块的列表0和列表1中的参考图片的参考索引,以及指示参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的经预测视频块。[3024]在一些示例中,运动估计单元204可以输出用于解码器的解码处理的运动信息完全集合。[3025]在一些示例中,运动估计单元204可以不输出用于当前视频的运动信息的完全集合。相反,运动估计单元204可以参考另一视频块的运动信息信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息充分相似。[3026]在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示一个值,该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。[3027]在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(mvd)。该运动矢量差指示当前视频块的运动矢量与指示的视频块的运动矢量之间的差值。视频解码器300可以使用指示的视频块的运动矢量和该运动矢量差来确定当前视频块的运动矢量。[3028]如上所述,视频编码器200可以预测地信令通知该运动矢量。可由视频编码器200实现的预测信令技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令。[3029]帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其他视频块的经解码样点生成用于当前视频块的预测数据。用于当前视频块的预测数据可以包括经预测视频块和各种语法元素。[3030]残差生成单元207可以通过从当前视频块减去(例如,由减号指示的)当前视频块的预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。[3031]在其他示例中,例如在跳过模式下,对于当前视频块可以没有用于当前视频块的残差数据,并且残差生成单元207可以不执行减法操作。[3032]变换处理单元208可以通过对与当前视频块相关联的残差视频块应用一个或多个变换来生成用于当前视频块的一个或多个变换系数视频块。[3033]在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。[3034]逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块加到来自由预测单元202生成的一个或多个经预测视频块的对应样点,以产生与当前块相关联的重建视频块,以存储在缓冲器213中。[3035]在重建单元212重建视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。[3036]熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成经熵编码数据并输出包括该经熵编码数据的比特流。[3037]图16是示出视频解码器300的示例的框图,视频解码器300可以是图14所示的系统100中的视频解码器114。[3038]视频解码器300可以被配置为执行本公开的任何或所有技术。在图16的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。[3039]在图16的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、以及重建单元306和缓冲器307。在一些示例中,视频解码器300可以执行与关于视频编码器200(例如图15)描述的编码遍次(pass)大致相反的解码遍次。[3040]熵解码单元301可以检索经编码比特流。经编码比特流可以包括经熵编解码视频数据(例如,视频数据的经编码块)。熵解码单元301可以对经熵编解码的视频数据进行解码,并且运动补偿单元302可以从经熵解码的视频数据中确定运动信息,其包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息。运动补偿单元302例如可以通过执行amvp和merge模式来确定这样的信息。[3041]运动补偿单元302可以产生运动补偿块,可能地基于插值滤波器执行插值。用于以亚像素精度使用的插值滤波器的标识符可以被包括在语法元素中。[3042]运动补偿单元302可以使用视频编码器200在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的内插值。运动补偿单元302可以根据接收到的语法信息确定视频编码器200使用的插值滤波器,并且使用该插值滤波器产生预测块。[3043]运动补偿单元302可以使用一些语法信息来确定用于对经编码的视频序列的帧和/或条带进行编码的块的尺寸、描述经编码的视频序列的图片的每个宏块如何被划分的划分信息、指示每个划分如何被编码的模式、每个帧间编解码块的一个或多个参考帧(和参考帧列表)以及用于对经编码的视频序列进行解码的其他信息。[3044]帧内预测单元303可以使用例如在比特流中接收的帧内预测模式,以从空域邻近的块形成预测块。逆量化单元303对比特流中提供并由熵解码单元301解码的经量化视频块系数进行逆量化,即去量化。逆变换单元303应用逆变换。[3045]重建单元306可以将残差块与运动补偿单元202或帧内预测单元303生成的对应预测块相加,以形成经解码块。如果需要,还可以应用去块滤波器以对经解码块进行滤波,以便去除块效应伪影。然后将经解码视频块存储在缓冲器307中,缓冲器307提供用于后续运动补偿的参考块。[3046]下面的条款集合提供了一些实施例优选的示例。[3047]第一条款集合示出了在上一节的项目18和项目19中讨论的技术的示例实施例。[3048]1.一种视频处理方法(例如,如图17a所示的方法1700),包括:对于具有4:2:2颜色格式的视频的视频块与视频的比特流之间的转换,根据规则确定1702用于视频块的交叉分量线性模型的参数;以及基于该确定来执行1704转换,并且其中,语法元素指示视频的色度样点是否相对于视频的亮度样点垂直移位,并且其中规则指定该参数是独立于语法元素的值而确定的。[3049]2.根据条款1的方法,其中交叉分量线性模型的参数对应于交叉分量线性模型中的下采样滤波的参数。[3050]3.根据条款2的方法,其中下采样滤波包括对上方相邻亮度样点进行下采样,和/或对左侧相邻亮度样点进行下采样,和/或对是亮度块的视频块中的样点进行下采样。[3051]4.根据条款2或条款3的方法,其中无论语法元素的值如何,使用固定滤波器来执行下采样滤波。[3052]5.根据条款4的方法,其中固定滤波器是具有系数[1/4,2/4,1/4]或[2/8,4/8,2/8]的3抽头水平滤波器。[3053]6.一种视频处理方法(例如,如图17b所示的方法1710),包括:根据规则执行视频与视频的比特流之间的转换,并且其中格式规则指定由于视频具有4:2:2或4:4:4颜色格式,指示色度样点位置是否相对于对应的亮度样点位置垂直移位的字段被设置为默认值。[3054]7.根据条款6的方法,其中默认值为0或1。[3055]8.根据条款6的方法,其中规则还指定在该字段不存在的情况下,该字段的值被推断为等于1。[3056]9.根据条款6的方法,其中规则还指定在该字段不存在的情况下,该字段的值被推断为等于0。[3057]10.根据条款1至条款9中任一项的方法,其中交叉分量线性模型使用线性模式以从另一分量推导色度分量的预测值。[3058]11.根据条款1至条款9中任一项的方法,其中转换包括将视频编码为比特流。[3059]12.根据条款1至条款9中任一项的方法,其中转换包括从比特流解码视频。[3060]13.根据条款1至条款12中任一项的方法,其中转换包括从视频生成比特流,并且方法还包括:将比特流存储在非暂时性计算机可读记录介质中。[3061]14.一种视频处理装置,包括被配置为实现条款1至条款12中任一项或多项所述的方法的处理器。[3062]15.一种存储视频的比特流的方法,包括条款1至条款12中任一项所述的方法,并且还包括将比特流存储到非暂时性计算机可读记录介质。[3063]16.一种存储程序代码的计算机可读介质,当被执行时,程序代码使处理器实现条款1至条款12中任一项或多项所述的方法。[3064]17.一种计算机可读介质,其存储根据上述任何方法生成的比特流。[3065]18.一种用于存储比特流表示的视频处理装置,其中视频处理装置被配置为实现条款1至条款12中任一项或多项所述的方法。[3066]第二条款集合示出了在上一节的项目20中讨论的技术的示例实施例。[3067]1.一种视频处理的方法(例如,如图18所示的方法1800),包括:对于视频的视频块与视频的比特流之间的转换,根据规则确定1802用于视频块的交叉分量线性模型(cclm)的参数;以及基于该确定来执行1804转换,并且其中该规则指定仅在表示相邻亮度样点的变量具有特定值的情况下才在cclm的参数的确定中使用该变量。[3068]2.根据条款1的方法,其中表示视频块的上方相邻亮度样点的变量的特定值等于在去方块滤波过程之前的重建亮度样点的特定值。[3069]3.根据条款2的方法,其中在上方相邻亮度样点可用的情况下,表示为py[x][y]的表示上方相邻亮度样点的变量被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点,其中(xtby,ytby)表示视频块的左上位置,并且x和y是整数。[3070]4.根据条款3的方法,其中x在0到subwidthc×max(numsampt,ntbw)-1的范围内,其中ntbw表示视频块的宽度,subwidthc是视频块的宽度缩放因子并且是从根据包括视频块的图片的色度格式的表中获得的,并且numsampt指示视频块的顶部和右上可用的相邻色度样点的数量。[3071]5.根据条款3的方法,其中y为-1或-2。[3072]6.根据条款1的方法,其中在去方块滤波过程之前,表示视频块的左侧相邻亮度样点的变量的值被设置为等于重建亮度样点的值。[3073]7.根据条款6的方法,其中在左侧相邻亮度样点可用的情况下,表示为py[x][y]的表示左侧相邻亮度样点的变量被设置为等于在位置(xtby x,ytby y)处的去方块滤波过程之前的重建亮度样点,其中(xtby,ytby)表示视频块的左上位置,并且x和y是整数。[3074]8.根据条款7的方法,其中x在-1至-3的范围内。[3075]9.根据条款7的方法,其中y在0到subheightc×max(numsampl,ntbh)-1的范围内,其中ntbh表示视频块的高度,subheightc是视频块的高度缩放因子并且是从根据包括视频块的图片的色度格式的表中获得的,并且numsampl指示视频块的左侧和左下可用的相邻色度样点的数量。[3076]10.根据条款1至条款9中任一项的方法,其中交叉分量线性模型使用线性模式以从另一分量推导色度分量的预测值。[3077]11.根据条款1至条款9中任一项的方法,其中转换包括将视频编码为比特流。[3078]12.根据条款1至条款9中任一项的方法,其中转换包括从比特流解码视频。[3079]13.根据条款1至条款12中任一项的方法,其中转换包括从视频生成比特流,并且方法还包括:将比特流存储在非暂时性计算机可读记录介质中。[3080]14.一种视频处理装置,包括被配置为实现条款1至条款12中任一项或多项所述的方法的处理器。[3081]15.一种存储视频的比特流的方法,包括条款1至条款12中任一项所述的方法,并且还包括将比特流存储到非暂时性计算机可读记录介质。[3082]16.一种存储程序代码的计算机可读介质,当被执行时,程序代码使处理器实现条款1至条款12中任一项或多项所述的方法。[3083]17.一种计算机可读介质,其存储根据上述任何方法生成的比特流。[3084]18.一种用于存储比特流的视频处理装置,其中视频处理装置被配置为实现条款1至条款12中任一项或多项所述的方法。[3085]第三条款集合示出了在上一节的项目21-项目26中讨论的技术的示例实施例。[3086]1.一种视频处理的方法(例如,图19a中所示的方法1900),包括:对于包括视频单元的视频与该视频的比特流之间的转换,根据规则确定1902是否针对该视频单元启用第一编解码工具,其中规则指定第一编解码工具和第二编解码工具是互斥启用的,并且其中第一编解码工具或第二编解码工具包括符号数据隐藏工具;以及根据该确定来执行1904转换。[3087]2.根据条款1的方法,其中视频单元对应于序列、图片、条带、片、砖块或子图片。[3088]3.根据条款1或条款2的方法,其中规则指定在包括块差分脉冲编解码调制(bdpcm)工具的第二编解码工具被启用用于视频单元的情况下禁用包括符号数据隐藏工具的第一编解码工具。[3089]4.根据条款1或条款2的方法,其中规则指定在包括符号数据隐藏工具的第二编解码工具被启用用于视频单元的情况下禁用包括块差分脉码调制(bdpcm)工具的第一编解码工具。[3090]5.根据条款1或条款2的方法,其中规则指定在仅应用标识变换的第二编解码工具被启用用于视频单元的情况下禁用包括符号数据隐藏工具的第一编解码工具。[3091]6.根据条款1或条款2的方法,其中规则指定在包括符号数据隐藏工具的第二编解码工具被启用用于视频单元的情况下禁用仅应用标识变换的第一编解码工具。[3092]7.根据条款5或条款6的方法,其中仅应用标识变换的第二编解码工具或仅应用标识变换的第一编解码工具包括变换跳过模式工具或其他编解码工具。[3093]8.一种视频处理的方法(例如,图19b中所示的方法1910),包括:对于包括视频单元的视频与该视频的比特流之间的转换,根据规则确定1912是否针对该视频单元启用第一编解码工具,其中规则指定第一编解码工具和第二编解码工具是互斥启用的,并且其中第一编解码工具或第二编解码工具包括依赖量化工具;以及根据该确定来执行1914转换。[3094]9.根据条款8的方法,其中视频单元对应于序列、图片、条带、片、砖块或子图片。[3095]10.根据条款8或条款9的方法,其中规则指定在包括块差分脉码调制(bdpcm)工具的第二编解码工具被启用用于视频单元的情况下禁用包括依赖量化工具的第一编解码工具。[3096]11.根据条款8或条款9的方法,其中规则指定在包括依赖量化工具的第二编解码工具被启用用于视频单元的情况下禁用包括块差分脉码调制(bdpcm)工具的第一编解码工具。[3097]12.根据条款8或条款9的方法,其中规则指定在仅应用标识变换的第二编解码工具被启用用于视频单元的情况下禁用包括依赖量化工具的第一编解码工具。[3098]13.根据条款8或条款9的方法,其中规则指定在包括依赖量化工具的第二编解码工具被启用用于视频单元的情况下禁用仅应用标识变换的第一编解码工具。[3099]14.根据条款8或条款9的方法,其中仅应用标识变换的第二编解码工具或仅应用标识变换的第一编解码工具包括变换跳过模式工具或其他编解码工具。[3100]15.一种视频处理的方法(例如,如图19c所示的方法1920),包括:根据规则执行1922包括包含一个或多个条带的一个或多个图片的视频与该视频的比特流之间的转换,并且其中规则指定条带的条带类型取决于用于该条带的参考图片列表的参考图片条目。[3101]16.根据条款15的方法,其中规则指定在参考图片列表0的参考图片条目的数量等于0并且参考图片列表1的参考图片条目的数量等于0的情况下,条带的条带类型是i条带。[3102]17.根据条款15的方法,其中规则指定在参考图片列表0的参考图片条目的数量大于0并且参考图片列表1的参考图片条目的数量等于0的情况下,条带的条带类型是p条带。[3103]18.根据条款15的方法,其中规则指定在参考图片列表0的参考图片条目的数量大于0并且参考图片列表1的参考图片条目的数量等于0的情况下,条带的条带类型是b条带。[3104]19.根据条款16至条款18中任一项的方法,其中条带类型不被包括在比特流中。[3105]20.根据条款15的方法,其中在信令通知或推断条带类型之前,信令通知或推断参考图片条目。[3106]21.根据条款15的方法,其中参考图片条目被包括在与包括条带的图片相关联的图片标头中。[3107]22.一种视频处理的方法(例如,如图19d所示的方法1930),包括:根据规则执行1932包括包含一个或多个条带的一个或多个图片的视频和该视频的比特流之间的转换,其中规则指定自适应参数集(aps)中的允许的滤波器的数量或aps的数量取决于视频的经编解码信息。[3108]23.根据条款22的方法,其中经编解码信息包括图片的子图片数量。[3109]24.根据条款22的方法,其中aps中的允许的滤波器的数量包括亮度自适应环路滤波器(alf)、色度alf和图片单元内的所有自适应参数集(aps)网络抽象层(nal)单元中的alfaps中的交叉分量alf的数量。[3110]25.根据条款22的方法,其中aps中的允许的滤波器的数量包括用于亮度分量的自适应环路滤波器(alf)类的数量、用于色度分量的替代滤波器的数量、和/或图片单元内的所有自适应参数集(aps)网络抽象层(nal)单元中的交叉分量滤波器的数量。[3111]26.根据条款22的方法,其中aps对应于alfaps、缩放列表aps、和/或lmcs(具有色度缩放的亮度映射)aps。[3112]27.根据条款22的方法,其中如何信令通知aps标识符和/或视频单元要使用的aps的数量取决于aps中的允许的滤波器的数量。[3113]28.根据条款1至条款27中任一项的方法,其中转换包括将视频编码为比特流。[3114]29.根据条款1至条款27中任一项的方法,其中转换包括从比特流解码视频。[3115]30.根据条款1至条款27中任一项的方法,其中转换包括从视频生成比特流,并且方法还包括:将比特流存储在非暂时性计算机可读记录介质中。[3116]31.一种视频处理装置,包括被配置为实现条款1至条款30中任一项或多项所述的方法的处理器。[3117]32.一种存储视频的比特流的方法,包括条款1至条款30中任一项所述的方法,并且还包括将比特流存储到非暂时性计算机可读记录介质。[3118]33.一种存储程序代码的计算机可读介质,当被执行时,程序代码使处理器实现条款1至条款30中任一项或多项所述的方法。[3119]34.一种计算机可读介质,其存储根据上述任何方法生成的比特流。[3120]35.一种用于存储比特流的视频处理装置,其中视频处理装置被配置为实现条款1至条款30中任一项或多项所述的方法。[3121]所公开的技术的一些实施例包括作出启用视频处理工具或模式的决策或确定。在一个示例中,当启用视频处理工具或模式时,编码器将在视频块的处理中使用或实现该工具或模式,但不一定基于该工具或模式的使用来修改所得到的比特流。也就是,从视频块到视频的比特流表示的转换将在基于决策或确定启用时使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是,将使用基于决策或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。[3122]所公开的技术的一些实施例包括作出禁用视频处理工具或模式的决策或确定。在一个示例中,当禁用视频处理工具或模式时,编码器将不在视频块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将在知道比特流没有被修改的情况下使用基于决策或确定而启用的视频处理工具或模式来处理比特流。[3123]本文件中描述的所公开的和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本文件中公开的结构及其结构等效物,或者以它们中的一个或多个的组合实现。所公开的和其他实施例可以实现为一个或多个计算机程序产品,即,编码在计算机可读介质上用于由数据处理装置执行或控制其操作的一个或多个计算机程序指令模块。计算机可读介质可以是机器可读存储设备、机器可读存储主板、存储器设备、影响机器可读传播信号的物质组成或它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置可以包括为所说的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电、光或电磁信号,生成该信号以对信息进行编码以向合适的接收器装置传输。[3124]计算机程序(也公知为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译过的或解释过的语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子历程或适合在计算环境中使用的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中,存储在专用于所说的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一台计算机或位于一个站点或分布于多个站点并通过通信网络互连的多台计算机上执行。[3125]本文档中描述的过程和逻辑流可以由一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,以通过对输入数据进行操作并产生输出来执行功能。该过程和逻辑流也可以由专用逻辑电路执行,并且该装置也可以被实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。[3126]适用于执行计算机程序的处理器包括,例如,通用和专用微处理器,以及任何类型数字计算机的任何一个或多个处理器。一般地,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或将数据传送到该一个或多个大容量存储设备或两者。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备(例如eprom、eeprom和闪存设备);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及cdrom和dvd-rom盘。该处理器和存储器可以由专用逻辑电路补充或merge在专用逻辑电路中。[3127]虽然本专利文件包含很多细节,但这些不应被解释为对任何主题的范围或可要求权利的内容的限制,而是对专门于特定技术的特定实施例的特征的描述。本专利文件中在分开的实施例的上下文中描述的某些特征也可以组合在单个实施例中实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开地或以任何适当的子组合形式实现。此外,尽管上述特征可以被描述为在某些组合中起作用,甚至最初是这样要求保护的,但在某些情况下,来自要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变型。[3128]类似地,尽管在附图中以特定顺序描绘了操作,但这不应理解为要求以所示特定顺序或以序列化顺序执行这些操作,或执行所有所示操作以获得期望的结果。此外,本专利文件中描述的实施例中的各种系统组件的分开不应理解为在所有实施例中都要求这样的分开。[3129]仅描述了一些实现和示例,并且可以基于本专利文件中描述和说明的内容来进行其他实现、增强和变化。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献