录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

(原创)电脑能够不失真再现CD-Audio所记录的波形吗?

( 14 )
 
[收藏]

3860
#1 06-8-9 00:16

(原创)电脑能够不失真再现CD-Audio所记录的波形吗?

      (雨后初晴)
        这段时间很多争论都是围绕在——CD唱机或者电脑(含光驱)能否100%还原CD-Audio上面的数字音频信息——这一焦点展开的。根据我目前对于CD-Audio的理解程度,想谈谈电脑对于CD-Audio的重放。
      
       因为全是自己的语言,所以很多地方可能不够严谨,甚至有错误。对于不关大局的错误,希望大家包涵;涉及技术性的严重错误,还请一定指出!

       很多熟悉电脑以及程序的朋友都会说:“两种光盘记载的都是数据信息,都是0和1,本质上没有什么区别,电脑能够完美读出CD-ROM的信息,一样可以完美读出CD-Audio的信息”。这里的“完美”当然是指“100%正确”读取数字信息。
但对于“读出”的理解却有必要说明一下。对于CD-Rom,能够完整、无错地将它记录的数据信息在硬盘上复制出Copy,我们就认为“读出”了。但对于CD-Audio,由于它记录的真正内容其实是声音,所以应该是无失真的再现光盘上所记录的原始波形,才被认为是完美的“读出了”。至于为什么不说“声音”而说“波形”,是因为重放声音牵涉到很多模拟设备,而此处认为只要电脑能够在DAC之后得到“完美的波形”就合格了。

       还有一种情况,就是电脑将CD-Audio当作CD-Rom一样看待并复制(比如Exact抓轨),而不进行波形上的还原,暂时不在讨论之列。

       众所周知,电脑在传输数字信息时是容不得哪怕一个bit的错误的,一层一层的纠错算法(C1/C2/ ECC/EDC)可以确保被传输数据准确无误,电脑在读取CD-Rom时有两个独门绝技,一是发现出错就重头再来,直到所有校验都通过为止;二是可以通过数据的头和尾对整个数据包进行校验。

       但不幸的是,电脑读取/播放CD-Audio时就不得不放弃它的那两大独门绝技。转而使用最原始的纠错方法,来适应红皮书规定的CD-DA标准。这个过程与读一般数据的最大不同就在于:1,读取速度不能随意加快(读CD-Rom动辄32X、48X的倍速在这里是行不通的),而是要根据光头组件所获取的PCM数据流量,来自动伺服转速机构;2,纠错和读取数据必须几乎同步进行,这个“几乎”的大小取决于数据缓存(Ram)的大小。中途不能停下来,由硬件组成的C1/C2纠错系统能够迅速纠正最底层的C1错误,一旦C1解决不了,那么通常就由C2进行估算,内插出一个近似数据,这就是生成了误码。(这里要说明的是,误码出现不一定会引起听觉上的明显感受,插值的计算方法会尽量寻求一个与前后数据可以平滑连接的数值,只有在误码成片、连续出现,超过平滑推算的限度后,才会形成明显失真,甚至暴音、跳音)

       由于上面这两条限制,对于品质严重不佳的CD-Audio,几乎可以肯定地说:电脑无法“完美”再现光盘上的音频波形。
      
       当然,这个“品质严重不佳”其实是有比较严格的上下限的,就是:该光盘的某些数据无法被C1/C2校验还原,但又可以通过ECC/EDC进行还原(对CD-Rom而言),比较典型的例子就是那些表面磨损严重但又没有很深刻痕的那些光盘,相同程度的磨损,对于CD-Rom来说,也许仅仅是增加了读取和校验的时间,但还能一字不差的复制,但对于CD-Audio来说,已经无法获得“正确”的波形了。

       之所以要加上限,是为了公正的对比——如果连具有完善纠错机制的CD-Rom都无法保证数据完整读出,那探讨能不能“完美”播放CD-Audio也就没有什么意义了。

       那对于正常品质的光盘又怎么样呢?

       正常的光驱读取正常的光盘,基本可以杜绝误码的发生,仅仅C1就可以对最底层错误完全纠正——由于工艺、材料、技术的限制,这种错误是必然要发生的。没有了误码,却不等于消除了失真,影响波形重现的真正元凶——Jitter出现了。

       Jitter——时基误差,成为数字音频在进行模拟放大之前就产生劣化的主要因素——Jitter也许相比模拟部分产生的失真在数量级上是很小的,但它引起的听感变化却很大,模拟失真的特点是比较“圆滑”而“隐蔽”,数量值大,却不一定带来听觉上的严重劣化。更何况,数字信号失真处于系统的前端,这个失真不仅会成为整个重放系统的保真瓶颈,还会在后面被累加、放大。

       通俗的讲,Jitter可以被形容成:正确的音符在错误的时间出现。就好比新手演奏一个钢琴曲,每个音符都没错,但是时值、节拍没掌握好,导致每个音符不是在该出现的时候出现,最后演奏出来的曲子也许仅仅不够准确(容纳程度以内的Jitter),也可能面目全非(Jitter过大导致误码)。这样说,Jitter影响音质就很好理解了。

       Jitter是怎样形成的呢?为了便于讲解,还是拿CD唱机为例。

       普通的CD唱机(还有不普通的顶级机后面会提到),其转速侍服机构和时基稳定机构都有赖于光头对PCM数据的读取。根据单位时间的数据读取量,唱机会判断自己的主轴转速是否合适,同时得到自己正确的时钟基准。

       CD-Audio上的数据,跟CD-Rom数据的重要区别之一就在于:前者的每个数据(取样点)都包含振幅信息和时间信息。但CD-Audio上面并没有单独存放时间信息,每个数据的时间信息来源于红皮书对CD-Audio的采样规定——44.1K,每秒44100个采样点,在事实上赋予了CD-Audio上每个振幅的横坐标——时间。

       理论上,每个采样点都有精确的振幅和时间,但实践起来,却不可能严格精确。CD-Audio数据层上用“凹坑”和“非凹坑”来记载数据,光头组通过捕捉凹坑是否上升/下降来确定信号是“1”还是“0”,按说,每个凹坑的形状、长度、间距都应该是严格精确的数值,并且一般唱机也是这么认为的。但生产工艺不可能精确无误,实际的凹坑误差跟唱机的“美好愿望”就产生了矛盾。这样就出现了由光盘凹坑本身不精确而产生的Jitter。

       另外,唱机是通过恒线速度来读取光盘数据的,这就要求主轴的速度一直在变化,这个变化又会产生转速误差,加上光盘材质、厚薄、抖晃以及唱机供电、线路传输等,各种不确定因素都会影响数据的精确读取而产生Jitter。这些Jitter都集中到DAC前端,有些相互抵消,有些合并增强——最后就形成数字系统的综合Jitter。——当然,这些Jitter的产生并没有影响数据(1或者0)的正确性,只是将带有误差的时钟信息传给了DAC电路。

       为了尽可能减少Jitter,唱机厂家采用了很多手段,比如超采样(Supersampling)、FIFO数码缓冲技术、双向锁相环(PLL)等。其中Mark Levinson在其Hi-End顶级唱机上成功地运用Closed-Loop-Jitter-Reduction(CLJR)闭路时差纠正系统,将Jitter控制在了非常小的范围。其原理就类似一个水坝,先用高转速(相对正常唱机转速)快速将光盘数据读取并存储在Ram中,然后再用一个精准的时钟信号来重新定位这些数字信号,如同水坝一样先把洪水蓄起来。再人工控制其流量时放出去。这个过程也叫re-clock。

       通过re-clock之后,如果不考虑CD-Audio压制中产生的Jitter(同样是无法消除的),最后Jitter将非常小,其数量级取决于DAC独立的精准时钟,而这个时钟的精度相对更容易做的相当高。

       由此可见,re-clock使得唱机截止到DAC部分时,失真可以做得非常小,也使得采用普通转盘装置配合高精度DAC做出优质唱机的愿望变成可能。

       哎,写这种东西很容易不知不觉扯得很远……现在回到电脑上来,由于光驱的结构跟唱机基本相同,所以前面的叙述也适用于光驱。

       其实,普通电脑光驱(CD-Rom)并不像很多人认为的那样比唱机转盘要精确很多,相反,其素质一般低于唱机转盘。所以,如果利用光驱本身的模拟部分输出CD音频的话,其声音失真比唱机通常要高得多,不仅在于简陋的模拟放大,其光头以及DAC出来的Jitter就相当高。

       但是如果把光驱仅仅当做转盘,将后面的处理交给电脑(主要是声卡)的话,情况就要复杂得多,但肯定比光驱自己处理要好得多。音质基本取决于声卡的设计和素质。专业音频卡的高素质DAC就保证了尽可能小的Jitter。

       写到这里,我的观点也基本明确了:目前的电脑还是无法不失真再现CD-Audio所记录的波形的,但合格的光驱配上优质的音频卡,可以得到失真非常小的CD重放。但非常小的失真也是失真,跟很多人认为电脑可以像100%正确读取CD-Rom一样的去读取CD-Audio是完全不同的。


