第六章 图像的压缩编码

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

4 游程(长度)编码

RLC——Run-Length Code

o o
无失真编码,适用于二元相关信源
二元——0游程后为1,反之亦然 相关——有长0、长1 游程——序列中,相连的同种元素的统称 游程长度——同种元素的长度(连码个数) 游程(长度)序列——由游程长度构成的序列
一、术语


游程长度编码——对游程长度序列进行编码
第六章 图像压缩编码与压缩技术
1 香农编码
2 费诺编码
3 哈夫曼编码
4 游程(长度)编码
5 冗余位编码
6 算术编码
1
[引言]
1.
编码
有效性——信源编码 目的——优化通信系统 可靠性——信道编码 安全性——保密密码 信源编码:目的——提高通信有效性 方法——压缩信源冗余度 信道编码:目的——提高通信可靠性 方法——增加信源冗余度,增大码率 保密密码: 目的——提高通信安全性 方法——加密(增熵),解密(减熵)
3 哈夫曼编码
一、二进制哈夫曼编码 1.步骤 (1) 信源符号排序:p(x1) ≥ p(x2) ≥ …≥ p(xn) (2) 取两个最小的概率,分别赋以“0”,“1” (也可相反,但此后不变) 然后把这两个概率值相加,作为新概率值 与其他概率重新排序
(3) 按重排概率值,重复(2)…,
直到概率和达到1为止 (4) 由后向前排列码序,即得哈夫曼编码
1 1 p0
4游程编码
⑵ 游程序列的熵
H [ L(0)]
H [ L(1)]
L (0) 1


p[ L(0)]log 2 p[ L(0)]
H ( p0 ) p1
相当于ℓ1次扩展
H ( p1 ) 1 H ( p1 ) 1H ( p1 ) p0 p0
⑶ 游程序列的熵与原二元序列的熵的关系
L 2, nQ 1 nI n1 L 1 3
(4)由前知:帧长15位,有两个信息位(Q=2)分别在第3,11位, 得译码结果:001000000010000
6 算术编码
一、算术编码基本思想

基本思想——信源序列的积累概率F(S) 可用[0, 1)区间 内的一个点表示 说明——把信源序列的积累概率映射到[0, 1)区间上,
假设0 1,则有

0 1
当“0”游程和“1”游程的编码效率都很高时,采用 游程编码的效率也很高,至少不会低于较小的那个 效率。要想编码效率尽可能高,应尽可能提高熵值 较大的游程编码效率。
4 游程(长度)编码(续)
四、游程长度序列的后续编码——线性码

游程长度可由1~∞,欲严格对应困难
(哈夫曼编码需严格对应概率)

修正:按出现概率分组,每组用等长度编码。
通常,短游程出现概率大, 又可按游程长度分组、编码

线性码——码字长度正比于游程长度的编码 常称为A码——码长为块长整数倍
如:A3码(每块3bit),A5码(每块5bit)
4 游程(长度)编码(续)——A3码
[A3码]——每块3bit

小结:

香农码、费诺码、哈夫曼码都考虑了信源的统计特性, 使经常出现的信源符号对应较短的码字,使信源的平均 码长缩短,从而实现了对信源的压缩; 香农码有系统的、惟一的编码方法,但在很多情况下编 码效率不是很高;


费诺码和哈夫曼码的编码方法都不惟一;
费诺码比较适合于对分组概率相等或接近的信源编码; 哈夫曼码对信源的统计特性没有特殊要求,编码效率比 较高,对编码设备的要求也比较简单,因此综合性能优 于香农码
4游程编码


