?? ac_code.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 + -