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

📄 app.m

📁 实现JPEG的压缩和编码 (1)首先通过DCT变换去除数据冗余; (2)使用量化表对DCT系数进行量化; (3)对量化后的系数进行Huffman编码。
💻 M
字号:
function appmain
I=imread('LenaRGB.bmp');%读取图像
yiq=rgb2ntsc(I);

my=[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];%亮度量化表


miq=[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=yiq(:,:,1);
I2=yiq(:,:,2);
[m n]=size(I1);
t1=8;ti1=1;
while(t1<64)
t1=t1+8;ti1=ti1+1;
end
t2=8;ti2=1;

while(t2<64)
t2=t2+8;ti2=ti2+1;
end
times=0;


for k=0:ti1-2
    for j=0:ti2-2
   dct8x8(I1(k*8+1:k*8+8,j*8+1:j*8+8),my,times*64+1); %调用函数进行DCT变换
   dct8x8(I2(k*8+1:k*8+8,j*8+1:j*8+8),miq,times*64+1);%调用函数进行DCT变换
   times=times+1;
    end
block(I2(k*8+1:k*8+8,j*8+1:t2),[8 8], 'dctmtx(8)');
end

for j=0:ti2-2
   dct8x8(I1(k*8+1:t1,j*8+1:j*8+8),times*64+1);
   times=times+1;
end

dct8x8(I1(k*8+1:t1,j*8+1:t2),times*64+1);

⌨️ 快捷键说明

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