率失真估计方法及装置与流程

文档序号:33540887发布日期:2023-03-22 09:11阅读:41来源:国知局
率失真估计方法及装置与流程

1.本公开涉及视频数据处理领域,尤其涉及率失真估计方法及装置。


背景技术:

2.率失真优化(rate distortion optimization,简称为:rdo)是av1中一种提升视频压缩性能的最优化算法。在av1帧内和帧间预测中,通过递归执行rdo,以确定每个编码单元最佳编码结构和最佳预测模式。
3.现有rdo技术包括码率估计和失真估计,在进行码率估计时,一般是基于统计建模、二分法等对相应语法元素特征线性拟合,但这些方法都是针对hevc/vvc来设计,av1的分层编码模式中并不适配。在进行失真估计时,一般是采用频域的低频部分sse对失真补偿,减少冗长的重构过程,有利于硬件多级流水处理,但这样又增加了硬件面积,而且不能满足在dct行变换后将低频系数置为零来减少硬件设计资源的目的。


技术实现要素:

4.本公开实施例提供一种率失真估计方法及装置,能够解决在保证编码性能的前提下,一方面使得计算复杂度降低,另一方面减少了硬件资源数量的问题。所述技术方案如下:
5.根据本公开实施例的第一方面,提供一种率失真估计方法,所述方法包括:
6.获取变换块对应的量化系数;
7.对所述量化系数采用码率估计算法进行码率估计;所述码率估计算法基于多元线性回归模型和max-lloyd量化算法,其中,所述max-lloyd量化可以将概率密度函数对应的码率代价的取值范围缩小;
8.对所述量化系数采用失真估计模型进行失真估计,以获取失真补偿值,其中,所述失真估计模式会对变换块采用全零块来进行失真分析。
9.在一个实施例中,所述对所述量化系数采用码率估计算法进行码率估计,包括:
10.通过所述max-lloyd量化算法获取各个所述概率密度函数对应的码率代价的量化区间;
11.根据所述量化区间获取各个量化系数值对应的量化系数的数量;
12.根据所述多元线性回归模型和所述各个量化系数值对应的量化系数的数量进行码率估计。
13.在一个实施例中,所述通过所述max-lloyd量化算法获取各个所述概率密度函数对应的码率代价的量化区间,包括:
14.通过迭代公式获取均方误差最小时的重建水平的集合;
15.确定所述均方误差最小时的重建水平的集合为所述量化区间;
16.其中,所述迭代公式包括:
17.18.其中,所述mse为所述均方误差;所述x为原始码率代价值,所述为重建码率代价值;所述bi为所述量化区间;所述m为量化后的码率代价值;所述yi为重建水平;所述f(x)为概率密度函数。
19.在一个实施例中,所述多元线性回归模型包括:
[0020][0021]
其中,所述是估计出的码率,是各个特征参数对应的回归系数;所述β是偏置量,为变换中的特征参数的集合,所述η
n-1
为量化系数值为n-1的数量,所述ηn为量化系数值大于n-1的数量。
[0022]
在一个实施例中,所述方法还包括:
[0023]
获取各个所述变换块的长和宽对应的变换值;
[0024]
将所述变换值相同的变换块确定为同一类型。
[0025]
在一个实施例中,所述长和宽的变换值通过下述公式获取:
[0026]
(长+宽+1)/2。
[0027]
在一个实施例中,所述对所述量化系数采用失真估计模型进行失真估计,以获取失真补偿值,包括:
[0028]
检测整个空域和方差是否大于1.5倍频域高频部分和方差;
[0029]
若所述整个空域和方差大于所述1.5倍频域高频部分和方差,确定所述整个空域和方差与所述1.5倍频域高频部分和方差的差值为所述失真补偿值;
[0030]
若所述整个空域和方差小于所述1.5倍频域高频部分和方差,确定所述空域和方差的估计倍数作为所述失真补偿。
[0031]
根据本公开实施例的第二方面,提供一种率失真估计装置,所述装置包括:
[0032]
获取模块,用于获取变换块对应的量化系数;
[0033]
码率估计模块,用于对所述量化系数采用码率估计算法进行码率估计;所述码率估计算法基于多元线性回归模型和max-lloyd量化算法,其中,所述max-lloyd量化可以将概率密度函数对应的码率代价的取值范围缩小;
[0034]
失真估计模块,用于对所述量化系数采用失真估计模型进行失真估计,以获取失真补偿值,其中,所述失真估计模式会对变换块采用全零块来进行失真分析。
[0035]
在一个实施例中,所述码率估计模块,包括:
[0036]
第一获取子模块,用于通过所述max-lloyd量化算法获取各个所述概率密度函数对应的码率代价的量化区间;
[0037]
第二获取子模块,用于根据所述量化区间获取各个量化系数值对应的量化系数的数量;
[0038]
码率估计子模块,用于根据所述多元线性回归模型和所述各个量化系数值对应的量化系数的数量进行码率估计。
[0039]
在一个实施例中,所述第一获取子模块,包括:
[0040]
第一获取子单元,用于通过迭代公式获取均方误差最小时的重建水平的集合;
[0041]
确定子单元,用于确定所述均方误差最小时的重建水平的集合为所述量化区间;
[0042]
其中,所述迭代公式包括:
[0043][0044]
其中,所述mse为所述均方误差;所述x为原始码率代价值,所述为重建码率代价值;所述bi为所述量化区间;所述m为量化后的码率代价值;所述yi为重建水平;所述f(x)为概率密度函数。
[0045]
在一个实施例中,所述多元线性回归模型包括:
[0046][0047]
其中,所述是估计出的码率,是各个特征参数对应的回归系数;所述β是偏置量,为变换中的特征参数的集合,所述η
n-1
为量化系数值为n-1的数量,所述ηn为量化系数值大于n-1的数量。
[0048]
在一个实施例中,所述装置还包括:
[0049]
第三获取子模块,用于获取各个所述变换块的长和宽对应的变换值;
[0050]
第一确定子模块,用于将所述变换值相同的变换块确定为同一类型。
[0051]
在一个实施例中,所述长和宽的变换值通过下述公式获取:
[0052]
(长+宽+1)/2。
[0053]
在一个实施例中,所述失真补偿模块,包括:
[0054]
检测子模块,用于检测整个空域和方差是否大于1.5倍频域高频部分和方差;
[0055]
第二确定子模块,用于若所述整个空域和方差大于所述1.5倍频域高频部分和方差,确定所述整个空域和方差与所述1.5倍频域高频部分和方差的差值为所述失真补偿值;
[0056]
第三确定测子模块,用于若所述整个空域和方差小于所述1.5倍频域高频部分和方差,确定所述空域和方差的估计倍数作为所述失真补偿。
[0057]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0058]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0059]
图1是本公开实施例提供的率失真估计方法;
[0060]
图2是本公开实施例提供的av1中原始的rdo流程示意图;
[0061]
图3是本公开实施例提供的改进后的rdo流程示意图;
[0062]
图4是本公开实施例提供的qp为27的系数占比示意图;
[0063]
图5是本公开实施例提供的qp为37的系数占比示意图;
[0064]
图6是本公开实施例提供的扫描顺序为zig-zag的分层映射编码示例图;
[0065]
图7是本公开实施例提供的量化效果示意图;
[0066]
图8是本公开实施例提供的为基于全零块的64x64变换块失真补偿示意图;
[0067]
图9是本公开实施例提供的率失真估计装置的结构图;
[0068]
图10是本公开实施例提供的率失真估计装置中码率估计模块的结构图;
[0069]
图11是本公开实施例提供的率失真估计装置中第一获取子模块的结构图。
具体实施方式
[0070]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0071]
图1是本公开实施例提供的率失真估计方法,如图1所示,该方法包括以下子步骤:
[0072]
101、获取变换块对应的量化系数;
[0073]
相关技术中,在av1帧内和帧间预测中,会递归执行rdo,以确定每个编码单元最佳编码结构和最佳预测模式。rd代价函数如下所示:
[0074]jrd
=sse+λ
·
r;
[0075]
其中,sse是当前变换块中原始像素和重构像素之间的平方差之和,r是通过多元算数熵编码对整个块进行编码的比特率,λ是与量化参数(qp)相关的参数。如图2所示的av1中原始的rdo流程,若想要得到rd代价,需要经过正向变换、量化、逆量化、逆变换、图像重构这一复杂过程,该过程计算复杂,且形成了一个数据依赖的长延迟循环,这严重阻碍了硬件执行有效的并行性和流水线。此外,熵编码技术会涉及上下文状态的实时更新,变换块中的系数使用先前处理的系数为其条件概率模型构建上下文,系数之间产生较强的依赖性,并且加剧了编码复杂性。因此,在av1编码中低复杂度和高精度的快速rdo是非常必要的。
[0076]
本公开中,为了简化编码的复杂度以及易于硬件实现,如图3所示的改进后的rdo流程,直接对量化后的变换系数采用码率估计和失真估计的方法来代替原来的计算过程。由图3可以看出,在引入率失真估计算法后,大大简化了原始av1算法的流程,消除了上下文状态的实时更新和冗余的重构过程,更加有利于硬件并发和多级流水线处理。
[0077]
进一步的,av1采用分层映射的方式编码当前变换块的量化系数,首先扫描顺序中最后一个非零系数的索引值被编码,其中扫描顺序由变换内核确定。接着将量化的变换系数分解为四类符号(包括符号位、基本范围、低范围和高范围)编码,直流系数(dc)符号需要通过上下文建模编码,其余系数被编码为一个单独的比特。其中,编码量化系数绝对值|q|占据了大部分码率消耗,而且此部分概率模型依赖上下文更新。因此,为其建立高准确性的码率模型很有必要,本公开通过步骤102和103中建立高准确性的码率模型进行码率估计和失真估计。
[0078]
102、对量化系数采用码率估计算法进行码率估计;码率估计算法基于多元线性回归模型和max-lloyd量化算法,其中,max-lloyd量化可以将概率密度函数对应的码率代价的取值范围缩小;
[0079]
对量化系数|q|进行熵编码,一方面变换系数经量化后幅度值较小(例如0、1、2)的部分占大多数,为了更加直观分析,图4和图5分别统计了不同变换块在不同qp下的系数占比,其中,图4对应的qp为27,图5对应的qp为37,在图4和图5中,abs(q)>14的值是原数据10倍。另一方面av1在进行分层编码时,|q|被分解为不同等级并分别编码,如图6所示。其中,较高等级即残留部分使用哥伦布编码。因此,本发明利用一种多元线性回归模型对以下统计的特征作码率估计。
[0080]
在一个实施例中,对量化系数采用码率估计算法进行码率估计,包括以下子步骤1021-1023:
[0081]
1021、通过max-lloyd量化算法获取各个概率密度函数对应的码率代价的量化区间;
[0082]
具体的,可以通过迭代公式获取均方误差最小时的重建水平的集合;并确定均方误差最小时的重建水平的集合为量化区间;
[0083]
其中,迭代公式包括:
[0084][0085]
其中,mse为均方误差;x为原始码率代价值,为重建码率代价值;bi为量化区间;m为量化后的码率代价值;yi为重建水平;f(x)为概率密度函数。
[0086]
1022、根据量化区间获取各个量化系数值对应的量化系数的数量;
[0087]
1023、根据多元线性回归模型和各个量化系数值对应的量化系数的数量进行码率估计。
[0088]
在一个实施例中,多元线性回归模型包括:
[0089][0090]
其中,是估计出的码率,是各个特征参数对应的回归系数;β是偏置量,为变换中的特征参数的集合,η
n-1
为量化系数值为n-1的数量,ηn为量化系数值大于n-1的数量。
[0091]
示例的,n可以为3,此时,η0为量化系数值为0的数量;η1为量化系数值为1的数量;η2为量化系数值为2的数量;η3为量化系数值大于2的数量;α0为η0对应的回归系数;α1为η1对应的回归系数;α2为η2对应的回归系数;α3为η3对应的回归系数。
[0092]
进一步的,在考虑到回归模型复杂度和硬件资源的情况下,对相似变换块进行聚类分析,共同拟合码率。也即,本公开中,会获取各个变换块的长和宽对应的变换值,然后将变换值相同的变换块确定为同一类型,其中,长和宽的变换值通过下述公式获取:
[0093]
(长+宽+1)/2。
[0094]
这样以来19种变换块尺寸划分为5种,很大程度上减少系数的数量,具体分类如下:(1)4x4;(2)4x8、8x4、8x8、4x16、16x4;(3)8x16、16x8、16x16、8x32、32x8;(4)16x32、32x16、32x32、16x64、64x16;(5)32x64、64x32、64x64。通过上述特征分类,在保证码率估计准确度的情况下,减少线性回归拟合的参数。
[0095]
在av1中,概率模型pdf保持15-bit精度被更新,然后输入到算术编码器用于符号的熵编码。依据概率值与码率代价的一一对应关系,其输出的码率代价表的范围很大。但是由于码率值在一定的误差范围内,其对编码性能影响很小。因此,为了降低存储其对应的码率代价查找表的位宽,以满足硬件的需求,本发明采用一种最佳量化的方式减小码率代价的位宽。
[0096]
图7示出了量化效果图,其中,图7(a)示出了码率代价分布密度图;图7(b)示出了max-lloyd量化前后码率代价对比;图7(c)示出了量化误差曲线。由图7(a)可以看出,码率代价分布不均匀,对于这种情况,均匀量化的方式不能再被采用。而max-lloyd量化器被称为最优量化器,它根据信号取值的概率分布计算量化区间的判定边界和重建值。概率较大
时,缩小量化区间;概率较小时,增大量化区间,并采用均方误差(mse)作为失真衡量准则,mse的公式如下,
[0097][0098]
对上述,通过迭代的方式,可以求出mse最小时重建水平yi的集合,此时的yi为最优量化区间。
[0099]
在本发明中,max-lloyd量化的方式被采用,首先将全部量化系数和模式所对应的码率代价通过此量化器,求出mse最小时重建水平yi的集合,再依据码率的密度分布确定量化区间,得到最优量化水平。由图7(b)可以看出,最终的量化结果与原始码率数据值基本吻合。此外,图7(c)中显示量化误差在[-60,+60]的可接受范围内。
[0100]
103、对量化系数采用失真估计模型进行失真估计,以获取失真补偿值,其中,失真估计模式会对变换块采用全零块来进行失真分析。
[0101]
进行失真估计的目的是为了消除冗长的重构过程,减少计算复杂度,有利于硬件流水实现。对于64
×
64、32
×
64、64
×
32、16
×
64、64
×
16块而言,残差系数在做dct变换后,高频部分的变换系数会置为零。通常,可以将这部分系数恢复,采用整个变换块的频域sse进行失真估计。这种方式拟合效果可以,但是为了在一维dct行变换后将高频系数置零,减少计算,以达到减小硬件面积的目的,由于高频系数已经在dct变换过程中强行置零,使用频域高频系数sse补偿不能再实现。
[0102]
针对这个问题,这些64
×
64、64
×
32、32
×
64等较大块基于全零块的概念来分析失真并做预估。由于变换系数可能大量集中在低频部分,造成全零块时低频部分的和方差很大,因此本公开中将失真补偿分为两种情况考虑,如图8所示为基于全零块的64x64变换块失真补偿示意图。
[0103]
在一个实施例中,上述步骤103包括以下子步骤1031-1033:
[0104]
1031、检测整个空域和方差是否大于1.5倍频域高频部分和方差;
[0105]
1032、若整个空域和方差大于1.5倍频域高频部分和方差,确定整个空域和方差与1.5倍频域高频部分和方差的差值为失真补偿值;
[0106]
1033、若整个空域和方差小于1.5倍频域高频部分和方差,确定空域和方差的估计倍数作为失真补偿,因为空域和方差更能够代表真实失真。
[0107]
具体的,下式定义了整个失真估计模型:
[0108][0109]
其中,是估计出的失真,sse
px
是基于全零块的空域和方差,sse
tx
是基于全零块的频域低高频部分和方差,sse
ltx
是频域低频部分和方差,α是估计因子。
[0110]
当变换块大小为64
×
32、32
×
64时,α=0.2;当变换块大小为64
×
64时,α=0.4。
[0111]
由以上可以看出,失真的计算只需要全零块时的空域和频域高频部分和方差,失真补偿不受变换过程中系数置为零的影响,并且省去了逆变换,逆量化,重构的过程。这种做法存在估计因子带来的误差,但是这些误差的占比很小,误差范围在同一数量级之内。因此,此失真估计在可接受范围内,节省了大量时间,同时减少使用硬件面积。
[0112]
本发明采用一种多元线性回归拟合的方法对量化系数做码率估计,考虑到av1中划分模式和变换核有很多种组合,所以同时对系数分布特征聚类处理。并采用一种基于max-lloyd量化的方法减小码率代价的位宽。此外,基于全零块的概念,本发明使用当前变换块像素域sse与频域高频部分sse的差值来做失真补偿。改进的率失真估计算法在保证编码性能的前提下,一方面使得计算复杂度降低,另一方面减少了硬件资源数量。
[0113]
基于上述图1对应的实施例中所描述的率失真估计方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
[0114]
本公开实施例提供一种率失真估计装置,如图9所示,所述装置包括:
[0115]
获取模块11,用于获取变换块对应的量化系数;
[0116]
码率估计模块12,用于对所述量化系数采用码率估计算法进行码率估计;所述码率估计算法基于多元线性回归模型和max-lloyd量化算法,其中,所述max-lloyd量化可以将概率密度函数对应的码率代价的取值范围缩小;
[0117]
失真估计模块13,用于对所述量化系数采用失真估计模型进行失真估计,以获取失真补偿值,其中,所述失真估计模式会对变换块采用全零块来进行失真分析。
[0118]
在一个实施例中,如图10所示,所述码率估计模块12,包括:
[0119]
第一获取子模块121,用于通过所述max-lloyd量化算法获取各个所述概率密度函数对应的码率代价的量化区间;
[0120]
第二获取子模块122,用于根据所述量化区间获取各个量化系数值对应的量化系数的数量;
[0121]
码率估计子模块123,用于根据所述多元线性回归模型和所述各个量化系数值对应的量化系数的数量进行码率估计。
[0122]
在一个实施例中,如图11所示,所述第一获取子模块121,包括:
[0123]
第一获取子单元1211,用于通过迭代公式获取均方误差最小时的重建水平的集合;
[0124]
确定子单元1212,用于确定所述均方误差最小时的重建水平的集合为所述量化区间;
[0125]
其中,所述迭代公式包括:
[0126][0127]
其中,所述mse为所述均方误差;所述x为原始码率代价值,所述为重建码率代价值;所述bi为所述量化区间;所述m为量化后的码率代价值;所述yi为重建水平;所述f(x)为概率密度函数。
[0128]
在一个实施例中,所述多元线性回归模型包括:
[0129][0130]
其中,所述是估计出的码率,是各个特征参数对应的回归系数;所述β是偏置量,为变换中的特征参数的集合,所述η
n-1
为量化系数值为n-1的数量,所述ηn为量化系数值大于n-1的数量。
[0131]
在一个实施例中,所述装置还包括:
[0132]
第三获取子模块,用于获取各个所述变换块的长和宽对应的变换值;
[0133]
第一确定子模块,用于将所述变换值相同的变换块确定为同一类型。
[0134]
在一个实施例中,所述长和宽的变换值通过下述公式获取:
[0135]
(长+宽+1)/2。
[0136]
在一个实施例中,所述失真补偿模块,包括:
[0137]
检测子模块,用于检测整个空域和方差是否大于1.5倍频域高频部分和方差;
[0138]
第二确定子模块,用于若所述整个空域和方差大于所述1.5倍频域高频部分和方差,确定所述整个空域和方差与所述1.5倍频域高频部分和方差的差值为所述失真补偿值;
[0139]
第三确定测子模块,用于若所述整个空域和方差小于所述1.5倍频域高频部分和方差,确定所述空域和方差的估计倍数作为所述失真补偿。
[0140]
基于上述图1对应的实施例中所描述的场景恢复方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:read only memory,rom)、随机存取存储器(英文:random access memory,ram)、cd-rom、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的场景恢复方法,此处不再赘述。
[0141]
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0142]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1