处理原始视频时如何在 H.264 编解码器中构建 P 帧

How a P-Frame is constructed in H.264 codec when processing a raw video

我试图了解视频编解码器的一般工作原理,其中之一是 H.264

我在网上浏览了一些关于 H.264 工作原理的文章,希望对它们有所了解。

在阅读相同的内容时,我了解了不同类型的帧,例如 I-FrameP-FrameB-Frame,它们在流式传输使用 H.264.

我无法理解的是给了一个原始视频,它显然有帧方面的数据,网络上的文献说 I-Frame 是原始帧,因为它是 P-Frame 是根据之前的 I-FrameP-Frame 预测的,这里如何从另一个 P-Frame 预测 P-Frame,而另一个 P-Frame 还不存在。

另外让我困惑的是 P-Frame 的预测。

请帮助理解相同的内容或参考解释相同内容的文献。

正在考虑您关于 B-frames 的最后评论。视频编码器有一个缓冲区,可以保留一定数量的帧。

让我们考虑一个示例,您的前 4 帧将使用以下结构进行编码:IBBP。

第一帧被编码为 I-frame(帧内)。第2帧和第3帧是B帧,不能立即编码,因为它们在等待"future"帧P。所以它们被放入缓冲区。当第4帧到达编码器时,它是inter-encoded(单向),以第一帧(I-frame)为参考。现在 P-frame 已经被编码,帧 2 和 3 是双向的,因此在过去和将来需要参考,可以被编码(inter,bidirectional)。

所以编码顺序是:I P B B,和显示顺序不一样

如您所见,B-frames 在编码过程中引入了延迟,因此通常不用于 low-delay 视频会议等应用程序。