背景技术
对图像信息(数据)执行人为压缩的过程称为图像压缩。图像压缩是一种以尽可能少的比特数表示图像或图像中所包含信息的技术。压缩方案可以保持原信息,即能够从压缩图像中没有误差地重建原图像。压缩方案也可以非信息保持,即允许与原图像有某种合理程度的失真。目前,常用的压缩方法有:图像变换、预测压缩技术、自适应压缩技术、彩色影像压缩、二值影像压缩、游程编码、“高频分量”和“低频分量”法等,这些方法的目的都是压缩数据。
首先,图像压缩是为了减少存储容量以利信息的保存。一般而言,单位数据的体积越小,同一数据库存储的图像信息也就越多。其次,图像压缩有利于数据传输。由于数据压缩是一种“去伪存真,去粗取精”的筛选,又由于可以用“代码”表示一组数据,所以压缩后的数据非常“精干”,这样就可以极大地减少必须传输的数据量,以满足人眼和机器分析的要求。第三,图像压缩便于特征提取,以利计算机模式识别。如用计算机对图像中不同类型的农作物进行分类时,使用图像压缩方法,只要考虑区分植物与非植物的特征以及区分植物类型特征即可,从而减少了数据量又满足了实际需要。
通常情况下,图片文件或图像数据可以分为计算机图像和自然风景图像两大种类。只包含简单点线面、简单图形的图像称为计算机图像,计算机图像具有颜色数少,且颜色值有某些方向性相同的特征。拍摄的自然风景或人物等称为自然风景图像,自然风景图像具有颜色数多,且颜色值变化频率快等特征。
图1为典型的计算机图像示意图。由图1可示意性地看出,计算机图像的颜色数较少。图2为典型的自然风景图像示意图。由图2可示意性地看出,自然风景图像的颜色数较多。
对于计算机图像,选用无损压缩算法能达到最佳压缩比和还原效果。对于自然风景图像,采用有损压缩算法能达到最大压缩比和可接受效果。Deflate是现有公开的典型无损压缩算法之一,离散余弦变化(DCT)是现有公开的典型有损图像压缩算法之一。
在现有技术中,当压缩图像时,首先对图像采用压缩为JPEG图像格式的压缩算法(DCT),压缩完成后再计算压缩后图像大小和压缩前图像大小的压缩比,如果压缩比在一定倍数以上(比如按经验值一般在25倍以上)则认为该图像是自然风景图像,适合采用压缩为JPEG的有损压缩算法,否则认为该图像为计算机图像,适合使用Deflate等无损压缩算法进行压缩。
然而,这种方案的缺点是:在这种技术中,在压缩图像的时候,对于计算机图像需要压缩两次,第一次使用DCT算法进行压缩以得到压缩比倍数,当判定为计算机图像,还需要采用Deflate等无损压缩算法进行压缩,因此图像压缩处理效率低,同时还会极大地浪费计算机运算能力。
发明内容
有鉴于此,本发明的主要目的是提出一种图像压缩方法,以提高图像压缩的处理效率。
本发明的另一目的是提出一种图像压缩装置,以提高图像压缩的处理效率。
为达到上述目的,本发明的技术方案是这样实现的:
一种图像压缩方法,该方法包括:
将图像的对角线均分为N等分,其中N为大于等于2的正整数,然后分别从每一等分的对角线中选取统计点,使得选取的统计点至少为两个,判断所选取的统计点的颜色数之和是否大于预先设置的颜色数阀值,如果大于,采用有损压缩算法对该图像进行压缩;如果不大于,采用无损压缩算法对该图像进行压缩。
所述预先设定的颜色数阀值为16、32、64、128、或256。
所述无损压缩算法为:Deflate压缩算法、ABO布落格压缩算法、LZW压缩算法、ZIP压缩算法、RAR压缩算法、或算术编码压缩算法。
所述有损压缩算法为:离散余弦变化DCT压缩算法。
一种图像压缩装置,该装置包括:统计点选择模块、图像类型判别模块和图像压缩模块,其中:
统计点选择模块,用于将图像的对角线均分为N等分,其中N为大于等于2的正整数,然后分别从每一等分的对角线中选取至少统计点,使得选取的统计点至少为两个;
图像类型判别模块,用于判断所选取的统计点的颜色数之和是否大于预先设定的颜色数阀值;
图像压缩模块,用于当图像类型判别模块判定所选取的统计点的颜色数之和大于预先设定的颜色数阀值时,采用有损压缩算法对该图像进行压缩;并用于当图像类型判别模块判定所选取的统计点的颜色数之和不大于预先设定的颜色数阀值时,采用无损压缩算法对该图像进行压缩。
所述图像压缩模块包括有损压缩算法单元和无损压缩算法单元,其中:
有损压缩算法单元,用于当图像类型判别模块判定所选取的统计点的颜色数之和大于预先设定的颜色数阀值时,采用有损压缩算法对该图像进行压缩;
无损压缩算法单元,用于当图像类型判别模块判定所选取的统计点的颜色数之和不大于预先设定的颜色数阀值时,采用无损压缩算法对该图像进行压缩。
从上述技术方案中可以看出,在本发明中,首先从图像中选取至少两个统计点,然后判断所选取的统计点的颜色数之和是否大于预先设置的颜色数阀值,如果大于,则采用有损压缩算法对该图像进行压缩;如果不大于,则采用无损压缩算法对该图像进行压缩。由此可见,应用本发明以后,首先判别图像的类型,然后再选择图像类型选择合适的压缩算法进行压缩,因此本发明不需要对计算机图像压缩两次,所以图像压缩处理效率获得了提高,同时还能够显著节省计算机运算能力,得到最佳压缩比和图像质量的压缩后图像。
另外,本发明中既可以从图像的对角线中选取统计点,也可以从均分面积后的均分图像中选取统计点,因此实现方式也非常灵活。同样,利用统计点的颜色数之和同颜色数阀值进行比较来判断图像类型,实现起来也非常简单,能够快速地判定图像类型。同时,压缩算法还不局限于Defalte压缩算法和DCT压缩算法,具体实现的可供选择性也非常好。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的主要思想是:在开始压缩图像之前,首先判定图像的类型。对于颜色数少,且颜色值有某些方向性相同的特征的计算机图像,采用无损压缩算法进行压缩;对于颜色数多,且颜色值变化频率快的自然风景图像,采用有损压缩算法对该图像进行压缩。
图3为根据本发明压缩图像的示范性方法流程图。如图3所示,该方法包括:
步骤301:从图像中选取至少两个统计点。
在这里,可以通过多种的具体实施方式来选取统计点,所选取的统计点应该能够充分反映图像的整体性质。
比如,可以将图像的对角线均分为N等分,其中N为大于等于2的正整数,然后分别从每一等分的对角线中选取统计点,使得选取的统计点至少为两个。例如:对图像的对角线均分为9等份,然后从每等份对角线中选取几个随机统计点,其中从每条对角线上获取的统计点数目既可以相同,也可以互不相同。显然,还可以将对角线分为8等份或16等份进行统计,等等,本发明对等分数目并无限定。
而且,既可以从一条对角线上获取统计点,也可以从多条对角线上同时获取统计点,并且从每条对角线上获取的统计点数目既可以相同,也可以互不相同。
另外,不仅局限于从对角线上获取统计点,本发明的具体实施中还可以从任意一条或者多条横贯图像的线条上获取统计点,具体的获取方式类似于从对角线上获取。
可选地,还可以将图像按照面积均分为N等分,其中N为大于等于2的正整数,然后分别从每一等分的图像中选取统计点,使得选取的统计点至少为两个。例如:将图像的图像均分为9等份,然后从每份均分图像中间选取几个随机统计点。显然,还可以将图像均分为8等份或16等份进行统计,等等,本发明对等分数目并无限定。
同样,从各个均分图像中选取的随机统计点数目既可以是相同的,也可以是不同的。
步骤302:判断所选取的统计点的颜色数之和是否大于预先设置的颜色数阀值,如果大于,执行步骤303并结束本流程;如果不大于,执行步骤304并结束本流程。
颜色数阀值可以预先设定,设定的颜色数阀值优选为16、32、64、128、或256。一般情况下,选取的统计点数目应该大于颜色数阀值。比如:当颜色数阀值为16时,所选取的统计点数目应该大于16;当颜色数阀值为256时,所选取的统计点数目应该大于256,等等。
颜色数阀值优选是可编辑的。这样,对于不同的应用系统可以结合具体情况对颜色数阀值进行调整,从而能够选择出最合适的颜色数阀值。
在步骤302中,首先对所有的统计点的颜色进行统计,相同的颜色数累计统计一次,然后判断所统计出的颜色数之和是否大于预先设置的颜色数阀值。比如,假设颜色数阀值为256,统计点一共是500个点,统计出的颜色数是260,那么必然有些点的颜色相同,此处只对这些颜色相同的点只统计一次。然后将统计出的颜色数260和颜色数阀值256进行比较。
步骤303:采用有损压缩算法对该图像进行压缩。
当统计出的颜色数大于颜色数阀值时,则认定该图像为颜色数多,且颜色值变化频率快的自然风景图像,此时采用有损压缩算法对其进行压缩。
优选地,可以采用DCT有损压缩算法进行压缩。不过,本发明并不局限于DCT算法,任意类型的有损压缩算法也同样适用于本发明。
步骤304:采用无损压缩算法对该图像进行压缩。
当统计出的颜色数不大于颜色数阀值时,则认定图像为颜色数少,且颜色值有某些方向性相同的特征的计算机图像,此时采用有损压缩算法对其进行压缩。
优选地,可以采用Deflate无损压缩算法进行压缩。不过,本发明并不局限于Deflate算法,任意类型的无损压缩算法也同样适用于本发明。比如:还可以采用ABO压缩算法、LZW压缩算法、ZIP压缩算法、RAR压缩算法、或算术编码压缩算法登常用的无损压缩算法。
根据上述流程,本发明还公开了一种图像压缩装置。
图4为根据本发明实施例的图像压缩装置的示范性结构示意图。
如图4所示,该装置包括统计点选择模块401、图像类型判别模块402和图像压缩模块403,其中:
统计点选择模块401,用于从图像中选取至少两个统计点;
图像类型判别模块402,用于判断所选取的统计点的颜色数之和是否大于预先设定的颜色数阀值;
图像压缩模块403,用于当图像类型判别模块判定所选取的统计点的颜色数之和大于预先设定的颜色数阀值时,采用有损压缩算法对该图像进行压缩;并用于当图像类型判别模块判定所选取的统计点的颜色数之和不大于预先设定的颜色数阀值时,采用无损压缩算法对该图像进行压缩。
其中,统计点选择模块401可以通过多种的具体实施方式来选取统计点,所选取的统计点应该能够充分反映图像的整体性质。
比如,统计点选择模块401可以将图像的对角线均分为N等分,其中N为大于等于2的正整数,然后分别从每一等分的对角线中选取统计点,使得选取的统计点至少为两个。
统计点选择模块401既可以从一条对角线上获取统计点,也可以从多条对角线上同时获取统计点。比如,假设图像有两条对角线A和B,可以从对角线A上选取100个统计点,从对角线B上选取120个统计点,然后将这总共220个统计点当作整体所选择的统计点。
优选地,所述统计点选择模块401,还可以用于将图像按照面积均分为N等分,其中N为大于等于2的正整数,然后分别从每一等分的图像中选取至统计点,使得选取的统计点至少为两个。
其中,图像压缩模块403所采用的无损压缩算法优选是Deflate压缩算法或ABO压缩算法、LZW压缩算法、ZIP压缩算法、RAR压缩算法、或算术编码压缩算法登无损压缩算法。图像压缩模块403所采用的有损压缩算法优选是DCT压缩算法。
在具体实现中,图像压缩模块403既可以由一个功能模块单独实现,也可以通过若干个细化功能模块而组合形成。无论是单独实现图像压缩模块403,还是通过两个或者两个以上的细化功能模块组合而成图像压缩模块403,均为本发明的各种具体实施方式,应在本发明的保护范围之内。
下面以将图像压缩模块403细分为2个具体的功能单元为例说明本发明的一个具体实施例。
图5为根据本发明实施例的图像压缩装置的示范性结构示意图。如图5所示,该装置包括统计点选择模块501、图像类型判别模块502和图像压缩模块503,其中统计点选择模块501和图像压缩模块503对应于图4中的统计点选择模块401和图像压缩模块403;
图5中的图像压缩模块503,进一步包括有损压缩算法单元5031和有损压缩算法单元5032,其中:
有损压缩算法单元5031,用于当图像类型判别模块502判定所选取的统计点的颜色数之和大于预先设定的颜色数阀值时,采用有损压缩算法对该图像进行压缩;
无损压缩算法单元5032,用于当图像类型判别模块502判定所选取的统计点的颜色数之和不大于预先设定的颜色数阀值时,采用无损压缩算法对该图像进行压缩;
可见,有损压缩算法单元5031和无损压缩算法单元5032分别和图像类型判断模块502相连接,并根据图像类型判断模块502的判断结果分别执行相应功能。
以上虽然以Deflate压缩算法和DCT压缩算法为例对本发明进行了具体阐述,但是本领域技术人员可以意识到,本发明并不应该局限于Deflate压缩算法和DCT压缩算法,而是可以适用于任意的有损压缩算法和无损压缩算法,比如,可以适用于包括ABO压缩算法、LZW压缩算法、ZIP压缩算法、RAR压缩算法、算术编码压缩算法在内的任一压缩算法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。