“搭便车压缩指南”(The Puchiker‘s Guide to Compression)

2020-10-07 08:08:21

在银河系西部旋臂不起眼的一端,远处不为人知的死水里,躺着一颗不为人知的黄色小太阳。

在大约9200万英里远的轨道上运行的是一颗微不足道的蓝绿色小行星,它的类人猿进化而来的生命形式如此原始,以至于他们仍然认为数字手表是一个相当不错的想法。

这个星球有一个问题,那就是:文件太大了。人们提出了许多通过无损压缩来解决这个问题的解决方案,例如Lempel-Ziv和Huffman编码,但大多数都被实现到了常见的压缩实用程序中,很快就被遗忘了。今天,许多与压缩相关的工作都在互联网上冗长的博士论文和难以找到的宝石之间的一个模糊的角落里。

无损文件压缩,而文件压缩一般已经成为一门失传的艺术。现代开发人员社区已经从研究压缩算法转向更大更好的问题,比如创建下一个主要的NodeJS框架。然而,在计算机科学方面,压缩仍然和20世纪80年代一样有趣,今天可能更有趣,估计到2025年每天要创建463艾字节的数据。

互联网正在迅速发展,随着它的发展,越来越多的人连接起来,这已经不是什么秘密了。从城市居民到农村农民,快速的网速并不是必然的。为了应对这一问题,有许多项目专注于提高农村用户的网速,但专注于改善互联网接入的另一半:压缩数据的项目要少得多。

这些关于“压缩艺术的失落”的说法可能看起来有点站不住脚,因为今天有一些新的积极开发的压缩项目,例如,但不限于:

我在结尾处还包括了其他一些值得注意的项目,但它们要么不够活跃,要么不够普遍,不足以包括在这个简短的清单中。

然而,这一论点仍然成立,压缩并不是真正的主流,我不知道为什么不是。网速对世界上大多数人来说都是一个真正的问题,更好的压缩是一个有前途的解决方案。更好的压缩的可能性确实是无穷无尽的:

这个项目的目标,以及这里所有资源的目标都是帮助人们学习压缩算法,并鼓励人们修补、构建和试验他们自己的算法和实现。毕竟,技术创新的最好方式是让一群开发人员对某件事感兴趣,让他们带头。

此外,该项目本身也是一个社区资源,面向对压缩算法感兴趣的人。我们的想法是,任何人都可以通过GitHub为这个网站做贡献,这样这个网站就可以成为其他人不断改进和扩展的资源。

话虽如此,如果您有兴趣了解更多关于压缩的知识,就应该开始了。

作为一个预先警告,应该注意到,虽然这个项目的目的是全面的,但它不是。这是因为两位主要作者,我自己,菲利普·卡特和Arnav Chawla,目前都是高三学生,正在努力完成大学申请、功课、实习和其他承诺,没有时间继续这个项目和Raisin项目,速度与前三个月相同。然而,我们双方都致力于维护这个项目,并在可预见的未来改进它。