更新时间:2023-05-29 14:12
EFM编码是一种用于CD和前Hi-MDMiniDisc的编码技巧。
八比十四调变(Eight-to-Fourteen Modulation, EFM) 是一种用于 CD 和前 Hi-MDMiniDisc的编码技巧。
即将1字节的8位编码为14位的光轨道位,并在每14位之间插入3位“合并位” 以确保“1”码间至少有2个“0”码,但最多有10个“0”码。
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 解码器,两个一组,也就是说需要两个连续的代码区块才能解出一独特的序列。