编码发展史

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一个实用的编码方法是由D.A.Huffman在1952年的论文“最小冗余度代码的构造方法(A Method for the Construction of Minimum Redundancy Codes)”中提出的。直到今天,许多《数据结构》教材在讨论二叉树时仍要提及这种被后人称为Huffman编码的方法。Huffman编码在计算机界是如此著名,以至于连编码的发明过程本身也成了人们津津乐道的话题。据说,1952年时,年轻的Huffman还是麻省理工学院的一名学生,他为了向老师证明自己可以不参加某门功课的期末考试,才设计了这个看似简单,但却影响深远的编码方法。
1982年,Rissanen算术编码与J.G.Cleary和I.H.Witten于1984年提出的部分匹配预测模型(PPM)相结合,开发出了压缩效果近乎完美的算法。1987年,威滕(Witten)等人发表了一个实用的算术编码程序。同期,IBM公司发表了著名的Q编码器(后用于JPEG和JBIG图像压缩标准)。从此,算术编码迅速得到了广泛的注意。
Huffman编码效率高,运算速度快,实现方式灵活,从20世纪60年代至今,在数据压缩领域得到了广泛的应用。例如,早期UNIX系统上一个不太为现代人熟知的压缩程序COMPACT实际就是Huffman 0阶自适应编码的具体实现。1960年伊莱亚斯(Peter Elias)发现无需排序,只要编、解码端使用相同的符号顺序即可,并提出了算术编码的概念。伊莱亚斯没有公布他的发现,因为他知道算术编码在数学上虽然成立,但不可能在实际中实现。1976年,帕斯科(R.Pasco)和瑞萨尼恩(J.Rissanen)分别用定长的寄存器实现了有限精度的算术编码。20世纪80年代初,Huffman编码又出现在CP/M和DOS系统中,其代表程序叫SQ。今天,在许多知名的压缩工具和压缩算法(如WinRAR、gzip和JPEG)里,都有Huffman编码的身影。不过,Huffman编码所得的编码长度只是对信息熵计算结果的一种近似,还无法真正逼近信息熵的极限。正因为如此,现代压缩技术通常只将Huffman视作最终的编码手段,而非数据压缩算法的全部。
科学家们一直没有放弃向信息熵极限挑战的理想。1968年前后,P.Elias发展了Shannon和Fano的编码方法,构造出从数学角度看来更为完美的Shannon-Fano-Elias编码。沿着这一编码方法的思路,1976年,J.Rissanen提出了一种可以成功地逼近信息熵极限的编码方法——算术编码。1979年,瑞萨尼恩和兰顿(ngdon)一起将算术编码系统化,并于1981年实现了二进制编码。
1948年,Shannon在提出信息熵理论的同时,也给出了一种简单的编码方法——Shannon编码。Shannon提出将信源符号依其出现的概率进行降序排列,用符号序列累计概率的二进制作为对信源的编码,并从理论上论证的了它的优越性。1952年,R.M.Fano又进一步提出了Fano编码。这些早期的编码方法揭示了变长编码的基本规律,也确实可以取得一定的压缩效果,但离真正实用的压缩算法还相去甚远。
相关文档
最新文档