📄 area.asv
字号:
function[mode,low,high] = area(nf,gai)
%--------------------------------------------------------------------------
%此函数是计算数组nf中每个字符的子区间
%基于算术编码的文本压缩,被main.m文件调用
%输出数组low和high记录了每个符号所对应子区间的下限和上限
%输出数组mode记录了概率模型的相关数据
%--------------------------------------------------------------------------
m=length(nf);%计算nf的长度得到,m即为不重复的字符的个数
low(m)=0;high(m)=gai(m);
%数组nf中最后一个字符对应的区间:[0,gai(m)
for j=m-1:-1:1 %求不重复的字符所对应区间的上限和下限
low(j)=high(j+1);
%它的下限是前一个字符的下限减去它的概率
high(j)=low(j)+gai(j);
%它的上限是前一个字符的下限
end
mode(4,m)=0;
for j=1:4
for k=1:m
if j==1, mode(j,k)=nf(k);
else if j==2, mode(j,k)=low(k);
else if j==3, mode(j,k)=high(k);
else if j==4, mode(j,k)=gai(k);
end
end
end
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -