单个视频帧主要的参数概念:
分辨率是指图像或显示器上像素的数量,通常用横向像素数乘以纵向像素数表示。例如,1920x1080 表示宽度为1920像素,高度为1080像素的分辨率
。分辨率越高,图像就越清晰,但也需要更多的计算和存储资源
。
像素是图像的最小单位,是图像中能够单独控制的点。每个像素包含有关颜色和亮度的信息
。图像分辨率是通过像素的数量来描述的,更高的分辨率通常意味着图像中包含更多的像素,因此能够呈现更丰富的细节。
DPI是指每英寸内的像素密度,用于描述打印机、扫描仪或显示器的输出或输入质量。较高的DPI值表示图像或文档具有更高的分辨率,因此更清晰
,但也需要更多的打印或存储资源。
色彩空间模型是一种描述颜色的系统,定义了颜色如何在数字图像中表示。常见的色彩空间模型包括:
- RGB(红绿蓝): 使用红、绿、蓝三个颜色通道来表示颜色。
- YUV(亮度-色度): 使用亮度(Y)和色度(U、V)分量表示颜色。
- CMYK(青、品红、黄、黑): 用于印刷颜色,包含青、品红、黄、黑四个颜色通道。
一系列连续的单个视频帧,这些帧按照一定的顺序排列,形成了视频序列
。视频是通过将这些帧以一定的帧率播放而呈现的多个视频帧的主要参数概念:
帧率是指每秒播放的视频帧数量
,通常用帧数每秒(fps,frames per second)表示。帧率决定了视频的流畅度,更高的帧率通常意味着更流畅的动画效果
。常见的帧率包括 24fps、30fps、60fps 等。不同的应用场景可能需要不同的帧率,例如电影通常采用 24fps,而视频游戏通常采用较高的帧率以提供更好的用户体验
。
播放时间戳是视频帧在播放时的时间戳,用于确定视频帧在整个视频序列中的播放顺序和时间位置
。PTS 表示视频帧何时应该被显示。PTS 的单位通常是毫秒(ms),表示视频帧在视频开始播放后多少毫秒时应该被显示
。正确的 PTS 顺序确保了视频帧的正确显示顺序。
码率是指视频文件中每秒传输的比特数,通常以每秒的比特数或千比特数(bps,kbps,mbps)表示。码率直接影响到视频的质量和文件大小。
高码率通常意味着更高的视频质量,但也需要更大的存储空间和更高的带宽进行传输。低码率则可能导致视频压缩和失真。码率实际上是为了限制数据量大小,在直播等流媒体中一般要设置最大码率以限制视频大小,防止客户端宽带不足而卡顿
。
高帧率可能导致更多的图像变化,特别是在快速运动的情况下,这可能需要更高的码率来维持图像质量。 高帧率通常需要更高的码率以应对更多的图像变化,以防止动态场景中出现模糊或失真。高码率并不一定需要高帧率。
一段视频可以以较高的码率传输,以保持图像质量,但帧率仍然可以是标准的 24fps 或 30fps
I帧(关键帧),P帧(预测帧)和B帧(双向预测帧)是视频压缩中常用的三种帧类型,它们共同构成了视频序列的编码结构。这些帧在视频压缩和解压缩中扮演着不同的角色,有助于实现高效的视频存储和传输。
I帧是视频序列中的关键帧,它是完整的图像帧,不依赖于其他帧。每个 GOP(Group of Pictures,一组图像)的开始通常是一个I帧。
I帧存储了整个图像的信息,是视频解码的起点,也是视频编辑和切割的关键点。由于独立性,I帧对于随机访问和视频编辑是非常重要的。
I帧基本出现在视频画面突变的位置。
P帧是通过对前向参考帧进行运动估计和补偿得到的帧,只存储图像中发生变化的部分。P帧依赖于前一个I帧或P帧。
P帧在压缩中起到了减小文件大小的作用,因为它只存储了相对于前一帧变化的内容。虽然P帧本身不能独立显示,但与前一帧结合后能够还原图像。
B帧是通过对前后两个关键帧或预测帧进行运动估计和补偿得到的帧,同时存储了图像前后两帧之间的变化
。B帧通常相对于前后的I帧或P帧都有差异B帧在视频压缩中进一步提高了压缩比,因为它同时利用了前后两帧的信息。然而,由于其依赖于前后两帧,解码时需要确保这两帧已经被解码(所以在直播流的场景下,一般是不生成B帧的,有利于直播的流畅)
。
这些帧类型共同构成了视频压缩的基本单元,称为GOP。通过合理使用I帧、P帧和B帧的组合,视频编码器可以实现更高的压缩比,从而降低视频文件的大小
,并在有限的带宽条件下更有效地传输视频。
直播中设置gop和帧率的1-2倍的好处就是,画面不容易花屏,当直播中断后,重新拉取流也能更快的重新播放(因为第一秒必定是I帧,可以减少P帧的计算时间
)