SSSS=6;
elseif ( abs(RLC(i+1))>=64 && abs(RLC(i+1))<=127 ) SSSS=7;
elseif ( abs(RLC(i+1))>=128 && abs(RLC(i+1))<=255 ) SSSS=8;
elseif ( abs(RLC(i+1))>=256 && abs(RLC(i+1))<=511 ) SSSS=9;
elseif ( abs(RLC(i+1))>=512 && abs(RLC(i+1))<=1023 ) SSSS=10; end
%%求前缀码S1 if n==1
if NNNN==0 | NNNN==15
S1=char(T1(NNNN+1,SSSS+1)); else
S1=char(T1(NNNN+1,SSSS)); end else
if NNNN==0 | NNNN==15
S1=char(T2(NNNN+1,SSSS+1)); else
S1=char(T2(NNNN+1,SSSS)); end end
%%求尾码S2
if RLC(i)==0 && RLC(i+1)==0 S2=''; else
if RLC(i+1)>=0
31
S2=dec2bin(RLC(i+1)); else
S2=dec2bin(abs(RLC(i+1))); for i=1:length(S2) if S2(i)=='1' S2(i)='0'; else
S2(i)='1'; end end end end
ACH=[ACH S1 S2]; end
%ü_Huffman.m
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)
32
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 == 1
S1 = char(T1(SSSS+1)); else
S1 = char(T2(SSSS+1)); end %后缀码 if DIFF >= 0
S2 = dec2bin(abs(DIFF));
33
else
S2 = dec2bin(abs(DIFF)); for i = 1:length(S2) if S2(i) == '0'; S2(i) = '1'; else
S(2) = '0'; end end end
DCH = [S1 S2];
function Z = Zigzag(S); %Zigzag表
ZT=[0 ,1 ,5 ,6 ,14,15,27,28; 2 ,4 ,7 ,13,16,26,29,42; 3 ,8 ,12,17,25,30,41,43; 9 ,11,18,24,31,40,44,53; 10,19,23,32,39,45,52,54; 20,22,33,38,46,51,55,60; 21,34,37,47,50,56,59,61; 35,36,48,49,57,58,62,63]; Z = zeros(1,64); for i = 1:8 for j = 1:8
Z(ZT(i,j)+1) = S(i,j); end end
34
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于DCT的图像压缩编码算法的研究(7)在线全文阅读。
相关推荐: