⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 area.m

📁 自适应编码 本发明的目标是生成一种方法:对数组压缩和解压缩编码
💻 M
字号:
function[low,high,mode] = 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;%初始化4*m数组mode

for j=1:4
    for k=1:m
        if j==1, mode(j,k)=nf(k);%第1行是不重复的字符
        else if j==2, mode(j,k)=low(k);%第2行是对应的下限
            else if j==3, mode(j,k)=high(k);%第3行是对应的上限
                else if j==4, mode(j,k)=gai(k);%第4行是对应的概率
                    end
                end
            end
        end
    end
end
mode=mode';%把mode转置,得到新的mode

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -