一种视频编码中绝对变换误差和的计算方法及装置与流程

文档序号:12183649阅读:220来源:国知局
一种视频编码中绝对变换误差和的计算方法及装置与流程

本发明涉及视频编码技术领域,尤其涉及一种视频编码中绝对变换误差和的计算方法及装置。



背景技术:

在视频编码系统中,常见的失真度评价准则有绝对误差和SAD(Sum of Absolute Difference)、绝对变换误差和SATD(Sum of Absolute Transformed Difference)、平方误差和SSE(Sum of Squared Error)等。在常用视频失真度的评价准则中,平方误差和SSE效果较好,但是存在乘法运算计算量较大,需要进行离散余弦变换、量化、反量化及反离散余弦变换等操作,其计算复杂且耗时;绝对误差和SAD计算简单但是误差较大;绝对变换误差和SATD效果及性能折中,因此,SATD在最新的HEVC编码规范中有广泛应用。

例如,基于8×8的残差数据矩阵的绝对变换误差和SATD8x8的计算公式如下:

其中,X为8×8的残差数据矩阵,H8为8阶hadamard变换系数矩阵,为所述8阶hadamard变换系数矩阵H8的转置矩阵,SA(M)表示对对矩阵M中的每个数据进行取绝对值求和操作,考虑到H8为对称矩阵,所以H8的转置矩阵与H8等价,即

由于计算SATD8x8需要对三个8×8矩阵计算两次矩阵乘法,因此,需要一个8×8大小的寄存器用于保存第一次矩阵乘法得到的中间计算结果,即:用8×8大小的寄存器把H8X的结果保存下来,用于和后面的H8T进行矩阵乘法。

在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:

绝对变换误差和(SATD)的计算涉及到大量的加法运算,需要使用大量的 加法器,且绝对变换误差和(SATD)的计算需要较大存储空间的寄存器来保存中间计算结果,综上,现有的绝对变换误差和(SATD)的计算耗费了大量的加法器和寄存器等硬件资源。



技术实现要素:

本发明提供一种视频编码中绝对变换误差和的计算方法及装置,能够在保证一定计算准确性的前提下,减少计算绝对变换误差和的计算量,节省实现所需加法器和寄存器硬件资源。

一方面,本发明提供一种视频编码中绝对变换误差和的计算方法,所述方法包括:

获取残差数据矩阵;

对所述残差数据矩阵对应的hadamard变换系数矩阵上半部分的子矩阵、所述残差数据矩阵以及所述hadamard变换系数矩阵的转置矩阵进行第一绝对变换误差和运算;

对所述残差数据矩阵对应的hadamard变换系数矩阵下半部分的子矩阵、所述残差数据矩阵进行第二绝对变换误差和运算;

将所述第二绝对变换误差和运算的计算结果乘以2,然后再与所述第一绝对变换误差和运算的计算结果进行求和,得到基于所述残差数据矩阵的绝对变换误差和。

另一方面,本发明提供一种视频编码中绝对变换误差和的计算装置,其特征在于,所述装置包括获取模块、第一计算模块、第二计算模块以及第三计算模块,其中,所述获取模块,用于获取残差数据矩阵;

所述第一计算模块,用于对所述残差数据矩阵对应的hadamard变换系数矩阵上半部分的子矩阵、所述残差数据矩阵以及所述hadamard变换系数矩阵的转置矩阵进行第一绝对变换误差和运算;

所述第二计算模块,用于对所述残差数据矩阵对应的hadamard变换系数矩阵下半部分的子矩阵、所述残差数据矩阵进行第二绝对变换误差和运算;

所述第三计算模块,用于将所述第二绝对变换误差和运算的计算结果乘以2,然后再与所述第一绝对变换误差和运算的计算结果进行求和,得到基于所述残差数据矩阵的绝对变换误差和。

