关于java:90-岁程序员他的压缩算法改变了世界

46次阅读

共计 3355 个字符,预计需要花费 9 分钟才能阅读完成。

近日,国内电气与电子工程学会(Institute of Electrical and Electronics Engineers,简称 IEEE)发表,授予 IEEE 一生 Fellow Jacob Ziv 2021 年度 IEEE 荣誉勋章。

这位现在已 90 岁的前辈,是一位以色列科学家,他开发了通用无损压缩算法 Lempel-Ziv,为起初的 GIF、PNG 和 ZIP 文件的开发奠定了松软的根底。

1、无损压缩算法发展史

20 世纪 70 年代,随着互联网及 PC 时代的降临,如何在无限内存空间的设施上节俭出更多的空间,并缩小对带宽的占用,让文件在较低的网络带宽下实现更快的传输,成为彼时 IT 行业亟需解决的一大难题。

正因而,数据压缩技术也从背地逐步走入公众视线,并开始在计算机领域表演重要角色。

现如今,想必很多人都晓得,数据压缩次要有两种类型:一种是有损压缩,一种是无损压缩。

所谓有损压缩,次要是利用了人类对图像或声波中的某些频率成分不敏感的个性,容许压缩过程中损失肯定的信息,日常生活中,咱们常见的语言、图像、视频压缩其实都是有损压缩的形式。

与有损压缩相比,无损压缩要更为简单一些,对此,IEEE 官网应用了「魔术」一词来形容这门技术,其中起因次要是因为无损压缩技术是利用数据的统计冗余进行压缩,在解压之后,可完全恢复原始数据而不引起任何失真。这就像一位魔术师拿着魔术棒一挥,手中的货色不见了,再一挥,又一成不变地呈现了,无损压损技术就像表演魔术一样。

而 Jacob Ziv 就是这位在数据压缩畛域拿着魔术棒的巨匠。

