简单短序列的算术编码的MATLAB实现.pdfVIP

  • 5
  • 0
  • 约1.11万字
  • 约 9页
  • 2020-09-03 发布于天津
  • 举报
. 简单短序列的算术编码的 MATLAB实现 正确实现的算术编码算法压缩能力 Shannond 定理描述的理论极限,是目前已知的压缩能力 最强的无损压缩算法。 不过,由于算术编码算法的实现比较复杂, 使用它作为默认压缩算法的应用程序还相当少。 在 Unix 平台上非常流行的 bzip2(这个工具有命令行模式的 Windows 版本 )使用的就是经过修 改的算术编码算法。 目前为止还没有使用算术编码作为默认压缩算法的 Windows 应用程序, WinRAR 和 WinIMP 能够支持 bzip2 的解压。除此之外,在最新的 JPEG 标准中也用到了经过修改的算 术编码压缩算法,但 JPEG 所用的那种算法受专利保护,因此使用时必须获得授权。 在之后的文章会很好的研究这个算法的实现: 现在给出一个简单的实例: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 算术编码过程实例 ssbm.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% about={... 本实例说明: 字符串不能太长,程序不加判断,请注意溢出; 本实例只限定少数字符串 a b c d e ; 实例只是说明一下算术编码过程。 }; disp(about); str=input( 请输入编码的字符串 ( 本程序仅仅是一个实例, 请仅 输入 a b c d e ):); l=0;r=1;d=1; %初始间隔 %程序限定字符为: a、b、c 、d、e p=[0.2 0.3 0.1 0.15 0.25]; %字符的概率分布, sum(p)=1 n=length(str); . . disp(a b c d e) disp(num2str(p)) for i=1:n switch str(i) case a m=1; case b m=2; case c m=3; case d m=4; case e m=5; otherwise error( 请不要输入其它字符! ); end %判断字符 pl=0;pr=0; for j=1:m-1 pl=pl+p(j);

文档评论(0)

1亿VIP精品文档

相关文档