⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exp4.asv

📁 这是一个用MATLAB软件来实现的图像JPEG压缩程序源代码
💻 ASV
字号:
clear all;
close all;
%亮度量化表
LQT=[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 62;
     18 22 37 56 68 109 103 77;
     24 35 55 64 81 104 113 92;
     49 64 78 87 103 121 120 101;
     72 92 95 98 112 100 103 99];
 %色度量化表
 CQT=[17 18 24 47 99 99 99 99;
     18 21 26 66 99 99 99 99;
     24 26 56 99 99 99 99 99;
     47 66 99 99 99 99 99 99;
     99 99 99 99 99 99 99 99;
     99 99 99 99 99 99 99 99;
     99 99 99 99 99 99 99 99;
     99 99 99 99 99 99 99 99];
 
%灰度图象处理 
I1 = double(imread('Lena.bmp'));
[M,N] = size(I1);
last_Z = 0;
jpeg1 = '';
for i = 0:M/8-1
    for j = 0:N/8-1
        S = I1((1+8*i):(8*(i+1)), (1+8*j):(8*(j+1)));%分割成8*8处理
        S = dct2(S);%DCT
        S = round(S./LQT);%亮度量化
        Z = Zigzag(S);%Zigzag扫描
        DCH = DC_Huffman(Z(1),last_Z,1);%直流分量编码
        ACH = AC_Huffman(Z(2:end),1);%交流分量编码
        last_Z = Z(1);
        jpeg1 = [jpeg1 DCH ACH];
    end
end
rate1 = 8*M*N/length(jpeg1);%压缩比

%彩色图像处理
I2 = double(imread('LenaRGB.bmp'));
%转换成亮度
I2 = rgb2ycbcr(I2);
Y = I2(:,:,1);
Cr = I2(:,:,2);
Cb = I2(:,:,3);
[M,N] = size(Y);
Y_last_Z = 0;
Cr_last_Z = 0;
Cb_last_Z = 0;
jpeg2 = '';
for i = 0:M/8-1
    for j = 0:N/8-1
        S = Y((1+8*i):(8*(i+1)), (1+8*j):(8*(j+1)));%分割成8*8处理
        S = dct2(S);%DCT
        S = round(S./LQT);%亮度量化
        Z = Zigzag(S);%Zigzag扫描
        DCH = DC_Huffman(Z(1),last_Z,1);%直流分量编码
        ACH = AC_Huffman(Z(2:end),1);%交流分量编码
        last_Z = Z(1);
        jpeg1 = [jpeg1 DCH ACH];
    end
end
rate1 = 8*M*N/length(jpeg1);%压缩比

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -