带宽压缩空域量化及反量化方法与流程

文档序号:17149015发布日期:2019-03-19 23:15阅读:269来源:国知局
带宽压缩空域量化及反量化方法与流程

本发明属于压缩技术领域,具体涉及一种带宽压缩空域量化及反量化方法。



背景技术:

视频图像与人们的生产生活息息相关,是人类获取和交换信息的主要来源,据统计人类有80%以上的信息来自于视频图象。在人类历史发展过程中,视觉感知在学习、生产和各种知识传承中占据了主要作用。视频技术也在不断地发展,从576i到现在的4k,以及未来的8k,分辨率扩大了几十倍,不断地满足了人们对视频高清的需求。高清晰度的视频在各个领域的应用越来越广,3d技术也日趋成熟,需要对海量视频数据进行复杂处理的应用越来越多,这个趋势也迫使视频处理芯片行业不断前行。

因此随着分辨率的成倍数增加,芯片面积成本会大幅度增加,总线带宽和功耗也会大幅增加。为了克服这一问题,应用于芯片内的带宽压缩技术被提出。与端口类压缩(如h.265)不同,芯片内带宽压缩的目标是用较小的逻辑面积成本,尽可能的提高压缩倍数,减少ddr占用。

量化作为芯片内压缩一个重要的模块,根据码率控制得到的量化参数(quantizationparameter,简称qp),对预测残差进行量化。目前量化常用的算法主要为空域量化和频域量化。其中,空域量化的优点是:由于量化是对于空域预测残差直接操作,所以可以严格控制原始像素和重建像素间的最大损失;由于不用经过频域变换,所以运算复杂度较低。可以看出,空域量化适合对压缩损失客观指标有严格要求,对运算复杂度极为关注的低倍率压缩;现有技术中的空域量化算法是对预测残差直接量化,对直接量化产生的损失没有根据损失的位置和损失的大小分布进行进一步处理,不能进一步降低量化损失。

因此,如何进一步降低带宽压缩空域量化算法的量化损失已经成为目前的重点研究问题。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种带宽压缩空域量化方法,包括:

获取量化单元中像素的原始预测残差;

计算所述原始预测残差的量化残差和残差损失;

根据所述残差损失计算波动系数和波动状态。

在本发明的一个实施例中,根据所述残差损失计算波动系数和波动状态之后,还包括:将所述量化残差、所述波动系数、所述波动状态写入码流。

在本发明的一个实施例中,所述量化单元采用统一的量化参数。

在本发明的一个实施例中,计算所述原始预测残差的量化残差和残差损失,包括:

对所述原始预测残差进行量化获得所述量化残差;

对所述量化残差进行反量化获得反量化残差;

根据所述量化残差和所述反量化残差获得所述残差损失。

在本发明的一个实施例中,所述反量化残差满足:

invres=((resqp>>qp)<<qp)+(1<<qp)/2

其中,invres为所述反量化残差,resqp为所述量化残差,qp为所述量化参数。

在本发明的一个实施例中,根据所述残差损失计算所述波动系数满足:

其中,lossresi为所述量化单元第i位像素的所述残差损失,pixnumnone0为所述残差损失内非0的残差数量。

在本发明的一个实施例中,根据所述残差损失计算所述波动状态包括:

若所述像素的所述残差损失大于0,则所述像素的所述波动状态等于1;若所述像素的所述残差损失小于0,则所述像素的所述波动状态等于-1;否则,所述像素的所述波动状态等于0。

本发明的另一个实施例提供了一种带宽压缩反量化方法,包括:

获取码流中的量化残差、波动系数、波动状态;

根据所述量化残差、所述波动系数、所述波动状态获得反量化残差。

在本发明的一个实施例中,根据所述量化残差、所述波动系数、所述波动状态获得反量化残差,包括:

根据所述量化残差获得第一反量化残差;

根据所述波动系数和所述波动状态计算补偿值;

根据所述第一反量化残差和所述补偿值计算所述反量化残差。

在本发明的一个实施例中,根据所述波动系数和所述波动状态计算补偿值,满足:

所述补偿值=所述波动系数*所述波动状态。

本发明的有益效果为:

1、通过波动状态和波动系数对量化和反量化造成的残差损失进行了补偿,缩小了量化造成的差异;

2、同样的量化参数下,采用本方法恢复的图像量化损失较小;

3、本方法仅需要通过简单计算即可对损失进行补偿,无需增加额外内存。

附图说明

