一种ADPCM图像压缩方法和装置转让专利

申请号 : CN200810106325.2

文献号 : CN101276471B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王耀辉季鹏飞

申请人 : 北京中星微电子有限公司

摘要 :

本发明涉及一种ADPCM图像压缩方法和装置。本发明在预测误差较大时加入溢出码编码策略,在没有提高编码码率的同时,显著地提高了编码图像的客观质量和主观效果。此外本发明的编解码过程也得到了简化,降低了原有图像压缩的复杂度,同时提高了编码性能,使压缩后的图像在客观质量和主管效果上都有很大程度的提高,编解码器复杂度的降低有利于此算法在软件ISP中的应用。

权利要求 :

1.一种ADPCM图像压缩方法,其特征在于:

利用相邻像素的重构值计算当前像素的预测值,根据预测值获得预测误差;

对预测误差进行量化,L0、L1、L2、L3、L4、L5、L6和L7表示量化级别,-D2、-D1、-D0、0、D0、D1和D2用于划分量化区间;

将量化后得到的量化结果进行熵编码操作,当选择的量化级别为L7时,将所述预测误差与D2之间的差进行溢出码编码并写入码流,当选择的量化级别为L0时,将-D2与所述预测误差之间的差进行溢出码编码并写入码流。

2.根据权利要求1所述的ADPCM图像压缩方法,其特征在于:提供三组相关的量化器,所述量化过程中选取三组量化器中的最优量化器实现量化。

3.根据权利要求1所述的ADPCM图像压缩方法,其特征在于:所述相邻像素的重构值是在对相邻像素的预测误差进行量化后,将得到的量化结果进行反量化,再将得到的反量化值与所述相邻像素的预测值相加得到的。

4.根据权利要求2所述的ADPCM图像压缩方法,其特征在于:在对预测误差进行量化之前还包括将连续的一系列相邻像素组成一组,并对每一组中像素的预测误差选用同一个量化器进行量化,所述每一组中像素选用的同一个量化器为从三组量化器中选择的最优量化器。

5.根据权利要求4所述的ADPCM图像压缩方法,其特征在于:以一组像素为单位选取最优量化器包括:选取三组量化器中量化误差最小的量化器作为初选量化器;

当初选量化器量化后编码得到的字节数小于根据目标码率计算出的平均字节数时,则所述初选量化器作为最优量化器;

否则,判断除去所述初选量化器外的两量化器中,是否存在同时满足下列两条件的量化器,即使用当前量化器量化后编码得到的字节数小于根据目标码率计算出的平均字节数,且当前量化器的量化误差小于所述初选量化器的量化误差与32的和;如果没有同时满足上述条件的量化器,则所述初选量化器为最优量化器,如果都满足上述条件则选择量化误差最小的为最优量化器,如果仅其一满足上述条件,则满足条件的量化器作为最优量化器。

6.根据权利要求2所述的ADPCM图像压缩方法,其特征在于:所述三组量化器分别为:Q0=0.5Q1

Q2=1.75Q1

Q1=[-D2,-D1,-D0,0,D0,D1,D2]*QP其中,QP为量化参数。

7.一种ADPCM图像压缩装置,其特征在于,包括:

预测单元,用于利用相邻像素的重构值计算当前像素的预测值,并根据所述预测值获得预测误差;

量化单元,用于对所述预测误差进行量化,L0、L1、L2、L3、L4、L5、L6和L7表示量化级别,-D2、-D1、-D0、0、D0、D1和D2用于划分量化区间;

编码单元,用于对量化结果进行熵编码,当选择的量化级别为L7时,将所述预测误差与D2之间的差进行溢出码编码并写入码流,当选择的量化级别为L0时,将-D2与所述预测误差之间的差进行溢出码编码并写入码流。

8.根据权利要求7所述的ADPCM图像压缩装置,其特征在于:所述量化单元中包括三组相关的量化器和量化器选择子单元,通过所述量化器选择子单元从三个量化器中选择最优量化器。

