如果需要视频的直观讲解,可以看这个 视频合集。
波形的数字化
让我们从声音的本质开始讲起,注意,声音的本质绝对不是复读机,人类才是。声音的本质是什么?
对呀,声音不就是一种机械波嘛!那采样率是什么呢?简单来讲就是你每秒钟去测量它多少次嘛!
你看,这不就有了交点了吗?
采样率越高,是不是就能采到越多的点啦?
那我们实际在听的 CD 音质的采样率有多少呢?高达 44.1 kHz。也就是每秒钟要测量它 44100 次。
那位深度是什么?就是你在采样的时候,这个点的高度能有多接近波形,看吧,如果位深度非常不够,采样到的点就能差上十万八千里:
如果我们增加一位位深,也就是位深的数量翻倍的话,采到的点会精细一些。
由此看来,我们只要让这个网络足够细密,就能够比较完美地复原真实的波形了,但是似乎总是有偏差,看起来像是一条折线,对吗?
但我想说的是,这种被广为传播的解释方式是完全错误的!我们从数字信号还原模拟信号的时候,原理根本就不是这样!它的原理更接近:
能感受到其中的区别吗?我们之前所谓的采样,它得到的不是一个时段的位深,而仅仅是一个个分立的采样点,在把数字信号还原成模拟信号的时候,我们实际上是在利用这些点去构建波形,所以很多人脑海中理解的所谓「锯齿」是根本不存在的东西。好,下面我们要提到「采样定理」。
采样定理
如果信号带宽小于被采样频率的二分之一(奈奎斯特频率),那么此时这些离散的采样点能够完全表示原信号。
采样定理,也叫奈奎斯特–香农采样定理。下面举个例子。
一个车轮,每根辐条都有编号,一共是八根,这个车轮呢,每 8 秒转动一周,也就是在下一秒钟,1 移动到 2 的位置,2 移动到 3,以此类推。现在啊,我们给它拍照,如果我们每 8 秒拍摄一张照片(T = 8),在我们眼里它怎么样啊?
静止不动,对不对?
那如果每 4 秒拍一张(T = 4)呢?你会认为它动了,但是旋转的方向不知道,对吗?
那我们每 5 秒拍一张(T = 5)呢?
在这种情形下,我们会认为它是逆时针一次转 3 格而非顺时针一次转 5 格。这也就意味着,如果用低于奈奎斯特频率的采样率去采样,最后会还原出虚假的低频信息。不知道你小时候有没有这样的经验:看一些汽车逐渐加速,它的轮子在其中一段时间仿佛会反着转,对吗?
而如果用 3 秒为周期去采样就不会有这个问题。
数字音频的规格
在了解了上述两个重要概念以后,我们就可以很方便地计算音频文件的大小了。 上述原理构建的未压缩的音频文件的格式是 WAV,它就是我们计算的对象。
已知 CD 品质的音频文件采样率为 44.1 kHz,位深为 16 bit,双声道,则其所对应的 WAV 文件的比特率为?
答案是 1411.2 kbps。比特率 (bps) = 采样率 × 位深 × 声道数
。比特率所指的就是文件每秒钟的大小,那通过它,我们也能很方便地计算整个文件的大小:文件大小 (B) = 比特率 × 时长 (s) ÷ 8
。那这里为什么要除以 8 呢?你可以看到,文件大小的单位是大写的 B,而比特率的单位里有个小写的 b,它们的关系就是,一个大写的 B 即一字节等于 8 个小写的 b 也就是比特,所以要除以 8。看到这里,人们就不禁犯嘀咕了,我的天,这 WAV 文件的体积也太臃肿了,要怎么解决这个问题呢?
接下来,我会展示一行文字,我需要你以最快的速度记录它,可以用纸笔,然后复原到空白的地方,注意,请尽可能快,因为你只有 10 秒时间。
F F F F T T T N N N N N N N N N S S S S S S
结果如何?
你大概率会按 4F 3T 9N 6S
去记忆。
刚才这个过程已经揭示了数据压缩的诀窍,那就是寻找其中的规律并使用较短的数据描述较长的数据,而这种压缩是绝对无损的,能够在解压时得到逐位精确的结果。
那么利用无损压缩原理的音频格式有哪些呢?目前非常主流的代表就是 FLAC,同时,它还有另外一个杀手锏,那就是可变比特率。
像刚才的 WAV 文件,我们算出来每秒的比特率都是一样的,这就叫恒定比特率,那顾名思义,可变比特率就是比特率每秒都不同,这对于数据的压缩很有好处。举个例子,常规的歌曲,一般都有前奏、高潮这些复杂度不同的部分。对于复杂度较低的前奏,少给一点比特率,而对于复杂度较高的高潮,就多给一点比特率,这样既能保证质量,又能减少空间占用,没有比这更美妙的了。
此外还有一种,叫做平均比特率,它的原理是,每秒的比特率不一样,但是整个文件平均下来,每秒的比特率会达到你预设的那个值。
最后,向你推荐我翻译的一部科普视频 Digital Show & Tell,它能帮你进一步理解上述内容。