图1为本发明实施例提供的一种带宽压缩空域量化方法流程示意图;

图2为本发明实施例提供的一种将原始预测残差分别通过第一量化模式和第二量化模式进行运算的原理示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

请参考图1,图1为本发明实施例提供的一种带宽压缩空域量化方法流程示意图,包括如下步骤:

获取量化单元中像素的原始预测残差;

计算所述原始预测残差的量化残差和残差损失;根据所述残差损失计算波动系数和波动状态。

其中,根据所述残差损失计算波动系数和波动状态之后,还包括:将所述量化残差、所述波动系数、所述波动状态写入码流。

其中,所述量化单元采用统一的量化参数。

其中,计算所述原始预测残差的量化残差和残差损失,包括:

对所述原始预测残差进行量化获得所述量化残差;

对所述量化残差进行反量化获得反量化残差;

根据所述量化残差和所述反量化残差获得所述残差损失。

其中,所述反量化残差满足:

invres=((resqp>>qp)<<qp)+(1<<qp)/2

其中,invres为所述反量化残差,resqp为所述量化残差,qp为所述量化参数。

其中,“<<”算式表示,若有表达式a<<m则表示将整型数a按二进制位向左移动m位,高位移出后,低位补0。

其中,“>>”算式表示,若有表达式a>>m则表示将整型数a按二进制位向右移动m位,低位移出后,高位补0。

其中,根据所述残差损失计算所述波动系数满足:

其中,lossresi为所述量化单元第i位像素的所述残差损失,pixnumnone0为所述残差损失内非0的残差数量。

其中,根据所述残差损失计算所述波动状态包括:

若所述像素的所述残差损失大于0,则所述像素的所述波动状态等于1;若所述像素的所述残差损失小于0,则所述像素的所述波动状态等于-1;否则,所述像素的所述波动状态等于0。

本发明实施例:

1、通过波动状态和波动系数对量化和反量化造成的残差损失进行了补偿,缩小了量化造成的差异;

2、同样的量化参数下,采用本方法恢复的图像量化损失较小;

3、本方法仅需要通过简单计算即可对损失进行补偿,无需增加额外内存。

实施例二

本实施例详细介绍了另一种带宽压缩空域量化方法,具体步骤包括:

s21:获取原始预测残差。设定量化单位为mb,mb大小可设定,本实施例中mb设定为8*1,各像素采用统一的量化参数qp=2,设获得该mb各像素的原始预测残差res={12,13,15,18,20,23,15,12}。

s22:根据设定的qp和量化模式对原始预测残差res依次进行量化、反量化、补偿处理,依次得到resqp、invres、lossres,且resqp、invres、lossres满足如下公式:

invres=((resqp1>>qp)<<qp)+(1<<qp)/2

={14,14,14,18,22,22,14,14}

lossres=invres-res={2,0,-1,0,2,-1,-1,2}

respq={3,3,3,4,5,5,3,3}

其中,invres是反量化后的预测残差,resqp是量化后的量化预测残差,lossres是反量化后的预测残差和原始预测残差的差异值。

其中,

s23:为了进一步降低量化引起的差异,我们采用预设模板对lossres进行处理。预设模板包括波动系数k和波动状态(c0~cpixnum-1)。

计算波动系数k,满足如下公式:

其中,pixnumnone0为lossres内非0的残差数量。因此,计算波动系数k=2。

计算波动状态ci,满足如下公式:

ci=((lossresi>0)?1):((lossresi<0)?(-1)):0

即当lossresi大于0,ci=1;lossresi小于0,ci=-1;lossres=0,ci=0。

因此计算获得波动状态(c0~c8)为{1,0,-1,0,1,-1,-1,1}。

s24:将量化模式标识号、量化残差、波动参数k、波动状态(c0~c8)依次写入码流。

本发明实施例:

1、通过波动状态和波动系数对量化和反量化造成的残差损失进行了补偿,缩小了量化造成的差异;

2、同样的量化参数下,采用本方法恢复的图像量化损失较小;

3、本方法仅需要通过简单计算即可对损失进行补偿,无需增加额外内存。

实施例二

本实施例详细说明了一种带宽压缩反量化方法,具体步骤包括如下:

s41:获取码流中mb的量化模式标识号、量化残差、补偿参数,其中,所述补偿参数包括:波动参数k、波动状态(c0~cpixnum-1),其中,pixnum是mb中像素数量。

