Golomb 编码

转载 2016年05月30日 10:00:26

本文转自:http://blog.csdn.net/u012434983/article/details/12709639

Golomb 编码 (满足前缀编码)主要是针对正整数进行编码,Golomb 编码对较小的数用较短的编码,较大的数用较长的编码。

假设 x 为要编码的整数,当x 取较小时,此时Golomb 编码较短,这样可以节省时间。具体算法如下:

假设对正整数 x 进行 Golomb 编码,选择参数 m,令

b = 2m

q = INT((x - 1)/b)

r = x - qb - 1

则 x 可以被编码为两部分,第一部分是由 q 个 1 加 1 个 0 组成,第二部分为 m 位二进制数,其值为 r。我们将 m = 0, 1, 2, 3 时的 Golomb 编码表列出:

   值 x        m = 0       m = 1       m = 2       m = 3
-------------------------------------------------------------
    1             0         0 0        0 00        0 000
    2            10         0 1        0 01        0 001
    3           110        10 0        0 10        0 010
    4          1110        10 1        0 11        0 011
    5         11110       110 0       10 00        0 100
    6        111110       110 1       10 01        0 101
    7       1111110      1110 0       10 10        0 110
    8      11111110      1110 1       10 11        0 111
    9     111111110     11110 0      110 00       10 000
根据 x 的分布规律不同,我们可以选取不同的 m 值以达到最好的压缩效果

相关文章推荐

Golomb 编码

假设对正整数 x 进行 Golomb 编码,选择参数 m,令b = 2^mq = INT((x - 1)/b)r = x - qb - 1则 x 可以被编码为两部分,第一部分是由 q 个 1 加 1 ...
  • WHACKW
  • WHACKW
  • 2015年08月05日 16:16
  • 1233

熵编码 之 3. Golomb coding

Golomb coding主要针对整数进行编码,其基本思想是对较小的数用较短的编码,对于较大的数使用较长的编码。即,达到这样一个效果,假设X为要进行编码的整数,当X趋于较小的取值时,此时的Golomb...
  • brann
  • brann
  • 2014年05月14日 20:23
  • 1022

Golomb 编码

假设对正整数 x 进行 Golomb 编码,选择参数 m,令 b = 2^m q = INT((x - 1)/b) r = x - qb - 1 则 x 可以被编码为两部分,第一部分是由 q 个 1 ...

Golomb及指数哥伦布编码原理介绍及实现

2017年的第一篇博文。 本文主要有以下三部分内容: 介绍了Golomb编码,及其两个变种:Golomb-Rice和Exp-Golomb的基本原理 C++实现了一个简单的BitStream库,...

Golomb和Exp-Golomb编码原理及实现

2017年的第一篇博文。本文主要有以下三部分内容: 介绍了Golomb编码,及其两个变种:Golomb-Rice和Exp-Golomb的基本原理 C++实现了一个简单的BitStream库,能够方便在...

Golomb及指数哥伦布编码原理介绍及实现

本文主要有以下三部分内容: 介绍了Golomb编码,及其两个变种:Golomb-Rice和Exp-Golomb的基本原理C++实现了一个简单的BitStream库,能够方便在bit流和byte数...

一个简单的ANN算法

[code=C/C++]#include #include int M[10] = {0}; //权值int X[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10...

OS_MemInit 函数

//初始化内存分区//这个函数是通过uCOS-II初始化内存分区,你的请求不能调用这个函数//初始化内存管理void OS_MemInit (void){#if OS_MAX_MEM_PART ==...
  • sunrier
  • sunrier
  • 2011年06月19日 23:24
  • 1840

搜索引擎倒排索引表压缩:gamma编码、Golomb编码

搜索引擎的倒排索引表所占的空间很大,对倒排索引表进行压缩显得非常必要。由于倒排索引表中存储的全部都是数字,对其进行压缩有着专门的方法,Gamma编码就是其中之一。当你每天打开电脑,在百度搜索框中输入你...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Golomb 编码
举报原因:
原因补充:

(最多只允许输入30个字)