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



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

码率控制技术原理

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

X264码率控制总结2——x264码率控制方法概述

X264码率控制方法概述 x264/doc/ratecontrol.txt A qualitative overview of x264's ratecontrol methods By Lor...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

H264三种码率控制方法(CBR, VBR, CVBR)

H264三种码率控制方法(CBR, VBR, CVBR) 分类: H264/5 CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时...
  • yuanray
  • yuanray
  • 2017年01月05日 10:15
  • 249

x264码率控制总结3——码率控制参数详解

x264码率控制参数详解   -q, --qp           Force constant QP (0-51, 0=lossless) 默认:无 说明:三种可选的码率控制方法(bitr...

ffmpeg/x264 码率控制 分析

ffmpeg编码h264流参看:ffmpeg编码示例 x264编码h264流:x264编码示例 有效影响视频码率的参数有: 一:间接影响 1.关键帧间隔 x264 ffmp...
  • dangxw_
  • dangxw_
  • 2016年03月24日 20:30
  • 3373

H264码率控制简介

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

H264三种码率控制方法(CBR, VBR, CVBR)

CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳...
  • szfhy
  • szfhy
  • 2016年03月07日 16:10
  • 13423

H264码率设置

一、什么是视频码率?            视频码率是视频数据(视频色彩量、亮度量、像素量)每秒输出的位数。一般用的单位是kbps。   二、设置视频码率的必要性         在视频会议应...

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

在前一篇文章的基础上,现在先看一下MPEG4 编码标准中应用的码率控制算法,总结起来,各大算法都是在解决两个问题:RD 率失真的优化以及避免缓冲区的上溢下溢。 MPEG-4 VM8 码率控制算法 在这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:H.264码率控制算法研究及JM相应代码分析(一)
举报原因:
原因补充:

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