今天早上在B站看视频,看了一个论CD比数播好的视频,观点居然是:CD读数据比数播读得更准确……Balabala。
这就很无厘头了,这说明很多人都还是没搞清为什么CD机好而数播电脑不行的根本原因。
就数据读取的准确性而言,不管是电脑还是网络传输式都是可以精确到每一个0和1的,出现误差,那是会要人命的。在今天的数据网络里,哪怕只有1/1000的误读,那文件都没法用了。大家网也别上了,电脑也别用了。
但是,这不意味着网络或电脑这类设备是在读取或传输信号是“无损”的,是没有误读和误差的。任何学过通讯专业或电脑的人都知道这个常识,也就是丢包,而且这是非常常见的事。为了解决这个问题,校验码应运而生。这玩意儿的作用类似于一个指纹,发射端发射一组数据,也就是一个包,最后会带一个校验码,接收到端接收到包,接收端就会用最后的校验码进行校验,如果校验过去了,就继续,不然就重新读。
在信号的读取和传输中,丢包是常见的现象。在网络信号不好的时候,这种问题会特别严重,也就是我们所说的网络卡了。这个应该任何上网的人都经历过,用过电脑的也常见,读个盘,卡卡才健康。以前读光盘时,更常见。但没关系,卡是可以容忍的,继续读就好了,什么时候网络好了,不卡了,就正常了。对于网络和计算机来说,只要不出数据读错就行。速度慢从来不是事,读错才是事。这是第一个要点,请务必记住。
上面是网络或计算机的数据传输的协议的一些基本简单的原理,也就是TCP/IP协议、HTTP协议,不一定准确,具体可以查相关的文章或书籍。
但也有些数据是主要考虑速度,不考虑读错的事的。比如,音频文件。我们打电话,信号不好,语音会中断,但稍微有点,就不会中断,只会变差。也就是说,音频文件包括音乐的编码中是没有校验码的,记住这一点,很重要。
为什么呢,那是因为在CD发明时,大家还没这校验这概念呢(我记得这个协议是1988年才出来的,而CD是1980年出现的)。CD光盘的读取方式和黑胶非常类似,都是同心圆往外读,读取的频率是由伺服电路和电机决定的。CD的采样率是16/44,也就是每秒按44k的频率读一组组的16位的数据,然后才把它翻译成音乐的声音强度,也就是响度。是的,只是响度,不是频率。那声音的频率是由哪个决定的呢,是那个44k的频率决定的。这点也很重要!因为人耳能听到的频率是从20-20000Hz,所以,44k的采样频率肯定是够了。再后面,96k的采样率出来了,192k的也有了,现在,384k的也出来了。DSD的采样和读取方式更不一样,频率很高,但一次只有一位。DSD128我记得是5.6M,也就是每秒读五百六十万次,五百六十万个0或1。
我kao,真是造谣一张嘴,避谣跑断腿。误导超容易,一句话就行。而要解释清楚,得一篇文章。都读到这里了,还不点个赞,给个评,关注下,谢谢!
这个时候就可以解释,为什么CD机音质好了吧。两个原因,一是这种读碟方式精度是比较高的,说人话就是不容易误读。现在CD机用的转盘,都是转盘里比较高级的那种了。伺服电路经过这么多年的发展,也非常成熟了。但仍然是不够了,还有更好的,比如俺用的CDM4的摇臂转盘,就是公认了的顶级转盘,读光盘的精度贼高。全球还有其它的顶级转盘,比如索尼的Fixed Pick Up Mechanism转盘和CEC的皮带转盘等等,目标都只有一个,就是减少读取光盘时的读数误差。为什么存在这类的转盘呢,言下之意就是其它的转盘不行呗,误差大呗。就不要拿你手里那区区的电脑光盘机说100%的精度了。
除了读碟精度外,另一个重要的事就是44k频率了。这玩意儿是由CD机内的时钟决定的,时钟也就是晶振这个元件,它决定了音乐重现时的频率的精度。要是误差大了,没准本来是1000Hz的信号就变成了1100Hz了,这肯定不是同一音了,也没法听了。不过,CD用的44k这个频率是固定的,因为它只读CD光盘,其它一律不认。而44k这个速度很慢(相对的),现在随便一个晶振的精度相对它都老高了,还原出来的精度是可以保证的,至少人耳绝对听不出来。
当然,另一方面,CD读取数据是相当严格的按照内部时钟的速度读取的,它内部有一个侍服电路来确保这个。读错了就错了,不会再去重复读。然后再由后面的解码芯片按内部时钟速度进行解码,把它翻译成音乐的响度和频率。
为什么CD的声音好,原因就是这么简单,读盘精度很高(尤其是高等级的转盘和侍服电路),时钟随便满足要求,读取到的数值也严格按时钟进行解码,那能不音质好吗。
现在再来说数播。从读盘的精度来说,它是不可能跟CD相比的(不然CD白进步了)。是的,很多人只要不是读过通信这类专业的,都会以为电脑读盘是100%没问题的。但实际上,如果没有校验码,一篇文件它能跟你错很多,它的精度是依靠反复的读取来实现的。数播读盘也一样,但是,音频文件是没有校验码的,因此,错了就是错了,它没法子纠正的。而现在的音频文件,除了16/44外,还有24/92、24/192,甚至,还有DSD的,那读取的要求更高了,误码丢包是也常见的事。也就是说,音乐响度的还原会有问题。为了减少读盘出错的问题,最简单的办法就是降低读盘速度,只求读准,不求速度。但这样会带来另一个问题,就是读数的时间不固定,数据与时钟不同步的问题。
除了误码丢包外,另一个就是时钟了。不同于CD机只有一个44k的时钟。数播这类产品是不可能只读16/44这种文件的(不然,你一台都卖不出去)。至少,24/192要支持吧,DSD256要支持吧。你会发现一个问题,那就是不管是96k也好,192k也好,它都不是44k的整数倍,而是44k的2.1818181……和4.363636……倍,也就是说,192k晶振精度再高,用在44k时的都不行,误差是必然存在的。如果要DSD256,那时钟是11.2M,这个要求是比较高的,关键是,它既不是44k的整数倍,也不是192k的整数倍,问题就更大了。因此,只能妥协,都相互照应一下,不要误差太大就行。再加上上面提到的读数时间不能完全同步的问题(这个更恼火),因此,用它们来还原频率,误差总是存在的。这也就是我们常说的Jitter问题了。
解决这个问题的办法也不是没有,两个。一是增加读数的缓冲,咱多读些数出来,然后按照时钟进行输出,这就是现在的异步技术。理论上讲,它可以彻底解决读数与时钟不同步的问题,但实际上也只能减轻无法彻底解决。同时,咱们准备几种时钟,读取不同采样率的数据,让不同的时钟工作。但这种办法有一个缺点,成本是很高的(晶振并不贵,贵的是设计和周边)。一般机器它肯定不这么干,设计太复杂了。但外接的时钟它可以,这也就是为什么有些机器有外接时钟这种骚操作了。
为什么数播音质它不容易做好,同价位音质差很多。一方面要保证读取的精度(这个已经比CD难了),同时解决不同步的问题,另一方面要保证几种不同要求时钟的误差(臣妾做不到啊)。当然,也不是真不能解决,就是成本比较高而已。大家要记住,不管价格是耍流氓!我们所说的好与差,是在同价位或差不多的情况下对比的结果。实际上,如果数播解决掉这两个问题,那它比CD机强是很自然的,毕竟它支持更高的码率的音乐。但成本肯定是偏高的。
再说回电脑,这个货的精度更差。不仅是在读盘上,毕竟数播只干读音乐文件这一件事,它相对容易得多。但电脑是啥文件都要读的,丢包就更常见了。更关键是,它内部干扰更大,尤其是台式机(台式机电源EMI绝对不可以忽略)。假设我们定义1V是1,0V是0,因为干扰,它读1时变成了0.6V,读0时变成了0.4V,电脑它就傻了。对于普通数据,没关系,有校验码呢,重读就好了。但对音频文件,没这玩意儿,那它就只好乱整一下。错就错吧,也就是声音响度比原始录音差点而已。同时,它对同步更没概念,读准是第一位的。
更重要的是,电脑时钟不是专门给音频准备的,它的精度就更差了。可能连照顾都不愿意照顾一下了(照顾不过来的,它要照顾的东西太多了)。那还原回去的频率就差得更大了。
对网络而言,它的问题就更大了。网络要不卡下,都对不起俺们的上网费的。更何况网络上的原始文件都远不能比CD了。时钟和同步的话,得看运气了。
搞懂这些,你就会明白。为什么CD格式并不高级,但CD机的声音就是不差,比同价位数播和电脑好很多的关键原因了。
笔者注:根据评论做了些修改,加个了Jitter的说明。虽然可能不严谨,但意思就是这个意思啦,别较真!