游程长度序列/游程序列:用交替出现的“0”游程和“1” 游程长度表示任意二元序列。 规定二元序列总是从“0”开始。 游程变换:是一种一一对应的变换,也是可逆变换。 例如:二元序列:000101110010001…, 可变换成游程序列:31132131… 对于随机序列,游程长度是随机的,其取值可为1,2,3,…,直至 无穷。 首先求出“0”游程长度和“1”游程长度的概率分布,即以游程 长度为元素,构造一个新的信源; 对新的信源(游程序列)进行哈夫曼编码
4游程编码
⒉ 游程序列编码后的效率 假设“0”游程长度的哈夫曼编码效率为η0,“1”游 程长度的哈夫曼编码效率为η1,由编码效率的定义 可得对应二元序列的编码效率(信源熵和信息率之 比为编码效率η=H(X)/R) H [ L(0)] H [ L(1)] H [ L (0)] H [ L (1)] 1 0
4 游程(长度)编码(续)
二、编码 1. [例] 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1…原序列(二元) 311 3 21 3 1…游程序列 2. 说明 (1) 可逆 (2) 规定:从“0”游程开始(此后交替) (3) 游程序列为多元序列, 此后可用哈夫曼编码等编码 (4) 原则上亦可用于m元序列,但需增设标志位,因而减小 了压缩比

分帧——N个符号为一帧,编为一个码字
1. 编码
(1) 每个码字传送两个数
Q——本帧内信息位个数 T——各信息位的位置信息 nj——帧内第j个信息位的位置编号 (n1最小,nQ最大)
T Cnjj 1
j 1
Q
5 冗余位编码(续)
[例5.5.1]已知:001000000010000…取N=15,作L-D编码 [解] 1. 编码:Q=2, nI=n1=3,nQ=n2=11
游程 长度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …
编码码字
001 010 011 100 101 110 111 000001 000010 000011 000100 000101 000110 000111 000000001 …
5 冗余位编码(续)
二、L-D编码 一种分帧传送方法(以帧为单位编码、传送)

p1 p1 1 p[L(0)] 1 p1 1 p0 L( 0)
式中L(1)=1,2,…,
p0 p0 1 p[L(1)] 1 p0 1 p1 L (1)
4游程编码
若二元序列为有记忆时,则应有: p[L(0)]=p(0/0)L(0)-1· p(1/0); p[L(1)]=p(1/1)L(1)-1· p(0/1);

使每个序列对应该区间内的一个点,这些点把区间[0, 1)
分成许多不同的小区间,这些小区间的长度等于对应序 列的概率

在小区间内取一个浮点小数,使其长度与该序列的概率 相匹配,因而达到高效编码的目的
6 算术编码(续)
二、算术编码步骤 1.主要任务——计算信源序列对应的小区间 2.递推公式

设low、high——小区间左、右端点值 range——小区间宽度 则小区间左、右端点的递推公式: low(Sur) = low(S) + range(S)×low(ur)
[本章介绍] 无失真离散信源编码 变长码(平均码长最短,有效性最高)
[引言](续)
最佳编码——凡是能载荷一定信息量, 平均码长最短, 可分离的, 变长码的码集 可分离——接收端能分开(即时码) 关键——平均码长最短 o 大概率——短码 o 小概率——长码 o 码长~信源统计特性——匹配 [例]香农编码,费诺编码,哈夫曼编码

“0”游程序列的熵与“1”游程长度的熵之和除以它 们的平均游程长度之和,即为对应原二元序列的熵 H(X) H [ L(0)] H [ L(1)]
H(X ) l0 l1 H ( p0 ) H ( p1 )

游程变换后符号熵没有变。因为游程变换是一一对 应的可逆变换,所以变换后熵值不变。
4游程编码
一、概述 Nhomakorabea香农编码、费诺编码、哈夫曼编码主要是针对无记忆信源。 当信源有记忆时上述编码效率不高。 游程编码对相关信源编码更有效。 游程编码的思想方法:
二元相关序列→游程编码→多元非相关序列→哈夫曼编码
二、游程编码
⒈ 游程

游程:数字序列中连续出现相同符号的一段。 二元序列的游程:只有“0”和“1”两种符号。 连“0”这一段称为“0”游程,它的长度称为游程长度L(0); 连“1”这一段称为“1”游程,它的游程长度用L(1)表示。
T C C C 47 T 编为0101111 j 1 Q 2 CN C15 105, log 2 105 7
2 j n j 1 1 31 2 111
于是,L-D编码为:00100101111(QT)
log2 ( N 1) = log216 4, Q编为0010

⒉ 编码方法:


4游程编码
⒊ 小结:


游程变换减弱了原序列符号间的相关性。 游程变换将二元序列变换成了多元序列;这样就适合于用其 他方法,如哈夫曼编码,进一步压缩信源,提高通信效率。 由其方案可知游程变换后编码并不适合于多进制序列。
三、游程序列的统计特性
⒈ 游程长度的概率 若二元无记忆序列的概率特性已知, 令“0”和“1”的概率分别为p0和p1, “0”游程长度L(0)的概率 p[L(0)] ;
⒉ 游程序列的平均长度及熵
⑴ 游程序列的平均长度
长度无限 时才能用 此公式
0 E[ L(0)]

L ( 0 ) 1
L(0) p[ L(0)] L(0) p
L ( 0 ) 1


L ( 0 ) 1
p1
d L(0) 1 p1 p0 p1 L ( 0 ) 1 dp0 同理有:
“1”游程长度L(1)的概率 p[L(1)] ;
4游程编码
01000011101
“1”游程的结束, “0”游程的开始 “0”游程的结束及“0”游程的 长度为4,“1”游程的开始
∴ p[L(0)]=p0L(0)-1p1 且有:

式中L(0)=1,2,…,
0游程各长度出 现概率之和为1
同理有: p[L(1)]=p1L(1)-1p0
1.香农编码(续)
一、编码步骤 1.信源符号按概率排序:p(x1) ≥ p(x2) ≥ …≥ p(xn) 2. 确定的码长ki(整数):-log2p(xi)≤ki<1-log2p(xi) 3.计算第i个码字(之前)的累加概率pa(xj)
[说明] i 0 j=1时, pa(x1) = p(x0) =0 j=2时, pa(x2) = p(x1) + p(x0) = p(x1) j=3时, pa(x3) = p(x2) + p(x1) 因而pa(xj)表示:xj之前(不含xj)的各概率之和 4.将累加概率 pa(xj)变为二进制数, 并取其小数点后ki位,即为xi的编码
4游程编码
四、游程序列的编码 ⒈ 游程序列的编码方法 将“0”游程和“1”游程看作二个信源,分别进行 编码。 分别求出各游程长度的概率。 将概率按大小依次排列,进行无记忆信源编码。 由于对“0”游程和“1”游程分别进行编码,故有 二张码字表,其码字可以重复。 n 在实际应用中,由于大于2 长度的游程长度的概率 极小,通常采用截断处理。
pa ( x j ) p( xi ), j 1 n, p( x0 ) 0
j 1
2 费诺编码
一、步骤 1.信源符号排序:p(x1) ≥ p(x2) ≥ …≥ p(xn) 2.概率分组并赋值 所有概率分为两组(m进制,为m组) 并使各组概率和接近或相等 然后对每组赋值0,1(m进制,为0,1,…,m-1) (赋值可相反,但此后不变) 3.概率再分组,并赋值(同2)…. 直到每组只有一个信源符号为止 4.按分组次序由前向后排序,即得码字
5 冗余位编码(续)
二、L-D编码 2. 译码 (1)已知N=15,故由前4位得Q = 2,后7位得T = 47
(2)由C T C
Q K
Q K 1
K 10, nQ n2 11
Q 2 2 2 1 (3)T1 T CK 47 C10 2,由CL 1 T1 CL 1
[引言](续)
2. 信源编码 (1) 理论基础 无失真信源编码定理:离散信源或数字信号编码基础 限失真信源编码定理:连续信源或模拟信号编码基础
离散信源编码——无失真编码
(2)分类
连续信源编码—限失真编码,如:PCM,矢量量化 预测编码—如DPCM,ADPCM 相关信源编码 变换编码—如K-L变换,离散变换
相关文档
最新文档