H.264
基础知识
- GOP[两个IDR帧之间的帧为一组GOP,一组GOP可以出现非IDR的I帧]:一般设置为编码器每秒输出的帧数,一般为帧率,GOP里面有且只有一个I帧,多个P,B帧。P,B帧由I帧预测得来,如果I帧效果较差
则会影响到一个GOP中的后续所有的P,B帧。B,P帧的复杂度略高,所以P,B帧太多会影响编码效率。
数据组织形式 - IDR帧(即时解码刷新I帧)[帧内预测]:也是一个I帧,但会导致DPB(Decoded Picture Buffer 参考帧列表)清空。IDR帧承担了随机访问的功能。一个新的IDR可以重新计算新的GOP开始编码,只有GOP的第一个I帧是IDR帧,位于IDR帧后的P,B帧不能参考IDR帧以前的帧。
- I帧[帧内预测]:I帧不会导致DPB清空。I帧可简单理解为一帧画面的完整保留,压缩比约为7。I帧描述了图像背景和运动主体,不需要参考其他画面,信息量较大
- P帧[前向预测编码帧]:表示这一帧与前一I或P帧的差别,P帧只有与前一帧画面的差异数据,压缩比约为20
- B帧[双向预测编码帧]:记录了本帧与前后帧的差别,要解码B帧不仅要获取之前的缓存画面,还有解码后之后的画面。压缩比约为50。
H264 profile level
- BP-Base Profile:基本画质,支持I/P帧,只支持无交错和CAVLC
- EP-Extend Profile:扩展画质,支持I/P/B/SP/SI帧,只支持无交错和CAVLC
- MP-Main Profile:主流画质,支持I/P/B,支持无交错和交错,也支持CAVLC和CABAC
- HP-High profile:高级画质,在MP的基础上增加了8x8内部预测,自定义量化比,无损视频编码,和更多的YUV格式
H264码率控制
- VBR:动态比特率,码率随着图像复杂程度的不同而变化。因此编码效率较高。运动产生时马赛克少。
- ABR:平均码率,是VBR的一种差值参数,ABR在指定文件大小内,低频和不敏感的使用较低流量,高频