当前位置:网站首页>【读书会第十三期】视频文件的编码格式
【读书会第十三期】视频文件的编码格式
2022-07-04 14:23:00 【华为云】
FFmpeg的视频编码格式
FFmpeg支持很多视频编码格式,比如MPEG4、H263、 H264、 H265、 VP8、 VI9 等。
我们重点学习的是H264视频编码格式。
H263的码率控制
- VBR: Variable BitRate,动态码率模式,其码率可以随着图像的复杂程度的不同而变化,因此其编码效率比较高。
- CBR: Constant Bi tRate,恒定码率模式,由于码率恒定,有画面剧烈变化时,QP参数会增大,图像质量会变差,当场景静止时,又浪费带宽。该模式的整体图像质量不稳定。
- ABR: Average BitRate,平均码率模式,是VBR的一种衍生形式,在指定的文件大小内,静态或者接近静态的画面部分使用相对较低的流量,复杂画面部分使用较高的流量,可以视为是VBR 和CBR 的一种折衷方案。
H264帧参考关系
这里首先我把下面三种帧的参考关系放出来,以便后续理解。
H264的I帧类型
- 一个GOP序列的第一个图像叫做IDR 图像(立即刷新图像),IDR 图像都是I帧图像,但I帧不一定都是IDR帧, 只有GOP序列的第1个I帧是IDR帧。
- I帧, 又叫帧内参考帧,保留一帧完整的画面。
- 解码时仅用1帧的数据就可重构出完整的图像。
- 1帧不需要参考其他画面而生成。
- I帧是P帧和B帧的参考帧。
- I帧不需要考虑运动矢量。
- I帧所占数据的信息量最大。
H264的B帧类型
- B帧,又叫双向参考帧,也就是B帧记录的是本帧与前后帧的差别,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。
- B帧的压缩率最高,但是解码时CPU使用率会比较高。
- B帧是由前面的I或P帧和后面的P帧来进行预测的。
- B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量。
- B帧不是参考帧,不会造成解码错误的扩散。
H264的P帧类型
- P帧,又叫前向参考帧,表示的是这一-帧跟之前的一 个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面,P帧没有完整画面数据,只有与前一-帧的画面差异的数据。
- P帧是1帧后面相隔1^ 2帧的编码帧。
- P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差)。
- P帧属于前向预测的帧间编码。它只参考前面最靠近它的1帧或P帧。
- P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧。
- P帧是参考帧,可能会造成解码错误的扩散。
- P帧的压缩比介于I帧和B帧之间。
总结:
本期的学习可以让我们了解到常见的视频编码格式中都是怎么对视频进行码率控制的,特别是常见的H264,通过IBP三种帧类型来完成视频的校验可以说是非常的完备了。
边栏推荐
- PLC模拟量输入 模拟量转换FC S_ITR (CODESYS平台)
- Implementation of macro instruction of first-order RC low-pass filter in signal processing (easy touch screen)
- Halo effect - who says that those with light on their heads are heroes
- On the implementation plan of MySQL explain
- 找数字
- 从0到1建设智能灰度数据体系:以vivo游戏中心为例
- 暑期复习,一定要避免踩这些坑!
- How to rapidly deploy application software under SaaS
- Analysis of nearly 100 million dollars stolen and horizon cross chain bridge attacked
- 一篇文章搞懂Go语言中的Context
猜你喜欢

The performance of major mainstream programming languages is PK, and the results are unexpected

直播预告 | PostgreSQL 内核解读系列第二讲:PostgreSQL 体系结构

lnx 高效搜索引擎、FastDeploy 推理部署工具箱、AI前沿论文 | ShowMeAI资讯日报 #07.04

這幾年爆火的智能物聯網(AIoT),到底前景如何?

Deep learning network regularization

Details of FPGA underlying resources

Introduction to modern control theory + understanding

智能客服赛道:网易七鱼、微洱科技打法迥异

MySQL学习笔记——数据类型(数值类型)

中国主要城市人均存款出炉,你达标了吗?
随机推荐
Unity update process_ Principle of unity synergy
浮点数如何与0进行比较?
js平铺数据查找叶子节点
MySQL组合索引(多列索引)使用与优化案例详解
找数字
小数,指数
产品好不好,谁说了算?Sonar提出分析的性能指标,帮助您轻松判断产品性能及表现
Unity脚本常用API Day03
Exploration and practice of eventbridge in the field of SaaS enterprise integration
hexadecimal
Unity预制件Prefab Day04
基于MAX31865的温度控制系统
Halcon knowledge: NCC_ Model template matching
Enter the width!
进制乱炖
CentOS 6.3 下 PHP编译安装JSON模块报错解决
MySQL学习笔记——数据类型(2)
C1 certification learning notes 3 -- Web Foundation
selenium 元素交互
Ffprobe common commands