H264有I、P、B三种帧;
Ps:h264标准并没有提及I B P帧的概念,使我们自己简称出来的。
I帧:帧内编码帧;
P帧:前向预测编码帧;
B帧:双向预测内插编码帧;
不过一般对质量要求不高的编码是不适用B帧的;
iPhone的硬编码目前也仅有5s支持B帧——reordering
//听说,因为我没有5s,所以不能完全肯定,不过可以肯定4s上装ios7,硬编码也不支持reordering——B帧!
H264的帧分为三个类型:
I帧为完全编码的帧,供后面的帧参考,P帧为参考前面的帧而生成的差异帧,B帧为参考前面后面的帧而编码的帧;
从帧的角度来看H264,那么可以将一个视频看称由N组GOP序列组成的数据;
//GOP是Group of Pictures的简写,意思是一个图像组。组与组之间互不相干,这样才便于网络视频的实现,因为网络视频可能是随时开始的。
GOP的第一帧一定是一个I帧,这个I帧称为关键帧IDR,但是GOP并不只带I帧的帧间隔,因为GOP可能会包含有多个I帧;只有第一个I帧称为关键帧;
P帧是参考前面一帧编码生成的差异帧,被参考的帧可能是I帧也可能是P帧;
B帧因为要参考前后双向的帧,(被参考的帧可能是I帧也可能是P帧),因此要编码出带有B帧的序列时,必须要有缓存,而不能像没有B帧时那样进一帧出一帧进行编码了;
而且需要对帧序列进行重新排序;
更多h264的知识,还需要细化的学习;