多媒体技术 || 自适应的霍夫曼编码与原始的霍夫曼编码的比较
第一题:
(a) 自适应的霍夫曼编码与原始的霍夫曼编码相比什么优点:
- 原始的Huffman算法给出了一种静态的编码树构造方案,要求在实际编码之前统计被编码对象中符号出现的几率,并据此进行编码树的构造。所以应用此方案时必须对输入符号流进行两遍扫描,而在大多数多媒体应用中数据分布的先前统计数据是不可行的。
- 另外,静态编码树构造方案不能对符号流的局部统计规律变化做出反应,因为它从始至终都使用完全不变的编码树。而自适应Huffman编码不需要事先构造Huffman树,而是随着编码的进行,逐步构造Huffman树。同时,这种编码方案对符号的统计也动态进行,随着程序的运行,同一个符号的编码可能发生改变(变得更长或更短)。
- 再者就静态编码在储存或传输Huffman编码结果之前,还必须先储存或传输Huffman编码树,自适应霍夫曼编码则不需要,这大大节省了内存开销。
(b)
(i)接收到的后续几个字母是什么
接收到的后续的几个字母分别是 b(01) a(01) c(00 10) c(101)
(推导过程同第二问)
(ii)画出接收每一个后续字母后的自适应霍夫曼树
fig 1
fig 2
fig 3
fig 4
推导过程:
步骤 | 字符 | 分析 |
---|---|---|
一 | 01 | 从7-11图定位到01为b,然后b的权值+1,此时b的节点权值变为3>a(2),b与a交换位置,huffman树变为fig1 |
二 | 01 | 从fig1定位到01为a,然后a权值+1,此时a的节点权值变为3=b(3),树的节点不做变动,huffman树变为fig2 |
三 | 00 10 | 根据fig2定位到00是new,意味着有新字符的加入,然后根据下面的10知道新加入的字符是c,然后用包含c和new的子树替换旧的new节点,然后将a的父节点的权值+1变为4>b(3),与b交换位置,得到fig3 |
四 | 101 | 根据fig3定位到c,然后将相应的节点权值分别+1,发现没有需要置换的节点和子树,得到fig4 |