目前我对数字音频的认识
草草地看了一下USB协议书和spdif、i2s以及蓝牙和dlna音频的协议内容,对数字音频传输算是有了个基本概念了,也能理解为什么数字输出有时候不是绝对无损的了。
1:下载、传文件、流媒体等传输,都属于批量传输,实时性要求不高,就算是流媒体,时间同步工作也是在播放端本地进行的。比起实时性,这类传输看中带宽和容错率,只要传输速度快、传完后无错误就行了,这类传输是可以做到绝对无损的。
但是,数字音频协议是高度实时的传输,需要发送的主机与接受端之间严格保持时钟同步,缓冲区也非常小,也就失去了纠错空间。出现误码或者丢包时,接收端只能强行播下去或者跳过当前信号等待下一个,总之就是不要停下来啊!于是,一旦传输受到干扰,信号的劣化立刻就会体现在声音上。
2:数字音频信号和音频文件是两种东西。
音频文件是静态的,它只标明了每个采样点在时间与振幅两个坐标轴上的理想相对坐标,因此音频文件不论怎么传,只要校验通过就不会有损失。
数字音频信号则包含时钟信息,时钟信息给音频文件里的采样点赋予了真实世界中的物理时刻,也就是每个采样点应该在什么时候送给dac,这直接影响了声音的最终波形以及相位。
时钟信息由数字信号的发射端自己生成,生成的来源是自身的晶振时钟,然而这玩意往往不靠谱,尤其是PC和手机内置的晶振,稳定性和准确度远远不如高档CD机、数播、网播乃至便携播放器的内置时钟。
对于那些依赖于数字源的时钟信号而工作的dac来说,数字源的时钟稳定度及其重要,也就是对数字转盘会很敏感;现在的很多dac,机身内都捆绑了额外的控制界面和相对高档的时钟生成器,并且可以工作在USB的异步模式下,所以对数字源就不那么敏感了,至少不会受时钟误差影响。
时钟信号是究极实时的数字信号,它的纠错能力似乎为0,所以一旦受到干扰,声音的劣化也是立竿见影的,除非dac有自己的时钟并且以异步模式工作。
3:蓝牙音频协议不是完全实时的数字音频,它是异步工作的。
原因很简单,因为蓝牙所在的2.4g频段简直就是群魔乱舞,因此时钟信号这种毫无容错率的东西必须得丢弃。
也就是说,蓝牙音频传输实际上还是大批量型传输,真正的数字音频信号是在接收端根据接收端自己的时钟信息生成的。
那这岂不是意味着蓝牙和某些异步工作的高档dac一样了?并不是,因为接收端自带的解码芯片、时钟、dac和放大器一般还不如手机电脑,再加上蓝牙协议会强制统一地对音频文件进行有损压缩,不论码率多少通通有损(算法导致的,和无损压缩有本质区别),结果自然就拉跨了。
再有一点,蓝牙的实际带宽是要打折扣的。别看蓝牙5.0和5.1有48m的带宽,但是由于蓝牙音频协议需要超大量的冗余来纠错和保证延迟稳定性,导致实际可用的音频带宽依然很少,最多让ldac这种高码率传输的协议稳定性和通讯距离增加而已。
至于蓝牙统一压缩传输对声音的影响……实在是太大了,就我听来,hugo2这种级别的dac在aptx模式下,根本打不过蛐蛐btr3开ldac,aptx本身就tm拉跨,真的很拉跨。
4:dlna也不是实时传输的协议,它其实就是个高配无损版的蓝牙,而且实时性更差。
虽然dlna依靠WiFi的巨大带宽,完美解决了数据量的问题,可以完全无损地将音频文件传给接收端。但WiFi和蓝牙一样群魔乱舞,根本无法承载脆弱且无法修复的时钟信号,因此属于伪实时,相当于私有流媒体。
此外,蓝牙有专用的解码芯片,可以快速解码被有损压缩过的蓝牙音频信号并播放出来,苹果就是依靠h1芯片的高速专用解码能力实现低延迟的。但dlna传输的并不是专用的压缩信号,而是直接把音频文件拆包给你送过来,相当于让你在接收端重新播放源文件,协议内也没有像蓝牙一样的延迟回报信息用于同步补偿,所以等于放弃了播放延迟,天赋全部点到音质上了。
不过,也正由于dlna的真无损伪实时传输,也造就了网播这种高档流媒体数字转盘以及高档WiFi音箱的诞生。反正实际播放主机还是高档播放器本身,提供dlna源的服务器就只是个服务器而已,和声音无任何关联。
5:因为放弃了时钟信号,所以目前的无线音频协议根本无法在延迟上与严格时钟同步的数字音频流相提并论。
我手里的hugo2虽然也是有线传输,使用spdif协议,但它实际上工作在异步模式下,相当于舍弃了数字源的时钟,自己重新生成了一遍数字信号,所以延迟明显高于同步模式工作的声卡,达到了惊人的30ms,无法当做专业声卡使用。还好,有线传输到底还是比蓝牙稳定得多,所以打音游不是问题,不开音效就行。