掌桥专利:专业的专利平台
掌桥专利
首页

一种视频编码快速隐式选择变换方法及装置

文献发布时间:2024-04-18 19:58:26


一种视频编码快速隐式选择变换方法及装置

技术领域

本发明属于视频编解码技术领域,涉及有损视频编码技术,尤其涉及一种视频编码快速隐式选择变换方法和面向该方法的视频编码器变换电路。

背景技术

AVS3视频编码标准是一种有损视频编码方式,对于帧内预测产生残差的编码效果直接影响重构图像的质量。由于帧内预测使用的是基于一维线性模型对二维编码单元进行预测的方式,准确度相对较低,产生残差也相对较大。Karhunen-Loeve(K-L)变换理论上是有损视频编码的最佳的变换方法,离散余弦变换DCT-Ⅱ(Discrete Cosine Transform-Ⅱ)是K-L变换的最近似变换方案,可以平衡编码效率和运算复杂度的关系,在目前AVS3标准硬件编码器中,采用DCT-Ⅱ单一固定变换核。然而,单一固定变换核对于具有高度动态图像统计量的自然图像和视频的自适应性十分有限。因此,需要引入适当的变换核以适应帧内预测产生残差的多样分布特性,并解决引入新的变换核会增加变换标识额外开销的问题。AVS3中引入了更大的变换块尺寸,对应支持4*4到64*64尺寸大小的变换操作,如何在保证视频编码器硬件电路面积合理的情况下实现所有尺寸的变换操作是视频编码器硬件设计中的一大难点。

可见,单一固定变换核对于具有高度动态图像统计量的自然图像和视频的自适应性十分有限,引入新的变换核会增加变换标识额外开销。目前,现有技术暂无AVS3编码标准的快速隐式变换方法和硬件结构。最近的相关工作中,文献(Y.Zhang et al.,"Implicit-Selected Transform in Video Coding,"2020IEEE International Conference onMultimedia&Expo Workshops(ICMEW),London,UK,2020,pp.1-6,doi:10.1109/ICMEW46912.2020.9105962.)提出了一种隐择变换方法,在DCT-Ⅱ变换核的基础上增加了一种新的变换核DST-Ⅶ,为了不增加额外的标志位开销,利用量化系数中非零系数个数的奇偶性来标识变换类型,但是,该方法由于引入新的变换核会导致运算量翻倍,从而导致视频编码器编码电路中的变换模块所消耗的时钟周期数和硬件资源大大增加,不利于硬件设计。文献(宋佳柔,施隆照.一种HEVC高速并行的DCT架构[J].中国集成电路,2021,30(11):50-55.)提出了一种二维DCT变换平行结构,吞吐率高,适用于实时编码场景,但是,该结构只支持一种变换核,不适用于含有多种变换核的变换模块,难以实现多变换核的视频编解码帧内预测。

发明内容

为了克服上述现有技术的不足,本发明提供一种硬件友好的视频编码快速隐式选择变换方法和视频编码器变换电路,包括:基于帧内预测残差块空间分布特性的快速隐式选择变换算法以及基于改良RAG-n(n-dimensional reduced adder graph algorithm)算法的视频编码器变换模块硬件结构设计,通过合理安排视频编码器电路各并行流水线实现电路面积和速度之间的平衡,且能减少计算时间,使得有损视频编码消耗的硬件资源和对残差块的变换过程所需要的时钟周期数都较少,且更易于实现。

本发明提供的技术方案是:

一种硬件友好的视频编码快速隐式选择变换方法,输入视频编码过程中帧内预测产生的残差块,采用两种变换核对帧内预测产生的残差块进行变换操作;基于残差块的空间分布特性和变换核的特点,可以实现两种变换核的快速选择,得到视频编码变换系数。包括如下步骤:

1)在视频编码生成帧内预测残差块时记录残差块中绝对值为最大值的残差的坐标;根据坐标,判断绝对值最大的残差位于帧内预测残差块的位置;

2)若绝对值最大的残差位于残差块的右下角,则采用DST-Ⅶ变换核对残差块进行变换;

若绝对值最大的残差位于其他位置,则分别使用DCT-Ⅱ和DST-Ⅶ变换核对残差块进行变换,并根据率失真优化进行比较,得到其中最优的变换类型;

3)利用视频编码量化过程中产生的非零量化系数个数的奇偶性作为选择变换标志;

