简介
- GOP(Group Of Picture),在互联网行业也被称为 GOF(Group of frame),可以简单理解为一组视频帧;H26x编解码中视频帧分为I帧(关键帧)和以I帧为参考的P帧(参考帧),B帧等,因此视频帧可以划分成以I帧为间隔的组形式。
- GOP值也是I帧的间隔帧数。
智能编码技术
- 市场上售卖的安防产品时常会声称支持smartH264,smartH265,smartH264++,smartH265++等智能编码技术,很大部分是在GOP上做文章。
- 智能编码技术的目的:降低码率,低码率的好处如下:
- 网络传输速度更快
- 硬盘存储占用更少
- 解码性能更好(数据量大小对解码性能影响比较大)
- 支持更高分辨率
GOP模式
- P帧数据是参考其它帧的差异数据,参考帧个数有两种模式:
- 单帧参考:P帧以一帧为参考
- 双帧参考:P帧使用两帧数据作为参考
- 两者优缺点
- 相对于单帧参考,双帧参考能够更好地利用时域相关性,进一步提高压缩性能,例如:新帧相对于上上帧的差异比相对于上一帧的差异更小,数据就可以传输相对上上帧的数据,以减小数据量,甚至更复杂的算法。
- 双帧参考编码性能会差一点,编码时需要做两次参考对比,但是由于安防设备编码由硬件实现,影响较小,但是可能可以获取更低的码率。
- 双帧参考数据传输和解码性能可能更好,数据量更小,数据传输也会更快,而解码时差异越少,解码性能也会越好。
- 双帧参考编解码内存占用更多,需要缓存两帧的数据,不然编解码时没有参考数据。
- 问题
- 既然双帧参考比单帧能够进一步提高压缩性能,为什么没有三帧,四帧参考?
单帧参考
SingleP 模式(NormalP)
- 该模式是最基础的模式。
- 个人总结
- 为了减小码率,可以拉长GOP值,以减少单位时间内的I帧数量,增加P帧数量,由于I帧的大小远远大于P帧,因此可以减少码率。
- 但是GOP不能过大,因为每一个P帧都依赖于前一帧,如果发生传输丢帧或解码误码,后续的P帧可能都无法解码了(也可能播放器做兼容,参考帧改为收到的前一帧),画面可能出现花屏甚至黑屏,需要等到下一个I帧才能恢复。
- 从任意时间点播录像时需要解码前向I帧到点播时间帧之间的所有P帧造成的解码性能浪费和解码时间过长问题。
AdvSingleP 模式
- 解释:在SingleP模式的基础上,新增虚拟I帧(本质上是一个P帧),虚拟I帧不是参考前一个P帧而是参考I帧,这样就可以将GOP设置的较大,本质上就是用虚拟I帧替换了I帧
- 个人总结
- 实际上AdvSingleP模式很类似于SingleP模式,只是将SingleP模式中的I帧替换成了虚拟I帧,当虚拟I帧的帧间距拉长至原本SingleP模式中的GOP时,SingleP模式的问题依然会存在。
- 虚拟I帧大小会大于P帧。
双帧参考
DualP模式
- 解释:该模式下P帧参考前两帧作为参考。
SmartP 模式
- 解释:该模式类似于AdvSingleP 模式新增虚拟I帧,P帧参考I帧(长期参考帧)和前一个虚拟I帧(短期参考帧),利用两个参考帧的时域相关性提升编码压缩性能。
引用
- H264++ H265++ 别被忽悠,“智能编码”才是正规名词!
- 说明:以上GOP模式和名词都是海思平台上的,在海思文档中可以找到,其它平台实现,大部分支持的模式比较少,比较简单。