9.根据权利要求7所述的ADPCM图像压缩装置,其特征在于:还包括反量化单元和重构单元,所述反量化单元用于对量化单元输出的量化结果进行反量化,所述重构单元用于将反量化单元的结果与所述预测值相加得到重构值。

10.根据权利要求8所述的ADPCM图像压缩装置,其特征在于:所述三组量化器分别为:Q0=0.5Q1

Q2=1.75Q1

Q1=[-D2,-D1,-D0,0,D0,D1,D2]*QP其中,QP为量化参数。

说明书 :

技术领域

本发明涉及一种ADPCM(Adaptive Differential Pulse CodeModulation自适应差分脉冲编码调制)图像压缩方法和装置。

背景技术

在计算机中,一幅图像是由大量的像素点构成的,而每个像素点都是由一组二进制数表示,而二进制数字精度越高,整幅图像的色彩更艳丽,图像更清晰,然而在图像的传输过程中,通常要将图像进行压缩编码成码流,并在传输后恢复原有的色彩和精度,现有技术中大多采用ADPCM(Adaptive Differential Pulse Code Modulation)即自适应差分脉冲编码调制来实现图像的压缩,包括预测、量化和熵编码过程,而原有的ADPCM中采用的编码需要采用复杂的行头、条带头以及伪起始码填充,填充字多,编解码过程复杂,计算复杂度高。此外,量化过程仅简单的根据量化区间划分量化级别,在预测步骤后产生的预测误差较大时,量化效果不很理想,码率增大时,图像质量不能有效地提高。

发明内容

本发明克服了上述缺点,提供了一种复杂度低、压缩后图像效果好的ADPCM图像压缩方法和装置。
本发明解决其技术问题所采取的技术方案是:一种ADPCM图像压缩方法,包括:
利用相邻像素的重构值计算当前像素的预测值,根据预测值获得预测误差;
对预测误差进行量化L0、L1、L2、L3、L4、L5、L6和L7表示量化级别,-D2、-D1、-D0、0、D0、D1和D2用于划分量化区间;
将量化后得到的量化结果进行熵编码操作,当选择的量化级别为L7时,将所述预测误差与D2之间的差进行溢出码编码并写入码流,当选择的量化级别为L0时,将-D2与所述预测误差之间的差进行溢出码编码并写入码流。
提供三组相关的量化器,所述量化过程中选取三组量化器中的最优量化器实现量化。
所述相邻像素的重构值可以是在对相邻像素的预测误差进行量化后,将得到的量化结果进行反量化,再将得到的反量化值与相邻像素的预测值相加得到的。
在对预测误差进行量化之前还可以包括将连续的一系列相邻像素组成一组,并对每一组中像素的预测误差选用同一个量化器进行量化,所述每一组中像素选用的同一个量化器为从三组量化器中选择的最优量化器。
所述以一组像素为单位选取最优量化器可以包括:选取三组量化器中量化误差最小的量化器作为初选量化器;
当初选量化器量化后编码得到的字节数小于根据目标码率计算出的平均字节数时,则所述初选量化器作为最优量化器;
否则,判断除去所述初选量化器外的两量化器中,是否存在同时满足下列两条件的量化器,即使用当前量化器量化后编码得到的字节数小于根据码率计算出的字节数,且当前量化器的量化误差小于所述初选量化器的量化误差与32的和;如果没有同时满足上述条件的量化器,则所述初选量化器为最优量化器,如果都满足上述条件则选择量化误差最小的为最优量化器,如果仅其一满足上述条件,则满足条件的量化器作为最优量化器。
所述三组量化器可分别为:
Q0=0.5Q1
Q2=1.75Q1
Q1=[-D2,-D1,-D0,0,D0,D1,D2]*QP
其中,QP为量化参数。
所述溢出码编码过程可以是利用预测误差与所在量化区间的差值,对应获得溢出码字。
一种图像压缩装置,包括:
预测单元,用于利用相邻像素的重构值计算当前像素的预测值,并根据所述预测值获得预测误差;
量化单元,用于对所述预测误差进行量化,L0、L1、L2、L3、L4、L5、L6和L7表示量化级别,-D2、-D1、-D0、0、D0、D1和D2用于划分量化区间;
编码单元,用于对量化结果进行熵编码,当选择的量化级别为L7时,将所述预测误差与D2之间的差进行溢出码编码并写入码流,当选择的量化级别为L0时,将-D2与所述预测误差之间的差进行溢出码编码并写入码流。
所述量化单元中可包括三组相关的量化器和量化器选择子单元,通过所述量化器选择子单元从三个量化器中选择最优量化器。
还可包括反量化单元和重构单元,所述反量化单元用于对量化单元输出的量化结果进行反量化,所述重构单元用于将反量化单元的结果与所述预测值相加得到重构值。
所述三组量化器可分别为:
Q0=0.5Q1
Q2=1.75Q1
Q1=[-D2,-D1,-D0,0,D0,D1,D2]*QP
其中,QP为量化参数。
本发明在预测误差较大时加入溢出码编码策略,在没有提高编码码率的同时,显著地提高了编码图像的客观质量和主观效果。此外本发明的编解码过程也得到了简化,降低了原有图像压缩的复杂度,同时提高了编码性能,使压缩后的图像在客观质量和主管效果上都有很大程度的提高,编解码器复杂度的降低有利于此算法在软件ISP中的应用。

