王朝百科
分享
 
 
 

LZ编码

王朝百科·作者佚名  2010-08-19  
宽屏版  字体: |||超大  

1965年苏联数学家Kolmogolov提出利用信源序列的结构特性来编码。而两位以色列研究者J.Ziv和A.Lempel独辟蹊径,完全脱离Huffman及算术编码的设计思路,创造出了一系列比Huffman编码更有效,比算术编码更快捷的通用压缩算法。将这些算法统称为LZ系列算法。

Ziv和Lempel于1977年提出了LZ77算法[Ziv & Lempel (1977)]。1984年,二人又提出了改进算法,后被命名为LZ78[Ziv & Lempel (1978)]。1984年,T.A.Welch提出了LZ78算法的一个变种,即LZW算法[ Welch (1984)]。1990年后,T.C.Bell等人又陆续提出了许多LZ系列算法的变体或改进版本[ Bell 等(1990)]。

LZ系列算法用一种巧妙的方式将字典技术应用于通用数据压缩领域,而且,可以从理论上证明LZ系列算法同样可以逼近信息熵的极限。

以LZ78算法为例。

设信源符号集A={a1,a2,…,aK}共K个符号,设输入信源符号序列为u=(u1,u2,…,uL)编码是将此序列分成不同的段。分段的规范为:尽可能取最少个相连的信源符号,并保证各段都不相同。

开始时,先取一个符号作为第一段,然后继续分段。若出现与前面相同的符号时,就再取紧跟后面的一个符号一起组成一个段,使之与前面的段不同。这些分段构成字典。当字典达到一定大小后,再分段时就应查看有否与字典中的短语相同,若有重复就添加符号,以便与字典中短语不同,直至信源序列结束。

编码的码字由段号加一个符号组成。设u构成的字典中的短语共有M(u)个。若编码为二元码,段号所需码长n=「log M(u)「(注:代表上取整符号),每个符号需要的码长为「log K「。单符号的码字段号为0,非单字符的码字段号为除最后一个符号外字典中相同短语的段号。

例如,设U={a1,a2,a3,a4},信源序列为a1,a3,a2,a3,a2,a4,a3,a2,a1,a4,a3,a2,a1,共13位,字典如表所示:

表1编码字典

段号

短语

编码

1

a1

00000

2

a3

00010

3

a2

00001

4

a3a2

01001

5

a4

00011

6

a3a2a1

10000

7

a4a3

10110

8

a2a1

01100

表2符号编码表

a1

a2

a3

a4

00

01

10

11

表1中,8个短语使用3bit可以表示段号。每个信源符号使用2bit表示,因此,一个短语使用5bit。

LZ编码的编码方法非常简捷,译码也很简单,可以一边译码一边建立字典,只要传输字典的大小,无需传输字典本身。当编码的信源序列增长时,编码效率会提高,平均码长会逼近信源熵。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
中国古代四大美女:背后隐藏惊人秘密
 女性   2025-06-20
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有