信息论与编码-第五章(续2)详解.ppt
文本预览下载声明
信息论与编码-限失真信源编码 通过关于信元符号序列的累计分布函数计算,F(s)可以把区间[0,1)分割成许多小区间,不同的信元符号序列对应于不同的区间为[F(s),F(s)+p(s))。可取小区间内的一点来代表这序列。如何选择这个点? 将符号序列的累计分布函数写成二进制小数,取小数点后l位,若后面有尾数,则进位到第l位,这样得到的一个数C,并使l满足: 信息论与编码-限失真信源编码 设 , 取0或者1,得符号s的码字为 。 这样选取的数值C,根据二进制小数截去位数的影响,得 当F(s)在l位以后没有尾数时,C=F(s)。另外,由 可知, ,则信源符号序列 信息论与编码-限失真信源编码 S对应区间的上界 可见,数值C在区间[F(s),F(s)+p(s))内。不同的信源序列对应的不同区间(左封右开的区间)式不重叠的,所以编得的码是即时码。符号序列s的平均码长满足: 信息论与编码-限失真信源编码 平均每个信源符号的码长为 对无记忆信源,有 因此有 信息论与编码-限失真信源编码 可以看出,算术编码的编码效率是比较高的。当信源符号序列很长时,n很大,平均码长接近于信源的符号熵。 例题:设二元无记忆信源s={0,1},其p(0)=1/4,p(1)=3/4。对二元序列s算术编码。 解: 信息论与编码-限失真信源编码 于是 过程是这样的:先来一个1,F(s)=p(0),又来一个1,F(s1)=F(s)+p(s)F(1)=p(0)+p(1)p(0)=p(0)+p(10),… 转换成二进制小数为: F(s)=0.110100100111 信息论与编码-限失真信源编码 得C=0.1101010,s的码字为1101010。 编码效率为 译码就是一系列的比较过程。每一步比较C-F(s)与p(s)p(0)。s为前面已译出的序列串,得p(s) 为序列串s对应的宽度,F(s)是序列串s的累计分布函数,即为s对应区间的下界。p(s)p(0)是此区间内下一个输入为符号“0”所占的字区间宽度。所 信息论与编码-限失真信源编码 以,得 以上一个例题为例,C=0.1101010,p(0)=0.01,起始时,F(s)=0,p(s)=1。 第一步:C-F(s)p(s)p(0),译出一个“1”; 第二步:此时,F(s)=p(0)=0.01,p(s)=p(1)=0.11, C-F(s)=0.1001010,p(s)p(0)=0.0011,又 译出一个“1”; 信息论与编码-限失真信源编码 第三步:此时,F(s)=p(0)+p(10)=0.01+0.0011=0.0111,p(s)=0.1001,p(s)p(0)=0.001001,C-F(s)=0.011001,又译出一个“1”; 第四步:此时,F(s)=0.0111+p(110)=0.10011,p(s)=0.011011,p(s)p(0)=0 C-F(s)=0.001111,又译出一个“1”; 第五步:此时,F(s)=0.10011+p(1110)=0p(s)=0p(s)p(0)=0.0001010001, 信息论与编码-限失真信源编码 C-F(s)=0又译出一个“1”; 第六步:此时,F(s)=0p(111110)=0.110000100011, p(s)=0.0011110011,p(s)p(0)=0.000011110011, C-F(s)=0.000100011101,又译出一个“1”; 第七步:此时,F(s)=0.110000100011+p(1111110)=0.11010001011, p(s)=0.001011011001,p(s)p(0)=0.00001011011001, 信息论与编码-限失真信源编码 C-F(s)=0.00000010101,译出一个“0”; 第八步:此时,F(s)=0.11010001011,p(s)=0.00001011011001,p(s)p(0)=0.0000001011011001, C-F(s)=0.00000010101,又译出一个“0”; 第九步:此时,F(s)=0.11010001011,p(s)=0.0000001011011001, p(s)p(0)=0.000000001011011001, 此时子区间的宽度已经小于C的最高分辨率,所 信息论与编码-限失真信源编码
显示全部