不过,在 Jacob Ziv 这位魔术师带来奇异的魔术之前,压缩算法也经验了百年的倒退历程(http://ethw.org/History_of_Lo…):

  • 事实上,创造于 1838 年的 Morse code,是最早的数据压缩实例。
  • 随着大型机的衰亡,数学家香农和 Robert Fano(CSAIL 的计算先驱和创始人)创造了 Shannon-Fano(香农 - 范诺)编码算法。他们的算法基于符号 (symbol) 呈现的概率来给符号调配编码(code)。一个符号呈现的概率大小与对应的编码成反比,从而用更短的形式来示意符号。
  • 1951 年,作为麻省理工的一名学生,David Huffman 抉择写学期论文而非期末考试的形式来完成学业工作,彼时他的论文题目是寻找二叉编码的最优算法。不过,遗憾的是,通过几个月的致力后仍然没有任何成绩,Huffman 决定放弃所有论文相干的工作,开始学习为加入期末考试做筹备。就在那时,Huffman 偶然间找到一个与 Shannon-Fano 编码相相似然而更无效的编码算法,这种编码方式效率高、运算速度快。
  • 起初到了 20 世纪 70 年代,随着在线存储的呈现,哈夫曼编码失去了广泛应用。不过,通过一直地尝试,不少科学家发现哈夫曼编码所得的编码长度只是对信息熵(形容信源的不确定度)计算结果的一种近似,还无奈真正迫近信息熵的极限。同时,它须要两次通过数据文件:一次计算文件的统计特色,第二次编码数据。将字典与编码数据一起存储,减少了压缩文件的大小。

1977 年,来自以色列的 Jacob Ziv 和 Abraham Lempel 两位技术大神突破传统的设计思维,发明出一种哈夫曼编码更无效的压缩算法,并以两个人名字来命名。

同时,他们还发表了一篇名为《A Universal Algorithm for Sequential Data Compression》(程序数据压缩的一个通用算法的论文:

https://www2.cs.duke.edu/cour…

揭晓了独创的 LZ77 算法,这也是第一个应用字典来压缩数据的算法。

次年,Jacob Ziv 和 Abraham Lempel 再次发表一篇改进版的论文(《Compression of Individual Sequences via Variable Rate Coding》),并带来了 LZ78 的压缩算法。与 LZ77 不同,LZ78 解析输出数据,生成一个动态字典,不像 LZ77 动静产生。该算法成为 80 年代初应用的 Unix 压缩程序的根底;影响了 90 年代的 WinZip 和 Gzip,为 GIF、TIFF 图片格式的开发带来了肯定的指引。

如果没有这些算法的存在,当初的咱们不肯定可能应用更为便捷的网络就能够发送大型数据文件,或还停留在将大型数据文件拷贝到光盘上进行传输时代;听音乐时,还有可能须要 CD 而不是通过流式传输 ……

2、Ziv 的过往经验

这所有都须要感激 Jacob Ziv 和 Abraham Lempel。

“LZ 算法是第一个胜利的通用压缩算法 ”,一位反对 Ziv 获奖的工程师如是说。这些算法以及 Jacob Ziv 对它们的剖析,为后续对于通用算法的大多数工作奠定了根底。

回顾 Ziv 的过往经验,其逾越了半个世纪,将本人全身心地投入到压缩算法畛域中。

1931 年,出世在过后由英国统治的巴勒斯坦城市 Tiberias(现属于以色列)的 Ziv,在很小的时候,Ziv 就对电力和电子产品有着浓重的趣味,譬如,在练习小提琴的时候,他会尝试把乐谱架变成一盏灯。此外,他还试图用钢琴弹奏的金属整机制作一个马可尼发射机。

1948 年,第一次阿以和平暴发时他在读高中,起初被征召到火线短暂地服过役。因为一群母亲组织抗议,他才从火线回到了前方,在空军受训负责雷达技师。和平完结后,他进入以色列理工学院学习电气工程。

在 1955 年实现硕士学位后,Ziv 重返国防界,并退出了以色列国防钻研实验室(现为拉斐尔先进进攻零碎),开发用于导弹和其余军事零碎的电子元件。

1959 年,Ziv 被选为以色列国防实验室为数不多的出国留学的钻研人员之一。那时,Ziv 打算持续从事通信工作,但他不再只对硬件感兴趣。偶尔时机之下,他浏览了《信息实践》(Prentice-Hall,1953 年)的书籍,他决定将信息实践作为他关注的焦点。然而,除了麻省理工学院之外,还有什么中央能够钻研信息实践呢?

当然还是麻省理工!于是,1960 年,Ziv 进入 MIT 读博,在信息实践方面深造,在毕业返回以色列后进入了国防部负责通信部门主管。

1968 年,他返回美国,进入了贝尔实验室。

两年后,Ziv 和几个共事一起退出了以色列理工学院。就是在这里,他遇到了 Abraham Lempel,两个人独特探讨了如何改良无损数据压缩。

Ziv 和 Lempel 都想晓得他们是否能够开发一种无损数据压缩算法,该算法实用于任何类型的数据,不须要预处理,并且可能实现数据的最佳压缩,这个指标被称为 Shannon 熵的对象定义。在构想时,他们并不分明是否能够实现他们的指标。于是,他们决定找出答案。

在深入研究几年后,随着 LZ77 和 LZ78 的呈现,代表了其钻研胜利。Ziv 和 Lempel 创始了通用源编码,一系列无需晓得固有信息压缩数据的算法,缩小了从不失真和失真数据重建图像所需的数据率。

对此,斯坦福大学从事信息实践的电气工程传授 Tsachy Weissman 示意:” 在他们发表作品时,算法清晰优雅,易于实现,计算复杂度低,这一事实简直无关紧要。更多的是对于实践后果,为接下来的钻研带来重要意义。”

另外,Ziv 还促成了谬误校对代码的低计算复杂性解码实践。并于:

  • 1993 年,因准确迷信而被授予以色列奖(Israel Prize);
  • 1995 年,因其“对信息实践、数据压缩的实践和实际的奉献”取得 IEEE 理查德 · 汉明奖章;
  • 1997 年,取得 IEEE 信息论学会的克劳德 · 香农奖;
  • 2008 年,取得 BBVA 基金会常识前沿奖。

现在,凭借「其对信息实践和数据压缩技术的重要奉献和卓越的钻研领导位置」,被授予 2021 年度 IEEE 荣誉勋章,堪称实至名归,向仍旧奋战在钻研一线的前辈致敬!

参考:\
https://spectrum.ieee.org/the… \
https://spectrum.ieee.org/gee… \
整顿 | 苏宓 \
出品 | CSDN(ID:CSDNnews)

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿(2021 最新版)

2. 别在再满屏的 if/ else 了,试试策略模式,真香!!

3. 卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅公布,光明模式太炸了!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0