当非零量化系数为偶数时采用DCT-Ⅱ变换核;当非零量化系数为奇数时采用DST-Ⅶ变换核。

本发明具体实施时,将上述视频编码快速隐式选择变换方法应用于AVS3编码中边长为4*4~32*32大小的视频编码帧内预测残差块。

本发明面向快速隐式选择变换方法,设计了一种AVS3视频编码器的变换电路,支持4*4到64*64尺寸的所有视频编码帧内预测残差块,设计视频编码器电路的并行编码流水线,使得电路的面积和视频编码计算速度之间保持平衡;包括一维水平DST/DCT变换模块、转置存储器模块、一维垂直DST/DCT变换模块。DST和DCT变换均为可分离变换,可以分解成两次一维变换。一维水平DST/DCT变换模块用于处理第一次一维水平变换过程。对第一次水平变换的输出结果逐行保存在转置存储器中,再逐列取出,便可以实现转置功能。从转置存储器中逐列取出数据传递给一维垂直DST/DCT变换模块,进行垂直变换,得到最终变换结果。

与现有技术相比,本发明的有益效果是:

本发明提供一种硬件友好的视频编码快速隐式选择变换方法和面向该方法的变换电路,设计了AVS3编码标准中一种新的变换算法方案,基于帧内预测残差块空间分布特性的快速隐式变换方法,应用于边长为4*4~32*32大小的视频编码帧内预测残差块。并提出面向快速隐式选择变换方法的变换电路装置,支持4*4到64*64尺寸的所有残差块,通过合理安排视频编码器电路各并行流水线实现电路面积和速度之间的平衡。本发明添加一种新的变换核而不增加额外的比特开销,同时还能减少计算时间。本发明技术方案使得有损视频编码消耗的硬件资源和对残差块的变换过程所需要的时钟周期数都较少,且更易于实现。

附图说明

图1为本发明方法定义的残差块绝对值最大值所在位置的标识图;

其中,残差块的左上角的值定义为LT,右上角为RT,左下角为LB,右下角为RB。

图2为本发明的快速隐式选择变换算法的流程框图。

图3为N点DST-Ⅶ通用移位加法器结构图;

其中,(a)为用于DST-Ⅶ的4点移位加法器;(b)为为用于DST-Ⅶ的8点移位加法器;(c)为为用于DST-Ⅶ的16点移位加法器;(d)为为用于DST-Ⅶ的32点移位加法器。

图4为本发明具体实施采用的一维DST-Ⅶ加法树的结构示意图。

图5为本发明具体实施中的2D快速变换模块硬件结构示意图。

图6为本发明具体实施中的32点变换模块流水线设计示意图。

具体实施方式

下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。

本发明提出一种视频编码快速隐式选择变换方法和视频编码器电路装置,包括:基于残差块空间分布特性的快速隐式变换方法和针对AVS3的变换电路。其中,残差块为经过视频编码帧间预测和帧内预测得到的视频编码预测块与视频编码原始块做差得到。

现有的隐式选择变换算法中在变换模块中引入新的变换核:离散正弦变换核7(Discrete Sine Transform-Ⅶ,DST-Ⅶ),引入新的变换核会进一步增大视频变换编码所占用的时间和开发硬件电路使用的资源。本发明针对AVS3视频编码标准的特点,对隐式选择变换算法进行优化得到快速算法,并对变换模块进行面向快速隐式选择变换算法的硬件设计。

视频编码预测过程中,由于不同类型的变换核适应于残差分布不同的残差块,本发明提出基于残差块空间分布特性的快速变换方法。DCT-Ⅱ的一阶基函数图像称为直流分量,它提取整个变换块的平均值,DST-Ⅶ的直流分量在残差块的右下角存在更大的能量偏差,它对于残差块的右下角的权重比左上角高,说明当残差块的左上角区域值比较小的时候,使用DST-Ⅶ变换核能够得到更好的视频重建质量。将残差块的左上角的值定义为LT,右上角为RT,左下角为LB,右下角为RB,如图1所示,当RB为4个值中的最大值时,水平变换和垂直变换组合直接选择DST-Ⅶ变换核,不再和DCT-Ⅱ变换核进行率失真优化(RateDistortion Optimization,RDO)候选。由于DCT-Ⅱ适用于大多数残差分布,因此在其余情况中均参加RDO候选,快速选择方法如表1所示。

表1变换核参加RDO候选的快速选择方法

本发明的快速隐式选择变换方法流程如图2所示,具体步骤如下:

