编码算法之指数哥伦布编码
来源:互联网 发布:sqlserver 查询合计 编辑:程序博客网 时间:2024/05/19 02:17
转载地址:
http://blog.csdn.net/u012188065/article/details/53590641
引言
最近在看H.264/AVC的一些编码信息,印象最深的就是sps,pps 中的指数哥伦布(Golomb)熵编码算法,从网上搜了一些内容,发现讲解的不是很详细,所以自己总结一下便于自己查看
sps,pps中常用的指数哥伦布编码算法有
1、无符号指数哥伦布熵编码 ue(v)
2、有符号指数哥伦布熵编码 se(v)
3、映射指数哥伦布熵编码 me(v)
4、截断指数哥伦布熵编码 te(v)
后两者不是很常用,目前也没有搞明白,先略过,只解释前两者
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
2.3 其他
注意0的有符号指数哥伦布熵编码的二进制序列为 1
3、映射指数哥伦布熵编码 me(v)
略,以后补充
4、截断指数哥伦布熵编码 te(v)
略,以后补充
- 编码算法之指数哥伦布编码
- 编码算法之指数哥伦布编码
- 熵编码之指数哥伦布编码
- [转帖]指数哥伦布编码
- 指数哥伦布编码
- 指数哥伦布编码
- 指数哥伦布编码
- 指数哥伦布编码
- 指数哥伦布编码
- 指数哥伦布编码代码
- 指数哥伦布编码
- 指数哥伦布编码
- [熵编码] 指数哥伦布编码
- 无符号哥伦布指数编码
- 0阶指数哥伦布编码
- 0阶指数哥伦布编码
- HEVC一阶指数哥伦布编码
- H.264 中的指数哥伦布编码
- unity与android图标冲突问题
- 一个简单的时间轴实现
- iOS Audio Unit 录音 AudioStreamBasicDescription 详解
- 『ORACLE』 配置共享服务器(11g)
- Oracle SQL多行字符串拆分使用层次查询(connect by)、正则表达式
- 编码算法之指数哥伦布编码
- C++为何那么复杂?
- spring_spring范围开始@PostConstruct、与结束注解@PreDestroy
- Android中综合使用AsyncHttpClient和SmartImageView编写新闻客户端的案例
- Qt 编译报错 error: invalid use of incomplete type 'class QXxx'
- mapPartition
- SecureCRT中设置背景色和文字颜色
- sklearn之训练数据和测试数据随机选取
- Cadence 17.2 Pad Editor入门指南(2)