许多年前,就有人开始议论关于16-bit,44.1 kHz的数字音频系统无法满足人耳的听音需要,无法真实地再现原有的声音。从理论上来讲,这种数字音频格式可以为我们提供0 Hz到22.05 kHz的带宽 和96 dB的动态范围。
(带宽即指频率带的范围。通常,人类听觉的带宽为20到20,000 Hz。动态范围则是指音频系统所能够提供的音量最大的声音与音量最小的声音之间差距。要注意有些设备制造厂商在宣传中的措辞。动态范围与信噪比不是一码事。信噪比是指通常的工作电平或是名义上的工作电平与噪声电平之比。这个指标通常都要小于动态范围的值。)
那么,我们为什么经常会听到说这种数字音频格式无法满足"金耳朵"的需要呢?他们这些人究竟感觉到了什么与众不同的东西呢?为了搞清楚这个问题,我们首先要回过头来温习一下数字音频的工作原理。好,拿出你的二进制计算器,喝点儿富含咖啡因的饮料提提神儿,然后我们要回到数字音频学校中去了!
— 基础知识
数字音频系统是通过将声波波形转换成一串数据来再现原始声音的。实现这个步骤使用的设备是模/数转换器(A/D),它给声波拍下许多个"快照"(即进行采样),每一张快照都记录下了原始模拟声波的某一时刻的电压值,将一连串这样的快照连接起来,就形成了声波的振幅(即音量或是音量电平)。每一秒钟所拍摄的快照数目就称为采样频率(或称采样率),采样频率的单位是Hz(赫兹,即每秒钟多少次)。采样频率是决定频率响应方面最重要的因素,其他因素均没有它的影响大(其他的因素我们将在下面进行讨论)。
系统中量化精度的bit数目直接决定了采用多少个"台阶"来表示声波振幅的范围(即动态范围)。每增加一个bit,表示声波振幅的台阶数就要翻一番,并且增加6dB的动态范围。由此可以计算出,一个1-bit的数字音频系统可以为我们提供两个台阶,即6dB的动态范围。而一个2-bit的数字音频系统可以为我们提供四个台阶,即12dB的动态范围;3-bit提供八个台阶,即18dB的动态范围;4-bit提供十六个台阶,即24dB的动态范围;以此类推。如果我们继续增加bit数,则量化精度就将以非常快的速度提高(用数学上的话来说,这是一种指数增长关系)。我们可以计算出16-bit能够提供65,536个台阶,即96dB;而20-bit可以提供1,048,576个台阶,对应120 dB;24-bit可以提供多达16,777,216个台阶,对应144dB(参见图1)。
图1:当数字音频系统中的量化bit数量增加后,其动态范围也要相应增加,增加幅度为6 dB/1-bit。如果按照量化的"台阶"数来看,则是每增加一个bit,用来表示音量大小的"台阶"就增多一倍。
当这个二进制的数所有的位上均为1时,对应着最大的音量值。通常我们称这种情况为"全码"。在数字音频领域,这种情况对应着最大的音量,音量不能更大了,再大就将产生喀哒声,而声波的振幅不会再增加。
— BITS与BYTES(比特和字节)
到这里,你已经阅读了一些有关数字音频的理论了,因此可以说,你已经是这方面的专家了。现在,你可以放下这本杂志,让你的朋友们对你刮目相看一番了。不过,你可能还是应该继续看下去,因为下面我们还要讨论一些实际问题,例如为什么我们当前的理论不能够很好地解释实际工作中所有的音频现象呢?
你可能不只一次地被人告知,在数字音频系统中进行录音时,要尽量录制较大的音量电平,这样才能够最大限度地提升输入电平的量化精度。较低的音量电平只使用较少的bit数,因此,它们只能得到较低的量化精度。当声音的音量变大时,量化的精度将会提高。(再次参考图1。当数字音频系统中的声音音量较小时,我们就不能只考虑整个系统的量化精度了,其实这时声波的振幅只用到了很少的几节台阶,如果我们将音量电平提高,则它将要用到的台阶数目就要增多,也就提高了实际的量化精度。)
你可以自己进行这样的试验:翻出一张最陈旧的CD唱片,然后找出其中采用淡出方式来进行结尾的歌曲。当音乐淡出时,开大监听音箱的音量电平,你一下子就会明白这一切了。你将会听到随着声音电平的降低,声音将会失真得越来越厉害。这种现象我们称之为量化误差(quantizatin error)。当数字音频系统中所采用的量化bit数目过少,造成系统无法正确地还原出原始音频信号时,就出现了这种误差。音量从大约48 dB下降到无声,声音音量的降低将会呈现出颗粒状的降低现象。
你可以这样来考虑,在纸上画一个半圆。连续的曲线对应着采用模拟录音带的情况。现在,我们要使用小孩玩的积木来搭这样一个半圆(参见图2)。所有的积木都必须具有相同的方向,并且相互紧挨着。尽管你可以搭出这样一个半圆,但是它毕竟还是有棱角的。使用较窄的积木(即采用较高的量化精度)可以使得这些棱角变得不明显,但是却无法让棱角消失。当我们采用数字音频系统来实现一个轮廓为平滑曲线的波形时,也会遇到类似的情况。声音中将会有这些棱角所带来的量化误差。
图2:上图中非常光滑的圆弧代表模拟录音带所重现的声波波形。使用长方条组成的圆弧代表数字音频系统重现的声波波形。在使用长方条时出现的那些凸出来和凹下去的部分就是量化误差。
对此,我们可以采用两种解决办法:抖动处理(dithering)或是购买具有较高量化精度的设备。抖动处理是一种不使我们现有的数字音频设备过时的方法。当遇到音量电平较低且变化较平滑的声音时,使用较多的bit数来进行量化,而在其他情况下则使用较少的bit数来量化,抖动处理还可以被使用在bit数目降低的场合,例如,当你必须要将20-bit的模/数转换器的输出信号录制到16-bit的DAT录音机或是CD上时,就可以采用这种处理方式。
你可能要提出疑问:如何才能正确地将一个20位的数变成一个16位的数呢?有一种方法是丢掉最后的4个最不重要的位(Least Significant Bits,英文简称为LSBs),并且就认为它们是不重要的。实际上这就是直接将低位的数据给截断了。还有一种方法是给我们的16-bit数据中加入随机的噪声数据。这种随机噪声数据采用线性方式,它只对最低位起作用,并且使得声音的变化更加平滑。
现在我们还是用儿童积木来进行类比,则这种操作就好像是我们用手抹了一下积木的边缘。这使得声波的轮廓与采用模拟录音带所录制的声音更加相似。当我们的噪声电平提高时(通常为3到6dB),低音量的信号就会消失在这种随机的噪声电平信号中,但是不会造成声音音量突变的情况。由于人的听觉对于声音音量的非平滑变化异常敏感,因此量化误差所带来的声音失真其危害性要远大于低电平噪声所带来的失真,可以说,给声音中加入随机噪声数据是一个非常不错的折中方案。甚至我们还可以通过均衡或是滤波处理,对噪声信号的频率进行控制,使它们处于16 kHz以上的频率段,道理是人耳对这一频率段中的声音不十分敏感。
尽管抖动处理工作得已经相当好了,但是,使用更多的bit数来进行量化操作依然是更好的选择。在前面我们曾经提到过,bit数目越多,量化的精度就越高,同时,我们每增加一个bit,就可以使得声音的动态范围提高6 dB。但是你要注意,这并不意味着系统可以回放更大的声音。动态范围增大表示系统对于轻微信号的再现更加真实。当使用16-bit的量化精度时,从最大音量(全码)到音量为零(各个位上均为零)之间的动态范围为96 dB。如果我们增加bit的数目,那么就可以表现出更加轻柔的声音。
因此,如果我们采用20-bit的量化精度,那么动态范围就可以达到120 dB。目前,我们正在试图使用更多的bit来表达这一范围,在16-bit数字音频系统中音量比零电平高6 dB的声音信号在一个20-bit的数字音频系统中就变成了一个比零电平高30 dB的信号,这完全是通过提高量化的bit数目来实现的。如果我们将量化精度提高到24-bit,那么动态范围就将达到144 dB,其结果是提高了系统对低电平信号的分辨率(参见图3)。
图3:当数字音频系统中的量化bit数量增多时,该系统对低音量音频信号的重现能力将增强。如上图所示,在16-bit的系统中,用来重现低音量信号的精度较低。而在20-bit和24-bit的数字音频系统中,重现同样波形的精度就要提高不少。
— 市场与技术之战
为了使问题复杂化,大多数的音乐设备厂商都在谈及有关量化bit数目的时候,对自己的产品采用各种不同的数据指标。首先,他们通常都要谈论其模/数转换器和数/模转换器的转换深度。然后就是说存储到硬盘或是磁带上的数据所采用的bit数目。通常,他们所采用的规格都不外乎16、20和24-bit几种。但是,这里还隐藏着另外一个问题。任何具有数字化处理能力或是混音功能的设备(例如新型的音频工作站/硬盘机/软件/数字调音台等)都有一个处理深度(processing depth)问题。它表明了当使用音乐设备上的数字信号处理器对声音信号进行处理时所能达到的精度。
好了,我们现在可以搬回家一台全新的24-bit音乐工作站,将一切都调整得恰到好处,这时,我们的心情也会格外舒畅。但是,为什么在这套"24-bit"的音频系统上却只得到了93 dB的动态范围呢?这个问题嘛,它涉及到了技术上的数据与商业广告宣传的区别。有些设备厂商会对它的产品整体的各个部分进行测试,然后将精度最高的部分的数据当作整机的指标来进行宣传。假如一套设备中的转换器和存储单元均是采用16-bit的量化精度,但是它的内部效果处理单元的精度却是32-bit,那么你很可能就要被蒙骗了。
在真实世界中,如果一套数字音频系统内部采用24-bit或是32-bit的处理单元,但是它却是将数据以16-bit的格式来进行存储,那么你所听到的声音精度就将被限制在16-bit上。处理深度是由设备进行均衡、混响、淡入淡出处理时所使用的数字信号处理器的量化精度来决定的。如果你的数字音频系统只能向存储介质上记录16-bit的数据,即使所有的处理都是以24-bit或是32-bit的量化精度来进行的,最终得到的结果依然还是要回到16-bit的水平上,当然你可以通过抖动处理来进行适当的补偿。
当一套数字音频系统通过抖动处理对数据进行优化时,也不可避免要对数据进行舍入。处理的数据越多,这种舍入所带来的危险就越严重。你必须清楚一点,即使只是对声音中的一个频率段进行均衡处理,整个音频数据都要发生变化。这也正是一套采用16-bit进行数据存取的系统中使用24-bit或是32-bit数字信号处理的好处。
你要知道这样一件事情:当使用数字信号处理器对音频数据中的任何一个元素进行处理时,实际上处理芯片都要得到所有的采样点的数值,并在其中增加一些数据或是改变一些数据的值。当使用数字信号处理器进行声像和音量电平的调节这种最为简单的处理时,就属于上面这种情况。为了给电平增加1 dB,数字信号处理芯片需要将所有的采样点数据都乘以1.122018454(这是在24-bit处理精度下的情况,处理时采用的量化精度越高,则这个数在小数点后面的位数就越多)。如果要想将音量电平减低1 dB,则数字信号处理芯片需要将所有的采样点数据都乘以0.8912509383736(数字信号处理芯片不会做除法)。
找来一个计算器,然后随我一起来做这样一个小小的实验:在1到65535(这是16-bit音频系统中的全码)之间随便找一个数。将这个数乘以1.122018454(即增加1 dB),然后再乘以0.8912509383736(即降低1 dB)。于是结果又回到了原来的数。例如,我们选择一个数5,327。给它乘以1.122018454后得到5,976.9923045,然后再乘以0.8912509383736,于是计算结果又回到了5,327。
现在试着这样来做:还是选择我们刚才的那个数5,327,给它乘以1.122018454,于是得到了5,976.9923045。然后我们对它进行舍入处理,只给它在小数点后面留下4位(这就好象是数字信号处理芯片没有足够的量化精度一样),这时结果为5,976.9923。给它再乘以0.8912509383736,得到的结果为5,326.999996,与最初的5,327已经不一样了。(这不禁使我们想起了当年Intel公司不得不为用户更换有问题的计算机芯片,它们是同一个问题,现在知道了吧!)
当然,这种溢出现象在进行单步计算时不会显露出来,只有当连续使用数字信号处理芯片使得误差累计到一定程度时才会显现出来。显然,上面的实验只是一个非常简单例子。我们还没有考虑抖动处理中的情况,但是你对这一点应该是非常清楚的:在数字音频系统内部使用高精度的数字信号处理芯片可以降低计算所带来的误差,采用的bit数目越多,这个误差越小。这也正是目前市场上销售的所有数字音频系统内部都采用高精度的数字信号处理芯片的原因。
(编者按--通过上面的介绍和简单的实验,使得我们对这些问题有了一个非常清楚的认识。当小数点后面的位数过多时,通常的计算器就要进行舍入处理。要注意,我们在进行上面的实验时不能将0.8912509383736舍入成0.8912509,如果这样我们就只能够得到5,326.9994这样的结果了。因此,如果你的计算机位数不够多,那么可以使用计算机来进行计算,或是拿出一张纸,一枝笔,进行手算!无论你是使用什么方法,计算结果都会向你展示出高bit数所带来的优势。)