图像质量与分辨率帧率码率之间的关系

简单准确介绍视频/图像领域的分辨率、帧率、码率之间的关系。

Drivers of Quality 传输质量

视频传输质量由分辨率与帧率决定。

  • Resulution: 分辨率是指一帧图像有多少条水平扫描线,如1080p。分辨率越大,图像越清晰。单位是数量。
  • FPS(Frame Per Second): 帧率是指视频流一秒钟时间内包含多少帧图像。帧率越大,视频的动画越流畅。单位是赫兹(Hz)。

Bitrate 码率

要传输的视频,在确定了分辨率与帧率之后,编码器还需要确定码率,码率是指每秒传输多少位,单位是 bits/s

我们举一个实际例子计算一下码率:

  • 分辨率为 1080p(1920*1080)
  • 帧率为 60FPS

通过分辨率与帧率,可以计算出 像素/秒: 1920*1080*60=124416000 pixs/s 。 彩色图像每个像素由RGB三种基色组成,每种基色取值范围是0~255,那么一个像素对应3个Byte,24bits。 由此可以计算出 码率: 124416000 pixs/s = 124416000*24 bits/s = 2985984000 bits/s ~= 2847Mb/s

理论上2847Mbps这个值就是我们要看分辨率为 1080p,帧率为 60FPS的视频,所需要的带宽。但我们发现这个值与实际经验并不相符。这个值接近3Gbps带宽,我们通过手机4G网络或家庭的100Mbps带宽都可以流畅观看1080p视频。这里就涉及到视频传输的压缩。

Compression 压缩

视频压缩的原理是去除冗余信息,在视频数据中冗余信息分为四种:

  • 时间上的冗余信息(temporal redundancy):在视频数据中,相邻的帧(frame)与帧之间通常有很强的关连性,这样的关连性即为时间上的冗余信息。
  • 空间上的冗余信息(spatial redundancy):在同一张帧之中,相邻的像素之间通常有很强的关连性,这样的关连性即为空间上的冗余信息。
  • 统计上的冗余信息(statistical redundancy):统计上的冗余信息指的是欲编码的符号(symbol)的几率分布是不均匀(non-uniform)的。
  • 感知上的冗余信息(perceptual redundancy):感知上的冗余信息是指在人在观看视频时,人眼无法察觉的信息。

当前视频领域的编解码算法都包含了压缩,常用的编解码算法有 H264, H265, VP9, AV1

举个例子,在H264算法中,使用时间冗余原理,将传输的视频帧分为 I-frames, P-frames

  • I-frames: I 帧是图像的完整数据,数据量较大
  • P-frames: P 帧是基于I帧的变化数据,数据量较小,如果视频内容变化不大,那么P帧的内容会很小,压缩效果也就很好。

下图是一个I帧与P帧图像。

  • I 帧:

I-frames

  • P 帧: P-frames

压缩指标 BPP

BPP(Bits per Pix) 是编码器的一个压缩指标,通过 BPP 可以计算出实际的带宽。以 H264 编码算法为例,假设固定 BPP 为 0.21 ,那么上面 1080P@60FPS 的视频,压缩之后需要的带宽为原始带宽的: 0.21/24 倍。

2985984000*0.21/24 ~= 25Mbps

需要注意的是,BPP的值并不是固定的,而是可以动态调整的,空旷的图像要比精致的图像值要小。

Reference

1080p

Making fine prints in your digital darkroom Pixels, images, and files

How does bitrate differ for the same resolution and framerate?

关注公众号获得更多云最佳实践