首页> 中国专利> 使用根据图像变化的小波级数和各个小波级不同量化因子的小波变换对矩阵、尤其代表静止图像或视频的矩阵编码的方法

使用根据图像变化的小波级数和各个小波级不同量化因子的小波变换对矩阵、尤其代表静止图像或视频的矩阵编码的方法

摘要

本发明涉及一种编码方法,用于通过相继的层将初始矩阵编码成压缩矩阵和将其恢复成恢复矩阵,初始矩阵的各个单元包含相应的初始数值;压缩矩阵的各个单元包含与相应的初始数值相对应的相应的压缩数值;恢复矩阵的各个单元包含与相应的初始数值相对应的相应的恢复数值;其特征在于,为了编码:‑在有限数量的级上将小波变换应用于整个矩阵,以其使保留大于或等于2×2尺寸的残余级;然后,对残余级差分编码、即通过用残余级的各个值执行差分来压缩残余级。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-23

    授权

    授权

  • 2016-10-19

    实质审查的生效 IPC(主分类):H04N19/63 申请日:20140924

    实质审查的生效

  • 2016-08-10

    公开

    公开

说明书

技术领域

本发明涉及设置为矩阵的数字值的编码领域,尤其涉及所述矩阵为表示图像像素的二维矩阵的情况。

背景技术

压缩方法的主要约束一方面在于通过压缩来尽可能地减少按字节计量的初始数字文件的体积,和另一方面在于尽可能接近初始文件地恢复文件。多种图像压缩方法使用特别地已知名称为Jpeg2000的小波变换。水平应用的各个小波级将宽度除以因子2;竖直应用的各个小波级将高度除以因子2;二维应用的小波级将图像的两个维度除以因子2。现有编解码器通过小波压缩图像,直到残余图像仅呈现一个像素。为了减少待应用的小波级数,其中一些编解码器、如Jpeg2000将图像分成矩形子部分,称为“片”(英文为“tiles”)。该技术通过将图像的各个子部分作为完整图像考虑来允许减小级数;然而,该技术有在解压缩后恢复的图像上的片的边界处产生伪像/间断的缺点。

发明内容

本发明的目的在于提供一种简单的压缩方法,尤其在其应用于代表图像的矩阵时允许结合将该图像分割成片的优点,而不具有在恢复图像上造成这些片的关于变换、即压缩然后解压的间断的缺点。

根据本发明的方法,为了通过相继的层将初始矩阵编码成压缩矩阵并将其恢复成恢复矩阵,初始矩阵的各个单元包含相应的初始数值;压缩矩阵的各个单元包含与相应初始数值对应的相应的压缩数值;恢复矩阵的各个单元包含与相应初始数值对应的相应的恢复数值;其特征在于,为了编码、即压缩初始矩阵:

-在有限数量的级上将小波变换应用于整个矩阵,以使其保留尺寸大于2×2的残余级;然后,

-对残余级差分编码,即在残余级的各个值的初始形式(该级编码前)或恢复形式(该级编码后)下,通过用残余级的各个值执行差分来压缩残余级。

该方法有利地应用于矩阵编码,其中矩阵的各个值对应于图像的像素。

附图说明

接下来参照附图,以举例而非限制性方式描述本发明多种实施方式,其中:

-图1为尺寸为320×224像素的原始图像;

-图2示出第一恢复图像,通过现有技术的小波方法对图1的整个原始图像全局地应用压缩然后解压得到;

-图3示出第二恢复图像,通过借助现有技术的小波方法对预先裁剪成为32×32像素片的图1原始图像应用压缩然后解压得到;和

-图4示出第三恢复图像,通过根据本发明的小波方法对图1的整个原始图像全局地应用压缩然后解压得到。

具体实施方式

将在图像的数字压缩应用中描述根据本发明的方法。在该例子中,应用使用升法(procédé d’élévation)的二维Cohen-Daubechies-Fauveau(CDF)5/3型离散小波。图1示出初始、原始图像。由图4示出,通过本方法对初始图像压缩然后解压之后所恢复的图像。在所示出的例子中,图像为包括320列和224行即320×224像素的灰度图像。

根据所述方法,计算适于图像压缩的级数。将级数理解为由小波处理的级数与由差值处理的残余级数的总和。例如,包括四个级的图像将有三个级由小波处理,和一个残余级由差值处理。

为了使残余级数足够代表图像内容,以举例的方式按如下方式计算级数:

