唯一可译码/单义代码
2015-06-19 23:35
260 查看
单义代码/唯一可译码 Uniquely decodable code
对多个码字(w1,w2,...wn)任意组合成的序列再进行分割,只能唯一地分割成一个个码字.
单义代码不需要同步码 synchronous code
例如: 码字集1:{1,10,00}
码元序列:1100010101
码字集1是单义的
码字集2:{1,01,00,110}
码字集2是非单义的
常用的判别唯一可译码的方法
使用A.A.Sardinas和G.W.Patterson设计的判断法,其步骤如下:
首先,观察码字集中的所有码字,如果码字Wi是码字Wj的前缀,则将响应的后缀作为一个尾随后缀码放入集合Fi中;
其次,考察C和Fi两个集合,如果存在Wm属于C是Wn属于Fi的前缀,或者Wn属于Fi是Wm属于C的前缀,则将相应的后缀作为尾随后缀码放入到集合Fi+1当中;
再次,令F=Fi1UFi2UFi3......即F为码C的尾随后缀集合;
最后,若F中出现了C中的元素,则可以判断码C不是唯一可译码,若F中没有出现C中的元素,则认为码C是唯一可译码.
对多个码字(w1,w2,...wn)任意组合成的序列再进行分割,只能唯一地分割成一个个码字.
单义代码不需要同步码 synchronous code
例如: 码字集1:{1,10,00}
码元序列:1100010101
码字集1是单义的
码字集2:{1,01,00,110}
码字集2是非单义的
常用的判别唯一可译码的方法
使用A.A.Sardinas和G.W.Patterson设计的判断法,其步骤如下:
首先,观察码字集中的所有码字,如果码字Wi是码字Wj的前缀,则将响应的后缀作为一个尾随后缀码放入集合Fi中;
其次,考察C和Fi两个集合,如果存在Wm属于C是Wn属于Fi的前缀,或者Wn属于Fi是Wm属于C的前缀,则将相应的后缀作为尾随后缀码放入到集合Fi+1当中;
再次,令F=Fi1UFi2UFi3......即F为码C的尾随后缀集合;
最后,若F中出现了C中的元素,则可以判断码C不是唯一可译码,若F中没有出现C中的元素,则认为码C是唯一可译码.
相关文章推荐
- eclipse常用快捷键
- 阅读笔记之《梦断代码》一
- C语言日志处理
- java单例模式的讨论
- 关于数列1,1,2,3,5,8,13,21,34..用C#语言编程求第n项为?
- 关于C++模板化
- java笔记21 常用API
- 广告条滑入滑出源代码实现
- Window下使用C语言实现目录的遍历
- C语言函数调用约定
- 【java基础】——String类和基本数据类型包装类
- C语言知识点拓展
- 【学习笔记】【C语言】位运算
- C#自定义控件开发
- Python学习笔记(5)---ESETful
- C#数据绑定(续)
- 14Spring通过注解配置Bean(2)
- 记录一个c#计算器程序
- leetcode--Evaluate Reverse Polish Notation
- Java7 ForkJoin 框架