探索真相:精確讀取和復制CD-Audio
Lucifer 于 2006.08.25 14:54:25 | 源自:IT168評測中心 | 版權:轉載 | 平均/總評分:08.70/87

本文轉載自IT168(原文地址

一直以來,玩電腦入門的人通常都被老鳥告知,通過燒錄機精確讀取、復制CD-Audio是不可能的,雖然之間的爭吵也沒有停息過,然而基本上這個言論已經被當作了一種常識了,它是否就是正確的呢?我們首先闡述一下精確讀取CD-Audio的可能性,再闡述一下影響讀取、復制CD-Audio的因素。

Red Book——CD-Audio

CD(Compact Disk),是由Sony和Philips共同開發的技術規范。最早出現的CD產品就是CD-Audio,技術規范就是紅皮書——Red Book。
標準CD-Audio的直徑為120mm,厚度為1.2mm,音頻規格為雙通道16位/44.1kHz,頻響5-20,000Hz,動態范圍96dB,播放時間為74 min。

在CD-Audio中,數據的最小可訪問存儲單位為Block(塊),相對地在CD-ROM中則稱之為Sector(扇區)。
在CD-Audio中,每一秒音樂劃分為75個Block,每個Block被劃分為98個Frame(幀),通過比特率之類的計算可以很容易得出每一個Block的大小為2352Bytes,每一個Frame的大小為4Bytes。

在CD-Audio中,每個Block的2352Bytes內容全部是PCM編碼的音頻數據,而在CD-ROM中,則只有2048Bytes的內容為數據,其他304Bytes內容則為校驗、同步所用,以CD-ROM Mode 1為例:12Bytes Sync(同步內容)、4Bytes Header(頭)、2048BytesEData、4Bytes EDC(CRC校驗碼)、8Bytes Resevered(保留)、276Bytes ECC(錯誤糾正碼),顯然,CD-ROM標準比CD-Audio對數據的保護更加完善。

不管是CD-Audio還是CD-ROM還是其他CD,每個Frame都是用了兩種編碼轉換成為實際光碟上面的Pit(凹坑)和Land(平面):一個是CIRC編碼,保證資訊的邏輯正確性;另一個是EFM編碼,提供物理讀取/寫入的訊號識別可靠性。
CIRC(Cross Interleaved Read-Solomon Code)編碼過程在24Bytes原始數據中加入
8Bytes的校驗幀,它包括了C1和C2各4Bytes的糾錯碼。需要指出的是,原始的24Bytes數據經過CIRC編碼后,分散到包括本CIRC幀在內的109個CIRC幀當中,這大大提高了容錯能力。
CIRC編碼生成的32Bytes幀中還要加入1Bytes的Sub-Code控制碼,這個控制碼對CD-Audio而言是一個關鍵。
所有的33Bytes CIRC幀要經過EFM編碼,EFM(Eight to Fourteen Modulation)即8到14編碼,同時EFM編碼要符合二進制光碟的RLL(Run Length Limited,游程控制)編碼規則,每8bits數據經過EFM編碼為14bits之后都要加上3bits的Merging Bit(合并碼),因此EFM編碼從效果上實際上是一個Eight to Seventeen Modulation,即8到17編碼。
這樣33Bytes的CIRC幀便變為一個561bits的EFM幀,然而這還不是全部,每一個EFM幀需要3Bytes即24Bits的同步字節,同時這個同步字節需要3bits的Merging Bit,這樣一個完整的Frame就需要共588Bits的信道脈沖。然后每個脈沖就轉換為CD盤片上的Pit和Land,1就是Pit/Land互相轉換,0就是保持不變。

以上就是CD紀錄模式的大概技術細節。

Sub-Code控制碼

再介紹每一個Frame上存在的1Bytes的Sub-Code控制碼:每一個Block有98Frames,
75Frams的所有Sub-Code組合成為一個Sub-Code Block,顯然它的大小為98Bytes。這98Bytes中,頭2Bytes標志著Sub-Code Block的開頭,獨特地稱之為S0和S1。
對于每一個Frame上的1Bytes即8bits的Sub-Code控制碼,按順序稱之為P、Q、R、S、T、U、V、W。這樣每個98Bytes的Sub-Code Block除去S0、S1 Bytes剩下的96Bytes便可以劃分為P、Q、R、S、T、U、V、W words,每個Words就由所有相對的bits組成,如P words就由96Frame里的96個P bit組合而成,每個Words長度為96bits。音頻應用只使用了P words和Q words,其他6個用于Text、Photo、Video之類的控制。

P words的作用非常簡單,在每一個Audio Track音軌的開頭,P words全部為二進制1(還有一些其他規則),在音軌中,P words全部為二進制0。Lead-Out區域,P words以交替
為0和1,周期為每秒2個循環。

Q words,96bits,分為4個部分:
第一個4bits的部分用于控制,Bit 1為0時CD盤片即為雙聲道,為1時即為四聲道(當然……CD-Audio并不支援4聲道,所以這個bit沒什么大路用),Bit 2 未定義,Bit 3即為復制開關,為0時禁止復制,1時則可以——最后效果如何,要看讀取的光碟機買不買賬——Bit 4控制Pre-Emphasis需要如否,為0則不需要,這個選項僅對模擬輸出有效,同時還有一些其他不重要的限制。
第二個部分的4bits決定著第三個部分72bits的結構模式。最后16bits的第四部分為CRC錯誤檢測,純粹是檢測,無法糾錯,基本上沒什么用。
第二部分的4bits可以定義16種模式——通常只有3種有用:

Mode 1定義第三部分的72bits紀錄CD-Audio碟片音軌的號碼以及開始的時間。72bits分為9Bytes,每Bytes使用BCD(Binary Coded Decimal)編碼解碼為兩個十進制數字。
第一個Byte就包括著音軌號,范圍就是01到99,在Lead-In,這個值為00,在Lead-Out,這個值為AA。
第二個Byte在音軌內記錄著索引號,范圍是01到99,00用于音軌之間。在Lead-In區域,它記錄著音軌號。Lead-Out區域這個值為01。
接下來使用3個字節來記錄當前Block的分、秒、Block間隔,因為Sub-Code Block出現的頻率跟紀錄Block出現的頻率是一樣的,都是每秒75次。在Lead-In,這個間隔從唱片開頭計算,在音軌內,這個從音軌開頭開始計算,音軌之間,這個間隔從下一個音軌開頭往回開始計算。
第6Byte沒有使用,并總是為0。
第7、8、9 Byte作用跟3、4、5 Byte相似,它在Lead-In區域之后,記錄著從第一個音軌開頭開始計算的分、秒、Block間隔。在Lead-In區域,它們跟第2 Byte一起被稱為唱片的TOC(Table Of Contents),為了容錯,這時每一個Sub-Code Block都連續重復三次,7、8、9 Byte記錄著到達唱片第一個音軌開頭的分、秒、Block間隔;當第2 Byte值為A0或者A1的時候,第7 Byte(分間隔)就記錄著第一個音軌或最后一個音軌的數值,當第2 Byte值為A2的時候,第7 Byte(分間隔)就記錄著唱片的所有音軌時間(包括音軌之間的靜音)。

Mode 2定義紀錄UPC(Universal Product Code),這就是很多唱片上面的條形碼,開始的52bits被編碼為13個BCD數字,接下來的12bits全為0,最后的8bits包括著當前Sub-Code Block在當前秒中的編號。Mode 2 Q words在使用的時候每100個Sub-Code Block必須最少出現一次。

Mode 3定義紀錄每一條音軌的ISRC(International Standard Recording Code),跟Mode 2一樣,這是可選的,然而在使用的時候每100個Sub-Code Block必須最少出現一次。ISRC使用了60bits,接下來的是4bits的0和跟Mode 2 Q words一樣的8bit名當前Sub-Code Block在當前秒中的編號。
這三種模式都有著定位音軌、時間的功能。

最后,CD光碟還使用ATIP(Absolute Time In Pre-groove,絕對時間預制溝槽技術)來指示地址資訊,一個ATIP地址資訊共42bits,每秒鐘出現75次,即每一個Block就對應著一個ATIP地址資訊,這個42bits的數據塊包括著4bits的同步碼、24bits的分、秒、幀資訊(每一項使用8bits)以及14bits的CRC校驗碼。

由此可見,我們的CD播放器上看到的音軌以及時間資訊,都記錄在Sub-Code的Q words里面,通過這個資訊,對照ATIP地址以及Q words本身,CD-Audio就可以精確定位每一個Block的每一個Frame,因此我們可以完全確定地讀出每一Frame的內容,并且每一Frame的內容都受著CIRC編碼和EFM編碼的保護,最后我們可以有序、精確地讀出完整的CD-Audio資訊。

簡而言之,精確地讀取CD-Audio的資訊是可能的,影響著這個可能精確讀取度的因素是CIRC編碼及EFM編碼的可靠度。影響CD-Audio復制、燒錄、回放的另有原因。

CD-ROM具有額外的ECC/EDC糾錯碼而具有著更高的可靠性。

CD-Audio Beta、Jitter、回放及復制

對于CD-Audio的精確讀取,在上一頁已經闡述了其可行性:CD-Audio上每一個幀都可以有序精確定位,每一幀的內容都可以完整讀出。現在我們來看看實際情況,以及一些以前的觀點。

對于CD-Audio盤片而言,有兩個影響/讀取回放質量的因素:Beta和Jitter
Beta就是激光功率在Pit和Land區域相對于功率中間點的對稱性。CD-Audio規定為不大于+-0.008。
Jitter就是碟片的的數據周期/長度與標準數據周期(時鐘)/長度之間的誤差,參照物為標準的3T周期/時鐘,單位為%或者ns。CD-Audio標準為不超過15%,即約為35ns。
顯然,光碟的Beta和Jitter同時也跟讀取/燒錄光碟機相關。通常Beta不是一個太重要的因素,人們談論更多的是Jitter。

對于CD唱機而言,可以分為唱盤和DAC兩大部分,純數字的唱盤部分可以/可能做到輸出正確的數字資訊,可能的音質影響因素便存在于唱盤機械部分引起的無法糾正的讀取錯誤(光頭數字部分時基電路的Jitter也有可能會引起這些錯誤,然而大部分情況下,被CIRC編碼和EFM編碼所修正),以及由于時基電路的Jitter引起的DAC過程不精確上(這個,無法修正……)。
對于CD播放器而言,Jitter就是時基抖動,歸根到底就是頻率發生器/晶體振蕩器產生的時鐘訊號的準確程度。同時,時基電路的Jitter也引起了光頭的數據周期/長度與標準數據周期(時鐘)/長度之間的誤差,即Jitter是一脈相承的。
一些傳統的觀點認為CD-Audio是沒有定位資訊的,由于Jitter的原因光碟機無法得到準確的讀出訊號,現在我們知道CD-Audio確實是有很多同步、定位資訊的,所以這種觀點自然不再成立。
另一些觀點則承認CD-Audio可以完整讀出,但是因為Jitter原因無法得到精確的音頻數據,這是對Jitter的誤解,由Jitter引起的Pit/Land讀取錯誤會被EFM編碼糾正,更大范圍的錯誤則可以被CIRC編碼糾正(當然CIRC編碼之后就沒有更多的保護措施了),這種觀點自然不是正確的。

然而,CD唱機的通常遇到錯誤的數據塊的時候是不會反復讀取的,這時就會產生爆音,或者,按照機理的不同,通過運算生成一個接近真實值的新值來代替,這樣回放效果自然不會好。高級的CD播放器會通過機械、時鐘電路等各方面的改進來提升回放的效果,相對地成本也會更高。

對于CD光碟機而言,回放通常由音效卡來完成,這時跟CD唱機的情形也差不多,因此光碟機數字部分時基電路的Jitter和音效卡DAC部分的Jitter影響著音質。
讀取CD-Audio的時候,通常CD播放器不會反復讀取CD-Audio的Frames,因此要得到完美的聲音,需要付出較大的代價,而CD光碟機抓音軌則可以反復讀取,因此CD光碟機抓軌對于復制而言可以/可能做到100%的,這一方面而言CD光碟機對于CD唱機具有一定的優勢——不過CD唱機也可以完全設計為遇到錯誤重新讀取。
光碟機讀出的無損PCM編碼數據通過各種總線傳輸至音效卡,再通過音效卡DAC最終輸出模擬訊號,這方面通常的CD唱機或者配備的額外的DAC就要比音效卡具有更多的優勢——當然音效卡中也有DAC效果很好的產品存在。
CD光碟機模擬方式播放CD則通常比CD播放器糟糕得多,數字播放方式則同樣會受到音效卡DAC的Jitter困擾,并且這時光碟機讀取錯誤通常不會反復讀取錯誤段(基本都如此設計)。

總體而言,精確讀取CD-Audio方面CD光碟機具有一定的優勢,而在回訪方面,CD唱機會做得更好。

CD-Audio復制

我們暫不考慮版權問題,只考慮技術。
對于個人復制而言,通常是指將音頻抓軌的WAV檔案燒錄到CD-R盤片中,如前面所述精確的讀取是有可能實現的,同樣的逆過程按照原理也可以/可能實現,即音樂內容一模一樣的復制碟片是可以的,不過復制的碟片同時受到燒錄機和燒錄碟片的Beta、Jitter影響,因此通常難以做到100%復制,不同的的燒錄機、燒錄碟片表現也不相同,這也是玩家不停追尋高檔燒錄機和燒錄碟片的原因。
關于音頻抓軌和燒錄還有一個腳注:Offset(偏移),這是因為不同的光碟機/燒錄機起始的讀取/燒錄時間有差異造成的,不過除了Offset不同之外,其它數據都一樣,因此它們不影響音質。同一個光碟機/唱機流行的音頻抓軌軟體Exact Audio Copy里面具有專門的Offset相關選項。
CD唱片的復制制造則不同,通過一個鋼制的母片(第二母片,第一母片是一個很軟的材料制作的,不適合復制),使用類似鉛字印刷的方式制造出大量幾乎是100%一模一樣的CD碟片——就是我們買到的CD唱片。

請評分
1
2
3
4
5
6
7
8
9
10
183.034.103.***
183.034.103.***
發表于2019.07.25 16:19:12
29
221.204.169.***
221.204.169.***
發表于2015.09.12 10:29:23
28
肯定可以讀取的
發表于2015.02.24 16:13:38
27
027.189.***.***
027.189.***.***
26
027.189.***.***
027.189.***.***
25
116.228.***.***
116.228.***.***
按照文中所述,jitter只对cd唱機有影响,数據是不变的,所以一张光盘抓出来,再刻录到一张盘,会产生offset,但如果不用cd唱機,用cd光驱再抓出来,再用外置独立时钟dac解码应该依然不会丢失音质,对不对呢?
發表于2012.08.23 12:55:12
23
106.003.082.***
106.003.082.***
發表于2012.07.12 00:01:26
22
113.105.***.***
113.105.***.***
我一直想知道的是Clone CD可以“1:1”復制CD嗎?
發表于2011.07.01 15:18:52
21
116.233.***.***
116.233.***.***
他顯然不會給出99.98963742%這樣的數據
發表于2011.02.08 00:16:15
19
058.248.***.***
058.248.***.***
好哦
發表于2010.07.28 17:01:24
18
03
發表于2010.05.04 11:17:08
17
060.016.***.***
060.016.***.***
Offset(偏移)影響音質。
兩個不同Offset(偏移)的光碟機抓出的兩個wav在wav編輯軟體中的wav波形稍有不同。
發表于2010.02.22 08:55:04
16
058.062.***.***
058.062.***.***
發表于2009.05.24 15:23:42
15
220.179.***.***
220.179.***.***
14
發表于2006.09.15 08:17:33
11
提示
本貼不可匿名回復,回復等級為:1 ,您現在正處在潛水狀態
回復
驗證碼
5469 為防止廣告機貼垃圾,不得已而為之
表情
正文
京ICP備11010137號 京ICP證110276號 京公網安備110114000469號