zoukankan      html  css  js  c++  java
  • 无符号指数哥伦布熵编码

    1、无符号指数哥伦布熵编码

    1.1 编码过程

    1、将待编码的数加1转换为最小的二进制序列(假设一共M位);
    2、此二进制序列前面补充M-1个0;
    3、enjoy!

    1.1.1 示例

    对 4 进行无符号指数哥伦布熵编码
    1、将4加1(为5)转换为最小的二进制序列即 101 (此是M=3)
    2、此二进制序列前面补充M-1即两个0
    3、得出的4的无符号指数哥伦布熵编码的序列为 00101

    1.2 解码过程

    1、获取二进制序列开头连续的N个0
    2、读取之后的N+1位的值,假设为X
    3、X-1获取解码后的值

    1.2.1 示例

    如对 00101进行无符号指数哥伦布熵解码
    1、获取开头连续的N个0, 此时N = 2
    2、再向后读取N+1位的值,即 101,为5
    3、 5 - 1 =4 获取其解码后码值,enjoy!

    1.3 其他

    注意0的无符号指数哥伦布熵编码的二进制序列为 1

    2 有符号指数哥伦布熵编码

    2.1 编码过程

    1、将待编码的数的绝对值转换为最小的二进制序列(假设一共M位)
    2、在此二进制序列后补充一位符号位0表示正,1表示负
    3、在此二进制序列前补充M个0
    4、enjoy

    2.1.1 示例1

    如对4进行有符号指数哥伦布熵编码
    1、4的绝对值转为最小二进制序列,即 100 (此时M = 3)
    2、后面补充符号位,0 即 1000
    3、前面补充M个0, 即 0001000
    4、enjoy

    2.1.2 示例2

    如对-15进行有符号指数哥伦布熵编码
    1、-7的绝对值转为最小二进制序列,即 1111 (此时M = 4)
    2、后面补充符号位,1,即 11111
    3、前面补充M个0,即 000011111
    4、enjoy

    2.2 解码过程

    1、获取二进制序列开头连续的N个0
    2、读取之后的N位的值,假设为X
    3、获取最后1位符号位
    4、获取解码后码值

    2.2.1 示例1

    如对二进制序列 0001000 进行有符号指数哥伦布熵解码
    1、获取开头连续的N个0, 此时N = 3
    2、再获取N为数值,即 100 即为4
    3、获取最后的符号位,0,即为正值
    4、故此序列解码后的码值为4

    2.2.2 示例2

    如对二进制序列 000011111 进行有符号指数哥伦布熵解码
    1、获取开头连续的N个0, 此时N = 4
    2、再获取N为数值,即 1111 即为15
    3、获取最后的符号位,1,即为负值
    4、故此序列解码后的码值为-15

    from: http://blog.csdn.net/yuanbinquan/article/details/60148345

  • 相关阅读:
    【BZOJ4383】[POI2015]Pustynia 线段树优化建图
    【BZOJ4519】[Cqoi2016]不同的最小割 最小割树
    【BZOJ2229】[Zjoi2011]最小割 最小割树
    【BZOJ2151】种树 双向链表+堆(模拟费用流)
    Python入门之Pycharm开发中最常用快捷键
    Python Web学习笔记之GIL机制下的鸡肋多线程
    SQL学习之Can't connect to MySQL server on localhost (10061)
    win10锁屏界面无法更新
    如何安装Pycharm官方统计代码行插件
    Notepad++ 主题配色配置
  • 原文地址:https://www.cnblogs.com/aspirs/p/7191108.html
Copyright © 2011-2022 走看看