附图说明

图1为本发明中对当前像素点预测示意图;
图2为本发明方法中量化器Q1示意图;
图3为本发明方法中选择最优量化器的流程图;
图4为本发明装置的结构示意图。

具体实施方式

实施例一为本发明提出的ADPCM图像压缩方法,其具体实施过程如下:
一、首先,利用已经重构的相邻像素A,B和C,计算当前原始像素X0的预测值X′。
每一幅图像都是由一个个像素构成的,而用已知像素点的值可以大概判断出未知像素点的值,如图1中所示,假设已知A、B、C三个像素点的值,由于输入的图像为Bayer图像,每个像素的有效位是10位或8位,则第四个像素点X0的预测值X′为:
当像素的有效位为10位时,X′=(C+B)/2
当像素的有效位为8位时,X′=(3*C-2*A+3*B)/4
其中,A,B,C和X0分别是相邻像素点的相同性质的色差分量,如果A,B或C不存在,则设其值为128。
二、对X0的原始值与预测值X′之间的差进行量化。
在得到X0的预测值X′之后,对预测误差(即原始值与预测值之间的差,X0-X′)进行量化操作。为了尽可能的降低量化误差,可以构造三组相关的量化器,分别用Q0,Q1和Q2表示,三组量化器之间的关系如下:
Q0=0.5Q1
Q2=1.75Q1
Q1=[-D2,-D1,-D0,0,D0,D1,D2]*QP
所述量化器Q1如图2中所示,其中Dn用于划分量化区间,即如果所述预测误差落在某一个量化区间内,此误差将被量化成一个固定的量化级别Lx(x=0...7),例如,当所述预测误差落在D0~D1之间,则此时的预测误差则被量化成L5。
其中,QP为量化参数,是根据用户给出的码率求得或者用户直接给出,根据经验和统计结果得到的QP与码率之间的关系见下表:
当每个像素的有效位为10位时,QP与码率关系为
  码率(kB)   300   350   400   450   500   550   600   缺省   QP   120   80   60   50   40   35   20   80
当每个像素的有效位为8位时,QP与码率关系为
  码率(kB)  500   550   600   650   700   750   800   缺省   QP   100   40   20   15   12   10   8   20
