光碟裡頭的東東Part1



贊助商連結


頁 : [1] 2

PIANO
2002-07-05, 01:31 PM
***介紹之前,容小弟先聲明粉重要的一點,那就是以下內容皆為小弟個人的心得,所以有些部份含有小弟自己的理解推敲,並無法保證所言絕對正確!同時亦因為如此,所以希望能有幸接受各位大大與先進的指誤,糾正或點解小弟的錯誤!****

(在此先介紹一般唯讀式的光碟)

光碟片儲存資料的方式,乃是在塑膠基板上刻錄一條帶有大大小小坑洞的溝軌,以螺旋方式繞著碟片中心由內向外延續而出,如以讀取面來看的話,其旋轉方向為逆時針方向。而雷射頭便是把雷射光投射到此溝軌上,因為溝軌本身具有凹凸的坑洞起伏,所以會造成反射光有強弱的差異變化,然後再利用偵測元件(Photo Detector)接收這些反射光,送入訊號解析元件後解成有用的資料。

而溝軌要刻成螺旋線的目的,就是要利用碟片一邊旋轉的同時,讓雷射頭可以依軌道緩緩由內圈讀取到外圈,這也同時暗示了一個特性,那就是雖然同樣是一張12公分的碟片,但如果溝軌的密度比較大,表示可以塞入較長的螺旋線,所以可以創造出容量較大的碟片,像是74分鐘的螺旋線至少6216公尺,但80分鐘就至少需6720公尺以上。當然太大的溝軌密度也會有問題發生,那代表溝軌間的距離必須更小(Track Pitch),也就是雷射頭必須具備更精準的鎖尋軌能力,但這不是每台光碟機都可以達到的!

此外密佈在溝軌上的坑洞,它們的外型好壞也會影響到雷射光的反射效果,除了會影響到鎖尋軌表現之外,還會進一步影響資料訊號的判讀。理論上要讓雷射反光產生明顯的強弱差異,其原理便是利用坑洞深度的大小達成,透過坑與平面具有1/4雷射波長的深度差,可以造成坑反射訊號與平面反射訊號具有180度的相位差,然後去和投入光進行增消干涉,便可呈現極強與極弱的差距,讓photo detector容易偵測出來,也就是抓得到溝軌的位置,以及明顯起伏的資料訊號。

(請注意這是理論上,實際上坑洞的深度不見得以1/4波長為最佳,因為還得考慮其他的因素。)

坑洞深度的造成,其原先便已經刻好在複製模片上(stamper),然後再利用射出成型得到碟片塑膠基板,所以基板上的坑洞是從模片上拷貝出來的。可惜以目前的碟片射出機在講求快速製造的情況下,一般都會造成碟片外圍的坑洞成型較差,進而影響碟片外圈的讀取效果,這一部份是許多光碟製造業一直再持續改進的課題。而以上述的介紹看來,除了射出製程的好壞會影響溝軌之外,假如模片在刻製的過程中控制不佳,其結果也會嚴重影響到溝軌的複製。

坑洞除了深度會影響碟片讀取之外,其坑的長度也是一個重要因子,然而在雷射光讀取的方式裡,其訊號的解讀單位卻不是使用[長度],而是使用[時間],基本單位是231ns,稱為一個T時間,不過當你考慮碟片是用旋轉方式來讀取時,其實坑的長度就等於是訊號的時間長度(因為標準的讀取是採用定速度旋轉CLV,另一種採用定角速度的方式CAV,是為了達到高倍讀取的目的,當然需要再把訊號做同步處理),也就是說一個3T的坑,其坑長度在1.4m/s的速度下,可以反射出一道持續3*231=693ns的訊號,相當於0.0003234mm(如果沒算錯的話)。然而坑的長度也不只一種,當初菲利浦在訂定紅皮書的時候,便已訂定了9種長度規格,稱為3t、4t、5t....11t,並且同時適用平面的長度應用,換句話說不但坑的長有9種,平面的長也有9種,這一點不難理解,因為坑和平面的訊號都有被photo detector接收,所以平面一樣可以用來負載資料訊號。

(這9種長度或說18種也可,其實也並非訂定得很嚴謹,也就是11t不會剛好是3t的11/3倍,而且每個長度也都有一個可容許的誤差範圍)

長度為什麼是從3t開始?小弟也一直找不到正確可信的說明文件,而以小弟個人的推測看來,應該也是考慮到雷射波長的關係,也就是如果再小一點,則無法有效形成增消干涉的結果,這一點以DVD-ROM來說因為波長短一些,所以t單位較小,相對資料也可以儲存較多(dvd-rom可以儲存較多資料當然也不是只靠這樣的單一技術而已),而之所以會大到11t,則是因為在考慮到最小只能達到3t的限制下,無法使用單純的連續8個bit去代表訊號,也就是像00110000這樣當中有連續二個1的情況無法成立,