[ 本帖最后由 雨后初晴 于 2006-8-8 16:18 编辑 ]

593
#2 06-8-9 01:21
好文,坐一次沙发。

4159
#3 06-8-9 09:11
楼主顺便对比分析一下DAT吧~~~~~~~~~~

4417
#4 06-8-9 09:47

《雨后初晴》说的不错,你太能写了,我是自愧不如,

我补充一下,纯属瞎补望你指正。      
      其实jitter的产生是不可避免的,人们做的一切努力都是为了最大限度的减少jitter,但由于但由于信号传输的原因,就必然会产生jitter,虽然硬盘比起CD要好很多,但也只能保证文件的正确,却不能保证不产生jitter,只是大小而已,如果是两个硬盘是通过任何一种连线连接的,这个连线也能产生jitter,也就相当于当我们把CD的数字输出和外部的解码器连接在一起的时候,不管使用同轴线缆,还是TOSLINK光纤接口,或者SToptical接口,都将在源信号中引入jitter。还有,不同的接口会引入不同类型的jitter(波形,频率,振幅以及相关性上的不同)。这样就可以解释以下问题了,
1,为什么不同的数字接口(光纤,同轴)音质不同,尽管他们传送的都是相同的信号。
2,为什么线材长度会直接影响音质。
3,为什么不同厂家生产的同样长度的同轴线缆音质不同。

