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

编解码视频中的块尺寸相关的二次变换的使用的制作方法

2022-02-22 02:19:01 来源:中国专利 TAG:

编解码视频中的块尺寸相关的二次变换的使用
1.相关申请的交叉引用
2.根据适用专利法和/或适用于巴黎公约的规则,本技术及时要求2019年6月15日提交的国际专利申请no.pct/c n2019/091434号的优先权和权益。出于法律的所有目的,上述申请的全部公开作为本技术公开的一部分通过引用并入。
技术领域
3.本专利文档涉及视频编码和解码技术、设备和系统。


背景技术:

4.尽管视频压缩有所进步,数字视频在互联网和其他数字通信网络上仍占最大的带宽使用量。随着能够接收和显示视频的连接用户设备的数量增加,预计数字视频使用所需的带宽将继续增长。


技术实现要素:

5.本文档描述了各种实施例和技术,其中在视频或图像的解码或编码期间使用二次变换(也称为低频不可分变换)。
6.在一个示例方面,公开了一种视频处理方法。该方法包括:为视频的编解码单元和所述视频的比特流表示之间的转换,基于与所述编解码单元中的一个或多个变换单元相关联的规则,确定将降维二次变换(rst)工具用于所述编解码单元。所述rst工具包括,在编码期间,在正向主变换和量化步骤之间应用正向二次变换,或在解码期间,在反量化步骤和逆向主变换之间应用逆向二次变换。所述正向二次变换和所述逆向二次变换的尺寸小于所述编解码单元的尺寸。该方法还包括基于所述确定执行所述转换。
7.在另一个示例方面,公开了一种视频处理的方法。该方法包括:为包括一个或多个颜色分量块的视频块与视频的比特流表示之间的转换,根据规则,确定将降维二次变换(rst)工具应用于块的一个或多个颜色分量的方式。所述rst工具包括,在编码期间,在正向主变换和量化步骤之间应用正向二次变换,或在解码期间,在反量化步骤和逆向主变换之间应用逆向二次变换。所述正向二次变换和所述逆向二次变换的尺寸小于所述编解码单元的尺寸。该方法还包括基于所述确定执行所述转换。
8.在另一个示例方面,公开了一种视频处理的方法。该方法包括:为视频的块和视频的比特流表示之间的转换,确定来自降维逆向二次变换的输出值被包括地约束在范围[min,max]内。逆向二次变换可应用于反量化步骤和逆向主变换之间的块。降低的维度是从块的维度降低的维度,并且min和max是整数值。该方法还包括基于确定来执行转换。
[0009]
在另一个示例方面,公开了一种视频处理的方法。该方法包括:为视频的块与视频的比特流表示之间的转换,基于可应用二次变换的子块的数量,确定将降维二次变换应用于该块的子块的方式。二次变换可应用于正向主变换与量化步骤之间、或反量化步骤与逆向主变换之间的块。降低的维度是从块的维度降低的维度。该方法还包括基于确定来执行
转换。
[0010]
在另一个示例方面,公开了一种视频处理的方法。该方法包括:为在视频的块和视频的比特流表示之间的转换,在块的维度满足条件的情况下,确定降维二次变换应用于该块的单个子块。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。该方法还包括基于该确定来执行转换。
[0011]
在另一个示例方面,公开了一种视频处理的方法。该方法包括:为视频的块和视频的比特流表示之间的转换,确定降维二次变换可应用于维度为k
×
l的块中的区域。k和l是正整数,且k不等于l。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。该方法还包括基于该确定来执行转换。
[0012]
在另一个示例方面,公开了一种视频处理的方法。该方法包括:为视频的块与视频的比特流表示之间的转换,基于块的特性来确定非零范围。非零范围对应于一个范围,在该范围之外,与降维二次变换相关联的系数被设置为零。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。该方法还包括基于该确定来执行转换。
[0013]
在另一个示例方面,公开了一种视频编码的方法。该方法包括:确定降维二次变换可应用于视频块的两个相邻子块。两个相邻子块中的每一个具有m
×
n的维度,m和n是正整数。在正向主变换和量化步骤之间执行二次变换。降低的维度是从块的维度降低的维度。该方法还包括基于该确定来生成视频的编解码表示。
[0014]
在另一个示例方面,公开了一种视频解码的方法。该方法包括:确定降维二次变换可应用于视频块的两个相邻子块。两个相邻子块中的每一个具有m
×
n的维度,m和n是正整数。在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。该方法还包括通过根据确定来解析视频的编解码表示来生成视频的块。
[0015]
在另一个示例方面,公开了一种视频处理的方法。该方法包括:为在视频的块和视频的比特流表示之间的转换,根据规则、基于与块相关联的特性,确定是否对块应用降维二次变换。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。该方法还包括基于确定来执行转换。
[0016]
在另一个示例方面,公开了一种视频处理的方法。该方法包括:为视频的块与视频的比特流表示之间的转换,为应用于该块的降维二次变换的一个或多个变换矩阵的系数确定比特精度约束。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。该方法还包括基于该确定来执行转换。
[0017]
在另一个示例方面,公开了一种视频处理的方法。该方法包括:确定约束规则,该约束规则用于在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据约束规则应用降维二次变换来执行转换。降维二次变换具有从当前视频块的维度降低的维度。降维二次变换与主变换在转换期间一起以特定顺序被应用。
[0018]
在另一个示例方面,公开了另一种视频处理的方法。该方法包括:确定约束规则,该约束规则用于在当前视频块和相邻视频区域的比特流表示、与当前视频块的像素和相邻区域的像素之间的转换期间,选择性地应用降维二次变换,以及根据约束规则通过应用降
维二次变换执行转换。降维二次变换具有从当前视频块和相邻视频区域的维度降低的维度。降维二次变换与主变换在转换期间一起以特定顺序被应用。
[0019]
在又一个示例方面,公开了另一种视频处理的方法。该方法包括:确定归零规则,以在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据归零规则应用降维二次变换来执行转换。降维二次变换具有从当前视频块的维度降低的维度。归零规则规定降维二次变换使用的系数的最大数量。
[0020]
在又一个示例方面,公开了另一种视频处理的方法。该方法包括:确定归零规则,以在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据归零规则应用降维二次变换来执行转换。降维二次变换具有从当前视频块的维度降低的维度。归零规则规定降维二次变换使用的系数的最大数量。
[0021]
在又一个示例方面,公开了另一种视频处理的方法。该方法包括:确定用于在当前视频块的比特流表示和当前视频块的像素之间的转换期间选择性地应用降维二次变换的条件,以及通过根据该条件应用降维二次变换来执行转换。降维二次变换具有从当前视频块的维度降低的维度。在比特流表示中信令通知该条件。
[0022]
在又一个示例方面,公开了另一种视频处理的方法。该方法包括:在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据条件应用降维二次变换来执行转换。降维二次变换具有从当前视频块的维度降低的维度。转换包括基于共存规则选择性地应用位置相关的帧内预测组合(pdpc)。
[0023]
在又一个示例方面,公开了另一种视频处理的方法。该方法包括:在当前视频块的比特流表示和当前视频块的像素之间的转换期间,应用降维二次变换,以及通过根据条件应用降维二次变换来执行转换。降维二次变换具有从当前视频块的维度降低的维度。所述应用控制在转换期间将相邻样点用于帧内预测。
[0024]
在又一个示例方面,公开了另一种视频处理的方法。该方法包括:在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据条件应用降维二次变换来执行转换。降维二次变换具有从当前视频块的维度降低的维度。选择性地应用控制在转换期间的量化矩阵的使用。
[0025]
在又一个示例方面,公开了一种视频编码器。视频编码器包括处理器,该处理器被配置为实现上述方法中的一种或多种。
[0026]
在又一个示例方面,公开了一种视频解码器。视频解码器包括处理器,该处理器被配置为实现上述方法中的一种或多种。
[0027]
在又一个示例方面,公开了一种计算机可读介质。该介质包括用于实现存储在该介质上的上述方法中的一种或多种的代码。
[0028]
在本文档中描述了这些以及其他方面。
附图说明
[0029]
图1示出了编码器框图的示例。
[0030]
图2示出了67种帧内预测模式的示例。
[0031]
图3a-3b示出了用于广角帧内预测的参考样点的示例。
[0032]
图4是在超过45度的方向的情况下不连续性问题的示例。
[0033]
图5a-5d示出了应用于对角和相邻角帧内模式的由pdpc使用的样点的示例。
[0034]
图6是4
×
8和8
×
4块的划分的示例。
[0035]
图7是除4
×
8、8
×
4和4
×
4以外的所有块的划分的示例。
[0036]
图8将4
×
8样点块划分为两个可独立解码的区域。
[0037]
图9示出了利用垂直预测器对像素行进行处理以最大化4
×
n块的吞吐量的示例顺序。
[0038]
图10示出了二次变换的示例。
[0039]
图11示出了所提出的降维的二次变换(rst)的示例。
[0040]
图12示出了正向和反向(或逆向)降维的变换的示例。
[0041]
图13示出了具有16
×
48矩阵的正向rst 8
×
8处理的示例。
[0042]
图14示出了扫描位置17至64中的非零元素的示例。
[0043]
图15是子块变换模式sbt-v和sbt-h的图示。
[0044]
图16是用于实现本文档中描述的技术的示例硬件平台的框图。
[0045]
图17是视频处理的示例方法的流程图。
[0046]
图18是其中可以实现所公开的技术的示例视频处理系统的框图。
[0047]
图19是根据本技术的视频处理的示例方法的流程图。
[0048]
图20是根据本技术的视频处理的另一示例方法的流程图。
[0049]
图21是根据本技术的视频处理的另一示例方法的流程图。
[0050]
图22是根据本技术的视频处理的另一示例方法的流程图。
[0051]
图23是根据本技术的视频处理的另一示例方法的流程图。
[0052]
图24a是根据本技术的视频编码的示例方法的流程图。
[0053]
图24b是根据本技术的视频解码的示例方法的流程图。
[0054]
图25是根据本技术的视频处理的另一示例方法的流程图。
[0055]
图26是根据本技术的视频处理的另一示例方法的流程图。
[0056]
图27是根据本技术的视频处理的另一示例方法的流程图。
[0057]
图28是根据本技术的视频处理的又一示例方法的流程图。
具体实施方式
[0058]
在本文档中使用章节标题是为了易于理解,并且章节中公开的实施例并不仅限于该章节。此外,尽管参考通用视频编解码或其他特定视频编解码器描述了某些实施例,但是所公开的技术也适用于其他视频编解码技术。此外,尽管一些实施例详细描述了视频编码步骤,但是将理解的是,将通过解码器来实现与编码相逆的对应解码步骤。此外,术语视频处理涵盖视频编码或压缩、视频解码或解压缩以及视频转码,即,视频像素从一种压缩格式表示为另一种压缩格式或以不同的压缩比特率表示。
[0059]
1.概述
[0060]
该专利文档涉及视频编解码技术。具体地,它涉及视频编解码中的变换。其可以应用于现有的视频编解码标准,例如,hevc,或者最终确定的标准(通用视频编解码)。其也可能适用于未来的视频编解码标准或视频编解码器。
[0061]
2.初步讨论
[0062]
视频编解码标准主要通过公知的itu-t和iso/iec标准的发展而演变。itu-t制作了h.261和h.263,iso/iec制作了mpeg-1和mpeg-4 visual,这两个组织共同制作了h.262/mpeg-2视频和h.264/mpeg-4增强视频编解码(avc)和h.265/hevc标准。从h.262开始,视频编解码标准基于混合视频编解码结构,其中利用了时域预测和变换编解码。为了探索hevc之外的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索小组(jvet)。此后,jvet采纳了许多新方法并将其引入到名为“联合探索模型”(jem)的参考软件中。2018年4月,vceg(q6/16)和iso/iec jtc1sc29/wg11(mpeg)之间的联合视频专家团队(jvet)成立,以致力于目标是与hevc相比其降低50%比特率的多功能视频编解码(vvc)标准。
[0063]
2.1颜色空间和色度子采样
[0064]
颜色空间,也称为颜色模型(或颜色系统),是一种抽象数学模型,其将颜色范围简单地描述为数字元组,通常为3或4个值或颜色分量(例如rgb)。基本上来讲,颜色空间是对坐标系和子空间的细化。
[0065]
对于视频压缩,最常用的颜色空间是ycbcr和rgb。
[0066]
ycbcr、y'cbcr或y pb/cb pr/cr,也称为ycbcr或y'cbcr,是用作视频和数字摄影系统中彩色图像管线的一部分的一系列颜色空间。y'是亮度分量,cb和cr是蓝差(blue-difference)和红差(red-difference)色度分量。y

