基础概念认知
在排查 WebRTC 丢包问题时,我们会接触到一些视频帧相关的名词,如 GOP、I-帧、P-帧、B-帧等。如果是之前对视频编解码不是特别了解的同学(比如笔者)可能会有些疑惑。因此本文尝试将这些名词逐一解释,方便大家查阅。
个人技术博客: fuqifacai.github.io
更多技术资讯下载: 2img.ai
相关配图由微信小程序【字形绘梦】免费生成

我们都知道,当多张连续图像以一定的速率(比如每秒 24 张)播放,即可形成视频。但视频传输却并不是单纯地发送连续图像这么简单。假设一张图像分辨率为 1280×720,且每个 ARGB 像素点大小为 32bits,则单张图像大小约为 29.5Mbits;如果每秒需要传输 24 张,则大约需要占用约 708Mbits/s 的带宽。显然这样的带宽占用是不现实的。
由此便引申出了视频编码技术,比如常见的 H.264、VP8 等编码格式。这些技术的基本思想都是类似的。我们可以将一张完整的图像分为很多小的图像块(Macroblock)。如下图 (1) 所示,人在挥手时身体并没有动,那么身体部分的图像块即是冗余信息,没必要每次都传输;可以只传输挥手的那部分,接收方再将其与之前的某些参考图像 diff 即可得到最新的图像:

图中的 Intraframe 即我们常说的 I-帧,而 Interframe 则包含了 P-帧和 B-帧。
剩余内容需解锁后查看
Paragoger衍生者AI训练营。发布者:稻草人,转载请注明出处:https://www.shxcj.com/archives/6694
 
                