📄 dc_huffman.asv
字号:
function DCH = DC_Huffman(Z,last_Z,n);
%亮度码字
T1 = {'00' '010' '011' '100' '101' '110' '1110' '11110' '111110' '1111110' '11111110' '111111110'};
%色度码字
T2 = {'00' '01' '10' '110' '1110' '11110' '111110' '1111110' '11111110' '111111110' '1111111110' '11111111110'};
DIFF = Z-last_Z;
if DIFF == 0
SSSS = 0;
elseif (abs(DIFF) == 1)
SSSS = 1;
elseif (abs(DIFF) >= 2 && abs(DIFF)<=3)
SSSS = 2;
elseif (abs(DIFF) >= 4 && abs(DIFF)<=7)
SSSS = 3;
elseif (abs(DIFF) >= 8 && abs(DIFF)<=15)
SSSS = 4;
elseif (abs(DIFF) >= 16 && abs(DIFF)<=31)
SSSS = 5;
elseif (abs(DIFF) >= 32 && abs(DIFF)<=63)
SSSS = 6;
elseif (abs(DIFF) >= 64 && abs(DIFF)<=127)
SSSS = 7;
elseif (abs(DIFF) >= 128 && abs(DIFF)<=255)
SSSS = 8;
elseif (abs(DIFF) >= 256 && abs(DIFF)<=511)
SSSS = 9;
elseif (abs(DIFF) >= 512 && abs(DIFF)<=1023)
SSSS = 10;
elseif (abs(DIFF) >= 1024 && abs(DIFF)<=2047)
SSSS = 11;
end
%前缀码
if n
S1 = char(T1(SSSS+1));
%后缀码
if DIFF >= 0
S2 = dec2bin(DIFF);
else
S2 = dec2bin(DIFF);
for i = 1:length(S2)
if S2(i) == '0';
S2(i) = '1';
else
S(2) = '0';
end
end
end
DCH = [S1 S2];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -