张晖的专栏

一名在中国传媒大学&乐视搞视频技术的研究僧

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

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

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


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



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

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




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


也就是



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


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


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


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

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


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nonmarking/article/details/46788601
个人分类: 基础知识 H.264
上一篇windows下webrtc的编译 2016
下一篇H.264码率控制算法研究及JM相应代码分析(二)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