第一篇:多媒体课程设计报告
广州大学机械与电气工程学院
课程设计报告
设计题目: 采用matlab实现霍夫曼编码仿真
专业班级: 电信112
姓 名:
学 号:
指导老师: 高星辉 李丽
完成日期: 2014年7月
一、实现功能
哈夫曼编码是一种无损压缩编码,它不会造成信息损失,解压缩时能够从压缩数据精确地恢复原始图像。jpg彩色图像,有RGB三个分量,所以其输出有三个分量解码输出的图像。
二、各个控件功能及代码
系统设计的完整主程序如下
%%%%%%%%%%%%%%%%%%%%%%%%%主程序%%%%%%%%%%%%%%%%%%%%%%%%%%% clc clear cd;X=imread('2014.jpg');data=uint8(X);[zipped,info]=huffencode(data);unzipped=huffdecode(zipped,info);subplot(121);imshow(data);title('原始图像')subplot(122);imshow(unzipped);title('解码后的图像')whos data unzipped zipped fprintf('pad=%dn',info.pad);%info.pad=为凑整字节数,编码字符串最后添加零的位数
fprintf('ratio=%fn',info.ratio);%info.ratio=压缩率
fprintf('maxcodelen=%dn',info.maxcodelen);%info.maxcodelen=最大码长
%%%%%%%%%%%%%%%%%%%%%%%%%%编码函数%%%%%%%%%%%%%%%%%%%%%%%%%% %huffencode函数对输入矩阵vector进行huffman编码,返回编码后的向量及相关信息
function [zipped,info]= huffencode(vector)if ~isa(vector,'uint8')eror('input argument must be a uint8 vector');end [m,n]=size(vector);vector=vector(:)';
f=frequency(vector);symbols=find(f~=0);f=f(symbols);[f,sortindex]=sort(f);symbols=symbols(sortindex);len=length(symbols);symbols_index=num2cell(1:len);codeword_tmp=cell(len,1);while length(f)>1 index1=symbols_index{1};index2=symbols_index{2};codeword_tmp(index1)=addnode(codeword_tmp(index1),uint8(0));codeword_tmp(index2)=addnode(codeword_tmp(index2),uint8(1));f=[sum(f(1:2))f(3:end)];symbols_index=[{[index1,index2]} symbols_index(3:end)];[f,sortindex]=sort(f);symbols_index=symbols_index(sortindex);end codeword=cell(256,1);codeword(symbols)=codeword_tmp;len=0;for index=1:length(vector)len=len+length(codeword{double(vector(index))+1});end string=repmat(uint8(0),1,len);pointer=1;for index=1:length(vector)code=codeword{double(vector(index))+1};len=length(code);string(pointer+(0:len-1))=code;
pointer=pointer+len;end len=length(string);pad=8-mod(len,8);if pad>0 string=[string uint8(zeros(1,pad))];end codeword=codeword(symbols);codelen=zeros(size(codeword));weights=2.^(0:23);maxcodelen=0;for index=1:length(codeword)len=length(codeword{index});if len>maxcodelen maxcodelen=len;end if len>0 code=sum(weights(codeword{index}==1));code=bitset(code,len+1);codeword{index}=code;codelen(index)=len;end end codeword=[codeword{:}];%计算压缩后的向量
cols=length(string)/8;string=reshape(string,8,cols);weights=2.^(0:7);zipped=uint8(weights*double(string));
%码表存储到一个稀疏矩阵 huffcodes=sparse(1,1);for index=1:nnz(codeword)huffcodes(codeword(index),1)=symbols(index);end
%填写解码时所需的结构信息 info.pad=pad;info.huffcodes=huffcodes;info.ratio=cols./length(vector);info.length=length(vector);info.maxcodelen=maxcodelen;info.rows=m;info.cols=n;%huffdecode函数对输入矩阵vector进行Huffman编码,%%%%%%%%%%%%%%%%%%%%%%%%%%解码函数%%%%%%%%%%%%%%%%%%%%%%%%% %huffdecode函数对输入矩阵vector进行huffman解码,返回解压后的图像数据 function vector=huffdecode(zipped,info)if ~isa(zipped,'uint8')error('input argument must be a uint8 vector');end
%产生0,1序列,每位占一个字节 len=length(zipped);string=repmat(uint8(0),1,len.*8);bitindex=1:8;for index=1:len
string(bitindex+8.*(index-1))=uint8(bitget(zipped(index),bitindex));end
string=logical(string(:)');len=length(string);string((len-info.pad+1):end)=[];len=length(string);
%开始解码
weights=2.^(0:51);vector=repmat(uint8(0),1,info.length);vectorindex=1;codeindex=1;code=0;for index=1:len code=bitset(code,codeindex,string(index));codeindex=codeindex+1;byte=decode(bitset(code,codeindex),info);if byte>0 vector(vectorindex)=byte-1;codeindex=1;code=0;vectorindex=vectorindex+1;end end vector=reshape(vector,info.rows,info.cols);%%%%%%%%%%%%%%%%函数frequency计算各符号出现的概率%%%%%%%%%%%%%%% function f=frequency(vector)if~isa(vector,'uint8')error('input argument must be a uint8 vector');end f=repmat(0,1,256);len=length(vector);
for index=0:255 f(index+1)=sum(vector==uint8(index));end f=f./len;%%%%%%%%%%%%%%%%%%%%%%%%%函数addnode添加节点%%%%%%%%%%%%%%%%%%% function codeword_new=addnode(codeword_old,item)codeword_new=cell(size(codeword_old));for index=1:length(codeword_old)codeword_new{index}=[item codeword_old{index}];end %%%%%%%%%%%%%%%%%%%%函数decode返回码字对应的符号%%%%%%%%%%%%% function byte=decode(code,info)byte=info.huffcodes(code);
三、运行结果
1)图像压缩、解压缩整个过程大约要花20~30 min,一开始不知道,以为死机,后来稍等会就会出结果;
(2)认真观察原始图像和新图像,比较发现:新旧的位图图像视觉效果相差不大,但是其文件大小却变小了。如2014.jpg图像2880000bytes减小到2466205bytes。压缩率为0.856321。由此可说明,哈夫曼编码是一种无损压缩编码,它不会造成信息损失,解压缩时能够从压缩数据精确地恢复原始图像。
(3)比较两幅不同大小的位图的压缩比可知,对不同的信源,哈夫曼编码的压缩比不同。
(4)jpg彩色图像,有RGB三个分量,所以其输出有三个分量解码输出的图像。
四、课程设计心得总结
通过本次设计,我进一步巩固了哈夫曼压缩编码基本原理及方法,学会了使用MATLAB编写哈夫曼编码程序,并仿真实现基于哈夫曼编码的图像编解码系统;也初步了解图像压缩编码技术的应用和开发,进一步提高编程能力;此外,我对于matlab的有关操作也更加熟悉了。
此外,在这次课程设计中开始调试程序时,解码的图像迟迟不能显示,以为MATLAB软件死机,其实是哈夫曼编码有一定的时间(一般为2-3分钟),这是由于自己的不耐心而导致了这个问题。所以我从中习得不管做什么设计、项目,耐心最重要。当未出结果的时候,我们不能一味的焦躁,而是应该冷静的分析,找出问题的所在。
总之这次设计,我受益匪浅。
第二篇:多媒体课程设计报告 authorware课程设计
甘肃政法学院计算机科学学院
多媒体课程设计
题 目
authorware课程设计
计算机科学学院计算科学与技术专业
学 号: 姓 名: 指导教师:
成 绩:____________ 完成时间:2011年 12月
目录
摘要 ············································································································································3 第1章 概述 ·······························································································································4 1.1 课程设计的目的 ···········································································································4 1.2 课程设计的意义 ··········································································································4 第二章 Authorware概要设计···································································································5 2.1 Authorware的框架分析 ·····························································································5 2.2各个框架的功能: ·······································································································5 2.3Authorware中的分支结构图 ························································································5 第三章Authorware的首页设计 ································································································6 3.1背景图的选定 ················································································································6 3.2背景图文字的选定 ········································································································6 3.3图标的建立 ···················································································································8 3.4交互的建立 ···················································································································9 第四章Authorware的分支设计 ······························································································ 10 4.1分支设计premiere ······································································································ 10 4.2分支设计 PS ··············································································································· 11 4.3分支设计 3dmax ········································································································· 15 4.4分支设计 arthorware ··································································································· 16 4.5分支设计 flash ············································································································ 19 第五章 结束语(即个人课程设计总结)··············································································· 21
摘要
随着现在计算机技术的不断完善,以及现代经济的不断发展,传统的教学课件不再满足教学的需要,越来越多的学校注重了多媒体技术的发展,制作Authorware的课件也是很重要的一部分,学校借助了它进行教学,达到事半功倍。随着学生教学压力的增加,有效地管理课件成为必然。Authorware的制作主要包括选题、设计策划、素材准备、课件制作、作品测试等。
本文分析了Authorware软件的组成情况以及一些基本功能模块,包括显示功能、交互功能等。Authorware的软硬件环境分析,Authorware的操作环境的分析,以及Authorware的数据流程分析,并且重点对Authorware的运用详细的介绍。Authorware主要利用声音、文字、还有函数进行制作,在文中进行了详细的介绍。该课件制作为学校提高了一个良好的学校环境,它界面美观,简单实用,能够基本上满足学校的需要,实现了学校课件的整体化,系统化,规范化和自动化。
关键字:Authorware课件、多媒体技术,学校
第1章 概述
1.1 课程设计的目的
随着现代经济的高速发展,学校老师对课件Authorwar的需求,学生对学校环境的要求不断增加,学校对教学质量的需求越来越高。伴随着对媒体技术的迅速发展和广泛使用,学校的课件管理转向电子化成为必然。
传统的教学课件存在很大的不足:利用课本进行教学的传递,容易导致学生对课本的不接受和厌烦,而且管理的效率低下,导致资源的可利用性低,劳动力大,实用性不广泛,加上,随着时间的递增,教学的力度不断增大,学生的学习压力也越来越大,传统的课件对信息的增加、删除、检索、查找就会存在很大的问题。因此,随着学校的发展,传统的教学课件不再适应学校的需要。
应用计算机进行教学的传递,有着其手工无法比拟的优点。例如:存储量大、修改方便、检索快速、安全性高,使用寿命长、成本低、可靠性好等。这些优点能够极大地提高人事信息管理的效率,有助于学校的发展。
1.2 课程设计的意义
教学课件Authorware的制作需要有很多方面的知识,因此设计一个实用性强的教学课件,对于我们进行课程设计方面知识的提高有很大的推动作用。
教学课件的制作需要用到多方面的知识,包括声音、文字、还有函数进行制作设计。这些对于设计者的知识水平有较高的要求。因此,如何规划、设计和开发好这个教学课件,对于提高我们的Authorware制作水平有极大的帮助。同时,在设计制作过程中,我们可以选用适当的函数去运用,建立好合适的Authorware的制作和设计好美观大方的首页。
第二章 Authorware概要设计
2.1 Authorware的框架分析
多媒体课程设计 背 歌 文 景图曲图 字标交互图标 背景.雨的印记多媒体课程设计班级姓名五个图标Suns
Premiere 3Dmax flash ps hin
e
2.2各个框架的功能:
(1)背景图:本应用模块的主要功能是主界面的背景。(2)歌曲:进入主界面的歌曲。
(3)文字:进入主界面的多媒体课程设计的文字,班级,姓名的显示。(4)图标:为了展现主界面的美观程度,我安放的图标的图像。
(5)交互图标:交互图标中把那五个模块都设置为按钮,然后分别设置这我五个按钮。
2.3Authorware中的分支结构图
第三章Authorware的首页设计
3.1背景图的选定
首先我先确定我的背景图,背景图必须要比较亮和清晰的感觉,下图是我选择的背景图:
3.2背景图文字的选定
然后把authorware打开,新建文件。然后向流程线导入一个显示图标,如下图所示:
然后双击背景图,如下图所示:
(1)接下来我又放了个显示图标为了放背景图的文字:
我在word里插入的艺术字,然后进行设置。导入到authorware中的效果图如下:
效果图如下:
(2)插入班级和姓名:
如下图所示:
3.3图标的建立
建立一个显示图标,把这些图标都放进去。
图标如下图所示:
3.4交互的建立
插入一个交互图标如下图所示:
然后分别在交互图标下建立四个显示图标,分别为:premiere、3dmax、ps、arthorware、flash。如下图所示:
最后的首页显示图为下图所示:
第四章Authorware的分支设计
4.1分支设计premiere 首先premiere的创造想法就是电子相册,我的姐姐刚结婚,心里一想不如给他们做个相册,这样作业也完成了,还可以把电子相册送给我的姐姐。
(1)分支设计的第一步
(2)首先premiere设置为群组、3dmax设置为显示、ps设置为群组、arthorware设置为群组、flash设置为群组。
(3)首先先设置premiere插入一个数字电影图标,如下图所示:
(4)双击序列01然后预览,效果图为:
4.2分支设计 PS(1)分支设计的第一步
(2)首先premiere设置为群组、3dmax设置为显示、ps设置为群组、arthorware设置为群组、flash设置为群组。
(3)单机PS打开,然后新建一个交互图标,然后新建三个下拉菜单,如下图所示:
(4)对三个下拉菜单进行设置,对彩虹设置如图所示:
(5)对三个下拉菜单进行设置,对水滴设置如图所示:
(6)对三个下拉菜单进行设置,对sunshine设置如图所示:
(7)对着三个下拉菜单设置后的效果图:
(8)最后加一个网页首页,如下图所示:
最后效果图:
4.3分支设计 3dmax(1)分支设计的第一步
(2)首先premiere设置为群组、3dmax设置为显示、ps设置为群组、arthorware设置为群组、flash设置为群组。
(3)双击3dmax然后放一个显示图标,效果图如下图所示:
4.4分支设计 arthorware(1)分支设计的第一步
(2)首先premiere设置为群组、3dmax设置为显示、ps设置为群组、arthorware设置为群组、flash设置为群组。
(3)然后双击arthorware进行设置,然后添加一个交互图标,如下图所示:
(4)分别对第一步、第二步、第三步、第四步进行设置,如下图所示:
第二步的设置:
第三步的设置:
第四步的设置:
设置完的效果图如下:
最后的演示图为:
4.5分支设计 flash(1)分支设计的第一步
(2)首先premiere设置为群组、3dmax设置为显示、ps设置为群组、arthorware设置为群组、flash设置为群组。(3)双击flash图标,然后倒入
(4)最后效果图为:
第五章 结束语(即个人课程设计总结)
个人总结:
本次课程设计我更进一步的地掌握了Authorware的一些基本操作,创建交互、按钮交互、音频控制、视频控制等,掌握了导入声音文件和视频文件,在Authorware程序控制音乐的播放,在实验过程中,我领悟到想要快速熟练掌握一个软件,一定要多动手亲自来做具体实际的操作,好多都是看着简单但是做起来却那么的麻烦。在做Authorware的时候应该多尝试多个菜单的用途,各个工具的使用。
结合这次课程设计,我总结了使用Authorware来制作课件的一些基本流程。确定选题、设计策划、素材准备、课件制作、作品测试等。
在本次实验当中,我发现素材的准备是最花费时间的,因为我做的这个Authorware是把我之前的所有多媒体作业导入到其中,premiere、3dmax、ps、flash的作业都导入到其中,这就牵扯到格式不合适的问题,所以把所有的作业都必须导成JPG格式和avi格式,因为Authorware中只认这两种格式。
当我把flash的格式转换成AVI格式插入Authorware中是可以播放的,但是把premiere的格式转换成AVI格式插入Authorware中又显示缺少“vids:DX50”解压缩程序于是又上网去查清楚,又下载安装了一个解压缩的软件。最后才得以成功的导入视频。这个繁琐的过程,以后就可以任意地转换了。还领悟了很多,在网络环境下,在软件世界里,没有什么事你不可以掌握的。不懂得,可以上网去学习,遇到问题,可以上百度搜搜,我要自学网上有很多的经典视频,都可以自学的看看,这样就会成功。
在这次课程设计中,让我觉得有挑战性的是程序的格式不吻合,但是完了还是下个解压缩程序就可以了。
整个设计流程与我想要的结果相同,设计中难免会遇到难题,不过只要肯思考,并把知识融会贯通就一定可以解决。
第三篇:《多媒体集成课程设计》文档
多媒体集成课程设计
多媒体集成课
程
设
计
姓名:_________
班级:__________
学号:__________
多媒体集成课程设计
一、目的与要求
(可参考考核要求写)
二、作品简介
(包含作品的主题、关键画面截图,采用了哪些软件开发制作,运用了哪些技术等)
三、素材的收集与制作
(介绍素材的收集和加工制作)
四、设计步骤
(主要介绍作品制作的步骤,要求图文并茂)
五、心得体会
(简单讲讲本次课程设计的感受和收获)
第四篇:《多媒体技术》课程设计考核办法
《多媒体技术》课程设计考核办法
一、考核要求
设计工作完成后,教师对学生的设计成果全面评阅,结合定期检查情况和学生平时设计态度,评定设计成绩。成绩分优、良、中、及格、不及格五级。
二、评分标准
1、优
实习态度端正,工作认真;能综合运用所学的平面设计与创意知识,熟练完成设计的工作,在设计中能够在色彩、效果等方面符合设计要求,能体现设计题目的意义;成果符合任务书要求,数目完整,内容符合标准,操作熟练,能准确完成题目中的各项要求,并在多媒体编程、色彩、动画制作、图像处理等方面有一定的功底。
2、良
实习态度端正,工作认真;基本上能运用所学的平面设计与创意知识,能按时按量的完成指导书上的内容,达到实习规定的全部要求,能全面完成实习任务,独立完成作品,较好的完成了作品的各个步骤;成果符合任务书要求,数目完整,内容符合标准,达到作品的要求。
3、中
实习工作认真,实习方案与结构基本合理,考虑问题基本周到;基本上能运用所学的基础理论解决实习中的问题,能按时按量的完成指导书上的内容,达到实习规定的全部要求。独立完成作品,基本能达到作品的各项指标;成果符合任务书要求,数目完整,内容符合标准,基本符合作品要求。
4、及格
综合实验中表现较好;能按时按量的完成综合实验指导书上的内容,达到综合实验规定的基本要求;成果基本符合任务书要求,数目不完整,作品中的要求没有完全达到,无大错误。
5、不及格
实习工作敷衍,实习中表现欠佳;未按时按量的完成指导书上的内容,不能达到实习规定的全部要求;成果不符合任务书要求,和要求达到的效果相差太大。
第五篇:《多媒体软件制作课程设计》大纲(本站推荐)
《多媒体软件制作课程设计》大纲
中央电大 教务处 教学管理科
(2004年08月23日)中央广播电视大学计算机应用专业
多媒体软件课程设计大纲
一、教学对象与学分:
该课程设计大纲为电大计算机应用专业应用软件开发方向学生使用,3学分。
二、设计目的
多媒体技术涉及面非常广,是一项实用性很强的技术。只有进行实际操作,将理论应用于实际中,才能确实掌握书中的知识点。通过设计开发多媒体软件,不仅可以加深学生对多媒体基本概念的了解,巩固学习成果; 还能够提高实际动手能力,掌握多媒体系统开发的基本方法和多媒体应用软件的制作过程,以及熟悉各种多媒体开发环境和工具的使用方法。
三、工具要求
1. 使用Authorware进行课件制作。
2. 使用Audio Editor等进行声音的录制和编辑。
3. 使用Adobe Premiere进行视频编辑。
4. 使用Photoshop进行静态图像的处理。
5. 有条件的话,可以使用其他各种多媒体处理软件。
四、时间要求
三周左右
五、题目
根据《多媒体技术基础》中讲述的内容,利用Authorware等软件,以《多媒体技术基础》第4章的内容为基础,制作多媒体软件。
六、制作过程
按照下述的步骤进行操作,最后能够生成声图文并貌、主题鲜明、内容简洁生动、具有时代感的多媒体软件。
浏览人次960
1. 分析选题
读者应掌握该章的全部内容,将其划分为各种课件,有必要的话还可以将课件依照面向对象技术划分为各个子对象。这样就可以达到课件的选择、计算机呈现教学内容、学生学习并作出反应、计算机作出评价和反馈并选择教学策略的全部教学过程。
2. 编写脚本
由于人在获取知识时的思维方式是跳跃性的和富有联想式的,因此知识单元(课件)不宜采用线性结构,而应采用非线性的超媒体结构,即网状结构和树状结构。
(1)画出整个内容的总体结构图,包括每个知识单元。
(2)根据知识内容间的逻辑关系,对知识单元进行划分。
(3)对知识单元的知识要素和链接进行分析,描绘出各单元间的关系。
(4)屏幕设计与布局,安排各单元的位置。
(5)制作脚本卡片,对每个单元都用卡片的形式进行描述。
3. 数据准备
(1)文本信息:从书中或其他地方提取有用的文本信息,利用Authorware进行输入和编辑。
(2)图形信息:搜集有用的图形和图象文件以备制作时使用。
(3)声音信息:搜集相关的声音文件;安装声卡,麦克风及其他相关工具。
4. 系统制作
根据已编写的脚本和设计思路,利用Authorware等多媒体工具制作该教学软件。
5. 测试与调试
为了保证软件的质量,在程序设计完毕之后,还要进行测试和调试,来发现系统的错误和潜在的问题。这里要对软件进行白盒测试。根据具体的逻辑结构和执行路径,设计若干个测试用例(路径覆盖,语句覆盖等),进行测试。
6. 提交
最后的步骤是对程序进行编译,将其打包成可独立运行的应用软件。
七、预备知识
1. 学习与了解多媒体软件创作的全过程;
2. 学习通过INTERNET网查找有关参考文献。
八、验收标准
1. 组成评分小组,由学生一个个演示制作的软件,由评分小组打分。
2. 评分标准要从主题、创意、图形、声音、视频等方面考虑。