当前位置:
文档之家› 信息论与编码第5章 信源编码技术
信息论与编码第5章 信源编码技术
哈夫曼码的主要特点 1、哈夫曼码的编码方法保证了概率大的符号对 应于短码,概率小的符号对应于长码,充分 利用了短码; 2、缩减信源的两个码字的最后一位总是不同, 可以保证构造的码字为即时码。 3、哈夫曼码的效率是相当高的,既可以使用单 个信源符号编码,也可以对信源序列编码。 4、要得到更高的编码效率,可以使用较长的序 列进行编码。
5.1.2费诺码
费诺码的基本思想: 1、按照累加概率尽可能相等的原则对信源符号 进行分组: 对于二元码,则每次分为两组; 对于d元码,则每次分为d个组。 并且给不同的组分配一个不同的码元符号。 2、对其中的每组按照累计概率尽可能相等的原 则再次进行分组,并指定码元符号,直到不能 再分类为止。 3、然后将每个符号指定的码元符号排列起来就 得到相应的码字。
算术编码
适用于JPEG2000,H.263等图像压缩标准。 特点: 1、随着序列的输入,就可对序列进行编码 2、平均符号码长 L 满足
1 H (X ) L H (X ) N
(最佳编码)
3、需要知道信源符号的概率 是对shanno-Fanno-Elias编码的改进。
累计分布函数的定义
H(X ) H(X ) L 1 log d log d
费诺码的最佳性
1、保证每个集合概率和近似相等,保证d个码元近 似等概率,每个码字承载的信息量最大,码长近似 最短。 2、是次最佳的编码方法,只在当信源符号概率满足:
p(ai ) d
时达最佳。
li
信源符号
a1 a2 a3 a4 a5 a6 a7 a8 a9
费诺二元码的编码步骤
1、将源消息符号按概率大小排序:
p1 p2 p3 pn
2、将依次排列的信源符号分为两大组,使每组的概 率和尽可能相等,且每组赋与二进制码元“0”和 “1”。 3、将每一大组的信源符号再分为两组,使每组的概 率和尽可能相等,且每组赋与二进制码元“0”和 “1”。 4、如此重复,直至每组只剩下一个符号。 信源符号所对应的码字即费诺码。
例5.2对例5.1的信源进行费诺编码,,具体编码过程参 见表5.2
根据每个信源符号的码长,得到每个符号的平均码长 7 为 L p(ai )li 2.74 码元/符号
i 1
用树码表示的费诺码编码过程
a1 , a2 ,, a7
0 1
a1 , a2 , a3
7
编码过程 0.4 0.4 0 0.2 1
码字 码长
Wi
0.6 0 0.4 1
li
2 2 2 3 3
}
0 1
}
}
}
1.0
00 10 11 010 011
方法2
合并后的 概率尽量 往上
根据两种方法的编码结果,计算两种哈夫曼码 的平均码长,相等,即
L p(ai )li =2.2 码元/符号
i 1 7
例5.4 设有离散无记忆信源的概率空间为
X a1 a2 a3 a4 a5 p 0.4 0.2 0.2 0.1 0.1
信源符号 概率
ai a1 a2 a3 a4 a5
p ( ai )
0.4 0.2 0.2 0.1 0.1 0.4 0.2 0.2 0 0.2 1
算术编码
对于长为n的符号序列 ( X 1 , X 2 ,...X n ) 序列个数共有 比如0,1) 分别是 对应概率
2
n
个(若每个符号可取2个值,
X1, X 2 ,..., X k ,....X 2n
p( X1 ), p( X 2 ),...p( X k ),...p( X 2n )
序列k的累计分布函数
5.1.1 香农码
香农码的根据:离散无记忆信源的自信息量 设离散无记忆信源所对应的概率空间为
X a1 p ( x) p (a ) 1 a2 p(a2 ) ar p(ar )
对应码字的长度Li应该满足下列关系
符号自信 息量
I ( xi ) li I ( xi ) 1
对信源
a1 X p1 a2 p2 ... ... aK pK
且假定 p1 p2 ... pK
对aK-1和aK的码字最后一位分别指定0、1,然后合并, 产生辅助符号a’k-1,做一辅助集 0 ' ' ' ‘ a a a a ... a k-1 k-1 ' 1 2 K 1 X ' ' ' ak 1 p1 p2 ... pK 1
H(X ) 编码效率也相等,都为 =0.965 L 两种码的质量不完全相同,用码方差衡量,即
,
2 2 l2 E ( l L ) p ( a )( l L ) i i i i 1
r
l12 1.36 l 22 0.16 由于方法2的码方差比方法1的码方差小许多, 所以方法2编码质量好。
0 1.0
0.39 1
信源符号 概率
0.26
0.26
a1 a2 a3 a4 a5 a6 a7
0.20 0.19 0.18 0.17 0.15 0.10 0.01
码字 码长li
0.19
0.18 0.17
10 11 000 001
2 2 3 3
0
010
3
0110 4
0111 4
平均码长
L p(ai )li 2.72 比特 / 符号
i
这样就可以保证对于每个信源符号而言,码字长度是 最佳的 。
香农码编码方法 (1)将信源消息符号按其出现的概率大小依次排列为
p1 p2 pn
(2)确定每个信源符号的码长,同时保证码长为满足下 列不等式的整数 lbp(ai ) li lbp(ai ) 1 (3)为了编成唯一可译码,计算第i个消息的累加概率
1
a1
00 0
a2 , a3
a4
0 110
a5 , a6 , a7
1
a2
010
a3
011
1
10
a5
0
a6 , a7
1
1110
a6
1111
a7
编码效率为
总结:
H ( X ) 2.61 0.953 2.74 L
1、费诺码要比上述香农码的平均码长小,编码 效率高。 2、从上面的例子可以看出,p(a4)<p(a2),而码 长L4<L2,从统计角度来看,平均码长一定不是 最短的; 如果将两个符号对应的码字互换,这样编码 得到的平均码长肯定小于原来的平均码长。 3、费诺码的平均码长满足
编码过程 0.4 0.4 0 0.2 1
码字 码长
Wi
0.6 0 0.4 1
li
1 2 3 4 4
方法1
}
0 1
}
}
}
1.0
1 01 000 0010 0011
信源符号 概率
ai a1 a2 a3 a4 a5
p ( ai )
0.4 0.2 0.2 0.1 0.1 0.4 0.2 0.2 0 0.2 1
第5章 信源编码技术
5.1 最佳变长编码
回顾: 1、根据信源编码理论,将能够荷载一定信息量, 且码字的平均长度最短,可分离的变长码字 集合称为最佳变长码。 2、最佳变长码编码的基本原则是:概率大的信 源符号分配短的码字,而概率小的信源符号 分配长码字,从而使得平均码长最短。 具有代表性变长编码方法有:香农码,费诺码 和哈夫曼码等。
' ' pk nk ( p K 1 p K )
K 1
n ' ( p K 1 p K )
辅助集平均码长
二元码的哈夫曼编码步骤
(1)将信源消息符号按其出现的概率大小依次排列为 p1 p2 pn (2)取两个概率最小的两个信源符号分别分配码元0和1, 并将这两个概率相加作为一个新符号的概率,与未 分配的二进符号的符号一起重新进行概率排序。 (3)对重排后的两个概率最小符号重复步骤(2)的 过程。 (4)不断继续上述过程,直到最后两个符号配以0和1 为止。 (5)从最后一级开始,反向搜索参与编码的符号,得 到各个信源符号所对应的码元序列,即相应的码 字。
F ( X k)
累计分布函数的计算
递推公式
F (ua) F (u ) p(u ) F (a) p(ua) p(u ) p(a)
u :已输入序列
a :当前输入符号
算术编码
将[0,1)分割成小区间,如长为n的二元序列,分为 2n个区间,用区间[F(u),F(u)+p(u))表示序列u, 实际取F(u)。将F(u)截短,截断长度为
i 1 7
编码效率
H ( X ) 2.61 0.96 L 2.72
关于哈夫曼编码的讨论 1、每次对信源缩减时,赋予信源最后两个概率 最小的符号,分配码元0和1是可以任意的, 即大概率符号或者合并后的符号集合可以分 配码元0也可以是1,这种选择任意性可以得 到不同的哈夫曼码,但不会影响码字的长度。 2、对信源进行缩减时,如果两个概率最小的符 号合并后的概率与其它信源符号的概率相同, 应当放在上面,以便减少更多符号分配更长 码的可能。
例5.3 对例5.1的信源符号进行哈夫曼编码, 给出编码过程,每个信源符号的码字,码 长,求平均码长、编码效率。
哈夫曼编码过程
0.39 0.35 0.35 0 0.26 1 0.20 0.19 0.18 0.17 0.15 0 0.11 1 1 0.20 0.20 0.19 0 1 0 1
0.61
概率
0 2
1
1/ 3 1/ 9 1/ 9 1/ 9 1/ 9 1/ 9 1 / 27 1 / 27 1 / 27