进制哈夫曼编码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下午12时51分
21
三种最佳变长编码方法比较
香农码:有系统的、惟一的编码方法,但多数情况下编码 效率不是很高。
费诺码:编码方法不惟Βιβλιοθήκη Baidu,比较适合于对分组概率相等或 接近的信源编码。
哈夫曼码:编码方法不惟一,对信源的统计特性没有特殊 要求,编码效率比较高,综合性能优于香农码和费诺码。
下午12时51分
下午12时51分
10
5.4 哈夫曼(Huffman)编码
进行哈夫曼编码时,为得到码方差最小的码,应使合并的 信源符号位于缩减信源序列尽可能高的位置上,以减少再 次合并的次数,充分利用短码。
哈夫曼码是用概率匹配方法进行信源编码。它有两个明显 特点:一是哈夫曼码的编码方法保证了概率大的符号对应 于短码,概率小的符号对应于长码,充分利用了短码;二 是缩减信源的最后两个码字总是最后一位不同,保证了哈 夫曼码是即时码。
好的原因。
码字长度的方差: 2
E
Ki
K
2
n i 1
p(xi
)(K i
K )2
下午12时51分
6
5.4 哈夫曼(Huffman)编码(例2)
例:对以下离散无记忆信源进行两种哈夫曼编码。(例5.1.6)
信源 符号ai
a1 a2 a3 a4 a5
概率 p(ai) 0.4
码字Wi1 码长Ki1 码字Wi2
i
K4 p(xi )Ki ( 0.4 0.2 0.3 )1 ( 0.05 0.05 ) 2 1.1(bit/sym bol)
i
编码效率分别为:
η( 3 ) H(X) H(X) 1.95 94.9% R K3 log 3 L 1.31.58
η( 4 ) H(X) 1.95 88.6% K4 log 4 L 1.1 2
可 见 , 要 发 挥 哈 夫 曼编 码 的 优 势 , 一 般 情 况下 , 信 源 符 号 集 的 元 素数 应 远
大 于 码 元 数 。 上 例 中 ,若 编 五 元 码 , 只 能 对 每个 信 源 符 号 赋 予 一 个 码数 , 等
于 没 有 编 码 , 当 然 无 压缩 可 言 。
第一种方法码树图
下午12时51分
第二种方法码树图
9
5.4 哈夫曼(Huffman)编码(例2续)
7
两 种 方 法 的 平 均 码 长 相等 :K p(xi )Ki 2.2码 元/符 号 i 1
两 种 编 码 方 法 的 编 码 效率 相 等 : H ( X ) 96.5%
K
码字长度的方差:
)
0x.14
x2 0.2
x3 0.1
x4 0.1
x5 0.05
x6 0.05
x7 0.05
0x.085
其 中 ,m 3, n 8。
令k 3,则m k (m- 1) 9,则 须 增 加s 9 - n 1个
不 用 的 码 字 , 所 以 第 一次 只 需 取m - s 3 - 1 2个
22
第一种方法:
2
E
Ki
K
2
n i 1
p(xi
)(Ki
K
)2
2 1
0.4(1-
2.2)2
0.2(2-
2.2)2
0.2(3-
2.2)2
(0.1
0.1)(4-
2.2)2
1.36
第二种方法:
2 2
(0.4
0.2
0.2)(2-
2.2)2
(0.1
0.1)(3-
2.2)2
0.16
故 第 二 种 哈 夫 曼 码 的 质量 好 。
所需的信息率: R K log m K 2.72比 特/码 元
L
编 码 效 率 : H ( X ) H ( X ) 2.61 96%
R
K 2.72
下午12时51分
5
5.4 哈夫曼(Huffman)编码
哈夫曼编码方法得到的码并非唯一的。
每次对信源缩减时,赋予信源最后两个概率最小的符号,用0和1是可 以任意的,所以可以得到不同的哈夫曼码,但不会影响码字的长度。
3
5.4 哈夫曼(Huffman)编码(例1续)
0.20 0.20 0.26 0.35 0.39 0.610 1.0 0.19 0.19 0.20 0.26 0.35 0 0.391 0.18 0.18 0.19 0.20 0 0.26 1 0.17 0.17 0.180 0.19 1 0.15 0.15 0 0.171 0.100 0.11 1 0.01 1
哈夫曼码是最佳码。
下午12时51分
11
5.4 哈夫曼(Huffman)编码
m进制哈夫曼编码
二进制哈夫曼的编码方法可以很容易推广到m进 制的情况。只是编码过程中构成缩减信源时,每 次都是将m个概率最小的符号合并,并分别用 0,1,…,m-1码符号表示。
为使平均码长最短,必须使最后一步缩减信源有 m个信源符号。如果第一步给概率最小的符号分 配码元时,所取的符号数就不一定是m个。
下午12时51分
4
5.4 哈夫曼(Huffman)编码(例1续)
7
平 均 码 长 :K p( ai )Ki 2.72码 元/符 号 i 1
7
信 源 熵 :H ( X ) - p(ai )log p(ai ) 2.61比 特/符 号 i 1
对 单 符 号 信 源 编 二 进 制码 ,L 1,m 2, 则 信 源 采 用 哈 夫 曼 编码
第
二 10 0.2
种
方 11
法
0.2
010 0.1 0
0.1 011 下午12时51分
1
0.4 0.2 0.2 0 0.2 1
0.4 0.2 0.2 0 0.2 1
0.4 0.4 0 0.2 1
0.4 0.4 0 0.2 1
0.6 0 0.4 1
0.6 0 0.4 1
1.0 1.0
8
5.4 哈夫曼(Huffman)编码(例2续)
对信源进行缩减时,两个概率最小的符号合并后的概率与其它信源符 号的概率相同时,这两者在缩减信源中进行概率排序,其位置放置次 序是可以任意的,故会得到不同的哈夫曼码。此时将影响码字的长度, 一般将合并的概率放在上面,这样可获得较小的码方差。
需要大量的存储设备来缓冲码字长度的差异,这是码方差小的码质量
19
m进制哈夫曼编码-例2(续)
图(b)四进制哈夫曼编码
下午12时51分
20
m进制哈夫曼编码-例2(续)
信 源 熵 :H(X) - p(xi )log p(xi ) 1.95(bit/sym bol)
i
两 种 编 码 的 平 均 码 长 分别 为 :
K3 p(xi )Ki ( 0.4 0.3 )1 ( 0.2 0.05 0.05 ) 2 1.3(bit/sym bol)
1
1 00
0.2 01
2 10
0.2 000
3 11
0.1 0010
4 010
0.1 0011
4 011
码长Ki2 2 2 2 3 3
下午12时51分
7
5.4 哈夫曼(Huffman)编码(例2续)
码字
1
第
0.4
一 01
种
0.2
方 000
法
0.2
0010 0.1 0
0011 0.1 1
00 0.4
例:对以下信源进行哈夫曼编码。 P166习题5.3
信源符号ai a1 a2 a3 a4 a5 a6 a7
概率p(ai) 0.20 0.19 0.18 0.17 0.15 0.10 0.01
码字Wi 10 11 000 001 010
0110 0111
码长Ki 2 2 3 3 3 4 4
下午12时51分
码字。 后来新加的概率为零的符号,虽也赋予码字,实际上这是冗余码字,
并未用上,但这样编成的码,仍是最佳的,也就是平均码长最短,如 果等概率符号排队时注意到顺序,则码长的方差也是最小的。
下午12时51分
14
m进制哈夫曼编码-例1
设单符号离散无记忆信源如下,对信源编三进制 哈夫曼码。
X p(xi
符号进行编码。
下午12时51分
15
m进制哈夫曼编码-例1(续)
下午12时51分
16
m进制哈夫曼编码-例1(续)
8
其 平 均 码 长K p(xi )Ki 1.75码 元/符 号 i1
相 应 的 信 息 率R
K L
log2 3
2.77比 特/符 号
编 码 效 率 2.53 91%
2.77
下午12时51分
下午12时51分
1
5.4 哈夫曼(Huffman)编码
(3)对重排后的两个概率最小符号重复步骤(2)的过 程。
(4)不断继续上述过程,直到最后两个符号配以0 和1为止。
(5)从最后一级开始,向前返回得到各个信源符号 所对应的码元序列,即相应的码字。
下午12时51分
2
5.4 哈夫曼(Huffman)编码(例1)
下午12时51分
13
m进制哈夫曼编码步骤
(1)验证所给n是否满足n=(m-1)k+m,若不满足该式,可以人为地增加一 些概率为零的符号,以使最后一步有m个信源符号;
(2)取概率最小的m个符号合并成一个新结点,并分别用0,1,…,(m-1)给各 分支赋值,把这些符号的概率相加作为该新结点的概率;
(3)将新结点和剩下结点重新排队,重复(2),如此下去直至树根; (4)取树根到叶子(信源符号对应结点)的各树枝上的赋值,则得到各符号
三进制哈夫曼码树图
17
m进制哈夫曼编码-例2
设单符号离散无记忆信源如下
X
p(xi
)
0x.14
x2
0.3
x3
0.2
x4
0.05
0.x05 5
其三进制哈夫曼编码如图(a)所示,四进制哈夫曼编 码如图(b)所示。
下午12时51分
18
m进制哈夫曼编码-例2(续)
图(a)三进制哈夫曼编码
下午12时51分
5.4 哈夫曼(Huffman)编码
二进制哈夫曼码的编码方法: (1) 将 信 源 消 息 符 号 按 其 出 现 的 概 率 大 小 依 次 排
列:p( x1 ) p( x2 ) p( xn )。 (2)取两个概率最小的符号分别配以0和1两个码元,
并将这两个概率相加作为一个新符号的概率,与 未分配二进制码元的符号重新排队。
下午12时51分
12
5.4 哈夫曼(Huffman)编码
m进制哈夫曼编码
全树:码树图中每个中间节点后续的枝数必为m。若有些 节点的后续枝数不足m,则称为非全树。
对于m进制编码,若所有码字构成全树,可分离的码字数 必为m+k(m-1),式中k为非负整数,即缩减次数。
若信源所含的符号数n不能构成m进制的全树,就必须增 加s(s<m-1)个不用的码字来形成全树。