长参考帧技术(LTR)
1.1 LTR
长参考帧Long-Term Reference (LTR) frames
短参考帧short-term Reference (LTR) frames
在视频压缩编码中为了提高编码能力,我们面临的挑战是如何在保持视频质量的同时提高编码压缩效率。H264标准提供了运动补偿预测算法来实现这一目标。该算法采用预测模型,通过宏块或子块从其他帧移动的矢量来生成新帧。这些帧称为参考帧。H264标准定义了短参考帧和长参考帧。解码器可以保存和使用LTR帧,直到应用程序显式地删除它们。
LTR对编解码器有两个作用。
- 提高图像质量
- 抗网损。
1.2 LTR提高图像质量
在一个稳定的视频场景中,高质量的参考帧可以提高后续帧的图像质量。在解码内容相似帧时,可以使参考帧保持更长时间,这样避免在场景稳定的情况下传输另一个参考帧,从而节省传输带宽。
根据视频内容来动态的使用LTR功能,这叫做自适应性LTP。当检测到静态场景时采用LTP, 动态场景关闭LTP。
在视频监控的场景中,稳定的视频占多数,使用LTP会很好的提高视频质量。编码误差不容易扩散。
1.3 LTR抗网损
LTR帧的优点是在应用程序级别控制编码内部过程,增加了编码灵活性,提高编码效率,结合其他编码工具,可以实现一个更好的参考帧决策。在这个理论基础上,可实现多种基于LTR的算法。例如,思科公司长期以来一直将LTR作为其视频会议应用的纠错算法(网络适应性算法)。
LTRP(Long-Term Reference Picture)帧属于编解码器的弹性编码的一部分。在网损和解码错误会导致解码器的视觉错误。这些误差会扩散到后续的P帧。解决这个问题的常规作法是让解码器向编码器请求一个I-frame来清除错误(后向纠错)。然而,还有一个好的方法是使用LRTP帧。反馈机制与LTRP帧相结合,有助于修复丢失的视频数据并逐步淘汰错误的LTRP帧。在支持LRTP的编解码器中,LTRP帧是到达编解码器的最后一个i帧(IDR或GDR),然后接收编解码器将该帧存储为LTRP帧。当新的I-frame到达时,它被提升到LTRP。如果视频帧在传输过程中丢失,接收编解码器将尝试使用LTRP帧进行恢复。
1.4 思科设备的LTR
思科SX SX80终端设备,支持LTR。
当一个视频设备(不管是终端还是MCU)在频繁向SX80发送I帧请求后会触发SX80的抗网损机制。
如下图,在前6帧里有2次I帧请求。
前6帧的码流里没有LTR
无长参考帧。
但第3次I帧请求后。
开始出现LTR帧
后续再向SX80申请关键帧,SX80不再响应I帧请求,而是加多LTR帧。
需要视频解码缓存了多达7个long term reference帧。
通过上面的分析,为适应科思的SX80的这个机制。视频解码器需要加大解码缓冲内存,开启LTR机制。