*** Welcome to piglix ***

Eight-to-fourteen modulation


Eight-to-fourteen modulation (EFM) is a data encoding technique – formally, a channel code – used by compact discs (CD), laserdiscs (LD) and pre-Hi-MD MiniDiscs. EFMPlus is a related code, used in DVDs and SACDs. EFM and EFMPlus were both invented by Kees A. Schouhamer Immink. European Patent Office President Benoît Battistelli: "Immink's invention of EFM made a decisive contribution to the digital revolution."

EFM belongs to the class of DC-free run length limited (RLL) codes; these have the following two properties:

In optical recording systems, servo mechanisms accurately follow the track in three dimensions: radial, focus, and rotational speed. Everyday handling damage, such as dust, fingerprints, and tiny scratches, not only affects retrieved data, but also disrupts the servo functions. In some cases, the servos may skip tracks or get stuck. Specific sequences of pits and lands are particularly susceptible to disc defects, and disc playability can be improved if such sequences are barred from recording. The use of EFM produces a disc that is highly resilient to handling and solves the engineering challenge in a very efficient manner.

Under EFM rules, the data to be stored is first broken into eight-bit blocks (bytes). Each eight-bit block is translated into a corresponding fourteen-bit codeword using a lookup table.

The 14-bit words are chosen such that binary ones are always separated by a minimum of two and a maximum of ten binary zeroes. This is because bits are encoded with NRZI encoding, or modulo-2 integration, so that a binary one is stored on the disc as a change from a land to a pit or a pit to a land, while a binary zero is indicated by no change. A sequence 0011 would be changed into 1101 or its inverse 0010 depending on the previous pit written. If there are two zeroes between two consecutive ones, then the written sequence will have three consecutive zeros (or ones), for example, 010010 will translate into 100011 (or 011100). The EFM sequence 000100010010000100 will translate into 111000011100000111 (or its inverse).


...
Wikipedia

...