• 无符号指数哥伦布熵编码


    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

  • 相关阅读:
    Java学习笔记七:Java的流程控制语句之switch
    Java学习笔记六:Java的流程控制语句之if语句
    Java学习笔记五:Java中常用的运算符
    如何在linux下使用git管理上传代码&误删文件修复
    pwnable.tw applestore 分析
    pwnable.tw dubblesort 分析
    word中如何只修改英文的颜色
    word中图片遮挡文字怎么办
    angr进阶(6)绕过反调试
    angr进阶(5)内存操作
  • 原文地址:https://www.cnblogs.com/aspirs/p/7191108.html
Copyright © 2020-2023  润新知