音频基础知识

来源:互联网 发布:c gui qt3编程 编辑:程序博客网 时间:2024/05/01 09:57
前段时间在闪存区发了一篇关于解码与音质的帖子,漏洞百出,在小小了解了音乐CD的原理之后,重作此文。
本文参考了维基和一些资料。
全文结构较乱,本来准备再整理,看到有研究wav和ape之类的帖子,决定提前发。
下面简述音乐从制作到变成声音进入我们耳朵的流程:

歌手在录音棚里唱歌,对于这些声音,专业设备每秒采样44100次,以16个二进制数表示电压(44100Hz,16bit,另外196KHz之类同理),将声音(模拟信号)转换为数字信号,称为AD(模数转换)。由于声音要后期处理,这些数字信号还要再DA(数模转换),AD多次,最终还是数字形式保存。
这些数字信号具体形式为一串串16位的二进制数字(中间包括定位符),称为线性PCM,DAC只认识这些东西。

对于CD机,它们读取CD碟中的二进制数字,然后每隔1/44100秒输出一组16位的二进制数字(PCM)到到DAC。

DAC负责数模转换,它把PCM转换为电压值。每次转盘给他一组16位的二进制数字,他就输出一个电压(根据这16个二进制数字里的定位符确定左右声道)。对于mp3播放器,DAC出来的一个个电压值直接进入运算放大器(运放),就是Line Out口。

还有一条路是DAC出来进入信号放大电路,这就是Phone Out口。

上述过程中有一个很重大问题,名曰Jitter。二进制数字在传输过程中不可能出现一丁点错误(0,1的世界里有完善的纠错体制),那么理论而言CD机输出的数字信号是完全正确的。但由于世界上没有精准的时钟,每隔1/44100秒输出的那个数字信号虽然完全正确,但时间不对,本来要在1s时的PCM变成了1s+50ps的PCM,最后输出的模拟信号波形是变形的!比如大家高中描点画正弦波形,x=1对应Y=1,结果变成x=1+5*10^(-11)对应Y=1,波形就不对了。Jitter在录音棚里就产生,由于人家的家伙很贵,Jitter都是ps级别的。到了CD机之类的,就是ns级别的,甚至更高(当然贵CD的就小),所以CD输出到DAC的信号变形不小,mp3播放器之类就更悲剧了。(ps为皮秒,10^(-12)秒;ns为纳秒,10^(-9)秒)

每一个过程都会产生jitter,第一步录制就有jitter(这个很小),CD转盘输出也有jitter,到DAC也有jitter。。。。。最后播放也有jitter。包括自己刻录盘也jitter,jitter无处不在。所以刻录盘和原版CD的区别是有的,就是刻录机产生的jitter,而0101001这样的二进制数字当然没有变化。jitter的实质就是在不准确的时间输出了正确的数(这是俺的理解,嘻嘻)。

对于44100hz,16bit的音乐文件,DAC一秒钟要转换44100串16位数字,然后输出,苦也。至于一些196Khz,32bit的音乐,却不是要了很多MP3的DAC的命?要知道很多mp3解码DAC都是一个主控里面的,就那点电压和空间。所以很多时候一些码率高的无损放不了(当然,不能播放不一定是这个问题),DAC表示鸭梨很大!
下面介绍音频文件。本来那一串串的数字,叫PCM,或者叫.wav文件,是的,就是CD抓轨的东西(还有一种wav是dts的,不予讨论)。wav是老子,儿子分两种,一种是有损格式mp3,wma,aac之类的,还有一种无损,如flac,ape之类的。

Mp3流行的背景,是人们发现wav太肥了,一首歌要50MB+。大家经历过128MB的mp3的时代,那个时候闪存贵啊,128MB和256MB价格差很多!于是大家就用mp3格式来存储。mp3是根据一种算法(MPEG-3),把wav简化,比如去掉20Hz以下和20000Hz以上的频率(一般人耳听不到)和心理上忽略的,最后把体积减小到十二分之一,音质却没有劣化太多,wma貌似加上了版权之类的。