(喔!忘了先說明:3t長並不是代表000或是111,在雷射訊號的解讀方式上,是每當從坑轉平面,或是平面轉坑時,才代表1,其他時候都是0,也就是3t=100或001),因為那代表訊號在1t時間內由坑轉平面或是由平面轉坑。礙於此限制只好退而求其次,利用盡可能是最少的位元去找出可以完全取代8bit組合的另一組合,(被取代的目標之所以是8bit,乃考慮到電腦內部資料的單位都是byte組合),最後找到的新組合便是14bit,因為在14bit的16384種組合當中,1和1之間至少有二個0存在的剛好有超過256種,符合3t的要求,同時在挑出來的14bit組合裡,其中1和1距離最長的,就是有10個0,所以最大的t當然是11t囉!

而這一份用14bit去取代8bit的轉換表,就是俗稱的EFM轉換表。(以小弟的個人看法,efm表應該是一份業界標準的轉換表,是不能擅自修改的,否則要是各光碟機廠有各自的轉換法的話,那豈不是同一片光碟讀出來都不同了!)

贊助商連結


CK阿強
2002-07-06, 01:47 PM
最初由 PIANO 發表
長度為什麼是從3t開始?小弟也一直找不到正確可信的說明文件,而以小弟個人的推測看來,應該也是考慮到雷射波長的關係,也就是如果再小一點,則無法有效形成增消干涉的結果,這一點以DVD-ROM來說因為波長短一些,所以t單位較小,相對資料也可以儲存較多(dvd-rom可以儲存較多資料當然也不是只靠這樣的單一技術而已),而之所以會大到11t,則是因為在考慮到最小只能達到3t的限制下,無法使用單純的連續8個bit去代表訊號,也就是像00110000這樣當中有連續二個1的情況無法成立,(喔!忘了先說明:3t長並不是代表000或是111,在雷射訊號的解讀方式上,是每當從坑轉平面,或是平面轉坑時,才代表1,其他時候都是0,也就是3t=100或001),因為那代表訊號在1t時間內由坑轉平面或是由平面轉坑。礙於此限制只好退而求其次,利用盡可能是最少的位元去找出可以完全取代8bit組合的另一組合,(被取代的目標之所以是8bit,乃考慮到電腦內部資料的單位都是byte組合),最後找到的新組合便是14bit,因為在14bit的16384種組合當中,1和1之間至少有二個0存在的剛好有超過256種,符合3t的要求,同時在挑出來的14bit組合裡,其中1和1距離最長的,就是有10個0,所以最大的t當然是11t囉!而這一份用14bit去取代8bit的轉換表,就是俗稱的EFM轉換表。(以小弟的個人看法,efm表應該是一份業界標準的轉換表,是不能擅自修改的,否則要是各光碟機廠有各自的轉換法的話,那豈不是同一片光碟讀出來都不同了!)
先感謝PIANO網友將自己寶貴的心得分享與各位網友
我之前曾閱讀過相關書籍 正好涉獵了這部分的知識
有關於3t的部分 跟PIANO網友猜測的差不多
正是因為儀器無法正確的分辨出來 所以從3t開始
而EFM Modulation正是為了配合這樣的設計而出來的
根據數學排列組合的計算
一串14個0或1且0或1不可連續三個的限制下
符合這樣的數據共267個(我沒記錯的話)
取其中256個出來做為公定的pattern
必須依照這樣的規則做轉換
我個人猜想 若是有一種防考使用256組之外的11組放入光碟中
利用特殊的安裝程式先拷貝必要的檔案於硬碟跳過這些不合法的pattern
再檢查這些pattern是否正確 那可能無法備分
因為影像檔作不出來 燒錄機也無法燒出來
當然 這些只是個人猜想 可行性還不確定

PIANO
2002-07-06, 02:25 PM
以小弟的想法是,efm的轉換應該是由光碟機來完成的,也就是應該屬於軔體部份的工作,而強哥提到的方式,勢必得先用程式把軔體的部份給[欺騙]過去,這和軔體更新的情況類似,不是很危險嗎?(以上純粹是以小弟的想法來猜想的,也許根本就不是這樣!)

mk2
2002-07-07, 02:21 PM
EFM 的表格是固定的 256 個 256=2^8, 而是從 2^14(16384)個 裡頭挑出較好的 2^8(256) 個, 因此在某種曾度的資料特殊排列下, 會有 EFM 的陷阱產生.

另外 EFM 不是 8->14 就算了, 還有3個 bit 的 merging bit, 因此做完 EFM 轉換後, 從8個bit會變成一共有 17 個 bit. merging bit 的排列並沒有名言規定正確方法只有大概的做法, 因此這個部分由燒錄器自行編寫, 可能會有不一樣的效果產生, 特殊機是否僅在此不同不敢肯定, 不過根據我自己與 MarTinX 的討論, 應該這裡是個關鍵.

