HEVC 视频的 P 帧可以在流式传输中丢失吗?

Can P frame of HEVC video be dropped on streaming?

我正在不可靠的网络上使用 HEVC encoding/decoding 创建一个直播应用程序。 HEVC 中有 IDR/I/P/B 帧类型可用,我从中使用 IDR 和 P 帧,因为源视频是实时捕获的,并且从捕获设备到显示的延迟很关键。

由于网络不可靠,需要预料到流式传输中的任何帧都可能丢失。 为了避免解码后的图像出现锯齿,我按如下方式实现了接收器:

  1. 1个IDR帧和29个P帧在正常操作下(=总共30fps)
  2. 如果 IDR 帧被丢弃,即将到来的 P 帧不会传递给解码器并等待新的 IDR 帧
  3. 如果P帧被丢弃,则跳过该帧并将下一个接收到的帧传递给解码器

这个过程来自于我的理解,P帧是指最新的IDR帧,所以任何P帧都可以被丢弃,而任何IDR帧都不能被丢弃。

然而,解码后的图像仍然有锯齿(看起来解码器无法补偿运动矢量)

我想到了以下问题:

非常感谢您!

P帧可以引用其他P帧。你不能放弃他们。您可以使用参考帧失效来强制它们仅参考 IDR,但这会提高 bitrate/decrease 图像质量。