- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用matlab仿真huffman编码在jpg图像压缩中的应用崔微微
用matlab仿真huffman编码在jpg图像压缩中的应用
1.jpg图像的定义:
JPEG是Joint Photographic Experts Group 联合图像专家组 的缩写,文件后辍名为.jpg或.jpeg,是最常用的图像文件格式,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。比如可以把1.37Mb的BMP位图文件压缩至20.3KB。当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。% 图像的编码过程
clear all;
close all;
clc;
Dimens 256; % 矩阵维数,假设矩阵为方阵即256*256
src_size Dimens^2; % 矩阵元素的个数
gray_level 9; % 灰度级
src randn Dimens ; %产生模拟图像矩阵,满足正态分布,零均值,方差为1
src_one reshape src,1,src_size ;
src_max max src_one ;
src_min min src_one ;
quan linspace src_min,src_max,gray_level ; % 产生均匀量化区间
src_d []; % 数字矩阵
for row 1:Dimens % 逐点量化 for vol 1:Dimens diff abs src row,vol -quan ; [min_diff,min_index] min diff ; quan_gray min_index -1; src_d row,vol quan_gray; end
end
% prob数组保存图像中各灰度出现的概率
prob []; for src_value 0: gray_level-1 index find src_d src_value ; i src_value + 1;
prob i length index /src_size;
% huffman编码
p prob;
n length p ;
q p;
m zeros n-1,n ;
for i 1:n-1 [q,l] sort q ; m i,: [l 1:n-i+1 ,zeros 1,i-1 ]; q [q 1 +q 2 ,q 3:n ,1];
end
bre zeros n-1,n ;
bre n-1,1 0+j; %虚部表示当前的二进制数的位数,以下类似
bre n-1,2 1+j;
for time 1:n-2 loc_1 find real m n-time,: 1 ; prebit bre n-time,loc_1 ; bre n-time-1,1 real prebit *2 + 0 + j* imag prebit +1 ; bre n-time-1,2 real prebit *2 + 1 + j* imag prebit +1 ; loc_not1 find real m n-time,: 1 ; bre n-time-1,3:3+time-1 bre n-time,loc_not1 ;
end
[m1,index] sort m 1,: ;
code bre 1,index ;
code_data real code ;
code_bits imag code ;
disp [gray level, , huffman code] ;
for i 1:length code disp [num2str i-1 , ,num2str dec2bin code_data i ] ;
end
code_binary dec2bin code_data ;
%逐点编码
out [];
for row 1:Dimens f
文档评论(0)