如何进行算术解码
2 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
奇怪啊..最近连续碰到算术编码的问题....
解码的过程和编码的过程是类似的。
一开始的区间是[0.0, 1.0],然后根据6个字符的概率,把这个区间分成6分,也就是:
a: (0.0, 0.2)
e: (0.2, 0.5)
i: (0.5, 0.6)
o: (0.6, 0.8)
u: (0.8, 0.9)
!: (0.9, 1.0)
然后你看0.32256落在哪个区间,就是哪个字符,现在它落在(0.2, 0.5)之内,所以第一个字符是e
然后再把e的(0,2, 0.5)按照概率分成6分,再看0.32256落在哪个范围内,以此类推
当然,算术编码有一些变种,比如概率是否是自适应性的?一段编码包含几个字符?你问题中的感叹号是否代表结束符?这些都是根据你的实际实现来确定的。你要知道的最重要的一点就是,解码的过程和编码几乎是一致的。
- 2 回答
- 0 关注
- 1910 浏览
添加回答
举报
0/150
提交
取消