• 大小: 15KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: JPEG  DCT  

资源简介

本图像编码程序是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

评论

共有 条评论