H.264码率控制算法研究及JM相应代码分析(一)

原创 2015年07月07日 14:30:10

这是之前我们学校张远老师留的课程作业,要求个人整理分析H.264码率控制算法及JM相应代码,个人感觉自己做的还不错,所以发出来给大家分享一下。鉴于公式什么的太多了,我这里就直接从文档里截图了。文末包含了pdf文件的下载链接。

要明白码率控制算法,首先要理解率失真理论,定义如下


而要实现这一目标的基本方法有两个:拉格朗日乘子法和动态规划方法



所以最后无论哪种方法,综合考虑起来都只能得到局部最优解。目前看来一般还是用的拉格朗日乘子法。

下面就分别看一下对于前面提到的三大编码参数是如何做出选择来实现RDO 的,首先需要注意的是,视频编码器的整体比特率主要由编码模式选择、运动矢量和量化步长决定,失真度则主要由量化参数决定。




为什么偏偏要看这两种分布?因为DCT 变换后的直流DC 系数通常服从高斯分布,而交流系数一般服从拉普拉斯分布。在较高码率时,对于零均值的统计独立信源,经过标量量化后的比特数b- 失真D 曲线可以用下式近似:


也就是



到这里我们找到拉格朗日乘子和量化步长之间的关系,意味着三种优化参数之间建立了紧密的联系。看起来似乎所有问题都得到了解决,其实不然。


我们用如下图所示的漏斗模型描述这一缓冲区的原理


解码器根据这个缓冲区模型确定内存大小和解码延时等参数。编码器则根据缓冲区模型对编码码流进行约束控制,保证解码器在内存大小确定的情况下正常解码,即解码过程中解码端缓冲区既不上溢也不下溢。这通常需要码率控制技术来实现,因此码率控制是视频编码和传输的关键环节。


本文完整pdf文档下载链接:http://download.csdn.net/detail/nonmarking/8876649

各位看官,如果您觉得本人的博客对您有所帮助,可以扫描如下二维码进行打赏,打赏多少您随意~


版权声明:本文为博主原创文章,未经博主允许不得转载。

码率控制技术原理

引起编码器的输出比特码率波动的原因主要有两个。首先,数字视频信号中包含了大量的时域和空域冗余,编码器的主要任务就是去除这些冗余。由于时间冗余和空间冗余是随机的,从而造成编码器输出比特率波动。另一个原因...
  • scg881008
  • scg881008
  • 2012年01月11日 14:03
  • 5475

H.264的码率控制算法

H.264的码率控制算法采用了多种技术,其中包括自适应基本单元层(Adaptive Basic Unit Layer)、流量往返模型(Fluid Traffic Model)、线性MAD模型、二次率失...
  • u010550883
  • u010550883
  • 2013年11月02日 09:05
  • 990

H.264码率控制算法研究及JM相应代码分析(一)

这是之前我们学校张远老师留的课程作业,要求个人整理分析H.264码率控制算法及JM相应代码,个人感觉自己做的还不错,所以发出来给大家分享一下。鉴于公式什么的太多了,我这里就直接从文档里截图了。 要明白...
  • nonmarking
  • nonmarking
  • 2015年07月07日 14:30
  • 2535

x264源码分析与应用示例(二)——码率控制

1、x264的码率控制原理与对应源码解析 基本概念 对于此前了解过H.264的码率控制原理的读者(如果不了解,也可以去看我的文章H.264码率控制算法研究及JM相应代码分析),首先需要说明...
  • charleslei
  • charleslei
  • 2016年08月24日 23:37
  • 1046

H.264码率控制算法研究及JM相应代码分析(三)

在前一篇文章的基础上继续往下讲。 基本单元层码率控制 如果不是选择一帧作为一个基本单元,还得添加上额外的基本单元层码率控制。 同帧层码率控制一样,I帧以单一的QP值编码,且这个QP值和帧层码率控制中的...
  • nonmarking
  • nonmarking
  • 2015年07月07日 15:12
  • 1265

H.264码率控制算法研究及JM相应代码分析(二)

在前一篇文章的基础上,现在先看一下MPEG4 编码标准中应用的码率控制算法,总结起来,各大算法都是在解决两个问题:RD 率失真的优化以及避免缓冲区的上溢下溢。 MPEG-4 VM8 码率控制算法 在这...
  • nonmarking
  • nonmarking
  • 2015年07月07日 14:44
  • 1559

H.264码率控制算法研究与JM相应代码分析

  • 2015年07月07日 15:15
  • 1.54MB
  • 下载

有关码率控制的FAQ

有关码率控制的FAQ --------ByHychong 1.码率控制中几个参数含义的理解 在 RC 中经常会碰到这几个参数,InitialDelayOffset, Pm_X1,Pm_X2,Pm...
  • sujunzy666
  • sujunzy666
  • 2014年03月08日 13:50
  • 1187

H264码率控制简介

码率控制实际上是一种编码的优化算法,它用于实现对视频流码流大小的控制。那么它控制的目的是什么呢?     我们可以试想一下,同样的视频编码格式,码流大,它包含的信息也就越多,那么对应的图像也就越清晰...
  • dxpqxb
  • dxpqxb
  • 2013年10月12日 11:23
  • 4111

HEVC码率控制算法研究与HM相应代码分析(二)——新的码率控制模型

下面简单回顾一下H.264中的码率控制算法,并说明为什么不能直接将之前的码率控制算法用于HEVC,同时介绍一下一种很有意思的新的R-λ模型。 在H.264以及之前的码率控制算法中,R-Q模型得到了广...
  • nonmarking
  • nonmarking
  • 2015年08月08日 13:16
  • 2070
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:H.264码率控制算法研究及JM相应代码分析(一)
举报原因:
原因补充:

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