一. H264基本概念.
I帧:关键字 描述的是一张完整的图片,一组图片中一般选择第一张
B帧:双向参考帧 保存和两边图片不一样的数据(可以丢失)
P帧:向前参考帧 只会保存跟前一张不一样的数据
I帧丢失就不能正确解码
如果解码时要等到最后一帧传过来再解码,一定时间内没有收到的话,可以丢弃B帧
二.GOF(Group of Frame)一组帧
就是一个I帧到下一个I帧.这一组的数据.包括B帧/P帧.我们称为GOF(GOP).
如果GOP分组中的P帧丢失就会造成解码端的图像发生错误.
为了避免花屏问题的发生,一般如果发现P帧或者I帧丢失.就不显示本GOP内的所有帧.只到下一个I帧来后重新刷新图像.
当这时因为没有刷新屏幕.丢包的这一组帧全部扔掉了.图像就会卡在哪里不动.这就是卡顿的原因.
所以总结起来,花屏是因为你丢了P帧或者I帧.导致解码错误. 而卡顿是因为为了怕花屏,将整组错误的GOP数据扔掉了.直达下一组正确的GOP再重新刷屏.而这中间的时间差,就是我们所感受的卡顿.
三. SPS/PPS
SPS/PPS实际上就是存储GOP的参数.
SPS: (Sequence Parameter Set,序列参数集)存放帧数,参考帧数目,解码图像尺寸,帧场编码模式选择标识等.
PPS:(Picture Parameter Set,图像参数集).存放熵编码模式选择标识,片组数目,初始量化参数和去方块滤波系数调整标识等.(与图像相关的信息)
大家只要记住,在一组帧之前我们首先收到的是SPS/PPS数据.如果没有这组参数的话,我们是无法解码.
网友评论