找出图像压缩所基于的基本事实。
出于对photoshop的爱好和学习,前两天租了一个世界百科图库。结果加载到电脑后显示D盘只剩4GB了,对于我这种喜欢保存素材的人来说真的太少了,而且我发现大图库的图片移动大概是1.5M,和我平时在网上收集的图片大小相差很大。我保存的图片一般都是100KB左右,除非是用数码相机拍的,都是0.5M左右,没有100KB的图片清晰,所以我尝试压缩了百科库。今天的文章就是简单介绍一下图像压缩的原理和简单方法。
首先,我将介绍图片在电脑上的两种呈现技巧。
图像表示技术有两种,位图技术和矢量技术。矢量图形主要用于计算机创建的卡通图形和数学中的规则图形。平时生活中接触比较多,比如数码照片,扫描进电脑的图片就是位图。
对于矢量图形来说,压缩是不必要的,因为矢量图形是通过命令来实现的,而不是以点阵的形式,所以无论你把它放大到多大或多小,它的命令还是一样的,格式根本不能改变。如果改变格式,就会失去矢量图形的所有功能,所以今天我们不讨论矢量图形,主要讲位图压缩技术。
对于位图压缩,基本上有两种方法:
第一种方法是格式类型转换压缩。
这种方式就是利用一些技术(比如jpeg就是一种技术)对图像进行重新编码。对于图像文件,有很多扩展名,如bmp、jpeg(jpg)、gif等。如果想全面了解,可以上网查一下。每种正方形格式对应一种图像编码。在这么多编码中,jpeg技术可以实现图像的少损(不能说无损)压缩。如果图像的文件扩展名是。BMP,那么你应该先用这个方法直接把扩展转换成。JPG。操作方法很简单。用Windows XP自带的画板打开图片,然后另存为的时候,选择jpg或者jpeg作为格式就可以了。如果你是windows2000操作系统,就不能用画板保存为jpg文件。在开始菜单中选择程序->附件->图像处理即可完成上述操作,操作方法相同。您还可以使用QQ的自动转换功能,通过向他人发送图片,然后“右键单击”QQ上显示的图片并选择另存为来转换图片格式。那么保存的图片就是压缩图片。当然有很多软件都有这个功能,尤其是需要批量处理的时候。我建议你最好使用软件的帮助,比如PhotoShop和ACDSEE。具体方法我会在以后的文章中介绍。
目前最流行的技术是使用jpeg编码来压缩图片。我引用一个专业的图片网站来解释一下这个技术的原理。不想了解的可以跳过这一段:
压缩文件的基本原理是找出文件中重复的字节,用相同的字节创建一个“字典”文件,用一个代码来表示。比如,文件中有几个地方把同一个词“中国人* * *和中国”用一个代码表示,写入“字典”文件,这样文件就可以缩小。
由于计算机处理的信息是以二进制数的形式表示的,压缩软件用特殊字符标记二进制信息中的相同字符串,以达到压缩的目的。为了帮助你理解文件压缩,请在你的脑海中想象一幅蓝天白云的画面。对于成千上万个单调的蓝色像素,与其一个个定义一长串颜色“蓝、蓝、蓝……”不如告诉计算机:“从这个位置存储1117个蓝色像素”更简洁,可以大大节省存储空间。这是一个非常简单的图像压缩的例子。其实归根结底,所有的电脑文件都是以“1”和“0”的形式存储的。就像蓝色像素一样,通过合理的数学计算公式,可以大大压缩文件的体积,达到“数据无损、密集”的效果。一般来说,压缩可以分为有损压缩和无损压缩。如果个别数据的丢失不会有太大的影响,忽略它们是一个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件,典型代表是mpeg、mp3和jpg。但更多情况下,压缩的数据必须准确,所以人们设计了无损压缩格式,比如常见的zip和rar。压缩软件自然是利用压缩原理压缩数据的工具。压缩后生成的文件叫做archive,它的体积只有几分之一甚至更小。当然,压缩包已经是另一种文件格式了。如果要使用其中的数据,必须先用压缩软件恢复数据。这个过程叫做解压。常见的压缩软件有winzip、winrar等。
计算机数据有两种形式的重复,zip压缩它们。
一种是短语形式的重复,即三个字节以上的重复。对于这种重复,zip使用两个数字:1。重复位置和当前压缩位置之间的距离;2.重复的长度,来表示这个重复,假设这两个数各占一个字节,那么数据是压缩的,很好理解。
一个字节有0-255 * * 256个可能值,三个字节有256 * 256 * 256 * * 1600多万种可能情况。较长短语的可能值呈指数增长,重复的概率似乎极低。事实上,所有类型的数据都倾向于重复。在一篇论文中,有几个术语会重复出现。一部小说,人名和地名会反复出现;一张上下渐变的背景图片,水平方向的像素会重复出现;语法关键词会在程序的源文件中反复出现(我们写程序前后复制粘贴了多少次?),在以几十K为单位的未压缩格式的数据中,往往会出现大量的短语重复。经过上述压缩后,短语重复的倾向被完全破坏,所以对压缩结果的第二次短语压缩一般是无效的。
第二种重复是单字节重复,一个字节只有256个可能值,所以这种重复是不可避免的。其中,有些字节可能出现的次数较多,有些则较少,在统计上趋于不均匀分布,这很容易理解。例如,在一个ASCII文本文件中,有些符号可能很少使用,而字母和数字使用较多,每个字母的使用频率也不一样。据说字母E的使用概率最高;很多图片或暗或亮,暗(或亮)像素使用较多(这里顺便说一下:png图片格式是一种无损压缩,其核心算法是zip算法,与zip格式的文件主要区别在于,作为一种图片格式,它存储了图片的大小、文件头使用的颜色数量等信息);上述短语压缩的结果也有这种趋势:重复往往出现在当前压缩位置附近,重复长度往往更短(20字节以内)。这样就可以压缩:对256种字节进行重新编码,使出现次数多的字节使用较短的编码,出现次数少的字节使用较长的编码。这样,当较短的字节多于较长的字节时,文件的总长度就会减少,字节使用率越不均匀,压缩比就会越大。
可以说jpg已经压缩的很厉害了,不能压缩的更少损失了。根据你对画质的不同要求,压缩比可能相差很大,但一般都很大(这就是技术的魅力)。当使用它的专用软件进行压缩时,它可能会给你一些压缩选项。在画质的调整上,你最好不要低于40%,这样会对图像造成很大的损失。这本身就是JPEG技术中的一些选项,看你需要多大的压缩量。
第二种方法:调整图片大小(有些可能被称为分辨率调整)
这个方法其实就是改变图片的大小,一张3000*2000的照片,把它的大小调整到600*400,它的大小就会变成原来25的1。当然,根据位图表示的原理,我们也可以考虑减少图像中的颜色数量,但我们一般不会这么做。windowsXP操作系统的用户可以用系统自带的画板进行修改。操作方法简单。用画板打开图片后,在“图像”菜单中选择拉伸/扭曲(或见ctrl+w快捷键),输入想要缩小的比例(调整到正常大小即可,如果太小可以用ctrl+z撤销操作),最后保存图片。windows2000操作系统的用户可以用系统自带的图像处理软件进行修改。操作方法是启动菜单选择程序->附件->图像处理,打开图像后,在页面菜单中选择属性->尺寸,修改图像尺寸。最后保存图片。使用ACDSEE的朋友可以采取以下操作:用ACDSEE打开想要压缩的图片,在工具栏中选择编辑,然后在弹出的图片编辑器的工具栏中选择调整大小,重新设置图片的大小。比如图片从1024×768换成640×480,图片尺寸自然会减小。当然,改变画面的大小也会在一定程度上影响画面的观看效果。
目前有很多个人开发的用于图像体压缩的专用软件,如MyPhotoZip、Jpeg Imager、图像优化器等。,也可以更精确的压缩图像,但是这些软件的使用相对比较麻烦。但是使用的原理无非就是我上面说的两种方法,其中有一部分采用了jpeg2000编码,这是一种比jpeg更简洁的技术,相当不错。如何用更合理的编码技术压缩图片,太深奥了。虽然我有一些这方面的资料,但我自己并没有深入研究过。你会对这些东西有所了解,适当压缩自己的图片。
飞月提醒:图像压缩是以改变图像本身的质量为代价的,虽然我们可能完全感觉不到,但是无论你采用什么压缩方式,图像质量都会受到损害。