实验一 信息熵与图像熵计算(4)

2019-09-02 19:03

)));

c(n-i,n)='1';

c( n-i,n+1:2*n-1)=c(n-i,1:n-1); c(n-i,2*n)='0'; for j=1:i-1

c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(a(n-i+1,:)==j+1)-1)+1:n*find(a(n-i+1,:)==j+1)); end end

fori=1:n

h(i,1:n)=c(1,n*(find(a(1,:)==i)-1)+1:find(a(1,:)==i)*n); ll(i)=length(find(abs(h(i,:))~=32)); end

Code_length=0; fori=1:n

Code_length=Code_length+p(1,i)*ll(i); End

Efficiency=H/(Code_length); fprintf('\\n 哈夫曼编码:\\n'); disp(h)

fprintf('\\n 平均码长:\\n'); disp(Code_length)

fprintf('\\n 哈夫曼编码效率:\\n'); disp(Efficiency) 14

实验五 算术编码(2学时)

一、实验目的

1.掌握算数编码原理;

2.学习算术编码基本流程 ,学会调试算术编码程序 ; 3.根据给出资料,自学适应 0阶算术编码 方法。 二、实验内容

1. 利用 MATLAB MATLABMATLABMATLABMATLAB编写程序实现算数码; 编写程序实现算数码;

2.对文件符号进行概率统计,生成编码表; 3.对文件进行压缩编码;

3.(选做)对文件进行解压缩,比较原始数据和后的之间是否有损 (选做)对文件进行解压缩,比较原始数据和后的之间是否有损 (选做)对文件进行解压缩,比较原始数据和后的之间是否有损 (选做)对文件进行解压缩,比较原始数据和后的之间是否有损 耗。 三实验仪器、设备

1.计算机-系统最低配置 256M 内存、 P4 CPUP4 CPU P4 CPUP4 CPU; 2.MATLAB MATLABMATLABMATLABMATLAB编程软件。 四、实验原理

算术编码的编码对象是一则消息或一个字符序列,其编码思路是将该消息或字符序列表示成0和1之间的一个间隔(Interval)上的一个浮点小数。在进行算术编码之前,需要对字符序列中每个字符的出现概率进行统计,根据各字符出现概率的大小,将每个字符映射到[0,1]区间上的某个子区间中。然后,再利用递归算法,将整个字符序列映射到[0,1]区间上的某个Interval中。在进行编码时,只需从该Interval中任选一个小数,将其转化为二进制数。

符号序列越长,编码表示它的Interval的间隔就越小,表示这一间隔所需的二进制位数就越多,编码输出的码字就越长。 五、实验步骤

项目文件建立步骤同实验二,下面列出对给定序的算术编码:

1.编码器在开始时将“当前间隔”[L ,H) 设置为 设置为 [0 ,1) ; 2.对每一事件,编码器按步骤( a)和( b)进行处理 ; (a)编码器将“当前间隔”分为子,每一个事件;

(b)一个子间隔的大小与下将出现事件概率成比例,编码器选择 子间 隔对应于下一个确切发生的事件相,并使它成为新“当前子间 隔对应于下一个确切发生的事件相,并使它成为新“当前子间 隔对应于下一个确切发生的事件相,并使它成为新“当前隔”。 隔”。

3.最后输出的“当前间隔”下边界就是该给定事件序列算术编码。 六、实验报告要求

1.按照本节内容后实验报告形式书写; 15

2.算术编码学习心得,特别是根据自适应模型 算术编码学习心得,特别是根据自适应模型 0阶编码,调整概率分布方法。 阶编码,调整概率分布方法。 根据自己实验情况,写出的做中遇到具体问题对本提建 根据自己实验情况,写出的做中遇到具体问题对本提建 根据自己实验情况,写出的做中遇到具体问题对本提建 议。 七、实验注意事项

1. 编码概论累加分布;

2. 编码区间上限和下迭代算法; 3. 自适应模型 0阶的编码原理。

八、思考题

算术编码的优缺点? 附录 1:实验报告样式: 实验报告

班级:姓名:学号:组别:同组人: 课程名称:实验室:实验时间:

(使用实验报告纸的,以上内容可按照实验报告纸格式填写) 实验五算术编码 一、实验目的:

二、实验内容与原理:

三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 五、程序流程图:

六、实验数据及结果分析: 七、实验结论: 八、思考题:

九、编程、调试过程中遇到的问题及解决方法:

十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录二:算术编码程序

disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%start%%%%%%%%%%%%%%%%%%%%%%%') disp('程序限定字符为:a b c d e'); str=input('请输入编码的字符串:'); [j,k]=size(str);

l=0; r=1; d=1;

p=[0.2 0.3 0.1 0.15 0.25]; pa=0.2; pb=0.3; 16

pc=0.1; pd=0.15; pe=0.25;

n=length(str); disp('a b c d e') disp(num2str(p)) fori=1:k ifi==1

switchstr(i) case 'a' m=1; a1=0; a2=pa; case 'b' m=2; a1=pa; a2=pa+pb; case 'c' m=3;

a1=pa+pb; a2=pa+pb+pc; case 'd' m=4;

a1=pa+pb+pc; a2=pa+pb+pc+pd; case 'e' m=5;

a1=pa+pb+pc+pd; a2=pa+pb+pc+pd+pe; end

l=a2-a1; end

if (i>=2)&(i<=k) switchstr(i) case 'a' aa=a1;

ab=a1+l*pa;

a1=aa;a2=ab; case 'b' aa=a1+l*pa;

ab=a1+l*(pa+pb); a1=aa; a2=ab; case 'c' 17

aa=a1+l*(pa+pb); ab=a1+l*(pa+pb+pc); a1=aa; a2=ab; case 'd'

aa=a1+l*(pa+pb+pc); ab=a1+l*(pa+pb+pc+pd); a1=aa; a2=ab; case 'e'

aa=a1+l*(pa+pb+pc+pd);

ab=a1+l*(pa+pb+pc+pc+pd+pe); a1=aa; a2=ab; end

l=a2-a1; end

strl=strcat('input',int2str(i),' 编码区间起始值为:'); disp(strl); disp(a1)

strl=strcat('input',int2str(i),' 编码区间的终止值为:'); disp(strl); disp(a2)

strl=strcat('input',int2str(i),' 本程序选择区间中点作为编码是:'); disp(strl);

disp((a1+a2)/2) end

disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%code_finish%%%%%%%%%%%%%%%%%') disp('是否要译码,请选择') disp('1、译码') disp('2、不译码?')

disp('说明:输入相应的数字进行选择')

disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%choice%%%%%%%%%%%%%%%%%%%%%%') YN=input('您选择的是:'); if YN==1

bm=(a1+a2)/2;


实验一 信息熵与图像熵计算(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:视频会商系统试运行工作报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: