HEVC视频的P帧可以在流上丢弃吗?

问题描述 投票:1回答:1

我正在不可靠的网络上使用HEVC编码/解码创建实时流式应用。HEVC中有IDR / I / P / B帧类型,我正在使用IDR和P帧,因为源视频是实时捕获的,并且从捕获设备到显示的延迟至关重要。

由于网络不可靠,因此需要预期流中的任何帧都可能会丢失。为了避免使解码图像变得锯齿,我按如下方式实现了接收器:

  1. 1个IDR帧和29 P帧,以秒为单位(= 30fps,总计正常操作)
  2. 如果丢弃了IDR帧,则即将出现的P帧不会传递到解码器,而是等待新的IDR帧
  3. 如果丢弃了P帧,则跳过该帧并将下一个接收到的帧传递给解码器

此过程是基于我的理解,P帧引用了最新的IDR帧,因此可以删除任何P帧,而不能删除任何IDR帧。

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

以下是我想到的问题:

  • P帧引用最后的IDR帧是否正确?还是规范中任何帧(包括IDR / I / P / B)都不能丢在HEVC上?
  • 有什么方法可以避免在不可靠的网络上流式传输时,解码视频出现锯齿状?

非常感谢!

udp video-streaming live-streaming hevc real-time-data
1个回答
2
投票

P帧可以引用其他P帧。您不能丢下它们。您可以使用参考帧无效来强制它们仅参考IDR,但这会提高比特率/降低图像质量。

© www.soinside.com 2019 - 2024. All rights reserved.