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

📄 ac_code.m

📁 用离散余弦变换实现JPEG编码
💻 M
字号:
%AC系数的HUFFMAN编码function b = AC_code(x)%    run - category - length - bsae code length -  base codetable=[...        0       1       3               2           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  2   4  2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  3   6  3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  0  4   8  4 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0  5  10  5 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0  0  6  12  6 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0  0  7  14  7 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0  0  8  18 10 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0  9  25 16 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 10  26 16 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1  1   5  4 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0  1  2   8  6 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0  1  3  10  7 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1  4  13  9 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1  5  16 11 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 1  6  22 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1  7  23 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1  8  24 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1  9  25 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 10  26 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 2  1   6  5 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0  2  2  10  8 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 2  3  13 10 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0  2  4  20 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 2  5  21 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 2  6  22 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 2  7  23 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 2  8  24 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 2  9  25 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 2 10  26 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 3  1   7  6 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 3  2  11  9 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 3  3  14 11 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0  3  4  20 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 3  5  21 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 3  6  22 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 3  7  23 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 3  8  24 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 3  9  25 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 3 10  26 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 4  1   7  6 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 4  2  12 10 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0  4  3  19 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 4  4  20 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 4  5  21 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 4  6  22 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 4  7  23 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 4  8  24 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 4  9  25 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 4 10  26 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 5  1   8  7 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 5  2  12 10 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0  5  3  19 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 5  4  20 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 5  5  21 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 5  6  22 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 5  7  23 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 5  8  24 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 5  9  25 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 5 10  26 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 6  1   8  7 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 6  2  13 11 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0  6  3  19 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 6  4  20 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 6  5  21 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 6  6  22 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 6  7  23 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 6  8  24 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 6  9  25 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 6 10  26 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 7  1   9  8 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 7  2  13 11 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0  7  3  19 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 7  4  20 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 7  5  21 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 7  6  22 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 7  7  23 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 7  8  24 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 7  9  25 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 7 10  26 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 8  1   9  8 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 8  2  17 15 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 8  3  19 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 8  4  20 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 8  5  21 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 8  6  22 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 8  7  23 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 8  8  24 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 8  9  25 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 8 10  26 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 9  1  10  9 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0  9  2  18 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 9  3  19 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 9  4  20 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 9  5  21 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 9  6  22 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 9  7  23 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 9  8  24 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 9  9  25 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 9 10  26 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 110  1  10  9 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 10  2  18 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 010  3  19 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 110  4  20 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 010  5  21 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 110  6  22 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 010  7  23 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 110  8  24 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 010  9  25 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 110 10  26 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 011  1  10  9 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 11  2  18 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 111  3  19 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 011  4  20 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 111  5  21 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 011  6  22 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 111  7  23 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 011  8  24 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 111  9  25 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 011 10  26 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 112  1  11 10 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 12  2  18 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 012  3  19 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 112  4  20 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 012  5  21 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 112  6  22 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 012  7  23 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 112  8  24 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 012  9  25 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 112 10  26 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 013  1  12 11 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 13  2  18 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 113  3  19 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 013  4  20 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 113  5  21 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 013  6  22 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 113  7  23 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 013  8  24 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 113  9  25 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 013 10  26 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 114  1  13 12 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 014  2  18 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 014  3  19 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 114  4  20 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 014  5  21 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 114  6  22 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 014  7  23 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 114  8  24 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 014  9  25 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 114 10  26 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 015  1  17 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 115  2  18 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 015  3  19 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 115  4  20 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 015  5  21 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 115  6  22 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 015  7  23 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 115  8  24 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 015  9  25 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 115 10  26 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0  0   4  4 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 015  0  12 12 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0];%所有的非零输入ix = find(x~=0); %非零输入的长度Nx = length(ix);  %编码输出b=[];%对每一个非零元素循环编码for n = 1:1:Nx,   prefix = [];   % 检查之前的零的长度    if (n == 1)        run = ix(1) - 1; %n==1时,没有ix(n-1)项,故直接-1    else        run = ix(n) - ix(n-1) - 1;    end   % 当零的长度超过15时,分段编码   while run > 15,       b = [ b 1 1 1 1 1 1 1 1 0 1 1 1 ];      run = run-15;   end   % 检查是否该块结束   if x(ix(n)) == 999,        b = [ b 1 0 1 0 ];    else      tmp = x_int2bin(x(ix(n)));          %转换成二进制      category = length(tmp);             %确定输入范围      row = run*10 + category;            %对于任意的先行0的数量,有10种范围,以次确定查表行位置      prefix = table( row,5:table(row,4)+4 );  %查表获取编码      if x(ix(n))<0,                tmp = ones(1,category)-tmp;           %输入为负数则取补码      end      % 前缀码+尾码      b=[ b prefix tmp(1:category) ];   endend

⌨️ 快捷键说明

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