本发明属于压缩编码领域,具体涉及一种预测量化编码方法。
背景技术:
图像数据中存在很大的冗余度,一般通过压缩编码去相关,即通过较少序列之间的相关性,用较少的比特数来表示视频内容,降低视频内容中的冗余,从而实现对视频或者图像的压缩。
在压缩编码过程中,允许图像编码有一定的失真也是视频可以压缩的一个重要原因。在许多应用场合,并不要求压缩后的图像复原后和原图完全一致,而是允许有一定的失真,因为这些失真可以利用人的视觉特性,在图像变化不被觉察的条件下减少量化信号的灰度级之类,来提高数据压缩比。
预测量化方法是压缩编码的常用手段,现有的预测量化方法主要存在下面的问题:预测像素分量容易误判,影响预测结果,且没有充分利用像素纹理之间的相关性,无法进一步降低理论极限熵以及运算复杂度,无法进一步降低预测量化压缩后数据压缩比和失真损失。
因此,如何提供一种高数据压缩比且失真损失小的预测量化方法是研究的热点问题。
技术实现要素:
为了解决现有技术中存在的上述问题,本发明提供了一种预测量化编码方法。本发明要解决的技术问题通过以下技术方案实现:
本发明实施例提供了一种预测量化编码方法,包括如下步骤:
将待处理像素分成若干像素分量:
获得待处理像素分量;
获得所述待处理像素分量的纹理方向梯度;
根据所述纹理方向梯度、所述待处理像素分量与其余所述像素分量之间的位置关系获得参考像素;
根据所述参考像素获得所述待处理像素分量的预测残差;
重复步骤(b)~步骤(e),将任一像素分量作为待处理像素分量获得对应的预测残差以形成预测残差码流;
将所述预测残差码流划分为多个量化单元;
获取所述量化单元对应的第一率失真优化和第二率失真优化以获得量化残差码流。
在本发明的一个实施例中,将待处理像素分成多个像素分量包括将所述待处理像素分成r像素分量、g像素分量、b像素分量。
在本发明的一个实施例中,步骤(d)包括如下步骤:
(d1)根据所述纹理方向梯度获得第一加权梯度最优值;
(d2)根据所述第一加权梯度最优值、所述待处理像素分量与其余所述像素分量之间的位置关系获得第二加权梯度最优值;
(d3)根据所述第二加权梯度最优值获得参考方向;
(d4)根据所述参考方向获得所述参考像素。
在本发明的一个实施例中,步骤(d2)包括如下步骤:
(d21)获得所述待处理像素分量的第一加权梯度最优值;
(d22)根据所述待处理像素分量与其余所述像素分量的位置关系获得位置关系权重;
(d23)根据所述位置关系权重和所述第一加权梯度最优值获得所述第二加权梯度最优值。
在本发明的一个实施例中,所述待处理像素分量与其余所述像素分量的位置关系包括:与所述待处理像素分量距离越近的像素分量其位置关系权重约大,反之越小。
在本发明的一个实施例中,步骤(h)包括:
(h1)对所述量化单元的预测残差依次进行量化处理、第一补偿处理、第一反量化处理获得第一量化残差和第一率失真优化;
(h2)对所述第一量化残差进行第二补偿处理、第二反量化处理获得第二量化残差和第二率失真优化。
(h3)比较所述第一率失真优化和第二率失真优化,若所述第一率失真优化小于第二率失真优化,则将所述第一量化残差写入所述量化残差码流;否则将所述第二量化残差写入所述量化残差码流。
在本发明的一个实施例中,步骤(h1)包括:
(h11)对所述量化单元的预测残差依次进行所述量化处理、所述第一补偿处理获得所述第一量化残差;
(h12)对所述第一量化残差进行所述第一反量化处理并依次获得第一反量化残差、第一残差损失、所述第一率失真优化。
在本发明的一个实施例中,步骤(h2)包括:
(h21)根据所述波动系数获得补偿模板;
(h22)根据所述补偿模板对所述第一量化残差进行所述第二补偿处理获得所述第二量化残差;
(h23)对所述第二量化残差进行所述第二反量化处理并依次获得第二反量化残差、第二残差损失、所述第二率失真优化。
在本发明的一个实施例中,所述波动系数k满足:
其中,lossresi为所述第一残差损失的第i位的值,pixnumnone0为所述第一残差损失内非0的数量。
与现有技术相比,本发明的有益效果:
本发明的预测量化编码方法有效减少码流传输带宽,充分利用纹理相关性进行预测编码,自适应进行量化编码,进一步降低理论极限熵及复杂度。
附图说明
图1为本发明实施例提供的一种预测量化编码方法的流程示意图;
图2为本发明实施例提供的一种预测量化编码方法的原理示意图;
图3为本发明实施例提供的一种预测量化编码方法中像素r分量示意图;
图4为本发明实施例提供的一种预测量化编码方法中待处理像素分量的纹理方向梯度计算原理示意图;
图5为本发明实施例提供的一种预测量化编码方法中参考方向计算原理示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例一
请参见图1,图1为本发明实施例提供的一种预测量化方法的流程示意图。该预测量化方法包括:
将待处理像素分成若干像素分量:
获得待处理像素分量;
获得所述待处理像素分量的纹理方向梯度;
根据所述纹理方向梯度、所述待处理像素分量与其余所述像素分量之间的位置关系获得参考像素;
根据所述参考像素获得所述待处理像素分量的预测残差;
重复步骤(b)~步骤(e),将任一像素分量作为待处理像素分量获得对应的预测残差以形成预测残差码流;
将所述预测残差码流划分为多个量化单元;
获取所述量化单元对应的第一率失真优化和第二率失真优化以获得量化残差码流。
本发明的预测量化方法有效减少码流传输带宽,充分利用纹理相关性进行预测编码,自适应进行量化编码,进一步降低理论极限熵及复杂度。
实施例二
请参见图2,图2为本发明实施例提供的一种预测量化方法的原理示意图。本实施例在上述实施例的基础上包括实施例一的全部内容,重点对该预测量化方法进行详细描述。具体地,该预测量化方法包括如下步骤:
s01:获取待处理图片的任一像素作为待处理像素;具体地,可按照待处理图像的像素矩阵从左到右的顺序,依次获取像素作为待处理像素。
s02:将上述待处理像素分成待处理像素的r像素分量、g像素分量、b像素分量;对应地,所述待处理图片的像素矩阵中任一像素都可分成对应的r像素分量、g像素分量、b像素分量。
其中,也可以将待处理像素分成rgby四个像素分量,或者rgbw四个像素分量,等等,此处分量拆分方式不做具体限制。
s03:获取待处理像素分量;
将待处理像素的任一像素分量作为待处理像素分量。
s04:获得待处理像素分量的纹理方向梯度;
其中,纹理方向梯度为矢量值,包括纹理方向梯度的矢量方向和纹理方向梯度的大小两个特征。
其中,纹理方向梯度通过待处理像素分量周围的像素分量确定,对于待处理像素分量的周围分量,确定待处理像素分量的n个纹理方向梯度g1~gn;
请参考图3和图4,图3为本发明实施例提供的一种预测量化编码方法中r像素分量示意图;图4为本发明实施例提供的一种预测量化编码方法中待处理像素分量的纹理方向梯度计算原理图。
获取待处理像素的r分量作为待处理像素分量cur;其中,cur为待处理像素的r分量,a~o为待处理像素之前已经预测编码过的像素的r分量。
首先,找到待处理像素分量cur紧邻的o像素分量作为纹理参考分量;
其中,一种实施方式为:获取o像素分量周围像素距离为0的像素分量n像素分量、h像素分量、i像素分量、j像素分量;分别做由o像素分量到j像素分量、i像素分量、h像素分量、n像素分量的矢量线,则o像素分量到j像素分量的矢量线方向作为第一纹理梯度的矢量方向,j像素分量与o像素分量的差值绝对值为第一纹理梯度的大小,从而得到第一纹理梯度(45°);同理,分别根据i像素分量、h像素分量、n像素分量可以获得第二纹理方向梯度(90°)、第三纹理方向梯度(135°)、第四纹理方向梯度(180°)。
其中,另一种实施方式为:获取o像素分量周围像素距离为1的像素分量分别为m像素分量、g像素分量、a像素分量、b像素分量、c像素分量、d像素分量、e像素分量、f像素分量。同理,也可以得到对应的8个纹理方向梯度。
同理,可以分别获得待处理像素的g分量和b分量中个纹理方向梯度g2和g3。
s05:根据所述纹理方向梯度、所述待处理像素分量与其余所述像素分量之间的位置关系获得参考像素;
s051:根据所述纹理方向梯度获得第一加权梯度最优值;
以r分量为例,将待处理像素分量纹理参考分量的n个纹理方向梯度g1~gn进行矢量加权得到n个纹理方向梯度加权后的第一加权梯度bg,加权公式如下:
bg=w1*g1+w2*g2+…+wn*gn
其中,w1、w2…wn为加权系数,可以相同也可以不同;
其中,w1、w2…wn可以是预先自行设定的固定值。更进一步的,并且,配置w1、w2…wn的相对大小时,可以考虑先验经验。例如,从以往的经验得知,在纹理方向梯度g1的这个方向可能更加适合本图像做预测的实际情况,则可以将w1配置一个更加适合本图像做预测的实际情况的值(例如,可以将w1配置很小),以增加在纹理方向梯度g1的这个方向的权重。当然,w1、w2…wn也可以是自适应的,即可以根据早期预测处理的实际情况,灵活调整w1、w2…wn的相对大小,具体地w1+w2+…+wn=1。
其中,选取多组w1、w2…wn的值,得到多个第一加权梯度,取多个第一加权梯度中矢量大小的最小值对应的第一加权梯度,即为待处理像素r分量的第一加权梯度最优值bgbstr。
同理,可以分别得到待处理像素g分量和b分量的第一加权梯度最优值bgbstg和bgbstb。
s052:根据所述第一加权梯度最优值、所述待处理像素分量与其余所述像素分量之间的位置关系获得第二加权梯度最优值;
根据步骤s051获得的r分量、g分量、b分量的第一加权梯度最优值进行矢量相加可以得到待处理像素r分量的第二加权梯度最优值,满足如下公式:
bgr=t1r×bgbstr+t2r×bgbstg+t3r×bgbstb
其中,bgr为待处理像素r分量的第二加权梯度最优值,t1、t2、t3分别为r分量、g分量、b分量的第一加权梯度最优值加权系数,可以相同也可以不同;
优选地,待处理像素r分量下的第一加权梯度最优值加权系数值最大,与待处理像素r分量距离逐渐增加的其它分量下的第一加权梯度最优值加权系数值逐渐减小,且第一加权梯度最优值加权系数值的总和为1,具体为t1r+t2r+t3r=1。
其中,与待处理像素r分量的距离根据待处理像素像素分量的划分顺序进行判定,比如待处理像素划分像素分量的顺序为r分量、g分量、b分量,则r分量到g分量的距离小于r分量与b分量的距离。
同理,可以获得待处理像素g分量的第二加权梯度最优值bgg和待处理像素b分量的第二加权梯度最优值bgb。
请再次参考图2,第二加权梯度最优值bgr、bgg、bgb分别满足:
bgr=0.5×bgbstr+0.3×bgbstg+0.2×bgbstb
bgg=0.3×bgbstr+0.4×bgbstg+0.3×bgbstb
bgb=0.2×bgbstr+0.3×bgbstg+0.5×bgbstb
s053:根据所述第二加权梯度最优值获得所述参考值。
获得步骤s052获得的待处理像素r分量的第二加权梯度最优值bgr的矢量方向作为参考方向。
以待处理像素r分量为矢量原点,参考方向上所有可用的分量像素即为参考像素。将参考像素值进行标量加权,得到参考值ref,加权公式如下所示:
refr=r1×cpt1+r2×cpt2+…+rn×cptn
其中,r1、r2…rn为参考像素加权系数,可以相同也可以不同;cpt1~cptn为r分量的参考方向上n个可用的分量像素值;
请参考图5,图5为本发明实施例提供的一种预测量化编码方法中参考方向计算原理示意图。
bg、bgbstr、bgr均是以纹理参考分量o作为矢量原点的矢量,假设第二加权梯度最优值bgr的矢量方向如图,此时在计算参考值ref时,需要以待处理像素cur作为矢量原点,以bgr的矢量方向为参考方向,获得参考方向所有可用的像素k像素和f像素作为参考像素,进行加权计算得到:
refr=r1×cptk+r2×cptf
其中,cptk为待处理像素k的r分量的像素分量值,cptf为待处理像素f的r分量的像素分量值。
优选地,对于任意分量,若为45度参考,那么参考值
refr=0.8×cptk+0.2×cptf
若为135度参考,那么参考值为0.8*g+0.2a;若为180度参考,那么参考值为0.8*k+0.2j,分量像素值离当前像素越近,配置系数越大。
s06:根据所述参考值获得所述待处理像素分量的预测残差;
将待处理像素r分量的像素值减去参考值,可以得到待处理像素r分量的预测残差difr,计算如下:
difr=curr-refr
同理,可以得到g分量和b分量的预测残差difg和difb。
s07:重复步骤(b)~步骤(e),将任一像素分量作为待处理像素分量获得对应的预测残差以形成预测残差码流;
其中,以上实施方式中r分量、g分量和b分量的预测残差的获取过程可以并行处理,也可以串行处理,具体应用规格场景需要,本实施例不做过多限制。
s08:将所述预测残差码流划分为多个量化单元;
优选地,量化单元大小可设定为8×1。
s09:获取所述量化单元对应的第一率失真优化和第二率失真优化以获得量化残差码流。
s091:对所述量化单元的预测残差依次进行量化处理、第一反量化处理、第一补偿处理获得第一量化残差和第一率失真优化;
首先获得量化参数qp,所有量化单元采用相同的量化参数。优选地,量化参数qp为2。
采用量化参数qp对量化单元进行量化处理,获得第一量化残差,满足:
qpresi=[presi>>qp]
其中,qpresi为量化单元第i位像素的量化残差,presi为量化单元第i位像素的预测残差,qp为量化参数。
其中,“>>”算式表示,若有表达式a>>m则表示将整型数a按二进制位向右移动m位,低位移出后,高位补0。
对第一量化残差进行第一反量化处理、第一补偿处理获得第一反量化残差,满足:
iqpres_1i=qpresi<<qpi+cp
其中,iqpres_1i为量化单元第i位像素的第一反量化残差,cp为第一补偿参数。
优选地,第一补偿参数满足:
cp=(1<<qp)/2
根据第一反量化残差和量化单元的预测残差获得第一残差损失,满足:
loss_1i=iqpres_1i-presi
其中,loss_1i为量化单元第i位像素的第一残差损失。
计算第一率失真优化,满足:
其中,rdo1为第一率失真优化,pixnum为量化单元的长度,a1和a2为权重参数。
优选地,a1=a2=1。
s092:对所述第一量化残差进行第二补偿处理、第二反量化处理获得第二量化残差和第二率失真优化。
首先,根据所述第一残差损失获得波动系数;
其中,所述波动系数k满足:
其中,loss_1i为量化单元第i位像素的第一残差损失,pixnumnone0为第一残差损失loss_1内非0的数量,round表示四舍五入运算符。
获得波动状态,其中,波动状态为同时存储在解码端和编码端的序列,满足:
ct={c0,c1,ci,…,cm},其中,ci=0或1或-1,m=量化单元长度,
优选地,可设置固定的波动状态为:
ct={1,0,-1,0,1,0,-1,0}
根据波动状态和波动系数计算第二反量化残差,满足:
其中,第二反量化残差满足:
iqpres_2i=iqpres_1i+k×ci
其中,iqpres_2i为量化单元第i位像素的第二反量化残差。
根据第二反量化残差和量化单元的预测残差获得第二残差损失,满足:
loss_2i=iqpres_2i-presi
其中,loss_2i为量化单元第i位像素的第二残差损失。
计算第二率失真优化,满足:
其中,rdo1为第二率失真优化。
s093:比较所述第一率失真优化和第二率失真优化,若所述第一率失真优化小于第二率失真优化,则将所述第一量化残差写入所述量化残差码流;否则将所述第二量化残差写入所述量化残差码流。
其中,若第一率失真优化小于第二率失真优化则说明不进行第二补偿损失更小,效果更优,则需要在将所述第一量化残差写入所述量化残差码流的同时将不进行第二补偿的标志写入码流;反之,则说明进行第二补偿损失更小,效果更优,则需要在将所述第一量化残差写入所述量化残差码流的同时将进行第二补偿的标志、波动系数写入码流。
本发明的预测量化方法有效减少码流传输带宽,充分利用纹理相关性进行预测编码,自适应进行量化编码,进一步降低理论极限熵及复杂度。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。