一种用于率失真优化的SSE简化计算方法及装置与流程

文档序号:12183647阅读:397来源:国知局
一种用于率失真优化的SSE简化计算方法及装置与流程

本发明涉及视频编码技术领域,尤其涉及一种用于率失真优化的SSE简化计算方法及装置。



背景技术:

对于有损视频压缩编码算法往往造成编码重建视频和原始视频存在差别,即重建视频产生失真,其性能需要根据编码输出的比特率和编码带来的失真度共同衡量。具体地,如果降低比特率往往会增加视频的失真度,相反要想获得更好的视频质量,又会提高视频编码的编码比特率。因此,视频编码的主要目的就是在保证一定视频质量的前提下尽量减少编码比特率,或者在一定编码比特率限定条件下尽量减少编码失真。基于率失真理论的编码参数优化方法被称为率失真优化,率失真优化技术是保证编码器编码效率的主要手段。

准确度量视频失真度是权衡视频编码性能的先决条件。实际应用中存在多种度量视频失真度的客观评价方法,具体包括误差平方和(Sum of Squared Error,SSE)、均方误差(Mean Squared Error,MSE)、绝对值误差和(Sum of Absolute Difference,SAD)等。

其中,SSE为最常用的一种度量视频失真度的算法,广泛应用于率失真优化中,在HEVC标准中,SSE的求解流程如图1所示,由图1可知,将视频数据矩阵的残差数据矩阵进行整数离散余弦变换(整数DCT变换)得到第一频域数据矩阵;将所述第一频域数据矩阵进行量化与反量化,得到第二频域数据矩阵;对所述第二频域数据矩阵进行逆整数离散余弦变换(整数IDCT变换),得到重建的数据矩阵;将所述残差数据矩阵各位置的数据与所述重建的数据矩阵对应位置的数据做差后求平方和,以得到度量所述视频编码失真度的SSE值,即其中,X和X'分别表示所述视频数据矩阵的残差数据矩阵和所述重建的数据矩阵,相应地,率失真代价RDCost的计算公式为RDCost=SSE+λRate,其中,λ为权重系数,Rate为码率,其可在量化步骤后得 到。

在实现本发明的过程中,发明人发现现有技术中SSE计算方法及硬件实现方面至少存在如下技术问题:

基于SSE的率失真优化过程中需要进行整数DCT变换和整数IDCT变换,而实现整数DCT变换和整数IDCT变换需要占用很大的芯片面积,消耗大量的计算时间,进而导致率失真优化中SSE计算所需的硬件资源及计算时间较多。



技术实现要素:

本发明提供一种用于率失真优化的SSE简化计算方法及装置,能够减少率失真优化中SSE计算所需的硬件资源及计算时间。

一方面,本发明提供一种用于率失真优化的SSE简化计算方法,包括:

对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵;

对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵;

计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。

另一方面,本发明提供一种用于率失真优化的SSE简化计算装置,所述装置包括整数DCT变换模块、量化与反量化模块和SSE简化计算模块,其中,

所述整数DCT变换模块,用于对视频数据矩阵的残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵;

所述量化与反量化模块,用于对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵;

所述SSE简化计算模块,用于计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。

本发明提供的用于率失真优化的SSE简化计算方法及装置,对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵;对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵;计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。与现有技术相比,一方面,其不需要进行整数 IDCT变换,从而可以节省整数IDCT变换实现所需的硬件资源及计算时间;另一方面,由于SSE的计算提前到了整数IDCT变换之前,相应地,率失真代价RDCost的计算也随之可以提前到IDCT变换之前,使得能够提前获知所评价的预测模式的好坏,从而有利于简化硬件设计。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明用于率失真优化的SSE简化计算方法一实施例的流程示意图;

图2为本发明用于率失真优化的SSE简化计算方法另一实施例的流程图;

图3为本发明用于率失真优化的SSE简化计算装置一实施例的结构示意图;

图4为本发明用于率失真优化的SSE简化计算装置另一实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供一种用于率失真优化的SSE简化计算方法,所述方法包括:

S11、对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵。

以n阶残差数据矩阵为例,所述n阶残差数据矩阵的整数DCT变换的计算公式为:

其中,Xn为所述n阶残差数据矩阵,Yn为经过整数DCT变换后的第一频率数据矩阵,Hn为所述整数DCT变换的n阶系数矩阵,En为所述整数DCT变换的n阶修正矩阵,为Hn的转置矩阵,为En的转置矩阵;

例如,在HEVC标准中,n可以是4,8,16,32等,n阶修正矩阵En中的各个数据为则上述整数DCT变换的计算公式变为:

S12、对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵。

S13、计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。

本实施例的用于率失真优化的SSE简化计算方法是基于以下原理得到的:

