美文网首页
四、熵编码算法

四、熵编码算法

作者: 一亩三分甜 | 来源:发表于2024-02-18 14:56 被阅读0次

H264H265视频编解码算法文章汇总

  1. H.264中的熵编码基本方法
  • 熵编码具有消除数据之间统计冗余的功能,在编码端作为最后一道工序,将语法元素写入输出码流

  • 熵解码作为解码过程的第一步,将码流解析出语法元素供后续步骤重建图像使用

  • H.264针对不同的语法元素定义了不同的熵编码方法

H.264中的语法元素描述符

image.png
  1. 指数哥伦布编码
  • 指数哥伦布编码同哈夫曼编码一样,都属于变长编码的一种;

  • 二者的显著区别:

    • 信源相关性:哈夫曼编码依赖于信源的概率分布;指数哥伦布编码与信源无关;

    • 额外信息:哈夫曼编码的数据必须额外携带与该信源匹配的码表;指数哥伦布编码无需携带任何额外信息;

指数哥伦布编码的分类

  • H.264中定义的指数哥伦布编码共分四类:
分类 名称
ue(v) 无符号指数哥伦布编码
se(v) 有符号指数哥伦布编码
te(v) 截断指数哥伦布编码
me(v) 映射指数哥伦布编码
  • 其中ue(v)是其他变型算法的基础,其他算法的结果由ue(v)的结果进一步处理得到

0阶无符号指数哥伦布编码

  • ue(v)的码字分为三部分:[prefix] + 1 + [surfix]

  • 其中,[prefix]部分为连续n个0,[surfix]部分为表示实际数值的信息位,其长度与[prefix]一致;

  • [prefix]和[surfix]的长度由码元取值确定;

ue(v)编码方法

image.png image.png

左右两边的位数相等

se(v)编码方法

  • 有符号指数哥伦布编码通过无符号指数哥伦布编码换算得到,换算个关系为:se = (-1)k+1 ×Ceil(k/2)

  • se和ue的相互关系可表示为下表:

CodeNum Syntax Element Value
0 0
1 1
2 -1
3 2
4 -2
5 3
6 -3
7 4
8 -4
... ...
k (-1)k+1 ×Ceil(k/2)

te(v)和me(v)

  • te(v):截断指数哥伦布编码。解码时首先判断语法元素的取值范围[0, x], x≥1 :

    • 若x>1,解析方法同ue(v)相同;

    • 若x=1,语法元素值等同于下一位bit值的取反。

  • me(v):映射指数哥伦布编码,适用于预测模式为Intra_4x4, Intra_8x8或Inter的宏块的coded_block_pattern

    • 无指定的换算公式,通常由查表的方式进行
image.png

3 .指数哥伦布编码与哈夫曼编码的比较

  1. 哈夫曼编码依赖于信源的概率分布特性,不同信源的哈夫曼编码码表不同;指数哥伦布编码对所有信源统一;

  2. 哈夫曼编码在解码前必须额外获得一份当前信源的码表;指数哥伦布编码不需要任何额外信息;

  3. 指数哥伦布编码的压缩率通常较低,甚至毫无压缩效果;而在不考虑码表的情况下,哈夫曼编码压缩效率更高

通过代码实现指数哥伦布编码ue

0xA6,0x42,0x98,0xE2,0x04,0x8A 编码为0 1 2 3 4 5 6 7 8 9

image.png

相关文章

  • [FFMPEG]H.264中霍夫曼编码

    H264压缩中有个重要的算法,熵编码,熵编码分为两种cavlc(哈夫曼编码也叫变长编码)和cabac(算术编码),...

  • Huffman编码原理及实现

    Huffman编码特点: 熵编码,编码效率受限信息理论熵极限(关于这部分具体理论记不得,参考物理的熵,熵极大,就是...

  • 信息熵、交叉熵与相对熵

    熵的定义本质上是香浓信息量log(1/p)的期望。 信息熵 编码方案完美时,最短平均编码的长度 交叉熵 编码方案不...

  • 熵压缩:信息熵、Huffman编码、算数编码、ANS+FSE

    信息熵 信息熵也叫香农信息熵,百科上有介绍。主要公式: 哈夫曼编码 使用长度不一的01串编码符号,主要是为了让最后...

  • 蓝桥杯:压缩变换--Python解法

    问题描述: 小明最近在研究压缩算法。他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。然而,...

  • 决策树算法梳理

    决策树算法梳理 1. 信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度) 1.1 熵 (entropy)...

  • 霍夫曼编码

    概念 霍夫曼编码(Huffman Coding),又译为哈夫曼编码、赫夫曼编码,是一种用于无损数据压缩的熵编码(权...

  • 【离散数学】树(一)哈夫曼编码基本原理

    正文之前 霍夫曼编码(Huffman Coding),又译为哈夫曼编码、赫夫曼编码,是一种用于无损数据压缩的熵编码...

  • ID3与C4.5算法

    写在开始 在开始决策树算法之前,我们需要准备一些信息论的知识: 信息熵 条件熵 信息增益 交叉熵 相对熵 信息熵 ...

  • 决策树与随机森林(一)

    转自小象学院 我的学习笔记 1. 复习信息熵:熵,联合熵、条件熵、互信息 2. 决策树学习算法:信息增益 | ID...

网友评论

      本文标题:四、熵编码算法

      本文链接:https://www.haomeiwen.com/subject/naopadtx.html