上一篇 FFmpeg 入门与实践 001
上回,主要介绍了 FFmpeg 极其基本的用法,以及一些基本概念。这回继续深入,详解视频参数组成。
基本概念
分辨率
众所周知,屏幕由无数像素组成。像素的单位是 \(\text{px(pixel)}\)。基本而言,像素越多,清晰度越高。分辨率便是用来描述像素的。通常,分辨率被表示为 \(\text{W} \times \text{H}\),如 \(1920 \times 1080\) ,当然也可以是 \(\text{W} : \text{H}\)。其乘积的结果,即为总像素点数。
DPI / PPI
DPI 为每英尺点数(Dots Per Inch)的缩写
PPI 为每英尺像素(Pixel Per Inch)的缩写
两者概念上很相同,然而 DPI 为一个抽象概念,并不规定 点(Dots) 的具体表现是什么。换句话说,PPI 是 DPI 的子集,对点的定义是像素。两者在日常用语上可以是相同的。
PPI 之计算如下:
\[ \text{PPI} = \frac{\sqrt{w^2_p + h^2_p}}{d_i}=\frac{d_p}{d_i} \]
其中,\(w_p\) 为横向分辨率,\(h_p\) 为纵向分辨率,\(d_p\) 为对角线分辨率,\(d_i\) 为屏幕对角线长度(英尺)。
如今高分辨率屏幕快速普及,高 PPI 会越来越多,所以,不要将 \(96\,\text{PPI}\) 作为标准了,它快被淘汰了。
宽高比
宽高比(Aspect Ratio),又或者说长宽比。它表示画面矩形的比例。分辨率的比值就是 显示宽高比(DAR, Display Aspect Ratio)。
然而,宽高比不仅仅有显示宽高比。更有 像素宽高比(PAR, Pixel Aspect Ratio)。也就是说,像素未必都是 1:1 的正方形,可能是诸如 1:2, 2:1 的长方形。
\[ \text{PAR} = \text{DAR} \times \text{SAR} \]
其中,SAR 为 储存像素比(Stroage Aspect Ratio)。
DAR 和 SAR 的主要区别是,DAR 由解码器处理,SAR 由编码器处理。
帧率
帧率(Frame Rate),其常用单位为 FPS(Frame Per Second),每秒帧数。即,每秒放多少帧图像。很大程度上决定了画面的流畅度。
一个简单的对比(最终播放表现取决于你的显示器):
如果无法播放 点击这里(需要 HEVC 支持)
逐行扫描/隔行扫描
逐行扫描(Progressive Scan),即,每一帧一次性扫描整个画面。
隔行扫描(Interlaced Scan),又称交错,即,一张画面分成两张显示,即奇数场和偶数场,可以先扫描奇数场或者偶数场,也就是每一帧更新半张。
Wikimedia 作者 Grayshi 使用需遵循 CC BY SA 3.0
其缺点也显而易见:在移动时,边缘必然出现锯齿,让画面撕裂。 隔行扫描主要是为了节省宽带(大小大概为同参数的一半),然而在如今几乎用不到了,后续可能会写一篇文章讲反交错(De-interlace)。
逐行扫描、隔行扫描对比:
常见视频分辨率及帧率
分辨率 (以 16:9 为例)
分辨率 | 标准 |
---|---|
\(1280 \times 720\) | HD |
\(1600 \times 900\) | HD+ |
\(1920 \times 1080\) | Full HD |
\(2560 \times 1440\) | QHD |
\(3200 \times 1800\) | QHD+ |
\(3840 \times 2160\) | 4K UHD |
\(5120 \times 2880\) | 5K |
\(7680 \times 4320\) | 8K UHD |
- 其他比例的、更详细的列表可以参见: 显示分辨率列表 - Wikipedia
帧率
- 23.976 / 23.98 / \(\frac{24,000}{1,001}\)
- 24
- 25
- 29.97 / \(\frac{30,000}{1,001}\)
- 30
- 50
- 59.94 / \(\frac{60,000}{1,001}\)
- 60
- 120
- e.t.c.
采样率
这是音频独有的概念,采样率(Sampling Rate)。类似于视频中的帧率,代表每秒对模拟信号的采样次数。
请注意,采样率 \(\neq\) 声音频率,同时,最好让 采样率 $ $声音频率 ,即最少 \(2\) 倍采样才能避免失真。
例如,信号为 \(250 \, \text{Hz}\),那么采样率必须要为 \(500 \, \text{Hz}\) 才能避免混叠现象。
这也称为 采样定理(Nyquist-Shannon Sampling Theorem)
实际上有好几个名字,因为它被多个学者独立发现。
\[ w_s \geq 2\cdot w_s \]
一个通俗易懂的理解是:风扇在高速旋转时,人眼可能会认为风扇在以与实际相反的方向旋转。
常用的采样率有:
[44100(二倍采样), 48000(二倍采样), 96000(四倍采样), 192000(八倍采样)]
显然的,人耳不能分辨比二倍采样更高的采样率,因为人的声音频率范围只有 \(20\text{KHz}\)。
采样深度
之前提到过图像的 色深。这次来说说音频的 采样深度。
显然,色深决定了颜色的细腻程度,那么采样深度,则同样决定了音频的细腻程度。具体而言,采样深度决定了 信噪比(SNR),也就是「动态范围」。
在理想的模数转换(ADC, Analog to Digital Converter)下,量化信噪比(SQNR)为:
\[ \text{SQNR}=20\log_{10}(2^Q) \approx 6.02 \cdot Q \, \text{dB} \]
其中,\(Q\) 为量化位数。
也就是说,每一位采样深度大概能让信噪比提高 \(6 \, \text{dB}\).
常见的采样深度为 [16, 20, 24, 32, 浮点]
\(16\,\text{Bit}\) 就已经能有 \(96 \, \text{dB}\) 的动态范围了,完全够用。
比特率
比特率(Bit
Rate),很容易理解,就是每秒吞吐量(水管大小)。单位为「比特每秒」(bps)。通常,会加以前缀
k
或 m
来表示更大的吞吐。
在无损压缩中,比特率没有意义。因为没有压缩,比特率便仅仅是描述媒体大小的另一种单位而已,只要知道其他参数。以比较简单的无损音频(PCM格式)为例,下式可以计算出比特率(\(B_0\)): \[ B_0 = b \cdot F_\text{s} \cdot N_\text{ch} \]
其中,\(b\) 为采样深度,\(F_\text{s}\) 为采样频率,\(N_\text{ch}\) 为声道个数。以典型的 DVD 音频为例:\(48 \,\text{kHZ}\) 采样率,\(24 \,\text{Bit}\) 采样深度,双声道。可得:\(48\times24\times2=2304\,\text{kbps}\).
同时,有一个适用于所有流媒体的式子:
\[ \text{Bit Rate} = \frac{\text{Size}}{\text{Time}} \]
通常,时间使用 \(s\) 为单位。
比起描述大小,比特率更是控制质量的参数。当然,比特率也并非唯一参数。
至于压缩细节,且听下回分解。