arencode.m

来自「常用图像压缩编码码matlab实现。包括:DM编码、变换编码(FFT和DCT)、」· M 代码 · 共 26 行

M
26
字号
function arcode = arencode(symbol, pr, seqin)
%算术编码
%输出:码串
%输入:symbol:字符行向量
%      pr:字符出现概率
%      seqin:待编码字符串

high_range = [];
for k = 1: length(pr),
    high_range = [high_range sum(pr(1: k))];
end

low_range = [0 high_range(1: length(pr) - 1)];
sbidx = zeros(size(seqin));
for i = 1: length(seqin),
    sbidx(i) = find(symbol == seqin(i));
end

low = 0; high = 1;
for i = 1: length(seqin),
    range = high - low;
    high = low + range * high_range(sbidx(i));
    low = low + range * low_range(sbidx(i));
end
arcode = low;

⌨️ 快捷键说明

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