再看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)相关推荐

  1. 视频编码中CBR和VBR的区别

    在视频编码中,有一个模块是码率控制,即通过选择一系列编码参数,使得视频编码后的比特率满足所需要的速率限制,并且使编码失真竟可能小.该模块严格上不属于视频编码标准,属于率失真优化有两范畴.码率控制分为两 ...

  2. 视频编码中的一些缩写

    视频编码中一些缩写 HEVC/VVC 码率控制 AVS3 指令集相关 @***-保持更新-*** GOP(Group of Pictures)--图像组 CTU(Coding Tree Unit)-- ...

  3. 视频编码中vbr和cbr 、avbr、 qvbr 、cvbr、fixqp优缺点

    VBR(Variable Bitrate Coding)和CBR(Constant Bitrate Coding)是视频编码中最基础的两种压缩模式,其他模式都是在这两种模式的基础上进行了某种程度的扩展 ...

  4. 【待更新】感知视频编码中的感知检测技术(显著性物体检测向)

    之前对ROI编码感兴趣,做了显著性检测方面的文献综述.截至到2019年1月13号有13400字. 现在搬上来,一来交流,二来重温 感知视频编码PVC HVS 针对HVS所构建的数学模型分类 基于HVS ...

  5. A Convolutional Neural Network Approach for Half-Pel Interpolation in Video Coding一视频编码中半像素插值的卷积神经网络

    摘要 - 运动补偿是视频编码中的基本技术,用于消除视频帧之间的时间冗余.为了进一步提高编码效率,已经使用了子像素运动补偿,其需要对分数样本进行插值.视频编码标准通常采用源自信号处理理论的固定插值滤波器 ...

  6. 视频编码中的块效应、振铃效应和呼吸效应分析

    1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: 1.编码过程中对残差进行DCT变 ...

  7. 【Codecs系列】之视频编码中的块效应、振铃效应和呼吸效应分析

    Date: 2018.5.28 1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: ...

  8. 【Codecs系列】视频编码中常用熵编码介绍

    Date: 2017/10/21 Content:视频编码中常用熵编码方法介绍 1.熵编码 编码过程中按照熵原理不丢失任何信息的编码,即编码过程中不丢失信息量,保存信息熵. 熵编码是无损压缩的编码方法 ...

  9. 阿里云视频直播中如何直接打开云导播台控制界面进行导播切播操作?

    阿里云视频直播中如何直接打开云导播台控制界面进行导播切播操作? 首先,重复我们的关键问题:阿里云视频直播中如何直接打开云导播台控制界面进行导播切播操作.这一问题,对于许多网络直播从业者来说,尤其是那些 ...

最新文章

  1. Ubuntu系统查看文件夹目录
  2. android布局共享,布局共享(如所有ACTIVITY拥有相同的布局部分,比如ACTIONBAR,在BASEACTIVITY中写入布局)...
  3. python使用matplotlib可视化线图(line plot)、在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot)
  4. gin框架长连接_一个TCP长连接设备管理后台工程(一)
  5. Android Studio 项目断开SVN连接
  6. 我对python的理解_python之我对装饰器的理解
  7. 微课系列(5):Python程序中__name__变量的用法
  8. python语言能做什么-python语言到底可以做什么呢?
  9. BZOJ4025 : 二分图
  10. Java IO 创建文件解决文件名重复问题
  11. 中学生信息技术计算机软件教案,初中信息技术教学计划
  12. java中英文切换,Java实现多语言切换
  13. icon好看的图标-素材库
  14. 数据处理第3部分:选择行的基本和高级的方法
  15. cidaemon.exe是什么进程及怎样关闭cidaemon.exe进程
  16. 深圳安全研讨会11月15日举行
  17. matlab qua2d,matlab 几个关于GPS/INS和GPS/AHRS的程序 - 下载 - 搜珍网
  18. opencv remap matlab,如何使用OpenCV的remap函数?
  19. 第二章 SQL命令参考-REASSIGN OWNED
  20. [JZOJ5629]【NOI2018模拟4.4】Map

热门文章

  1. 恶心的C语言strtok函数
  2. 网络系统工程师的最终归宿(一)创业还是打工
  3. python上机报告出现的问题和解决方法_关于发现存在问题及解决方法的报告
  4. SAP Web IDE本地环境搭建
  5. 这些名言都是有后半句的,以前都按前半句理解,太坑人!
  6. BSEG和BSIS、BSAS、BSID、BSAD、BSIK、BSAK六个表的关系
  7. 12星座男生最吃哪一套
  8. ABAP:Read_Text(SAVE_TEXT)函数的使用方法
  9. 关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)
  10. 作业帮、猿辅导、学而思们,正在经历自己的高考