lzw编码过程详解_LZW 编码详解.ppt

算术编码具体方法是将被编码的信源消息表示成实数轴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 ] a=[0, 0.4), b=[0.4, 0.6), c=[0.6, 0.8), d[0.8, 1.0) StartN=StartB+LeftC×L EndN=StartB+RightC×L 输入d: 其初始间隔为[0.8, 1.0) 输入a: 其初始间隔为[0, 0.4) StartN=0.8+0×(1.0-0.8)=0.8 “a”的实际编码区间在[0.8, 0.88)之间 “a”的取值范围应在前一符号间隔[0.8, 1.0)的[0, 0.4)子区间内 EndN=0.8+0.4×(1.0-0.8)=0.88 a=[0, 0.4), b=[0.4, 0.6), c=[0.6, 0.8), d[0.8, 1.0) StartN=StartB+LeftC×L EndN=StartB+RightC×L 输入c: 其初始间隔为[0.6, 0.8) StartN=0.8+0.6×(0.88-0.8)=0.848 “c”的取值范围应在前一符号间隔[0.8, 0.88)的[0.6, 0.8)子区间内 EndN=0.8+0.8×(0.88-0.8)=0.864 “c”的实际编码区间在[0.848, 0.864)之间 a=[0, 0.4), b=[0.4, 0.6), c=[0.6, 0.8), d[0.8, 1.0) StartN=StartB+LeftC×L EndN=StartB+RightC×L 输入a: 其初始间隔为[0, 0.4) StartN=0.848+0×(0.864-0.848)=0.848 “a”取值范围应在前一符号间隔[0.848, 0.864)的[0, 0.4)子区间内 EndN=0.848+0.4×(0.864-0.848)=0.8544 “a”的实际编码区间在[0.848, 0.8544)之间 a=[0, 0.4), b=[0.4, 0.6), c=[0.6, 0.8), d[0.8, 1.0) StartN=StartB+LeftC×L EndN=StartB+RightC×L 输入b: 其初始间隔为[0.4, 0.6) StartN=0.848+0.4×(0.8544-0.848)=0.85056 “b”取值范围应在前一符号间隔[0.848, 0.8544)的[0.4, 0.6)子区间内 EndN=0.848+0.6×(0.8544-0.848)=0.85184 “b”的实际编码区间在[0.85056, 0.85184)之间 设待编码的数据序列为“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) StartN=StartB+LeftC×L EndN=StartB+RightC×L 新间隔的起始位置和结束位置 表示前一间隔的起始位置 前一间隔的长度 当前编码符号的初始区间的左端和右端 第一个被压缩的符号为“d”,其初始间隔为[0.8, 1.0); 第二个被压缩的符号为“a”,由于前面的符号“d”的取值区间被限制在[0.8, 1.0)范围内,所以“a”的取值范围应在前一符号间隔[0.8, 1.0)的[0, 0.4)子区间内, 根据上式可知 StartN=0.8+0×(1.0-0.8)=0.8 EndN=0.8+0.4×(1.0-0.8)=0.88 “a”的实际编码区间在[0.8, 0.88)之间。 第三个被压缩的符号为“c”, 其编码取值范围应在[0.8, 0.88)区间的[0.6, 0.8)的子区间内. 第四个被压缩的符号为“a”, StartN=0.848+0×(0.864-0.848)=0.848 EndN=0.848+0.4×(0.864-0.848)=0.8544 第五个被压缩的符号为“b” St

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值