H264之IDR帧和I帧的区别

面试时被问到的一个问题,没答上来,算是查漏补缺。

简述

IDR(Instantaneous Decoder Refresh),即时解码刷新,是一种特殊的I帧。IDR帧是为了防止H264解码器在解码时参考无意义的帧而设置的。

当H264解码器收到IDR帧时,意味着后续抵达的帧不会再参考IDR帧之前的帧,因此,H264解码器会“清空”参考缓冲区(the reference buffer),而所谓的“清空”有可能是将参考缓冲区中的所有帧标识为“不可参考(unused for reference)”状态。

相较而言,当H264解码器收到普通的I帧时,后续抵达的帧有可能会参考这个I帧之前的帧,即参考缓冲区中的帧。

Read more