資源簡介
本圖像編碼程序是JPEG編碼過程的基本模式,實現了基于DCT變換的JPEG編碼
程序說明:
主程序:func_DCT1.m;運行該程序即可實現圖像的編碼和解碼過程
變換函數:離散余弦變換:func_DCT1.m
編碼程序:AC系數編碼程序:ACHuffmanEncoding.m
DC系數編碼程序:DCHuffmanEncoding.m
解碼主程序:decoding.m;其中對AC、DC系數分別的解碼程序ACdecoding.m、DCdecoding.m
PSNR.m:峰值信噪比函數
zigzag.m:Z字形掃描函數

代碼片段和文件信息
function?[deAClenACACnum]?=?ACdecoding(xlenx)
%?亮度分量的AC系數解碼程序
if(strncmp(x‘00‘2))????????????????????amplen=1;codelen=2;Z=0;
elseif(strncmp(x‘01‘2))????????????????amplen=2;codelen=2;Z=0;
elseif(strncmp(x‘100‘3))???????????????amplen=3;codelen=3;Z=0;
elseif(strncmp(x‘1011‘4))??????????????amplen=4;codelen=4;Z=0;
elseif(strncmp(x‘11010‘5))?????????????amplen=5;codelen=5;Z=0;
elseif(strncmp(x‘1111000‘7))???????????amplen=6;codelen=7;Z=0;
elseif(strncmp(x‘11111000‘8))??????????amplen=7;codelen=8;Z=0;
elseif(strncmp(x‘1111110110‘10))???????amplen=8;codelen=10;Z=0;
elseif(strncmp(x‘1111111110000010‘16))?amplen=9;codelen=16;Z=0;
elseif(strncmp(x‘1111111110000011‘16))?amplen=10;codelen=16;Z=0;
elseif(strncmp(x‘1100‘4))??????????????amplen=1;codelen=4;Z=1;
elseif(strncmp(x‘11011‘5))?????????????amplen=2;codelen=5;Z=1;
elseif(strncmp(x‘1111001‘7))???????????amplen=3;codelen=7;Z=1;
elseif(strncmp(x‘111110110‘9))?????????amplen=4;codelen=9;Z=1;
elseif(strncmp(x‘11111110110‘11))??????amplen=5;codelen=11;Z=1;
elseif(strncmp(x‘1111111110000100‘16))?amplen=6;codelen=16;Z=1;
elseif(strncmp(x‘1111111110000101‘16))?amplen=7;codelen=16;Z=1;
elseif(strncmp(x‘1111111110000110‘16))?amplen=8;codelen=16;Z=1;
elseif(strncmp(x‘1111111110000111‘16))?amplen=9;codelen=16;Z=1;
elseif(strncmp(x‘1111111110001000‘16))?amplen=10;codelen=16;Z=1;
???????
elseif(strncmp(x‘11100‘5))?????????????amplen=1;codelen=5;Z=2;???
elseif(strncmp(x‘11111001‘8))??????????amplen=2;codelen=8;Z=2;
elseif(strncmp(x‘1111110111‘10))???????amplen=3;codelen=10;Z=2;
elseif(strncmp(x‘111111110100‘12))?????amplen=4;codelen=12;Z=2;
elseif(strncmp(x‘1111111110001001‘16))?amplen=5;codelen=16;Z=2;
elseif(strncmp(x‘1111111110001010‘16))?amplen=6;codelen=16;Z=2;
elseif(strncmp(x‘1111111110001011‘16))?amplen=7;codelen=16;Z=2;
elseif(strncmp(x‘1111111110001100‘16))?amplen=8;codelen=16;Z=2;
elseif(strncmp(x‘1111111110001101‘16))?amplen=9;codelen=16;Z=2;
elseif(strncmp(x‘1111111110001110‘16))?amplen=10;codelen=16;Z=2;
??????
elseif(strncmp(x‘111010‘6))????????????amplen=1;codelen=6;Z=3;
elseif(strncmp(x‘111110111‘9))?????????amplen=2;codelen=9;Z=3;
elseif(strncmp(x‘111111110101‘12))?????amplen=3;codelen=12;Z=3;
elseif(strncmp(x‘1111111110001111‘16))?amplen=4;codelen=16;Z=3;
elseif(strncmp(x‘1111111110010000‘16))?amplen=5;codelen=16;Z=3;
elseif(strncmp(x‘1111111110010001‘16))?amplen=6;codelen=16;Z=3;
elseif(strncmp(x‘1111111110010010‘16))?amplen=7;codelen=16;Z=3;
elseif(strncmp(x‘1111111110010011‘16))?amplen=8;codelen=16;Z=3;
elseif(strncmp(x‘1111111110010100‘16))?amplen=9;codelen=16;Z=3;
elseif(strncmp(x‘1111111110010101‘16))?amplen=10;codelen=16;Z=3;
???????
elseif(strncmp(x‘111011‘6))????????????amplen=1;codelen=6;Z=4;
elseif(strncmp(x‘1111111000‘10))???????amplen=2;codelen=10;Z=4;
elseif(strncmp(x‘1111111110010110‘16))?amplen=3;codelen=16;Z=4;
elseif(strncmp(x‘11111111100
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????328??2013-11-16?16:43??編碼程序\程序說明.txt
?????目錄???????????0??2013-11-15?21:15??編碼程序\
?????文件???????14868??2006-06-02?21:35??編碼程序\ACHuffmanEncoding.m
?????文件???????11461??2013-04-30?15:31??編碼程序\ACdecoding.m
?????文件????????3508??2013-04-20?08:27??編碼程序\DCHuffmanEncoding.m
?????文件????????1205??2013-04-26?16:28??編碼程序\DCdecoding.m
?????文件?????????312??2007-12-11?14:08??編碼程序\PSNR.m
?????文件????????2881??2013-04-30?15:27??編碼程序\decoding.m
?????文件????????4896??2013-04-28?19:11??編碼程序\func_DCT1.m
?????文件????????5176??2013-11-15?17:23??編碼程序\lena64.bmp
?????文件????????1193??2013-04-06?21:17??編碼程序\zigzag.m
評論
共有 條評論