一种压缩图像的方法和装置
技术领域
本公开关于图像处理技术的领域,更具体地,关于一种用于压缩图像的方法和装置。
背景技术
在图像的处理和存储时,经常需要对图片的大小进行压缩,以便于节省处理资源和存储空间。例如使用相机所拍摄的图片可能像素数过多,而实际使用时将其缩小也不会在视觉上产生影响时,可以将图片缩小为原来的四分之一,并随后再使用图片压缩技术来进一步减小图像大小,这样可以将处理时间和存储空间都降为原先的四分之一左右。在大批量处理图像的应用场景中,类似的操作是非常频繁且必要的。用户经常需要将相机所拍摄的大量高分辨率图片上传到手机,并通过手机上的APP进行图像美化,由于手机处理器性能和存储空间相对于PC差距较大,一般都需要对图片进行缩小和压缩之后再进行滤镜等图像美化操作。而对于手机用户来说,图片的缩小和压缩相对更不容易对用户体验造成负面影响。图片压缩目前主要分为有损压缩和无损压缩两大种类,无损压缩典型包括相机所直接拍摄的RAW格式图像,而有损压缩例如包括流行的JPEG有损压缩格式图像。无损压缩相比有损压缩压缩率可能较低,但可以更好地保护图像质量,有损压缩虽然压缩率较理想,但一般会舍弃图像中某些种类的图像信息,在打印或者放大时可能会出现较明显的图像瑕疵。如何在保证处理速度的情况下尽量提升压缩图像的质量是提供更好的用户体验的关键所在。尤其是在手机上缩小图片之后再进行图像压缩更容易使图像质量受损,这就需要一种简单易行的方法来根据不同性质的图像在压缩率和图像质量之间进行折中。手机上的图像美化APP所处理的图像可能包含明显不同种类的场景,例如拍摄文字、人脸等对比较强烈的场景时图像质量一旦受损在缩小后会更容易被用户感知,而例如拍摄自然风景、演出赛场等背景较为复杂的场景时即使图像质量受损也不容易被用户感知,因此应当设法通过对图像内容的判断,有针对性地选择压缩方式和缩小方式以便在用户视觉难以察觉变化的前提下尽可能地节省处理资源和存储空间,这也是当前所亟待解决的一个问题。
发明内容
本公开的目的之一是解决现有技术的上述问题,并提供一种能够根据图像内容判断使用最合适的图像压缩和缩小方案的方法和装置。
一种用于将图像压缩为像素数目为原先四分之一的压缩图像的方法,包括读取多幅尺寸相同的图像;将每幅图像在空间上以同样方式划分为多个大小相同的子区域,每个子区域包括分别位于笛卡尔坐标系中第一、第二、第三和第四象限中的四个像素;计算第一计数值,该第一计数值等于第一、第二、第三和第四象限中的像素值相同的子区域的数量;计算第二计数值,该第二计数值等于第一、第二、第三和第四象限中包括两种像素值,且该两种像素值中的至少一种在至少一个相邻子区域中也存在的子区域的数量;计算第三计数值,该第三计数值等于第一、第二、第三和第四象限中包括两种像素值,且该两种像素值在所有相邻子区域中均不存在的子区域的数量;计算第四计数值,该第四计数值等于第一、第二、第三和第四象限中包括三种像素值,且该三种像素值中分布在两个象限中的一种像素值也分布在至少一个相邻子区域中的子区域的数量;计算第五计数值,该第五计数值等于第一、第二、第三和第四象限中包括三种像素值,且该三种像素值中分布在两个象限中的一种像素值在所有相邻子区域中均不存在的子区域数量以及第一、第二、第三和第四象限中包括四种像素值的子区域的数量之和;以及在第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值满足阈值条件,且第二计数值大于第三计数值以及第四计数值大于第五计数值这两个条件至少之一被满足时,对该幅图像进行无损压缩,并随后通过将无损压缩之后的每个子区域的像素值的平均值映射到压缩图像中的一个像素的方式产生压缩图像。
在一些实施例中,在第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值满足阈值条件,但第二计数值大于第三计数值以及第四计数值大于第五计数值这两个条件均不被满足时,将每个子区域的像素值的平均值映射到压缩图像中的一个像素并随后进行无损压缩以产生压缩图像。
在一些实施例中,在第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值不满足阈值条件时,将每个子区域的像素值的平均值映射到压缩图像中的一个像素并随后进行有损压缩以产生压缩图像。
在一些实施例中,阈值条件包括第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值大于2。
在一些实施例中,像素值包括RGB或YUV彩色通道值。
一种用于将图像压缩为像素数目为原先四分之一的压缩图像的装置,包括存储器和处理器,处理器配置成从存储器读取多幅尺寸相同的图像;将每幅图像在空间上以同样方式划分为多个大小相同的子区域,每个子区域包括分别位于笛卡尔坐标系中第一、第二、第三和第四象限中的四个像素;计算第一计数值,该第一计数值等于第一、第二、第三和第四象限中的像素值相同的子区域的数量;计算第二计数值,该第二计数值等于第一、第二、第三和第四象限中包括两种像素值,且该两种像素值中的至少一种在至少一个相邻子区域中也存在的子区域的数量;计算第三计数值,该第三计数值等于第一、第二、第三和第四象限中包括两种像素值,且该两种像素值在所有相邻子区域中均不存在的子区域的数量;计算第四计数值,该第四计数值等于第一、第二、第三和第四象限中包括三种像素值,且该三种像素值中分布在两个象限中的一种像素值也分布在至少一个相邻子区域中的子区域的数量;计算第五计数值,该第五计数值等于第一、第二、第三和第四象限中包括三种像素值,且该三种像素值中分布在两个象限中的一种像素值在所有相邻子区域中均不存在的子区域数量以及第一、第二、第三和第四象限中包括四种像素值的子区域的数量之和;在第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值满足阈值条件,且第二计数值大于第三计数值以及第四计数值大于第五计数值这两个条件至少之一被满足时,对该幅图像进行无损压缩,并随后通过将无损压缩之后的每个子区域的像素值的平均值映射到压缩图像中的一个像素的方式产生压缩图像;以及将该压缩图像存储在存储器中。
在一些实施例中,处理器还配置成在第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值满足阈值条件,但第二计数值大于第三计数值以及第四计数值大于第五计数值这两个条件均不被满足时,将每个子区域的像素值的平均值映射到压缩图像中的一个像素并随后进行无损压缩以产生压缩图像。
在一些实施例中,处理器还配置成在第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值不满足阈值条件时,将每个子区域的像素值的平均值映射到压缩图像中的一个像素并随后进行有损压缩以产生压缩图像。
在一些实施例中,阈值条件包括第一计数值、第二计数值和第三计数值之和与第四计数值和第五计数值之和的比值大于2。
在一些实施例中,像素值包括RGB或YUV彩色通道值。
本公开实施例的有益效果包括以更高的处理资源和存储空间的利用效率来在手机上批量处理图片,同时确保图像的压缩所造成的质量降低难以被用户的视觉感官察觉到,这尤其有利于在手机上美化高分辨率图片的应用场景。
附图说明
本文提供了附图以便对实施例进行图示说明,但并不是为了做出限制。
图1是根据一些实施例的压缩图像装置的框图。
图2是根据一些实施例的压缩图像方法的流程图。
具体实施方式
本领域技术人员应理解尽管术语第一、第二等可在本文用于描述各种元件,但这些元件不应由这些术语限制。这些术语仅用于将元件彼此区分开。例如,第一元素可以称作第二元素,并且相似地,第二元素可以称作第一元素,而不偏离本发明的范围。如本文使用的,术语“和/或”包括关联的列出项目中的一个或多个中的任一个或全部组合。
图1中图示了压缩图像装置100的框图。装置100优选可以是平板、智能手机等移动设备。装置100包括处理器101,存储器102和显示器103。处理器101可以是用来执行指令的任何通用或者专用的处理设备,例如CISC或RISC指令集处理器、x86指令集处理器、多核处理器、单片机、控制器、逻辑控制单元或任何其他的微处理器或中央处理单元(CPU)。存储器102包括易失性存储器,例如但不限于随机存取存储器(RAM)、动态DRAM、静态RAM。存储器105还可包括非易失性存储器,例如但不限于CDROM光盘、压缩盘、DVD、蓝光光盘、软盘、磁盘、固态盘、只读存储器(ROM)、EPROM、EEPROM、闪存和/或网络存储设备。显示器103可以是触敏型显示屏,以便同时为用户提供用户交互接口。
图2是根据一些实施例的压缩图像方法的流程图。压缩图像方法开始于步骤S201,其中处理器101首先对存储器105中的多幅尺寸相同的高分辨率图像进行读取,并且以相同的空间划分方式将每幅图像划分为多个大小相同的子区域。例如,在手机上进行图像处理一般首先将数码相机所传送的高分辨率照片缩小为四分之一,此时可以将每个子区域定义为含义2乘2共4个像素的正方形块。该子区域的4个像素可以在笛卡尔坐标系中分别描述为第一象限像素、第二象限像素、第三象限像素和第四象限像素,其位置也分别位于相应象限之内。每个子区域将在压缩后的压缩图像中映射为一个像素,从而实现四分之一的图像缩小。将子区域映射为一个像素可以采样对子区域各像素求平均值,直接选用最近邻像素值,或者通过线性插值、二次插值、三次插值等插值算法来实现。
在步骤S202中,通过各个子区域中像素值分布的情况来确定该图像适用于何种压缩方式。该像素值可以包括RGB或YUV各自通道值。在本文中,有损压缩可以为JPEG2000有损压缩等,而无损压缩可以为LZW压缩等。本领域技术人员将理解可以采用各种常规的有损或无损压缩典型算法。首先计算第一计数值C1,其等于第一、第二、第三和第四象限中的像素值相同的子区域的数量。例如,一幅640*480尺寸的风景图像共有76800个子区域,其中7680个子区域所对应的是天空场景均为相同蓝色,RGB各通道值均一致,则C1此时为7680。
此后,计算第二计数值C2和第三计数值C3,其分别等于第一、第二、第三和第四象限中包括两种不同像素值,且该两种像素值中的至少一种在至少一个相邻子区域中也存在的子区域的数量或者第一、第二、第三和第四象限中包括两种像素值,且该两种像素值在所有相邻子区域中均不存在的子区域的数量。其中两种不同像素值例如10和11各占据至少一个该子区域中的像素,而相邻子区域指环绕该子区域的最多8个最近邻子区域。若10和11在相邻子区域中也存在,则C2累加一,而若10和11在相邻子区域中均不存在,则C3累加一。另外,还计算第四计数值C4和第五计数值C5,其分别等于第一、第二、第三和第四象限中包括三种像素值,且该三种像素值中分布在两个象限中的一种像素值也分布在至少一个相邻子区域中的子区域的数量,以第一、第二、第三和第四象限中包括三种像素值,且该三种像素值中分布在两个象限中的一种像素值在所有相邻子区域中均不存在的子区域数量以及第一、第二、第三和第四象限中包括四种像素值的子区域的数量之和。当子区域中包含三种像素值,例如10、11和01时,如果其中一种像素10在该子区域中分别在第一和第三这两个象限中,且在该子区域的相邻子区域中也存在像素10,则C4累加一,如果像素10在相邻子区域中不存在,则C5累加一。当子区域中包括四种像素值10、11、01和00时,同样将C5累加一。
C1~C5将用于估计图像应采用何种压缩方式。在步骤S203中,首先判断C1+C2+C3与C4+C5的比值是否满足阈值条件。该阈值条件例如是C1+C2+C3与C4+C5的比值是否大于1,而为了更准确地估计图像的复杂程度,该比值优选为2。之后,应判断C2和C3的相对大小以及C4和C5的相对大小。在图像中包含大片区域的色彩较为单一的色块,如包括海滩、雪地、人脸、文字等时,C1+C2+C3与C4+C5的比值可能大于2,其中C1的占比可能在10%以上,C2/C3以及C4/C5大于1。此时若采用有损压缩,则用户在手机处理完图片并放大观看时,图像的缺陷将与背景形成明显的对比,使得容易被人眼发觉,因此应选用无损压缩以便完成图片处理之后用户观看时不易发现压缩图像所造成的质量损失。作为举例,本实施例中使用平均值的方式缩小图像,即子区域中四个像素的平均值被作为压缩图像中像素的值。在C1+C2+C3与C4+C5的比值达到阈值条件时,只要C2/C3以及C4/C5中的一个大于1,即可判断需使用无损压缩,并且可在无损压缩之后再进行缩小。因为图像较为简单,无损压缩也能达到较为满意的存储空间节省效果。如果C1+C2+C3与C4+C5的比值达到阈值条件,但C2/C3以及C4/C5均小于或等于1,则图像属于因为噪点等原因容易被用户发现图像质量损失而应当使用无损压缩的情形,但此时为了得到更为锐利的图像,应采用先进行平均值法形成缩小图像,再在缩小图像中进行无损压缩。这样保存的压缩图像可以减轻噪点过多而造成的图像质量损失。若C1+C2+C3与C4+C5的比值未达到阈值条件,则说明图像包含信息较多,可能是集体照、电影截图、动物等复杂场景,此时即使进行有损压缩,放大后的图像质量损失也难以被用户察觉,因而可以先将子区域的像素值的平均值映射到压缩图像,再随后进行有损压缩产生压缩图像以达到节约处理资源和存储空间的目的。
本公开的实施例用于通过图像特征智能选择有损压缩或无损压缩,并相应调整图像压缩和图像缩小的执行顺序,有助于在手机等移动终端上允许用户快速处理大尺寸图像,并节省存储空间。上述实施例仅为本发明原则之下的示例,本领域技术人员所能预想到的替代实施方式或者等同实施方式也应包括在本发明的范围之内。