arencode.m
上传用户:hwtw888
上传日期:2016-03-15
资源大小:177k
文件大小:1k
源码类别:

压缩解压

开发平台:

Matlab

  1. function arcode = arencode(symbol, pr, seqin)
  2. %算术编码
  3. %输出:码串
  4. %输入:symbol:字符行向量
  5. %      pr:字符出现概率
  6. %      seqin:待编码字符串
  7. high_range = [];
  8. for k = 1: length(pr),
  9.     high_range = [high_range sum(pr(1: k))];
  10. end
  11. low_range = [0 high_range(1: length(pr) - 1)];
  12. sbidx = zeros(size(seqin));
  13. for i = 1: length(seqin),
  14.     sbidx(i) = find(symbol == seqin(i));
  15. end
  16. low = 0; high = 1;
  17. for i = 1: length(seqin),
  18.     range = high - low;
  19.     high = low + range * high_range(sbidx(i));
  20.     low = low + range * low_range(sbidx(i));
  21. end
  22. arcode = low;