多语言展示
当前在线:1878今日阅读:86今日分享:14

前缀编码怎么判断

今天小编带大家了解下前缀编码,希望有所帮助
方法/步骤
1

关于编码的两个概念:1 前缀编码1.1 前缀编码概念前缀编码:如果在一个编码方案中,任何一个编码都不是其他任何编码的前缀(最左子串),则称该编码是前缀编码。1.2 前缀编码实例分析(简洁易懂)举个简单的例子,给出下面三种编码方案:

2

分析:如上图,不等长编码方案1是前缀编码;分析如下:在不等长编码方案1中,a,b,c,d为四个字符,其对应编码0,10,110,111中,任意一个编码(四个里面随便选)都不是其他任何编码的前缀,比如选择a的编码0进行比对,你会发现 10,110,111都不以0为前缀(都不以0开头)。  如上图,不等长编码方案2不是前缀编码,分析如下,四个编码中,随便选一个,如果选0,会发现01,010都是以0为前缀,所以不符合前缀编码的定义,分析结束。不知道大家有没有隐约有种意识,等长编码一定是前缀编码!例如两位编码,00,01,10,11就是,同理,三位、四位...n位。

3

1.3 前缀编码作用 前缀编码可以保证对压缩文件进行解码时不产生二义性,确保正确解码。

4

2 哈夫曼编码 2.1 哈夫曼编码概念 2、哈夫曼编码:对于一颗具有n个叶子的哈夫曼树,若对树中的每个左分支赋予0,右分支赋予1,则从根到每个叶子的路径上,各分支的赋值分别构成一个二进制串,该二进制串就成为哈夫曼编码。 哈夫曼编码的主要思想:在进行数据压缩时,为了使压缩后的数据文件尽可能短,可以采用不定长编码。其基本思想是: 未出现次数较多的字符编以较短的编码,为确保对数据文件进行有效的压缩和对压缩文件进行正确的解码,可以利用哈夫曼树来设计二进制编码。

5

2.2 哈夫曼编码的两条性质 哈夫曼树满足两条性质: 性质1  哈夫曼树是前缀编码。 性质2  哈夫曼树是最有前缀编码。 对于包含n个数据字符的文件,分别以它们出现的次数为权值构造哈夫曼树,则利用该树对应的哈夫曼编码对文件进行编码,能使该文件压缩后对应的二进制文件的长度最短。

推荐信息