在不考虑由HEVC中所采用的整数DCT变换引入的舍入误差的影响下(影响很小),编码过程中失真主要来自于量化过程。根据帕斯瓦尔定律(信号的总能量既可以按照每单位时间内的能量在整个时间内的积分计算出来,也可以按照每单位频率内的能量在整个频率范围内的积分得到),显然有下面等式成立:

其中,X表示残差数据,X'表示重建的残差数据,Y表示X经过整数DCT变换后所得到的所述第一频域数据,Y'表示Y经过量化及反量化后得到的所述第二频域数据。通过上述公式,可知只需要进行整数DCT变换,而不需要整数IDCT变换,便可以得到SSE的简化值,从而可以节省整数IDCT变换实现所需的硬件资源及计算时间。

本发明实施例提供的用于率失真优化的SSE简化计算方法,对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵;对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵;计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。与现有技术相比,一方面,其不需要进行整数IDCT变换,可以节省整数IDCT变换实现所需的硬件资源及计算时间,从而降低了SSE计算所需的硬件资源及计算时间;另一方面,由于SSE的计算提前到了整数IDCT变换之前,相应地,率失真代价RDCost的计算也随之可以提前到 IDCT变换之前,使得能够提前获知所评价的帧内预测模式的好坏,从而有利于简化硬件设计。

如图2所示,本发明实施例提供一种用于率失真优化的SSE简化计算方法,所述方法包括:

S21、将整数DCT变换的系数矩阵中的各个系数均转换为至多两个移位操作之和的形式。

上述整数DCT变换的系数矩阵预处理是基于以下原理进行的:

整数DCT变换的高计算复杂度导致其占用的芯片面积也比较大,例如,整数DCT变换硬件实现所需的乘法器导致其计算量大,且占用的芯片面积大。

这里基于在硬件设计中乘法器的芯片面积远大于加法器,采用移位、加法等操作来取代乘法操作以达到减少芯片面积的目的,将整数DCT变换涉及的乘法运算使用移位运算和加法运算进行代替,从而达到减小整数DCT变换的计算量和硬件实现时所占用的芯片面积等硬件资源。

上述整数DCT变换的系数矩阵预处理具体操作包括:以8阶系数矩阵H8为例,一个具体的8阶系数矩阵H8如下:

其中,H8中的系数75可进行如下分解:

75=64+8+2+1=(1<<6)+(1<<3)+(1<<1)+(1<<0)

可见,系数75表示为4个移位操作的和,类似地,H8中的各个系数都可以表示为至多四个移位操作之和的形式,这样,在进行整数DCT变换时,便可以不采用乘法器,而是使用移位和加法器来实现,以减小整数DCT变换的计算量和硬件实现时所占用的芯片面积等硬件资源,从而减小SSE计算所需的硬件资 源及计算时间。

上述简化计算方式,对于每个乘法需要计算四次移位、三次加法操作。为了进一步简化计算,这里给出一个近似的DCT系数矩阵,每个系数均可由两次移位加一次加法实现。

具体地,仍然以8阶系数矩阵H8为例,H8中的系数75可以近似为:

75≈64+8=(1<<6)+(1<<3)或者75≈64+16=(1<<6)+(1<<4)

在确定系数75采用何种近似方式时,需要保证H8的正交性,即满足H8中各行数据的平方和均相等这个约束条件。

以H8的前两行数据为例,即满足642*8=(892+752+502+182)*2,因此这种在构造H8的近似系数矩阵H8'时需要使用上述约束条件对近似系数矩阵H8'的各个近似系数进行适当的调整。遵循上述约束条件得到的一个近似系数矩阵H8'如下:

可见,近似系数矩阵H8'满足第1行以外的每行数据的各个数据的平方和均尽量接近第1行的各个数据的平方和,即尽量接近642*8。

S22、对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵。

以8阶残差数据矩阵为例,所述8阶残差数据矩阵的整数DCT变换的计算公式为:

其中,X8为所述8阶残差数据矩阵,Y8为经过整数DCT变换后的第一频率数据矩阵,H8为所述整数DCT变换的8阶系数矩阵,E8为所述整数DCT变换的8阶修正矩阵,为H8的转置矩阵,为E8的转置矩阵,且8阶修正矩阵E8 中的各个数据为则上述整数DCT变换的计算公式变为:

S23、对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵。

S24、计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。

本实施例的视频编码中SSE的计算方法是基于以下原理得到的:

在不考虑由HEVC中所采用的整数DCT变换引入的舍入误差的影响下(影响很小),编码过程中失真主要来自于量化过程。根据帕斯瓦尔定律(信号的总能量既可以按照每单位时间内的能量在整个时间内的积分计算出来,也可以按照每单位频率内的能量在整个频率范围内的积分得到),显然有下面等式成立:

其中,X表示残差数据,X'表示重建的残差数据,Y表示X经过整数DCT变换后所得到的所述第一频域数据,Y'表示Y经过量化及反量化后得到的所述第二频域数据。通过上述公式,可以发现计算SSE只需要进行整数DCT变换,而不需要整数IDCT变换,从而可以节省整数IDCT变换实现所需的硬件资源及计算时间。

本发明实施例提供的用于率失真优化的SSE简化计算方法,与现有技术相比,一方面,其不需要进行整数IDCT变换,可以节省整数IDCT变换实现所需的硬件资源及计算时间,从而降低了SSE计算所需的硬件资源及计算时间;另一方面,通过对整数DCT变换的系数矩阵进行预处理降低了整数DCT变换实现所需的硬件资源及计算时间,从而进一步降低了SSE计算所需的硬件资源及计算时间;再一方面,由于SSE的计算提前到了整数IDCT变换之前,相应地,率失真代价RDCost的计算也随之可以提前到IDCT变换之前,使得能够提前获知所评价的帧内预测模式的好坏,从而有利于简化硬件设计。

进一步地,在上述两个实施例中,当视频数据矩阵的残差数据矩阵较大时, 可以将所述残差数据矩阵进行划分,得到残差数据矩阵子块,然后,针对每个残差数据矩阵子块进行整数DCT变换,例如,针对32×32的残差数据矩阵,这里可以将所述32×32的残差数据矩阵划分为4个16×16的残差数据矩阵子块,对每个16×16的残差数据矩阵子块进行整数DCT变换,并求解每个16×16的残差数据矩阵子块对应的SSE简化值,最后将每个16×16的残差数据矩阵子块对应的SSE进行相加,得到所述残差数据矩阵对应的SSE简化值。

这样,可以进一步降低整数DCT变换实现所需的计算量,从而进一步降低了用于率失真优化的SSE计算所需的硬件资源及计算时间。

如图3所示,本发明实施例提供一种用于率失真优化的SSE简化计算装置,所述装置包括整数DCT变换模块31、量化与反量化模块32和SSE简化计算模块33。

所述整数DCT变换模块31,用于对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵;

所述量化与反量化模块32,用于对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵;

所述SSE简化计算模块33,用于计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。

本发明提供的视频编码中SSE的计算装置,对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵;对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵;计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。与现有技术相比,一方面,其不需要进行整数IDCT变换,从而可以节省整数IDCT变换实现所需的硬件资源及计算时间;另一方面,由于SSE的计算提前到了整数IDCT变换之前,相应地,率失真代价RDCost的计算也随之可以提前到IDCT变换之前,使得能够提前获知所评价的预测模式的好坏,从而有利于简化硬件设计。

如图4所示,本发明实施例提供一种用于率失真优化的SSE简化计算装置,所述装置包括DCT系数矩阵预处理模块41、整数DCT变换模块42、量化与反 量化模块43和SSE简化计算模块44。

所述DCT系数矩阵预处理模块41,用于将所述整数DCT变换的系数矩阵中的各个系数均转换为至多两个移位操作之和的形式。

所述整数DCT变换模块42,用于对视频残差数据矩阵进行整数DCT变换,得到经过整数DCT变换后的第一频域数据矩阵;

所述量化与反量化模块43,用于对所述第一频域数据矩阵进行量化与反量化操作,得到第二频域数据矩阵;

所述SSE简化计算模块44,用于计算所述第一频域数据矩阵与所述第二频域数据矩阵的误差平方和,得到所述残差数据矩阵对应的SSE简化值。

本发明实施例提供的用于率失真优化的SSE简化计算装置,与现有技术相比,一方面,其不需要进行整数IDCT变换,可以节省整数IDCT变换实现所需的硬件资源及计算时间,从而降低了SSE计算所需的硬件资源及计算时间;另一方面,通过对整数DCT变换的系数矩阵进行简化处理降低了整数DCT变换实现所需的硬件资源及计算时间,从而进一步降低了SSE计算所需的硬件资源及计算时间;再一方面,由于SSE的计算提前到了整数IDCT变换之前,相应地,率失真代价RDCost的计算也随之可以提前到IDCT变换之前,使得能够提前获知所评价的帧内预测模式的好坏,从而有利于简化硬件设计。

进一步地,在上述两个实施例中,所述装置还可以包括矩阵划分模块和合成模块。

所述矩阵划分模块,用于将所述残差数据矩阵划分成4个残差数据矩阵子块,相应地,所述整数DCT变换模块,用于对每个残差数据矩阵子块进行整数DCT变换,所述SSE简化计算模块,用于计算所述得到所述每个残差数据矩阵子块对应的SSE简化值。

所述合成模块,用于将所述SSE简化计算模块输出的所述每个残差数据矩阵子块对应的SSE简化值进行相加操作,得到所述残差数据矩阵对应的SSE简化值。

这样,可以进一步降低整数DCT变换实现所需的计算量,从而进一步减少降低了SSE计算所需的硬件资源及计算时间。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1