本发明提供的视频编码中绝对变换误差和的计算方法及装置,获取残差数据矩阵;对所述残差数据矩阵对应的hadamard变换系数矩阵上半部分的子矩阵、所述残差数据矩阵以及所述hadamard变换系数矩阵的转置矩阵进行第一绝对变换误差和运算;对所述残差数据矩阵对应的hadamard变换系数矩阵下半部分的子矩阵、所述残差数据矩阵进行第二绝对变换误差和运算;将所述第二绝对变换误差和运算的计算结果乘以2,然后再与所述第一绝对变换误差和运算的计算结果进行求和,得到基于所述残差数据矩阵的绝对变换误差和。与现有技术相比,一方面,其能够通过减少一半的数据与所述hadamard变换系数矩阵的转置矩阵进行矩阵乘法运算,来减少绝对变换误差和(SATD)的计算涉及的加法运算,相应地,也减少了硬件实现所需的加法器;另一方面,减小了保存中间结果的所需寄存器的大小。综上,本发明的技术方案与现有技术相比,能够减少SATD变换实现的计算量,并且节省实现所需加法器和寄存器等硬件资源。

附图说明

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

图1为本发明视频编码中绝对变换误差和的计算方法一实施例流程示意图;

图2本发明视频编码中绝对变换误差和的计算装置一实施例结构示意图。

具体实施方式

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

如图1所示,本发明实施例提供一种视频编码中绝对变换误差和的计算方法,所述方法包括:

S11、获取残差数据矩阵。

S12、对所述残差数据矩阵对应的hadamard变换系数矩阵上半部分的子矩阵、所述残差数据矩阵以及所述hadamard变换系数矩阵的转置矩阵进行第一绝对变换误差和运算。

S13、对所述残差数据矩阵对应的hadamard变换系数矩阵下半部分的子矩阵、所述残差数据矩阵进行第二绝对变换误差和运算。

S14、将所述第二绝对变换误差和运算的计算结果乘以2,然后再与所述第一绝对变换误差和运算的计算结果进行求和,得到基于所述残差数据矩阵的绝对变换误差和。

本发明提供的视频编码中绝对变换误差和的计算方法,获取残差数据矩阵;对所述残差数据矩阵对应的hadamard变换系数矩阵上半部分的子矩阵、所述残差数据矩阵以及所述hadamard变换系数矩阵的转置矩阵进行第一绝对变换误差和运算;对所述残差数据矩阵对应的hadamard变换系数矩阵下半部分的子矩阵、所述残差数据矩阵进行第二绝对变换误差和运算;将所述第二绝对变换误差和运算的计算结果乘以2,然后再与所述第一绝对变换误差和运算的计算结果进行求和,得到基于所述残差数据矩阵的绝对变换误差和。与现有技术相比,一方面,其能够通过减少一半的数据与所述hadamard变换系数矩阵的转置矩阵进行矩阵乘法运算,来减少绝对变换误差和(SATD)的计算涉及的加法运算,相应地,也减少了硬件实现所需的加法器;另一方面,减小了保存中间结果的所需 寄存器的大小。综上,本发明的技术方案与现有技术相比,能够减少SATD变换实现的计算量,并且节省实现所需加法器和寄存器等硬件资源。

具体地,在本实施例中以8×8的残差数据矩阵为例,对上述流程进行具体阐述:

1)获取8×8的残差数据矩阵X,其中,所述8×8的残差数据矩阵X由4个4×4的分块矩阵X00、X01、X10、X11构成,即

2)对位于8阶hadamard变换系数矩阵H8上半部分的4×8子矩阵D1、8×8的残差数据矩阵X以及所述H8的转置矩阵进行第一绝对变换误差和运算其中,D1=(H4 H4);其中,所述8阶hadamard变换系数矩阵H8可以表示为如下分块矩阵的形式:H4为4阶hadamard变换系数矩阵。