-采用高度和宽度之间的最小尺寸:例如,在320×224图像的情况下,最小尺寸为高度,即:min_dim=224;

-通过将如下公式应用于最小尺寸来确定级数Nv_niveaux:

Nb_niveaux=ARRONDI.INF[ln(min_dim)/ln(2)-3]

和,

1≤Nb_niveaux≤5

其中:

-ARRONDI.INF代表下舍运算。例如:

ARRONDI.INF(4.99)=4

-Ln代表自然对数。

优选地和在所示出的例子中,对于大图像,限制于5级。因此,如果:

ARRONDI.INF[ln(min_dim)/ln(2)-3]>5,那么,Nb_niveaux=5。

对于极小图像,具有至少1级。因此,如果:

ARRONDI.INF[ln(min_dim)/ln(2)-3]=0,那么,Nb_niveaux=1;

在所示例子中:

-Ln(224)=5.41

-Ln(2)=0.69

其中:

Nb_niveaux=ARRONDI.INF[(5.41/0.69)-3]=4

因此将具有四个级,其中三个级由小波处理,和一个残余级由差值处理。

在下文中,考虑第一级作为用于图像解码的启始级,即由差值处理的级,之前命名为“残余级”,即具有最小清晰度的级;最后一级为包含完整图像的级。

还计算量化因子。在所示出的例子中,为各个级定义量化因子。如果该因子为1,不存在量化且无损失地应用变换。当将量化因子应用于小波级时,用该量化因子量化该级的各个子矩阵LH、HL和HH。在将量化因子应用于残余级时,根据该因子量化各个差值。有利地,量化因子的值在各个级增大:包含更多数据的最后级将比第一级被更多地量化。

还可用整数和定点数针对全部或部分级执行这些变换和量化。

量化因子的计算方法可以如下:

-定义最大量化因子Qmax,其将被应用于最后一级矩阵HH;和,

-将该因子除以2,以得到该相同最后一级的矩阵LH和HL的量化因子;然后,

-对于各个其它小波级,将与矩阵HH相关联的量化因子定义为后续级的矩阵LH和HL的量化因子,和将当前级的矩阵LH和HL的量化因子定义为当前级的矩阵HH的量化因子的一半;

如果计算的因子小于1,则不存在量化。

由差值处理的残余级可被量化或不被量化。

为了简化,在例子中对各个小波级使用固定量化因子,下面将定义各个级的因子。

在接下来的描述中,对所述值并且对于所述舍入运算使用以下约定。

对于所述值,所述约定如下:系统地处于矩阵Y的范围内,矩阵Y的各个值由命名为ym,n的元素代表,其中:

-m代表矩阵Y中元素所处行的标号;

-n表示矩阵中元素所处列的标号;

行n和列m被从1开始编号,元素y1,1位于矩阵Y左上角。因此,可以如下方式表示矩阵Y:

对于舍入运算,所述约定为:除了为了计算级数,每次需要进行舍入运算,就执行该舍入运算得到最接近的整数;例如得到如下舍入运算:

ARRONDI(0.5)=1

ARRONDI(0.49)=0

ARRONDI(-0.49)=0

ARRONDI(-0.5)=1

所述方法的接续步骤包括对通过使用小波提供的级编码。在所示例子中,使用CDF5/3型小波。

用如下方程得到竖直小波步骤:

-计算详细矩阵H:

hm,n=y2m,n-[y2m-1,n+y2m+1,n]/2

对于包括在1和Y高度的一半之间的任意m,对于在矩阵Y的宽度上的任意n。

-计算近似矩阵L:

lmn=y2m-1,n+[hm-1,n+hm,n]/4

对于小于或等于Y高度的一半的m,如果Y的高度为奇数,那么+1,对于在Y的宽度上的任意n。

用如下方程得到水平小波步骤:

-计算详细矩阵:

hm,n=ym,2n-[Ym,2n-1+ym,2n+1]/2

对于包括在1和Y宽度的一半之间的任意n,对于在Y的高度上的任意m。

-计算近似矩阵:

lmn=ym,2n-1+[hm,n-1+hm,n]/4

对于小于或等于Y宽度的一半的n,如果Y的宽度为奇数,那么+1,对于在Y的高度上的任意m。

以传统方式,以如下方式获得2维小波级:

-将竖直小波应用于输入矩阵Y,以生成(近似)矩阵L和(详细)矩阵H;

