指数哥伦布码原理的直观理解

编码原理

指数哥伦布码分为前缀后缀两个部分,非负整数Nk阶指数哥伦布码可用如下步骤生成。
在这里插入图片描述

直观理解

如上图高亮部分所示,该编码的关键原理在于后缀的值Value为什么是 N − 2 k ( 2 m − 1 ) N-2^k(2^m-1) N2k(2m1)​​​​​​​​​,从而我们可以根据Value解码得到codeNum。以下我们用N=17k=2为例,进行讲解。

首先,N的二进制表示是10001

① 去除末尾k=2位后,得到100

② 加上1,得到101,长度为3=m+1

③ 再添加上m=2个前导0和被删除的k=2位后,得到0010101

在这整个过程中,我们来分析一下后缀码,也就是0101,是如何由N演变而来的:

在②中,去除末尾k位后加1,相当于原始的N加上了 2 k 2^k 2k​​​​,变成了10101

10101中最前面的1并不属于后缀,因此我们需要减去它。注意到10101的长度是k+(m+1)k是末尾2位,而m+1是前3位。因此减去最前面的1,也就是在前面的基础上减去 2 m + k 2^{m+k} 2m+k

因此, V a l u e = N + 2 k − 2 m + k = N − 2 k ( 2 m − 1 ) Value=N+2^k-2^{m+k}=N-2^k(2^m-1) Value=N+2k2m+k=N2k(2m1)。​

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值