1)在视频编码生成帧内预测残差块时记录残差块中绝对值为最大值的残差坐标,根据坐标,判断该绝对值最大的残差位于帧内预测残差块的位置;

2)若残差块的最大值位于残差块的右下角,则直接采用DST-Ⅶ变换核对残差块进行变换;

3)残差块的最大值位于其他位置,则分别使用DCT-Ⅱ和DST-Ⅶ变换核对残差块进行变换,并根据率失真优化(RDO)进行比较,得到最优变换类型为DCT-Ⅱ或DST-Ⅶ变换。

4)利用视频编码量化过程中产生的非零量化系数个数的奇偶性(Parity of theNumber of Non-zero Coefficient,PNNC)作为选择变换标志,PNNC为偶数时表示采用DCT-Ⅱ变换核,PNNC为奇数时表示采用DST-Ⅶ变换核。

本发明提供的视频编码器的变换电路,是面向快速隐式选择变换方法的,支持4*4到64*64尺寸的所有残差块,设计视频编码器电路的各并行流水线,使得电路的面积和计算速度之间保持平衡;包括一维水平DST/DCT变换模块、转置存储器模块、一维垂直DST/DCT变换模块。

图3分别给出了本发明设计的N=4,8,16,32的DST-Ⅶ的通用移位加法器(Shift-Addition Unit,SAU)结构图。对于N点变换电路即N点一维水平DST/DCT变换模块,需要N个SAU,其中SAU类型取决于N的值。图4给出了本发明采用的一维DST-Ⅶ加法树的结构,在AVS3视频编码标准中,4*4DST-Ⅶ变换核含有四个不同顺序和正负性的变换系数,分别为15,27,37,42。因此使用4*4DST-Ⅶ变换核时需要并行使用四个SAU来获得四种输出结果(15x,27x,37x,42x,其中x是残差块中的输入数据),这四个SAU的中间输出值由一维DST-Ⅶ加法树选择性求和(或差)来输出变换系数。

本发明设计了一个面向快速隐式选择变换方法的二维展开结构的快速变换电路图,如图5所示。其中,W和H信号为残差块尺寸;sel信号根据残差块绝对值最大值所在位置,控制输入的残差数据进入DST或DCT变换核。若残差块的最大值位于残差块的右下角,则残差数据进入DST-Ⅶ变换核。若残差块的最大值位于其他位置,则分别使用DCT-Ⅱ和DST-Ⅶ变换核对残差数据进行运算。变换电路整体结构采用展开结构,其中行变换和列变换分别使用一个变换模块,使得电路的吞吐率高,适用于实时编码场景。每个变换模块包含DCT-Ⅱ和DST-Ⅶ两个变换核,按行输入一行N点残差块视频图像数据进入多路选择器,经过尺寸判断,快速算法判断等,由sel信号选择进入两个变换核进行变换计算。由于电路内部的一维水平DST/DCT变换模块和一维垂直DST/DCT变换模块)均采用移位加法器完成乘加运算,所需要的硬件资源少。又因为采用快速隐式选择变换算法,可以相对减少变换次数,降低计算量,变换电路消耗的时钟周期数也相应减少。

依据AVS3标准块划分方式,变换模块共计需要计算边长4*4~64*64的残差块,以32*32的变换块为例,在进入变换模块计算时,可能会进行32*32,32*16,16*32,32*8,8*32,32*4,4*32共7种情况。为了面向这种不同尺寸输入,实现流水线操作,提出面向混合尺寸的流水线设计。32*32尺寸范围内的所有残差块(尺寸为32*32,32*16,16*32,32*8,8*32,32*4,4*32的残差块)在它们的行变换全部完成之前不会进行列变换。虽然刚开始会引入较大的延迟,但在初始延迟之后,每个时钟周期可以计算32个残差数据,每32个时钟周期可以完成对32*32块范围内所有残差块的一维变换操作,如图6所示,在本设计中,初始延迟为38个时钟周期(cycle):32个时钟周期用于输入1024个样本,1个时钟周期用于捕获中间结果,1个时钟周期用于将它们存储在转置存储器中,6个时钟周期用于尺寸判断,快速算法判断等。在38个时钟周期之后,开始列变换操作,列变换的结果在流水线中输出。

需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

相关技术
  • 用于隐式多变换选择的变换选择
  • 用于视频编码和解码的隐式自适应运动向量预测值选择的方法和装置
技术分类

06120116486956