2017-09-21

猎数博客

数据挖掘,机器学习

视频编码之熵编码

作者:江航 / 2011-06-01 / (阅读 1,905 次) /



时间模型中生成的运动向量(MV)和空间模型中生成的DCT系数被送到熵编码模块进行编码。

预测编码:

对于运动向量而言,它和周围的宏块具有很大的相关性,因此可以利用预测编码的方式进行编码,比如拿已经编码过的某个宏块的MV作为参考,计算当前MV和参考MV的差值(MVD),编码这个MVD就可以了,这个MVD通常只含有较少的数据量。

变长编码之霍夫曼编码和算术编码。

假设要编码MVD,对于霍夫曼编码而言,需要预先知道MVD的概率分布,然后再进行编码。如果不同的视频采用不同的概率分布,那么在传输的时候这个概率分布也需要被传输。另外,在实时编码的时候,如果帧数据量比较大,要预先计算这个概率分布需要要不少时间。然而,MPEG-4预先把这个概率定死,根据这个预设的概率,计算了一个编码表。

对于变换系数而言,MEPG-4计算的表是对(run,level,last)三元组来进行编码。其中level表示当前非零值是多少,run表示后面跟几个零,last表示当前是不是已经到了最后一个系数。比如下面的系数表:

3 0 0 0

2 0 0 0

0 0 4 0

0 0 0 0

根据zigzag顺序,第一个三元组为(1,3,0),即第一个level=3,后面跟1个零,不是最后一个系数。接下来是(8,2,0) (4,4,1),这样,三个三元组就把这个矩阵表示完成了。而每个三元组对应于一个编码,最少的编码只有3bits,如果算平均每个三元组是8个bits,这样,这个矩阵就可以被大概24bits表示出来,压缩率是很高的。

同样的,对于MVD而言,MPEG-4里面也有一个预先计算好的表,不过这个表表示的是两元组,即MVD的dx和dy。 对每个dx,有一个编码与之相对应。每个dxdy需要根据dx,dy分别去查这个表,组合起来得到他们的编码。

算术编码:

算术编码是把一个序列编码成一个数字,算术编码可以无限的接近最优编码,而霍夫曼编码无论在什么情况下,某个符号的最小编码长度都至少是一个bit。

一个包含了运动预测和补偿(残差)的CODEC系统通常被叫做 DPCM 。 再加上DCT变换和熵编码系统,可以被叫做 DPCM/DCT CODEC系统。

下面是这个系统的框图:



本文地址: http://www.bagualu.net/wordpress/archives/698 转载请注明






相关文章

  • 视频编解码的基本概念( 2,241 )
  • 视频编码之熵编码( 1,905 )
  • MPEG-4和H.264简介( 1,902 )
  • deinterlace 简单介绍( 1,895 )
  • interlace 隔行扫描 逐行扫描( 1,733 )
  • 视频格式 NTSC PAL SECAM 1080i 1080p 电影( 1,686 )
  • 视频处理器带宽简单分析( 1,668 )
  • 时间模型和预测( 1,662 )
  • 视频编码之空间模型( 1,653 )
  • Leave a Reply

    您必须登录以发表评论,

    沪ICP备11036560号
    联系我: jianghang at bagualu.net