码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-02-09 15:11:24      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:编码格式   格式   编码方式   多少   --   比特   语法   规则   查看   

二值化,开门见山的讲,就是将非二进制的字符按照一定的规则编码为二进制串了,这样编码以后,出现的编码符号便只有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。

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

标签:编码格式   格式   编码方式   多少   --   比特   语法   规则   查看   

原文地址:http://blog.51cto.com/7335580/2070466

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!