如题所述
指数哥伦布编码(Exponential-Golomb coding, Exp-Golomb)是一种通用的压缩编码方法。Teuhola在1978年提出[4]。
下面展示了指数哥伦布(Exp-Golomb)编码的码字(codeword)前面的一部分,code_num为codeword的序号。
可以根据以下规则从code_num得到codeword:
可以看出codeword的结构是有规则的:
1个Exp-Golomb的codeword有以下的结构:
[Zero prefix] [1] [INFO]
每个codeword可以通过以下函数推导出来:
相反的,
注意 :
示例:
(a) code_num = 107
(b) codeword = 000000011100011
表(Mappings to code num)
示例
在Baseline Profile设置下,一个帧内编码的宏块各符号的编码情况如下[2]:
Golomb Coding由 Solomon W. Golomb 于1960年发明。
Golomb Code 家族包括:
使用“n个1和1个0”(或者“n个0和1个1)来编码1个非负整数。
编码实现
解码实现
码字(codeword)
注:其中r=n%m。
对q使用unary code
对r使用固定长度编码,有两种情况要考虑
的一种特殊的Golobm code。
编码实现
解码实现
在Exp-Golomb中,组的大小是指数型增长的。
, n>=0。
在一系列独立的Yes/No实验(伯努利试验)中,假设每次一次实验失败的概率为p,则直到第n+1次才成功的概率可以用上式表示。
几何分布对图像/视频压缩非常有用
示例1: 游程编码(run-length coding)
几何分布是指数分布的离散类比
双边的几何分布是拉普拉斯(Laplacian)分布(也叫双指数分布,double exponential distribution)的离散类比
Golomb编码的重要性
对于几何分布
当p>1/2时,如何设计最优编码?
寻找自适应Golomb编码的目标:对于给定的数据寻找最佳的m使得
如何从过去的统计数据找到p
指数哥伦布编码是一种通用的熵编码方式,编码规则比较简单,不需要知道编码数据的概率分布。
但是压缩效率是怎么而来的呢,还没有找到参考