【数字图像处理与应用】Lecture 16 图像压缩(2)

数字图像处理与应用 Class 16. 20200622

Lecture 16 Compression

--Lossless Image Compression

  #Variable length coding(Eliminate coding redundancies)

         Huffman coding

         Arithmetic coding

  #LZW coding (Reduce interpixel redundancies)

  #Hybrid Coding

--Lossy Image Compression


Arithmetic coding

源符号和码字之间不存在一一对应关系。

一个完整的源符号序列被分配一个算术码字。

码字定义了0到1之间的实数区间。

随着消息中符号数量的增加,用于表示它的间隔会变小。

而表示间隔所需的信息单位(比特)的数量也会变大。

栗子:

对于编码的信息源为“dacab”,每个源符号的概率为:P(a)=0.4,P(b)=0.2,P(c)=0.2, P(d)=0.2

在编码过程开始时,假设信息源占据整个半开区间[0,1),根据概率将每个符号的初始区间初步细分为四个区域:a=[0,0.4), b=[0.4, 0.6), c=[0.6, 0.8), d=[0.8, 1.0)

对于“d”的第一个编码符号,其初始间隔为[0.8,1.0);

对于第二个符号“a”,因为前一个符号“d”被限制在[0.8,1.0)中,所以“a”的值应该在[0,0.4)子区间[0.8,1.0)中,那么

  即符号“da”的编码间隔在[0.8,0.88)。

其中StartN、EndN为新间隔的开始和结束位置,StartB为前间隔的开始位置,LB为前间隔的长度。LeftC和RightC是当前代码间隔的左右边界。

对于第三个符号“c”,它应该在[0.8,0.88)的子区间[0.6,0.8)内,则: 

对于第四个符号“a”:

对于第五个符号“b”:

现在,源信息“dacab”已经被描述为一个实数区间[0.85056,0.85144],或者说在这个区间内的任意实数都可以用来表示源信息。

我们可以将区间[0.85056,0.85144)表示为二进制形式[0.110110011011,0.110110011110]。

我们发现0.1101100111在这个区间内,且长度最短。然后将其作为输入序列符号“dacab”的输出。

因为所有编码的结果都包括“0”。,则可以删除它,并以1101100111作为本例的算术编码结果。

每个字符用8bit,5个字符共40bit,现在只需用10bit。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值