减少GIF文件大小有四种基本技术,这些技术必须综合运用才能得到在Web上很好的播放所需的压缩程度。下面将介绍这四种技术。
1、精简帧数
精简帧数是减少GIF大小最为明显的方法。简而言之,就是动画要尽可能的减少帧数。在标题广告中,这种技术的运用达到了极可笑的程度,但即使在较高带宽的动画中,减少帧的数目、分别调整它们的定时是让每千字节得到更多内容的最好方法。如果10帧采用此方法优化的GIF动画为10K,那么5帧则大约只占用一半空间。
2、帧差别优化
帧差别(frame differencing)是将单独各帧的大小从两个方面定义,一个是它相对于下一帧所发生的改变量,另一个是在一个大的背景内裁剪帧以使帧出现在正确的位置。到目前为止,Mac上运行的GIFBuilder和GIFmation(跨平台)是能自动处理帧差别的两种程序。
如果要用别的程序执行帧优化,那您也许要手工完成。您需要裁剪连续的帧,手工定位,使得每一帧相对于别的帧处于正确位置。如果您用这种方法,那么一般您要将布局方法设为Revert to Background和Revert to Previous,否则前帧将显示在当前帧的下面,这种效果通常是不需要的。
3、LZW压缩优化
GIF文件自动使用一种称为LZW压缩的压缩方案(正因为这个LZW方案,GIF才成为一种专利格式,使用者需得到软件生产商的许可)。LZW通过压缩颜色串来进行,颜色串是某处颜色像素的长行或颜色的重复方式。例如,不用将一行像素存为黄,黄,黄,黄,黄,GIF只简单存为5黄。如果图像是由许多大的单色块组成的,如在平色背景上显示的粗体字体,这种方案是非常高效的。但如果相反,在图像上是一些无规则的不同颜色像素,例如在一张连续色调的照片中,那么现在GIF文件中的一行像素只好保存为蓝、橙、黄、绿,对GIF压缩方案来说,根本就没有什么方法来简化这种排列。
在一个测试中,对一个400平方像素的索引颜色图像,当由单色片组成的时候,可压缩为1.4K,而当由无规则的点组成的时候,压缩则为49K,是前者的35倍!当您处理由不同颜色构成的图像时,差别更是惊人。同样一张杂色图像,用5色的索引调色板压缩为49K,而使用256色调色板则压缩为198K。
在另一个例子中,一张光滑的24位256级灰度梯度保存为15K,而抖动的索引的版本为11K,一个没有抖动但有索引的版本(这会导致水平灰度条的倾斜)保存为4K大小的GIF文件。类似的,一个没有抖动的色彩梯度保存为6K,然而带抖动且索引的色彩的同样梯度为22K,这些差别主要是由用LZW压缩进行抖动干涉的方式决定的。
图形保真也给LZW压缩带来了一个冲击,因为它会在不同的平面颜色区域的边缘有效的引入干扰。此外,有效的图形保真要求图像有一个较大的调色板。在一个测试中,字体的边很粗糙而又显得失真,只有两种色彩,图像压缩为5K的GIF文件;但同样的图形保真照片,索引为18色,显示出漂亮得多的光滑边,图像压缩后为10K。这种情况下,折衷的办法是,将图形保真图像的调色板减少到5色,保留一些图形保真的部分,但图像大小减小到7K。
4、精简颜色
精简颜色是优化GIF最具挑战的一个方面。其规则就是在保证图像的视觉质量的同时,尽可能减少颜色的种类。现在用一个简单的尺度列表来判断如何减少图像的颜色,这要将动画的视觉质量与采用的颜色精简类型综合起来考虑。这里,将动画归为以下的类别。
(1) 连续色调照片图像。这种类别包括的动画一般使用人物、地点或物体的真实图像,帧可以是来自视频的或静态的照片,也可采用现实的画或细致的彩色图像。对这种图像,根据自定义调色板来抖动帧可达到最佳视觉效果。另一种较好的方法是根据Web安全调色板抖动图像,但这种方式常产生令人讨厌的颜色,因为Web安全调色板不很适合抖动大多数照片图像。
(2) 连续色调图形图像。连续色调图形图像与照片图像的不同之处在于,它经常包含一个相当有限的色彩范围。这种类别的图像可在紫色梯度上使用绿色,但红、黄和蓝色就不能很好的重现。鉴于这种情况,您就要用自定义调色板,其结果可与原来的全色版本区别开来,若要能更好的压缩,您可用自定义调色板而不用抖动,这也许可以(也可能不可以)产生可接受的色带水准。
(3) 平色图形图像。平色图形,如在纯色背景上的纯色字体,几乎是图像压缩的最好脚本例子,因为它们包含的颜色几乎总是少于256色,您可以轻易的索引图像刚好到它所包含的色彩,并将这个自定义调色板附带于动画中。问题在于自定义调色板并非经常与Web安全调色板相匹配,也就是说载入一幅图像可能使屏幕的余下部分产生颜色的变化。因此,当您创建图像时,最好使用Web安全色。变通办法是用普通颜色创建图像,然后不抖动,而将它们转化为Web安全调色板。这种方法经常造成显著的颜色移位,因为平色被强制符合Web调色板中最相配的颜色,您可以使用一个Web安全颜色混合器,如Dither Box。这种方式可模仿出您的图像中所需的颜色,但它会稍微降低压缩的效果。
(4) 使用Web安全色的平色图形图像。Web安全色的平色图像是最好的脚本,因为您可以根据Web调色板对图像进行索引,然后去掉不用的颜色,剩下动画的调色板中实际用的颜色,这些颜色保证使用Web安全颜色,这种技术可以同时优化压缩和美化图像的外观。