给定一个包含0,1,2,3像素值的灰度图像,其像素值的比例分别为70%,15%,12%,3%,求对其进行霍夫曼编码后相对于原始8bit存储的压缩率是多少?
记符号为 0, 1, 2, 3
频率为 0.7,0.15,0.12,0.03
按照下列步骤构造哈夫曼树:
- 将符号按频率排序,选取频率最小的两个符号("3"和"2")作为树的左右子节点
- 将 "3"和"2"的频率合并得0.15,重新对合并的结果进行频率排序
- 迭代1和2,得到哈夫曼树
- 将哈夫曼树各级左子树标记为0,右子树标记为1
- 得到哈夫曼编码为3:111,2:110,1:10,0:0
压缩率为
1
−
(
(
0.03
∗
3
+
0.12
∗
3
+
0.15
∗
2
+
0.7
∗
1
)
/
(
0.03
∗
2
+
0.12
∗
2
+
0.15
∗
2
+
0.7
∗
2
)
)
=
0.275
1-((0.03*3+0.12*3+0.15*2+0.7*1)/(0.03*2+0.12*2+0.15*2+0.7*2))=0.275
1
−
(
(
0
.
0
3
∗
3
+
0
.
1
2
∗
3
+
0
.
1
5
∗
2
+
0
.
7
∗
1
)
/
(
0
.
0
3
∗
2
+
0
.
1
2
∗
2
+
0
.
1
5
∗
2
+
0
.
7
∗
2
)
)
=
0
.
2
7
5