一、信源编码
-
目的:减少冗余,提高有效性
-
码的分类:非奇异码、惟一可译码、即时码(前缀码)
-
码树:如果所有叶子都用了,则有 ∣ χ ∣ − 1 |\chi|-1 ∣χ∣−1是 D − 1 D-1 D−1的整数倍, ∣ χ ∣ |\chi| ∣χ∣为消息符号的个数,D为几元字母表,eg: D = 1 , 2 , 3 , D = 3 D={1,2,3},D=3 D=1,2,3,D=3
-
Kraft不等式(对于即时码):
对于D元字母表上的即使码,码字长度 l 1 , l 2 . . . . l ∣ χ ∣ l_1,l_2....l_{|\chi|} l1,l2....l∣χ∣满足以下不等式:
∑ i = 1 ∣ χ ∣ D − l i ≤ 1 \sum_{i=1}^{|\chi|}D^{-l_i}\le1 i=1∑∣χ∣D−li≤1
反之,若给定以上不等式的一组码字长度,存在相对应的即时码,码字长度是给定的长度。 -
Kraft不等式(对于非奇异码)
对于D元字母表上的即使码,码字长度 l 1 , l 2 . . . . l ∣ χ ∣ l_1,l_2....l_{|\chi|} l1,l2....l∣χ∣满足以下不等式:
∑ i = 1 ∣ χ ∣ D − l i ≤ 1 \sum_{i=1}^{|\chi|}D^{-l_i}\le1 i=1∑∣χ∣D−li≤1
怎么一样???
-
最优码
构建优化问题,目标函数是 L = ∑ p i l i L=\sum p_il_i L=∑pili,限制条件: ∑ D − l I ≤ 1 \sum D^{-l_I}\le1 ∑D−lI≤1,利用拉格朗日乘子法将带约束的最小化问题转换为求下式得最小化问题:
J = ∑ p i l i + λ ∑ D − l i J=\sum p_il_i+\lambda \sum D^{-l_i} J=∑pili+λ∑D−li
对码字进行求导等于0:
∂ J ∂ l i = p i − λ D − l i l o g e D = 0 \frac{\partial J}{\partial l_i}=p_i-\lambda D^{-l_i}log_eD=0 ∂li∂J=pi−λD−lilogeD=0
D − l i = p i λ l o g e D ⟹ λ = 1 l o g e D , p i = D − l i D^{-l_i}=\frac{p_i}{\lambda log_eD} \Longrightarrow \lambda=\frac{1}{log_eD},p_i=D^{-l_i} D−li=λlogeDpi⟹λ=logeD1,pi=D−li
则最优码长:
l i ∗ = − l o g D p i l_i^*=-log_Dp_i li∗=−logDpi
若取码字长度为整数,此时希望的码长:
L ∗ = ∑ p i l i = − ∑ p i l o g D p i = H D ( X ) L^*=\sum p_il_i=-\sum p_ilog_Dp_i=H_D(X) L∗=∑pili=−∑pilogDpi=HD(X)
引出以下定理:随机变量X的任一D元即时码的期望长度必定大于或等于熵 H D ( X ) H_D(X) HD(X),即 L ≥ H D ( X ) L \ge H_D(X) L≥HD(X),当且仅当 p i = D − l i p_i=D^{-l_i} pi=D−li -
最优码的边界:
定理:设 l 1 ∗ , l 2 ∗ . . . l ∣ χ ∣ ∗ l_1^*,l_2^*...l_{|\chi|}^* l1∗,l2∗...l∣χ∣∗是关于信源分布p和D元字母表的一组最优码长, L ∗ L^* L∗为最优码长期望的长度 L ∗ = ∑ p i l i L^*=\sum p_il_i L∗=∑pili,则:
H D ( X ) ≤ L ∗ < H D ( X ) + 1 H_D(X) \le L^*<H_D(X)+1 HD(X)≤L∗<HD(X)+1
note:
+1
是由于 − l o g D p i -log_D{p_i} −logDpi并不总是整数造成的,可通过扩展将多字符进行分组编码缩减每个字符的附加位。
- 熵率
定义:当存在如下定义时,随机过程 X i {X_i} Xi的熵率为: H ( χ ) = lim n → ∞ 1 n H ( X 1 , X 2 , . . . . , X n ) H(\chi)=\lim_{n \to \infty} \frac{1}{n}H(X_1,X_2,....,X_n) H(χ)=n→∞limn1H(X1,X2,....,Xn)
若 X i {X_i} Xi是独立同分布i.i.d.则有:
H ( χ ) = lim n → ∞ 1 n n H ( X 1 ) = lim n → ∞ H ( X 1 ) H(\chi)=\lim_{n \to \infty} \frac{1}{n}nH(X_1)=\lim_{n \to \infty}H(X_1) H(χ)=n→∞limn1nH(X1)=n→∞limH(X1)
若 X i {X_i} Xi不是独立同分布,则有:
H ( χ ) = lim n → ∞ 1 n ∑ i = 1 n H ( X i ) H(\chi)=\lim_{n \to \infty}\frac{1}{n}\sum_{i=1}^nH(X_i) H(χ)=n→∞limn1i=1∑nH(Xi)
二、shannon第一定理 / 无失真信源编码
定义
L
n
L_n
Ln为输入字符期望码字长度,设
l
(
x
1
,
x
2
,
.
.
.
,
x
n
)
l(x_1,x_2,...,x_n)
l(x1,x2,...,xn)是与
(
x
1
,
x
2
,
.
.
.
,
x
n
)
(x_1,x_2,...,x_n)
(x1,x2,...,xn)相应的二级制码字长度,则有:
L
n
=
1
n
∑
p
(
x
1
,
x
2
,
.
.
.
,
x
n
)
l
(
x
1
,
x
2
,
.
.
.
,
x
n
)
=
1
n
E
[
l
(
x
1
,
x
2
,
.
.
.
,
x
n
)
]
L_n=\frac{1}{n}\sum p(x_1,x_2,...,x_n)l(x_1,x_2,...,x_n)=\frac{1}{n}E[l(x_1,x_2,...,x_n)]
Ln=n1∑p(x1,x2,...,xn)l(x1,x2,...,xn)=n1E[l(x1,x2,...,xn)]
则有最优码的界应用此编码
H
(
x
1
,
x
2
,
.
.
.
,
x
n
)
≤
E
[
l
(
x
1
,
x
2
,
.
.
.
,
x
n
)
]
≤
H
(
x
1
,
x
2
,
.
.
.
,
x
n
)
+
1
H(x_1,x_2,...,x_n)\le E[l(x_1,x_2,...,x_n)]\le H(x_1,x_2,...,x_n)+1
H(x1,x2,...,xn)≤E[l(x1,x2,...,xn)]≤H(x1,x2,...,xn)+1
由于
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn是统计独立同分布的i.i.d,则有:
H
(
x
1
,
x
2
,
.
.
.
,
x
n
)
=
∑
H
(
x
i
)
=
n
H
(
X
)
⇒
H
(
X
)
≤
L
n
<
H
(
X
)
+
1
n
H(x_1,x_2,...,x_n)=\sum H(x_i)=nH(X)\Rightarrow H(X)\le L_n<H(X)+\frac{1}{n}
H(x1,x2,...,xn)=∑H(xi)=nH(X)⇒H(X)≤Ln<H(X)+n1
如果随机过程是平稳的,则:
H
(
x
1
,
x
2
,
.
.
.
,
x
n
)
n
≤
L
n
→
H
(
χ
)
\frac{H(x_1,x_2,...,x_n)}{n}\le L_n \to H(\chi)
nH(x1,x2,...,xn)≤Ln→H(χ)
n → ∞ n\to \infty n→∞时,每字符期望长度趋于熵率 H ( χ ) H(\chi) H(χ).
三、Shannon码和Huffman码
- Shnanon码
码字长度分配 l ( x ) = ⌈ l o g 1 q ( x ) ⌉ l(x)=\lceil log\frac{1}{q(x)}\rceil l(x)=⌈logq(x)1⌉关于p(x)的期望码长,满足
H ( p ) + D ( p ∣ ∣ q ) ≤ E p l ( x ) < H ( p ) + D ( p ∣ ∣ q ) + 1 H(p)+D(p||q)\le E_pl(x)<H(p)+D(p||q)+1 H(p)+D(p∣∣q)≤Epl(x)<H(p)+D(p∣∣q)+1
note
: D ( p ∣ ∣ q ) = ∑ x p ( x ) l o g p ( x ) q ( x ) 、 H ( p ) = ∑ x p ( x ) l o g 1 p ( x ) D(p||q)=\sum_xp(x)log\frac {p(x)}{q(x)}、H(p)=\sum_xp(x)log\frac{1}{p(x)} D(p∣∣q)=x∑p(x)logq(x)p(x)、H(p)=x∑p(x)logp(x)1
若真实分布为 p ( x ) p(x) p(x),编码时使用非真实分布 q ( x ) q(x) q(x)会导致期望长度增加 D ( p ∣ ∣ q ) D(p||q) D(p∣∣q) - Huffman码
D元码要先验证信源数目是否充足,即 ∣ χ ∣ − 1 |\chi|-1 ∣χ∣−1是否为D-1的整数倍,要求 ⌈ ∣ χ ∣ − 1 D − 1 ⌉ \lceil \frac{|\chi|-1}{D-1}\rceil ⌈D−1∣χ∣−1⌉,若不是整数倍,需要加一个虚拟符号
χ \chi χ是消息个数,D是D元码。
- Huffman码的最优性
满足以下条件,即为最优码:
长度序列与按概率分布排列的次序相反,即若 p j > p k p_j>p_k pj>pk,则 l j < l k l_j<l_k lj<lk
最长的码字有相同的长度
最长的两个码字仅在最后一位上有差别,且对应于两个最小可能发生的字符
- Shannon码的竞争最优性
设 l ( x ) l(x) l(x)为Shannon码的相应码字长度, l ′ ( x ) l'(x) l′(x)表示其他唯一可译码的相应码字长度,则 P r ( l ( x ) ≥ l ′ ( x ) + c ) ≤ 1 2 ( c − 1 ) Pr(l(x)\ge l'(x)+c)\le\frac{1}{2^{(c-1)}} Pr(l(x)≥l′(x)+c)≤2(c−1)1
eg: l ′ ( x ) l'(x) l′(x)比 l ( x ) l(x) l(x)短5bit,或更多的概率不超过 1 16 \frac{1}{16} 161 - Shannon码长
L
s
L_s
Ls和Huffman码长
L
∗
L^*
L∗关系
H ( X ) ≤ L ∗ ≤ L s < H ( X ) + 1 H(X)\le L^*\le L_s<H(X)+1 H(X)≤L∗≤Ls<H(X)+1
参考文章:通信算法基础知识汇总(6)