无损之类的就是很多人发现mp3的音质不满足他们要求,于是通过算法把wav压缩,就像zip压缩一样,但没有一个字节的损失。所以播放无损不用怀疑音质和原始wav有任何一点点区别!当然耗电。在这里,无损格式推荐flac,由于只涉及整数运算,而且支持硬解码之类,解码简单,ape则涉及浮点运算。很多人发现一些无损无法播放的一个原因就是压缩率太高(使用footbar2000转化无损格式的话可以看到"最大压缩"和"最快解码")。
Flac官网的形容就是"为音频文件优化的zip压缩",播放前解压缩,因为DAC只认识那一串串的PCM。具体流程参考被压缩成zip的word文件,你双击那个word文件,于是先有一个提示框解压缩,然后打开word。而且,对于无损播放前的转换,再垃圾的mp3都能不出一点错误地转换为线性PCM,没有一点错误!这就是强大的数字世界。你解压缩zip文件,如果出错而又不能修复,就会提示错误,道理一样。无损和wav之间可以无限次地转换而不出一个字节的错误,就像你可以把一个文件无数次地压缩解压而不会改变文件一样。

Wav是一个容器,不代表无损,很多人遇到所谓的"假无损",就是wav已经劣化为了mp3,大量细节已经丢失。mp3此时仍然可以转化为wav(下面介绍这个过程),无损,由于编码原因,体积成倍增加,但是音质已经劣化,这就是"假无损"。

对于上述mp3转wav过程,在直接播放有损音频时都要遇到。一个mp3播放器在播放mp3文件时流程如下:从内存读取文件,解码芯片根据算法,对其进行近似,润色,修补,最后输出线性PCM(wav)。你可能会问:俺直接播放无损不就行了?对,就是这样,如果直接播放无损,这一步就没有,所谓的"飞芯"的音频解码没有用!另外有人发现一些老式或低端播放器不支持wav格式,这是因为他们的缓存太小,厂家为了提高效率,省电,不支持wav。

最后还是回到我们的mp3播放器。

主控是整个播放器的核心,指挥整个运作。他要负责控制音频解码芯片解码,输出PCM,指挥DAC输出模拟信号,还有负责最后的运算放大,润色,根据算法体现各种EQ,而且他还要插手电源管理,所以主控是大脑。

DAC是核心(反正这种小型播放器Jitter都是一个级别),DAC直接决定Lo的质量,决定Po到放大电路信号的纯度,他要保证及时准确地输出纯净的模拟信号。反正,DAC应该决定所谓的"素质"。DAC的供电也至关重要,DAC供电不足是无法达到理论的水平的,而QA350则采用了所谓的各部分独立供电。

至于Po的放大电路,这里决定听感,一部分调音,一部分EQ都在这里完成。

还有一个很重要的地方是电路设计,我拆开过国产平板,真是惨不忍睹,一塌糊涂。mp3的电路设计很大程度上也决定了他的素质和续航(电源管理),电路走向,电容的质量都至关重要,这也是sony,创新机子能够如此牛逼的一个原因,看看njb里面密密麻麻的电容,再看看国产的,啧啧,用料就不是一个级别啊。

最后介绍一下随身播放器调音和EQ。我认为调音和EQ几乎没有的就是所谓的录音笔,这是高素质的代表,完全靠强大的电路和元件把回放做到了极致。

调音过程不仅仅是模拟放大电路的功劳,DSP处理过程中就已经开始参与调音了。

EQ分为两种,通俗来讲就是硬件EQ和软件EQ,在随身里,前者往往是被植入到DAC芯片中的,欧胜的CODEC,比如WM8750、8970等,都有这个功能的。软件EQ就非常常见了,什么BBE,SRS之类的算是比较高级的,简单的自定义EQ也是软EQ,这些EQ通过DSP运算,对音频数字信号进行简单或者复杂的处理来实现调音。

Po口一定可以实现EQ,而Lo口则不一定(新款一般都有),T51和艾利和的H120等,EQ改变,LO输出的声音也会改变。而
老款的sony HD5在这方便做了优化,在采用LO输出的时候,EQ被强制使用了“正常”而且不能更改。

总之在播放器中的各个环节都遵循木桶原理,任何一方面偷工减料都将直接影响到最终声音的输出。尽情佩服那些设计出好声播放器的设计者吧,好的声音一定需要技术的沉淀与积累!
0 0