前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编码原理(附二)----二值化

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

作者头像
视界音你而不同
发布2020-04-10 15:59:26
1.4K0
发布2020-04-10 15:59:26
举报
文章被收录于专栏:用户1692782的专栏
二值化,开门见山的讲,就是将非二进制的字符按照一定的规则编码为二进制串了,这样编码以后,出现的编码符号便只有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。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 视界音你而不同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档