6370
#5 06-8-9 15:39
呵呵,这个问题在去年的“耳机大家坛”讨论了很久了。

当时就是讨论USB声卡和1394声卡的通信传输的时基误差的问题,大部分人的结果是USB通讯过程中会产生很大的时基误差,这个结果会使大部分USB声卡听感大为不好。USB接口是谋杀音质的杀手之一....




另外,我有个不懂的小白问题想问问:声卡上的时钟相关(比如晶振、DAC时钟)精度是否会决定声卡数字I/O的时基误差的大小?

6370
#6 06-8-9 15:46
原帖由 mihu2000 于 2006-8-9 09:47 发表
1,为什么不同的数字接口(光纤,同轴)音质不同,尽管他们传送的都是相同的信号。
2,为什么线材长度会直接影响音质。
3,为什么不同厂家生产的同样长度的同轴线缆音质不同



是啊,同感,我听过很多牌子的光纤和同轴,各个听感大大不同。S/PDIF传输的数字音频信号绝对不是无损的,就连平衡的AES/EBU也不是无损的(仅仅是传输损失比S/PDIF小很多,但还是有损失)。这里说的损失主要就是时基误差。

还有个现象,我感觉信号线的连接方向不同也会导致听感不同...,不知道是我心理作用还是真的是这样...

