用matlab仿真huffman编码在jpg图像压缩中的应用崔微微.doc

用matlab仿真huffman编码在jpg图像压缩中的应用崔微微.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档