多媒体 || GIF压缩与JPEG压缩的对比

图片示范

动物卡通图片

fig: 动物卡通图片

在这里插入图片描述

fig: 动物图片

GIF格式

其中GIF格式采用的是LZW的无损压缩算法,这是一种字典索引的压缩方法,原理是减少每点的存储位数以减少图像文件的大小,也就是通常所说的颜色抖动。因而实际存储数据的并不是图像的直接色彩,而是存储的index,通过index来查询存储颜色的字典(类似我们上次作业实现的采色板)。index通常最高是存储八位,也就是2^8=256种颜色。

但实际在用rgb存储时,一副全色图像是采用直接色彩存储,每色块存8*3=24位。

  • 我尝试对老师给的动物图片先转为bmp其大小为2095k,然后用ps转为8位gif,发现大小变为了257k,差不多变为原来的1/(2^3=8)

所以对于色彩变化不明显的简单图片我们一般采用gif压缩,原因就是基于LZW的原理:原始数据串中有大量的子串多次重复出现的话LZW压缩效果效果就会越好。针对具体图像来说也就是颜色种类越少越好,像素块色彩值重复度就高。gif压缩不会丢失任何数据而且又比同等效果的jpg图要小。

JPEG格式

JPEG压缩是一种偏向平衡性的格式,它会舍弃掉人眼根本无法感知的颜色信息,以使文件尽可能小并且细节不丢失。因此,它是一种有损格式。它颜色丰富并且很适合那些允许轻微失真的像素色彩丰富的图片(如相片)。

  • jpeg的压缩比例主要是在于量化一步中对于图像细节的保留程度,这一步采用的量化表也是从广泛实验中根据人对色彩的敏感程度得出。而且根据亮度和色度的精度要求不同采用不同量化表。前者细量化,后者粗量化。
  • 最后的熵编码一般采用霍夫曼编码,而JPEG的霍夫曼表是由一定规则生成,只要给出少量的描述即可生成相应的JPEG的霍夫曼表,这也减少了存储的字符位数。

JPEG的图片相比gif的优点,是采用了直接色,得益于更丰富的色彩,JPEG非常适合用来存储照片,用来表达更生动的图像效果,比如颜色渐变。

图片存储格式分析

所以对于动物图片这张图,它的颜色丰富度比较低,同时也已经存为jpg了,再二次压缩为jpg会失真度较高,也就是显得很糊,因而我们适合采用gif压缩。

而动物卡通图片这张图颜色种类丰富,渐变也比较明显,因而只用256种色彩存储很难达到较好的色彩效果,所以采用jpeg压缩。

**首先先比较第一张动物图片。**先看压缩率,将第一幅图存为同等效果的jpg和gif,gif的图片大小为410k,而jpg的图片大小为521k;接着再看失真率,因为gif是无损压缩,而jpg是有损压缩,所以gif图片视觉的清晰度要高于jpg压缩,失真度较小。所以第一幅图无论是从压缩率还是失真率来说gif压缩都会略胜一筹。

结果对比部分:

jpg

在这里插入图片描述

gif

在这里插入图片描述

**然后比较第二幅动物卡通图片。**从压缩率来看,从同一张图片进行同等效果的压缩后gif的大小为348k,而jpg的大小为210k。接着根据失真度比较,gif最多只能存储8位,也就是256种颜色。而jpg虽然有一定的数据精度损失,但是是以直接色彩的方式存储,颜色丰富程度要远好于gif,而对于一些细节的渐变效果也比较好,所以这幅图jpg的视觉效果较好。所以综合压缩率和失真率来说这幅图用jpeg压缩效果更好。

jpg

在这里插入图片描述

gif

在这里插入图片描述

**ps:**为什么同样是gif压缩第一幅图就会比jpg占内存小而第二幅图就会比jpg大呢?个人分析是因为第一幅图色彩丰富度太低,图片颜色种类少于256种,所以gif存储不需要8位(1~7位即可)就可以将图片色彩全部表示。而第二幅图色彩丰富度较高,颜色种类多于256种,gif最多也只能存八位,所以是将图片以8位索引的形式存的,图片大小就大于gif。

之后试了一下将第一幅图用ps强行存为8位,图片的内存大小也确实要比jpg大,所以得出结论如果将gif存为8位(256色索引),它的压缩效果是要比jpeg压缩差的,而且视觉上的色彩丰富程度也不达jpg。然而如果图片色彩丰富度低,例如能用128甚至更少的色彩存储,那么gif的压缩效果是会比jpg好,同时因为是无损压缩又不会造成图片的失真。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值