3860
#7 06-8-9 19:39
原帖由 mihu2000 于 2006-8-9 01:47 发表
虽然硬盘比起CD要好很多,但也只能保证文件的正确,却不能保证不产生jitter,只是大小而已,如果是两个硬盘是通过任何一种连线连接的,这个连线也能产生jitter,也就相当于当我们把CD的数字输出和外部的解码器连接在一起的时候,不管使用同轴线缆,还是TOSLINK光纤接口,或者SToptical接口,都将在源信号中引入jitter。还有,不同的接口会引入不同类型的jitter(波形,频率,振幅以及相关性上的不同)

据我分析,硬盘间的数字传输,跟CD数字设备之间的数字传输还是不一样
简单说的话,可以这么认为,硬盘间传输的是非实时数据,而cd设备之间传输的是实时数据,也就是说,前者在传输中可以确保数据不会出错,而且传输过程中不会产生新的jitter,而后者不仅在传输中会产生新的jitter,而且这个jitter还会累积——所以传输线材和接口很关键

现在我有个还没弄明白,就是在硬盘上播放wav时,究竟有没有利用ram进行re-lock,如果没有,那么硬盘素质和数据线素质会对音质产生影响至少在理论上是成立的

4417
#8 06-8-9 20:24

elunxp

不光是信号线有传输方向,数码线也有传输方向的问题,这个问题这个论坛很多人是不承认的。

4417
#9 06-8-9 20:26

雨后初晴

{数据线素质会对音质产生影响}这个是肯定的,你做个试验就知道了,很简单!

1834
#10 06-8-9 21:46
看晕了,看来我不适合看

6342
#11 06-8-10 11:54
楼主辛苦了,我明白了一个问题,为什么两次抓取的同一个曲子,做反相叠加后会有几根刺出现。这抓下的两个文件其实已经不完全相同了。我再把一个WAV拷贝到U盘里,再考回来,再做反相看是不是有问题。

3860
#12 06-8-10 13:19
原帖由 迷离 于 2006-8-10 03:54 发表
楼主辛苦了,我明白了一个问题,为什么两次抓取的同一个曲子,做反相叠加后会有几根刺出现。这抓下的两个文件其实已经不完全相同了。我再把一个WAV拷贝到U盘里,再考回来,再做反相看是不是有问题。

虽然我做过抓轨比较的实验,结果也是无法抓到一致,但现在我感觉出现这个情况最主要的原因可能是数据出现了“平移”,也就是说反相比较得出的差异可能并不是数据本身出了问题,而是比较的时候没有校正这个“平移”

数据传输、转移过程虽然有可能带来新的jitter,但只要没有进行DAC或者ADC,那么Jitter是没有讨论意义的(前提是jitter没有大到产生误码)

4417
#13 06-8-11 00:08

迷离

你是直接插上?还是通过usb线连上?就是usb线,1394线,不同的线声音也不一样,还有就是usb线和1394线,也有
传输方向的问题,你要是不行你可以试试就知道了。

1821
#14 06-8-11 01:31
原帖由 雨后初晴 于 2006-8-9 19:39 发表

据我分析,硬盘间的数字传输,跟CD数字设备之间的数字传输还是不一样
简单说的话,可以这么认为,硬盘间传输的是非实时数据,而cd设备之间传输的是实时数据,也就是说,前者在传输中可以确保数据不会出错,而且 ...

在采样是进行了的

1798
#15 06-8-11 10:41
原帖由 雨后初晴 于 2006-8-10 13:19 发表

虽然我做过抓轨比较的实验,结果也是无法抓到一致,但现在我感觉出现这个情况最主要的原因可能是数据出现了“平移”,也就是说反相比较得出的差异可能并不是数据本身出了问题,而是比较的时候没有校正这个“平移 ...


请看一下我做的抓轨比较.
http://www.audiobar.net/viewthre ... &extra=page%3D1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索