-将水平小波应用于矩阵L,以获得(近似)矩阵LL和(详细)矩阵LH;

-将水平小波应用于矩阵H,以获得两个矩阵(详细)HL和(近似)HH。

近似矩阵LL因此作为用于先前级的输入矩阵。

接下来编码第一级,或残余级,即在通过小波对其它级编码之后的残余级。代表第一级或残余级的矩阵Y的值记作ym,n,根据前面定义的约定:称y为原始值,yQm,n为(量化)压缩值以及yRm,n为恢复值。

在所示出的例子中,此处使用因子q=2。通过使用量化的差值并调节行进方向来进行最后一级的编码:

-保留第一值y1,1,使得:

yQ1,1=yR1,1=y1,1

-对于第一行的全部值y1,n

yQ1,n=(y1,n-yR1,n-1)/q

和,

yR1,n=yR1,n-1+yQ1,n>

-对于第一列的全部值ym,1

yQm,1=(ym,1-yRm-1,1)/q

和,

yRm,1=yRm-1,1+yQm,1xq

对于全部剩余值,竖线||代表其所框起的值的绝对值:

-计算恢复值中最接近的水平差:

DHm,n=|yRm-1,n-yRm-1,n-1|

-计算恢复值中最接近的竖直差:

DVm,n=|yRm,n-1-yRm-1,n-1|

-根据最小差、默认为竖直差来选择参考值:

-如果DV<=DH:竖直差

yQm,n=(ym,n-yRm-1,n-1)/q

和,

yRm,n=yRm-1,n+yQm,n*q

-如果DH<DV:水平差:

yQm,n=(ym,n-yRm,n-1)/q

和,

yRm,n=yRm,n-1+yQm,n*q

-如果最后一级未被量化(q=1),则前面公式可简化成yRm,n=ym,n

在对最后一级解码时,以与编码相同的方式计算行进方向,恢复值是相同的。因此执行如下操作以获得恢复值:

·保留第一值y1,1,使得:

yR11=yQ11

·对于第一行的全部值y1,n

-yR1,n=yR1,n-1+yQ1,n*q

·对于第一列的全部值ym,1

-yRm,1=yRm-1,1+yQm,1*q

·对于全部残余值:

-计算恢复值中最接近的水平差:

■DHm,n=|yRm-1,n-yRm-1,n-1|

-计算恢复值中最接近的竖直差:

■DVm,n=|yRm,n-1-yRm-1,n-1|

-根据最小差、默认为竖直差来选择参考值:

-如果DV<=DH,则竖直差:

■yRm,n=yRm-1,n+yQm,n*q

-如果DH<DV,则水平差:

■yRm,n=yRm,n-1+yQm,n*q

如果最后一级未被量化(q=1),则前面的公式可简化成yRm,n=ym,n

接下来解码在前面由小波编码的级。对于各个小波级的解码,解量化被量化的子矩阵LH、HL和HH,然后通过使用解量化的这些矩阵和由先前级的解码恢复的矩阵LL来执行二维逆小波。

在例子中,处于使用CDF 5/3型二维小波来压缩灰度图像的范围内。

以三种方式将图1所示的320×224尺寸的图像编码在8个比特(值从0至255)上:

-根据现有技术的第一方法:通过连续小波级对整个图像编码直到所述图像为1个像素,并恢复成如图2所示的图像;

-根据现有技术的第二方法:分成32×32的片,应用5个小波级,以达到用于最终级的1像素尺寸,并恢复成如图3所示的图像;

-根据本发明的方法:对整个图像应用3个连续级,然后对差值编码并恢复如图4所示的图像。

在各个情况下根据相同因子对相继的级进行量化,按减小级的顺序:50、25、15、2、2、1、1、1、1。

此处,仅用整数操作,并且对于小波变换的各个级,将唯一因子应用于该级的矩阵LH、HL、和HH。

根据第一现有技术:

自320×224图像起,对于整个图像需要相继的10个小波级,以达到1个像素的图像。

相继级的清晰度和量化因子为:

级数高度宽度量化11112121323144515710161420272840385680259112460301022432060

使用升法在各个级处应用CDF 5/3型二维离散小波变换。各级的矩阵LH、HL、HH被用相关联的因子量化并且舍入为较大整数值:

ARRONDI(0.5)=1

ARRONDI(0.49)=0

ARRONDI(-0.49)=0

ARRONDI(-0.5)=1

