IDR(Instantaneous Decoder Refresh)和 CRA(Clean Random Access)帧是视频编码中的 IRAP(Random Access Pictures)类型,特别是 HEVC 视频编解码器,可确保正确的视频解码和播放。它们作为解码器的参考点,允许视频从特定点开始播放,而不需要来自较早帧的信息(在大多数情况下,我们将看到)。
本文深入分析了 IDR 和 CRA 图片、它们的区别以及它们的用例。
IDR 帧
Instantaneous Decoder Refresh (IDR) 帧是视频编码中的关键参考帧,通常用于 H.264/AVC 和 H.265/HEVC 编解码器。IDR 帧是一个独立的帧,不需要任何其他帧来正确解码图像——它只包含 I 切片。
它们也被称为 I 帧(帧内编码帧),因为它们仅使用帧内预测来压缩数据。帧内预测利用帧内的空间冗余,与帧间预测相反,帧间预测利用连续帧之间的时间冗余。
当解码器遇到 IDR 帧时,它可以立即从该点开始解码视频。
IDR 帧还具有以下属性:
- 它们用作后续帧间编码(P 和 B)帧的参考帧。
- IDRs 重置解码器的状态,使视频解码有一个干净的开始。这也被称为冲刷解码器状态,并删除所有存储在解码器缓冲区的图片。
- IDR 定义了一组图片(GOP)的开始,这是一个以 IDR 帧开始的帧序列,后面是引用它的帧间(P和B)。因此,IDRs 与封闭的 GOP 相关联–IDR 之后的图片不能引用 IDR 之前的图片。
IDR 帧的用例:
IDR 帧在随机访问至关重要的场景中特别有用,例如视频流服务、视频会议应用程序和广播电视。它们允许用户从视频中的任何点无缝开始播放,支持快进和倒退,并在视频数据在传输过程中丢失或损坏时促进错误恢复。
在常见的视频流协议中,例如 HLS 或 MPEG-DASH,每个视频片段都以一个 IDR 帧开始。这允许视频的每个片段都可以在视频播放器上独立解码。
CRA Pictures
在H.265/HEVC编解码器中引入的 Clean Random Access(CRA)图片与IDR帧类似,但有一点不同。
虽然它们允许解码器从该点开始解码,但它们不会完全重置解码器的状态(不像IDR帧那样导致解码器被刷新)。
相反,CRA帧参考同一解码会话中的其他帧,保留了前一个GOP的一些信息。这种被称为“Open GOP”的的功能有利于降低比特率,因为与IDR帧相比,CRA帧通常需要更少的比特来表示相同的图像质量。
通过防止解码器被刷新,CRA 帧允许解码器继续使用 CRA 帧之前的参考帧用于后续帧间编码帧,从而提高压缩效率。
这一特性使得 CRA 帧在某些场景下可以提供比 IDR 帧更好的整体压缩性能,并允许随机访问。
CRA 帧的使用案例
CRA 帧非常适用于提高压缩效率和随机访问能力的应用,如自适应比特率流,其中视频质量需要根据可用带宽动态调整。CRA 帧能够在不同的质量水平之间无缝切换,不会出现突然的视觉伪影。
IDR 和 CRA 帧之间的差异
随机访问级别
IDR 帧提供最高级别的随机访问,因为它们允许解码器从任何 IDR 帧开始解码,而不需要先前的帧。CRA 帧还提供随机访问功能,但通过不强制丢弃参考帧来保持“干净”状态。
压缩效率
IDR 帧在压缩方面效率最低,因为它们仅使用帧内预测并且是独立的。
CRA 帧通过允许继续使用参考帧改进了 IDR 帧,从而带来更好的压缩性能。
容错能力
IDR 帧也可以促进错误恢复,但它们通常需要更高的视频序列插入频率,这会增加整体比特率。CRA 帧不是实现错误恢复的好选择,但在某些情况下提供比 IDR 帧更好的解决方案。
结论
总之,IDR 帧提供最高级别的随机访问和错误恢复,而 CRA 帧在随机访问和压缩效率之间取得平衡。
本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/21243.html