八比十四調變
八比十四調製 (Eight-to-Fourteen Modulation, EFM) 是一種用於 CD 和前 Hi-MD MiniDisc 的編碼技巧。EFM 以及 EFMPlus 都是由 Kees A. Schouhamer Immink 所發明的。
技術分類
[編輯]EFM 屬於 DC-free 的遊長受限碼 (Run Length Limited),因為它保證了:
- the spectrum (power density function) of the encoded sequence vanishes at the low-frequency end
- 同一種位元連續出現的最大和最小次數,都在規定的範圍內
在光學記錄系統中,伺服系統 (servo system) 在三種維度上準確地沿循軌道的位置:半徑、焦點和旋轉速度。日常操作的損害,諸如灰塵、指紋、刮傷,不只會影響接收的資料,也會破壞伺服功能 (在一些情況中,必須跳過軌道或甚而卡住)。在凹洞 (pit) 和平面 (land) 連續序列的集合中,有一些特定序列特別容易受到碟片瑕疵的影響,假如可以避免這些序列的發生,就可以增強光碟的可靠性。而 EFM 的用途就在於它能很有效率地解決這個工程問題。
作用方式
[編輯]在 EFM 規則下,要儲存的資料首先被分割成 8 位元的區塊 (位元組),然後利用查找表將各個 8 位元區塊轉譯成相應的 14 位元代號。
14 位元代碼選擇的原則,是讓二進位的 1 之間,總是相隔最小兩個、最多十個的 0。這是因為位元是以不歸零 (NRZ) 或 modulo-2 integration 編碼的,所以坑洞到平面、或平面到坑洞的改變代表二進位 1,而沒有改變代表二進位 0。一個 0011 的序列會被改成 1101 或者倒轉的 0010,依照前一個寫入的凹洞而有所不同。如果兩個 1 之間有兩個 0,那麼寫入的序列會有三個連續的 0 (或 1)。例如,010010 會轉譯成 100011 (或 011100)。000100010010000100 會被轉譯成 111000011100000111 (或它的逆轉)。
因為 EFM 保證了每兩個 1 之間一定至少有兩個 0,這代表每個凹洞和平面之間的長度至少會有三個單位時脈的位元長。這個性質十分有用,因它降低了對回放機制中光學唱頭的要求。最多至連續十個 0 的要求,代表的是最糟情況下的時脈回復機制。
EFM 要求相鄰的 14 位元代碼組之間,必須有三個位元用作結合碼,以確保串連起來的代碼亦不會破壞規定的最大最小遊長。這三個位元的結合碼亦用於形塑編碼後序列的頻譜。因此,在最終的結果中,保存 8 位元的資料必須使用 17 位元的空間。
變種
[編輯]EFMPlus 的編碼器是有四種狀態的決定性有限狀態機,將 8 位元的資料轉譯成 16 位元代碼。如同經典 EFM 一樣,確保連續的 1 之間將有二至十個的 0。不同的是它並無結合碼。
EFMPlus 有效率地降低容量的要求,每一區塊減少 1 通道位元 (channel bit),因此容量增加了 1/16 = 6.25%。EFMPlus 代碼的解碼使用一個 sliding-block 解碼器,兩個一組,也就是說需要兩個連續的代碼區塊才能解出一獨特的序列。