1 / 6
文档名称:

多媒体技术之哈弗曼编码实验报告.docx

格式:docx   大小:13KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多媒体技术之哈弗曼编码实验报告.docx

上传人:511709291 2022/8/19 文件大小:13 KB

下载得到文件列表

多媒体技术之哈弗曼编码实验报告.docx

文档介绍

文档介绍:一、实验目的
1、学****Matlab软件的使用和编程;
2、进一步深入理解Huffman编码算法的原理;
3、提高独立进展算法编程的能力。
二、实验内容
1、用Matlab实现Huffman编码算法程序;
2、要求程序输出显示所有 str='';
for j=1:length(tmpData)
str=strcat(str,num2str(tmpData(j)));
zippedHuffman=zippedHuffman+1;
end
disp(strcat('a',num2str(i),'= ',str))
end
i;%计算计算机一共输出多少个哈夫曼编码/霍夫曼编码
zippedHuffman;%计算在删去0灰度级压缩之前的原始图像字节容量
unzipped_delete=i*8;%计算压缩比率
ratio_delete=zippedHuffman/unzipped_delete;%计算图像的压缩比率
ad=num2str(ratio_delete*100);
str2=strcat(ad,'%');
disp(strcat('哈夫曼编码压缩比率','= ',str2))
子程序:哈夫曼编码/
function HuffmanCode(OriginSize)
global HufData;
global Len
for i=1:Len %%霍夫曼编码树左边纪录为1
HufData(i).left=1; %%霍夫曼编码树右边纪录为0
HufData(i).right=0; %%输出码初始化为0
HufData(i).code=[]; %%排序列表初始化
SortList(i).symbol=i;
SortList(i).value=HufData(i).value;
End %初始化原始消息数目
newsymbol=OriginSize;
for n=OriginSize:-1:2 %将N个消息进展排序
SortList=sortdata(SortList,n); %将最后两个出现概率最小的消息合成一个消息
newsymbol=newsymbol+1;
HufData(newsymbol).value=SortList(n-1).value+SortList(n).value;
HufData(newsymbol).left=SortList(n-1).symbol;
HufData(newsymbol).right=SortList(n).symbol; %将消息添加到列队的最后,为N-1个消息重新排序作好准备
SortList(n-1).symbol=newsymbol;
SortList(n-1).value=HufData(newsymbol).value;