信息论及编码第5章Word文档下载推荐.docx
《信息论及编码第5章Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《信息论及编码第5章Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
可见,编码确实是从信源符号到码符号的一种映射。
假设要实现无失真编码,那么这种映射必需是一一对应的,而且是可逆的。
码符号的分类:
以下图是一个码分类图
下面,咱们给出这些码的概念。
1.二元码
假设码符号集为X={0;
1},所有码字都是一些二元序列,那么称为二元码。
二元码是数字通信和运算机系统中最经常使用的一种码。
2.等长码:
假设一组码中所有码字的码长都相同,即li=l(i=1,2,…q),那么称为等长码。
3.变长码:
假设一组码组中所有码字的码长各不相同,那么称为变长码。
4.非奇异码:
假设一组码中所有码字都不相同,那么称为非奇异码。
5.奇异码:
假设一组码中有相同的码字,那么称为奇异码。
6.唯一可译码:
假设码的任意一串有限长的码符号序列只能唯一地被译成所对应的信源符号序列,那么此码称为唯一可译码,不然就称为非唯一可译码。
7.非即时码和即时码:
若是接收端收到一个完整的码字后,不能当即译码,还要等下一个码字开始接收后才能判定是不是能够译码,如此的码叫做非即时码。
若是收到一个完整的码字以后,就能够够当即译码,那么叫做即时码。
即时码要求任何一个码字都不是其他码字的前缀部份,也叫做异前缀码。
⏹码树:
即时码的一种简单构造方式是树图法。
对给定码字的全部集合C={W1,W2,…Wq}来讲,能够用码树来描述它。
所谓树,确实是既有根、枝,又有节点,如图(80业)所示,图中,最上端A为根节点,A、B、
C、D、E皆为节点,E为终端节点。
A、B、C、D为中间节点,中间节点不安排码字,而只在终端节点安排码字,每一个终端节点所对应的码字确实是从根节点动身到终端节点走过的途径上所对应的符号组成,如图中的终端节点E,走过的途径为ABCDE,所对应的码符号别离为0、0、0、1,那么E对应的码字为0001。
能够看出,按树图法组成的码必然知足即时码的概念(一一对应,非前缀码)。
从码树上能够得知,当第i阶的节点作为终端节点,且分派码字,那么码字的码长为i。
任一即时码都能够用树图法来表示。
当码字长度给定后,用树图法安排的即时码不是唯一的。
如图中,若是把左树枝安排为1,右树枝安排为0,那么取得不同的结果。
对一个给定的码,画出其对应的树,若是有中间节点安排了码字,那么该码必然不是即时码。
每一个节点上都有r个分支的树称为满树,不然为非满树。
即时码的码树图还能够用来译码。
当收到一串码符号序列后,第一从根节点动身,依照接收到的第一个码符号来选择应走的第一条途径,再依照收到的第二个符号来选择应走的第二条途径,直到走到终端节点为止,就能够够依照终端节点,当即判定出所接收的码字。
然后从树根继续下一个码字的判定。
如此,就能够够将接收到的一串码符号序列译成对应的信源符号序列。
⏹克拉夫特(Kraft)不等式
定理关于码符号为X={x1,x2,…xr}的任意唯一可译码,其码字为W1,W2,…Wq,所对应的码长为l1,l2…lq,那么必然知足克拉夫特不等式
反之,假设码长知足上面的不等式,那么必然存在具有如此码长的即时码。
注意:
克拉夫特不等式只是说明唯一可译码是不是存在,并非能作为唯一可译码的判据(能够排除,不能确信)。
如{0,10,010,111}知足克拉夫特不等式,但却不是唯一可译码。
例题:
设二进制码树中X={x1,x2,x3,x4},对应的l1=1,l2=2,l3=2,l4=3,由上述定理,可得
因此不存在知足这种码长的唯一可译码。
能够用树码进行检查。
⏹唯一可译码的判定法(变长):
将码C中所有可能的尾随后缀组成一个集合F,当且仅当集合F中没有包括任一码字,那么可判定此码C为唯一可译码。
集合F的组成方式:
第一,观看码C中最短的码字是不是是其它码字的前缀,假设是,将其所有可能的尾随后缀排列出。
而这些尾随后缀又有可能是某些码字的前缀,再将这些尾随后缀产生的新的尾随后缀列出,
然后再观看这些新的尾随后缀是不是是某些码字的前缀,再将产生的尾随后缀列出,依此下去,直到没有一个尾随后缀是码字的前缀为止。
如此,第一取得了由最短的码字能引发的所有尾随后缀,接着,依照上述步骤将次短码字、…等等所有码字可能产生的尾随后缀全数列出。
由此取得由码C的所有可能的尾随后缀的集合F。
设码C={0,10,1100,1110,1011,1101},依照上述测试方式,判定是不是是唯一可译码。
解:
1.先看最短的码字:
“0”,它不是其他码字前缀,因此没有尾随后缀。
2.再观看码字“10”,它是码字“1011”的前缀,因此有尾随后缀。
因此,集合F={11,00,10,01},其中“10”为码字,故码C不是唯一可译码。
定长编码定理
前面已经说过,所谓信源编码,确实是将信源符号序列变换成另一个序列(码字)。
设信源输出符号序列长度为L,码字的长度为KL,编码的目的,确实是若是信源的信息率最小,也确实是说,要用最少的符号来代表信源。
在定长编码中,对每一个信源序列,KL都是定值,设等于K,咱们的目的是寻觅最小K值。
要实现无失真的信源编码,要求信源符号Xi(i=1,2,…q)与码字是一一对应的,并求由码字组成的符号序列的逆变换也是唯一的(唯一可译码)。
定长编码定理:
由L个符号组成的、每一个符号熵为HL(X)的无经历平稳信源符号序列X1X2X3…XL用KL个符号Y1Y2…YKL(每一个符号有m种可能值)进行定长变码。
对任意
,只要
那么当L足够大时,必可使译码过失小于
;
反之,当
时,译码过失必然是有限值,当L足够大时,译码几乎必然犯错。
式中,左侧是输出码字每符号所能载荷的最大信息量
因此等长编码定理告知咱们,只要码字传输的信息量大于信源序列携带的信息量,总能够实现几乎无失真的编码。
条件时所取得符号数L足够大。
设过失概率为
,信源序列的自方差为
那么有:
当
和
均为定值时,只要L足够大,
能够小于任一整数
,即
现在要求:
只要
足够小,就能够够几乎无过失地译码,固然代价是L变得更大。
令
为码字最大平均符号信息量。
概念编码效率为:
最正确编码效率为
无失真信源编码定理从理论上说明了编码效率接近于1的理想编码器的存在性,它使输出符号的信息率与信源熵之比接近于1,但要在实际中实现,那么要求信源符号序列的L超级大进行统一编码才行,这往往是不现实的。
例如:
设离散无经历信源概率空间为
信源熵为
自信息方差为
对信源符号采纳定长二元编码,要求编码效率
,无经历信源有
,因此
能够取得
若是要求译码错误概率
,那么
由此可见,在对编码效率和译码错误概率的要求不是十分苛刻的情形下,就需要
个信源符号一路进行编码,这对存储和处置技术的要求太高,目前还无法实现。
若是用3比特来对上述信源的8个符号进行定长二元编码,L=1,现在可实现译码无过失,但编码效率只有3=85%。
因此,一样说来,当L有限时,高传输效率的定长码往往要引入必然的失真和译码错误。
解决的方法是能够采纳变长编码。
最正确编码
最正确码:
关于某一信源和某一码符号集来讲,假设有一唯一可译码,其平均码长
小于所有其他唯一可译码的平均长度。
为此必需将概率大的信息符号编以短的码字,概率小的符号编以长的码字,使得平均码字长度最短。
能取得最正确码的编码方式:
香农(Shannon)
费诺(Fano)
哈夫曼(Huffman)
一、香农编码方式
香农第必然理指出了平均码长与信源之间的关系,同时也指出了能够通过编码使平均码长达到极限值,这是一个很重要的极限定理。
香农第必然理指出,选择每一个码字的长度Ki知足下式:
Ki=[
]——取整
即:
-log2pi≤Ki≤1-log2pi
就能够够取得这种码。
这种编码方式称为香农编码。
例:
设无经历信源的概率空间为:
计算各符号的码字长度:
K1=log2=1
K2=log4=2
K3=K4=log8=3
用图示码树,可得各自的码字:
u1:
(0),u2:
(10),u3:
(110),u4:
(111)
信息熵H(U):
信源符号的平均码长:
编码效率
关于这种信源,香农编码是最正确编码。
码树达到满树。
●香农编码法多余度稍大,有效性不大,但有重要的理论意义。
编码方式如下:
⑴将信源消息符号按其显现的概率大小依次排列
p(u1)≥p(u2)≥…≥p(un)
⑵确信码长Ki(整数):
⑶为了编成唯一可译码,计算第i个消息的累加概率
⑷将累加概率Pi变换成二进制数。
⑸取pi二进制数的小数点后Ki位即为该消息符号的二进制数。
信源符号ui
符号概率p(ui)
累加概率Pi
-logp(ui)
码字长度Ki
码字
u1
2
00
u2
01
u3
3
101
u4
5
11100
u5
11101
以i=3为例,计算各符号的码字长度:
K3=[-]=3
累加概率P4=——…——101
由图,这些码字没有占满所有树叶,因此是非最正确码。
平均码长:
编码效率:
为了提高编码效率,第一应达到满树;
例如把u4u5换成A、B这些前面的节点,就可减小平均码长。
因此不该先规定码长,而是由码树来规定码字,可得更好的结果。
二、费诺编码方式
费诺编码属于概率匹配编码,但它不是最正确的编码方式。
编码进程如下:
⑴将信源符号接概率值分为两大组,使两个组的概率之和近于相同,并对各组给予一个二进制码元“0”和“1”。
⑵将每一大组的信源符号进一步再分成两组,使划分后的两个组的概率之和近于相同,并又给予两个组一个二进制符号“0”和“1”。
⑶如此重复,直至每一个组只剩下一个信源符号为止。
信源符号所对应的码字即为费诺码。
信源符号
ui
符号概率
p(ui)
第1次
分组
第2次
第3次
码长
u1
u4
1
010
u5
011
u2
10
u3
11
该费诺码的平均码长
显然,费诺码比香农码的平均码长小,编码效率高。
其实如此编码的效率还不是最高的,现用另一种分割方式:
第4次
110
1110
4
1111
可见编码效率又有所提高。
事实上这已是最正确编码,确实是说编码效率已不能再提高。
但如此试探访觅分割方式总不是方法,因此赫夫曼提出一种编码方式,并证明这种编码在块码中已是最正确的。
3、哈夫曼编码方式
哈夫曼编码也是用码树来分派各符号的码字。
费诺码是从树根开始,把各节点分给某子集;
假设子集已是单点集,它确实是一片叶而作为码字。
而赫夫曼编码是先给每一符号一片树叶,慢慢归并成节点直到树根。
哈夫曼编码的步骤如下:
p(u1)≥p(u2)≥…≥p(un)
⑵取两个概率最小的字母别离配以0和1两码元,并将这两个概率相加作为一个新字母的概率,与未分派的二进符号的字母从头排队。
⑶对重排后的两个概率最小符号重复步骤⑵的进程。
⑷不断继续上述进程,直到最后两个符号配以0和1为止。
⑸从最后一级开始,向前返回取得各个信源符号所对应的码元序列,即相应的码字。
例:
给定离散信源如下:
平均码长:
编码效率
哈夫曼编码方式取得的码并非是唯一的。
非唯一的缘故:
·
每次对信源缩减时,给予信源最后两个概率最小的符号,用0和1是能够任意意的,因此能够取得不同的哈夫曼码,但可不能阻碍码字的长度。
对信源进行缩减时两个概率最小的符号归并后的概率与其它信源符号的概率相同时,这二者在缩减信源中进行概率排序,其位置放置顺序是能够任意的,故会取得不同的哈夫曼码。
现在将阻碍码字的长度,一样将归并的概率放在上面,如此可取得较小的码方差。
给定离散信源如下:
有两种哈夫曼编码方式如以下图所示:
因为这两种码有相同的平均码长,因此有相同的编码效率,但每一个信源符号的码长却不相同。
在这两种不同的码中,选择哪个码好呢?
咱们引进码字任度Ki偏离平均码长K的方差σ2,即
别离计算上例中两种码的方差
可见,第一种编码方式的方差要小许多。
因此,关于有限长的不同信源序列,用第一种方式所编得的码序列长度转变较小。
因此相对来讲选择第一种编码方式要更好些。
由此得出,在哈夫曼编码进程中,当缩减信源的概率散布从头排列时,应使归并得来的概率和尽可能处于是高的位置。
如此可使归并的元素重复编码次数减少,使短码取得充分利用
从以上实例中能够看出,哈夫曼码具有以下三个特点:
⑴哈夫曼码的编码方式保证了概率大的符号对应于短码,概率小的符号对应于长码,即pi>pj有Ki<Kj,充分利用了短码。
⑵缩减信源的最后二个码字老是最后一名码元不同,前面列位码元相同(二元编码情形),从而保证了哈夫曼是即时码。
⑶每次缩减信源的最长两个码字有相同的码长。
这三个特点保证了所得的哈夫曼码必然是最正确码。
第五章信源编码(第十一讲)
(1)限失真信源编码定理
(2)经常使用信源编码方式简介(游程编码、矢量量化编码、算术编码)
经常使用信源编码方式简介。
限失真信源编码定理、限失真信源编码定理。
专门提示:
运用
灵活运用。
课外仍以学生温习。
限失真信源编码定理
定理(限失真信源编码定理)设R(D)为离散无经历信源X的信息率失真函数,R为信息传输率,那么当信息率R>
R(D),只要信源序列长度L足够长,必然存在一种编码方式,其译码失真小于或等于D+ε,ε为任意小的正数;
反之,假设R<
R(D),那么不管采纳什么样的编码方式,其译码失真必大于D。
若是是二元信源,关于任意小的ε>
0,每一个信源符号的平均码长知足如下公式:
该定理指出,在失真限度内使信息率任意接近R(D)的编码方式存在,但是,假设信息率小于R(D),平均失真必然会超过失真限度D。
关于持续平稳无经历信源,尽管无法进行无失真编码,但在限失真情形下,有与该定理一样的编码定理。
该定理只说明最正确编码是存在的,但关于如何进行编码却一无所知,因此就不能像无损编码那样从证明进程中引出概率匹配的编码方式,一样只能从优化的思路去求最正确编码。
那个定理证明了许诺失真D确信后,总存在一种编码方式,使信息传输率R大于R(D)且可任意接近R(D),而平均失真小于许诺失真D。
R(D),那么该编码的平均失真将大于D。
若是用二进制符号进行编码的话,在许诺必然失真D的情形下,平均每一个信源符号所需的二元码符号的下限值确实是
R(D)。
由此可见,信息率失真函数R(D)确实是在许诺失真度为D的情形下信源信息紧缩的下限值。
当信源给定后,无失真信源紧缩的极限值是信源熵H(U);
有失真信源紧缩的极限值是信息率失真函数R(D)。
在给定某D后,一样R(D)<
H(U)。
一样,该定理只是一个存在定理。
至于如何寻觅最正确紧缩编码方式,定理中并无给出。
在实际应用中,该定理要紧存在以下两大类问题。
第一类问题是,符合实际信源的R(D)函数的计算相当困难。
第一,需要对实际信源的统计特性有确切的数学描述。
第二,需要对符合主客观实际的失真给予正确的气宇,不然不能求得符合主客观实际的R(D)函数。
例如,通常采纳均方误差来表示信源的平均失真度。
但关于图像信源来讲,均方误差较小的编码方式,人们视觉感到失真较大。
因此,人们仍采纳主观观看来评判编码方式的好坏。
因此,如何概念符合主客观实际情形的失真测度确实是件较困难的事。
第三,即便对实际信源有了确切的数学描述,又有符合主客观实际情形的失真测度,而信息率失真函数R(D)的计算仍是比较困难的。
第二类问题是,即便求得了符合实际的信息率失真函数,还需研究采纳何种有效的最正确编码方式才能达到R(D)。
目前,这两方面工作都有进展。
尤其是对实际信源的各类紧缩方式,如对语音信号、电视信号和遥感图像等信源的各类紧缩方式有了较大进展。
相信随着数据紧缩技术的进展,限失真编码理论中存在的问题将会取得解决。
限失真信源编码经常使用信源编码方式
一、游程编码
游程:
指数字序列中持续显现相同符号的一段。
二元序列只有两种符号:
“0”和“1”:
连“0”段称为“0”游程,游程长度为L(0)
连“1”段称为“1”游程,游程长度为L
(1)
由于是二进制序列,“0”游程和“1”游程老是交替显现。
假设规定二元序列老是从“0”开始,第一个游程是“0”游程,那么第二个游程必为“1”游程,第三个又是“0”游程……关于随机序列,游程的长度是随机的,其取值为1,2,3…自至无穷。
游程序列:
用交替显现的“0”游程和“1”游程的长度,来表示任意二元序列。
例如二元序列
000l…
可变换成如下游程序列
…
己规定游程序列从“0”开始,由上述游程序列,很容易恢复出原先的二元序列。
游程序列已是多元序列,各长度就可按哈夫曼编码或其它方式处置以达到紧缩码率的目的。
这种从二元序列转换成多元序列的方式,在实现时比以前的并元法简单;
因为游程长度的计数比较容易,取得游程长度后就可从码表中找出码字输出,同时去数下一个游程长度。
另外,在减弱原有序列的符号间的相关性方面采纳游程变换一样也比并元法更有效。
固然,要对二元序列进行哈夫曼编码时应先测定“0”游程长度和“1”游程长度的概率散布,或由二元序列的概率特性去计算各类游程长度的概率。
设二元序列为独立序列,“0”和“1”的概率别离为p0和p1,那么“0”游程长度L(0)的概率为
式中L(0)=1,2,…,游程长度至少是1。
从理论上来讲,游程长度能够是无穷,但很长的游程实际显现的概率超级小。
则“1”游程长度L
(1)的概率为
“0”游程长度的熵:
“0”游程序列的平均游程长度
同理,“1”游程长度的熵和平均游程长度:
变换后的游程序列是独立序列
游程变换后符号熵没有变。
因为游程变换是一一对应的可逆变换。
因此变换后熵值不变。
由于游程变换有较好的去相关成效,因此对游程序列进行哈夫曼编码,可取得较高的编码效率。
假设“0”游程长度的哈夫曼编码效率为η0,“1”游程长度的哈夫曼编码效率为η1,由编码效率的概念得二元序列的编码效率
假设η0>η1,那么有η0>η>η1
当“0”游程和“1”游程的编码效率都很高时,采纳游程编码的效率也很高,至少可不能低于较小的那个效率。
要想编码效率η尽可能高,应使上式的分母尽可能小,这就要求尽可能提高熵值较大的游程的编码效率,因为它在往分母中占的比重较大。
理论上来讲游程长度可从1到无穷。
要成立游程长度和码字之间的一一对应的码表是困难的。
一样情形下,游程越长,显现的概率就越小;
当游程长度趋向于无穷时,显现的概率也趋向于0。
按哈夫曼码的编码规那么,概率越小码字越长,但小概率的码字对平均码长阻碍较小,在实际应历时常对长码采纳截断处置的方式
取一个适当的n值,游程长度为1,2,…,2n-1,2n,所有大于2n者都按2n来处置。
然后依照哈夫曼码的编码规那么,将上列2n种概率从大到小排队,组成码树并取得相应的码字。
二、矢量量化编码
要想取得性能好的编码,仅采纳标量量化是不可能的。
在最正确编码中,如将离散信源的多个符号进行联合编码可提高效率,这对持续信源也是如此。
当把多个信源符号联合起来形成多维矢量,再对矢量进行标量量化时,自由度将更大,一样的失真下,量化级数可进一步减少,码率可进一步紧缩。
这种量化叫做矢量量化。
实验证明,即便各信源符号彼此独立,多维量化通常也可紧缩信息率。
因此矢量量化引发人们的爱好而成为当前持续信源编码的一个热点。
可是当维数较大时,矢量量化尚无解析方式,只能求助于数值计算;
而且联合概率密度也不易测定,还需采纳诸如训练序列的方式。
一样来讲,高维矢量的联合是很复杂的,虽已有很多方式,但其实现尚有很多困难,有待进一步研究。
设矢量量化器输入集为X={X1,X2,…,XN},Xj∈X,Xj=(xj1,xj2,…,xjk),X∈Rk(k维欧几里德空间),把Rk划分成J=2n个互不相交的子空间R1,R2,…,RJ,求出每一个子空间的质心Yi,所有的Yi组成Y={Y1,Y2,…,YJ},Y为量化器的输出空间,也叫码书(或码本),Yi叫码字或码矢,J叫码书的长度。
对J阶K维的矢量量化,实质上是判定输入Xj∈Rk属于哪个子空间Ri,然后输出该子空间代表码字Yi,即:
Yi=Q(Xj),1≤i≤J,1≤j≤N(4―42)
那个地址Yi确实是Xj的编码。
实际编码时,在发送端只需记录代表码字Yi的下标i,因此编码进程是把X映射到I={1,2