Eight-to-fourteen modulation
Eight-to-fourteen modulation (EFM) denotes a line code that any 8- bit - episodes on 14-bit sequences with certain application-caused characteristics maps. The EFM is used for data recording on optical media such as compact discs (CDs), mini discs and laser discs . The EFM process and its extension EFMPlus was developed by Kees A. Schouhamer Immink and is specified in the industry standard ECMA -130.
description
A 14-bit code word from a standardized table is assigned to each byte . Three separating bits are inserted between these 14-bit code words. For CD audio, the table is specified in the Red Book ( EN 60908) and for CD-ROM in the Yellow Book (ECMA-130).
D / k condition
On a CD, the data are stored in a track in the form of pits and intermediate track sections without pits (lands). A short track section about 1/3 micrometer long (one bit cell) corresponds to one bit. A one represents a transition from pit to land or from land to pit, zeros do not represent a transition ( NRZ-M coding ). So that a CD can be reliably produced and played (so that the pits and lands are long enough to be reliably recognized by the laser), there must be at least 2 and a maximum of 10 zeros between the ones (so-called d / k condition). With a code that fulfills the d / k condition, lands and pits only need to be 1/3 of the length that they would have to have if two ones (two bit cells that have a transition and thus start and end, i.e. determine the length, the pit or the land) should follow one another directly. Although more than twice as many bits have to be stored, 50% more information fits on the CD because the length of a bit cell is shortened to 1/3.
If 14 bits are used, there are 267 of the 2 14 = 16384 possible combinations that meet the d / k condition.
Data byte | 14-bit coding | ||
---|---|---|---|
dec. | hex. | binary | |
0 | 00 | 0000.0000 | 0100100.0100000 |
1 | 01 | 0000.0001 | 1000010.0000000 |
2 | 02 | 0000.0010 | 1001000.0100000 |
3 | 03 | 0000.0011 | 1000100.0100000 |
4th | 04 | 0000.0100 | 0100010.0000000 |
5 | 05 | 0000.0101 | 0000010.0010000 |
6th | 06 | 0000.0110 | 0001000.0100000 |
... | |||
254 | FE | 1111.1110 | 0001000.0010010 |
255 | FF | 1111.1111 | 0010000.0010010 |
Separator bits
To ensure that the minimum spacing of 2 and the maximum spacing of 10 zeros (i.e. at least 3 and at most 11 bit cell lengths between two transitions) is maintained in the transition area between two 14-bit code words, 3 so-called separating bits (000, 001, 010 or 100) inserted. Since, in cases in which 10 zeros at the end of a 14-bit code and 10 zeros at the beginning of the following 14-bit code, none of the 3 above separator bit combinations can guarantee the d / k condition, 267 existing code words those with 9 and 10 zeros at the beginning and those with 9 and 10 zeros at the end are eliminated. There are 11 combinations, and so all 2 8 = 256 different values of the 8 bits of the byte to be stored can be represented by one combination each.
A signal encoded in this way would - at random - have sections with more lands and sections with more pits. This change would also generate undesirable low-frequency signal components in the high-frequency signal, which would interfere with the CD player's tracking mechanism. The occurrence of these low-frequency signal components is suppressed during coding by selecting the appropriate separator bit, but this is only possible if the d / k condition allows alternative separator bit selection, which is adequately covered by the four possible separator bit words.
In many cases it is possible to choose one or the other separator bit combination. For example, with 3 zeros at the end of the code word and three or four zeros at the beginning of the next code word, you can choose any of the 4 existing separator bit combinations. One chooses the one that leads to a suppression of the low-frequency signal components. One simply calculates continuously from the first code word how many bit cells are on the lands and subtracts the bit cells that are in the pits. The result (the so-called running digital total value "DSW") is somewhere between +8 and −8 after the first code word. Then, using the various separator bit combinations (d / k condition) permitted in the respective situation, one calculates how the DSW would develop up to the end of the next code word. One selects that separating bit combination from the alternatives where the DSW is as close as possible to 0. So you go on and always choose the separator bit combination that brings the DSW close to 0. As a result, there are never more lands and sometimes more pits, which cause low-frequency signal components, but always an even number of lands and pits and thus a low-frequency signal (also called DC minimized).
EFMplus
EFMplus is the modulation of the data stream used on DVDs. 8-bit data words are recoded directly to 16-bit code words and then recorded. The word Fourteen , for which the F stands in the name, is only of historical origin in EFMplus, because 14-bit code words are irrelevant here.
The polarity of the signal has to change every 3 to 11 cycles (d / k condition, see above). Different coding tables depending on the previous code word ensure that this happens for all combinations of neighboring code words and that the signal spectrum hardly contains any low-frequency components that would interfere with tracking. The process is more complex than EFM, only 16 instead of 17 clock cycles for 8 data bits are required, i.e. H. approx. 7% more original data fit on the disc.
Among the 2 16 = 65536 possible combinations there are 566 16-bit code words that meet the d / k condition. From these, you then eliminate those that have 10 zeros at the beginning or at the end. Then you can generate 4 coding tables, each of which contains 256 different code words that can represent the 256 possible bytes. The first coding table (status 1) contains 256 code words with only 2 to 9 zeros at the beginning, the second and third coding table (status 2 and 3) each have 256 code words with only 0 to 5 zeros at the beginning, and the fourth Coding table (status 4) 256 code words with only 0 or 1 zero at the beginning. In many cases there is overlap; H. the same code word can e.g. B. are in both Status 1 and Status 2 coding table, but then represents the same byte. The same applies to code words in the Status 3 and Status 4 coding tables. The Status 2 and Status 3 coding tables are made so that they do not overlap. All code words in the status 2 coding table each have a zero at bit positions 3 and 15, and all code words in the status 3 coding table have at least a one at bit positions 3 and 15. This feature can be used to determine whether the code words with 0 to 5 zeros at the beginning come from the status 2 or status 3 table.
Depending on the number of zeros that a code word has at the end, the next code word is selected from the corresponding status coding table. If the last code word ends e.g. B. on 6 to 9 zeros the next code word must be selected from the status 4 coding table, in which only code words with 0 or 1 zero are at the beginning. B. to 0 or 1 zero, the next code word must be selected from the status 1 coding table in which only code words with 2 to 9 zeros are at the beginning. This ensures that at least 2 and never more than 10 zeros always follow a one (d / k condition). This ensures a 50% higher data density (see EFM). However, this does not yet ensure the suppression of low frequencies, which are undesirable because they interfere with the tracking mechanism.
The peculiarity of the code lies in the code words that end with 2 to 5 zeros. These code words are in the same status coding table twice and represent two different (8-bit) bytes, so they are not unique. Therefore, if a decoder encounters such a code word in the data stream, it cannot decrypt it without additional information which indicates which byte is represented by this ambiguous code word. This information can be found in the following code word: Since these ambiguous code words end with 2 to 5 zeros, the following code word must have 0 to 5 zeros at the beginning (d / k condition), i.e. either from status 2 or status -3 coding table. If this successor code word comes from the status 2 coding table (i.e. it has a zero in bit positions 3 and 15 in each case) the ambiguous preceding code word represents one byte, otherwise the other.
This double assignment of code words leaves at least 88 code words free in all four coding tables, which are included in four so-called alternative coding tables and thus represent 88 (of the 256 possible) bytes again in all 4 statuses (here two different bytes are not represented by the same code word but the same byte through two different code words). The code words of the alternative coding tables are selected in such a way that they influence the current digital sum value (see EFM) in the opposite way to the influence that the code word of the same status of the main coding table has. When coding, in those cases in which the code word can be selected alternatively from the main or the alternative coding table, the selection is made in such a way that the current digital sum value remains as close as possible to zero.
For the remaining 168 bytes, for which there is only the main table and no alternative table, the digital sum value (and thus the low-frequency signal component) can still be influenced by the fact that it is sometimes permitted to use a code word from the status 1 table instead of a code word Use the code word from the Status 4 table (or vice versa). This is only permissible if the number of zeros at the end of the preceding code word and the total number of zeros at the beginning of the following code word do not violate the d / k condition (at least 2, maximum 10 zeros), which must be checked on a case-by-case basis . In these cases, the code word that keeps the digital sum value as close as possible to zero is used for coding.
Both measures - as with EFM modulation - keep the signal as free of low-frequency signal components as possible.
Example EFMplus
For example, 00000101 and 00000110 in state 1 correspond to the word 0010000000100100. However, 00000101 in state 1 requires 2 as the next state, with 00000110 as 3 as the next state. The word 00000111 is coded as 0100000000010010 in state 2 and as 0010000001001000 in state 3. When decoding, therefore, in one case 0010000000100100 is decoded to 00000101 and in the other case to 00000110.
Individual evidence
- ↑ Standard ECMA-130: Data Interchange on Read-only 120 mm Optical Data Disks (CD-ROM), 2nd edition, June 1996. Retrieved May 28, 2010 .
- ↑ Eight-to-Fourteen Modulation Conversion Table. Retrieved May 28, 2010 .
Web links
- CD standard (physical structure): http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-130.pdf (see Annex D)
- DVD standard (physical structure): http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-267.pdf (see Annex G)