下载此文档

!利用游程编码实现二值图像压缩..doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
算术编码、游程编码都属于无损压缩。算术编码( Arithmetic coding ) 算术编码是一种无损数据压缩方法, 也是一种熵编码的方法。和其它熵编码方法不同的地方在于, 其他的熵编码方法通常是把输入的消息分割为符号, 然后对每个符号进行编码。而算术编码是直接把整个输入的消息编码为一个数, 一个满足( ≤ n< ) 的小数 n。算术编码用到两个基本的参数: 符号的概率和它的编码间隔。信源符号的概率决定压缩编码的效率, 也决定编码过程中信源符号的间隔,而这些间隔包含在 0到 1 之间。算术编码的算法思想如下: (1 )对一组信源符号按照符号的概率从大到小排序,将[0,1) 设为当前分析区间。按信源符号的概率序列在当前分析区间划分比例间隔。(2 )检索“输入消息序列”,锁定当前消息符号(初次检索的话就是第一个消息符号)。找到当前符号在当前分析区间的比例间隔,将此间隔作为新的当前分析区间。并把当前分析区间的起点(即左端点)指示的数“补加”到编码输出数里。当前消息符号指针后移。(3 )仍然按照信源符号的概率序列在当前分析区间划分比例间隔。然后重复第二步。直到“输入消息序列”检索完毕为止。(4 )最后的编码输出数就是编码好的数据。在算术编码中需要注意几个问题: ( 1) 由于实际计算机的精度不可能无限长, 运算中出现溢出是一个明显的问题, 但多数及其都有 16位, 32 位或者 64 位的精度,因此这个问题可以使用比例缩放方法解决。( 2 )算术编码器对整个消息只产生一个码字,这个码字是在间隔[0,1) 中的一个实数,因此译码器在接受到表示这个实数的所有位之前不能进行译码。( 3 )算术编码是一种对错误很敏感的编码方法,如果有一位发生错误就会导致整个消息译错。算术编码可以是静态的或者是自适应的。在静态算术编码中, 信源符号的概率是固定的。在自适应算术编码中, 信源符号的概率根据编码时符号出现的频率动态地进行修改, 在编码期间估算信源符号概率的过程叫做建模。需要开发动态算术编码的原因是因为事前知道精确的信源概率是很难的,而且不切实际。当压缩消息时,不能期待一个算术编码器获得最大的效率, 所能做的最有效的方法是在编码过程中估算概率。因此动态建模就成为确定编码器压缩效率的关键。游程编码( RLE 编码—— Run Length Encoding ) 游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。对于二值图有效。行程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”。行程编码因此而得名),使符号长度少于原始数据的长度。例如: 5555557777733322221111111 行程编码为:( 5,6 )( 7,5 )( 3,3 )( 2,4 )( l,7 )。可见,行程编码的位数远远少于原始字符串的位数。在对图像数据进行编码时, 沿一定方向排列的具有相同灰度值的像素可看成是连续符号, 用字串代替这些连续符号, 可大幅度减少数据量。行程编码分为定长行程编码和不定长行程编码两种类型。行程编码是连续精确的编码, 在传输过程中, 如果其中一位符号发生错误, 即可影响整个编码序列, 使行程编码无法还原回原始数据。游程编码所能获得的压缩比有多大, 主要取决于图像本身的特点。如果图像中

!利用游程编码实现二值图像压缩. 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小73 KB
  • 时间2017-01-04