s42:根据量化模式对量化残差进行反量化处理得到第二反量化预测残差invrestemp2。

s43:对第二反量化预测残差invrestemp2进行补偿以获得最终的反量化预测残差invres,补偿值为lossresi满足如下公式:

lossresi=lossresi+ci*k

则计算最终的反量化残差invresi=invrestemp2i+lossresi。

实施例三

本实施例在上述实施例的基础上,介绍另一种带宽压缩量化方法。

具体步骤如下:

s11:获取原始预测残差。设定量化单位为宏模块(macroblock,简称mb),mb大小可设定,本实施例中mb设定为8*1,各像素采用统一的量化参数qp=2,设获得该mb各像素的原始预测残差res={12,13,15,18,20,23,15,12}。

s12:请参考图2,图2为本发明实施例提供的一种将原始预测残差分别通过第一量化模式和第二量化模式进行运算的原理示意图;对原始预测残差res分别采用第一量化模式和第二量化模式获得第一rdo和第二rdo,即对原始预测残差res分别采用第一量化模式和第二量化模式进行量化和反量化计算,并将反量化后的残差和原始预测残差res进行比较选出量化损失较小的一种模式。优选地,第一量化模式和第二量化模式可以分别设置量化模式标识号便于传输。

其中,第一量化模式为根据设定的qp对原始预测残差res依次进行量化、反量化、补偿处理,依次得到resqp、invres、lossres,且resqp、invres、lossres满足如下公式:

invres1=((resqp1>>qp)<<qp)+(1<<qp)/2

={14,14,14,18,22,22,14,14}

lossres1=invres1-res={2,0,-1,0,2,-1,-1,2}

其中,invres1是采用第一量化模式反量化后的预测残差,resqp1是采用第一量化模式量化后的量化预测残差,lossres1是采用第一量化模式反量化后的预测残差和原始预测残差的差异值。

第二量化模式为根据所述量化参数对原始预测残差res依次进行补偿、量化、反量化处理,满足如下公式:

lossres2=invres2-res={0,-1,1,2,0,1,1,2}

其中,invres2是采用第二量化模式反量化后的预测残差,resqp2是采用第二量化模式量化后的量化预测残差,lossres2是采用第二量化模式反量化后的预测残差和原始预测残差的差异值。

分别计算第一量化模式和第二量化模式对应的率失真优化(ratedistortionoptimized,简称rdo),其中,所述rdo满足如下公式:

其中,pixnum是mb中像素数量,a1和a2是权重参数,优选地a1=a2=1。

因此,可得第一rdo为38,第二rdo为41。

s13:根据所述第一rdo和所述第二rdo获取第三量化模式;比较第一rdo和第二rdo的大小,选用rdo最小的模式为该mb的预测残差量化模式即第三量化模式。本实施例选择第一量化模式作为实际的量化模式即第三量化模式,对原始预测残差依次进行量化、反量化、补偿处理。

s14:根据所述第三量化模式对原始预测残差进行量化。

s141:根据第三量化模式计算原始预测残差对应的lossres和respq。

respq=respq1={3,3,3,4,5,5,3,3}

lossres=lossres1={2,0,-1,0,2,-1,-1,2}

s142:为了进一步降低量化引起的差异,我们采用预设模板对lossres进行处理。

其中,预设模板包括波动系数k和波动状态(c0~cpixnum-1)。

计算波动系数k,满足如下公式:

其中,pixnumnone0为lossres内非0的残差数量。因此,计算波动系数k=2。

计算波动状态ci,满足如下公式:

ci=((lossresi>0)?1):((lossresi<0)?(-1)):0

即当lossresi大于0,ci=1;lossresi小于0,ci=-1;lossres=0,ci=0。

即若所述量化单元中像素的所述残差损失大于0,则所述像素的所述波动状态等于1;否则,若所述量化单元中像素的所述残差损失小于0,则所述像素的所述波动状态等于-1;否则,所述像素的所述波动状态等于0,因此根据lossres计算波动状态(c0~c8)为{1,0,-1,0,1,-1,-1,1}。

s143:将量化模式标识号、量化残差、波动状态(c0~c8)、波动参数k写入码流。

本发明实施例:

1、通过对两种量化模式的率失真优化参数的选择给出反量化后损失最小的量化模式,并且通过波动状态对补偿值造成的损失进行了补偿,通过以上两个算法的结合进一步缩小了量化造成的差异;

2、同样的量化参数下,采用本方法恢复的图像量化损失较小。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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