接下来以如下方式计算图像的理论权重:形成包含量化小波的全部系数的信号,并将它们用于Shannon熵公式。

最后,以如下方式计算平均误差:执行各个原始值和各个对等的恢复值之间的差的绝对值,取这些值的平均。

得到由图2示出的如下结果:

-理论权重:2.0006kB

-平均差:0.8335

根据第一现有技术:

将图像分成32×32像素的片。因此得到320/32=10个水平片,和224/32=7个竖直片,即整体为10*7=70个片。

用5个相继的小波级压缩这些片中的每一个,直到达到1个像素的片,然后用与前面的因子相同的因子量化该片。对于各个片,获得:

级数高度宽度量化1111222234434882551616306323260

通过使用升法,在各个级处应用CDF 5/3型二维离散小波变换。各级的矩阵LH、HL、HH用相关联的因子量化,并且舍入为较大整数值:

ARRONDI(0.5)=1

ARRONDI(0.49)=0

ARRONDI(-0.49)=0

ARRONDI(-0.5)=1

接下来以如下方式计算图像的理论权重:形成包含量化小波的全部系数的信号,并将它们用于Shannon熵公式。

最后,以如下方式计算平均误差:执行各个原始值和各个对等的恢复值之间的差的绝对值,取这些值的平均。

得到由图3示出的如下结果:

-理论权重:2.1775kB

-平均差:1.2197

另外注意到,恢复图像上标记出了片的边界。通过添加到图3的线条局部地强调了这些边界,以更好地说明意图。

按照根据本发明的方法:

计算必要的级数:在该情况下,最小尺寸为高度,即值等于224。

因此应该有:nb_niveaux=ARRONDI.INF(ln(224)/ln(2)-3)

=ARRONDI.INF((5.41/0.69)-3)

=ARRONDI.INF(4.8)

=4

因此获得被应用于整个图像的3个小波级(级2、3、4)和由差值编码的一个残余级。

级的尺寸和量化因子如下:

级数高度宽度量化1284032568025311216030422432060

使用升法,在各个级处应用CDF 5/3型二维离散小波变换。各级的矩阵LH、HL、HH被用相关联的因子量化并且舍入为较大整数值:

ARRONDI(0.5)=1

ARRONDI(0.49)=0

ARRONDI(-0.49)=0

ARRONDI(-0.5)=1

对于最后级,应用如上面定义的差值,然后使用相同的舍入运算。

接下来以如下方式计算图像的理论权重:形成包含量化小波的全部系数的信号,并将它们用于Shannon熵公式。

最后,以如下方式计算平均误差:执行各个原始值和各个对等的恢复值之间的差的绝对值,取这些值的平均。

得到在图4示出的如下结果:

-理论权重:1.9277kB

-平均差:0.7815

当然,本发明不限于刚描述的示例。

因此,可根据单一维度使用小波,例如仅水平、或仅竖直,而非如前所述根据二维使用。还可在使用或不使用升法的情况下利用小波。

而且,可使用不同公式来计算级数和/或最大级数可不同于5。级数还可预定。例如,级数可为3或4,即由小波处理的级数可为2或3而非4。

此外,对于每个小波级可使用单一量化因子,或反之,为小波的各个级的各个子矩阵LH、HL、HH选择特定的量化因子。还可以任意方式为各个级确定因子,或甚至可为各个小波级的子矩阵确定因子。

根据本发明的方法是特别有利的。尤其是:

-其使用简单,因为即使仅解压最后一级,也会得到图像的初级概况;

-其产生较小的级数,并且因此需要较小数量的不同缓冲区,以用于待处理的数据;

-避免由于使用片而出现伪像或间断现象;和

-通过对编码图像的部分解码获得该方法的可扩展性,该部分解码允许通过仅基于用于获得期望的清晰度所需的第一解压级数来将图像解压成该期望的清晰度。

上面使用的Shannon熵定义了信号中呈现的信息“量”,并且因此给出借助如算术编码或Huffman编码之类的二进制编码技术对该信号编码所需要的比特量的精确指示。在信号中规则分布和重复的值越多,该信号的熵越小。计算Shannon熵的一般公式如下:

H(x)=H2(X)=-Σi=1nPilog2Pi

其中,Pi代表各个符号的出现概率。

此外,根据本发明的方法不限于二维矩阵。此种方法例如可用于三维矩阵、尤其是三维图像的3D打印图。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号