jpeg压缩编解码程序

jpeg压缩编解码程序

ID:21968776

大小:275.71 KB

页数:7页

时间:2018-10-25

jpeg压缩编解码程序_第1页
jpeg压缩编解码程序_第2页
jpeg压缩编解码程序_第3页
jpeg压缩编解码程序_第4页
jpeg压缩编解码程序_第5页
资源描述:

《jpeg压缩编解码程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、JPEG压缩编解码程序%%使用matlab2013b软件进行仿真测试。测试图八在:文档敁活方。functionjpegCompress%以离散余弦变换(DCT)为基础,对灰度图像进行有损压缩及重建jpeg算法%该算法过程主要也括以下几个部分:1.读収图像;2.DCT变换;3.量化;4.Z形扫描;5.huffman编码;%6.huffman解码;7.反Z形扫描;8.反量化;9.反DCT变换;10.输出图像;11.计算压缩性能。clearall;%设定量化因子quality。%quality为量化因子,默认值为1。决定了截去的系数和压缩比,増加qualit

2、y的值,可増大压缩比,使压缩编码后的图像占用存储空间更小。quality=inputf请输入量化参数(数值型,默认为1)=');ifisempty(quality)quality=1;endifquality<=0errorf请输入人于0的数字!•);end%1.获取图像ticI=imread('coinl28.tif');%l=imread('cameramanl28.tif');%l=imread('cameraman256.tif');%l=imread('finger256.bmp,);%l=imread('fingerprint256.bmp

3、');%l=imread(,Iena512.bmp');%读入读一幅灰度图像dispf读取图像时间toe%2.DCT变换ticOriginallmage=double(l);%图像数拋类型转换[am,an]=size(Originallmage);%得到图像的大小lmageSub=Originallmage-128;%为实现DCT变换,毎个像素值都减山128,即像素坛次移动-128funl=@dct2;TCM=blkproc(lmageSub,[8/8]zfunl);%使用dct2函数进行二维DCT变换,得到变换系数妍陈TCMdisp('DCT变换时间

4、toe%3.量化ticQ=[1611101624405161121214192658605514131624405769561417222951878062182237566810910377243555648110111392496478871031211201017292959811210010399]*quality;%亮度量化表TCM_Q=blkproc(TCMz[8z8]/round(x./Pl)Q);%对图像进行量化,得到量化后的TCM,即TCM_Q。dispf董化时间:1);toe%4.Z形扫描ticTCM_Q_col=im2col(T

5、CM_Q,[8,8]/distinct,);%将每个8*8数据块的量化系数排成列向量,得到64*数裾块总数大小的矩阵TCM_CLcol。Num_col=size(TCM_Q_col,2);%得到TCM_Q_col的列数,即数据块的个数Num_col。order=[l92310172518...11451219263341...34272013671421...2835424957504336...292215816233037...4451585952453831...2432394653606154...4740485562635664];TCM_Q

6、_colZ=TCM_CLcol(order,:);%用z型扫描方式对变挽系数重新排列disp('Z形担描时间:1};toe%5•编码tic%5.1直流编码,dc为直流系数表,dedpem为直流差值编码表dc=zeros(Num_col,l);dcdpcm=zeros(Num_col/l);forj=l:Num_coldc(j)=TCM_Q_colZ(l,j);%将DC系数排列到一个矢量中enddcdpcm(l)=dc(l);forj=2:Num_coldcdpcm(j)=dc(j)-dc(j-l);%求DC系数的DPCM编码enddcdmax=max(

7、dcdpcm);%最大且紉Ldcdmin=min(dcdpcm);%最小直流dch=histc(dcdpcm,[dcdmin:dcdmax]);%统计各个值的直方图dcnum=length(dcdpcm);dcp=dch/dcnum;%计算各个值的概率dcsymbols=[dcdmin:dcdmax];%直流分虽值[dcdict/dcavglen]=huffmandict(dcsymbols/dcp);%牛•成字典dcdict,计算T•均码长dcencoded=huffmanenco(dcdpcm,dcdict);%对DC系数的DPCM进行Huffma

8、n编码,得到直流编码dcencoded%5.2交流编码%将非零AC元素重新排列放到^屮,毎一列

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。