算法|为什么30多年过去了,GIF还没有被淘汰( 二 )


255 色和 1859 色的区别 ▼
而像现在大多数的显示器 , 其实都已经是 32 位的了 。
但正是由于这种特点 , gif 更适用于色彩比较少的图片 , 比如简单的 LOGO 或者卡通人物等等 。
彩虹猫也是 gif ▼
不过至于世界上第一张动图到底长什么样 , 这个就众说纷纭了 。
维基百科上面显示的是这个地球自转的 gif , 有不少人认为这就是第一张 gif。
但 Reddit 上面有人觉得下面这张飞机 gif 才是万物起源 。
正当差评君差点就信了网友的说法时 , 我跑到维基百科上面定睛一看 , 发现 gif 到了 1995 年才能循环起来 , 这已经是 gif 诞生 8 年之后了 。。。
所以世界上第一张动图看样子是无处考究了 , 但之所以 gif 能在 1995 年开始循环播放 , 其实要靠一个叫做网景 ( Netscape )的浏览器 。
这个浏览器诞生自同名的一家计算机服务公司 , 在 1995 年的 Netscape 2.0 版本中 , 它正式支持了 gif 格式 , 并且能让动图循环播放 , 对于用户来讲是一次重大的使用体验提升 。
这款浏览器在当时的名气相当大 , 甚至不比 IE 浏览器差 , 但它最终还是在 2008 年寿正终寝了 。。。
唉 , 只能说当 Netscape 在 1995 年支持循环播放 gif 的那一刻 , 某种意义上来说是它器生巅峰了 , 哪怕它后来被微软 IE 干死 , 也永远会被人记住 。。。
照理来讲 , gif 当时在能动的基础上还能循环 , 普及速度应该会很快才对 , 然而发明了 gif 的公司却遭遇了专利问题 。
这个事情其实很简单 , gif 之所以能够在有限的大小实现了动态画面 , 是因为它采用了LZW( Lempel-Zev-Welch )压缩算法 。
LZW 算法也叫做 “ 串表压缩算法 ” , 这种算法会用数字来表示文件中第一次出现的串 , 然后再放进串表中 。
而压缩文件只存储数字 , 不存储串符 , 这样压缩效率就会得到提高 。
差评君在这里举一个例子 , 比如“ ABABAB ”这串字符 , 就可以用数字来替代 。
而这里 AB 是重复的 , 那么就可以用数字 3 来代替 AB , 这时就变成了 AB33 。
前面的 A 和 B 也可以用 1 和 2 来代替 , 那么整个字符就变成了1233 。
而用来记录字符的表格 , 也叫做 Dictionary( 字典 ) 。
但平常的 LZW 一般不会这么表示 , 因为 LZW 初始是有一个默认的字典的 , 这里只是为了方便理解 。
但并不是什么时候用 LZW 压缩法都是好的 , 如果遇到重复字符很少的情况 , 有可能越压越大 。。。
所以差评君个人可以理解成在遇到画面变化幅度比较小的场景时 , LZW 可以更高效地压缩文件 , 因为相同的色块压缩起来效率更高 。
这也就是为什么有些动图看着挺长 , 但由于画面没什么变化 , 所以只有几 MB 大小 。
而当时拥有这个算法的公司 Unisys 觉得这是自家专利 , 其他公司如果想使用 LZW 压缩技术的话 , 都要给 Unisys 付钱 。。。
而当时被 gif 广泛影响着的互联网 , 也被 Unisys 的阴影笼罩着 , 有些人在当时开发出了不含 LZW 算法的 gif 版本 , 大家现在耳熟能详的 png 格式也是因此诞生 。
其实 Unisys 没有大家想得那么邪恶 。
甚至在 1999 年 , Unisys 修改了专利授权条款 , 商业使用 Gif 的网站和软件商只要一次性付一笔 5000 - 7500 美元的授权费即可 , 使用网站和软件的普通的用户和创作者是不需要花钱的 。
不仅如此 , Unisys 还给许多非盈利结构 , 学术研究机构免费提供免费授权 。
但当时的人们可能有点上头了 , 以为只要用 gif 就要付费 , 疯狂口诛笔伐 Unisys , 他们收到了成千上万封谩骂输出的邮件 。。。 直到 2003 年 LZW 专利到期 。

相关经验推荐