#include #include #include #include #include typedef struct huffman_node_tag{ unsigned char isLeaf; unsigned long count; stru...
分类:
其他好文 时间:
2016-01-17 11:01:17
阅读次数:
295
Huffman算法也是一种无损压缩算法,但与上篇文章LZW压缩算法不同,Huffman需要得到每种字符出现概率的先验知识。通过计算字符序列中每种字符出现的频率,为每种字符进行唯一的编码设计,使得频率高的字符占的位数短,而频率低的字符长,来达到压缩的目的。通常可以节省20%~90%的空间,很大程度上依赖数据的特性!Huffman编码是变长编码,即每种字符对应的编码长度不唯一。
前缀码:任何一个字符的编码都不是同一字符集中另一种字符编码的前缀。Huffman编码为最优前缀码,即压缩后数据量最小。
-------...
分类:
其他好文 时间:
2015-12-22 10:32:37
阅读次数:
226
OK,昨天我们对huffman数的基本知识,以及huffman树的创建做了一些简介,http://www.cnblogs.com/Frank-C/p/5017430.html今天接着聊:huffman树创建完成之后,我们如何去得到huffman编码呢? 图12.4_1 huffman树形结构 图1....
分类:
其他好文 时间:
2015-12-04 18:16:05
阅读次数:
137
最近在翻炒一些关于树的知识,发现一个比较有意思的二叉树,huffman树,对应到离散数学中的一种名为最优二叉树的路径结构,而Huffman的主要作用,最终可以归结到一种名为huffman编码的编码方式,使用huffman编码方式,我们可以以平均长度最短的码字来记录一串信息,且每个信息分子的编码唯一....
分类:
其他好文 时间:
2015-12-03 21:17:00
阅读次数:
175
要求: 对于给定的字符串构建哈夫曼树,生成 huffman 编码,并进行编码 / 译码。思路: 1. 生成 huffman 树 1> 对样本中各个字符出现次数进行统计 2> 按统计结果以 队列 形式排列 3> 从队列中拿出前两个生成子树,父节点大小为两节点之和 4> 将子树再...
分类:
其他好文 时间:
2015-12-02 14:12:52
阅读次数:
181
压缩、解压缩及归档工具1.压缩文件:XXXXXzipfilename2.解压文件Xunzipfilename.Xzip3.查看压缩文件:Xcatfilename.Xzip4.关于压缩工具工具文件扩展名描述Bzip2.bz2使用Burrows-Wheeler块排序文本压缩算法和Huffman编码Compress.z原Unix文件压缩工具,现在以你个很少使用Gz..
分类:
系统相关 时间:
2015-09-30 01:05:47
阅读次数:
307
上次我在http://www.cnblogs.com/Philip-Tell-Truth/p/4787067.html这里,稍微讲了一下一种很普通的贪婪的算法,其实这个算法一开始是用来做压缩程序的,就是最著名的Huffman压缩算法 那么这个算法是怎么样的呢,我们知道,我们的...
分类:
其他好文 时间:
2015-09-06 22:49:38
阅读次数:
378
#lang racket(define (length items) (if (null? items) 0 (+ 1 (length (cdr items)))))(define (element-of-set? x set) (cond ((null? set) fals...
分类:
其他好文 时间:
2015-08-20 18:23:45
阅读次数:
139
gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分;deflate是一种压缩算法,是huffman编码的一种加强。deflate与gzip解压的代码几乎相同,可以合成一块代码。区别仅有:deflate使用inflateInit(),而gzip使用inflateInit2()进...
分类:
其他好文 时间:
2015-08-11 09:44:34
阅读次数:
390