Re: [討論] 無意間爬知識+看到
看板Headphone (耳機)作者john0312 (Chen John L)時間16年前 (2009/07/06 22:25)推噓7(7推 0噓 15→)留言22則, 9人參與討論串3/10 (看更多)
> 但是取出來後之WAV與原先於CD上之音軌是否完全一樣<---
> 這才是關鍵
確實, 在早期的光碟機上面, 這是一個問題, 但是在現代的硬體上面(五年以內就算現代吧, 我家還有200MB的SCSI硬碟...)這不是一個問題.
為什麼我這樣說呢, 因為CD的結構上面, CD上面最基本的資料群是Frame, 一個Frame裡面, 有三十三個位元組, 其中有二十四個是紀錄音樂, 另外有八個紀錄除錯碼(Error Correction Code), 這個八個碼, 可以在一個Frame裡面的資料出問題的時候, 運用進階的數學運算, 從這八個除錯碼中, 取得原本正確的資料. 最後一個位元組, 叫做Subchannel data, 是用來儲存歌名或是作者之類的, 這一個位元組不在我們的討論範圍內.
重點: 只要資料毀損的不嚴重, 系統能自動修復錯誤. 就好像沒有錯過一樣.
在過去, 由於運算能力有限, 一般的光碟機, 為了能夠以現時讀取音樂資料, 他不做Error Correction的處理, 而且以前的電腦沒有那麼進步, 例如說連接光碟機用的IDE BUS只有四十條線(現在每根之間加了一跟GND Shield => 80 pins), 會因為電磁干擾而導致音樂資料毀損(IDE也有CRC,不過還是會發生).
這些你所講的軟體(Exact Audio Copy, EAC), 他所做的, 就是當資料被讀出來的時候, 他會用Error Correction Code來確認資料是否正確, 而且, 有的時候, 他會多讀幾遍來確認. 我用電腦到現在, 沒有遇過一片光碟讀兩次內容不一樣的, 有興趣的朋友, 如果使用Linux, 可以嘗試以下指令, 多做幾遍看結果出來一不一樣:
dd if=/dev/cdrom | md5sum
我自己會做幾次, 然後晚一點我會Po結果上來.
> 是否能確實保證直接於光碟機播放CD時所讀取之音軌 類比波形完全相同?
> (單純討論抓音軌部份之jitter 而非音效卡上之類比輸出後因各項變因造成的波形改變)
如果Error Correction Code真的沒有辦法算出原本的資料, EAC或是任何有ECC的軟體會告訴你說有錯誤. 如果他沒說有錯誤, 那你可以確定說, 讀出來的確確實實是無誤的
類比波形跟數位資料的問題, 我下面再說.
> 有jitter因素
一般來說, 當我們討論光碟跟Wave時, 我們指的jitter, 是上面所說的資料因各種原因毀壞, 而不是時間差. 所以說, 只要數位料讀出無誤, 就不會有所謂的jitter.
> 請參閱IEC 908的規範 :-o
It's IEC 60908
> 別忘了 某些lossless格式可以接受部分毀損依然可以播放的(容錯度高) (如flac)
根據FLAC官方的FLAC格式定義(FLAC File Format Specification): http://ppt.cc/SFvJ
FLAC內部有CRC偵錯功能, 也就是說, 如果檔案有問題的話, 程式可以檢測的出來. 也就是說, 事實上, 他不容錯, 只是你可以逼迫他不理那個錯誤, 繼續播放.
> zero1289:我比較好奇的是CD上儲存格式是數位還是類比的!?
> pipi5867:數位 類比的是LP,或是錄音帶
> pipi5867:通常毀損的話 就很明顯會有爆音,斷音等情況了 07/06 20:56
正解
> kuo123:有趣的是,CD雖然儲存的是數位資料,紀錄的概念卻是類比的 07/06 21:32
> commutative:電腦科技本來就有限呀!用數位描述類比本來就無限可能 07/06 21:01
> commutative:取樣44.1K如果真的夠用,就不會有人死守LP了呀! 07/06 21:01
> commutative:在極高頻通常只取兩個點,卻要電腦畫一個漂亮的弦波 07/06 21:06
在資訊理論中, 有個叫做Nyquist-Shannon Sampling Theorem的定理, 他規定:
If a function x(t) contains no frequencies higher than B hertz, it is completely determined by giving its ordinates at a series of points spaced 1/(2B) seconds apart.
中文翻譯:
假設一個函數x(t)沒有超過B Hertz的頻率, 那他可用一系列的點, 其間格1/(2B)秒, 來完整的描述這個函數.
也就是說, 任何不超過B Hertz的訊號, 如果我們用2B Hertz來採樣, 那我們可以用數學來算出他中間的所有數值(有興趣的可以看看Fourier Transform).
在這種情況下面, 只要數位訊號(那一系列的點)準確無誤, 那就可以用數學的分法準確無誤的畫出那訊號.
另外, 對於那些對CD有問題的人, 我想他們應該是不喜歡DAC, 為什麼我這麼說呢, 來一張DAC輸出的訊號在示波器上面的圖吧.
這張不是我自己照的, 是網路上面找到的: http://ppt.cc/kUwa 出處: http://ppt.cc/P9NE
由此可見, DAC會有一格一格的, 這樣不是原本的訊號, 分析之後, 他會有少數高頻訊號(超過人類聽力範圍). 不過, 那照片是作者自己用R-2R Ladder的方法自己做的DAC, 所以會有這種問題. 早期的DAC也會有這種問題, 現在的設備上面, 基本上來說沒有. 我自己也照了一張, 這個信號是由我的主機板內建音效卡輸出(華碩 P5B), 頻率是18kHz. 示波器是一台古董的GW Instek GOS-623B (類比的) 抱歉, 檔案有一點大: http://stashbox.org/561997/P7070001.JPG
基本上來說, 看不到什麼方格, 這是個很標準的正弦波. 順便一題, 輸出這個波的音訊檔, 裡面只有*兩個*點來敘述一個週期. 請見輸出用的檔案: http://stashbox.org/562000/Auda18K.jpg

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.76.65
※ 編輯: john0312 來自: 220.133.76.65 (07/06 22:26)
推
07/06 22:28, , 1F
07/06 22:28, 1F
→
07/06 22:29, , 2F
07/06 22:29, 2F
→
07/06 22:30, , 3F
07/06 22:30, 3F
→
07/06 22:30, , 4F
07/06 22:30, 4F
→
07/06 22:30, , 5F
07/06 22:30, 5F
推
07/06 22:39, , 6F
07/06 22:39, 6F
→
07/06 22:43, , 7F
07/06 22:43, 7F
推
07/06 22:46, , 8F
07/06 22:46, 8F
→
07/06 22:48, , 9F
07/06 22:48, 9F
→
07/06 22:48, , 10F
07/06 22:48, 10F
推
07/06 22:53, , 11F
07/06 22:53, 11F
推
07/06 23:21, , 12F
07/06 23:21, 12F
→
07/06 23:23, , 13F
07/06 23:23, 13F
→
07/06 23:26, , 14F
07/06 23:26, 14F
→
07/06 23:27, , 15F
07/06 23:27, 15F
推
07/06 23:29, , 16F
07/06 23:29, 16F
→
07/06 23:50, , 17F
07/06 23:50, 17F
→
07/06 23:51, , 18F
07/06 23:51, 18F
→
07/06 23:52, , 19F
07/06 23:52, 19F
→
07/06 23:58, , 20F
07/06 23:58, 20F
→
07/07 00:00, , 21F
07/07 00:00, 21F
推
07/08 00:31, , 22F
07/08 00:31, 22F
討論串 (同標題文章)
Headphone 近期熱門文章
PTT數位生活區 即時熱門文章