算术编码实验报告信息论与编码实验报告 本文关键词:编码,信息论,实验,报告,算术
算术编码实验报告信息论与编码实验报告 本文简介:华侨大学工学院实验报告课程名称:信息论与编码实验项目名称:算术编码学院:工学院专业班级:11级信息工程姓名:学号:1195111016指导教师:傅玉青2013年11月25日预习报告一、实验目的(1)进一步熟悉算术编码算法(2)掌握MATLAB语言程序设计和调试过程中数值的进制转换、数值与字符串之间的
算术编码实验报告信息论与编码实验报告 本文内容:
华侨大学工学院
实验报告
课程名称:
信息论与编码
实验项目名称:
算术编码
学
院:
工学院
专业班级:
11级信息工程
姓
名:
学
号:
1195111016
指导教师:
傅玉青
2013年
11月
25日
预
习
报
告
一、
实验目的
(1)进一步熟悉算术编码算法
(2)掌握MATLAB语言程序设计和调试过程中数值的进制转换、数值与字符串之间的转换等技术。
二、
实验仪器
(1)计算机
(2)编程软件MATLAB
三、
实验原理
算术编码是图像压缩的主要算法之一。
是一种无损数据压缩方法,也是一种熵编码的方法。和其它熵编码方法不同的地方在于,其他的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码,而算术编码是直接把整个输入的消息编码为一个数,一个满足(0.0
≤
n
<
1.0)的小数n。
当所有的符号都编码完毕,最终得到的结果区间即唯一的确定了已编码的符号串行。任何人使用该区间和使用的模型参数即可以解码重建得到该符号串行。
实际上我们并不需要传输最后的结果区间,实际上,我们只需要传输该区间中的一个小数即可。在实用中,只要传输足够的该小数足够的位数(不论几进制),以保证以这些位数开头的所有小数都位于结果区间就可以了。
预
习
报
告
四、实验内容及步骤
(1)计算信源符号的个数n
(2)将第i(i=1~n)个信源符号变换成二进制数
(3)计算i(i=1~n)个信源符号的累加概率Pi为
(4)预先设定两个存储器,起始时令,表示空集
(5)按以下公式迭代求解C和A
对于二进制符号组成的序列,r=0,1。
注意事项:计算C(S,r)时的加法运用的是二进制加法
(6)计算序列S编码后的码长度L为
(7)如果C在第L位后没有尾数,则C的小数点后L位即为序列S的算术编码;如果C在第L位后有尾数,则取C的小数点后L位,再进位到第L位,即为序列S的算术编码。
实
验
报
告
五、
实验原始数据
实验程序:
clc
clear;
p=input(
输入信源分布p=
);
S=input(
输入待编码的序列S=
);
[x,y]=size(p);
n=y;
n
;输出信源符号个数n
for
i=1:n
z=p(i);
for
L=1:2
temp=z.*2;
if(temp<1)
s(L)=0;
z=temp;
else
z=temp-1;
s(L)=1;
end
end
%
将信源符号概率转化为二进制
disp(
二进制数
),disp(s);
s=0;
end
P(1:n)=0;
for
t=1:n-1
P(t+1)=p(t)+P(t);
end
disp(
累加概率
),disp(P);
%计算累加概率并输出
x=length(S);
A=1;C=0;
for
k=1:1:x
C=C+A*P(1,S(1,k)+1);
A=A*p(1,S(1,k)+1);
end
L=ceil(abs(log2(1/A)));
%编码后码长
q=quantizer([3*x,3*x-1]);
c=num2bin(q,C);
%将累积分布概率转化为二进制
c_B=c(2:L+1);
%取小数点后长度为L的码字
%判断L位以后是否有尾数,若有尾数就进位到第L位
c_D=bin2dec(c_B);
%转换成十进制
c2=c(L+2:3*x)
;
%取C的L+1后几位
c2_D=bin2dec(c2);
%将后几位转换成十进制
if
c2_D~=0
%C后有位数进1
c_D=c_D+1;
mc_B=dec2bin(c_D,L);
%转换成十进制
else
%C后没有位数则保持不变
mc_B=c_B;
end
disp(
编码后的码字为
),disp(mc_B);
%输出编码后的码字
图1
运行结果
指导老师签名:
时
间:
实
验
报
告
六、
数据处理
表1
算术编码结果
信源消息符号
A(s)
C(s)
空
1
0
s1
0.11
0.1
s2
0.1001
0.1
s3
0.011011
0.11
s4
0.01010001
0.11
s5
0.0011110011
0.111
s6
0.001011011001
0.111
s7
0.00001011011001
0.11011
s8
0.000001011011001
0.1101010
实
验
报
告
七、
实验结论及分析讨论
通过这次实验,加深了我对算术编码的理解,尤其是算术编码定理及其对信源进行编码的具体过程。
算术编码用到两个基本的参数:符号的概率和它的编码间隔。信源符号的概率决定压缩编码的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在0到1之间。对信源进行算数编码需要两个过程,第一个过程立信源概率表,第二个过程信源发出的符号序列进行扫描编码。
预习报告成绩
实验报告成绩
实验操作成绩
总成绩