压缩技术实验编码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

压缩技术实验编码

实验一统计编码

实验目的

1.熟悉统计编码的原理

2.掌握r元Huffman编码的方法;

3.了解Huffman编码效率及冗余度的计算;

二、实验原理

霍夫曼编码,又称最佳编码,根据字符出现概率来构造平均长度最短的变长编码。

Huffman编码步骤:

(1)把信源符号x i(i=1,2,…按出现概率的值由大到小的顺序排列;

(2)对两个概率最

小的符号分别分配以“ 0和“ 1,'然

后把这两个概率相加作为一个新的辅助符号的概率;

(3)将这个新的辅助符号与其他符号一起重新按概率大小顺序排列;

⑷跳到第2步,直到出现概率相加为1为止;

(5)用线将符号连接起来,从而得到一个码树,树的N个端点对应N个信源符号;

(6)从最后一个概率为1的节点开始,沿着到达信源的每个符号,将一路遇到的二进制码“ 0或“ 1顺序排列起来,就是端点所对应的信源符号的码字。

以上是二元霍夫曼编码。如果是r元霍夫曼编码,则应该如何做呢?

在HUFFMAN 编码方案中,为出现概率较小的信源输出分配较长的码字,而对那些出现可能性较大的信源输出分配较短的码字。为此,首先将r 个最小可能的信源输出合并成为一个新的输出,该输出的概率就是上述的r 个输出的概率之和。重复进行该过程直到只剩下一个输出为止。信源符号的个数q 与r 必须满足如下的关系式:

q = (r-1) n + r n 为整数如果不满足上述关系式,可通过添加概率为零的信源符号来满足。这样就生成了一个树,从该树的根节点出发并将0、1 分别分配给任何r 个来自于相同节点的

分支,生成编码。可以证明用这种方法产生的编码在前向树类

编码中具有最小的平均长度。

举例:对于取值为u={u1,u2,u3,u4,u5,u6} 其相应的概率为p={0.1 ,0.3,0.05,0.09,0.21,0.25}的信源,试设计一个3 元HUFFMAN 码,求出码子的平均长度与编码效率。

注:因为是 码字的平均长度

L=2 X 0.1+1 X 0.3+3 X 0.05+3 X 0.09+2 X

0.21+1 X 0.25=1.59

信源的熵

H ( u ) = (0.1 X Iog2(0.1)+ 0.3X Iog2(0.3)+ 0.05X

Iog2(0.05)+ 0.09X Iog2(0.09)+

0.21 X Iog2(0.21)+ 0.25X Iog2(0.25)=2.3549

编码效率 Q=0.9345

用MATLAB 实现该编码的方法可用下面的矩阵来说

明:

20 U 1 0.1① 0.3② 0.3⑤

0.3⑤

0.3③ 0.45 ①

1

1 U 2

0.3② 0.25 ⑥

0.25 ④ 0.25④ 0.25②

0.3③

211

U 3 0.05 ③ 0.21 ⑤ 0.21 ③ 0.21 ③ 0.45 ① 0.25②

20 til 0. 1 0.3 1 u2

0.3

0. 25 211

u3 0. 05 0.21 川

ul 0. 09 0. 1 22 u5

0.21

a 09

0 u6 ().25 a 05

*0.3 *0.25 *0. 21 *0. 14

0. 1 —-

3元编码,所以每次3个概率值相加。 0.45 0.3 ・ 0.

212 U4 0.09 ④0.1①0.1②0.14①22 U5 0.21 ⑤0.09 ④0.14 ①0.1②

0 U6 0.25⑥0.05 ③

0.⑦0⑦

注:每次3个数加完后,重新按序分配编号,在按概率 值重新排序,再进行下次加数

注:m 中每一行为按概率值重新排序后的编号列,一共 三次概率值排序;单箭头表示两次排序中的概率值并未 参加加数,未改变;多箭头表示箭头所指向的多项概率 值相加后得到箭头源的概率值。

注:c 为编码矩阵,从最后一行开始,因为是 3元编码, 故按

0、1、2开始编码。根据m 中的箭头,单箭头不变, 多箭头根据

箭头源每上一层则箭头源编码后再加一位, 同一层中加的位数按 0、1、2顺序添加。

m 矩阵第I (1>1 )行中的‘ 1'记录了合并后的信源符

号在新信源中的位置

实验步骤

1. 输入初始概率分布p 和码元数r ;

2. 检查是否满足q = (n-1)r + r (q 为输入信源的个 数),如果不满足则补零使之满足;

3.

排序得m 矩阵

c=

7

m= 2

2

2 0 0

211 12 20 2 0 1

20 2

2

210

4.根据m 矩阵获得c 矩阵

5.从c 矩阵中取出最后的码字矩阵h 并计算平均码长和编码效率。

四、实验仪器

1计算机;

2MATLAB 程序;

3移动式存储器(软盘、U 盘等);

4记录用的笔、纸。

五、实验报告内容

1、实验目的

2、实验要求

3、实验环境

4、实验内容(叙述操作过程,提交主要程序段)

5、实验结论

6、实验总结

六、思考题

1 什么是霍夫曼编码?在Matlab 中如何实现?

2 r 元霍夫曼编码的原理和过程?

实验二量化与变换编码

一、实验目的

1.理解有损压缩和无损压缩的概念;

2.理解图像压缩的主要原则和目的;

相关文档
最新文档