基于矩阵的帧内预测与其它编码工具之间的交互
1.相关申请的交叉引用
2.根据适用的《专利法》和/或《巴黎公约》的规定,本技术及时要求于2019年4月12日提交的国际专利申请号pct/cn2019/082424的优先权和利益。根据法律规定的目的,将上述申请的全部公开以参考方式并入本文,作为本技术公开的一部分。
技术领域
3.本专利文件涉及视频编解码技术、设备和系统。
背景技术:
4.尽管在视频压缩方面取得了进步,但在互联网和其他数字通信网络中,数字视频仍然是使用带宽最多的。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。
技术实现要素:
5.描述了与数字视频编解码相关的设备、系统和方法,特别是用于视频编解码的基于矩阵的帧内预测方法。所述方法可应用于现有视频编解码标准(例如,高效视频编解码(hevc))和未来视频编解码标准(例如,多功能视频编解码(vvc))或编解码器。
6.第一示例视频处理的方法包括:基于规则,使用第一过程来为视频的当前视频块和所述当前视频块的编码表示之间的转换生成第一最可能模式(mpm)列表;以及使用所述第一mpm列表执行所述当前视频块和所述当前视频块的所述编码表示之间的转换,其中,所述当前视频块的所述转换使用基于矩阵的帧内预测(mip)模式,在所述mip模式中,通过在所述视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块,其中,所述规则指定用于生成所述第一mpm列表的所述第一过程与用于生成第二mpm列表的第二过程相同,所述第二mpm列表用于使用不同于所述mip模式的非mip帧内模式编解码的所述视频的其它视频块的所述转换,并且其中,基于所述第二mpm列表的至少一部分生成所述第一mpm列表的至少一部分。
7.第二示例视频处理的方法包括:基于规则为视频的当前视频块和所述当前视频块的编码表示之间的转换生成最可能模式(mpm)列表,其中,所述规则基于所述当前视频块的临近视频块是否使用基于矩阵的帧内预测(mip)模式编解码,在所述mip模式中,通过在所述视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述临近视频块的预测块;以及使用所述mpm列表执行所述当前视频块和所述当前视频块的所述编码表示之间的所述转换,其中,所述转换将非mip模式应用于所述当前视频块,并且其中,所述非mip模式不同于所述mip模式。
8.第三示例视频处理的方法包括:使用基于矩阵的帧内预测(mip)模式解码在当前视频块的编码表示中编解码的视频的所述当前视频块,在所述mip模式中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行
上采样操作来确定所述当前视频块的预测块;以及在不在行缓冲器中存储指示所述当前视频块是否使用所述mip模式编解码的信息的情况下,更新与所述解码相关联的所述行缓冲器。
9.第四示例视频处理的方法包括:执行当前视频块和所述当前视频块的比特流表示之间的所述转换,其中所述当前视频块是使用基于矩阵的帧内预测(mip)模式编解码的,在所述mip中,通过在所述视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块,其中在算术编码或解码处理中,在所述比特流表示中使用最多k个上下文来编码标志,其中,所述标志指示所述当前视频块是否使用所述mip模式编解码,并且其中,k大于或等于零。
10.第五示例视频处理的方法包括:为视频的当前视频块和所述当前视频块的比特流表示之间的转换,生成用基于矩阵的帧内预测(mip)模式编解码的所述当前视频块的帧内预测模式,在所述mip中,通过在所述视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性的进行上采样操作来确定所述当前视频块的预测块;基于所述当前视频块是否使用所述mip模式编解码来确定用于存储指示所述帧内预测模式的信息的规则;以及根据所述规则执行所述转换,其中,所述规则定义将所述帧内预测模式的语法元素存储在所述当前视频块的所述比特流表示中,并且其中,所述规则定义所述当前视频块的所述mip模式的模式索引不存储在所述比特流表示中。
11.第六示例视频处理的方法包括:执行视频的亮度视频块是使用基于矩阵的帧内预测(mip)模式编解码的第一确定,其中通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述亮度视频块的预测块;基于所述第一确定,执行要用于色度视频块的色度帧内模式与所述亮度视频块相关联的第二确定;以及基于所述第二确定执行所述色度视频块和所述色度视频块的比特流表示之间的转换。
12.第七示例视频处理的方法包括:执行视频的当前视频块和所述当前视频块的编码表示之间的转换,其中,所述转换基于是否使用基于矩阵的帧内预测(mip)模式对所述当前视频块进行编解码的确定,在所述mip中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块。
13.第八示例视频处理的方法包括:根据规则,为将视频的当前视频块编码成所述当前视频块的比特流表示,确定是否使用基于矩阵的帧内预测(mip)模式和不同于所述mip模式的编解码模式来编码所述当前视频块,其中,所述mip模式包括:通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块;以及基于所述确定将所述当前视频块的编码表示添加到所述比特流表示中。
14.第九示例视频处理的方法包括:确定使用基于矩阵的帧内预测(mip)模式和不同于所述mip模式的编解码模式来将视频的当前视频块编码在比特流表示中,其中所述mip模式包括:通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块;以及通过解析和解码所述比特流表示来生成所述当前视频块的解码表示。
15.第十示例视频处理的方法包括:确定在视频和当前视频块的编码表示之间的转换中环路滤波器对所述视频的所述当前视频块的重构块的适用性,其中,所述当前视频块使用基于矩阵的帧内预测(mip)模式编解码,在所述mip模式中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地进行上采样操作来确定所述当前视频块的预测块;以及根据所述确定处理所述当前视频块。
16.第十一示例视频处理的方法包括:根据规则,为将视频的当前视频块编码为所述当前视频块的比特流表示,确定要使用的所述当前视频块的临近样点的类型;以及基于所述确定将所述当前视频块的编码表示添加到所述比特流表示中,其中所述当前视频块使用基于矩阵的帧内预测(mip)模式编码,在所述mip模式中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块。
17.第十二示例视频处理的方法包括:根据规则,确定使用基于矩阵的帧内预测(mip)模式并使用当前视频块的一种类型的临近样点来将视频的所述当前视频块编码在比特流表示中,其中,所述mip模式包括:通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块;以及通过解析和解码所述比特流表示来生成所述当前视频块的解码表示。
18.第十三示例视频处理的方法包括:执行视频的当前视频块和所述当前视频块的比特流表示之间的转换,其中所述转换包括:通过使用基于矩阵的帧内预测(mip)模式,通过使用样点的矩阵选择和应用矩阵乘法、和/或通过使用所述当前视频块的偏移矢量选择和添加偏移来生成所述当前视频块的预测块,其中,从所述视频的先前编解码样点的行和列平均中获得所述样点,并且其中,所述选择基于与在所述当前视频块的参考图片上应用亮度映射和色度缩放(lmcs)技术相关联的整形信息。
19.第十四示例视频处理的方法包括:确定将使用基于矩阵的帧内预测(mip)模式对当前视频块进行编解码,在所述mip模式中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块;以及基于所述确定执行所述当前视频块和所述当前视频块的比特流表示之间的所述转换,其中执行所述转换基于共同应用所述mip模式和另一编解码技术的规则。
20.第十五示例视频处理的方法包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和所述当前视频块的比特流表示之间的转换,其中,使用所述mip模式执行所述转换包括:通过使用从所述视频的先前编解码样点的行和列平均中获得的样点的矩阵应用矩阵乘法来生成预测块,并且其中,所述矩阵取决于样点的比特深度。
21.第十六示例视频处理的方法包括:使用基于矩阵的帧内预测(mip)模式为视频的当前视频块生成中间预测信号,在所述mip中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块;基于所述中间预测信号生成最终预测信号;以及基于所述最终预测信号执行所述当前视频块和所述当前视频块的比特流表示之间的转换。
22.第十七示例视频处理的方法包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和所述当前视频块的比特流表示之间的转换,其中所述执行所述转换包括:在所述mip模式的上采样处理中使用插值滤波器,其中,在所述mip模式中,将矩阵乘法应用
于从所述视频的先前编解码样点的行和列平均中获得的第一组样点,并且将所述插值滤波器应用于从所述矩阵乘法获得的第二组样点,并且其中,所述插值滤波器不包括双线性插值滤波器。
23.第十八示例视频处理的方法包括:根据规则执行视频的当前视频块和所述当前视频块的比特流表示之间的转换,其中,所述规则指定在所述转换期间基于矩阵的帧内预测(mip)模式或变换模式的适用性之间的关系,其中,所述mip模式包括:通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块,并且其中,所述变换模式指定为所述当前视频块的所述预测块的所述确定使用变换操作。
24.第十九示例视频处理的方法包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和所述当前视频块的比特流表示之间的所述转换,在所述mip模式中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块,其中执行所述转换包括:根据规则通过对至少一个参考边界样点的和应用左移位操作或右移位操作来导出边界样点,并且其中,所述规则确定是应用所述左移位操作还是所述右移位操作。
25.第二十示例视频处理的方法包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和所述当前视频块的比特流表示之间的所述转换,在所述mip模式中,通过对所述视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块;其中,根据以下公式在所述上采样操作中确定所述预测样点predsamples[xhor dx][yhor]:predsamples[xhor dx][yhor]=((uphor
‑
dx)*predsamples[xhor][yhor] dx*predsamples[xhor uphor][yhor] offsethor)/uphor,并且predsamples[xver][yver dy]=((upver
‑
dy)*predsamples[xver][yver] dy*predsamples[xver][yver upver] offsetver)/upver,其中,offsethor和offsetver是整数,其中,uphor是所述当前视频块宽度和基于所述当前视频块尺寸的预定义值的函数,其中,upver是所述当前视频块高度和基于所述当前视频块尺寸的预定义值的函数;其中,dx是1
…
uphor
‑
1,其中,dy是1
…
upver
‑
1,并且其中,xhor是基于所述uphor的位置,并且yhor是基于所述upver的位置。
[0026]
第二十一示例视频处理的方法包括:为视频的当前视频块和所述当前视频块的比特流表示之间的转换,生成用基于矩阵的帧内预测(mip)模式编解码的所述当前视频块的帧内预测模式,在所述mip中,通过在所述视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性的进行上采样操作来确定所述当前视频块的预测块;基于所述当前视频块是否使用所述mip模式编解码来确定用于存储指示所述帧内预测模式的信息的规则;以及根据所述规则执行所述转换,其中,所述规则定义所述比特流表示不包括指示与所述当前视频块相关联的所述mip模式的信息的存储。
[0027]
在又一代表性方面,所公开的技术可用于提供一种用于视频处理的方法。该示例性方法包括:确定当前视频块是使用仿射线性加权帧内预测(alwip)模式编解码的;基于所述确定,基于非alwip帧内模式的mpm列表的至少一部分来构造alwip模式的最可能模式(mpm)列表的至少一部分;以及基于alwip模式的mpm列表执行当前视频块和当前视频块的比特流表示之间的转换。
[0028]
在另一代表性方面,所公开的技术可用于提供一种用于视频处理的方法。该示例性方法包括:确定当前视频块的亮度分量是使用仿射线性加权帧内预测(alwip)模式编解码的;基于确定推断色度帧内模式;以及基于色度帧内模式执行当前视频块和当前视频块的比特流表示之间的转换。
[0029]
在另一代表性方面,所公开的技术可用于提供一种用于视频处理的方法。该示例性方法包括:确定当前视频块是使用仿射线性加权帧内预测(alwip)模式编解码的;以及基于确定执行当前视频块和当前视频块的比特流表示之间的转换。
[0030]
在另一代表性方面,所公开的技术可用于提供一种用于视频处理的方法。该示例性方法包括:确定当前视频块是使用不同于仿射线性加权帧内预测(alwip)模式的编解码模式编解码的;以及基于确定执行当前视频块和当前视频块的比特流表示之间的转换。
[0031]
在又一代表性方面,上述方法以处理器可执行代码的形式实施,并且存储在计算机可读的程序介质中。
[0032]
在又一代表性方面,公开了一种设备,其被配置为或可操作以执行上述方法。该设备可以包括被编程以实现该方法的处理器。
[0033]
在又一代表性方面,一种视频解码器装置,其可以实现如本文所述的方法。
[0034]
在附图、说明书和权利要求书中更详细地描述了所公开技术的上述方面、以及其他方面和特征。
附图说明
[0035]
图1示出了33种帧内预测方向的示例。
[0036]
图2示出了67种帧内预测模式的示例。
[0037]
图3示出了用于推导线性模型的权重的样点的位置的示例。
[0038]
图4示出了与预测块临近的四条参考行的示例。
[0039]
图5a和图5b示出了取决于块尺寸的子分割的示例。
[0040]
图6示出了4
×
4块的alwip的示例。
[0041]
图7示出了8
×
8块的alwip的示例。
[0042]
图8示出了8
×
4块的alwip的示例。
[0043]
图9示出了16
×
16块的alwip的示例。
[0044]
图10示出了在mpm列表构造中使用的临近块的示例。
[0045]
图11示出了根据所公开的技术的基于矩阵的帧内预测的示例方法的流程图。
[0046]
图12示出了根据所公开的技术的基于矩阵的帧内预测的另一示例方法的流程图。
[0047]
图13示出了根据所公开的技术的基于矩阵的帧内预测的又一示例方法的流程图。
[0048]
图14示出了根据所公开的技术的基于矩阵的帧内预测的又一示例方法的流程图。
[0049]
图15是用于实现本文中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。
[0050]
图16是示出了其中可以实现本文公开的各种技术的示例视频处理系统的框图。
[0051]
图17是示出了可利用本公开的技术的示例性视频编解码系统的框图。
[0052]
图18是示出了视频编码器的示例的框图。
[0053]
图19是示出了视频解码器的示例的框图。
[0054]
图20至38示出了根据所公开的技术的基于矩阵的帧内预测的附加示例方法的示例流程图。
具体实施方式
[0055]
由于对高分辨率视频的需求持续增长,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且正在不断改进以提供更高的编解码效率。视频编解码器将未压缩的视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率决定)、编码和解码算法的复杂度、对数据丢失和错误的敏感度、易于编辑、随机访问和端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(hevc)标准(也称为h.265或mpeg
‑
h第2部分)、待定的多功能视频编解码(vvc)标准,或其他当前和/或未来的视频编解码标准。
[0056]
所公开技术的实施例可以应用于现有的视频编解码标准(例如,hevc,h.265)和未来的标准,以改进运行时间性能。为了提高描述的可读性,在本文中使用了章节标题,并且不以任何方式将讨论或实施例(和/或实现)仅限于各个章节。
[0057]
1.hevc简介
[0058]
1.1hevc/h.265中的帧内预测
[0059]
帧内预测涉及使用先前在所考虑的颜色通道中重构的样点为给定tb(变换块)生成样点。为亮度和色度通道单独地信令通知帧内预测模式,其中色度通道帧内预测模式可替代地经由“dm_chroma”模式取决于亮度通道帧内预测模式。尽管在pb(预测块)级信令通知帧内预测模式,但是根据cu的残差四叉树层次结构在tb级应用帧内预测处理,从而允许一个tb的编解码对cu内的下一个tb的编解码产生影响,因此减少了与用作参考值的样点之间的距离。
[0060]
hevc包括35种帧内预测模式:dc模式、平面(planar)模式和33方向、或“角度”帧内预测模式。图1示出了33种角度帧内预测模式。
[0061]
对于与色度通道相关联的pb,将帧内预测模式指定为平面(planar)、dc、水平、垂直、“dm_chroma”模式(或有时为对角模式“34”)。
[0062]
注意,对于色度格式4:2:2和4:2:0,色度pb可以重叠两个或四个(分别)亮度pb;在这种情况下,dm_chroma的亮度方向取自这些亮度pb的左上角。
[0063]
dm_chroma模式指示将亮度颜色通道pb的帧内预测模式应用于色度通道pb。由于这是相对常见的,所以intra_chroma_pred_mode的最可能模式编解码方案偏向于选择这种模式。
[0064]
2.vvc中帧内预测的示例
[0065]
2.1采用67种帧内预测模式的帧内模式编解码
[0066]
为了捕获自然视频中呈现的任意边缘方向,将方向帧内模式的数量从hevc中使用的33个扩展到65个。在图2中,附加的方向模式被描绘为红色虚线箭头,并且平面(planar)模式和dc模式保持相同。这些更密集的方向帧内预测模式适用于所有块尺寸以及亮度和色度帧内预测。
[0067]
2.2交叉分量线性模型(cclm)的示例
[0068]
在一些实施例中,为了减少交叉分量冗余,在jem中使用交叉分量线性模型(cclm)
预测模式(也称为lm),对于该模式,通过使用如下所示的线性模型、基于相同cu的重构亮度样点来预测色度样点:
[0069]
pred
c
(i,j)=α
·
rec
l
′
(i,j) β
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0070]
这里,pred
c
(i,j)表示cu中的预测色度样点,并且rec
l
′
(i,j)表示同一cu的下采样重构亮度样点。线性模型参数α和β是从两个样点的亮度值和色度值之间的关系导出的,这两个样点是下采样临近亮度样点的集合中具有最小样点值的亮度样点和具有最大样点值的亮度样点,以及它们对应的色度样点。图3示出了cclm模式中所涉及的左侧和上方样点以及当前块的样点的位置的示例。
[0071]
该参数计算是作为解码处理的一部分执行的,而不仅仅是作为编码器搜索操作。因此,不使用语法将α和β值传递给解码器。
[0072]
对于色度帧内模式编解码,色度帧内模式编解码总共允许8个帧内模式。这些模式包括五种传统的帧内模式和三种交叉分量线性模型模式(cclm、lm_a和lm_a)。色度模式编解码直接取决于对应亮度块的帧内预测模式。由于在i条带中启用了亮度和色度分量的单独块分割结构,因此一个色度块可以对应于多个亮度块。因此,对于色度dm模式,直接继承覆盖当前色度块中心位置的对应亮度块的帧内预测模式。
[0073]
2.3多参考行(mrl)帧内预测
[0074]
多参考行(mrl)帧内预测使用更多参考行进行帧内预测。在图4中,描绘了4个参考行的示例,其中段a和f的样点不是从重构的临近样点中取得的,而是分别用段b和段e的最近样点填充的。hevc帧内预测使用最近的参考行(即,参考行0)。在mrl中,使用了附加的两个参考行(参考行1和参考行3)。所选参考行的索引(mrl_idx)被信令通知并用于生成帧内预测器。对于大于0的参考行idx,在mpm列表中只包括附加的参考行模式,并且只信令通知没有其余模式的mpm索引。
[0075]
2.4帧内子分割(isp)
[0076]
帧内子分割(isp)工具根据块尺寸将亮度帧内预测块垂直或水平地划分为2或4个子分割。例如,isp的最小块尺寸为4x8(或8x4)。如果块尺寸大于4x8(或8x4),则将相应的块划分4个子分割。图5示出了两种可能性的示例。所有子分割分满足具有至少16个样点的条件。
[0077]
对于每个子分割,通过将残差信号加到预测信号中来获得重构样点。这里,通过诸如熵解码、逆量化和逆变换等处理产生残差信号。因此,每个子分割的重构样点值可用于生成下一个子分割的预测,并且每个子分割被重复处理。此外,要处理的第一个子分割是包含cu左上角样点的分割,然后继续向下(水平划分)或向右(垂直划分)。结果,用于生成子分割预测信号的参考样点仅位于线(line)的左侧和上方。所有子分割分共享相同的帧内模式。
[0078]
2.5仿射线性加权帧内预测(alwip或基于矩阵的帧内预测)
[0079]
在jvet
‑
n0217提出了仿射线性加权帧内预测(alwip,又称基于矩阵的帧内预测(mip))。
[0080]
在jvet
‑
n0217中,进行了两次测试。在测试1中,将alwip设计为8k字节的内存限制,并且每个样点最多4次乘法。测试2与测试1类似,但在内存需求和模型架构方面进一步缩减了设计。
[0081]
ο所有块形状的单个矩阵集合和偏移矢量。
[0082]
ο所有块形状的模式数量减少至19个。
[0083]
ο将内存需求减少到5760个10比特值,即7.20个千字节。
[0084]
ο在每个方向的单个步骤中执行预测样点的线性插值,替代第一测试中的迭代插值。
[0085]
2.5.1 jvet
‑
n0217的测试1
[0086]
对于宽度w和高度h的矩形块的样点预测,仿射线性加权帧内预测(alwip)以块左侧的一行h个重构的临近边界样点和块上方的一行w个重构的临近边界样点作为输入。如果重构的样点不可用,则像在传统帧内预测中那样将其生成。
[0087]
预测信号的生成基于以下三个步骤:
[0088]
在w=h=4的情况下,通过平均从边界样点中提取四个样点,并且在其它情况下,通过平均从边界样点中提取八个样点。
[0089]
以平均的样点为输入执行矩阵矢量乘法,然后加上偏移。结果是在原始块中的子采样集上的缩减的预测信号。
[0090]
通过线性插值从子采样集合上的预测信号生成其余位置处的预测信号,所述线性插值是每个方向中的单步线性插值。
[0091]
生成预测信号所需的矩阵和偏移矢量取自三个矩阵集合s0,s1,s2。集合s0由18个矩阵组成,其中每个矩阵有16行4列、以及18个每个尺寸为16的偏移矢量该集合的矩阵和偏移矢量用于尺寸为4
×
4的块。集合s1由10个矩阵组成,其中每个矩阵有16行8列、以及10个每个尺寸为16的偏移矢量该集合的矩阵和偏移矢量用于尺寸为4
×
8、8
×
4和8
×
8的块。最后,集合s2由6个矩阵由6个矩阵组成,其中每个矩阵有64行8列、以及尺寸为64的6个偏移矢量该集合的矩阵和偏移矢量或这些矩阵和偏移矢量的一部分用于所有其他块形状。
[0092]
计算矩阵矢量积所需的乘法总数总是小于或等于4
×
w
×
h。换句话说,对于alwip模式,每个样点最多需要四个乘法。
[0093]
2.5.2边界的平均
[0094]
在第一步中,将输入边界bdry
top
和bdry
left
降为更小的边界和这里,在4
×
4块的情况下,和都由两个样点组成,并且在所有其他情况下,和都由4个样点组成。
[0095]
在4
×
4块的情况下,对于0≤i<2,定义
[0096][0097]
并且类似地定义
[0098]
否则,如果快宽度w为w=4
·2k
,0≤i<4,那么定义:
[0099][0100]
将两个缩减的边界和级联成缩减的边界矢量bdry
red
,因此,对于形状为4
×
4的块,bdry
red
的尺寸为4,并且对于所有其他形状的块,bdry
red
的尺寸为8。如果模式指的是alwip模式,则级联定义如下:
[0101][0102]
最后,对于子采样预测信号的插值,在大的块上需要平均边界的第二版本。即,如果min(w,h)>8并且w≥h,则写为w=8*2
l
,并且对于0≤i<8,定义
[0103][0104]
如果min(w,h)>8并且h>w,则类似地定义
[0105]
2.5.3通过矩阵矢量乘法生成缩减的预测信号
[0106]
从缩减的输入矢量bdry
red
生成缩减的预测信号pred
red
。后一个信号是宽度为w
red
和高度为h
red
的下采样块上的信号。这里,w
red
和h
red
定义为:
[0107][0108][0109]
通过计算矩阵矢量积并加上偏移来计算缩减的预测信号:
[0110]
pred
red
=a
·
bdry
red
b
[0111]
这里,如果w=h=4,则a是具有w
red
·
h
red
行和4列的矩阵,并且在所有其他情况下,a是具有w
red
·
h
red
行和8列的矩阵。b是尺寸为w
red
·
h
red
的矢量。
[0112]
矩阵a和矢量b取自集合s0,s1,s2中的一个,如下所示。如下定义索引idx=idx(w,h):
[0113]
[0114]
此外,如下设置m:
[0115][0116]
然后,如果idx≤1或idx=2且min(w,h)>4,则设置并且在idx=2并且min(w,h)=4的情况下,将a设置为:在w=4的情况下去掉对应于下采样块中的奇数x坐标的的每个行而生成的矩阵,或者在h=4的情况下去掉对应于下采样块中的奇数y坐标的的每个行而生成的矩阵。
[0117]
最后,在以下情况下,用其转置来替换缩减的预测信号:
[0118]
οw=h=4并且mode≥18
[0119]
οmax(w,h)=8并且mode≥10
[0120]
οmax(w,h)>8并且mode≥6
[0121]
在w=h=4的情况下,计算pred
red
所需的乘法数为4,因为在这种情况下,a具有4列16行。在所有其他情况下,a具有8列和w
red
·
h
red
行,并且立即确认在这些情况下需要8
·
w
red
·
h
red
≤4
·
w
·
h个乘法,也就是说,在这些情况下,每个样点最多需要4个乘法来计算pred
red
。
[0122]
2.5.4整个alwip处理的说明
[0123]
图6至9中示出了不同形状的平均、矩阵矢量乘法和线性插值的整个处理。注意,其余的形状被视为所描述的情况之一。
[0124]
1.给定4
×
4的块,alwip沿边界的每个轴取两次平均。得到的四个输入样点进入矩阵矢量乘法。矩阵取自集合s0。在加上偏移之后,生成16个最终预测样点。生成预测信号不需要线性插值。因此,对每个样点总共执行(4
·
16)/(4
·
4)=4次乘法。
[0125]
2.给定8
×
8的块,alwip沿着边界的每个轴取四次平均。得到的八个输入样点进入矩阵矢量乘法。矩阵取自集合s1。这在预测块的奇数位置产生16个样点。因此,每个样点总共执行(8
·
16)/(8
·
8)=2次乘法。添加偏移后,通过使用缩减的顶部边界对这些样点进行垂直插值。接着通过使用原始左侧边界进行水平插值。
[0126]
3.给定8
×
4的块,alwip沿边界的水平轴取四次平均、并在左边界上取四个原始边界值。得到的八个输入样点进入矩阵矢量乘法。矩阵取自集合s1。这在预测块的奇数水平位置和每个垂直位置产生16个样点。因此,每个样点总共执行(8
·
16)/(8
·
4)=4次乘法。添加偏移后,通过使用原始左边界对这些样点进行水平插值。
[0127]
4.给定16
×
16的块,alwip沿着边界的每个轴取四次平均。得到的八个输入样点进入矩阵矢量乘法。矩阵取自集合s2。这在预测块的奇数位置产生64个样点。因此,每个样点总共执行(8
·
64)/(16
·
16)=2次乘法。添加偏移后,通过使用顶部边界的八个平均值垂直插值这些样点。接着通过使用原始左边界进行水平插值。在这种情况下,插值处理不增加任何乘法。因此,每个样点总共需要两次乘法来计算alwip预测。
[0128]
对于更大的形状,流程基本相同,并且很容易检查每个样点的乘法数小于4。
[0129]
对于w>8的w
×
8块,由于在奇数水平和每个垂直位置处给出了样点,因此只需要水平插值。
[0130]
最后,对于w>8的w
×
4块,设a_k为通过沿下采样块的水平轴去掉对应于奇数项的每一行而产生的矩阵。因此,输出尺寸是32并且再次,只剩下水平插值需要执行。
[0131]
对转置的情况进行对应的处理。
[0132]
2.5.5单步线性插值
[0133]
对于max(w,h)≥8的w
×
h块,通过线性插值从w
red
×
h
red
的缩减的预测信号pred
red
生成预测信号。取决于块形状,在垂直、水平或两个方向上进行线性插值。如果要在两个方向上应用线性插值,如果w<h,则首先在水平方向应用线性插值,否则首先在垂直方向应用线性插值。
[0134]
在不丧失通用性的情况下,考虑max(w,h)≥8且w≥h的w
×
h块。然后,按如下方式执行一维线性插值。在不丧失通用性的情况下,描述垂直方向上的线性插值就足够了。首先,通过边界信号将缩减的预测信号扩展到顶部。定义垂直上采样因子u
ver
=h/h
red
并且写入然后,如下定义扩展的缩减预测信号:
[0135][0136]
然后,从这个扩展的缩减预测信号中,如下生成垂直线性插值预测信号:
[0137][0138]
其中0≤x<w
red
,0≤y<h
red
并且0≤k<u
ver
。
[0139]
2.5.6提议的帧内预测模式的信令
[0140]
对于帧内模式中的每个编解码单元(cu),在比特流中发送指示是否要在对应的预测单元(pu)上应用alwip模式的标志。后一索引的信令与与在jvet
‑
m0043中一样的方式和mrl保持一致。如果要应用alwip模式,则将使用具有3个mpm的mpm列表信令通知alwip模式的索引predmode。
[0141]
这里,如下使用上方和左侧pu的帧内模式执行mpm的推导。有三个固定的表map_angular_to_alwip
idx
,idx∈{0,1,2},其分配给每个传统的帧内预测模式predmode
angular
和alwip模式。
[0142]
predmode
alwip
=map_angular_to_alwip
idx
[predmode
angular
].
[0143]
对于每个宽度为w且高度为h的pu,定义索引:
[0144]
idx(pu)=idx(w,h)∈{0,1,2}
[0145]
该索引指示将从三个集合中的哪个中取得alwip参数,如在2.5.3节中所述。
[0146]
如果上方预测单元pu
above
可用、与当前pu属于相同的ctu并且处于帧内模式,如果
idx(pu)=idx(pu
above
),并且如果将alwip应用于alwip模式的pu
above
,则令
[0147][0148]
如果上方pu可用、与当前pu属于相同的ctu并且处于帧内模式,并且如果对上方pu应用传统帧内预测模式则令
[0149][0150]
在所有其他情况下,令
[0151][0152]
这意味着该模式不可用。以同样的方式,但不受左pu必须与当前pu属于相同的ctu的限制,导出了模式
[0153]
最后,给出三个固定的默认列表list
idx
,idx∈{0,1,2},每个列表包含三个不同的alwip模式。从默认列表list
idx(pu)
和模式中,通过用默认值替换
‑
1并消除重复,构造出三个不同的mpm。
[0154]
在alwip mpm列表构造中使用的左侧临近块和上方临近块a1和b1,如图10所示。
[0155]
2.5.7传统亮度和色度帧内预测模式的自适应mpm列表推导
[0156]
所提出的alwip模式与传统帧内预测模式的基于mpm的编解码一致,如下所述。传统帧内预测模式的亮度和色度mpm列表推导处理使用固定表map_alwip_to_angular
idx
,idx∈{0,1,2},将给定pu上的alwip模式predmode
alwip
映射到传统帧内预测模式
[0157]
predmode
angular
=map_alwip_to_angular
idx(pu)
[predmode
alwip
]
[0158]
对于亮度mpm列表推导,每当遇到使用alwip模式predmode
alwip
的临近亮度块时,该块被视为使用传统帧内预测模式predmode
angular
。对于色度mpm列表推导,每当当前亮度块使用lwip模式时,使用相同的映射将alwip模式转换为传统的帧内预测模式。
[0159]
2.5.8对应的修改工作草案
[0160]
在一些实施例中,如本节所述,基于所公开技术的实施例,已将与intra_lwip_flag、intra_lwip_mpm_flag、intra_lwip_mpm_idx和intra_lwip_mpm_remainder相关的部分添加到了工作草案中。
[0161]
在一些实施例中,如本节所述,<开始>和<结束>标记用于表示基于所公开技术的实施例对工作草案的添加和修改。
[0162]
语法表
[0163]
编解码单元语法
[0164][0165][0166]
语义
[0167]
<开始>intra_lwip_flag[x0][y0]等于1指定亮度样点的帧内预测类型是仿射线性加权帧内预测。intra_lwip_flag[x0][y0]等于0指定亮度样点的帧内预测类型不是仿射线性加权帧内预测。
[0168]
当intra_lwip_flag[x0][y0]不存在时,推断它等于0。
[0169]
语法元素intra_lwip_mpm_flag[x0][y0],intra_lwip_mpm_idx[x0][y0]和intra_lwip_mpm_remainder[x0][y0]指定亮度样点的仿射线性加权帧内预测模式。阵列索引x0,y0指定所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。当intra_lwip_mpm_flag[x0][y0]等于1时,根据第8.4.x条从临近的帧内预测编解码单元推断仿射线性加权帧内预测模式。
[0170]
当intra_lwip_mpm_flag[x0][y0]不存在时,推断它等于1。<结束>
[0171]
intra_subpartitions_split_flag[x0][y0]指定帧内子分割划分类型是水平还是垂直。当intra_subpartitions_split_flag[x0][y0]不存在时,将其推断如下:
[0172]
–
如果intra_lwip_flag[x0][y0]等于1,则推断intra_subpartitions_split_flag[x0][y0]等于0。
[0173]
–
否则,以下适用:
[0174]
–
如果cbheight大于maxtbsizey,则推断intra_subpartitions_split_flag[x0][y0]等于0。
[0175]
–
否则(cbwidth大于maxtbsizey),推断intra_subpartitions_split_flag[x0][y0]等于1。
[0176]
解码处理
[0177]
8.4.1用于以帧内预测模式编解码的编解码单元的通用解码处理
[0178]
该处理的输入是:
[0179]
–
指定当前编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0180]
–
变量cbwidth,其指定亮度样点中当前编解码块的宽度,
[0181]
–
变量cbheight,其指定亮度样点中当前编解码块的高度,
[0182]
–
变量treetype,其指定是使用单树还是双树,并且如果使用双树,则指定当前树是否对应于亮度或色度分量。
[0183]
该处理的输出是在环内滤波之前的修改的重构图像。
[0184]
以亮度位置(xcb,ycb)、亮度样点中当前编解码块的宽度cbwidth和亮度样点中当前编解码块的高度cbheight、以及变量treetype作为输入,调用第8.7.1条中指定的量化参数的推导处理。
[0185]
当treetype等于single_tree或treetype等于dual_tree_luma时,亮度样点的解码处理指定如下:
[0186]
–
如果pcm_flag[xcb][ycb]等于1,则对重构图片进行如下修改:
[0187]
s
l
[xcb i][ycb j]=pcm_sample_luma[(cbheight*j) i]<<(bitdepth
y
‑
pcmbitdepth
y
),
ꢀꢀ
(8
‑
6)
[0188]
其中i=0..cbwidth
‑
1,j=0..cbheight
‑1[0189]
–
否则,以下适用:
[0190]
1.亮度帧内预测模式推导如下:
[0191]
–
如果intra_lwip_flag[xcb][ycb]等于1,则以亮度位置(xcb,ycb)、亮度样点中当前编解码块的宽度cbwidth和亮度样点中当前编解码块的高度cbheight作为输入,调用第8.4.x条中指定的仿射线性加权帧内预测模式的推导处理。
[0192]
–
否则,以亮度位置(xcb,ycb)、亮度样点中当前编解码块的宽度cbwidth和亮度样点中当前编解码块的高度cbheight作为输入,调用第8.4.2条中指定的亮度帧内预测模式的推导处理。
[0193]
2.以亮度位置(xcb,ycb)、树类型treetype、设置为等于cbwidth的变量ntbw、设置为等于cbheight的变量ntbh、设置为等于intrapredmodey[xcb][ycb]的变量predmodeintra、以及设置为等于0的变量cidx作为输入,调用第8.4.4.1条中指定的帧内块的通用解码处理,并且输出是在环内滤波之前的修改的重构图像。
[0194]
…
[0195]
<开始>
[0196]
8.4.x仿射线性加权帧内预测模式的推导处理
[0197]
该处理的输入是:
[0198]
–
指定当前编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0199]
–
变量cbwidth,其指定亮度样点中当前编解码块的宽度,
[0200]
–
变量cbheight,其指定亮度样点中当前编解码块的高度,
[0201]
在该处理中,导出了仿射线性加权帧内预测模式intrapredmodey[xcb][ycb]。
[0202]
由以下顺序步骤导出intrapredmodey[xcb][ycb]:
[0203]
1.将临近位置(xnba,ynba)和(xnbb,ynbb)分别设置为等于(xcb
‑
1,ycb)和(xcb,ycb
‑
1)。
[0204]
2.对于被a或b替换的x,变量candlwipmodex导出如下:
[0205]
–
将设置为等于(xcb,ycb)的位置(xcurr,ycurr)、以及设置为等于(xnbx,ynbx)的临近位置(xnby,ynby)作为输入,调用第6.4.x条[ed.(bb):临近块可用性检查处理(待定)]中指定的块的可用性推导处理,并将输出分配给availablex。
[0206]
–
候选仿射线性加权帧内预测模式candlwipmodex导出如下:
[0207]
–
如果以下一个或多个条件为真(true),则将candlwipmodex设置为等于
‑
1。
[0208]
–
变量availablex等于假(false)。
[0209]
–
cupredmode[xnbx][ynbx]不等于mode_intra,并且mh_intra_flag[xnbx][ynbx]不等于1。
[0210]
–
pcm_flag[xnbx][ynbx]等于1。
[0211]
–
x等于b,并且ycb
‑
1小于((ycb>>ctblog2sizey)<<ctblog2sizey)。
[0212]
–
否则,以下适用:
[0213]
–
以亮度样点中当前编解码块的宽度cbwidth和亮度样点中当前编解码块的高度cbheight作为输入,调用第8.4.x.1条中指定的块的尺寸类型推导处理,并将输出分配给变量sizeid。
[0214]
–
如果intra_lwip_flag[xnbx][ynbx]等于1,则以亮度样点中临近编解码块的宽度nbwidthx和亮度样点中临近编解码块的高度nbheightx作为输入,调用第8.4.x.1条中指定的块的尺寸类型推导处理,并将输出分配给变量sizeidx。
[0215]
–
如果sizeid等于sizeidx,则将candlwipmodex设置为等于intrapredmodey[xnbx][ynbx]。
[0216]
–
否则,将candlwipmodex设置为等于
‑
1。
[0217]
–
否则,使用表8
‑
x1中指定的intrapredmodey[xnbx][ynbx]和sizeid来导出candlwipmodex。
[0218]
3.通过使用如表8
‑
x2中指定的lwipmpmcand[sizeid],则candlwipmodelist[x](x=0..2)推导如下:
[0219]
–
如果candlwipmodea和candlwipmodeb都等于
‑
1,则以下适用:
[0220]
candlwipmodelist[0]=lwipmpmcand[sizeid][0]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x1)
[0221]
candlwipmodelist[1]=lwipmpmcand[sizeid][1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x2)
[0222]
candlwipmodelist[2]=lwipmpmcand[sizeid][2]
ꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x3)
[0223]
–
否则,以下适用:
[0224]
–
如果candlwipmodea等于candlwipmodeb,或如果candlwipmodea或candlwipmodeb中任一个等于
‑
1,则以下适用:
[0225]
candlwipmodelist[0]=(candlwipmodea!=
‑
1)?candlwipmodea:candlwipmodeb
ꢀꢀ
(8
‑
x4)
[0226]
–
如果candlwipmodelist[0]等于lwipmpmcand[sizeid][0],则以下适用:
[0227]
candlwipmodelist[1]=lwipmpmcand[sizeid][1]
ꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x5)
[0228]
candlwipmodelist[2]=lwipmpmcand[sizeid][2]
ꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x6)
[0229]
–
否则,则以下适用:
[0230]
candlwipmodelist[1]=lwipmpmcand[sizeid][0]
ꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x7)
[0231]
candlwipmodelist[2]=(candlwipmodelist[0]!=lwipmpmcand[sizeid][1])?
[0232]
lwipmpmcand[sizeid][1]:lwipmpmcand[sizeid][2]
ꢀꢀꢀꢀꢀ
(8
‑
x8)
[0233]
–
否则,以下适用:
[0234]
candlwipmodelist[0]=candlwipmodea
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x9)
[0235]
candlwipmodelist[1]=candlwipmodeb
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x10)
[0236]
–
如果candlwipmodea和candlwipmodeb都不等于lwipmpmcand[sizeid][0],则以下适用:
[0237]
candlwipmodelist[2]=lwipmpmcand[sizeid][0]
ꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x11)
[0238]
–
否则,以下适用:
[0239]
–
如果candlwipmodea和candlwipmodeb都不等于lwipmpmcand[sizeid][1],则以下适用:
[0240]
candlwipmodelist[2]=lwipmpmcand[sizeid][1]
ꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x12)
[0241]
–
否则,以下适用:
[0242]
candlwipmodelist[2]=lwipmpmcand[sizeid][2]
ꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x13)
[0243]
4.通过应用以下步骤来导出intrapredmodey[xcb][ycb]:
[0244]
–
如果intra_lwip_mpm_flag[xcb][ycb]等于1,则将intrapredmodey[xcb][ycb]设置为等于candlwipmodelist[intra_lwip_mpm_idx[xcb][ycb]]。
[0245]
–
否则,通过应用以下顺序步骤来导出intrapredmodey[xcb][ycb]:
[0246]
1.如果candlwipmodelist[i]大于candlwipmodelist[j](i=0..1并且对于每个i,j=(i 1)..2),则如下交换两个值:
[0247]
(candlwipmodelist[i],candlwipmodelist[j])=swap(candlwipmodelist[i],
candlwipmodelist[j])(8
‑
x14)
[0248]
2.通过以下顺序步骤来导出intrapredmodey[xcb][ycb:
[0249]
i.将intrapredmodey[xcb][ycb]设置为等于intra_lwip_mpm_remainder[xcb][ycb].
[0250]
ii.对于i等于0至2(包括0和2),如果intrapredmodey[xcb][ycb]大于或等于candlwipmodelist[i],则intrapredmodey[xcb][ycb]的值增加1。
[0251]
将变量intrapredmodey[x][y](x=xcb..xcb cbwidth
‑
1并且y=ycb..ycb cbheight
‑
1)设置为等于intrapredmodey[xcb][ycb]。
[0252]
8.4.x.1用于预测块尺寸类型的推导处理
[0253]
该处理的输入是:
[0254]
‑
变量cbheight,其指定亮度样点中当前编解码块的高度。
[0255]
‑
变量cbwidth,其指定亮度样点中当前编解码块的宽度,
[0256]
该处理的输出是变量sizeid。
[0257]
变量sizeid推导如下:
[0258]
–
如果cbwidth和cbheight都等于4,则将sizeid设置为等于0。
[0259]
–
否则,如果cbwidth和cbheight小于或等于8,则将sizeid设置为等于1。
[0260]
–
否则,将sizeid设置为等于2。
[0261]
表8
‑
x1帧内预测和仿射线性加权帧内预测模式之间的映射规范
[0262][0263]
表8
‑
x2仿射线性加权帧内预测候选模式的规范
[0264][0265]
<结束>
[0266]
8.4.2亮度帧内预测模式的推导处理
[0267]
该处理的输入是:
[0268]
–
指定当前编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0269]
–
变量cbwidth,其指定亮度样点中当前编解码块的宽度,
[0270]
–
变量cbheight,其指定亮度样点中当前编解码块的高度,
[0271]
在该处理中,导出了亮度帧内预测模式intrapredmodey[xcb][ycb]。
[0272]
表8
‑
1指定了帧内预测模式intrapredmodey[xcb][ycb]的值和相关名称。
[0273]
表8
‑
1帧内预测模式和相关名称的规范
[0274]
帧内预测模式相关名称0intra_planar1intra_dc2..66intra_angular2..intra_angular6681..83intra_lt_cclm,intra_l_cclm,intra_t_cclm
[0275]
注意:帧内预测模式intra_lt_cclm,intra_l_cclm和intra_t_cclm仅适用于色度分量。
[0276]
通过如下顺序步骤导出intrapredmodey[xcb][ycb]:
[0277]
1.将临近位置(xnba,ynba)和(xnbb,ynbb)分别设置为(xcb
‑
1,ycb cbheight
‑
1)和(xcb cbwidth
‑
1,ycb
‑
1)。
[0278]
2.对于被a或b替换的x,变量candintrapredmodex导出如下:
[0279]
–
将设置为等于(xcb,ycb)的位置(xcurr,ycurr)、以及设置为等于(xnbx,ynbx)的临近位置(xnby,ynby)作为输入,调用<开始>第6.4.x条[ed.(bb):临近块可用性检查处理(待定)]<结束>中指定的块的可用性推导处理,并将输出分配给availablex。
[0280]
–
候选帧内预测模式candintrapredmodex导出如下:
[0281]
–
如果以下一个或多个条件为真(true),则将candintrapredmodex设置为等于intra_planar。
[0282]
–
变量availablex等于假(false)。
[0283]
–
cupredmode[xnbx][ynbx]不等于mode_intra,并且ciip_flag[xnbx][ynbx]不等于1。
[0284]
–
pcm_flag[xnbx][ynbx]等于1。
[0285]
–
x等于b,并且ycb
‑
1小于((ycb>>ctblog2sizey)<<ctblog2sizey)。
[0286]
–
否则,candintrapredmodex推导如下:
[0287]
–
如果intra_lwip_flag[xcb][ycb]等于1,则通过以下顺序步骤推导candintrapredmodex:
[0288]
i.以亮度样点中当前编解码块的宽度cbwidth和亮度样点中当前编解码块的高度cbheight作为输入,调用第8.4.x.1条中指定的块的尺寸类型推导处理,并将输出分配给变量sizeid。
[0289]
ii.使用表8
‑
x3中指定的intrapredmodey[xnbx][ynbx]和sizeid推导candintrapredmodex。
[0290]
–
否则,将candintrapredmodex设置为等于intrapredmodey[xnbx][ynbx]。
[0291]
3.变量ispdefaultmode1和ispdefaultmode2定义如下:
[0292]
–
如果intrasubpartitionssplittype等于isp_hor_split,则将ispdefaultmode1设置为等于intra_angular18,并将ispdefaultmode2设置为等于intra_angular5。
[0293]
–
否则,将ispdefaultmode1设置为等于intra_angular50,并将ispdefaultmode2设置为等于intra_angular63。
[0294]
…
[0295]
表8
‑
x3仿射线性加权帧内预测和帧内预测模式之间的映射规范
[0296][0297][0298]
8.4.3色度帧内预测模式的推导处理
[0299]
该处理的输入是:
[0300]
–
指定当前色度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xcb,ycb),
[0301]
–
变量cbwidth,其指定亮度样点中当前编解码块的宽度,
[0302]
–
变量cbheight,其指定亮度样点中当前编解码块的高度,
[0303]
在该处理中,导出了色度帧内预测模式intrapredmodec[xcb][ycb]。
[0304]
对应的亮度帧内预测模式lumaintrapredmode导出如下:
[0305]
–
如果intra_lwip_flag[xcb][ycb]等于1,则通过以下顺序步骤导出lumaintrapredmode:
[0306]
i.以亮度样点中当前编解码块的宽度cbwidth和亮度样点中当前编解码块的高度cbheight作为输入,调用第8.4.x.1条中指定的块的尺寸类型推导处理,并将输出分配给变量sizeid。
[0307]
ii.使用表8
‑
x3中指定的intrapredmodey[xcb cbwidth/2][ycb cbheight/2]和sizeid推导亮度帧内预测模式,并将candintrapredmodex的值分配给lumaintrapredmode。
[0308]
–
否则,将lumaintrapredmode设置为等于intrapredmodey[xcb cbwidth/2][ycb cbheight/2]。
[0309]
使用表8
‑
2和表8
‑
3中指定的intra_chroma_pred_mode[xcb][ycb]和lumaintrapredmode导出色度帧内预测模式intrapredmodec[xcb][ycb]。
[0310]
…
[0311]
xxx.帧内样点预测
[0312]
该处理的输入是:
[0313]
–
指定当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbcmp,ytbcmp),
[0314]
–
变量predmodeintra,其指定帧内预测模式,
[0315]
–
变量ntbw,其指定变换块宽度,
[0316]
–
变量ntbh,其指定变换块高度,
[0317]
–
变量ncbw,其指定编解码块宽度,
[0318]
–
变量ncbh,其指定编解码块高度,
[0319]
–
变量cidx,其指定当前块的颜色分量。
[0320]
该处理的输出是预测样点predsamples[x][y](x=0..ntbw
‑
1,y=0..ntbh
–
1)。
[0321]
预测样点predsamples[x][y]导出如下:
[0322]
–
如果intra_lwip_flag[xtbcmp][ytbcmp]等于1且cidx等于0,则以位置(xtbcmp,ytbcmp)、帧内预测模式predmodeintra、变换块宽度ntbw和高度ntbh作为输入,调用第8.4.4.2.x1条中指定的仿射线性加权帧内样点预测处理,并且输出为predsamples。
[0323]
–
否则,以位置(xtbcmp,ytbcmp)、帧内预测模式predmodeintra、变换块宽度ntbw和高度ntbh、编解码块宽度ncbw和高度ncbh以及变量cidx作为输入,调用第8.4.4.2.x1条中指定的通用帧内样点预测处理,并且输出为predsamples。
[0324]
8.4.4.2.x1仿射线性加权帧内样点预测
[0325]
该处理的输入是:
[0326]
–
指定当前变换块的左上样点相对于当前图片的左上样点的样点位置(xtbcmp,ytbcmp),
[0327]
–
变量predmodeintra,其指定帧内预测模式,
[0328]
–
变量ntbw,其指定变换块宽度,
[0329]
–
变量ntbh,其指定变换块高度。
[0330]
该处理的输出是预测样点predsamples[x][y](x=0..ntbw
‑
1,y=0..ntbh
–
1)。
[0331]
以变换块宽度ntbw和变换块高度ntbh作为输入,调用第8.4.x.1条中指定的块的尺寸类型推导处理,并将输出分配给变量sizeid。
[0332]
如表8
‑
x4中规定的,使用sizeid导出变量nummodes、boundarysize、predw、predh和predc。
[0333]
表8
‑
x4取决于sizeid的模式数量、边界样点尺寸和预测尺寸的规范
[0334][0335]
标志istransposed导出如下:
[0336]
istransposed=(predmodeintra>(nummodes/2))?1:0
ꢀꢀꢀꢀꢀ
(8
‑
x15)
[0337]
标志needupsbdryhor和needupsbdryver导出如下:
[0338]
needupsbdryhor=(ntbw>predw)?真(true):假(false)
[0339]
(8
‑
x16)
[0340]
needupsbdryver=(ntbh>predh)?真(true):假(false)
[0341]
(8
‑
x17)
[0342]
变量upsbdryw和upsbdryh导出如下:
[0343]
upsbdryw=(ntbh>ntbw)?ntbw:predw
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x18)
[0344]
upsbdryh=(ntbh>ntbw)?predh:ntbh
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x19)
[0345]
变量lwipw和lwiph导出如下:
[0346]
lwipw=(istransposed==1)?predh:predw
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x20)
[0347]
lwiph=(istransposed==1)?predw:predh
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x21)
[0348]
对于参考样点reft[x](x=0..ntbw
–
1)和refl[y](y=0..ntbh
–
1)的生成,以样点位置(xtbcmp,ytbcmp)、变换块宽度ntbw、变换块高度ntbh作为输入,调用第8.4.4.2.x2条中规定的参考样点推导处理,并且分别以顶部和左侧参考样点reft[x](x=0..ntbw
‑
1)和refl[y](y=0..ntbh
–
1)作为输出。
[0349]
对于边界样点p[x](x=0..2*boundarysize
–
1)的生成,以下适用:
[0350]
–
以块尺寸ntbw、参考样点reft、边界尺寸boundarysize、上采样边界标志needupsbdryver和上采样边界尺寸upsbdryw作为输入,为顶部参考样点调用第8.4.4.2.x3条中规定的边界缩减处理,并且以缩减的边界样点redt[x](x=0..boundarysize
–
1)和上采样边界样点upsbdryt[x](x=0..upsbdryw
–
1)作为输出。
[0351]
–
以块尺寸ntbh、参考样点refl、边界尺寸boundarysize、上采样边界标志needupsbdryhor和上采样边界尺寸upsbdryh作为输入,为左侧参考样点调用第8.4.4.2.x3条中规定的边界缩减处理,并且以缩减的边界样点redl[x](x=0..boundarysize
‑
1)和上采样边界样点upsbdryl[x](x=0..upsbdryh
‑
1)作为输出。
[0352]
–
将缩减的顶部和左侧边界样点redt和redl分配给边界样点阵列p,如下所示:
[0353]
–
如果istransported等于1,则将p[x]设置为等于redl[x](x=0..boundarysize
–
1),并将p[x boundarysize]设置为等于redt[x](x=0..boundarysize
–
1)。
[0354]
–
否则,将p[x]设置为等于redt[x](x=0..boundarysize
–
1),并将p[x boundarysize]设置为等于redl[x](x=0..boundarysize
–
1)。
[0355]
对于根据predmodeintra的帧内样点预测处理,以下顺序步骤适用:
[0356]
1.仿射线性加权样点predlwip[x][y](x=0..lwipw
‑
1,y=0..lwiph
–
1)导出如下:
[0357]
‑
变量modeid推导如下:
[0358]
modeid=predmodeintra
‑
(istransposed==1)?(nummodes/2):0
ꢀꢀꢀꢀ
(8
‑
x22)
[0359][0360]
‑
使用如表8
‑
xx[待定:添加权重矩阵]中指定的sizeid和modeid导出权重矩阵mweight[x][y](x=0..2*boundarysize
‑
1,y=0..predc*predc
‑
1)。
[0361]
‑
使用如表8
‑
xx[待定:添加偏差矢量]中规定的sizeid和modeid导出偏差矢量vbias[y](y=0..predc*predc
‑
1)。
[0362]
‑
使用如表8
‑
x5中规定的sizeid和modeid导出变量sw。
[0363]
‑
仿射线性加权样点predlwip[x][y](x=0..lwipw
‑
1,y=0..1wiph
‑
1)导出如下:
[0364]
ow=1<<(sw
‑
1)
ꢀꢀ
(8
‑
x23)
[0365]
sb=bitdepthy
‑1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x24)
[0366]
incw=(predc>lwipw)?2:1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x25)
[0367]
inch=(predc>lwiph)?2:1(8
‑
x26)
[0368][0369]
2.预测样点predsamples[x][y](x=0..ntbw
‑
1,y=0..ntbh
‑
1)导出如下:
[0370]
‑
如果istransposed等于1,则将predlwip[x][y](x=0..predw
‑
1,y=0..predh
‑
1)设置为等于predlwip[y][x]。
[0371]
‑
如果needupsbdryver等于真(true)、或needupsbdryhor等于真(true),则以输入块宽度predw、输入块高度predh、仿射线性加权样点predlwip、变换块宽度ntbw、变换块高度ntbh、上采样边界宽度upsbdryw、上采样边界高度upsbdryh、顶部上采样边界样点upsbdryt、以及左侧上采样边界样点upsbdryl作为输入,调用第8.4.4.2.x4条中指定的预测上采样处理,并且输出是预测样点阵列predsamples。
[0372]
–
否则,将predsamples[x][y](x=0..ntbw
‑
1,y=0..ntbh
–
1)设置为等于predlwip[x][y]。
[0373]
表8
‑
x5取决于sizeid和modeid的权重移位sw的规范
[0374][0375]
8.4.4.2.x2参考样点推导处理
[0376]
该处理的输入是:
[0377]
‑
指定当前变换块的左上亮度样点相对于当前图片的左上亮度样点的样点位置(xtby,ytby),
[0378]
‑
变量ntbw,其指定变换块宽度,
[0379]
‑
变量ntbh,其指定变换块高度。
[0380]
该处理的输出分别是顶部和左侧参考样点reft[x](x=0..ntbw
‑
1)和refl[y](y=0..ntbh
–
1)。
[0381]
临近样点reft[x](x=0..ntbw
‑
1)和refl[y](y=0..ntbh
–
1)是在环内滤波处理之前的重构样点,并且导出如下:
[0382]
–
顶部和左侧临近亮度位置(xnbt,ynbt)和(xnbl,ynbl)指定为:
[0383]
(xnbt,ynbt)=(xtby x,ytby
‑
1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x28)
[0384]
(xnbl,ynbl)=(xtby
‑
1,ytby y)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x29)
[0385]
–
以设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)和顶部临近亮度位置(xnbt,ynbt)作为输入,调用第6.4.x条[ed.(bb):临近块可用性检查处理(待定)]中指定的块的可用性推导处理,并且将输出分配给availtop[x](x=0..ntbw
‑
1)。
[0386]
–
以设置为等于(xtby,ytby)的当前亮度位置(xcurr,ycurr)和左侧临近亮度位置(xnbl,ynbl)作为输入,调用第6.4.x条[ed.(bb):临近块可用性检查处理(待定)]中指定的块的可用性推导处理,并且将输出分配给availleft[y](y=0..ntbh
‑
1)。
[0387]
–
顶部参考样点reft[x](x=0..ntbw
–
1)推导如下:
[0388]
–
如果所有availtop[x](x=0..ntbw
–
1)都等于真(true),则将位置(xnbt,ynbt)处的样点分配给reft[x](x=0..ntbw
–
1)。
[0389]
–
否则,如果availtop[0]等于假(false),则将所有reft[x](x=0..ntbw
–
1)都设置为等于1<<(bitdepth
y
–
1)。
[0390]
–
否则,通过以下顺序步骤导出参考样点reft[x](x=0..ntbw
–
1):
[0391]
1.将变量lastt设置为等于序列availtop[x](x=0..ntbw
–
1)中等于假(false)的第一个元素的位置x。
[0392]
2.对于每个x=0..lastt
–
1,将位置(xnbt,ynbt)处的样点分配给reft[x]。
[0393]
3.对于每个x=lastt..ntbw
–
1,将reft[x]设置为等于reft[lastt
–
1]。
–
左侧参考样点refl[y](x=0..ntbh
–
1)导出如下:
[0394]
–
如果所有availleft[y](y=0..ntbh
–
1)都等于真(true),则将位置(xnbl,ynbl)处的样点分配给refl[y](y=0..ntbh
–
1)。
[0395]
–
否则,如果availleft[0]等于假(false),则将所有refl[y](y=0..ntbh
–
1)都设置为等于1<<(bitdepth
y
–
1)。
[0396]
–
否则,通过以下顺序步骤导出参考样点refl[y](y=0..ntbh
–
1):
[0397]
1.将变量lastl设置为等于序列availleft[y](y=1..ntbh
–
1)中等于假(false)的第一个元素的位置y。
[0398]
2.对于每个y=0..lastl
–
1,将位置(xnbl,ynbl)处的样点分配给refl[y]。
[0399]
3.对于每个y=lastl..ntbh
–
1,将refl[y]设置为等于refl[lastl
–
1]。
[0400]
边界缩减处理的规范
[0401]
该处理的输入是:
[0402]
–
变量ntbx,其指定变换块尺寸,
[0403]
–
参考样点refx[x](x=0..ntbx
‑
1),
[0404]
–
变量boundarysize,其指定下采样边界尺寸,
[0405]
–
标志needupsbdryx,其指定上采样是否需要中间边界样点,
[0406]
‑‑
变量upsbdrysize,其指定用于上采样的边界尺寸。
[0407]
该处理的输出是缩减的边界样点redx[x](x=0..boundarysize
–
1)和上采样边界样点upsbdryx[x](x=0..upsbdrysize
‑
1)。
[0408]
上采样边界样点upsbdryx[x](x=0..upsbdrysize
‑
1)导出如下:
[0409]
‑
如果needupsbdryx等于真(true)且upsbdrysize小于ntbx,则以下适用:
[0410]
udwn=ntbx/upsbdrysize
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x30)
[0411][0412]
‑
否则(upsbdrysize等于ntbx),将upsbdryx[x]设置为等于refx[x]。
[0413]
缩减的边界样点redx[x](x=0..boundarysize
‑
1)导出如下:
[0414]
‑
如果boundarysize小于upsbdrysize,则以下适用:
[0415]
bdwn=upsbdrysize/boundarysize
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x32)
[0416][0417]
‑
否则(boundarysize等于upsbdrysize),将redx[x]设置为等于upsbdryx[x]。
[0418]
8.4.4.2.x4预测上采样处理的规范
[0419]
该处理的输入是:
[0420]
‑
变量predw,其指定输入块宽度,
[0421]
‑
变量predh,其指定输入块高度,
[0422]
‑
仿射线性加权样点predlwip[x][y](x=0..predw
‑
1,y=0..predh
‑
1),
[0423]
‑
变量ntbw,其指定变换块宽度,
[0424]
‑
变量ntbh,其指定变换块高度,
[0425]
‑
变量upsbdryw,其指定上采样边界宽度,
[0426]
‑
变量upsbdryh,其指定上采样边界高度,
[0427]
‑
顶部上采样边界样点upsbdryt[x](x=0..upsbdryw
‑
1),
[0428]
‑
左侧上采样边界样点upsbdryl[x](x=0..upsbdryh
‑
1)。
[0429]
该处理的输出是预测样点predsamples[x][y](x=0..ntbw
‑
1,y=0..ntbh
‑
1)。
[0430]
如下从predlwip[x][y](x=0..predw
‑
1,y=0..predh
–
1)导出稀疏预测样点predsamples[m][n]:
[0431]
uphor=ntbw/predw
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x34)
[0432]
upver=ntbh/predh
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x35)
[0433]
predsamples[(x 1)*uphor
‑
1][(y 1)*upver
‑
1]=predlwip[x][y]
ꢀꢀꢀ
(8
‑
x36)
[0434][0435]
如下将顶部边界样点upsbdryt[x](x=0..upsbdryw
–
1)分配给predsamples[m][
‑
1]:
[0436]
predsamples[(x 1)*(ntbw/upsbdryw)
‑
1][
‑
1]=upsbdryt[x]
ꢀꢀꢀ
(8
‑
x37)
[0437][0438]
如下将左侧边界样点upsbdryl[y](y=0..upsbdryh
–
1)分配给predsamples[
‑
1][n]:
[0439]
predsamples[
‑
1][(y 1)*(ntbh/upsbdryh)
‑
1]=upsbdryl[y]
ꢀꢀꢀ
(8
‑
x38)
[0440][0441]
预测样点predsamples[x][y](x=0..ntbw
‑
1,y=0..ntbh
‑
1)导出如下:
[0442]
–
如果ntbh大于ntbw,则以下顺序步骤适用:
[0443]
1.当uphor大于1时,以dx=1..uphor
‑
1应用所有稀疏位置(xhor,yhor)=(m*uphor
‑
1,n*upver
‑
1)(m=0..predw
‑
1,n=1..predh)处的水平上采样,如下所示:
[0444]
predsamples[xhor dx][yhor]=((uphor
‑
dx)*predsamples[xhor][yhor] dx*predsamples[xhor uphor][yhor])/uphor
ꢀꢀꢀ
(8
‑
x39)
[0445][0446]
2.以dy=1..upver
–
1应用所有稀疏位置(xver,yver)=(m,n*upver
–
1)(m=0..ntbw
–
1,n=0..predh
–
1)处的垂直上采样,如下所示:
[0447]
predsamples[xver][yver dy]=((upver
‑
dy)*predsamples[xver][yver] dy*predsamples[xver][yver upver])/upver
ꢀꢀꢀ
(8
‑
x40)
[0448][0449]
–
否则,以下顺序步骤适用:
[0450]
1.当upver大于1时,以dy=1..upver
‑
1应用所有稀疏位置(xver,yver)=(m*uphor
–
1,n*upver
–
1)(m=1..predw,n=0..predh
–
1)处的垂直上采样,如(8
‑
x40)所规定。
[0451]
2.以dx=1..uphor
‑
1应用所有稀疏位置(xhor,yhor)=(m*uphor
‑
1,n)(m=1..predw,n=0..predh
‑
1)处的水平上采样,如(8
‑
x39)中所规定。
[0452]
<结束>
[0453]
表9
‑
9语法元素和相关联的二值化
[0454][0455]
表9
‑
15将ctxinc分配给具有上下文编解码的二进制数的语法元素
[0456][0457]
表9
‑
16使用左侧和上方语法元素的ctxinc的规范
[0458][0459]
<结束>
[0460]
alwip的概述
[0461]
对于宽度为w且高度为h的矩形块的样点预测,仿射线性加权帧内预测(alwip)以块左侧具有h个重构的临近边界样点的一行和块上方具有w个重构的临近边界样点的一行作为输入。如果重构的样点不可用,则像在传统帧内预测中那样将其生成。alwip仅适用于亮度帧内块。对于色度帧内块,应用传统的帧内编解码模式。
[0462]
预测信号的生成基于以下三个步骤:
[0463]
1.在w=h=4的情况下,通过平均从边界样点中提取四个样点,并且在其它情况下,通过平均从边界样点中提取八个样点。
[0464]
2.以平均的样点为输入执行矩阵矢量乘法,然后加上偏移。结果是在原始块中的子采样集上的缩减的预测信号。
[0465]
3.通过线性插值从子采样集合上的预测信号生成其余位置处的预测信号,所述线性插值是每个方向中的单步线性插值。
[0466]
如果要应用alwip模式,则将使用具有3个mpm的mpm列表信令通知alwip模式的索引predmode。这里,如下使用上方和左侧pu的帧内模式执行mpm的推导。有三个固定的表map_angular
‑
to_alwip
iax
,idx∈{0,1,2},其分配给每个传统的帧内预测模式predmode
angular
和alwip模式。
[0467]
predmode
alwip
=map_angular
‑
to_alwip
idx
[predmode
angular
].
[0468]
对于每个宽度为w且高度为h的pu,定义索引:
[0469]
idx(pu)=idx(w,h)∈{0,1,2}
[0470]
该索引指示将从三个集合中的哪个中取得alwip参数。
[0471]
如果上方预测单元pu
above
可用、与当前pu属于相同的ctu并且处于帧内模式,如果idx(pu)=idx(pu
above
),并且如果将alwip应用于alwip模式的pu
above
,则令
[0472][0473]
如果上方pu可用、与当前pu属于相同的ctu并且处于帧内模式,并且如果对上方pu应用传统帧内预测模式则令
[0474][0475]
在所有其他情况下,令
[0476][0477]
这意味着该模式不可用。以同样的方式,但不受左侧pu必须与当前pu属于相同的ctu的限制,导出了模式
[0478]
最后,给出三个固定的默认列表list
idx
,idx∈{0,1,2},每个列表包含三个不同的alwip模式。从默认列表list
idx(pu)
和模式中,通过用默认值替换
‑
l并消除重复,构造出三个不同的mpm。
[0479]
对于亮度mpm列表推导,每当遇到使用alwip模式predmode
alwip
的临近亮度块时,将该块视为犹如使用传统帧内预测模式predmode
angular
。
[0480]
predmode
angular
=map_alwip_to_angular
idx(pu)
[predmode
alwip
]
[0481]
3.vvc中的变换
[0482]
3.1多变换选择(mts)
[0483]
除了在hevc中使用的dct
‑
ii外,还使用了一种多变换选择(mts)方案来对帧间和帧内编解码块进行残差编解码。它使用来自dct8/dst7的多个选定变换。新引入的变换矩阵有dst
‑
vii和dct
‑
viii。
[0484]
3.2 jvet
‑
n0193中提出的缩减的二次变换(rst)
[0485]
缩减的二次变换(rst)分别对4x4和8x8块应用16x16和16x64不可分离变换。初级正变换和逆变换的执行方式仍与两个一维水平/垂直变换处理相同。二次正变换和逆变换是与初级变换分离的处理步骤。对于编码器,首先执行初级正向变换,然后执行二次正向变换和量化,以及cabac比特编码。对于解码器,首先进行cabac比特解码和逆量化,然后进行二次逆变换,然后进行初级逆变换。rst仅适用于帧内条带和帧间条带中的帧内编解码tu。
[0486]
3.3 jvet
‑
n0185中用于帧内模式编解码的统一mpm列表
[0487]
提出了将统一6
‑
mpm列表用于帧内块,与是否应用多参考行(mrl)和帧内子分割(isp)编解码工具无关。mpm列表是基于如vtm4.0中的左侧和上方临近块的帧内模式构造的。假设左侧的模式表示为“左(left)”,并且上方块的模式表示为“上(above)”,则统一mpm列表构造如下:
[0488]
·
当临近块不可用时,将其帧内模式默认设置为平面(planar)。
[0489]
·
如果左(left)模式和上(above)模式都是非角度模式,则:
[0490]
a.mpm列表
→
{planar,dc,v,h,v
‑
4,v 4}
[0491]
·
如果左模式和上模式中的一个为角度模式,并且另一个为非角度模式,则:
[0492]
a.将模式max设置为左模式和上模式中的较大模式,
[0493]
b.mpm列表
→
{planar,max,dc,max
‑
1,max 1,max
‑
2}
[0494]
·
如果左模式和上模式都是角度模式并且不同,则:
[0495]
a.将模式max设置为左模式和上模式中的较大模式,
[0496]
b.如果左模式和上模式的差在2到62之间(包括2到62),则:
[0497]
i.mpm列表
→
{planar,左,上,dc,max
‑
1,max 1}
[0498]
c.否则
[0499]
i.mpm列表
→
{planar,左,上,dc,max
‑
2,max 2}
[0500]
·
如果左模式和上模式都是角度模式并且相同,则:
[0501]
a.mpm列表
→
{planar,左,左
‑
1,左 1,dc,左
‑
2}
[0502]
此外,mpm索引码字的第一个二进制数(bin)是cabac上下文编解码的。总共使用三个上下文,对应于当前帧内块是启用了mrl、启用了isp还是常规的帧内块。
[0503]
在统一mpm列表构造中使用的左侧临近块和上方临近块是如图10所示的a2和b2。
[0504]
首先编解码一个mpm标志。如果用mpm列表中的模式中的一个对块进行编解码,则进一步对mpm索引进行编解码。否则,对其余模式(不包括mpm)的索引进行编解码。
[0505]
4.现有实现中缺陷的示例
[0506]
jvet
‑
n0217中的alwip设计存在以下问题:
[0507]
1)在2019年3月的jvet会议上,mrl模式、isp模式和常规帧内模式采用了统一的6
‑
mpm列表生成。但仿射线性加权预测模型采用了不同的3
‑
mpm列表构造,这使得mpm列表构造复杂。复杂的mpm列表构造可能会影响解码器的吞吐量,特别是对于诸如4x4个样点的小块。
[0508]
2)alwip仅适用于块的亮度分量。对于alwp编解码块的色度分量,对色度模式索引进行编码并将其发送到解码器,这会导致不必要的信令。
[0509]
3)应当考虑alwip与其他编解码工具的交互。
[0510]
4)当在4)当在中计算upsbdryx时,log2(udwn)
‑
1可能等于
‑
1,而左移位
‑
1是未定义的。
[0511]
5)当上采样预测样点时,未应用取整。
[0512]
6)在去方块处理中,alwip编解码块被视为常规帧内块。
[0513]
5.基于矩阵的帧内编码的示例方法
[0514]
本公开技术的实施例克服了现有实现的缺陷,从而提供具有更高编解码效率但更低计算复杂度的视频编解码。在以下针对各种实现描述的示例中说明了如本文所述可以增强现有和未来的视频编解码标准的用于视频编解码的基于矩阵的帧内预测方法。下面提供的公开技术的示例解释了通用概念,并不意味着被解释为限制性的。在示例中,除非明确表示相反,否则可以组合这些示例中描述的各种特征。
[0515]
在下面的讨论中,帧内预测模式是指角度帧内预测模式(包括dc、平面(planar)、cclm和其他可能的帧内预测模式);而帧内模式是指常规帧内模式、或mrl、isp或alwip。
[0516]
在下面的讨论中,“其他帧内模式”可以指除alwip之外的一个或多个帧内模式,诸
如常规帧内模式、mrl或isp。
[0517]
在下面的讨论中,将satshift(x,n)定义为:
[0518][0519]
将shift(x,n)定义为shift(x,n)=(x offset0)>>n。
[0520]
在一个示例中,将offset0和/或offset1设置为(1<<n)>>1或(1<<(n
‑
1))。在另一个示例中,将offset0和/或offset1设置为0。
[0521]
在另一个示例中,offset0=offset1=((1<<n)>>1)
‑
1或((1<<n
‑
1))
‑
1。
[0522]
将clip3(min,max,x)定义为:
[0523][0524]
alwip的mpm列表构造
[0525]
1.提出了可以根据构造非alwip帧内模式(诸如常规帧内模式、mrl或isp)的mpm列表的全部或部分流程来构造alwip的mpm列表的全部或部分。
[0526]
a.在一个示例中,alwip的mpm列表的尺寸可以与非alwip帧内模式的mpm列表的尺寸相同。
[0527]
i.例如,对于alwip和非alwip帧内模式,mpm列表的尺寸都是6。
[0528]
b.在一个示例中,可以从非alwip帧内模式的mpm列表导出alwip的mpm列表。
[0529]
i.在一个示例中,可以首先构造非alwip帧内模式的mpm列表。之后,可以将它们的部分或全部转换为mpm,进而可以进一步将mpm添加到alwip编解码块的mpm列表中。
[0530]
1)另外,可替代地,当将转换后的mpm添加到alwip编解码块的mpm列表时,可以应用修剪。
[0531]
2)可以将默认模式添加到alwip编解码块的mpm列表中。
[0532]
a.在一个示例中,可以在从非alwip帧内模式的mpm列表转换之前添加默认模式。
[0533]
b.可替代地,可以在从非alwip帧内模式的mpm列表转换之后添加默认模式。
[0534]
c.可替代地,可以将默认模式与在从非alwip帧内模式的mpm列表转换的模式交叉地添加。
[0535]
d.在一个示例中,可以将所有类型的块的默认模式固定为相同。
[0536]
e.可替代地,可以根据编解码信息(诸如临近块的可用性、临近块的模式信息、块维度)来确定默认模式。
[0537]
ii.在一个示例中,当将非alwip帧内模式的mpm列表中的一个帧内预测模式放入alwip的mpm列表中时,可以将其转换为相应的alwip帧内预测模式。
[0538]
1)可替代地,非alwip帧内模式的mpm列表中的所有帧内预测模式可在用于构造alwip的mpm列表之前转换为相应的alwip帧内预测模式。
[0539]
2)可替代地,如果非alwip的mpm列表将进一步用于导出alwip的mpm列表,则可将所有候选帧内预测模式(可包括来自临近块的帧内预测模式、以及诸如平面(planar)和dc的默认帧内预测模式)在用于构造非alwip帧内模式的mpm列表之前转换为相应的alwip帧
内预测模式。
[0540]
3)在一个示例中,可以比较两个转换的alwip帧内预测模式。
[0541]
a.在一个示例中,如果它们相同,则只能将其中一个放入alwip的mpm列表中。
[0542]
b.在一个示例中,如果它们相同,则只能将其中一个放入非alwip的mpm列表中。
[0543]
iii.在一个示例中,可将非alwip帧内模式的mpm列表中的s个帧内预测模式中的k个选作alwip模式的mpm列表,例如,k等于3且s等于6。
[0544]
1)在一个示例中,可将非alwip帧内模式的mpm列表中的前k个帧内预测模式选作alwip模式的mpm列表。
[0545]
2.提出用于导出alwip的mpm列表的一个或多个临近块也可用于导出非alwip帧内模式(诸如常规帧内模式、mrl或isp)的mpm列表。
[0546]
a.在一个示例中,当前块左侧的、用于推导alwip的mpm列表的临近块应与用于推导非alwip帧内模式的mpm列表的临近块相同。
[0547]
i.假设当前块的左上角是(xcb,ycb),当前块的宽度和高度是w和h,那么在一个示例中,用于导出alwip和非alwip帧内模式两者的mpm列表的左侧临近块可以覆盖位置(xcb
‑
1,ycb)。在另一个示例中,用于导出alwip和非alwip帧内模式两者的mpm列表的左侧临近块可以覆盖位置(xcb
‑
1,ycb h
‑
1)。
[0548]
ii.例如,在统一mpm列表构造中使用的左侧临近块和上方临近块是如图10所示的a2和b2。
[0549]
b.在一个示例中,当前块上方的、用于导出alwip的mpm列表的临近块应与用于导出非alwip帧内模式的mpm列表的临近块相同。
[0550]
i.假设当前块的左上角为(xcb,ycb),当前块的宽度和高度为w和h,则在一个示例中,用于导出alwip和非alwip帧内模式两者的mpm列表的上方临近块可以覆盖位置(xcb,ycb
‑
1)。在另一个示例中,用于导出alwip和非alwip帧内模式两者的mpm列表的上方临近块可以覆盖位置(xcb w
‑
1,ycb
‑
1)。
[0551]
ii.例如,在统一mpm列表构造中使用的左侧临近块和上方临近块是如图10所示的a1和b1。
[0552]
3.提出可根据当前块的宽度和/或高度,以不同方式构造alwip的mpm列表。
[0553]
a.在一个示例中,可以针对不同的块维度访问不同的临近块。
[0554]
4.提出可以使用相同的流程但使用不同的参数构造alwip的mpm列表和非alwip帧内模式的mpm列表。
[0555]
a.在一个示例中,可以为alwip模式中使用的mpm列表导出非alwip帧内模式的mpm列表构造流程中的s个帧内预测模式中的k个。例如,k等于3且s定于6。
[0556]
i.在一个示例中,可以为在alwip模式中使用的mpm列表导出mpm列表构造流程中的前k个帧内预测模式。
[0557]
b.在一个示例中,mpm列表中的第一个模式可以不同。
[0558]
i.例如,非alwip帧内模式的mpm列表中的第一个模式可以是平面(planar),但是在alwip的mpm列表中它可以是模式x0。
[0559]
1)在一个示例中,x0可以是从平面(planar)转换的alwip帧内预测模式。
[0560]
c.在一个示例中,mpm列表中的填充模式可以不同。
[0561]
i.例如,非alwip帧内模式的mpm列表中的前三个填充模式可以是dc、垂直和水平,但在alwip的mpm列表中它们可以是的模式x1、x2、x3。
[0562]
1)在一个示例中,对于不同的sizeid,x1、x2、x3可以不同。
[0563]
ii.在一个示例中,填充模式的数量可以不同。
[0564]
d.在一个示例中,mpm列表中的临近模式可以不同。
[0565]
i.例如,使用临近块的常规帧内预测模式来构造非alwip帧内模式的mpm列表。并将它们转换为alwip帧内预测模式以构造alwip模式的mpm列表。
[0566]
e.在一个示例中,mpm列表中的移位模式可以不同。
[0567]
i.例如,可将x k0(其中x是常规帧内预测模式,并且k0是整数)放入非alwip帧内模式的mpm列表中。并且可将y k1(其中y是alwip帧内预测模式,并且k1是整数)放入alwip的mpm列表中,其中k0可以与k1不同。
[0568]
1)在一个示例中,k1可以取决于宽度和高度。
[0569]
5.提出在用非alwip帧内模式构造当前块的mpm列表时,如果临近块用alwip编解码,则将该临近块视为不可用。
[0570]
a.可替代地,在用非alwip帧内模式构造当前块的mpm列表时,如果临近块用alwip编解码,则将该临近块视为用预定义的帧内预测模式(诸如平面(planar))编解码。
[0571]
6.提出在用alwip模式构造当前块的mpm列表时,如果临近块使用非alwip帧内模式编解码,则将该临近块视为不可用。
[0572]
a.可替代地,在用alwip模式构造当前块的mpm列表时,如果临近块使用非alwip帧内模式编解码,则将该临近块视为用预定义的alwip帧内预测模式x编解码。
[0573]
i.在一个示例中,x可以取决于块维度,诸如宽度和/或高度。
[0574]
7.提出从行缓冲区中移除alwip标志的存储。
[0575]
a.在一个示例中,当要访问的第二个块与当前块相比位于不同的lcu/ctu行/区域时,跳过对第二个块是否使用alwip编解码的条件检查。
[0576]
b.在一个示例中,当要访问的第二块与当前块相比位于不同的lcu/ctu行/区域时,以与非alwip模式相同的方式处理第二块,诸如作为常规帧内编解码块处理。
[0577]
8.当编码alwip标志时,最多可使用k(k>=0)个上下文。
[0578]
a.在一个示例中,k=1。
[0579]
9.提出存储alwip编解码块的转换后的帧内预测模式,而不是直接存储与alwip模式相关联的模式索引。
[0580]
a.在一个示例中,将与一个alwip编解码块相关联的解码模式索引映射到常规帧内模式,例如根据第2.5.7节所述的map_alwip_to_angular。
[0581]
b.此外,可替代地,完全移除alwip标志的存储。
[0582]
c.此外,可替代地,完全移除alwip模式的存储。
[0583]
d.此外,可替代地,可以跳过对一个临近/当前块是否使用alwip标志编码的条件检查。
[0584]
e.此外,可替代地,可以跳过分配给alwip编解码块的模式的转换和与一个访问块相关联的常规帧内预测。
[0585]
不同颜色分量上的alwip
[0586]
10.提出如果对应的亮度块用alwip模式编解码,则可以始终应用推断的色度帧内模式(例如,dm模式)。
[0587]
a.在一个示例中,如果对应的亮度块用alwip模式编解码,则色度帧内模式被推断为没有信令的dm模式。
[0588]
b.在一个示例中,对应的亮度块可以是覆盖位于给定位置的色度样点的对应样点的块(例如,当前色度块的左上角、当前色度块的中心)。
[0589]
c.在一个示例中,可以根据对应亮度块的帧内预测模式导出dm模式,诸如通过将(alwip)模式映射到常规帧内模式中的一个。
[0590]
11.当色度块的对应亮度块用alwip模式编解码时,可以导出几个dm模式。
[0591]
12.提出如果对应的亮度块用alwip模式编解码,则为色度块分配特殊模式。
[0592]
a.在一个示例中,特殊模式被定义为给定的常规帧内预测模式,而不考虑与alwip编解码块相关联的帧内预测模式。
[0593]
b.在一个示例中,可以将不同的帧内预测方式分配给该特殊模式。
[0594]
13.提出alwip也可应用于色度分量。
[0595]
a.在一个示例中,对于不同的颜色分量,矩阵和/或偏移矢量可以不同。
[0596]
b.在一个示例中,可以为cb和cr联合预定义矩阵和/或偏移矢量。
[0597]
i.在一个示例中,cb和cr分量可以是级联的。
[0598]
ii.在一个示例中,cb和cr分量可以是交错的。
[0599]
c.在一个示例中,色度分量可以与对应的亮度块共享相同的alwip预测内模式。
[0600]
i.在一个示例中,如果对应的亮度块应用alwip模式并且色度块使用
[0601]
dm模式编解码,则将相同的alwip帧内预测模式应用于色度分量。
[0602]
ii.在一个示例中,将相同的alwip帧内预测模式应用于色度分量,并且可以跳过此后的线性插值。
[0603]
iii.在一个示例中,使用子采样矩阵和/或偏移矢量将相同的alwip帧内预测模式应用于色度分量。
[0604]
d.在一个示例中,不同分量的alwip帧内预测模式的数量可以不同。
[0605]
i.例如,对于相同的块宽度和高度,色度分量的alwip帧内预测模式的数量可以小于亮度分量的数量。
[0606]
alwip的适用性
[0607]
14.提出可以信令通知是否可以应用alwip。
[0608]
a.例如,可以在序列级(例如,在sps中)、在图片级(例如,在pps或图片标头中)、在条带级(例如,在条带标头中)、在片组级(例如,在片组标头中)、在片级、在ctu行级或在ctu级中将其信令通知。
[0609]
b.例如,如果不能应用alwip,则可不信令通知intra_lwip_flag并将其推断为0。
[0610]
15.提出是否可以应用alwip可以取决于块宽度(w)和/或高度(h)。
[0611]
c.例如,如果w>=t1(或w>t1)且h>=t2(或h>t2),则可不应用alwip。例如,t1=t2=32;
[0612]
i.例如,如果w<=t1(或w<t1)且h<=t2(或h<t2)。则可不应用alwip。例如,t1=t2=32;
[0613]
d.例如,如果w>=t1(或w>t1)或h>=t2(或h>t2),则可不应用alwip。例如,t1=t2=32;
[0614]
i.例如,如果w<=t1(或w<t1)或h<=t2(或h<t2),则可不应用alwip。例如,t1=t2=32,或t1=t2=8;
[0615]
e.例如,如果w h>=t(或w*h>t),则可不应用alwip。例如,t=256;
[0616]
i.例如,如果w h<=t(或w h<t),则可不应用alwip。例如,t=256;
[0617]
f.例如,如果w*h>=t(或w*h>t),则可不应用alwip。例如,t=256
[0618]
i.例如,如果w*h<=t(或w*h<t),则可不应用alwip。例如,t=256
[0619]
g.例如,如果不能应用alwip,则可以不信令通知intra_lwip_flag并将其推断为0。
[0620]
alwip中的计算问题
[0621]
16.提出alwip中涉及的任何移位操作都只能左移位或右移位s数量,其中s必须大于或等于0。
[0622]
a.在一个示例中,当s等于0或大于0时,右移位操作可以不同。
[0623]
i.在一个示例中,upsbdryx[x]应该计算为:
[0624]
当udwn>1时,当udwn>1时,并且
[0625]
当udwn等于1时,
[0626]
b.在一个示例中,upsbdryx[x]应该计算为:
[0627][0628]
17.提出在alwip的上采样处理中,应将结果取整到零或远离零。
[0629]
a.在一个示例中,
[0630]
predsamples[xhor dx][yhor]=((uphor
‑
dx)*predsamples[xhor][yhor] dx*predsamples[xhor uphor][yhor] offsethor)/uphor
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x39)
[0631]
并且
[0632]
predsamples[xver][yver dy]=((upver
‑
dy)*predsamples[xver][yver] dy*predsamples[xver][yver upver] offsetver)/upver
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8
‑
x40)
[0633]
其中offsethor和offsetver是整数。例如,offsethor=uphor/2并且offsetver=upver/2。
[0634]
与其他编解码工具的交互
[0635]
18.提出alwip可用于ciip编解码块。
[0636]
a.在一个示例中,在ciip编解码块中,可以显式地信令通知是使用alwip帧内预测模式还是诸如平面(planar)的常规帧内预测模式来生成帧内预测信号。
[0637]
b.在一个示例中,可以隐式地推断是使用alwip帧内预测模式还是诸如平面(planar)的常规帧内预测模式来生成帧内预测信号。
[0638]
i.在一个示例中,在ciip编解码块中决不能使用alwip帧内预测模式。
[0639]
1)可替代地,在ciip编解码块中决不能使用常规帧内预测。
[0640]
ii.在一个示例中,可以从临近块的信息推断是使用alwip帧内预测模式还是诸如平面(planar)的常规帧内预测模式来生成帧内预测信号。
[0641]
19.提出可将在cclm模式下用于对临近亮度样点进行下采样的全部或部分流程用于在alwip模式下对临近样点进行下采样。
[0642]
a.可替代地,可将在alwip模式下用于对临近亮度样点进行下采样的全部或部分流程用于在cclm模式下对临近样点进行下采样。
[0643]
b.当在cclm处理和alwip处理中使用下采样流程时,可以用不同的参数/自变量调用它。
[0644]
c.在一个示例中,cclm处理中的下采样方法(诸如选择临近亮度位置、下采样滤波器)可用于alwip处理。
[0645]
d.用于对临近亮度样点进行下采样的流程至少包括对下采样位置、下采样滤波器的选择、取整和剪切操作。
[0646]
20.提出用alwip模式编解码的块不能应用rst或/和二次变换或/和旋转变换或/和不可分离二次变换(nsst)。
[0647]
a.在一个示例中,是否可以应用这种约束可以取决于块的维度信息,例如,与(15)中描述的条件相同。
[0648]
b.可替代地,当应用rst或/和二次变换或/和旋转变换或/和nsst时,可以不允许使用alwip模式。
[0649]
c.可替代地,用alwip模式编解码的块可以应用rst或/和二次变换或/和旋转变换或/和不可分离二次变换(nsst)。
[0650]
i.在一个示例中,变换矩阵的选择可以取决于alwip帧内预测模式。
[0651]
ii.在一个示例中,变换矩阵的选择可以取决于从alwip帧内预测模式转换而来的常规帧内预测模式。
[0652]
iii.在一个示例中,变换矩阵的选择可取决于从alwip帧内预测模式转换而来的常规帧内预测模式的分类。
[0653]
21.提出了用alwip模式编解码的块不能应用基于块的dpcm(bdpcm)或残差rdpcm。
[0654]
a.可替代地,当应用bdpcm或rdpcm时,可以不允许使用alwip模式。
[0655]
22.提出了用alwip方式编码的块只能用dct
‑
ii作为变换。
[0656]
a.在一个示例中,变换矩阵索引的信令总是被跳过。
[0657]
b.可替代地,提出用于alwip模式编解码的块的变换可以隐式地导出,而不是显式地信令通知。例如,可以按照jvet
‑
m0303中提出的方式来选择变换。
[0658]
c.可替代地,提出用alwip模式编解码的块只能使用变换跳过。
[0659]
i.另外,可替代地,当使用alwip时,跳过对使用变换跳过的指示的信令通知。
[0660]
d.在一个示例中,可以在变换矩阵的指示之后有条件地信令通知alwip模式信息(诸如启用/禁用、预测模式索引)。
[0661]
i.在一个示例中,对于给定的变换矩阵(诸如变换跳过或dct
‑
ii),可以信令通知alwip模式信息的指示。
[0662]
ii.另外,可替代地,对于一些预定义的变换矩阵,可以跳过alwip模式信息的指
示。
[0663]
23.当选择的变换是模式相关的时,将用alwip模式编解码的块视为是用从alwip帧内预测模式转换的常规帧内预测编解码的。
[0664]
24.alwip模式不能使用变换跳过。
[0665]
a.例如,在这种情况下,不需要进一步信令通知变换跳过的使用的指示。
[0666]
b.可替代地,当应用变换跳过时,可以不允许alwip模式。
[0667]
i.例如,在这种情况下,当应用变换跳过时,不需要信令通知alwip模式信息。
[0668]
25.在滤波处理中(诸如去方块滤波器、采样自适应偏移(sao)、自适应环路滤波器(alf)),如何选择滤波器和/或是否对样点进行滤波可以由alwip的使用来决定。
[0669]
26.未滤波的临近样点可用于alwip模式。
[0670]
a.可替代地,滤波后的临近样点可以在alwip模式中使用。
[0671]
b.在一个示例中,滤波后的临近样点可用于下采样,并且未滤波的临近样点可用于上采样。
[0672]
c.在一个示例中,未滤波的临近样点可用于下采样,并且滤波后的临近样点可用于上采样。
[0673]
d.在一个示例中,滤波后的左侧临近样点可用于上采样,并且未滤波的上方临近样点可用于上采样。
[0674]
e.在一个示例中,未滤波的左侧临近样点可用于上采样,并且滤波后的上方临近样点可用于上采样。
[0675]
f.在一个示例中,是使用滤波后的还是未滤波的临近样点可以取决于alwip模式。
[0676]
i.在一个示例中,alwip模式可以转换为传统的帧内预测模式,并且是使用滤波后的还是未滤波的临近样点可以取决于转换后的传统帧内预测模式。例如,这种决定与传统的帧内预测模式相同。
[0677]
ii.可替代地,可以信令通知alwip模式是使用滤波后的还是未滤波的临近样点。
[0678]
g.在一个示例中,滤波后的样点可以与传统帧内预测模式相同地生成。
[0679]
27.使用哪些矩阵或/和偏移矢量可以取决于整形(reshaping)(又称为lmcs,亮度映射和色度缩放)信息。
[0680]
a.在一个示例中,当整形打开和关闭时,可以使用不同的矩阵或/和偏移矢量。
[0681]
b.在一个示例中,可以针对不同的整形参数使用不同的矩阵或/和偏移矢量。
[0682]
c.在一个示例中,可以始终在原始域中执行alwip。
[0683]
i.例如,在用于alwip之前将临近样点映射到原始域(如果应用了整形)。
[0684]
28.当应用整形时,可以禁用alwip。
[0685]
a.可替代地,当启用alwip时可以禁用整形。
[0686]
b.在一个示例中,当应用整形时,可以对hdr(高动态范围)内容禁用alwip。
[0687]
29.alwip中使用的矩阵可以取决于样点比特深度。
[0688]
30.提出将由alwip生成的预测视为中间信号,该中间信号将被处理以获得要进一步使用的预测信号。
[0689]
a.在一个示例中,位置相关帧内预测组合(pdpc)可应用于由alwip生成的预测,以生成要进一步使用的预测信号。
[0690]
b.在一个示例中,由alwip生成的边界样点预测可与临近样点一起滤波,以生成要进一步使用的预测信号。
[0691]
31.提出在alwip的上采样处理中可以使用双线性插值滤波器以外的插值滤波器。
[0692]
a.在一个示例中,可在alwip的上采样处理中使用4抽头插值滤波器。i.例如,可在alwip的上采样处理中使用用于对色度分量进行运动补偿的vvc中的4抽头插值滤波器。
[0693]
ii.例如,可在alwip的上采样处理中使用用于进行角度帧内预测的vvc中的4抽头插值滤波器。
[0694]
iii.例如,可在alwip的上采样处理中使用用于对亮度分量进行运动补偿的vvc中的8抽头插值滤波器。
[0695]
可将上面描述的示例合并到下面描述的方法的上下文,例如方法1100到1400、以及2000到3800,这些方法可以在视频编码器和/或解码器处实现。
[0696]
图11示出了用于视频处理的示例性方法的流程图。方法1100包括:在步骤1102处,确定当前视频块是使用仿射线性加权帧内预测(alwip)模式编解码的。
[0697]
方法1100包括:在步骤1104处,基于所述确定,基于非alwip帧内模式的mpm列表的至少一部分来构造alwip模式的最可能模式(mpm)列表的至少一部分。
[0698]
方法1100包括:在步骤1106处,基于alwip模式的mpm列表执行当前视频块和当前视频块的比特流表示之间的转换。
[0699]
在一些实施例中,alwip模式的mpm列表的尺寸与非alwip帧内模式的mpm列表的尺寸相同。在一个示例中,alwip模式的mpm列表的尺寸是6。
[0700]
在一些实施例中,方法1100还包括:将默认模式插入到alwip模式的mpm列表的步骤。在一个示例中,在基于非alwip帧内模式的mpm列表的alwip模式的mpm列表的部分之前插入默认模式。在另一个示例中,在基于非alwip帧内模式的mpm列表的alwip模式的mpm列表的部分之后插入默认模式。在又一个示例中,以与基于非alwip帧内模式的mpm列表的alwip模式的mpm列表的部分交叉的方式插入默认模式。
[0701]
在一些实施例中,构造alwip模式的mpm列表和非alwip帧内模式的mpm列表是基于一个或多个临近块。
[0702]
在一些实施例中,构造alwip模式的mpm列表和非alwip帧内模式的mpm列表基于当前视频块的高度或宽度。
[0703]
在一些实施例中,构造alwip模式的mpm列表是基于第一组参数,该第一组参数不同于用于构造非alwip帧内模式的mpm列表的第二组参数。
[0704]
在一些实施例中,方法1100还包括:确定当前视频块的临近块已用alwip模式编解码的步骤,并且在构造非alwip帧内模式的mpm列表时,指定临近块不可用。
[0705]
在一些实施例中,方法1100还包括:确定当前视频块的临近块已用非alwip帧内模式编解码的步骤,并且在构造alwip模式的mpm列表时,指定临近块不可用。
[0706]
在一些实施例中,非alwip帧内模式基于常规帧内模式、多参考行(mrl)帧内预测模式或帧内子分割(isp)工具。
[0707]
图12示出了用于视频处理的示例性方法的流程图。方法1200包括:在步骤1210处,确定当前视频块的亮度分量是使用仿射线性加权帧内预测(alwip)模式编解码的。
[0708]
方法1200包括:在步骤1220处,基于所述确定来推断色度帧内模式。
[0709]
方法1200包括:在步骤1230处,基于色度帧内模式执行当前视频块和当前视频块的比特流表示之间的转换。
[0710]
在一些实施例中,亮度分量覆盖色度分量的预定色度样点。在一个示例中,预定色度样点是色度分量的左上样点或中心样点。
[0711]
在一些实施例中,推断出的色度帧内模式是dm模式。
[0712]
在一些实施例中,推断出的色度帧内模式是alwip模式。
[0713]
在一些实施例中,将alwip模式应用于当前视频块的一个或多个色度分量。
[0714]
在一些实施例中,将alwip模式的不同矩阵或偏移矢量应用于当前视频块的不同颜色分量。在一个示例中,不同的矩阵或偏移矢量是为cb和cr分量联合预定义的。在另一个示例中,cb和cr分量是级联的。在另一个示例中,cb和cr分量是交错的。
[0715]
图13示出了用于视频处理的示例性方法的流程图。方法1300包括:在步骤1302处,确定当前视频块是使用仿射线性加权帧内预测(alwip)模式编解码的。
[0716]
方法1300包括:在步骤1304处,基于所述确定执行当前视频块和当前视频块的比特流表示之间的转换。
[0717]
在一些实施例中,所述确定基于在序列参数集(sps)、图片参数集(pps)、条带标头、片组标头、片标头、编解码树单元(ctu)行或ctu区域中的信令。
[0718]
在一些实施例中,所述确定基于当前视频块的高度(h)或宽度(w)。在一个示例中,w>t1或h>t2。在另一个示例中,w≥t1或h≥t2。在另一个示例中,w<t1或h<t2。在另一个示例中,w≤t1或h≤t2。在另一个示例中,t1=32并且t2=32。
[0719]
在一些实施例中,所述确定基于当前视频块的高度(h)或宽度(w)。在一个示例中,w h≤t。在另一个示例中,w h≥t。在另一个示例中,w
×
h≤t。在又一个示例中,w
×
h≥t。在另一个示例中,t=256。
[0720]
图14示出了用于视频处理的示例性方法的流程图。方法1400包括:在步骤1402处,确定当前视频块是使用不同于仿射线性加权帧内预测(alwip)模式的编码模式编解码的。
[0721]
方法1400包括:在步骤1404处,基于所述确定执行当前视频块和当前视频块的比特流表示之间的转换。
[0722]
在一些实施例中,编码模式是组合帧内帧间预测(ciip)模式,并且方法1400还包括:在alwip模式和常规帧内预测模式之间进行选择的步骤。在一个示例中,执行选择是基于当前视频块的比特流表示中的显式信令。在另一示例中,执行选择是基于预定规则。在又一示例中,当当前视频块是使用ciip模式编解码的时,预定规则总是选择alwip模式。在又一示例中,当当前视频块是使用ciip模式编解码的时,预定规则总是选择常规帧内预测模式。
[0723]
在一些实施例中,编码模式是交叉分量线性模型(cclm)预测模式。在一个示例中,alwip模式的下采样流程基于cclm预测模式的下采样流程。在另一示例中,alwip模式的下采样流程基于第一组参数,并且其中cclm预测模式的下采样流程基于不同于第一组参数的第二组参数。在又一示例中,alwip模式或cclm预测模式的下采样流程包括下采样位置的选择、下采样滤波器的选择、取整操作或剪切操作中的至少一个。
[0724]
在一些实施例中,方法1400还包括:应用缩减的二次变换(rst)、二次变换、旋转变换或不可分离二次变换(nsst)中的一个或多个的步骤。
[0725]
在一些实施例中,方法1400还包括:应用基于块的差分脉冲编码调制(dpcm)或残差dpcm的步骤。
[0726]
6.所公开技术的实施例
[0727]
图15是视频处理装置1500的框图。装置1500可用于实现本文所述的一种或多种方法。装置1500可以被实现在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置1500可以包括一个或多个处理器1502、一个或多个存储器1504和视频处理硬件1506。处理器1502可以被配置成实现本文档中描述的一个或多个方法(包括但不限于方法1100至1400、和2000至3800)。存储器1504可用于存储用于实现本文所述的方法和技术的数据和代码。视频处理硬件1506可用于在硬件电路中实现本文中描述的一些技术。
[0728]
在一些实施例中,可以使用如关于图15所述的在硬件平台上实现的装置来实现视频编解码方法。
[0729]
图16是示出了可在其中实现本文公开的各种技术的示例视频处理系统1600的框图。各种实现可以包括系统1600的部分或全部组件。系统1600可以包括用于接收视频内容的输入1602。视频内容可以原始或未压缩格式(例如,8或10比特多分量像素值)接收,或者可以压缩或编码格式接收。输入1602可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等有线接口和诸如wi
‑
fi或蜂窝接口的无线接口。
[0730]
系统1600可以包括编解码组件1604,其可以实现本文中描述的各种编码或解码方法。编解码组件1604可以降低从输入1602到编解码组件1604的输出的视频的平均比特率,以产生视频的编码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1604的输出可以存储,或者通过由组件1606表示的连接的通信来发送。组件1608可以使用在输入1602处接收的视频的存储或通信比特流(或编码)表示来生成发送到显示接口1610的像素值或可显示视频。从比特流表示生成用户可视视频的处理有时称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且将由解码器执行相应的解码工具或反转编码结果的操作。
[0731]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或显示端口等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文中描述的技术可以实施在各种电子设备中,例如能够执行数字数据处理和/或视频显示的移动电话、膝上型计算机、智能手机或其他设备。
[0732]
所公开技术的一些实施例包括:作出启用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被启用时,编码器将在视频块的处理中使用或实现该工具或模式,但不一定基于该工具或模式的使用来修改产生的比特流。也就是说,当基于决策或确定启用视频处理工具或模式时,从视频块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当视频处理工具或模式被启用时,解码器将在知晓已经基于视频处理工具或模式修改了比特流的情况下处理比特流。也就是说,将使用基于决策或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
[0733]
所公开技术的一些实施例包括:作出禁用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被禁用时,编码器将不在将视频块转换到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当视频处理工具或模式被禁用时,解码
器将在知晓未使用基于所述决策或确定而启用的视频处理工具或模式修改比特流的情况下来处理比特流。
[0734]
图17是示出可利用本发明的技术的示例性视频编解码系统100的框图。如图17所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成可称为视频编解码设备的编码视频数据。目的地设备120可以对源设备110生成的编码视频数据进行解码,源设备110可以被称为视频解码设备。源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0735]
视频源112可以包括诸如视频捕获设备、从视频内容提供商接收视频数据的接口和/或用于生成视频数据的计算机图形系统等源,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编码表示的比特序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编码表示。相关数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发射机。编码后的视频数据可以通过网络130a经由i/o接口116直接发送到目的地设备120。编码后的视频数据还可以存储到存储介质/服务器130b上以供目的地设备120访问。
[0736]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0737]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可从源设备110或存储介质/服务器130b获取经编码的视频数据。视频解码器124可对经编码的视频数据进行解码。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目的地设备120集成,或者可以是被配置成在与外部显示设备接口的目的地设备120的外部。
[0738]
视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(hevc)标准、多功能视频编解码(vvm)标准和其他当前和/或进一步的标准。
[0739]
图18是示出视频编码器200的示例的框图,视频编码器200可以是图17所示的系统100中的视频编码器114。
[0740]
视频编码器200可以被配置成执行本公开的任何或所有技术。在图18的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0741]
视频编码器200的功能组件可以包括分割单元201、可包括模式选择单元203的预测单元202、运动估计单元204、运动补偿单元205和帧内预测单元206、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编解码单元214。
[0742]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以在ibc模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
[0743]
此外,一些组件(诸如运动估计单元204和运动补偿单元205)可以高度集成,但是为了解释的目的,在图18的示例中是分开表示的。
[0744]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0745]
模式选择单元203可以例如基于错误结果选择编解码模式(帧内或帧间)中的一
个,并将得到的帧内或帧间编解码块提供给残差生成单元207,以生成残差块数据,并且提供给重构单元212以重构编码块以用作参考图片。在一些示例中,模式选择单元203可以选择其中预测基于帧间预测信号和帧内预测信号的组合帧内帧间(ciip)模式。在帧间预测的情况下,模式选择单元203还可以为块的运动矢量(例如,子像素或整数像素精度)选择分辨率。
[0746]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将缓冲器213中的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的图片(不同于与当前视频块相关联的图片)的运动信息和解码样点来确定当前视频块的预测视频块。
[0747]
例如,取决于当前视频块是在i条带、p条带还是b条带中,运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作。
[0748]
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元204可以生成指示包含参考视频块和指示当前视频块和参考视频块之间的空间位移的运动矢量的列表0或列表1中的参考图片的参考索引。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0749]
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0的参考图片中搜索当前视频块的参考视频块,并且也可以在列表1的参考图片中搜索当前视频的另一参考视频块。然后,运动估计单元204可以生成指示包含参考视频块和指示参考视频块和当前视频块之间的空间位移的运动矢量的列表0或列表1中的参考图片的参考索引。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0750]
在一些示例中,运动估计单元204可以输出用于解码器的解码处理的全套运动信息。
[0751]
在一些示例中,运动估计单元204可以不输出当前视频的全套运动信息。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与临近视频块的运动信息足够相似。
[0752]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器300指示当前视频块与另一视频块具有相同的运动信息。
[0753]
在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一个视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量与指示视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0754]
如上所述,视频编码器200可以预测地信令通知运动矢量。可由视频编码器200实现的预测信令技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令。
[0755]
帧内预测单元206可以对当前视频块进行帧内预测。当帧内预测单元206对当前视频块进行帧内预测时,帧内预测单元206可以基于相同图片中的其他视频块的解码样点生
成当前视频块的预测数据。当前视频块的预测数据可以包括预测的视频块和各种语法元素。
[0756]
残差生成单元207可以通过从当前视频块减去(例如,由减号指示)当前视频块的预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
[0757]
在其他示例中,例如在跳过模式下,当前视频块当前视频块可以没有残差数据,并且残差生成单元207可以不执行减法操作。
[0758]
变换处理单元208可以通过对与当前视频块相关联的残差视频块应用一个或多个变换来为当前视频块生成一个或多个变换系数视频块。
[0759]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0760]
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到由预测单元202生成的一个或多个预测视频块的对应样点中,以产生与当前块相关联的重构视频块以存储在缓冲器213中。
[0761]
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
[0762]
熵编解码单元214可以从视频编码器200的其它功能组件接收数据。当熵编解码单元214接收数据时,熵编解码单元214可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
[0763]
图19是示出可以是图17所示的系统100中的视频解码器114的视频解码器300的示例的框图。
[0764]
视频解码器300可以被配置成执行本公开的任何或所有技术。在图19的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
[0765]
在图19的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与关于视频编码器200描述的编码处理(图18)相反的解码处理。
[0766]
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编码的视频数据(例如,视频数据的编码块)。熵解码单元301可以解码熵编码的视频数据,并且运动补偿单元302可以从熵解码的视频数据中确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。例如,运动补偿单元302可以通过执行amvp和merge模式来确定这些信息。
[0767]
运动补偿单元302可以通过基于插值滤波器进行插值来产生运动补偿块。语法元素中可以包括以子像素精度使用的插值滤波器的标识符。
[0768]
运动补偿单元302可以使用视频编码器20在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据接收到的语法信息来确定视
频编码器200使用的插值滤波器,并且使用插值滤波器来产生预测块。
[0769]
运动补偿单元302可以使用一些语法信息来确定用于对编码的视频序列的帧和/或条带进行编码的块的尺寸、描述如何对编码的视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分割进行编码的模式、每个帧间编码块的一个或多个参考帧(和参考帧列表)、以及用于解码编码的视频序列的其他信息。
[0770]
帧内预测单元303可以使用例如在比特流中接收到的帧内预测模式来从空域临近块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化视频块系数进行逆量化(即去量化)。逆变换单元303应用逆变换。
[0771]
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的相应预测块相加以形成解码块。如果需要,还可以应用去方块滤波器来滤波解码块以去除块性伪影。解码的视频块随后被存储在缓冲器307中,其提供用于后续运动补偿/帧内预测的参考块,并且还产生解码的视频以在显示设备上呈现。
[0772]
在一些实施例中,通过对视频的先前编解码样点执行边界下采样操作(或平均操作),然后执行矩阵矢量乘法运算,并且选择性地(或任选地)接着进行上采样操作(或线性插值操作),使用alwip模式或mip模式来计算当前视频块的预测块。在一些实施例中,通过对视频的先前编解码样点执行边界下采样操作(或平均操作),然后执行矩阵矢量乘法运算,使用alwip模式或mip模式来计算当前视频块的预测块。在一些实施例中,alwip模式或mip模式也可以在执行矩阵矢量乘法操作之后执行上采样操作(或线性插值操作)。
[0773]
图20示出了用于基于矩阵的帧内预测的示例方法2000的示例流程图。操作2002包括:基于规则,使用第一过程来为视频的当前视频块和当前视频块的编码表示之间的转换生成第一最可能模式(mpm)列表。操作2004包括:使用第一mpm列表执行当前视频块和当前视频块的编码表示之间的转换,其中当前视频块的转换使用基于矩阵的帧内预测(mip)模式,在mip模式中,通过在视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块,其中,所述规则指定用于生成第一mpm列表的第一过程与用于生成第二mpm列表的第二过程相同,所述第二mpm列表用于使用不同于mip模式的非mip帧内模式编解码的视频的其它视频块的转换,并且其中,基于第二mpm列表的至少一部分生成第一mpm列表的至少一部分。
[0774]
在方法2000的一些实施例中,mip模式的第一mpm列表的尺寸与非mip帧内模式的第二mpm列表的尺寸相同。在方法2000的一些实施例中,mip模式的第一mpm列表和非mip帧内模式的第二mpm列表的尺寸是6。在方法2000的一些实施例中,在构造mip模式的第一mpm列表之前构造非mip帧内模式的第二mpm列表。在方法2000的一些实施例中,非mip帧内模式的第二mpm列表的部分或全部被转换为添加到mip模式的第一mpm列表的部分中的mpm。
[0775]
在方法2000的一些实施例中,通过修剪mpm,将mpm的子集添加到mip模式的第一mpm列表的部分中。在一些实施例中,方法2000还包括:将默认帧内预测模式添加到mip模式的第一mpm列表。在方法2000的一些实施例中,在基于非mip帧内模式的第二mpm列表的部分的mip模式的第一mpm列表的部分之前,将默认帧内预测模式添加到mip模式的第一mpm列表。在方法2000的一些实施例中,在基于非mip帧内模式的第二mpm列表的部分的mip模式的第一mpm列表的部分之后,将默认帧内预测模式添加到mip模式的第一mpm列表。在方法2000的一些实施例中,以与基于非mip帧内模式的第二mpm列表的部分的mip模式的第一mpm列表
的部分交错的方式,将默认帧内预测模式添加到mip模式的第一mpm列表中。在方法2000的一些实施例中,对于多个类型的视频块,默认帧内预测模式是相同的。在方法2000的一些实施例中,基于当前视频块的编解码信息来确定默认帧内预测模式。在方法2000的一些实施例中,编解码信息包括临近视频块的可用性、临近视频块的模式信息或当前视频块的块维度。
[0776]
在方法2000的一些实施例中,将非mip帧内模式的第二mpm列表中的一个帧内预测模式转换为其对应的mip模式,以获得添加到mip模式的第一mpm列表中的转换的mip模式。在方法2000的一些实施例中,将非mip帧内模式的第二mpm列表中的所有帧内预测模式转换为其对应的mip模式,以获得添加到mip模式的第一mpm列表中的多个转换的mip模式。在方法2000的一些实施例中,将所有帧内预测模式转换为其对应的mip模式,以获得用于为非mip帧内模式构造第二mpm列表的多个转换的mip模式。在方法2000的一些实施例中,所有帧内预测模式包括来自当前视频块的临近视频块的帧内预测模式和默认帧内预测模式。在方法2000的一些实施例中,默认帧内预测模式包括平面模式和直流(dc)模式。
[0777]
在方法2000的一些实施例中,将非mip帧内模式的第二mpm列表中的两个帧内预测模式转换为其对应的mip模式,以获得两个转换的mip模式,并且响应于两个转换的mip模式相同,将两个转换的mip模式中的一个添加到mip模式的第一mpm列表中。在方法2000的一些实施例中,将非mip帧内模式的第二mpm列表中的两个帧内预测模式转换为其对应的mip模式,以获得两个转换的mip模式,并且响应于两个转换的mip模式相同,将两个转换的mip模式中的一个添加到非mip帧内模式的第二mpm列表中。在方法2000的一些实施例中,非mip帧内模式的第二mpm列表包括s个帧内预测模式,并且其中,选择s个帧内预测模式中的k个以包括在mip模式的第一mpm列表中。在方法2000的一些实施例中,k是3,并且s是6。在方法2000的一些实施例中,选择非mip帧内模式的第二mpm列表中的前k个帧内预测模式,以包括在mip模式的第一mpm列表中。在方法2000的一些实施例中,基于当前视频块的一个或多个临近视频块导出或构造mip模式的第一mpm列表和非mip帧内模式的第二mpm列表。在方法2000的一些实施例中,基于位于当前视频块左侧的相同临近视频块导出或构造mip模式的第一mpm列表和非mip帧内模式的第二mpm列表。
[0778]
在方法2000的一些实施例中,位于左侧的相同临近视频块直接位于当前视频块的左侧,并且与当前视频块对齐。在方法2000的一些实施例中,相同临近视频块位于当前视频块的左侧和下方。在方法2000的一些实施例中,基于相同临近视频块导出或构造mip模式的第一mpm列表和非mip帧内模式的第二mpm列表,其中相同临近视频块位于当前视频块左侧的最下方位置、或相同临近视频块位于当前视频块上方的最右侧位置。在方法2000的一些实施例中,基于位于当前视频块上方的相同临近视频块导出或构造mip模式的第一mpm列表和非mip帧内模式的第二mpm列表。
[0779]
在方法2000的一些实施例中,位于上方的相同临近视频块直接位于当前视频块的上方,并且与当前视频块对齐。在方法2000的一些实施例中,相同临近视频块位于当前视频块的左侧和上方。在方法2000的一些实施例中,基于相同临近视频块导出或构造mip模式的第一mpm列表和非mip帧内模式的第二mpm列表,其中相同临近视频块位于当前视频块上方的最左侧位置、或相同临近视频块位于当前视频块左侧的最上方的位置。在方法2000的一些实施例中,非mip帧内模式基于帧内预测模式、多参考行(mrl)帧内预测模式或帧内子分
割(isp)工具。在方法2000的一些实施例中,mip模式的第一mpm列表还基于当前视频块的高度或宽度。
[0780]
在方法2000的一些实施例中,mip模式的第一mpm列表还基于当前视频块的临近视频块的高度或宽度。在方法2000的一些实施例中,mip模式的第一mpm列表是基于不同于用于构造非mip帧内模式的第二mpm列表的第二组参数的第一组参数构造的。在方法2000的一些实施例中,非mip帧内模式的第二mpm列表包括s个帧内预测模式,并且其中,导出s个帧内预测模式中的k个,以包括在mip模式的第一mpm列表中。在方法2000的一些实施例中,k是3,并且s是6。
[0781]
在方法2000的一些实施例中,导出非mip帧内模式的第二mpm列表中的前k个帧内预测模式,以包括在mip模式的第一mpm列表中。在方法2000的一些实施例中,mip模式的第一mpm列表中列出的第一模式不同于非mip帧内模式的第二mpm列表中列出的第一模式。在方法2000的一些实施例中,mip模式的第一mpm列表中列出的第一模式是第一模式,并且其中,非mip帧内模式的第二mpm列表中列出的第一模式是平面(planar)模式。在方法2000的一些实施例中,mip模式的第一mpm列表中的第一模式是从非mip帧内模式的第二mpm列表中的平面(planar)模式转换来的。
[0782]
在方法2000的一些实施例中,mip模式的第一mpm列表包括与非mip帧内模式的第二mpm列表中包括的第二组填充模式不同的的第一组填充模式。在方法2000的一些实施例中,第一组填充模式包括第一模式、第二模式和第三模式,并且其中,第二组填充模式包括直流(dc)模式、垂直模式和水平模式。在方法2000的一些实施例中,基于当前视频块的尺寸,将第一模式、第二模式和第三模式包括在第一组填充模式中。在方法2000的一些实施例中,mip模式的第一mpm列表包括当前视频块的临近视频块的第一组帧内预测模式,非mip帧内模式的第二mpm列表包括当前视频块的临近视频块的第二组帧内预测模式,并且第一组帧内预测模式不同于第二组帧内预测模式。
[0783]
在方法2000的一些实施例中,第二组帧内预测模式包括被转换为包括在第一组帧内预测模式中的mip模式的帧内预测模式。在方法2000的一些实施例中,mip模式的第一mpm列表包括第一组移位的帧内预测模式,非mip帧内模式的第二mpm列表包括第二组移位的帧内预测模式,并且第一组移位的帧内预测模式不同于第二组移位的帧内预测模式。在方法2000的一些实施例中,第一组移位的帧内预测模式包括根据第一公式y k1移位k1的mip模式(y),第二组移位的帧内预测模式包括根据第二公式x k0移位k0的非mip模式(x),并且k1不同于k0。在方法2000的一些实施例中,k1取决于当前视频块的宽度和高度。
[0784]
在一些实施例中,方法2000还包括:执行当前视频块的临近视频块是用非mip帧内模式编解码的第一确定;以及响应于第一确定执行临近视频块不可用于构造mip模式的第一mpm列表的第二确定。
[0785]
在一些实施例中,方法2000还包括:执行当前视频块的临近视频块是用非mip帧内模式编解码的第一确定;并且响应于第一确定执行临近视频块是用预定义的mip帧内预测模式编解码的第二确定,其中,mip模式的第一mpm列表是使用预定义的mip帧内预测模式构造的。在方法2000的一些实施例中,预定义的mip帧内预测模式取决于当前视频块的宽度和/或高度。
[0786]
图21示出了用于基于矩阵的帧内预测的示例方法2100的示例流程图。操作2100包
括:基于规则为视频的当前视频块和当前视频块的编码表示之间的转换生成最可能模式(mpm)列表,其中,所述规则基于当前视频块的临近视频块是否是用基于矩阵的帧内预测(mip)模式编解码的,在mip中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定临近视频块的预测块。操作2104包括:使用mpm列表执行当前视频块和当前视频块的编码表示之间的转换,其中转换将非mip模式应用于当前视频块,并且其中,非mip模式不同于mip模式。
[0787]
在方法2100的一些实施例中,所述规则指定用mip模式编解码的临近视频块被视为不可用于生成非mip编解码的当前视频块的mpm列表。在方法2100的一些实施例中,所述规则指定用mip模式编解码的临近视频块被确定为用预定义的帧内预测模式编解码。在方法2100的一些实施例中,所述规则指定预定义的帧内预测模式包括平面模式。
[0788]
图22示出了用于基于矩阵的帧内预测的示例方法2200的示例流程图。操作2202包括:使用基于矩阵的帧内预测(mip)模式解码在当前视频块的编码表示中编解码的视频的当前视频块,在mip模式中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。操作2204包括:在不在行缓冲器中存储指示当前视频块是否使用mip模式编解码的信息的情况下,更新与解码相关联的行缓冲器。
[0789]
在一些实施例中,方法2200还包括:访问视频的第二视频块,其中第二视频块是在解码当前视频块之前解码的,其中,第二视频块位于与当前视频块的最大编解码单元(lcu)或编解码树单元(ctu)行或ctu区域相比不同的最大编解码单元(lcu)或编解码树单元(ctu)行或ctu区域中,并且在不确定第二视频块是否使用mip模式编解码的情况下,对当前视频块进行解码。在一些实施例中,方法2200还包括:通过确定第二视频块使用非mip帧内模式编解码、而不确定第二视频块是否使用mip模式编解码的情况下,访问第二视频块,其中第二视频块位于与当前视频块的最大编解码单元(lcu)或编解码树单元(ctu)行或ctu区域相比不同的最大编解码单元(lcu)或编解码树单元(ctu)行或ctu区域中;以及基于对第二视频块的访问,解码当前视频块。
[0790]
图23示出了用于基于矩阵的帧内预测的示例方法2300的示例流程图。操作2302包括:执行当前视频块和当前视频块的比特流表示之间的转换,其中当前视频块是使用基于矩阵的帧内预测(mip)模式编解码的,在mip中,通过在视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块,其中在算术编码或解码处理中,在比特流表示中使用最多k个上下文来编码标志,其中,所述标志指示当前视频块是否使用mip模式编解码,并且其中,k大于或等于零。在方法2300的一些实施例中,k是1。在方法2300的一些实施例中,k是4。
[0791]
图24示出了用于基于矩阵的帧内预测的示例方法2400的示例流程图。操作2402包括:为视频的当前视频块和当前视频块的比特流表示之间的转换,生成用基于矩阵的帧内预测(mip)模式编解码的当前视频块的帧内预测模式,在mip中,通过在视频的先前编解码样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性的进行上采样操作来确定当前视频块的预测块。操作2404包括:基于当前视频块是否使用mip模式编解码来确定用于存储指示帧内预测模式的信息的规则。操作2406包括:根据所述规则执行转换,其中所述规则定义帧内预测模式的语法元素存储在当前视频块的比特流表示中,并且其中,所
述规则定义当前视频块的mip模式的模式索引不存储在比特流表示中。
[0792]
在方法2400的一些实施例中,mip模式的模式索引与帧内预测模式相关联。在方法2400的一些实施例中,所述规则定义比特流表示不包括指示当前视频块使用mip模式编解码的标志。在方法2400的一些实施例中,所述规则定义比特流表示不包括指示与当前视频块相关联的mip模式的信息的存储。在一些实施例中,方法2400还包括:在所述转换之后,执行视频的第二视频块和第二视频块的比特流表示之间的第二转换,其中第二视频块是当前视频块的临近视频块,并且其中,在不确定第二视频块是否使用mip模式编解码的情况下执行第二转换。
[0793]
图25示出了用于基于矩阵的帧内预测的示例方法2500的示例流程图。操作2502包括:执行视频的亮度视频块是使用基于矩阵的帧内预测(mip)模式编解码的第一确定,其中通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定亮度视频块的预测块。操作2504包括:基于所述第一确定,执行要用于色度视频块的色度帧内模式与所述亮度视频块相关联的第二确定。操作2506包括:基于第二确定执行色度视频块和色度视频块的比特流表示之间的转换。
[0794]
在方法2500的一些实施例中,执行第二确定包括:在不取决于信令的情况下确定色度帧内模式是导出模式(dm)。在方法2500的一些实施例中,亮度视频块覆盖色度视频块的预定的对应色度样点。在方法2500的一些实施例中,预定的对应色度样点是色度视频块的左上样点或中心样点。在方法2500的一些实施例中,色度帧内模式包括导出模式(dm)。在方法2500的一些实施例中,dm用于从亮度视频块的第二帧内预测模式导出色度视频块的第一帧内预测模式。在方法2500的一些实施例中,将与亮度视频块相关联的mip模式映射到预定义的帧内模式。
[0795]
在方法2500的一些实施例中,响应于亮度视频块用mip模式编解码的第一确定,导出多个导出模式(dm)。在方法2500的一些实施例中,色度帧内模式包括指定的帧内预测模式。在方法2500的一些实施例中,预定义的帧内模式或指定的帧内模式是平面模式。在方法2500的一些实施例中,色度视频块使用mip模式编解码。在方法2500的一些实施例中,色度视频块使用与第二色度视频块的第二矩阵或第二偏移矢量不同的第一矩阵或第一偏移矢量编解码。在方法2500的一些实施例中,色度视频块是蓝色分量,其中第一矩阵或第一偏移矢量是为蓝色分量预定义的,其中第二色度视频块是红色分量,其中第二矩阵或第二偏移矢量是为红色分量预定义的。
[0796]
在方法2500的一些实施例中,蓝色分量和红色分量级联的。在方法2500的一些实施例中,蓝色分量和红色分量是交错的。在方法2500的一些实施例中,使用与用于亮度视频块的mip模式相同的mip模式来编解码色度视频块。在方法2500的一些实施例中,使用导出模式(dm)来编码色度视频块。在方法2500的一些实施例中,在使用mip模式对色度视频块进行编解码之后,跳过上采样操作(或线性插值技术)。在方法2500的一些实施例中,使用具有子采样矩阵和/或偏移矢量的mip模式来编解码色度视频块。在方法2500的一些实施例中,亮度视频块和色度视频块的mip模式的数量不同。在方法2500的一些实施例中,色度视频块与第一数量的mip模式相关联,亮度视频块与第二数量的mip模式相关联,并且第一数量的mip模式小于第二数量的mip模式。在方法2500的一些实施例中,色度视频块和亮度视频块具有相同的尺寸。
[0797]
图26示出了用于基于矩阵的帧内预测的示例方法2600的示例流程图。操作2602包括:执行视频的当前视频块和当前视频块的编码表示之间的转换,其中,转换基于是否使用基于矩阵的帧内预测(mip)模式对当前视频块进行编解码的确定(或基于确定),在mip中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。
[0798]
在方法2600的一些实施例中,响应于要用mip模式对当前视频块进行编码的确定,在编码表示中包括语法元素,并且语法元素指示使用mip模式对当前视频块进行编解码。在方法2600的一些实施例中,编码表示包括指示为当前视频块启用或禁用mip模式的语法元素,并且其中,所述语法元素指示允许或禁止用mip模式对当前视频块进行编解码。在方法2600的一些实施例中,响应于不用mip模式对当前视频块进行编解码的确定,在编码表示中不包括语法元素,并且语法元素指示mip模式是否用于当前视频块。
[0799]
在方法2600的一些实施例中,将指示启用mip模式的第二语法元素进一步包括在序列参数集(sps)、图片参数集(pps)、条带标头、片组标头、片标头、编解码树单元(ctu)行或ctu区域中。在方法2600的一些实施例中,是否将mip模式用于转换的确定基于当前视频块的高度(h)和/或宽度(w)。在方法2600的一些实施例中,响应于w≥t1且h≥t2,确定当前视频块不使用mip模式进行编码。在方法2600的一些实施例中,响应于w≤t1且h≤t2,确定当前视频块不使用mip模式进行编解码。在方法2600的一些实施例中,响应于w≥t1或h≥t2,确定当前视频块不使用mip模式进行编码。在方法2600的一些实施例中,响应于w≤t1或h≤t2,确定当前视频块不使用mip模式进行编解码。在方法2600的一些实施例中,t1=32并且t2=32。在方法2600的一些实施例中,响应于w h≥t,确定当前视频块不使用mip模式进行编解码。在方法2600的一些实施例中,响应于w h≤t,确定当前视频块不使用mip模式进行编解码。在方法2600的一些实施例中,响应于w
×
h≥t,确定当前视频块不使用mip模式进行编解码。在方法2600的一些实施例中,响应于w
×
h≤t,确定当前视频块不使用mip模式进行编解码。在方法2600的一些实施例中,t=256。
[0800]
图27a示出了用于基于矩阵的帧内预测的示例视频编码方法2700a的示例流程图。操作2702a包括:根据规则,为将视频的当前视频块编码成当前视频块的比特流表示,确定是否使用基于矩阵的帧内预测(mip)模式和不同于mip模式的编码模式来编码当前视频块,其中,mip模式包括:通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。操作2704a包括:基于确定将当前视频块的编码表示添加到比特流表示中。
[0801]
图27b示出了用于基于矩阵的帧内预测的示例视频解码方法2700b的示例流程图。操作2702b包括:确定使用基于矩阵的帧内预测(mip)模式和不同于mip模式的编码模式来将视频的当前视频块编码在比特流表示中,其中mip模式包括:通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。操作2704b包括:通过解析和解码比特流表示来生成当前视频块的解码表示。
[0802]
在方法2700a和/或2700b的一些实施例中,编解码模式是组合帧内帧间预测(ciip)模式,并且其中,该方法还包括:通过在mip模式和帧内预测模式之间进行选择来为当前视频块生成帧内预测信号。在方法2700a和/或2700b的一些实施例中,进行选择基于当
前视频块的比特流表示中的信令。在方法2700a和/或2700b的一些实施例中,进行选择基于预定规则。在方法2700a和/或2700b的一些实施例中,预定规则响应于当前视频块使用ciip模式编解码而选择mip模式。在方法2700a和/或2700b的一些实施例中,预定规则响应于当前视频块使用ciip模式编解码而选择帧内预测模式。在方法2700a和/或2700b的一些实施例中,预定规则响应于当前视频块使用ciip模式编解码而选择平面(planar)模式。在方法2700a和/或2700b的一些实施例中,进行选择基于与当前视频块的临近视频块相关联的信息。
[0803]
在方法2700a和/或2700b的一些实施例中,编解码模式是交叉分量线性模型(cclm)预测模式。在方法2700a和/或2700b的一些实施例中,用于在mip模式下对当前视频块的临近样点进行下采样的第一下采样过程使用对当前视频块的临近亮度样点进行下采样的cclm预测模式的第二下采样过程中的至少一些。在方法2700a和/或2700b的一些实施例中,用于在cclm预测模式下对当前视频块的临近样点进行下采样的第一下采样过程使用对当前视频块的临近亮度样点进行下采样的mip预测模式的第二下采样过程中的至少一些。在方法2700a和/或2700b的一些实施例中,mip模式的第一下采样过程基于第一组参数,并且cclm预测模式的第一下采样过程基于不同于第一组参数的第二组参数。
[0804]
在方法2700a和/或2700b的一些实施例中,mip模式的第一下采样过程和cclm预测模式的第二下采样过程包括选择临近亮度位置或选择下采样滤波器。在方法2700a和/或2700b的一些实施例中,使用对下采样位置的选择、对下采样滤波器的选择、取整操作或剪切操作中的至少一个来对临近亮度样点进行下采样。在方法2700a和/或2700b的一些实施例中,所述规则定义不将基于块的差分脉冲编码调制(bdpcm)或残差dpcm应用于用mip模式编解码的当前视频块。在方法2700a和/或2700b的一些实施例中,所述规则定义响应于应用基于块的差分脉冲编码调制(bdpcm)或残差dpcm,而不允许将mip模式应用于当前视频块。
[0805]
图28示出了用于基于矩阵的帧内预测的示例方法2800的示例流程图。操作2802包括:确定在视频和当前视频块的编码表示之间的转换中环路滤波器对视频的当前视频块的重构块的适用性,其中,当前视频块使用基于矩阵的帧内预测(mip)模式编解码,在mip模式中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地进行上采样操作来确定当前视频块的预测块。操作2804包括:根据所述确定处理当前视频块。
[0806]
在方法2800的一些实施例中,环路滤波器包括去方块滤波器。在方法2800的一些实施例中,环路滤波器包括采样自适应偏移(sao)。在方法2800的一些实施例中,环路滤波器包括自适应环路滤波器(alf)。
[0807]
图29a示出了用于基于矩阵的帧内预测的示例视频编码方法2900a的示例流程图。操作2902a包括:根据规则,为将视频的当前视频块编码为当前视频块的比特流表示,确定要使用的当前视频块的所述类型的临近样点。操作2904a包括:基于所述确定将当前视频块的编码表示添加到比特流表示中,其中当前视频块使用基于矩阵的帧内预测(mip)模式编码,在mip模式中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定所述当前视频块的预测块。
[0808]
图29b示出了用于基于矩阵的帧内预测的示例视频解码方法2900b的示例流程图。操作2902b包括:根据规则,确定使用基于矩阵的帧内预测(mip)模式并使用当前视频块的
一种类型的临近样点来将视频的当前视频块编码在比特流表示中,其中,mip模式包括:通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。操作2904b包括:通过解析和解码比特流表示来生成当前视频块的解码表示。
[0809]
在方法2900a和/或2900b的一些实施例中,所述规则定义所述类型的临近样点是未滤波的临近样点。在方法2900a和/或2900b的一些实施例中,所述规则定义将包括未滤波的临近样点的所述类型的临近样点用于上采样处理,并且所述规则定义将包括未滤波的临近样点的所述类型的临近样点用于下采样处理,并且所述规则定义将包括未滤波的临近样点的所述类型的临近样点用于矩阵矢量乘法运算。在方法2900a和/或2900b的一些实施例中,所述规则定义所述类型的临近样点是滤波后的临近样点。在方法2900a和/或2900b的一些实施例中,所述规则定义将包括未滤波的临近样点的所述类型的临近样点用于上采样技术,并且所述规则定义将包括滤波后的临近样点的所述类型的临近样点用于下采样技术。在方法2900a和/或2900b的一些实施例中,所述规则定义将包括未滤波的临近样点的所述类型的临近样点用于下采样技术,并且所述规则定义将包括滤波后的临近样点的所述类型的临近样点用于上采样技术。在方法2900a和/或2900b的一些实施例中,所述规则定义将包括未滤波的上方临近样点的所述类型的临近样点用于上采样技术,并且所述规则定义将包括滤波后的左侧临近样点的所述类型的临近样点用于上采样技术。在方法2900a和/或2900b的一些实施例中,所述规则定义将包括未滤波的左侧临近样点的所述类型的临近样点用于上采样技术,并且所述规则定义将包括滤波后的上方临近样点的所述类型的临近样点用于上采样技术。
[0810]
在方法2900a和/或2900b的一些实施例中,所述类型的临近样点包括未滤波的临近样点或滤波后的临近样点,并且所述规则定义使用所述未滤波的临近样点还是所述滤波后的临近样点基于所述当前视频块的所述mip模式。
[0811]
在一些实施例中,方法2900a和/或2900b还包括:将mip模式转换为帧内预测模式,其中所述类型的临近样点包括未滤波的临近样点或滤波后的临近样点,其中,所述规则定义使用未滤波的临近样点还是滤波后的临近样点基于帧内预测模式。在方法2900a和/或2900b的一些实施例中,所述类型的临近样点包括未滤波的临近样点或滤波后的临近样点,并且所述规则定义使用未滤波的临近样点还是滤波后的临近样点基于语法元素或信令。在方法2900a和/或2900b的一些实施例中,使用帧内预测模式生成滤波后的临近样点、或滤波后的左侧临近样点、或滤波后的上方临近样点。
[0812]
图30示出了用于基于矩阵的帧内预测的示例方法3000的示例流程图。操作3002包括:执行视频的当前视频块和当前视频块的比特流表示之间的转换,其中转换包括:通过使用基于矩阵的帧内预测(mip)模式,通过使用样点的矩阵选择和应用矩阵乘法、和/或通过使用当前视频块的偏移矢量选择和添加偏移来生成当前视频块的预测块,其中从视频的先前编解码样点的行和列平均中获得样点,并且其中,所述选择基于与在当前视频块的参考图片上应用亮度映射和色度缩放(lmcs)技术相关联的整形信息。在方法3000的一些实施例中,当对参考图片启用了整形技术时,整形信息与矩阵和/或偏移矢量相关联,所述矩阵和/或偏移矢量与当对参考图片禁用整形技术时与整形信息相关联的矩阵和/或偏移矢量不同。在方法3000的一些实施例中,将不同的矩阵和/或偏移矢量用于整形信息的不同整形参
数。在方法3000的一些实施例中,执行转换包括:在原始域中使用mip模式对当前视频块执行帧内预测。在用于方法3000的一些实施例中,响应于应用整形信息,将当前视频块的临近样点映射到原始域,并且其中,在用于mip模式之前将临近样点映射到原始域。
[0813]
图31示出了用于基于矩阵的帧内预测的示例方法3100的示例流程图。操作3102包括:确定将使用基于矩阵的帧内预测(mip)模式对当前视频块进行编解码,在mip模式中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。操作3104包括:基于所述确定执行当前视频块和当前视频块的比特流表示之间的转换,其中执行转换基于共同应用mip模式和另一编解码技术的规则。
[0814]
在方法3100的一些实施例中,所述规则指定mip模式和另一编解码技术被互斥地使用。在方法3100的一些实施例中,所述规则指定另一编解码技术是高动态范围(hdr)技术或整形技术。
[0815]
图32示出了用于基于矩阵的帧内预测的示例方法3200的示例流程图。操作3202包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和当前视频块的比特流表示之间的转换,其中,使用mip模式执行转换包括:通过使用从视频的先前编解码样点的行和列平均中获得的样点的矩阵应用矩阵乘法来生成预测块,并且其中,矩阵取决于样点的比特深度。
[0816]
图33示出了用于基于矩阵的帧内预测的示例方法3300的示例流程图。操作3302包括:使用基于矩阵的帧内预测(mip)模式为视频的当前视频块生成中间预测信号,在mip中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。操作3304包括:基于中间预测信号生成最终预测信号。操作3306包括:基于最终预测信号执行当前视频块和当前视频块的比特流表示之间的转换。
[0817]
在方法3300的一些实施例中,通过对中间预测信号应用位置相关帧内预测组合(pdpc)来执行生成最终预测信号。在方法3300的一些实施例中,通过使用mip模式生成视频的先前编解码样点并通过使用当前视频块的临近样点对先前编解码样点进行滤波来执行生成最终预测信号。
[0818]
图34示出了用于基于矩阵的帧内预测的示例方法3400的示例流程图。操作3402包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和当前视频块的比特流表示之间的转换,其中执行转换包括:在mip模式的上采样处理中使用插值滤波器,其中,在mip模式中,将矩阵乘法应用于从视频的先前编解码样点的行和列平均中获得的第一组样点,并且将插值滤波器应用于从矩阵乘法获得的第二组样点,并且其中,插值滤波器不包括双线性插值滤波器。
[0819]
在方法3400的一些实施例中,插值滤波器包括4抽头插值滤波器。在方法3400的一些实施例中,使用4抽头插值滤波器执行当前视频块的色度分量的运动补偿。在方法3400的一些实施例中,使用4抽头插值滤波器执行当前视频块的角度帧内预测。在方法3400的一些实施例中,插值滤波器包括8抽头插值滤波器,并且使用8抽头插值滤波器执行当前视频块的亮度分量的运动补偿。
[0820]
图35示出了用于基于矩阵的帧内预测的示例方法3500的示例流程图。操作3502包
括:根据规则执行视频的当前视频块和当前视频块的比特流表示之间的转换,其中所述规则指定在转换期间基于矩阵的帧内预测(mip)模式或变换模式的适用性之间的关系,其中,mip模式包括:通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块,并且其中,所述变换模式指定为当前视频块的预测块的所述确定使用变换操作。
[0821]
在方法3500的一些实施例中,变换模式包括:缩减的二次变换(rst)、二次变换、旋转变换或不可分离二次变换(nsst)。在方法3500的一些实施例中,所述规则指示响应于将mip模式应用于当前视频块,而不应用使用变换模式的变换操作。在方法3500的一些实施例中,所述规则指示是否应用使用变换模式的变换操作基于当前视频块的高度(h)或宽度(w)。在方法3500的一些实施例中,所述规则指示响应于w≥t1且h≥t2,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,所述规则指示响应于w≤t1且h≤t2,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,该所述规则指示响应于w≥t1或h≥t2,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,所述规则指示响应于w≤t1或h≤t2,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,其中t1=32并且t2=32。在方法3500的一些实施例中,所述规则指示响应于w h≥t,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,所述规则指示响应于w h≤t,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,所述规则指示响应于w
×
h≥t,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,所述规则指示响应于w
×
h≤t,而不将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,t=256。
[0822]
在方法3500的一些实施例中,所述规则指示响应于当前视频块用mip模式编解码,而应用使用变换模式的变换操作。在方法3500的一些实施例中,用于变换操作的变换矩阵或内核的选择基于当前视频块用mip模式编解码。在一些实施例中,方法3500还包括:将mip模式转换为帧内预测模式;以及基于转换的帧内预测模式选择变换矩阵或内核。在一些实施例中,方法3500还包括:将mip模式转换为帧内预测模式;以及基于转换的帧内预测模式的分类选择变换矩阵或内核。在方法3500的一些实施例中,转换的帧内预测模式包括平面模式。
[0823]
在方法3500的一些实施例中,所述规则指示当不允许将mip模式应用于当前视频块时,将使用变换模式的变换操作应用于当前视频块。在方法3500的一些实施例中,所述规则指示将离散余弦变换类型ii(dct
‑
ii)变换编解码技术应用于使用mip模式编解码的当前视频块。在方法3500的一些实施例中,当前视频块的比特流表示不包括dct
‑
ii变换编解码技术的变换矩阵索引的信令。在方法3500的一些实施例中,执行转换包括导出将由dct
‑
ii变换编解码技术使用的变换矩阵。在方法3500的一些实施例中,比特流表示包括与在变换矩阵的指示之后信令通知的mip模式相关的信息。
[0824]
在方法3500的一些实施例中,比特流表示包括变换矩阵的mip模式的指示。在方法3500的一些实施例中,所述规则指示比特流表示不包括预定义变换矩阵的mip模式的指示。在方法3500的一些实施例中,所述规则指示响应于当前视频块用mip模式编解码,将使用变换跳过技术的变换操作应用于当前视频块。在方法3500的一些实施例中,当当前视频块用
mip模式编解码时,当前视频块的比特流表示不包括变换跳过技术的信令。在方法3500的一些实施例中,所述规则指示对于用mip模式编解码的当前视频块,当通过选择模式相关的变换矩阵或内核来执行变换操作时,将mip模式转换为预定义的帧内预测模式。在方法3500的一些实施例中,所述规则指示对于用mip模式编解码的当前视频块,不允许使用变换跳过技术的变换操作。在方法3500的一些实施例中,比特流表示不包括指示使用变换跳过技术的信令。在方法3500的一些实施例中,所述规则指示对于未使用mip模式编解码的当前视频块,允许使用变换跳过技术的变换操作。在方法3500的一些实施例中,比特流表示不包括指示使用mip模式的信令。
[0825]
图36示出了用于基于矩阵的帧内预测的示例方法3600的示例流程图。操作3602包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和当前视频块的比特流表示之间的转换,在mip模式中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块,其中执行转换包括:根据规则通过对至少一个参考边界样点的和应用左移位操作或右移位操作来导出边界样点,其中所述规则确定是应用左移位操作还是右移位操作。
[0826]
在方法3600的一些实施例中,所述规则定义响应于移位的数目大于或等于零,应用右移位操作。在方法3600的一些实施例中,该规则定义响应于移位的数目大于零,使用第一技术来应用右移位操作,并且其中,所述规则定义响应于移位的数目等于零,使用第二技术来应用右移位操作,其中第一技术不同于第二技术。
[0827]
在方法3600的一些实施例中,使用以下等式中的一个将边界样点upsbdryx[x]计算为:
[0828]
如果udwn>1,则如果udwn>1,则或者
[0829]
如果udwn=1,则upsbdryx[x]=refx[x]。
[0830]
其中udwn等于当前视频块尺寸和边界尺寸的函数,其中refx[x]表示多个参考样点x,其中>>表示右移位操作,并且其中,<<表示左移位操作。
[0831]
在方法3600的一些实施例中,使用以下等式来计算边界样点upsbdryx[x]:
[0832][0833]
其中udwn等于当前视频块和边界尺寸的函数,其中refx[x]表示多个参考样点x,其中>>表示右移位操作,并且其中<<表示左移位操作。
[0834]
在方法3600的一些实施例中,基于当前视频块尺寸预定义边界尺寸。在方法3600的一些实施例中,udwn被计算为udwn=ntbs/boundarysize,其中ntbs和boundarysize分别表示当前视频块尺寸和边界尺寸。在方法3600的一些实施例中,使用以下等式中的一个将边界样点upsbdryx[x]计算为:
[0835]
如果ntbs>boundarysize,则如果ntbs>boundarysize,则或者
[0836]
如果ntbs=boundarysize,则upsbdryx[x]=refx[x]。
[0837]
图37示出了用于基于矩阵的帧内预测的示例方法3700的示例流程图。操作3702包括:使用基于矩阵的帧内预测(mip)模式执行视频的当前视频块和当前视频块的比特流表示之间的转换,在mip模式中,通过对视频的先前编解码样点执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块,其中,根据以下公式在上采样操作中确定预测样点predsamples[xhor dx][yhor]:
[0838]
predsamples[xhor dx][yhor]=((uphor
‑
dx)*predsamples[xhor][yhor] dx*predsamples[xhor uphor][yhor] offsethor)/uphor,并且
[0839]
predsamples[xver][yver dy]=((upver
‑
dy)*predsamples[xver][yver] dy*predsamples[xver][yver upver] offsetver)/upver
[0840]
其中offsethor和offsetver是整数,其中uphor是当前视频块宽度和基于当前视频块尺寸的预定义值的函数,其中upver是当前视频块高度和基于当前视频块尺寸的预定义值的函数;其中dx是1...uphor
‑
1,其中dy是1...upver
‑
1,并且其中,xhor是基于uphor的位置,并且yhor是基于upver的位置。在方法3700的一些实施例中,offsethor=uphor/2,并且offsetver=upver/2。
[0841]
图38示出了用于基于矩阵的帧内预测的示例方法3800的示例流程图。操作3802包括:为视频的当前视频块和当前视频块的比特流表示之间的转换,生成用基于矩阵的帧内预测(mip)模式编解码的当前视频块的帧内预测模式,在mip模式中,通过在视频的先前编解码的样点上执行边界下采样操作、然后执行矩阵矢量乘法运算、然后选择性地执行上采样操作来确定当前视频块的预测块。操作3804包括:基于当前视频块是否使用mip模式编解码来确定用于存储指示帧内预测模式的信息的规则。操作3806包括:根据规则执行转换,其中所述规则定义比特流表示不包括指示与当前视频块相关联的mip模式的信息的存储。
[0842]
本专利文件可以将比特流表示参考为平均编码表示,反之亦然。综上所述,应当理解的是,为了说明的目的,本文描述了本公开技术的具体实施例,但是可以在不偏离本公开的范围的情况下进行各种修改。因此,除了受所附权利要求限制外,本公开的技术不受限制。
[0843]
本专利文件中描述的主题的实现和功能操作可以在各种系统、数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。本说明说中描述的主题的实现可以实现为一个或多个计算机程序产品,即一个或多个编码在有形的且非易失的计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。
[0844]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言
文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0845]
本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0846]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0847]
本说明书和附图仅被视为示例性的,其中示例性是指示例。如本文所用,“或”的使用意欲包括“和/或”,除非上下文另有明确指示。
[0848]
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0849]
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0850]
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。
转载请注明原文地址:https://win.8miu.com/read-17659.html