(带有原色(prime))与y(亮度)区分开,这意味着光强度是基于经过伽玛校正的rgb原色进行非线性编码的。
[0067]
色度子采样是利用人类视觉系统对色差的敏锐度低于亮度的优势,通过对色度信息实现比亮度信息更低的分辨率来对图像进行编码的实践。
[0068]
2.1.1格式4:4:4
[0069]
三种y'cbcr分量中的每一个具有相同的采样率,因此不存在色度子采样。该方案有时用于高端胶片扫描仪和电影后期制作中。
[0070]
2.1.2格式4:2:2
[0071]
两个色度分量以亮度的采样率的一半(水平色度分辨率减半)进行采样。这将未压缩视频信令的带宽减少了三分之一,且几乎没有视觉差异。
[0072]
2.1.3格式4:2:0
[0073]
在4:2:0中,水平采样是4:1:1的两倍,但是由于cb和cr通道仅在此方案中的每条交替线上采样,因此垂直分辨率降低了一半。因此,数据速率相同。cb和cr分别在水平和垂直方向上以2的因子进行子采样。4:2:0方案有三种变体,其具有不同的水平和垂直位置。
[0074]
在mpeg-2中,cb和cr在水平方向有共同位置(cosited)。cb和cr在垂直方向上位于像素之间(间隙位置)。
[0075]
在jpeg/jfif、h.261和mpeg-1中,cb和cr在间隙位置,位于交替的亮度样点之间的中间。
[0076]
在4:2:0dv中,cb和cr在水平方向上有共同位置。在垂直方向上,它们共同位于交替线上。
[0077]
2.2典型视频编解码器的编解码流
[0078]
图1示出了vvc的编码器框图的示例,其中包括三个环路滤波块:去方块滤波器(df)、样点自适应偏移(sao)和alf(自适应环路滤波器)。与使用预定义滤波器的df不同,sao和alf利用当前图片的原始样点分别通过增加偏移量和应用有限脉冲响应(fir)滤波器
来减少原始样点与重建样点之间的均方误差,其中编解码的辅助信息用信令通知偏移量和滤波器系数。alf位于每个图片的最后一个处理阶段,可以看作是试图捕获和修复由先前阶段创建的伪像的工具。
[0079]
2.3具有67个帧内预测模式的帧内模式编解码
[0080]
为了捕获自然视频中呈现的任意边缘方向,方向帧内模式的数量从hevc中使用的33个扩展到65个。附加的方向模式在图2中用虚线箭头表示,平面和dc模式保持不变。这些更密集的定向帧内预测模式适用于所有块尺寸以及亮度和色度帧内预测两者。
[0081]
如图2所示,沿顺时针方向将常规的角度帧内预测方向定义为从45度到-135度。在vtm2中,几种常规的角度帧内预测模式被自适应地替换为用于非正方形块的广角帧内预测模式。使用原始方法用信令通知替换的模式,并在解析后将替换的模式重新映射到广角模式的索引。帧内预测模式的总数不变,例如67,并且帧内模式编解码不变。
[0082]
在hevc中,每个帧内编解码块均具有正方形形状,并且其每侧的长度是2的幂。因此,不需要除法运算即可使用dc模式生成帧内预测器。在vvv2中,块可以具有矩形形状,在通常情况下,必须对每个块使用除法运算。为了避免针对dc预测使用除法运算,仅将较长的一侧用于计算非正方形块的平均。
[0083]
2.4非正方形块的广角帧内预测
[0084]
传统角度帧内预测方向被定义为在顺时针方向上从45度到-135度。在vtm2中,对于非正方形块,适应性地用广角帧内预测模式替换若干传统角度帧内预测模式。用原始方法信令通知替换后的模式,并在解析后将其重新映射到广角模式的索引。特定块的帧内预测模式的总数保持不变(例如,67),并且帧内模式编解码保持不变。
[0085]
为了支持这些预测方向,如图3a-3b所示,定义了长度为2w 1的上方参考和长度为2h 1的左侧参考。
[0086]
广角方向模式中替换模式的模式数取决于块的纵横(aspect)比。替换的帧内预测模式如表1所示。
[0087]
表1:用广角模式替换帧内预测模式
[0088]
条件被替换的帧内预测模式w/h==2模式2,3,4,5,6,7w/h》2模式2,3,4,5,6,7,8,9,10,11w/h==1无h/w==1/2模式61,62,63,64,65,66h/w《1/2模式57,58,59,60,61,62,63,64,65,66
[0089]
如图4所示,在广角帧内预测的情况下,两个垂直相邻的预测样点可以使用两个非相邻的参考样点。因此,低通参考样点滤波器和侧平滑被应用于广角预测以减少增加的间隙δp
α
的负面影响。
[0090]
2.5与位置相关的帧内预测组合
[0091]
在vtm2中,用位置相关的帧内预测组合(pdpc)方法来进一步修正平面模式的帧内预测结果。pdpc是一种帧内预测方法,其调用未滤波的边界参考样点和hevc式的帧内预测与滤波的边界参考样点的组合。pdpc应用于以下无信令的帧内模式:平面、dc、水平、垂直、左下角度模式及其八个相邻角度模式、右上角度模式及其八个相邻角度模式。
[0092]
使用帧内预测模式(dc、平面、角度)和参考样点的线性组合根据以下等式对预测样点pred(x,y)进行预测:
[0093]
pred(x,y)=(wl
×
r-1,y
wt
×rx,-1

wtl
×
r-1,-1
(64

wl

wt wtl)
×
pred(x,y) 32)》》6
[0094]
其中,r
x,-1
,r-1,y
分别表示位于当前样点(x,y)的上方和左侧的参考样点,并且r-1,-1
表示位于当前块的左上角的参考样点。
[0095]
如果pdpc应用于dc、平面、水平和垂直帧内模式,则不需要额外的边界滤波器,如hevc的情况下dc模式边界滤波器或水平/垂直模式边缘滤波器所要求的那样。
[0096]
图5a-5d说明了应用于各种预测模式的pdpc的参考样点(r
x,-1
,r-1,y
和r-1,-1
)的定义。预测样点pred(x’,y’)位于预测块内的(x',y')处。参考样点r
x,-1
的坐标x由x=x’ y’ 1给出,参考样点r-1,y
的坐标y类似地由y=x’ y’ 1给出。
[0097]
图5a至5d提供了应用于对角和相邻角度帧内模式的pdpc所使用的样点的定义
[0098]
pdpc权重取决于预测模式,并且如表2所示。
[0099]
表2:根据预测模式的pdpc权重的示例
[0100]
预测模式wtwlwtl右上对角16》》((y’《《1)》》shift16》》((x’《《1)》》shift)0左下对角16》》((y’《《1)》》shift)16》》((x’《《1)》》shift)0右上相邻对角32》》((y’《《1)》》shift)00左下相邻对角032》》((x’《《1)》》shift)0
[0101]
2.6帧内子块分割(isp)
[0102]
在一些实施例中,如表3所示,提出isp以将亮度帧内预测的块根据块的尺寸维度垂直或水平地划分为2或4个子分割。图6和图7示出了两种可能性的示例。所有子分割均满足至少有16个样点的条件。
[0103]
表3取决于块尺寸的子分割数量
[0104]
块尺寸子分割数量4
×
4未划分4
×
8and8
×
42所有其他情况4
[0105]
图6示出了4
×
8和8
×
4块的划分的示例。
[0106]
图7示出除4
×
8、8
×
4和4
×
4以外的所有块的划分的示例。
[0107]
对于这些子分割中的每个,通过对由编码器发送的系数进行熵解码,然后对它们进行逆量化和逆变换来生成残差信号。然后,对该子分割进行帧内预测,并最终通过将残差信号与预测信号相加来获得相应的重建样点。因此,每个子分割的重建值将可用于生成下一个的预测,重复该处理,依此类推。所有子分割共享相同的帧内模式。
[0108]
基于所利用的划分和帧内模式,使用两种不同类型的处理顺序,其被称为正常顺序和反向顺序。按照正常顺序,要处理的第一个子分割是包含cu左上样点的子分割,然后继续向下(水平划分)或向右(垂直划分)。结果,用于生成子分割预测信号的参考样点仅位于线的左侧和上方。另一方面,反向处理顺序从包含cu左下样点的子分割开始,然后继续向上;或者,从包含cu右上样点的子分割开始,然后继续向左。
[0109]
2.7块差分脉冲编解码调制编解码(bdpcm)
[0110]
由于水平(相对于垂直)预测器(其将左(a)(相对于上方(b))像素用于当前像素的预测)的形状,处理该块的吞吐量最高效的方式是并行处理一列(相对于行)的所有像素,顺序处理这些列(相对于行)。为了增加吞吐量,我们引入以下处理:当在该块上选择的预测器为垂直时,将宽度为4的块划分为具有水平边界的两半,当在该块上选择的预测器为水平时,将高度为4的块划分为具有垂直边界的两半。
[0111]
当划分块时,不允许来自一个区域的样点使用来自另一区域的像素来计算预测:如果发生这种情况,则在预测方向上将预测像素替换为参考像素。图8中示出了对于垂直预测的4
×
8块中的当前像素x的不同位置。
[0112]
图8示出了将4
×
8样点的块划分为两个可独立解码的区域的示例。
[0113]
由于该特性,现在变得可以在2个周期中处理4
×
4块,并在4个周期中处理4
×
8或8
×
4块,依此类推,如图9所示。
[0114]
图9示出了利用垂直预测器对像素行进行处理以最大化4
×
n块的吞吐量的顺序的示例。
[0115]
表4总结了取决于块尺寸的处理块所需的周期数。简单地说,任何尺寸大于或等于8的块都可以在每个周期8个像素或更多个像素中进行处理。
[0116]
表4尺寸为4
×
n、n
×
4的块的最坏情况吞吐量
[0117][0118]
2.8量化的残差域bdpcm
[0119]
在一些实施例中,提出了量化的残差域bdpcm(在下文中称为rbdpcm)。通过在类似于帧内预测的预测方向(水平或垂直预测)上进行样点复制,来对整个块进行帧内预测。对残差进行量化,并对量化残差与其预测器(水平或垂直)量化值之间的增量(delta)进行编解码。
[0120]
对于尺寸为m(行)
×
n(列)的块,令r
i,j
,0≤i≤m-1,0≤j≤n-1是使用来自上方或左侧块边界样点的未经滤波的样点、水平(逐行跨越预测块复制左侧相邻像素值)或垂直(在预测块中将上方相邻行复制到每一行)地执行帧内预测之后的预测残差。令q(r
i,j
),0≤i≤m-1,0≤j≤n-1表示残差r
i,j
的量化版本,其中残差是原始块与预测块值之间的差。然后,将块dpcm应用于量化后的残差样点,得到具有元素的修改后的m
×
n阵列当用信令通知垂直bdpcm时:
[0121][0122]
对于水平预测,适用类似的规则,并且通过以下获得残差量化样点:
[0123][0124]
残差量化样点被发送到解码器。
[0125]
在解码器侧,将上述计算取反以生成q(r
i,j
),0≤i≤m-1,0≤j≤n-1。对于垂直预测的情况,
[0126][0127]
对于水平情况,
[0128][0129]
逆量化残差q-1
(q(r
i,j
))被添加到帧内块预测值,以生成重建样点值。
[0130]
该方案的主要好处是,逆dpcm可以在系数解析处理中即时完成,只需在解析系数时添加预测器即可,或者可以在解析后执行。
[0131]
变换跳过总是在量化残差域bdpcm中使用。
[0132]
2.9 vvc中的多重变换集(mts)
[0133]
在vtm 4中,启用了最大为64
×
64的大块尺寸的变换,这主要用于分辨率更高的视频,例如1080p和4k序列。对于尺寸(宽度或高度,或者宽度和高度两者)等于64的变换块,将高频变换系数归零,以便仅保留低频系数。例如,对于m
×
n的变换块,其中m为块宽度,n为块高度,当m等于64时,仅保留左32列的变换系数。类似地,当n等于64时,仅保留上方32行的变换系数。将变换跳过模式用于大块时,将使用整个块而不将任何值归零。
[0134]
除了已在hevc中采用的dct-ii之外,还使用多重变换选择(multiple transform selection,mts)方案对帧间和帧内编解码块进行残差编解码。它使用了dct8/dst7的多个选定变换。新引入的变换矩阵是dst-vii和dct-viii。下表显示了所选dst/dct的基本函数。
[0135][0136]
为了保持变换矩阵的正交性,与hevc中的变换矩阵相比,对变换矩阵进行更精确的量化。为了将变换后的系数的中间值保持在16位范围内,在水平和垂直变换之后,所有系数都应具有10位。
[0137]
为了控制mts方案,在sps级别分别为帧内和帧间指定了单独的启用标志。在sps上启用mts时,会用信令通知cu级别标志,以指示是否应用mts。这里,mts仅适用于亮度。当满足以下条件时,将用信令通知mts cu级别标志。
[0138]-宽度和高度均小于或等于32
[0139]-cbf标志等于1
[0140]
如果mts cu标志等于零,则在两个方向上都应用dct2。但是,如果mts cu标志等于1,则另外会用信令通知另外两个标志,以分别指示水平方向和垂直方向的变换类型。变换和信令映射表如表3-10所示。当涉及变换矩阵精度时,使用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位主变换核心。
[0141][0142]
为了降低大尺寸dst-7和dct-8的复杂性,将尺寸(宽度或高度,或者宽度和高度两者)等于32的dst-7和dct-8的高频变换系数归零。仅保留16
×
16低频区域内的系数。
[0143]
如在hevc中一样,可以用变换跳过模式对块的残差进行编解码。为避免语法编解码的冗余,当cu级别mts_cu_flag不等于0时,不会信令通知变换跳过标志。变换跳过的块尺寸限制与jem4中的mts相同,这表明当块的宽度和高度都等于或小于32时,变换跳过适用于cu。
[0144]
2.10降维的二次变换(rst)的示例
[0145]
2.10.1不可分的二次变换(nsst)的示例
[0146]
在一些实施例中,在正向主变换和量化之间(在编码器侧),以及在反量化和逆向主变换之间(在解码器侧)应用二次变换(也称为不可分的二次变换)。如图10所示,根据块尺寸执行4
×
4(或8
×
8)二次变换。例如,对于每个8
×
8块,将4
×
4二次变换应用于较小的块(例如,min(宽度,高度)《8),并将8
×
8二次变换应用于较大的块(例如,min(宽度,高度)》4)。
[0147]
图10示出了jem中的二次变换的示例。
[0148]
下面以输入为例描述不可分的变换的应用。要应用不可分的变换,首先将以下4
×
4输入块x
[0149][0150]
表示为矢量
[0151][0152]
不可分的变换的计算为其中指示变换系数矢量,t为16
×
16变换矩阵。随后使用该块的扫描顺序(水平、垂直或对角线)将16
×
1系数矢量重新组织为4
×
4块。索引较小的系数将以较小的扫描索引放置在4
×
4系数块中。总共有35个变换集,每个变换集使用3个不可分的变换矩阵(内核)。预先定义从帧内预测模式到变换集的映射。对于每个变换集,所选择的不可分的二次变换候选进一步由显式地用信令通知的二次变换索引指定。在比特流中,每个帧内cu在变换系数之后用信令传递一次索引。
[0153]
2.10.2降维的二次变换(rst)/低频不可分的变换(lfnst)的示例
[0154]
降维的二次变换(rst),也称为低频不可分的变换(lfnst),被引入为4个变换集(而不是35个变换集)映射。在一些实施例中,将16
×
64(可以进一步减少到16
×
48)和16
×
16矩阵分别用于8
×
8和4
×
4块。为方便起见,将16
×
64(可进一步减少为16
×
48)变换表示为rst8
×
8,将16
×
16变换表示为rst4
×
4。图11示出了rst的示例。
[0155]
图11示出了所提出的降维的二次变换(rst)的一个示例。
[0156]
rst计算
[0157]
降维变换(rt)的主要思想是将n维向量映射到不同空间中的r维向量,其中r/n(r《n)是降维因子。
[0158]
rt矩阵是如下的r
×
n矩阵:
[0159][0160]
其中,变换的r行是n维空间的r个基。rt的逆变换矩阵是其正向变换的转置矩阵。在图12中示出了正向和反向rt的示例。
[0161]
图12示出了正向和反向降维变换的示例。
[0162]
在一些实施例中,应用具有降维因子4(1/4尺寸)的rst 8
×
8。因此,不是使用64
×
64(其是传统的8
×
8不可分变换矩阵尺寸),而是使用16
×
64直接矩阵。换句话说,在解码器侧使用64
×
16反向rst矩阵,以在8
×
8左上区域中生成核心(主)变换系数。正向rst 8
×
8使用16
×
64(或者对于8
×
8块,使用8
×
64)矩阵,使得仅在给定的8
×
8区域内的左上4
×
4区域内产生非零系数。换句话说,如果应用rst,则除左上4
×
4区域外的8
×
8区域将仅具有零系数。对于rst 4
×
4,应用16
×
16(或者对于4
×
4块,应用8
×
16)直接矩阵乘法。
[0163]
当满足以下两个条件时,有条件地应用逆向rst:
[0164]
a.块尺寸大于或等于给定的阈值(w》=4且h》=4)
[0165]
b.变换跳过模式标志等于零
[0166]
如果变换系数块的宽度(w)和高度(h)均大于4,则将rst 8
×
8应用于变换系数块的左上8
×
8区域。否则,将rst 4
×
4应用于变换系数块的左上min(8,w)
×
min(8,h)区域。
[0167]
如果rst索引等于0,则不应用rst。否则,将应用rst,并使用rst索引选择其内核。稍后说明rst选择方法和rst索引的编解码。
[0168]
此外,rst应用于帧内和帧间条带中的帧内cu,并且应用于亮度和色度二者。如果启用了双树,则分别信令通知亮度和色度的rst索引。对于帧间条带(禁用双树),将信令通知单个rst索引并将其用于亮度和色度。
[0169]
在一些实施例中,采用帧内子分割(isp)作为新的帧内预测模式。当选择isp模式时,由于即使将rst应用于每个可行的分割块,性能改进也很微弱,因此rst被禁用并且不信令通知rst索引。此外,为isp预测的残差禁用rst可以降低编码复杂度。
[0170]
rst选择
[0171]
从四个变换集中选择rst矩阵,每个变换集由两个变换组成。根据帧内预测模式确定应用了哪些变换集,如下所示:
[0172]
(1)如果指示了三种cclm模式之一,则选择变换集0。
[0173]
(2)否则,根据下表执行变换集选择:
[0174]
变换集选择表
[0175][0176]
访问该表的索引(表示为intrapredmode)的范围为[-14、83],该范围是用于广角帧内预测的变换模式索引。
[0177]
降维的rst矩阵
[0178]
作为进一步的简化,应用具有相同变换集配置的16
×
48矩阵而不是16
×
64矩阵,每个矩阵从左上8
×
8块(右下4
×
4块除外)中的三个4
×
4块中获取48个输入数据(图13)。
[0179]
图13示出了具有16
×
48矩阵的正向rst 8
×
8处理的示例。
[0180]
rst信令
[0181]
具有r=16的正向rst 8
×
8使用16
×
64矩阵,因此它仅在给定的8
×
8区域内的左上4
×
4区域中产生非零系数。换句话说,如果应用rst,则除左上4
×
4区域外的8
×
8区域仅生成零系数。结果,当在除左上4
×
4(图14中示出)外的8
×
8块区域内检测到任何非零元素时,不对rst索引进行编解码,因为这意味着不应用rst。在这种情况下,rst索引被推断为零。
[0182]
图14示出了扫描位置17至64中的非零元素的示例。
[0183]
归零范围
[0184]
通常,在将逆向rst应用于4
×
4子块之前,4
×
4子块中的任何系数都可能是非零的。然而,在一些情况下,在将逆向rst应用于子块之前,约束4
×
4子块中的一些系数必须为零。
[0185]
令nonzerosize为一个变量。在逆向rst之前将索引重新排列为一维阵列时,要求索引不小于nonzerosize的任何系数必须为零。
[0186]
当nonzerosize等于16时,对于在左上4
×
4子块中的系数,不存在归零约束。
[0187]
在一些实施例中,当当前块尺寸是4
×
4或8
×
8时,nonzerosize被设置为等于8。对于其他块维度,nonzerosize被设置为等于16。
[0188]
rst的示例描述
[0189]
在下面的表和说明中,粗体斜体文本用于表示可以对当前语法进行的更改以适应本文档中描述的某些实施例。
[0190]
序列参数集rbsp语法
[0191][0192][0193]
残差编解码语法
[0194][0195]
编解码单元语法
[0196][0197]
[0198]
序列参数集rbsp语义
[0199][0200]
编解码单元语义
[0201][0202]
用于缩放的变换系数的变换处理
[0203]
概述
[0204]
此处理的输入是:
[0205]

亮度位置(xtby,ytby),指定相对于当前图片的左上亮度样点的当前亮度变换块的左上样点;
[0206]

变量ntbw,指定当前变换块的宽度,
[0207]

变量ntbh,指定当前变换块的高度,
[0208]

变量cidx,指定当前块的颜色分量,
[0209]

缩放变换系数的(ntbw)
×
(ntbh)阵列d[x][y],其中x=0..ntbw-1,y=0..ntbh-1。
[0210]
此处理的输出是x=0..ntbw-1,y=0..ntbh-1的残差样点的(ntbw)
×
(ntbh)阵列r[x][y]。
[0211]
[0212][0213]
二次变换处理
[0214][0215]
二次变换矩阵推导处理
[0216]
[0217][0218]
2.11 hevc中的反量化的剪裁
[0219]
在hevc中,缩放的变换系数d'计算为d'=clip3(coeffmin,coeffmax,d),其中d是
裁剪之前的缩放变换系数。
[0220]
对于亮度分量,coeffmin=coeffminy;coeffmax=coeffmaxy。对于色度分量,coeffmin=coeffminc;coeffmax=coeffmaxc;其中,
[0221]
coeffminy=-(1《《(extended_precision_processing_flag?max(15,bitdepthy 6):15))
[0222]
coeffminc=-(1《《(extended_precision_processing_flag?max(15,bitdepthc 6):15))
[0223]
coeffmaxy=(1《《(extended_precision_processing_flag?max(15,bitdepthy 6):15))-1
[0224]
coeffmaxc=(1《《(extended_precision_processing_flag?max(15,bitdepthc 6):15))
–1[0225]
extended_precision_processing_flag是在sps中信令通知的语法元素。
[0226]
2.12仿射线性加权帧内预测(alwip,又称基于矩阵的帧内预测,mip)
[0227]
在一些实施例中,进行两个测试。在测试1中,alwip的存储器限制为8k字节,每个样点最多4次乘法。测试2与测试1类似,但在存储器需求和模型架构方面进一步简化了设计。
[0228]
*用于所有块形状的单组矩阵和偏移矢量。
[0229]
*对于所有块形状,将模式数量减少到19。
[0230]
*将存储器需求减少到5760个10比特值,即,7.20kb。
[0231]
*预测样点的线性插值是在每个方向上一步完成,代替如在第一个测试中的迭代插值。
[0232]
2.13子块变换
[0233]
对于cu_cbf等于1的帧间预测的cu,可以用信令通知cu_sbt_flag以指示是对整个残差块还是残差块的子部分进行解码。在前一种情况下,进一步解析帧间mts信息以确定cu的变换类型。在后一种情况下,残差块的一部分通过推断的自适应变换进行编解码,而残差块的另一部分被归零。sbt不适用于组合的帧间-帧内模式。
[0234]
在子块变换中,将与位置有关的变换应用于sbt-v和sbt-h(始终使用dct-2的色度tb)中的亮度变换块。sbt-h和sbt-v的两个位置与不同的核心变换相关联。更具体地,在图15中指定每个sbt位置的水平和垂直变换。例如,sbt-v位置0的水平和垂直变换分别是dct-8和dst-7。当残差tu的一侧大于32时,将相应的变换设置为dct-2。因此,子块变换共同指定残差块的tu片、cbf以及水平和垂直变换,对于块的主要残差在块的一侧的情况,可以将其视为语法快捷方式。
[0235]
图15是子块变换模式sbt-v和sbt-h的图示。
[0236]
3.实施例解决的问题的示例
[0237]
当前的设计具有以下问题:
[0238]
(1)mts/rst中的裁剪和移位/舍入操作可能不是最佳的。
[0239]
(2)应用于两个相邻的4
×
4块的rst可能成本较高。
[0240]
(3)可以针对不同的颜色分量以不同的方式执行rst。
[0241]
(4)rst用于屏幕内容编解码时可能表现不好。
[0242]
(5)rst和其他编解码工具之间的交互尚不清楚。
[0243]
(6)可以更有效地存储rst的变换矩阵。
[0244]
(7)如何对rst应用量化矩阵尚不清楚。
[0245]
4.示例实施例和技术
[0246]
以下实施例的列表应被认为是示例,以解释一般概念。这些实施例不应以狭义的方式解释。此外,这些实施例可以以任何方式组合。
[0247]
在下面的描述中,编解码信息可以包括预测模式(例如,帧内/帧间/ibc模式)、运动矢量、参考图片、帧间预测方向、帧内预测模式、ciip(组合的帧内帧间预测)模式、isp模式、仿射帧内模式、采用的变换核心、变换跳过标志等,例如,对一个块进行编码时所需的信息。
[0248]
在下面的讨论中,satshift(x,n)被定义为
[0249][0250]
satshift(x,n)被定义为shift(x,n)=(x offset0)》》n。
[0251]
在一个示例中,offset0和/或offset1被设为(1《《n)》》1或r(1《《(n-1))。在另一个例子中,offset0和/或offset1被设为0.
[0252]
在另一个示例中,offset0=offset1=((1《《n)》》1)-1or((1《《(n-1)))-1。
[0253]
clip3(min,max,x)被定义为
[0254][0255]
1.在逆向rst之后,输出值应裁剪到[mincoef,maxcoef]的范围内(包括mincoef和maxcoef),其中,mincoef和/或maxcoef是两个可变的整数值。
[0256]
a.在一个示例中,假设反量化之后的系数被裁剪到[qmincoef,qmaxcoef]的范围内(包括qmincoef和qmaxcoef),则可以将mincoef设置为等于qmincoef,和/或可以将maxcoef设置为等于qmaxcoef。
[0257]
b.在一个示例中,mincoef和/或maxcoef可取决于颜色分量。
[0258]
i.在一个示例中,mincoef和/或maxcoef可取决于相应颜色分量的比特深度。
[0259]
c.在一个示例中,mincoef和/或maxcoef可以取决于块的形状(例如,正方形或非正方形)和/或块的尺寸。
[0260]
d.在一个示例中,可以在,诸如,sps、pps、条带头/片组头/ctu/cu中信令通知mincoef和/或maxcoef的值或候选值的选择。
[0261]
e.在一个示例中,对于亮度分量,mincoef和/或maxcoef可以被推导为:
[0262]
mincoef=-(1《《(extended_precision_processing_flag?max(15,bitdepthy 6):15))
[0263]
maxcoef=(1《《(extended_precision_processing_flag?max(15,bitdepthy 6):15))
–1[0264]
其中bitdepthy是亮度分量的比特深度,并且extended_precision_processing_
flag可以诸如在sps中信令通知。
[0265]
f.在一个示例中,对于一个分量,mincoef和/或maxcoef可以推导为:
[0266]
mincoef=-(1《《(extended_precision_processing_flag?max(15,bitdepthc 6):15))
[0267]
maxcoef=(1《《(extended_precision_processing_flag?max(15,bitdepthc 6):15))

1,
[0268]
其中bitdepthc是色度分量的比特深度,并且extended_precision_processing_flag可以诸如在sps中信令通知。
[0269]
g.在一些实施例中,mincoef为-(1《《15),并且maxcoef为(1《《15)-1。
[0270]
h.在一个示例中,一致性比特流应满足正向rst之后的变换系数应在给定范围内。
[0271]
2.提出对系数的m
×
n子块应用正向rst和/或逆向rst的方式可以取决于正向rst和/或逆向rst被应用于的子块的数量,例如,m=n=4。
[0272]
a.在一个示例中,归零范围可以取决于rst被应用于的子块索引。
[0273]
i.可替代地,归零范围可以取决于rst被应用于的子块的数量。
[0274]
b.在一个示例中,当在整个系数块中,存在正向rst和/或逆向rst被应用于的s个子块时(其中s》1,例如,s=2),对系数的第一子块和第二子块应用正向rst和/或逆向rst的方式可以是不同的。例如,第一个m
×
n子块可以是左上方的m
×
n子块。
[0275]
i.在一个示例中,对于系数的第一个m
×
n子块(表示为nonzerosize0)和对于系数的第二个m
×
n子块(表示为nonzerosize1),如第2.10节所述的nonzerosize可以是不同的。
[0276]
1)在一个示例中,nonzerosize0可大于nonzerosize1。例如,nonzerosize0=16,并且nonzerosize1=8。
[0277]
ii.在一个示例中,当仅存在一个m
×
n个子块被应用正向rst和/或逆向rst时,或者存在多于一个m
×
n子块被应用正向rst和/或逆向rst时,如2.10节所述的nonzerosize可以是不同的。
[0278]
1)在一个示例中,如果存在多于一个m
×
n个子块被应用正向rst和/或逆向rst,nonzerosize可以等于8。
[0279]
3.建议如果当前块尺寸为4
×
h或w
×
4,其中h》8并且w》8,例如,m=n=4,仅将正向rst和/或逆向rst应用于系数的一个m
×
n子块(如,左上的m
×
n子块)。
[0280]
a.在一个示例中,如果h》t1和/或w》t2,例如,t1=t2=16,则仅将正向rst和/或逆向rst应用于系数的一个m
×
n子块。
[0281]
b.在一个示例中,如果h<t1和/或w<t2,例如,t1=t2=32,则仅将正向rst和/或逆向rst应用于系数的一个m
×
n子块。
[0282]
c.在一个示例中,对于全部h>8和/或w>8,将正向rst和/或逆向rst仅应用于系数的一个m
×
n子块。
[0283]
d.在一个示例中,如果当前块尺寸是m
×
h或w
×
n,其中,h》=n并且w》=m,例如,m=n=4,则将正向rst和/或逆向rst仅应用于一个m
×
n子块(如,左上的m
×
n子块)。
[0284]
4.rst可以应用于非正方形区域。假设区域尺寸用k
×
l表示,其中k不等于l。
[0285]
a.可替代地,此外,可以在正向rst之后将归零应用于变换系数,以便满足最大数量的非零系数。
[0286]
i.在一个示例中,如果变换系数位于左上m
×
m区域之外,其中m不大于k并且m不大于l,则可以将其设置为0。
[0287]
5.建议两个相邻的m
×
n子块中的系数可以包含在单个正向rst和/或逆向rst中。例如,m=n=4。
[0288]
a.在一个示例中,可以在编码器侧进行以下一个或多个操作。以下操作可以按顺序执行。
[0289]
i.将两个相邻的m
×
n子块中的系数重新排列为具有2
×m×
n个元素的一维矢量。
[0290]
ii.将具有变换矩阵的正向rst应用于一维矢量,该变换矩阵具有2
×m×
n列和m
×
n行(或m
×
n列和2
×m×
n行)。
[0291]
iii.将具有m
×
n个元素的变换的一维矢量重新排列到第一个m
×
n子块(诸如左上子块)中。
[0292]
iv.第二m
×
n子块中的所有系数可以被设置为零。
[0293]
b.在一个示例中,可以在解码器侧进行以下一个或多个操作。以下操作可以按顺序执行。
[0294]
i.将第一m
×
n个子块(诸如左上子块)中的系数重新排列为具有m
×
n个元素的一维矢量。
[0295]
ii.将具有变换矩阵的逆向rst应用于一维矢量,该变换矩阵具有m
×
n列和2
×m×
n行(或2
×m×
n列和m
×
n行)。
[0296]
iii.将具有2
×m×
n个元素的变换的一维矢量重新排列为两个相邻的m
×
n子块。
[0297]
c.在一个示例中,可将块划分成k(k>1)个子块,且可在子块级执行主变换和次变换两者。
[0298]
6.归零范围(例如,第2.10节中所述的nonzerosize)可取决于颜色分量。
[0299]
a.在一个示例中,对于相同的块尺寸,亮度和色度分量的范围可以不同。
[0300]
7.归零范围(例如,第2.10节中所述的nonzerosize)可取决于编解码信息。
[0301]
a.在一个示例中,它可以取决于编解码模式,诸如帧内或非帧内模式。
[0302]
b.在一个示例中,它可以取决于编解码模式,诸如帧内或帧间或ibc模式。
[0303]
c.在一个示例中,它可以取决于参考图片/运动信息。
[0304]
8.建议针对特定块尺寸的归零范围(例如,第2.10节中所述的nonzerosize)可取决于量化参数(qp)。
[0305]
a.在一个示例中,假设当qp等于qpa时nonzerosize等于nonzerosizea,并且当qp等于qpb时nonzerosize等于nonzerosizeb。如果qpa不小于qpb,则nonzerosizea不大于nonzerosizeb。
[0306]
b.不同的变换/逆变换矩阵可用于不同的nonzerosize。
[0307]
9.建议可以信令通知归零范围(例如,第2.10节中所述的nonzerosize),诸如在sps、pps、图片头、条带头、片组头、ctu行、ctu、cu或任何视频中数据单元中信令通知归零范围。
[0308]
a.可替代地,可以定义多个范围。并且,可以诸如在sps、pps、图片头、条带头、片组头、ctu行、ctu和cu中信令通知选择了哪个候选nonzerosize的指示。
[0309]
10.是否和/或如何应用rst可以取决于颜色格式和/或单独的平面编解码和/或颜
色分量的使用。
[0310]
a.在一个示例中,rst可以不应用于色度分量(诸如cb和/或cr)。
[0311]
b.在一个示例中,如果颜色格式是4:0:0,则rst可以不应用于色度分量。
[0312]
c.在一个示例中,如果使用单独的平面编解码,则rst可以不应用于色度分量。
[0313]
d.在一个示例中,用于特定块维度的nonzerosize可取决于颜色分量。
[0314]
i.在一个示例中,对于相同的块维度,色度分量上的nonzerosize可以小于亮度分量上的nonzerosize。
[0315]
11.建议当用单个编解码结构树对亮度和色度分量进行编解码时,可以分别向亮度和色度分量信令通知rst控制信息(诸如是否应用rst,和/或选择哪组变换矩阵)。
[0316]
12.是否以及如何应用rst可以取决于当前块和/或相邻块的编解码信息(诸如编解码模式)。
[0317]
a.在一个示例中,rst不能用于一种或多种特定的帧内预测模式。
[0318]
i.例如,rst不能用于lm模式。
[0319]
ii.例如,rst不能用于lm-t模式。
[0320]
iii.例如,rst不能用于lm-a模式。
[0321]
iv.例如,rst不能用于广角帧内预测模式。
[0322]
v.例如,rst不能用于bdpcm模式或/和dpcm模式或/和rbdpcm模式。
[0323]
vi.例如,rst不能用于alwip模式。
[0324]
vii.例如,rst不能用于某些特定的角度帧内预测模式(诸如,dc、平面、垂直、水平等)。
[0325]
vx.例如,在lm模式或/和lm-t模式或/和lm-a模式下,rst可以用于亮度分量,但不能用于色度分量。
[0326]
ix.例如,当应用联合色度残差编解码时,rst可以不用于色度分量。
[0327]
b.如果不能应用rst,则可以不信令通知用于指示当前块中与rst相关的信息的语法元素。
[0328]
13.建议将rst应用于非帧内编解码的块。
[0329]
a.在一个示例中,rst可以被应用于帧间编解码的块。
[0330]
b.在一个示例中,rst可以被应用于帧内块复制(ibc)编解码的块。
[0331]
c.在一个示例中,rst可以被应用于用组合的帧间帧内预测(ciip)编解码的块。
[0332]
14.建议对rst进行不同级别的控制。
[0333]
a.例如,可以在pps、条带头、图片头、片组头、片、ctu行、ctu中信令通知指示rst(诸如,控制标志)是否适用的信息。
[0334]
b.rst是否适用可能取决于标准配置文件/级别/层。
[0335]
15.提出是否应用位置相关的帧内预测组合(pdpc)可以取决于是否应用rst。
[0336]
a.在一个示例中,如果当前块应用了rst,则可以不应用pdpc。
[0337]
b.在一个示例中,如果当前块应用了rst,则可以应用pdpc。
[0338]
c.可替代地,是否应用rst可以取决于是否应用pdpc。
[0339]
i.在一个示例中,当应用pdpc时,不应用rst。
[0340]
ii.如果不能应用rst,则可以不信令通知用于指示当前块中与rst相关的信息的
语法元素。
[0341]
16.建议是否对用于帧内预测的相邻样点进行滤波可以取决于是否应用了rst。
[0342]
a.在一个示例中,如果当前块应用了rst,则可以不对相邻样点进行滤波。
[0343]
b.在一个示例中,如果当前块应用了rst,则可以对相邻样点进行滤波。
[0344]
c.可替代地,是否应用rst可以取决于是否对用于帧内预测的相邻样点进行了滤波。
[0345]
i.在一个示例中,当对用于帧内预测的相邻样点进行滤波时,不应用rst。
[0346]
ii.在一个示例中,当对用于帧内预测的相邻样点不进行滤波时,不应用rst。
[0347]
iii.如果不能应用rst,则可以不信令通知用于指示当前块中与rst相关的信息的语法元素。
[0348]
17.建议当用变换跳跃对当前块进行编解码时,可以应用rst。
[0349]
a.例如,跳过主变换,但是仍然可以应用二次变换。
[0350]
b.在变换跳过模式下使用的二次变换矩阵可能与在无变换跳过模式下使用的二次变换矩阵不同。
[0351]
18.建议用于rst的变换矩阵可以以小于8的比特宽度来存储。例如,用于rst的变换矩阵可以以6或4的比特宽度来存储。
[0352]
19.建议用于rst的变换矩阵可以以预测的方式存储。
[0353]
a.在一个示例中,用于rst的第一变换矩阵中的第一元素可以通过用于rst的第一变换矩阵中的第二元素来预测。
[0354]
i.例如,可以存储两个元素之间的差值。
[0355]
ii.例如,可以以小于8的比特宽度(诸如6或4)来存储该差值。
[0356]
b.在一个示例中,用于rst的第一变换矩阵中的第一元素可以通过用于rst的第二变换矩阵中的第二元素来预测。
[0357]
i.例如,可以存储两个元素之间的差值。
[0358]
ii.例如,可以以小于8的比特宽度(诸如6或4)来存储该差值。
[0359]
20.建议可以从用于rst的第二变换矩阵推导出用于rst的第一变换矩阵。
[0360]
a.在一个示例中,用于rst的第二变换矩阵的部分元素可以被拾取以构建用于rst的第一变换矩阵。
[0361]
b.在一个示例中,通过对用于rst的第二变换矩阵的全部或一部分旋转或翻转来获得用于rst的第一变换矩阵。
[0362]
c.在一个示例中,通过在用于rst的第二变换矩阵上的下采样或上采样来推导出用于rst的第一变换矩阵。
[0363]
21.建议信令通知语法元素,该语法元素在残差(可以被变换)之前被信令通知以指示当前块中与rst相关的信息。
[0364]
a.在一个示例中,与rst相关的信息的信令可以不取决于解析残差时所计算的非零或零系数。
[0365]
b.在一个示例中,在解析残差时可不对非零或零系数计数。
[0366]
c.在一个示例中,被rst设置为全零的、用于子块的编解码块标志(cbf)标志可以不被信令通知并被推断为0。
[0367]
d.在一个示例中,可以不信令通知被rst设置为零的系数的有效标志,并且将其推断为0。
[0368]
e.解析残差块的扫描顺序可取决于是否以及如何应用rst。
[0369]
i.在一个示例中,可以不扫描被rst设置为零的系数。
[0370]
f.解析残差块的算术编解码上下文可取决于是否以及如何应用rst。
[0371]
22.建议是否以及如何应用量化矩阵可以取决于是否以及如何应用rst。
[0372]
a.在一个示例中,无论是否应用rst,都可以应用不同的量化矩阵。
[0373]
b.可替代地,是否以及如何应用rst可以取决于是否以及如何应用量化矩阵。
[0374]
i.在一个示例中,当将量化矩阵应用于块时,可以不应用rst。
[0375]
23.建议将rst应用于量化系数/残差。
[0376]
a.在一个示例中,当使用变换跳过时,可以将rst应用于残差。
[0377]
b.在一个示例中,可以将rst应用于块的量化的变换系数。
[0378]
24.建议将rst应用于子块变换块。
[0379]
a.在一个示例中,rst可适用于由子块变换产生的左上系数。
[0380]
图16是视频处理装置1600的框图。装置1600可用于实现本文描述的一个或多个方法。装置1600可以实施在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置1600可以包括一个或多个处理器1602、一个或多个存储器1604和视频处理硬件1606。处理器1602可以被配置为实现在本文中描述的一种或多种方法。可以将(一个或多个)存储器1604用于存储用于实现这里描述的方法和技术的数据和代码。视频处理硬件1606可用于在硬件电路中实现本文档中描述的一些技术。
[0381]
图17是视频处理的示例方法1700的流程图。方法1700包括确定(1702)约束规则,该约束规则用于在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换。方法1700包括通过根据约束规则应用降维二次变换来执行(1704)转换。降维二次变换具有从当前视频块的维度降低的维度。降维二次变换与主变换在转换期间一起以特定顺序被应用。
[0382]
其他实施例和技术如以下示例中所述。
[0383]
1.一种视频处理方法,包括:确定约束规则,该约束规则用于在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据约束规则应用降维二次变换来执行转换;其中,降维二次变换具有从当前视频块的维度降低的维度,并且其中降维二次变换与主变换在转换期间一起以特定顺序被应用。
[0384]
2.根据示例1所述的方法,其中,所述转换包括将当前视频块编码为比特流表示,并且其中,所述特定顺序包括:首先在正向方向上应用所述主变换,然后选择性地在正向方向上应用降维二次变换,然后在正向方向上对降维二次变换的输出进行量化。
[0385]
3.根据示例1所述的方法,其中,所述转换包括:从所述比特流表示中解码所述当前视频块,并且其中,所述特定顺序包括:首先对所述比特流表示进行反量化,然后选择性地在反向方向上应用降维二次变换,然后将在反向方向上的主变换应用于反向方向上的降维二次变换的输出。
[0386]
4.根据示例1-3中任一项所述的方法,其中,所述约束规则规定将降维二次变换的输出的范围在反方向上裁剪到[mincoef,maxcoef]的范围,包括mincoef和maxcoef,其中,
mincoef和/或maxcoef是两个整数值,它们是当前视频块的条件的函数。
[0387]
5.根据示例4所述的方法,其中所述当前视频块的条件是由所述当前视频块表示的颜色或亮度分量的类型。
[0388]
6.根据示例1所述的方法,其中,约束规则规定将降维二次变换应用于当前视频块的一个或多个m
×
n子块,并将当前视频块的其余子块进行归零。
[0389]
7.根据示例1所述的方法,其中,约束规则规定将降维二次变换不同地应用于当前视频块的不同子块。
[0390]
8.根据示例1-5中任一项所述的方法,其中,所述约束规则规定由于当前视频块的尺寸为4
×
h或w
×
4,而将降维二次变换恰好应用于当前视频块的一个m
×
n子块,其中h是以整数像素为单位的高度,w是以整数像素为单位的宽度。
[0391]
9.根据示例8所述的方法,其中h>8或w>8。
[0392]
10.根据示例1-9中的任一项所述的方法,其中,所述当前视频块是视频的非正方形区域。
[0393]
11.根据示例2或3所述的方法,其中,所述约束规则规定将所述正向方向上的主变换的变换系数归零,或者将零系数填充到反向方向上的二次变换的输出中。
[0394]
在第4节的项目1中描述了示例1-5的其他实施例。在第4节的项目2中描述了示例6-7的其他实施例。在第4节的项目3中描述示例8-9的其他实施例。在第4节的项目4中描述了示例10-11的其他实施例。
[0395]
12.一种视频处理方法,包括:确定约束规则,该约束规则用于在当前视频块的比特流表示与当前视频块的像素之间以及相邻视频区域的比特流表示与相邻区域的像素之间的转换期间,选择性地应用降维二次变换,以及根据约束规则通过应用降维二次变换来执行转换;其中,降维二次变换具有从当前视频块和相邻视频区域的维度降低的维度,并且其中降维二次变换与主变换在转换期间一起以特定顺序被应用。
[0396]
13.根据示例12所述的方法,其中,所述相邻视频区域包括当前视频块的左上块。
[0397]
14.根据示例12所述的方法,其中,当前视频块和相邻视频区域对应于父视频块的子块。
[0398]
在第4节的项目5中描述了示例12-14的其他实施例。
[0399]
15.一种视频处理方法,包括:确定归零规则,以在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据归零规则应用降维二次变换来执行转换;其中,降维二次变换具有从当前视频块的维度降低的维度;其中,归零规则规定降维二次变换使用的系数的最大数量。
[0400]
16.根据示例15所述的方法,其中,所述系数的最大数量是当前视频块的分量标识的函数。
[0401]
17.根据示例16所述的方法,其中,对于亮度视频块和色度视频块系数的最大数量是不同的。
[0402]
18.根据示例15-17中任一示例所述的方法,其中,所述归零规则规定归零范围,所述归零范围是当前视频块的编解码信息的函数。
[0403]
19.根据示例15-17中的任一项所述的方法,其中,所述归零规则规定归零范围,所述归零范围是当前视频块的量化参数的函数。
[0404]
20.根据示例15-19中的任一示例的方法,其中,归零范围在比特流表示中由包括在序列参数集水平、或图片参数集水平、或图片头、或条带头、或片组头、或编解码树单元行、或编解码树单元、或编解码单元、或视频数据单元级别中的字段指示。
[0405]
在第4节的项目6中描述了示例15-17的其他实施例。在第4节的项目7中描述了示例18的其他实施例。在第4节的项目8中描述了示例19的其他实施例。在第4节的项目9中描述了示例20的其他实施例。
[0406]
21.一种视频处理方法,包括:确定用于在当前视频块的比特流表示和当前视频块的像素之间的转换期间选择性地应用降维二次变换的条件,以及通过根据条件应用降维二次变换来执行转换;其中,降维二次变换具有从当前视频块的维度降低的维度;并且其中,在比特流表示中信令通知该条件。
[0407]
22.根据示例21所述的方法,其中,所述条件是颜色格式或单独平面编解码的使用或基于当前视频块的颜色标识。
[0408]
在第4节的项目10中描述了示例21-22的其他实施例。
[0409]
23.根据示例21-22中的任一项所述的方法,其中,对所述色度和亮度分量,分别在所述比特流表示中信令通知所述条件。
[0410]
在第4节的项目11中描述了示例23的其他实施例。
[0411]
24.根据示例21-23中的任一项所述的方法,其中,所述条件取决于当前视频块和相邻视频区域的编解码信息。
[0412]
25.根据示例24所述的方法,其中,所述条件排除了对使用特定帧内预测模式进行编解码的当前视频块的应用。
[0413]
在第4节的项目12中描述了示例24-25的其他实施例。
[0414]
26.根据示例24所述的方法,其中,所述条件指定了对帧间编解码的当前视频块的应用。
[0415]
27.根据示例24所述的方法,其中,所述条件指定了对使用帧内块复制模式编解码的当前视频块的应用。
[0416]
在第4节的项目13中描述了示例25-26的其他实施例。
[0417]
28.根据示例21的方法,其中在比特流表示中以一定水平来信令通知所述条件,使得该水平内的所有块都符合该条件,其中该水平是序列参数集水平或图片参数集水平、或图片头、或条带头、或片组头、或编解码树单元行、或编解码树单元、或编解码单元、或在视频数据单元级别。
[0418]
在第4节的项目14中描述了示例28的其他实施例。
[0419]
29.根据示例21所述的方法,其中,所述条件是使用变换跳过模式对当前视频块进行编解码。
[0420]
在第4节的项目17中描述了示例29的其他实施例。
[0421]
30.一种视频处理方法,其包括:在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据条件应用降维二次变换来执行转换;其中,降维二次变换具有从当前视频块的维度降低的维度;其中,转换包括基于共存规则选择性地应用位置相关的帧内预测组合(pdpc)。
[0422]
31.根据示例30所述的方法,其中,所述共存规则排除由于应用所述二次变换而将
pdpc应用于当前视频块。
[0423]
32.根据示例30所述的方法,其中,所述共存规则规定由于应用所述二次变换而将所述pdpc应用于当前视频块。
[0424]
33.根据示例30所述的方法,其中,对使用所述pdpc的当前视频块执行选择性地应用二次变换。
[0425]
在第4节的项目15中描述了示例30-33的其他实施例。
[0426]
34.一种视频处理方法,包括:在当前视频块的比特流表示和当前视频块的像素之间的转换期间,应用降维二次变换,以及通过根据条件应用降维二次变换来执行转换;其中,降维二次变换具有从当前视频块的维度降低的维度;并且其中,所述应用控制在转换期间将相邻样点用于帧内预测。
[0427]
在第4节的项目16中描述了示例34的其他实施例。
[0428]
35.一种视频处理方法,包括:在当前视频块的比特流表示和当前视频块的像素之间的转换期间,选择性地应用降维二次变换,以及通过根据条件应用降维二次变换来执行转换;其中,降维二次变换具有从当前视频块的维度降低的维度;并且其中,所述选择性地应用控制在转换期间的量化矩阵的使用。
[0429]
36.根据示例35所述的方法,其中,仅由于应用二次变换而发生量化矩阵的使用。
[0430]
在第4节的项目22中描述了示例35-36的其他实施例。
[0431]
37.根据示例1-36中的任一项所述的方法,其中,所述主变换和所述二次变换被存储为比特宽度小于8的变换矩阵。
[0432]
38.根据示例1-36中的任一项所述的方法,其中,所述主变换和所述二次变换被存储为预测变换矩阵。
[0433]
39.根据示例1-36中的任一项所述的方法,其中,所述主变换可使用第一规则从所述二次变换中导出,或者其中所述二次变换可使用第二规则从所述主变换中导出。
[0434]
40.根据示例1-36中的任一项所述的方法,其中,在用于当前视频块的残差信息之前,比特流表示包括关于二次变换或主变换的信息。
[0435]
在第4节的项目18、19、20和21中描述了示例37-40的其他实施例。
[0436]
41.一种视频处理装置,其包括配置为实现示例1-40中的一个或多个所述的方法的处理器。
[0437]
42.一种其上存储有代码的计算机可读介质,该代码在由处理器执行时使处理器实现示例1-40中的任何一个或多个所述的方法。
[0438]
将会理解,所公开的技术可以体现在视频编码器或解码器中,以使用包括使用降维二次变换的技术来提高压缩效率。
[0439]
图18是示出其中可实现本文中所公开的各种技术的示例视频处理系统1800的框图。各种实施方式可以包括系统1800的一些或全部组成部分。系统1800可以包括用于接收视频内容的输入1802。视频内容可以以原始或未压缩的格式(例如8或10位多分量像素值)接收,或者可以以压缩或编码的格式接收。输入1802可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)和无线接口(诸如wi-fi或蜂窝接口)。
[0440]
系统1800可以包括可以实现本文中描述的各种编解码或编码方法的编解码组件
1804。编解码组件1804可以减少从输入1802到编解码组件1804的输出的视频的平均比特率,以生成视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。如组件1806所表示的,编解码组件1804的输出可以被存储或经由所连接的通信来发送。在输入1802处接收的视频的存储或传送的比特流(或编解码)表示可以被组件1808使用,以生成被发送到显示接口1810的像素值或可显示视频。从比特流表示中生成用户可见视频的处理有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编码工具或操作,并且将由解码器执行逆向编码结果的相应解码工具或操作。
[0441]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清多媒体接口(hdmi)或displayport等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其他能够执行数字数据处理和/或视频显示的设备。
[0442]
图19是根据本技术的视频处理的示例方法1900的流程图。方法1900包括,在操作1910处,为视频的块和视频的比特流表示之间的转换,确定来自降维逆向二次变换的输出值被约束在范围[min,max]内,包括min和max。降低的维度是从块的维度降低的维度,并且min和max是整数值。方法1900包括,在操作1920处,基于确定来执行转换。在一些实施例中,降维逆向二次变换包括低频不可分逆向变换,其中低频对应于降低的维度。
[0443]
在一些实施例中,反量化步骤之后的系数被约束在[qmin,qmax]范围内,包括qmin和qmax,qmin和qmax是正整数。满足(1)min等于qmin或(2)max等于qmax中的至少一个。在一些实施例中,该范围基于块的颜色分量。在一些实施例中,min或max中的至少一个基于颜色分量的比特深度。在一些实施例中,该范围基于块的形状。在一些实施例中,范围是基于块是正方形还是非正方形的。在一些实施例中,范围基于块的维度。在一些实施例中,在比特流表示中信令通知min或max之一。在一些实施例中,以序列参数集、图片参数集、条带头、片组头、编解码树单元或编解码单元来信令通知该范围。
[0444]
在一些实施例中,对于该块的亮度分量,min是-(1《《(extended_precision_processing_flag?max(15,bitdepthy 6):15)),max是(1《《(extended_precision_processing_flag?max(15,bitdepthy 6):15))。bitdepthy是亮度分量的比特深度,并且其中extended_precision_processing_flag是在比特流表示中信令通知的变量。
[0445]
在一些实施例中,对于块的色度分量,min是-(1《《(extended_precision_processing_flag?max(15,bitdepthc 6):15)),max是(1《《(extended_precision_processing_flag?max(15,bitdepthc 6):15))。bitdepthc是亮度分量的比特深度,并且其中extended_precision_processing_flag是在比特流表示中信令通知的变量。
[0446]
在一些实施例中,min等于-(1《《15),max等于(1《《15)-1。
[0447]
在一些实施例中,在序列参数集中信令通知extended_precision_processing_flag。在一些实施例中,在正向主变换和量化步骤之间适用的二次变换之后的块的系数被限制在一定范围内。
[0448]
图20是根据本技术的视频处理的示例方法2000的流程图。方法2000包括,在操作2010处,为视频的块与视频的比特流表示之间的转换,基于可应用二次变换的子块的数量,确定将降维二次变换应用于该块的子块的方式。二次变换应用于正向主变换与量化步骤之
间、或反量化步骤与逆向主变换之间的块。降低的维度是从块的维度降低的维度。方法2000还包括,在操作2020处,基于确定来执行转换。
[0449]
在一些实施例中,降维二次变换包括低频不可分变换,其中低频对应于降低的维度。在一些实施例中,降低的维度对应于子块的维度。
[0450]
在一些实施例中,子块具有4
×
4的维度。在一些实施例中,子块与子块索引相关联。在非零范围之外的子块的系数被设置为零,并且基于子块索引确定归零范围。在一些实施例中,在非零范围之外的子块的系数被设置为零。基于可应用二次变换的子块的数量来确定非零范围。
[0451]
在一些实施例中,可应用二次变换的子块的数量大于1。二次变换以第一方式被应用于第一子块,并且二次变换以与第一方式不同的第二方式被应用于第二子块。在一些实施例中,在第一非零范围之外的第一子块的系数被设置为零。在第二非零范围之外的第二子块的系数被设置为零,并且第一非零范围不同于第二非零范围。在一些实施例中,第一非零范围大于第二非零范围。在一些实施例中,第一非零范围被表示为16,第二非零范围被表示为8。
[0452]
在一些实施例中,在将二次变换仅应用于一个子块的情况下,在第一非零范围之外的唯一一个子块的系数被设置为零。在将二次变换应用于多个子块的情况下,在第二非零范围之外的多个子块的系数被设置为零。在一些实施例中,第一非零范围不同于第二非零范围。在一些实施例中,第二非零范围被表示为8。
[0453]
图21是根据本技术的视频处理的另一示例方法的流程图。方法2100包括,在操作2110处,为视频的块和视频的比特流表示之间的转换,在块的维度满足条件的情况下,确定降维二次变换应用于该块的单个子块。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。方法2100还包括,在操作2120处,基于该确定来执行转换。
[0454]
在一些实施例中,降低的维度对应于子块的维度。在一些实施例中,二次变换可应用于的单个子块是当前块的左上子块。在一些实施例中,单个子块的维度为m
×
n,m和n为正整数。在一些实施例中,m=n=4。在一些实施例中,该条件规定块的维度为4
×
h或w
×
4,并且其中h>8且w>8。在一些实施例中,满足(1)h》t1或(2)w》t2中的至少一个,t1和t2大于8。在一些实施例中,t1=t2=16。在一些实施例中,满足(1)h《t1或(2)w《t2的中的至少一个,t1和t2大于8。在一些实施例中,t1=t2=32。在一些实施例中,该条件规定块的维度为m
×
h或w
×
n,并且其中h≥n且w≥m。
[0455]
图22是根据本技术的视频处理的另一示例方法的流程图。方法2200包括,在操作2210处,为视频的块和视频的比特流表示之间的转换,确定降维二次变换可应用于块中具有维度k
×
l的区域。k和l是正整数,且k不等于l。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。方法2200还包括,在操作2220处,基于该确定来执行转换。
[0456]
在一些实施例中,降低的维度对应于区域的维度。在一些实施例中,在非零范围之外的区域的系数被设置为零。在一些实施例中,非零范围被表示为块中的左上区域,左上区域的尺寸为m
×
m,m小于或等于k和l。
[0457]
图23是根据本技术的视频处理的另一示例方法的流程图。方法2300包括,在操作
2310处,为视频的块与视频的比特流表示之间的转换,基于块的特性来确定非零范围。非零范围对应于一个范围,在该范围之外,与降维二次变换相关联的系数被设置为零。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。方法2300还包括,在操作2320处,基于该确定来执行转换。
[0458]
在一些实施例中,块的特性包括块的颜色分量。在一些实施例中,用于块的亮度分量的第一非零范围不同于用于块的色度分量的第二非零范围。在一些实施例中,块的特性包括块的编解码信息。在一些实施例中,编解码信息包括指示以帧内模式还是非帧内模式对块进行编解码的信息。在一些实施例中,编解码信息包括指示是否以帧内模式、帧间模式、帧内块复制模式对块进行编解码的信息。在一些实施例中,编解码信息包括运动信息的参考图片。在一些实施例中,块的特性包括块的量化参数。在一些实施例中,第一非零范围对应于第一量化参数,第二非零范围对应于第二量化参数,并且其中在第一量化参数大于或等于第二量化参数的情况下,第一非零范围小于或等于第二非零范围。
[0459]
在一些实施例中,不同的非零范围与用于二次变换的不同变换矩阵相关联。在一些实施例中,在序列参数集、图片参数集、图片头、条带头、片组头、编解码树单元(ctu)行、ctu、或编解码单元中的比特流表示中信令通知非零范围。在一些实施例中,多个非零范围可应用二次变换,并且在序列参数集、图片参数集、图片头、条带头、片组头、编解码树单元(ctu)行、ctu、或编解码单元的比特流表示中信令通知指示选择多个非零范围之一的值。
[0460]
在一些实施例中,执行转换包括基于视频的块生成比特流表示。在一些实施例中,执行转换包括从比特流表示生成视频的块。
[0461]
图24a是根据本技术的视频编码的示例方法的流程图。方法2400包括,在操作2410处,确定降维二次变换可应用于视频块的两个相邻子块。两个相邻子块中的每一个具有m
×
n的维度,m和n是正整数。在正向主变换和量化步骤之间执行二次变换。降低的维度是从块的维度降低的维度。方法2400还包括,在操作2420处,基于该确定来生成视频的编解码表示。
[0462]
在一些实施例中,降低的维度对应于两个相邻块的维度。在一些实施例中,该方法包括将两个相邻子块的系数布置成具有2
×m×
n个元素的一维向量。在一些实施例中,该方法包括通过使用变换矩阵将二次变换应用于一维矢量来获得m
×
n个变换元素。变换矩阵具有2
×m×
n个元素的第一维和m
×
n个元素的第二维。在一些实施例中,该方法包括将m
×
n个变换元素重新布置到两个相邻子块中的第一子块中。在一些实施例中,该方法包括将两个相邻子块中的第二子块中的元素设置为零。在一些实施例中,正向主变换和二次变换均在子块级别上执行。
[0463]
图24b是根据本技术的视频解码的示例方法的流程图。方法2450包括,在操作2460处,确定降维二次变换可应用于视频块的两个相邻子块。两个相邻子块中的每一个具有m
×
n的维度,m和n是正整数。在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。方法2450还包括,在操作2470处,通过根据确定来解析视频的编解码表示来生成视频的块。
[0464]
在一些实施例中,降低的维度对应于两个相邻块的维度。在一些实施例中,该方法包括将两个相邻子块中的第一子块的系数布置成具有m
×
n个元素的一维向量。在一些实施例中,该方法包括通过使用变换矩阵将二次变换应用于一维矢量来获得2
×m×
n个变换元
素。变换矩阵具有m
×
n个元素的第一维和2
×m×
n个元素的第二维。在一些实施例中,该方法包括将2
×m×
n个变换元素重新布置到两个相邻的子块中。在一些实施例中,m=n=4。
[0465]
在一些实施例中,降维二次变换包括低频不可分变换,低频对应于降低的维度。
[0466]
图25是根据本技术的视频处理的另一示例方法的流程图。方法2500包括,在操作2510处,为视频的块和视频的比特流表示之间的转换,根据规则、基于与块相关联的特性,确定是否对块应用降维二次变换。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。方法2500包括,在操作2520处,基于确定来执行转换。
[0467]
在一些实施例中,与块相关联的特性包括块的编解码信息或相邻块的编解码信息。在一些实施例中,该规则规定在编解码信息指示以一种或多种特定编解码模式对块或相邻块进行编解码的情况下,二次变换不应用于该块。在一些实施例中,一种或多种特定编解码模式包括以下中的至少一种:线性模式(lm)模式、lm-t模式、lm-a模式、一种或多种广角帧内预测模式、块差分脉冲编解码调制(bdpcm)模式、差分脉冲编解码调制(dpcm)模式、残差域块差分脉冲编解码调制(rbdpcm)模式、基于矩阵的帧内预测(mip)模式或一个或多个角度帧内预测模式。在一些实施例中,该规则规定在以联合色度残差编解码模式对块进行编解码的情况下,二次变换不应用于该块的色度分量。以联合色度残差编解码模式对块进行编解码包括确定联合残差,该联合残差是与该块的色度分量相关联的残差的平均。在一些实施例中,该规则规定二次变换应用于块的亮度分量,并且不应用于以lm模式、lm-t模式或lm-a模式编解码的块的色度分量。
[0468]
在一些实施例中,与块相关联的特性包括在量化或反量化步骤之后的块的系数或残差。在一些实施例中,该规则规定在将变换跳过模式用于对该块进行编解码的情况下,将二次变换应用于残差。变换跳过模式是跳过正向或逆向主变换的模式。在一些实施例中,该规则规定将二次变换应用于块的量化变换系数。
[0469]
在一些实施例中,与块相关联的特性包括是否使用帧内编解码工具对块进行编解码。在一些实施例中,该规则规定在使用帧间编解码工具对块进行编解码的情况下,二次变换可应用于该块。在一些实施例中,该规则规定在使用帧内块复制编解码工具对块进行编解码的情况下,二次变换可应用于该块。在一些实施例中,该规则规定在使用组合帧间帧内预测编解码工具对块进行编解码的情况下,二次变换可应用于该块。
[0470]
在一些实施例中,与块相关联的特性包括与块的色度格式相关联的信息。在一些实施例中,规则规定二次变换不应用于块的色度分量。在一些实施例中,该规则规定在块的色度格式为4:0:0的情况下,二次变换不应用于该块的色度分量。在一些实施例中,该规则规定在色度格式的色度分量被单独编解码的情况下,二次变换不应用于块的色度分量。在一些实施例中,规则规定二次变换应用于块。基于块的颜色分量确定与块的维度相关联的二次变换的非零范围,该非零范围是在其之外将块的系数设置为零的范围。在一些实施例中,对于块的相同维度,块的色度分量的第一非零范围小于块的亮度分量的第二非零范围。
[0471]
在一些实施例中,基于二次变换是否适用来确定位置相关的帧内预测组合(pdpc)编解码步骤是否应用于该块。在一些实施例中,在二次变换应用于该块的情况下,不应用pdpc编解码步骤。在一些实施例中,在二次变换应用于该块的情况下,应用pdpc编解码步骤。
[0472]
在一些实施例中,与块相关联的特性包括位置相关的帧内预测组合(pdpc)编解码步骤是否应用于该块。在一些实施例中,该规则规定在pdpc编解码步骤适用的情况下,二次变换不应用于该块。在一些实施例中,基于二次变换是否应用于块来确定是否针对帧内预测编解码步骤对块的相邻样点进行滤波。在一些实施例中,在将二次变换应用于块的情况下,不对相邻样点进行滤波。在一些实施例中,在将二次变换应用于块的情况下,对相邻样点进行滤波。
[0473]
在一些实施例中,与块相关联的特性包括是否针对应用于块的帧内预测编解码步骤对块的相邻样点进行滤波。在一些实施例中,该规则规定在对相邻样点进行滤波的情况下,二次变换不适用。在一些实施例中,该规则规定在不对相邻样点进行滤波的情况下,二次变换不适用。
[0474]
在一些实施例中,与块相关联的特性包括是否以变换跳过模式对块进行编解码,在该变换跳过模式中跳过正向或逆向主变换。在一些实施例中,利用变换跳过模式对块进行编解码,并且其中二次变换可应用于该块。在一些实施例中,在启用变换跳过模式的情况下用于二次变换的第一变换矩阵与在禁用变换跳过模式的情况下用于二次变换的第二变换矩阵不同。在一些实施例中,基于是否应用二次变换来确定量化矩阵是否应用于该块。在一些实施例中,在二次变换适用的情况下应用第一量化矩阵,并且在二次变换不适用的情况下应用与第一量化矩阵不同的第二量化矩阵。
[0475]
在一些实施例中,与块相关联的特性包括量化矩阵是否应用于该块。在一些实施例中,该规则规定在应用量化矩阵的情况下二次变换不适用。在一些实施例中,与块相关联的特性包括子块级变换是否应用于该块。在一些实施例中,该规则规定二次变换可应用于由子块级变换生成的块的左上子块的系数。在一些实施例中,基于是否将二次变换应用于块来确定在量化或反量化步骤之后解析残差块的扫描顺序。在一些实施例中,不扫描被二次变换设置为零的系数。在一些实施例中,基于是否将二次变换应用于块来确定用于在量化或反量化步骤之后解析残差块的算术编解码上下文。
[0476]
在一些实施例中,在比特流表示中以一个或多个级别信令通知与二次变换有关的信息,一个或多个级别包括图片参数集、条带、头、图片头、片组头、片、编解码树单元行或编解码树单元。在一些实施例中,二次变换是否适用是基于信息被信令通知的一个或多个级别。在一些实施例中,对在编解码树单元内编解码的亮度分量和色度分量,分别信令通知该信息。在一些实施例中,在二次变换不应用于块的情况下,与二次变换有关的一个或多个语法元素不包括在块的比特流表示中。在一些实施例中,在比特流表示中的量化变换的残差之前信令通知与二次变换有关的一个或多个语法元素。在一些实施例中,独立于在解析量化残差时确定的系数的数量来信令通知一个或多个语法元素。在一些实施例中,在解析量化残差时不计算系数的数量。在一些实施例中,指示通过二次变换将所有子块设置为零的语法标志不包括在比特流表示中,其中隐含语法标志的值为0。在一些实施例中,指示通过二次变换将系数设置为零的语法标志不包括在比特流表示中,其中隐含语法标志的值为0。
[0477]
图26是根据本技术的视频处理的另一示例方法的流程图。方法2600包括,在操作2610处,为视频的块与视频的比特流表示之间的转换,为应用于该块的降维二次变换的一个或多个变换矩阵的系数确定比特精度约束。在正向主变换和量化步骤之间、或者在反量化步骤和逆向主变换之间执行二次变换。降低的维度是从块的维度降低的维度。方法2600
还包括,在操作2620处,基于该确定来执行转换。
[0478]
在一些实施例中,比特精度约束包括以小于8的比特宽度存储一个或多个变换矩阵的系数。在一些实施例中,比特精度约束包括基于一个或多个变换矩阵之间的关联,可存储一个或多个变换矩阵的系数。在一些实施例中,存储变换矩阵中的第一元素和第二元素之差,其中,基于第二元素来导出第一元素。在一些实施例中,存储第一变换矩阵中的第一元素与第二变换矩阵中的第二元素之差,其中,基于第二元素来导出第一元素。在一些实施例中,该差由小于8的比特宽度表示。在一些实施例中,该比特宽度是6或4。
[0479]
在一些实施例中,降维二次变换包括低频不可分变换,低频对应于降低的维度。
[0480]
图27是根据本技术的视频处理的另一示例方法的流程图。方法2700包括,在操作2710,为视频的编解码单元和所述视频的比特流表示之间的转换,基于与所述编解码单元中的一个或多个变换单元相关联的规则,确定将降维二次变换(rst)工具用于所述编解码单元。所述rst工具包括,在编码期间,在正向主变换和量化步骤之间应用正向二次变换,或在解码期间,在反量化步骤和逆向主变换之间应用逆向二次变换。所述正向二次变换和所述逆向二次变换的尺寸小于所述编解码单元的尺寸。方法2700还包括,在操作2720处,基于所述确定执行所述转换。
[0481]
在一些实施例中,所述规则与所述编解码单元的维度和最大变换尺寸有关。在一些实施例中,所述规则规定在所述编解码单元的宽度或高度大于所述最大变换尺寸的情况下,禁用所述二次变换。
[0482]
在一些实施例中,相对于所述编解码单元的维度,所述规则与变换单元的维度有关。在一些实施例中,所述规则规定在所述编解码单元的维度大于所述变换单元的维度的情况下,禁用所述二次变换。
[0483]
在一些实施例中,所述规则与所述编解码单元中的一个或多个变换单元的数量有关。在一些实施例中,所述规则规定在所述编解码单元中的一个或多个变换单元的数量大于1的情况下,对所述编解码单元禁用所述二次变换。在一些实施例中,所述规则规定在所述编解码单元中的一个或多个变换单元的数量大于1的情况下,所述二次变换应用于所述一个或多个变换单元中的单个变换单元。在一些实施例中,所述二次变换应用于所述编解码单元中的第一变换单元。在一些实施例中,所述二次变换应用于所述编解码单元中的最后一个变换单元。在一些实施例中,所述规则规定在所述编解码单元中的一个或多个变换单元的数量大于1的情况下,所述二次变换应用于多个变换单元。在一些实施例中,所述二次变换独立地应用于所述一个或多个变换单元中的每一个。在一些实施例中,所述规则规定所述二次变换是否应用于所述编解码单元中的第二变换单元与所述二次变换是否应用于所述编解码单元中的第一变换单元无关。在一些实施例中,对于所述多个变换单元中的一个变换单元,所述规则与所述变换单元的非零系数的数量有关,而不考虑所述编解码单元中任何其他变换单元的非零系数的数量。在一些实施例中,在所述非零系数的数量小于阈值的情况下,所述规则规定对所述变换单元禁用所述二次变换。在一些实施例中,所述阈值为2。在一些实施例中,其中在所述比特流表示中省略了指示对所述变换单元禁用所述二次变换的语法元素。
[0484]
在一些实施例中,所述规则与所述编解码单元中的一个或多个变换单元中的单个变换单元有关。在一些实施例中,在所述单个变换单元的非零系数的数量小于阈值的情况
下,所述规则规定对所述编解码单元禁用所述第二变换。在一些实施例中,在所述单个变换单元的子区域的非零系数的数量小于阈值的情况下,所述规则规定对所述编解码单元禁用所述第二变换。在一些实施例中,所述子区域包括所述单个变换单元的左上区域。在一些实施例中,所述子区域的维度为4
×
4。在一些实施例中,所述阈值为2。在一些实施例中,所述单个变换单元包括所述一个或多个变换单元中的第一个变换单元或最后一个变换单元。
[0485]
在一些实施例中,所述规则与语法标志有关,所述语法标志与所述一个或多个变换单元中的变换单元相关联。在一些实施例中,在所述比特流表示中省略了所述语法标志的情况下,所述规则规定对所述变换单元禁用所述二次变换。在一些实施例中,在所述比特流表示中省略了所述语法标志的情况下,所述规则规定所述二次变换应用于所述变换单元。在一些实施例中,所述规则规定:在所述编解码单元包括单个变换单元的情况下,所述语法标志和与所述编解码单元相关联的另一语法标志相同,所述另一语法标志基于关于所述编解码单元的系数的信息来确定。在一些实施例中,所述规则规定:在所述编解码单元包括多个变换单元的情况下,与所述多个变换单元中的最后一个变换单元相关联的语法标志和与所述编解码单元相关联的另一语法标志相同,所述另一语法标志基于关于所述编解码单元的系数的信息来确定。在一些实施例中,与所述多个变换单元中的其他变换单元相关联的语法标志指示对所述其他变换单元禁用所述二次变换。在一些实施例中,与所述多个变换单元中的其他变换单元相关联的语法标志指示所述二次变换可应用于所述其他变换单元。
[0486]
图28是根据本技术的视频处理的另一示例方法的流程图。方法2800包括在操作2810处,为包括一个或多个颜色分量块的视频块与视频的比特流表示之间的转换,根据规则,确定将降维二次变换(rst)工具应用于块的一个或多个颜色分量的方式。所述rst工具包括,在编码期间,在正向主变换和量化步骤之间应用正向二次变换,或在解码期间,在反量化步骤和逆向主变换之间应用逆向二次变换。所述正向二次变换和所述逆向二次变换的尺寸小于所述编解码单元的尺寸。方法2800还包括,在操作2810处,基于所述确定执行所述转换。
[0487]
在一些实施例中,所述规则规定:在使用单个编解码树对所述块进行分割的情况下,所述二次变换是否应用于所述块的第一分量、以及所述二次变换是否应用于所述块的第二分量是独立确定的。在一些实施例中,所述第一分量包括亮度分量,并且其中,所述第二分量包括色度分量。在一些实施例中,其中所述规则规定基于所述第一分量的非零系数的数量而不考虑所述第二分量的非零系数的数量来确定是否将所述二次变换应用于所述块的所述第一分量。
[0488]
在一些实施例中,所述规则规定在使用单个编解码树对所述块进行分割的情况下,基于所述二次变换是否应用于所述块的第二分量,来确定是否将所述二次变换应用于所述块的第一分量。在一些实施例中,所述规则规定基于所述第二分量的非零系数的数量来确定是否将所述二次变换应用于所述块的所述第一分量。在一些实施例中,所述第一分量包括色度分量,并且其中,所述第二分量包括亮度分量。在一些实施例中,所述第一分量包括红色分量或蓝色分量,并且其中所述第二分量包括绿色分量。在一些实施例中,所述规则规定在所述分量或所述分量的子区域的非零系数的数量小于阈值的情况下,对所述块的分量禁用所述二次变换。在一些实施例中,所述子区域是所述块的左上区域。在一些实施例
中,所述子区域的维度为4
×
4。在一些实施例中,所述阈值为2。
[0489]
在一些实施例中,在所述比特流表示中省略了指示对所述块的分量禁用所述二次变换的语法标志。在一些实施例中,所述规则是否适用是基于所述编解码单元、变换单元或所述块的维度w
×
h。在一些实施例中,所述规则在w>t、t为正整数的情况下适用。在一些实施例中,所述规则在h>t、t为正整数的情况下适用。在一些实施例中,所述规则在w>t且h>t、t为正整数的情况下适用。在一些实施例中,t为64。在一些实施例中,t等于所述编解码单元、变换单元或所述块的最大变换尺寸。
[0490]
在一些实施例中,执行所述转换包括基于所述视频的所述块生成所述比特流表示。在一些实施例中,执行所述转换包括从所述比特流表示生成所述视频的所述块。
[0491]
所公开技术的一些实施例包括作出启用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被启用时,编码器将在视频块的处理中使用或实现该工具或模式,但不一定基于该工具或模式的使用来修改所产生的比特流。也就是说,当基于决策或确定启用视频处理工具或模式时,从视频块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当视频处理工具或模式被启用时,解码器将在知晓已经基于视频处理工具或模式修改比特流的情况下处理比特流。也就是说,将使用基于决策或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
[0492]
所公开技术的一些实施例包括作出禁用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被禁用时,编码器将不在视频块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当视频处理工具或模式被禁用时,解码器将在知晓未使用基于所述决策或确定而启用的视频处理工具或模式修改比特流的情况下处理比特流。
[0493]
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到相应的比特流表示的转换期间应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可以例如对应于在比特流内的不同位置中并置或散布的比特。例如,可以根据变换和编码的误差残差值并且还使用头部(header)中的比特和比特流中的其他字段来对宏块进行编码。
[0494]
本文档中描述公开和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文档中所公开的结构及其结构等效体,或其中一个或多个的组合。本说明中描述的主题的实现可以实现为一个或多个计算机程序产品,例如,一个或多个编码在有形的且非易失的计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信令的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播的信令是人为生成的信令,例如,机器生成的电、光或电磁信令,其被生成以编码信息以传输到合适的接收器设备。
[0495]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为
模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标志语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0496]
本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
[0497]
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及cd rom和dvd rom盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0498]
虽然本专利文件包括许多细节,但不应将其解释为对任何主题或权利要求范围的限制,而应解释为对特定技术的特定实施例的特性的描述。本专利文件在单独实施例的上下文描述的某些特性也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特性可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特性,并且权利要求的组合可以指向子组合或子组合的变体。
[0499]
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0500]
本文仅描述了一些实现和示例,可以基于本专利文件中描述和说明的内容做出其他实现、增强和变体。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献