视频编码帧是视频编码序列中常见的三种编码帧,I帧、P帧、B帧,要说视频编码帧有什么作用呢,在视频编码序列中,GOP指的是两个I帧之间的距离,在码率不变的情况下,GOP值越大,P、B帧的数量就会越多,平均每个帧占用的字节数也越多,更容易获取好的视频质量。
一、编码帧详解
从上面的内容可以看出,当码率不变时,帧数越高自然用户看到的画面就越清晰,但是对直播源码开发的压力也更大,毕竟帧数高了视频清晰后占用的传输资源增加,储存上平台压力也会变大。
这就需要对直播源码开发的帧进行编码,由于P、B帧的复杂度大于I帧,所以过多的P、B帧会影响编码效率, 另外过长的GOP还会影响seek的操作响应速度,由于P、B帧是由前面的I或P帧预测得到的,所以seek操作需要直接定位,解码某一个P或B帧时,需要先解码得到本GOP内的I帧以及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。
二、H.264编码帧
H.264协议大家应该很熟悉了,是直播源码开发很常用的编码方式,在其中的图像以序列为单位进行组织,一个序列是一段图像编码后的数据流,从I帧开始,到I帧结束。
IDR图像,一个序列的第一个图像叫IDR图像,IDR图像都是I帧图像,H.264引入IDR图像是为了解码的重同步,当解码器解码到IDR图像后,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找直播源码开发的新参数集,开始一个新的序列,这样可以在前一个序列出现错误时,能及时获得重新同步的机会。
三、不同帧的作用
1、I帧,帧内编码帧,此关键帧可以理解为一帧画面的完整保留,解码时只需要直播源码开发本帧数据就可以完成。
2、P帧,向前预测编码帧,P帧表示的是这一帧跟之前的一个关键帧的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。
3、B帧,直播源码开发B帧以前的I或P帧做为参考帧,找出B帧的预测值和两个运动矢量,并取预测差值和运动矢量传送。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
领取专属 10元无门槛券
私享最新 技术干货