码率控制实际上是一种编码的优化算法,它用于实现对视频流码流大小的控制。那么它控制的目的是什么呢?
我们可以试想一下,同样的视频编码格式,码流大,它包含的信息也就越多,那么对应的图像也就越清晰,反之亦然。目前常用的两种码流控制方式是VBR和CBR,VBR是动态比特率,CBR是固定比特率。那么他们是怎么来实现的呢?
我们首先看视频编码的目的,它是为了在有限的带宽中传输尽可能清晰的视频,我们以每秒25/帧的图像举例,25帧图像中定义了GOP组,目前主要是有I,B,P帧三种帧格式,I帧是关键帧,你可以想象它就是一幅JPEG压缩图像,而B,P帧是依靠I帧存在的,如果丢失了I帧,B,P帧是看不到图像的,B,P帧描述的不是实际的图像像素内容,而是每个相关像素的变化量,他们相对于I帧信息量会很小。GOP组是指一个关键帧I帧所在的组的长度,每个GOP组只有1个I帧。
我们再来看,一组画面的码流大小跟什么有关?当视频编码的压缩方式都一样,清晰度要求都一样的时候,GOP组的长度格式决定了码流的大小,例如:每秒25帧画面,GOP组长度为5,那么帧格式为IBPBP,那么1秒钟有5个I帧,10个B帧,10个P帧,如果GOP组长度为15,帧格式就是IBBPBBPBBPBBPBB,那么1秒钟内会有2个I帧和16个B帧和7个P帧,那么5个I帧比2个I帧占用的数据信息量大,所以GOP组的长度格式也决定了码流的大小。
最后,我们再来看VBR和CBR,对于VBR来说,它可以通过特殊的算法来控制一个GOP组的长度,也就是I帧的数量,当图像中运动图像多时,我可以把I帧数量加大,那么图像会很清晰,如果图像内元素基本静止时,它甚至可以把GOP组调到25的长度。那么根据前面的描述,可以想象这是一种为了确保图像质量的控制手段,它非常灵活,不死板,但是要求控制算法非常的精确,不精确会导致很多问题,例如码流突增后不降低,即使带宽足够,会导致图像出现问题。
CBR相反,它的带宽不变,码流不改变,一直都是一样的大小(会有少许的变化),图像运动量超过码流承受能力时,图像会出现边缘模糊的现象,它的目的是为了稳定带宽,它的实现方式就相对简单,码流不变就需要均衡IBP之间的关系,动态视频大时I帧小,BP大,运动视频小时I帧大,BP小。总之都是通过编解格式的算法来实现的。
总结一下,VBR码流控制方式可以降低图像动态画面少时候的带宽占用,CBR控制方式码流稳定,图像状态较稳定。他们为了解决的是不同需求下的不同应用。

码率控制、VBR、CBR相关推荐

  1. 【from Spark!】音视频中的码率控制(CBR、VBR、CVBR、FIXQP)

    原文地址:https://blog.csdn.net/qq_28258885/article/details/118891810 什么是码率? 码率就是数据传输时单位时间传送的数据位数. 一般我们用的 ...

  2. 视频编码码率控制:CBR、VBR和ABR

    下面介绍不同的码率控制模型和适用场景: CQP:固定QP,最简单的码率控制方式,每帧图像都按照一个特定的QP来编码,每帧编码后的数据量有多大是未知的,既不是码率优先模型也不是质量优先模型,不过是实现最 ...

  3. ffmpeg 编解码 码率设置问题 CBR 、VBR

    之前都是利用硬件进行视频流的编解码 最近 在利用ffmpeg 编解码在CPU上进行软解软编码 之前别的硬件平台设置码率和vbr cbr的时候 提供了接口直接设置一下就可以 但是ffmpeg这里 并没有 ...

  4. 视频编码中的RC(rate control)是什么?码率控制 CBR (Constant Bit Rate)、VBR (Variable Bit Rate)

    再看RXW源码的时候在视频编码结构体里有一个RC结构体,RC(rate control)到底是啥? 码率控制技术 RC (Rate Control) 是实际视频编码器中一个非常重要的技术模块. 根据实 ...

  5. 固定码率(CBR)与可变码率(VBR)

    固定码率(CBR)与可变码率(VBR) http://wang78hao.blog.163.com/blog/static/12116387120103308301776/ 一般在我们输出视频文件的时 ...

  6. h264的码率控制 JVT-G012

    开始看h264的码率控制,很多地方都提到 G012,拿来做为参考比较,看来很有必要研究清楚. 偶这人,E文文档不翻译的话,看过就忘了,于是草草翻译了下,因为不打算做B帧,也不准备在同一帧中使用不同的M ...

  7. 【HISI系列】之HISI芯片码率控制使用说明

    DATE: 2019-1-30 参考 HISI系列文档<芯片码率控制使用说明.pdf> [Codec系列]之常用码率控制算法分析 摘要 1.CBR参数说明 2.VBR参数说明 3.宏块级码 ...

  8. HEVC/H.265编码HM码率控制

    HEVC/H.265编码标准HM平台码率控制流程 研究生期间了解过HM平台的码率控制过程,现在时隔2年多又回顾了一下HM平台的码控流程,发现相较之前多了CpbSaturationEnabled这么个机 ...

  9. x265代码阅读:码率控制(一)

    x265中码率控制算法貌似与x264的码率控制算法基本相同,基本上是经验性的,与ITU-T/MPEG各类标准推荐的码率控制算法均不同. x265的率控应该只是帧级率控,虽然有与CU相关的率控参数,但其 ...

最新文章

  1. mfc工程中添加com接口支持
  2. [Github推荐]CVPR2019录用论文下载及可视化论文网站
  3. nodejs搭配phantomjs highcharts后台生成图表
  4. 在Docker里面安装Ubuntu,并且使用ssh进行连接
  5. 基于Ubuntu环境使用docker搭建对于中文识别的chineseocr_lite项目
  6. qsub 指定节点_PBS,QSUB常用命令
  7. Vue-tools.crx 及安装常见问题解决
  8. 今晚直播丨2020年全国首场12c OCM直考揭秘
  9. oracle rda结果,Oracle诊断工具-RDA使用
  10. SpringBoot整合Jersey2.x实现文件上传API
  11. 理解Ruby的4种闭包:blocks, Procs, lambdas 和 Methods
  12. 对接京东联盟,签名无效
  13. 算法课设——逃狱的汉尼拔博士
  14. E - New Year Snowmen
  15. 【分享】如何自动同步企业微信外部客户信息到CRM系统?
  16. 纯干货!轻量化软件设计五大法则
  17. 2022最新简约好用的夏雨图床系统源码+UI超好看
  18. 进入BeOS的花花世界 系列六
  19. 通过替换音效文件,实现在安卓手机上使用wp/nokia/wm10按键键盘声音
  20. 使用 spacedesk 与 parsec 让安卓平板 或者电脑 作为电脑的拓展屏 的简单介绍

热门文章

  1. 有关4G-LoRa-NBIoT通讯方式在现实应用中的对比分析
  2. php字符串加加运算,php 学习笔记
  3. 消防系统设计市场现状及未来发展趋势
  4. 地理信息系统-坐标系统
  5. 五层协议网络体系结构的要点及主要任务
  6. ubuntu16.04环境Kdevelop安装和汉化
  7. android程序ping服务器
  8. 四个程序员编辑器,学习编程必备
  9. python输入身份证号得到出生日期_初学django1:django模型中自定义方法从身份证号码中获取出生日期...
  10. ttf-dejavu fontconfig字体