在预测误差量化之后,对得到的量化幅值进行反量化,将得到的反量化值与预测值X′相加,即得到X0的重构值X。后续像素编码流程与此相同。
在后续的编码过程中,可以将连续的一系列相邻像素组成一组,每一组中的像素采用同一个量化器进行编码,并在上述三组量化器中选择一个性能最好的量化器作为一组像素的最优量化器。
所述最优量化器的选择也是以像素组为单位,如图3中所示,包括如下两个步骤:
第一步:利用量化误差最小原则进行初选,即
err=Σi=1GNabs(X-X0)---(1)
式(1)中X是重构后的像素值,X0是原始像素值,函数abs()的作用是取绝对值,GN是常量表示一组中像素的个数。利用三组量化器分别利用上式计算量化误差err,并选择三组量化器中使量化误差最小的作为这一组像素的初选最优量化器。
第二步:根据用户设定的目标码率,在编码过程中进行细选。
首先我们先定义两个变量BPG和BUG,BPG是根据给定的目标码率计算出的平均每组像素编码需要的字节数;BUGi(i=0,1,2)是使用三组量化器Q0、Q1、Q2编码分别得到的实际字节数。用BUGb表示第一步中初选最优量化器所用的字节数,如果初选出的最优量化器满足条件BUGb<BPG,则此量化器被选作最终的最优量化器;否则,如果除去所述初选最优量化器的剩余两个量化器中存在同时满足下列两个条件的,则被选作最终的量化器;
条件一:BUGi<BPG
条件二:erri<(errb+32)
其中i是除了初选最优量化器之外的另外两个量化器索引。如果剩余的两个量化器均满足条件,则选择量化误差erri较小的量化器作为最终的量化器;如果没有同时满足以下两个条件的量化器,则初选最优量化器将作为最终的量化器。
这样,使得一系列相邻像素组成一组像素,采用同一个量化器进行编码,可以不必为每个像素选择一个量化器,从一定程度上降低了计算量。
三、对量化结果进行熵编码。
此过程中,对量化级别的编码采用霍夫曼编码,即根据编码过程中各个量化级别出现的频率,建立如下的霍夫曼码表。
  量化级别   L0   L1   L2   L3   L4   L5   L6   L7   霍夫曼码字   111101   11100   111110   10   0   110   11101   111100   码字长度   6   5   6   2   1   3   5   6
而当被选择的量化级别是L7或L0时,则需要将预测误差与D2或-D2之间的差进行溢出码编码并写入码流,即若量化级别为L7,则所述差为(X0-X′)-D2;若所述量化级别为L0,则所述差为-D2-(X0-X′),且保证所述差是正数,再根据溢出码表确定需要传输的码字,所述溢出码表如下表中所示,使所述预测误差与D2或者-D2之间的差值被限定在1到255之间。
  溢出误差   1   2   3   4   5 …   255   溢出码字   00000001   00000010   00000011   00000100   00000101 …   11111111
由于在预测误差较大时,即在两端的量化区间内,采用溢出码编码策略,在没有提高编码码率的同时,显著地提高了编码图像的客观质量和主观效果。
实施例二为一种图像压缩装置,如图2中所示,
预测单元,用于利用相邻像素的重构值A、B、C计算当前像素的预测值X′;
量化单元,包括三个量化器Q0,Q1和Q2和量化器选择子单元,三组量化器之间的关系如下:
Q0=0.5Q1
Q2=1.75Q1
Q1=[-D2,-D1,-D0,0,D0,D1,D2]*QP
通过所述量化器选择子单元从三个量化器中选择最优量化器对所述预测误差(即X0-X′)进行量化;
编码单元,用户对量化结果进行熵编码,并在两端的量化区间内采用溢出码编码;
反量化单元,用于对量化单元输出的量化结果进行反量化;
重构单元,用于将反量化单元的结果与所述预测值相接得到重构值X。
以上对本发明所提供的ADPCM图像压缩方法及其装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。