概述
再看RXW源码的时候在视频编码结构体里有一个RC结构体,RC(rate control)到底是啥?
码率控制技术 RC (Rate Control) 是实际视频编码器中一个非常重要的技术模块。
根据实际中各种具体应用场景的不同,比如:实时 (real-time or online) 还是离线 (offline) 编码,传统的广播电视 (TV broadcasting) 业务,还是互联网上的流媒体传输 (streaming) 业务等。
对视频编码器的输出码率也就有了多种不同的具体要求和限制,比如:平均还是最大目标码率,缓冲器大小,初始延时等。码率控制就是针对各种不同应用业务场景,通过控制每帧,乃至每个编码单元 CU (Coding Unit),编码的量化参数 QP (Quantization Parameter),使得输出的编码后视频码率满足各项具体限制要求,同时编码性能,包括编码效率和主观质量,也尽可能地最优化。
比如我们常见的CBR (Constant Bit Rate)、VBR (Variable Bit Rate)就是码率控制方式的其中两种
x264中ratecontrol主要过程是;
1.根据前面已经编好的帧计算SATD值来预测当前帧的复杂度(第一帧I帧除外);
2.计算好复杂度之后,根据复杂度和线性量化控制参数(qcomp)来计算qpscale。qpscale会影响最终编码是所用到qp。
3.根据目标码率和之前编码帧所用的比特数可以确定一个rate_factor,若之前编码的比特数多与目标实际产生,则rate_factor小。
这个rate_factor是调整qpscale用的,还有overflow来对qpscale来做溢出补偿处理来控制文件的大小。
4.最后根据计算公式得到qp
参考文章1:rate control
参考文章2:视频编码技术之码率控制
最后
以上就是无聊奇异果为你收集整理的视频编码中的RC(rate control)是什么?码率控制 CBR (Constant Bit Rate)、VBR (Variable Bit Rate)的全部内容,希望文章能够帮你解决视频编码中的RC(rate control)是什么?码率控制 CBR (Constant Bit Rate)、VBR (Variable Bit Rate)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复