资源简介
可以实现jpeg压缩编解码 分别进行dct 游程 和哈弗曼编码
代码片段和文件信息
clc;
clear all;
Ip=imread(‘2.jpg‘);
figure(1);
imshow(Ip)
title(‘原始图象‘) %显示原图
I=double(Ip); %将数据类型转换为双精度形式
T=dctmtx(8); %产生8*8的DCT变换系数矩阵
B=blkproc(I[8 8]‘P1*x*P2‘TT‘); %对图象I的每个8*8块的DCT变换
Q=[16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 60
18 22 37 56 68 109 103 77
24 25 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99]; %标准量化矩阵
B1=blkproc(B[8 8]‘round(x./P1)‘Q);%对DCT系数矩阵进行有损量化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Z扫描 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sx=[1 2 6 7 15 16 28 29
3 5 8 14 17 27 30 43
4 9 13 18 26 31 42 44
10 12 19 25 32 41 45 54
11 20 24 33 40 46 53 55
21 23 34 39 47 52 56 61
22 35 38 48 51 57 60 62
36 37 49 50 58 59 63 64];
out=zeros([1 8*8*64]);
for a=1:8
for b=1:8
for i=1:8
for j=1:8
out(((a-1)*8+b)*64-64+sx(ij))=B1(a*8-8+ib*8-8+j);
end
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 稀疏矩阵 游程编码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
r=1; zero_num=0;
for i=1:4096
if out(i)~=0
YC(r1)=zero_num;
YC(r2)=out(i);
r=r+1;
zero_num=0;
else zero_num=zero_num+1;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Huffman编码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% 对游程编码后的第一分量(0游程的个数)进行 Huffman编码(1) %%%%%%%%%%%
YC1=YC(:1);[xy]=size(YC)
sig=zeros([max(xy)3]);
k=1; sig(11)=YC1(1);
for i=1:max(xy)
flag=0;
for j=1:k
if sig(j1)==YC1(i)
sig(j2)=sig(j2)+1;
flag=1;
break
end
end
if flag==0
k=k+1;
sig(k1)=YC1(i);
sig(k2)=1;
end
end
sig=sig(1:k:);
SUM=sum(sig(:2));
sig(:3)=sig(:2)/SUM;
[dict1avglen1] = huffmandict(sig(:1)sig(:3)); % Create dictionary.
actualsig1 = YC1; % actual data
comp1 = huffmanenco(actualsig
相关资源
- ADPCM编解码Matlab程序
- MATLAB DNA 编码
- MATLAB 实现RLE 对矩阵Z字形游程编码行
- 循环码编码与解码
- 分形图像压缩编码的Matlab实现
- 《纠错编码原理及MATLAB实现》 刘爱莲
- jpeg的matlab代码
- LDPC编码的BP译码算法的matlab程序
- matlab实现PCM十三折现编码译码
- JPEG标准哈夫曼编码无损压缩Matlab
- 数字水印 攻击 JPEG压缩 matlab代码
- matlab 常用语音编码及
- 哈弗曼费诺汉明码matlab
- 64QAM编码和硬判决译码及软判决
- 费诺编码matlab程序
- 卷积码 编码 译码 MATLAB程序
- 稀疏自编码深度学习的Matlab实现
- matlab 解码 NMEA0183格式GGA数据
- matlab实现游程编码
- 光通信领域编码书
- 局部二值模式进行编码的人脸识别
- crc16 CCITT crc-16的编码
- LTE咬尾卷积编码malab编解码程序
- JPEG的Matlab实现
- BPSK+编码+交织仿真通信链路,仿真分
- BCH码的matlab实现
- 802.11a基于OFDM系统MATLAB仿真程序
- 基于Matlab的图像Huffman编码的实现
- 基于DCT的图像压缩编码算法的MATLAB实
- 基于MATLAB的图像压缩程序(包附各种
评论
共有 条评论