1、12015年 9月 13日数字图像处理第 08章 图像压缩高振国22015年 9月 13日引言n图像压缩的必要性n图像压缩的可行性 (三种基本的数据冗余 )。p编码冗余即所用码字大于最佳编码长度;p像素间冗余。像素间数据具有较强的相关性。p心理视觉冗余人类视觉系统对细节的分辨能力是有限的。32015年 9月 13日8.1背景知识n压缩系统方框图n压缩比pn1表示原图像数据量; n2表示压缩后图像数据量42015年 9月 13日8.1背景知识n计算压缩比pfunction cr=imratio(f1,f2)function cr = imratio(f1, f2)error(nargchk(2,
2、 2, nargin); % Check input argumentscr = bytes(f1) / bytes(f2); % Compute the ratiofunction b = bytes(f) if ischar(f)info = dir(f); b = info.bytes;elseif isstruct(f)b = 0;fields = fieldnames(f);for k = 1:length(fields)b = b + bytes(f.(fieldsk);endelseinfo = whos(f); b = info.bytes;end52015年 9月 13日8.
3、1背景知识n压缩后图像质量评价p原图像和压缩后图像间的均方根误差 ermsp计算 erms的自定义函数Function rmse=compare(f1,f2,scale);62015年 9月 13日8.2编码冗余n 最优编码长度p图像中各灰度级的像素数比例 Pr(rk)p设灰度级 rk用 l(rk)位表示,则用于表示每个像素的平均长度 Lavgp最优编码长度p例 8.1, test08_01.mFunction h=entropy(x,n)72015年 9月 13日8.2.1霍夫曼编码n霍夫曼编码82015年 9月 13日8.2.1霍夫曼编码n霍夫曼源约简图示92015年 9月 13日8.2.1霍夫曼编码n例 8.2, test08_02.m,霍夫曼编码应用n用霍夫曼编码方法来编码矩阵数据pFunction y=mat2huff(x)n例 8.3,用霍夫曼编码图像ptest08_03.m% 例 8.3 使用 mat2huff进行编码f = imread(flower.tif);c = mat2huff(f);cr1 = imratio(f,c)save SqueezeTracy c;cr2 = imratio(flower.tif,SqueezeTracy.mat)102015年 9月 13日8.2.3霍夫曼解码n霍夫曼解码表