📄 arithintdecod.m
字号:
function seq=arithintdecod(btag,alpha,cnt,lgt)
CC(1)=0;
for i=1:length(cnt)
CC(i+1)=CC(i)+cnt(i);
end
totcount=CC(i+1);
m=ceil(log2(totcount*4));
seq='';
l=0;
u=2^m-1;
for i=1:lgt
ts=btag(1:m);
t=bin2dec(ts);
k=1;
s=floor(((t-l+1)*totcount-1)/(u-l+1));
while(s>=CC(k))
k=k+1;
end
seq=[seq alpha(k-1)];
l1=l+floor(((u-l+1)*CC(k-1))/totcount);
u=l+floor(((u-l+1)*CC(k))/totcount)-1;
l=l1;
lb=dec2bin(l,m);
ub=dec2bin(u,m);
E2=1;E3=1;
while (E2 | E3)
fbl=lb(1);
fbu=ub(1);
if fbl==fbu
E2=1;
lb(1)='';
lb(end+1)='0';
ub(1)='';
ub(end+1)='1';
btag(1)='';
else
E2=0;
end
sbl=lb(2);
sbu=ub(2);
if sbl=='1' & sbu=='0'
lb(1)='';
lb(end+1)='0';
ub(1)='';
ub(end+1)='1';
lb(1)='0';
ub(1)='1';
btag(1)='';
if (btag(1)=='0')
btag(1)='1';
else
btag(1)='0';
end
E3=1;
else
E3=0;
end
end
u=bin2dec(ub);
l=bin2dec(lb);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -