资源经验分享编码原理(附二)----二值化

编码原理(附二)----二值化

2019-09-11 | |  136 |   0

原标题:编码原理(附二)----二值化

原文来自:51CTO      原文链接:http://aix.51cto.com/blog/60948.html


二值化,开门见山的讲,就是将非二进制的字符按照一定的规则编码为二进制串了,这样编码以后,出现的编码符号便只有0和1,从算术编码的角度来讲,可能出现的字符就只有“0”和“1”,这样更有利于编码。常见的二值化编码算法有,一元码,截断一元码,K阶指数哥伦布编码,在此做简单介绍,希望能给大家一个直观的认识。

  1. 一元码

    一元码的编码规则是,对于待编码的符号“x”>=0,编码为x个“1”再加一个“0”编码组成。举个栗子:

    x  = 5,根据一元码编码后,编码为“111110”。

2.截断一元码
截断一元码属于一元码的变体,用在已知待编码的语法元素的最大值Max的情况下。假设待编码符号为x:
如果0  < x < Max,x二值化采用一元码的方式;
如果x = Max,x二值化的二进制串全部由1组成,长度为Max。
举个栗子:
设一个序列中的Max = 6,则对符号“6”进行编码,结果为“111111”,对符号“3”进行编码,按一元码的编码方式,结果为“1110”。

3.K阶指数哥伦布编码
K阶指数哥伦布编码,主要的编码格式为【前缀0】【1】【bit信息】的结构。分别计算出了前缀0的长度,即前缀有多少个0,1的个数,以及bit信息,就完成了整个编编码。编码步骤如下:
(1)将待编码的数据以二进制的形式表示,去掉最低位的k个比特,然后加1,得到新的值T1,查看T1含多少个bit,将该值减1,得到的便是前缀0的个数;
(2)将第一步中去掉的最低K个比特位加到T1后,暂称其为T2;
(3)在T2前增加前缀0.至此编码就完成喽。

还是举个栗子吧:
对7进行一阶指数哥伦布编码,则k =1。
首先计算前缀0的个数:
7的二进制表示为 111,去掉最低位的1个比特,为11,然后加1,得T1 = 100,T1包含3个比特, 3 - 1 = 2,所以前缀0的个数为2;
将去掉的1个比特位加上,得T2 = 1001;
在T2前增加两个前缀0,得 001001,即最终的编码结果为001001。

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:聊聊效果优化跟踪的埋点方案

下一篇:编码原理(附一)--算术编码

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...