1. ECC中的P&Q 並非 P-channel 與 Q-channel, 他們稱之為 P parity 與 Q parity, 或稱為 P field 與 Q field
您可以從 cdrdao 的 edc/ecc 原始碼的一段程式註解中看到
(以下是那一段註解) PS. CDRDAO 是一套開放原始碼的燒錄軟體
語法:
Mode 1:
<- sync -><- header, user data, edc, intermediate -><- p -><- q ->
0 12 2076 2248 2352
<---------------------- 2352 ------------------------------------>
<- fed into Reed-Solomon encoder (2064) ->
<- fed into Reed-Solomon decoder (2340) ->
Mode 2 Form 1:
<- sync -><- header, subheader, user data, edc -><- p -><- q ->
0 12 2076 2248 2352
<---------------------- 2352 ------------------------------------>
<- fed into Reed-Solomon encoder (2064) ->
<- fed into Reed-Solomon decoder (2340) ->
Reed-Solomon Product Code for data sectors
The 2340 bytes are structured in 16-bit-words.
2340 bytes of the 2352 bytes (B) are accessed in 16-bit words (S).
S[n] = B[2n + 1 + 12] << 8 (MSB) + B[2n + 12] (LSB)
Reed-Solomon operates on bytes. Reed-Solomon is applied to the MSByte
of a word first, and then to the LSByte.
Polynomial:
P(x) = x^8 + x^4 + x^3 + x^2 + 1
primitive element alpha of GF(2^8):
alpha = (00000010) (MSBit - LSBit)
first stage (P-parity)
(26,24) Reed-Solomon code 16-bit-words over GF(2^8)
P1[n] = sum over m (S[(m * 43) + n]
P2[n] = sum over m (S[(m * 43) + n]
second stage (Q-parity)
(45,43) Reed-Solomon code 16-bit-words over GF(2^8)
Q1[n] = sum over m (S[((m * 44) + 43*n) mod 1118]
Q2[n] = sum over m (S[((m * 44) + 43*n) mod 1118]
如果要看清楚一點的圖形可以看這一個
(從Fantom CD討論區給借用來的 原始網址: http://newsboard.copystar.com.tw/wor...12&i=253&t=238)
2. 這個應該只是他的猜測, 我也沒有去測試這一段, 因此不太清楚, 但是我相信 2352/sector 的資料毋庸置疑必須是正確的
3. 通常 Sub-Channel 之中以 Q-channel 應該最為重要(整本MMC3提到的大部分都是q-channel), 而Diablo2也只在這個地方作手腳, 但是有一些比較機車的碟片像是 CD+G , Audio+ 都把資料給放到 P-Q channel之後的 72byte 之中, 他們的用意應該是把碟片可寫入區能壓榨的都壓榨出來, 但是誠如我先前說得, 很多機器沒辦法完全讀出 R-W channel, 因此這種東西也流行不起來,僅能夠作為貴族產品.
書籤