有興趣的使用者可以到此下載 ECMA 130 的 PDF 觀看 http://www.ecma.ch/ecma1/STAND/ECMA-130.HTM
裡頭很清楚寫到 EFM 轉換 table 與 EDC/ECC 的編碼方式, 另外還有 merging bit 的基本規則

PIANO
2002-07-08, 06:03 AM
感謝mk2兄,這真是一份超級有用的參考資料!
merging bit小弟在part2的部份才有提到,不過還是感謝mk2兄的補充!
而關於merging bit的使用,除了part2裡所提的原因之外,其實也如這份pdf檔的說明一樣,merging bit具有降低dsv值的功能(以某個方向來說,應該是為了降低dsv值,所以才順便考慮merging bit的使用,並且定為3t)
就因為3t merging bit的目的是在降低dsv,所以它的使用應該說[只要求是3t空間]即可,換句話說加入的可以是000或是100或是001,並沒有一定的限制,端視當時dsv值以及其他像是頻率要求等狀態而跟著改變。
如果當時的狀況應該加入000,但卻把它用100加入,對於資料的轉換是完全不會有影響的,差別只可能會造成dsv過高(或頻率高於要求),或許mk2兄猜測的[特殊機],應該就是具備這種高dsv值也能讀的能力,這樣推測不知是否合理?

mk2
2002-07-08, 08:54 AM
特殊機的的差異應該是在於寫入的時候, 並非讀取的時候
因此我猜想應該是該特殊的 EFM Trap 加上依照一般方式編的 merging bit
剛好會變成 dsv 過高, 但是特殊機卻不用一般的方式因此可能造成較好讀取
我想這應該是為什麼特殊機燒錄出來的碟片在絕大多數的機器上都可以進行遊戲的主要原因吧?! (因為我想不到有什麼比較合理的解釋了)

takuro
2002-07-08, 09:23 AM
3t與其說是100或001
不如說是1001會不會比較容易讓人了解呢

|..|
1001 3t

|...|
10001 4t

以此類推

PIANO
2002-07-08, 11:29 AM
To mk2兄:
會不會是原遊戲光碟本身具有某一處其dsv偏高,然後在載入遊戲的過程中必須要有這個錯誤產生(對一般光碟機而言),才判定是原版片?而因為一般光碟機在試圖備份的時候,這個錯誤會被燒錄機修正或略過,造成備份片不會有這種錯誤,反而不符合[應該有錯]的要求呢?(而特殊機就可以照單全收地備份下來)
To takuro兄:
感謝您的指點,正如您所言的,其實3t或其他t,應該都得說成1001!因為t其實是一個時間單位,而1001雖有四個數字,但夾在其中的是只有3個[區段時間]。

takuro
2002-07-08, 12:53 PM
最初由 PIANO 發表

To takuro兄:
感謝您的指點,正如您所言的,其實3t或其他t,應該都得說成1001!因為t其實是一個時間單位,而1001雖有四個數字,但夾在其中的是只有3個[區段時間]。

其實我也是外行人啦
大家一起研究求進步:D

mk2
2002-07-08, 01:33 PM
最初由 PIANO 發表
To mk2兄:
會不會是原遊戲光碟本身具有某一處其dsv偏高,然後在載入遊戲的過程中必須要有這個錯誤產生(對一般光碟機而言),才判定是原版片?而因為一般光碟機在試圖備份的時候,這個錯誤會被燒錄機修正或略過,造成備份片不會有這種錯誤,反而不符合[應該有錯]的要求呢?(而特殊機就可以照單全收地備份下來)

這個問題我曾經跟 Martin 老大討論過(以下的結論只是猜測)
這類型的碟片經由一般燒錄器燒錄出來的後, 這些有 EFM trap 的 sectors 很有機會會變成 bad sector, 原因應該是其資料排列的方式會造成merging bit的演算上的一種特殊現象
造成碟片在此處很難讀取, 全世界幾乎所有的燒錄器都會有這個毛病, 偏偏有所謂特殊機在 merging bit 的計算上有所不同, 或許是燒錄器韌體的瑕疵(瞎貓碰上死耗子??)或是製作 EFM trap 的廠商並沒有考慮到其他少數的演算方式, 因此得以成行. 但肯定的, 原版光碟上的 EFM trap 區的 merging bit 應該與正常燒錄器所產生的方式是不同的.

至於 dsv 應該有錯才讀得回來的狀況應該是不可能發生, 因為該製作 EFM trap 的廠商只不過把光碟上的資料用 2048 給讀回來, 理論上與 dsv 無關.