CD-DA有錯誤修正: CIRC方式 (偷懶直接貼wiki)
---------------------------------------
CD編碼,在有用數據中加入一定的糾錯、同步和控制數據。在數據回放時,可以根據所記錄的糾錯數據判別讀出的聲音數據是否有錯,如在一定範圍內有錯,可加以糾正。CD-DA採用差錯校驗碼CIRC,用來檢測和糾正因CD表面的划傷或灰塵產生的差錯。
在CD-DA中,立體聲有兩個聲道(左右聲道),因此每次採樣有2個16位(bit)的樣本,分別組成2個8位位元組(byte)。6次採樣共24位元組組成一幀(frame),每幀除左右聲道音頻數據(audio data)外,還包括:3位元組同步信號(SYNC),1位元組控制和顯示子碼(subcode/control and display),4位元組Q錯誤校驗碼,以及4位元組P錯誤校驗碼。
-----------------------------------------
一般人會認為沒有error correction是因為如果超過CIRC容許,就送出即時音樂訊號,不會lag。資料光碟則會重複一直CRC下去到失敗。
王逸祥 wrote:
但0x01音訊傳輸,是一段的實時資料流,不會包含任何的Checksum資訊,接受端也不會檢查資訊的正確性,更別說要發還傳送端重傳,所以資料在傳輸期間出錯,DAC也只能吃錯誤的01的訊號,如果錯的只是少數的幾個bit,是不會出現爆音,但就肯定會出現失真了。但要是有Checksum機制的話,每次傳錯就只能把播放中的音樂停下等正確資料重傳了。你能接受聽歌時會不定時隨機暫停0.幾秒這樣嗎?理論上Buffer夠大,就能做到有Checksum的即時傳輸,但可惜的是,現在頂多只有作用是跳過電腦的Clock的非同步傳輸,有回傳校正的USB音訊傳輸還不存在。
假如音訊資料會傳錯,是沒辦法控制傳錯在高位元還是低位元的。
只要錯誤發生在高位元,絕對是爆音,不會是失真。
反過來說,沒聽到爆音,幾乎可以判斷音訊資料沒有傳錯。
一些發燒友說的「有差」跟理論派說的「沒差」其實並不衝突,
理論派的說法完全是建立在數位處理上,
這是現代科技的基礎,沒啥好否定的,
但幾乎沒有一個影音設備只會處理數位信號,
因為人類的感官終究只能接受類比訊號,
差異當然就出現在這些類比線路上,
也就是說,
發燒友們一直說的「有差」跟理論派說的「沒差」根本是不同的部份,
所以講難聽一點就是發燒友們反應過度了而已。
類比訊號本來就不容易精確,容易受到干擾或受到材質本身的影響,
這也是那些高價影音器材能發揮的地方,
但由於無法精確定義,
所以也成了某些黑心廠商上下其手的地方,
一些微小的差異被形容的玄之又玄,
甚至把這些言論加以擴大,
變成連數位訊號也玄之又玄了,
許多發燒友反應過度就是太過於對這些觀念深信不疑,忘了數位跟類比的差別。
dinow chang wrote:
假如音訊資料會傳錯,...(恕刪)
samuelottoho說:
0x08的檔案傳輸,是以封包為單位,每個封包最後16位是CRC資訊,如果CRC錯誤,接收端是會發還傳送端重傳,所以能保證檔案100%正確。同理CD DATA也一樣,每節軌段最後也是CRC訊號,因此可以保證資料100%正確。
但0x01音訊傳輸,是一段的實時資料流,不會包含任何的Checksum資訊,接受端也不會檢查資訊的正確性,更別說要發還傳送端重傳,所以資料在傳輸期間出錯,DAC也只能吃錯誤的01的訊號,如果錯的只是少數的幾個bit,是不會出現爆音,但就肯定會出現失真了。但要是有Checksum機制的話,每次傳錯就只能把播放中的音樂停下等正確資料重傳了。你能接受聽歌時會不定時隨機暫停0.幾秒這樣嗎?理論上Buffer夠大,就能做到有Checksum的即時傳輸,但可惜的是,現在頂多只有作用是跳過電腦的Clock的非同步傳輸,有回傳校正的USB音訊傳輸還不存在。
除非是出現嚴重的干擾把一大串資料都變成00000或是1111111或是跟原本訊號無關的亂序,這樣才會爆音,因為DAC吃下去的根本就不是有規律的音訊資料。
但如果是間或幾個bit的錯誤,把原本PCM資料101010101010 也就是Y軸43690的資訊,錯一個bit,變成111010101010,y軸就會變成60074,DAC不會知道這是錯誤資訊而爆給你聽,而是當成y軸60074資訊繼續進行數類轉換,從而形成失真。前面有說過了,24/192的USB訊號的訊息量是4.7Mbps每秒,如果是實驗室中的理想值:EBR是1:1000000000,那就是平均200秒才會出現一bit的錯誤。但眾所周知,實驗室的理想值永遠不能出現在現實環境,別說其他,你何時真的看過USB 2.0以理論值的每秒60MB的速度去工作?能去到20MB已經很不錯了!加上出現干擾時不會真的只干擾到一個bit,通常是連續干擾到好幾個取樣,雖然以192khz來說,就算干擾到幾十個取樣,也只不過是0.0幾秒的事,從實際聽感上來看,爆音是沒有,但肯定有失真,要是這些失真連續發生呢?就會變成聽出來的失真了。
老實說,以電腦背後的電磁環境,加上電腦端的品質....EBR能不到做USB2.0的1/10^9也很成問題...
貴的USB線除了線材外,屏蔽和接頭下的功夫也很多,這些對資料傳輸的正確性有很大影響。
數位的好處簡單講就是檔案傳輸一樣 傳過去就是一樣的檔案
在電腦中 通常設有緩衝以及檢查 傳輸過程某一段落有錯誤會要求重傳 以維持最後檔案完整性
而在一些音樂播放的硬體 沒有緩衝或檢查
傳輸過程某一段落有錯誤 那段錯誤就是會即時放出 造成失真爆音
-----------------------------
假設一個聲音檔案內容是5組01的聲音 傳輸一組01訊號要1秒
01 01 01 01 01 費時五秒
當第三組出現錯誤變成00
01 01 00 01 01
電腦會要求第三組重傳變成
01 01 00(取消) 01(重傳第三組) 01 01 傳輸了六次費時六秒
傳輸完成後 檔案內容完全一樣 不過因為檢查出第三組錯誤 重傳多花了點時間
音樂播放則是即時 當第三組出現錯誤 就是照樣播放第三組00的聲音出來 造成破音爆音的失真情況
5秒的聲音 第三秒該播放01卻播成00 就叫做失真
5秒的聲音 六秒播放 就叫做失真
-----------------------------
正常的線材應該要完整傳輸
比較爛的線材或是其他因素影響(傳輸長度太長)造成訊號錯誤
又遇上沒有緩衝的播放裝置 就會很真實地呈現數位傳輸的錯誤
而HDMI會有影響是
聲音要緩衝 畫面也要緩衝 兩者還要對時播出
廠商不會在消費機種上加入這種多花錢的功能
爛線傳輸過程會有錯誤 加上沒緩衝的機種
換條傳輸過程錯誤較低的線材
聲音聽起來就會有影響
同理 爛線傳輸過程會有錯誤 加上有緩衝的機種
線材好壞的影響就會非常少
所以用在電腦 電腦上的記憶體就是系統與軟體的緩衝快取
線爛沒差 傳輸錯誤 頂多重傳到正確為止
但因重傳多花費一點時間 整體傳輸檔案的速度(MB/s)會下降
(SATA與USB線材好壞的原因 好的線錯誤少重傳少 時間短 MB/s就高)
用在電視上即時播放 沒有緩衝預載 即時播放錯誤訊號下 HDMI線材好壞就是有差
-----------------------------
備註:緩衝就是當播放第一組聲音時 後面幾組聲音已經預先載好(已檢查除錯)在機器中等待播放
所以就算傳輸過程有錯誤 也能在播放錯誤前除錯為正確的01訊號
除非線材爛到一直錯誤傳送00不斷重傳 讓緩衝用光後還沒除錯完成 就會開始失真爆音
備註二:01的聲音如果不會想像就當成單調的滴答聲(0是滴 1是答) 00就是滴滴
訊號正確就是
滴答 滴答 滴答 滴答 滴答
第三組訊號錯誤就是
滴答 滴答 滴滴 滴答 滴答
彈幕濃!
王逸祥 wrote:
0x08的檔案傳輸,...(恕刪)
手上剛好有 USB2.0 spec,拿出來翻了一下 Endpoint Type 只用兩個 bit 設定
00 Control
01 Isochronous <- 這是傳串流用的
10 Bulk <- 這是傳資料用的
11 Interrupt
你資料中的 0x08 和 0x01 是指哪個欄位 ?
Data Packets 都有 CRC , 並沒有看到 Isochronous 不用 CRC 。
Isochronous 雖然不重傳資料,但是 CRC 還是有的。
至於 USB 的 EBR , 實際用儀器量過嗎 ?
錯的資料送給 DAC 只會失真影響聽感,不會爆音。你有作過實驗操作 DAC ?
我作系統這麼久,聲音資料只要一錯至少都有"波波"聲,嚴重的就爆音。
不用什麼太好的音響和金耳朵,測試人員和客戶都聽得出來。






























































