3)对位于所述8阶hadamard变换系数矩阵H8下半部分的4×8子矩阵D2、所述8×8的残差数据矩阵X进行第二绝对变换误差和运算SATD2=SA(D2X),其中,D2=(H4 -H4);

4)将所述第二绝对变换误差和运算的计算结果乘以系数2,然后再与所述第一绝对变换误差和运算的计算结果进行求和,得到基于所述8×8的残差数据矩阵的绝对变换误差和。

具体地,本发明实施例的视频编码中绝对变换误差和的计算方法的实现原理为(以8×8的残差数据矩阵为例):

其中,上述实现原理是,对于基于所述基于8×8的残差数据矩阵X的4个矩阵子块之间存在一定的空间相关性,因此H4X00-H4X10和H4X01-H4X11两部分的幅值很小,省去这两部分与之间的乘法运算对于所述基于8×8的残差数据矩阵X的绝对变换误差和的影响很小,同时不需要保存对应的中间结果,因此可以大大降低实现所需的加法器和寄存器资源。这里通过乘以系数2来修正省去与矩阵乘法所导致的误差。

本发明的绝对变换误差和的计算方法与现有技术中的绝对变换误差和的计算方法的性能分析如下:

1)线性相关性

将上述两种绝对变换误差和的计算方法的软件模型嵌入到编码器中,编码一段随机的视频,在程序中同时收集现有的SATD8×8得到的结果和经过本发明优化后的SATD8×8得到的结果,求两个结果的比值。经过统计两者的比值的均值为0.93、最大值为1.1(最小值没统计的意义,修改后的SATD算法得到的值为0的时候则比值一定为0)说明两者具有很强的线性相关性。

2)率失真代价

用本发明的绝对变换误差和的计算方法代替现有技术中的绝对变换误差和的计算方法后统计对率失真代价的影响:平均值-0.11%,最大值0.61%、最小值 -2.53%(负数表示性能优于原始SATD算法)。综上,率失真代价变化极小,甚至优于原始SATD算法,说明本发明的绝对变换误差和的计算方法保持了很好的性能。

由此可见,与现有技术相比,一方面,其能够通过节省一半的数据与进行矩阵乘法运算,来减少绝对变换误差和(SATD)的计算涉及的加法运算,相应地,也减少了硬件实现所需的加法器;另一方面,只需要4×8大小的寄存器用于保存中间结果,因此减少了实现所需寄存器的大小。综上,本发明的技术方案与现有技术相比,能够减少SATD变换实现的计算量,并且节省实现所需加法器和寄存器等硬件资源。

如图2所示,本发明实施例提供一种视频编码中绝对变换误差和的计算装置,所述装置包括获取模块21、第一计算模块22、第二计算模块23以及第三计算模块24。

所述获取模块21,用于获取残差数据矩阵。

所述第一计算模块22,用于对所述残差数据矩阵对应的hadamard变换系数矩阵上半部分的子矩阵、所述残差数据矩阵以及所述hadamard变换系数矩阵的转置矩阵进行第一绝对变换误差和运算。

所述第二计算模块23,用于对所述残差数据矩阵对应的hadamard变换系数矩阵下半部分的子矩阵、所述残差数据矩阵进行第二绝对变换误差和运算。

所述第三计算模块24,用于将所述第二绝对变换误差和运算的计算结果乘以2,然后再与所述第一绝对变换误差和运算的计算结果进行求和,得到基于所述残差数据矩阵的绝对变换误差和。

本发明提供的视频编码中绝对变换误差和的计算装置,与现有技术相比,一方面,其能够通过减少一半的数据与所述hadamard变换系数矩阵的转置矩阵进行矩阵乘法运算,来减少绝对变换误差和(SATD)的计算涉及的加法运算,相应地,也减少了硬件实现所需的加法器;另一方面,减小了保存中间结果的 所需寄存器的大小。综上,本发明的技术方案与现有技术相比,能够减少SATD变换实现的计算量,并且节省实现所需加法器和寄存器等硬件资源。

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

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