Legend claims in 1981 Bill Gates said, "640K ought to be enough for anybody." Truth is he never said it and more storage is always better.
In this chapter of the series "Data transmission and storage," consultant John Watkinson introduces key design concepts used to both detect binary signals and conserve space in data storage systems.
In the previous article (Data Recording and Transmission: Channel Coding) the concept of channel bits was introduced. Channel bits completely control the recording process. In most formats, a channel bit zero causes nothing to happen, whereas a channel bit one results in a transition on the medium. That transition could be a change in voltage on a cable, a reversal of magnetic direction on a disc or tape, a change from a pit to a land (or vice versa) on an optical disc or some change in electromagnetic radiation in an optical fibre or radio link.
One of the key performance factors in data storage is the linear density; the number of bits per unit track length. At a given relative speed between the medium and the pickup, all media offer a certain amount of bandwidth. The art of channel coding includes finding ways to increase the data rate as much as possible whilst not exceeding the available bandwidth.
Figure 1 shows some channel bit sequences and the record waveform that results. When arun of channel bit ones occurs, the highest frequency, a fundamental of half the channel bit rate, is generated. However, if channel bits alternate between one and zero, the frequency is halved. To be more precise, if adjacent channel bits can never both be ones, a fundamental frequency of one quarter the channel bit rate cannot be exceeded.
Figure 1. At a) the channel bits are unconstrained and if they happen to be all one, as here, the highest frequency is created in the channel. At b) if there must always be at least one zero between ones, the channel frequency is halved. At c) with at least two zeros between ones, the channel frequency is divided by three. Click to enlarge.
Taking this idea further, if there can never be less than two channel bit zeros between ones, the fundamental frequency will be one sixth of the channel bit rate. There can, of course, be more channel bit ones than the minimum.
It should be clear from Figure 1 that the channel bit rate could easily be beyond the bandwidth of the channel. It should also be clear that in practice it is only achieved if certain rules are applied. The number of zeros between ones must always be a compromise; the more zeros there must be, the lower the fundamental frequency. On the other hand large runs of zeros between ones reduce the clock content and make it harder for the phase locked loop in the data separator to find the eyes in the waveform.
Typical eye pattern waveform: Image courtesy PHABRIX. Click to enlarge.
The time between transitions is known as the run length. When coding rules are applied, the code can be described as run-length limited. The approach is also known as group coding.
It follows immediately that once we start imposing rules on the channel bit patterns, then not all combinations of channel bits can be recorded. Yet we obviously must be able to record all combinations of the user data. The answer is simple: there must be more channel bits than data bits.
Figure 2 shows a simple example, which is the group code used by IBM in their 6250 bit-per-inch tape transports. A group of four data bits requires sixteen different symbols to record them all. Ifwe represent that group of four data bits by five channel bits, we have 32 combinations of channel bits and only half of them are necessary. The other half can be discarded. If we are smart we keep the combinations that allow favourable coding rules to apply. The coding rules are that adjacent channel ones are allowed, but there are never more than two sequential channel zeros. That rule is intended to maintain the clock content.
Figure 2. In the IBM 4/5 code, adjacent ones are allowed, but there can never be more than two zeros in a row. This keeps up clock content. Click to enlarge.
Group coding or run length limited coding is a matter of finding an intelligent compromise. Increasing the number of bits to be recorded makes life harder, whereas being able to apply coding rules to those bits gives advantages, such as a higher density, better jitter resistance, freedom from DC content and so on. It is simply a question of losing less on the swings than is gained on the roundabouts.
There are some other aspects of group coding that are interesting. For example, as there are many more combinations of channel bits than data bits, the opportunity arises to record channel bit combinations that do not represent a group of data bits. Such a symbol could be used, for example, for synchronizing, which is how the beginning of, or position in, a data block is recognized. It also follows that if on replay the decoder finds a channel bit pattern that is not allowed by the coding rules, there must have been an error, so group coding has a degree of error detection ability.
One aspect of group coding that may need attention is the problem of merging. This is where the recorded waveform at the junction of two groups violates the coding rules, even though the groups themselves do not. One approach to merging is where a group code has more than one channel symbol to represent a particular data bit combination. If one of the channel symbols suffers a merging violation, an alternative can be used. Substitute channel bit combinations can also be selected to control DC content.
The code developed by Kees Immink for the Compact Disc is a good example of a high performance group code. The code is known as EFM, or eight-to-fourteen modulation. The name is correct in as much as eight data bits are described by a certain combination of fourteen channel bits. Figure 3 shows two of the coding rules. There must never be fewer than two channel zeros between transitions. This limits the bandwidth needed. There must also never be more than ten zeros between transitions in order to maintain the clock content.
Figure 3. The coding rules of EFM are shown here. The highest channel frequency results when there is a minimum of two channel zeros between ones, so the minimum run length is three times the channel bit period time Td. The lowest frequency occurs where a maximum of ten zeros are allowed between ones so the maximum run length is 11T. The coding rules must still be maintained at boundaries between symbols. Click to enlarge.
Fourteen channel bits have 16K combinations, whereas eight data bits have 256 combinations. In EFM, 267 different fourteen-bit groups satisfy the coding rules. This is a good number because it is just above 256. Had there been many more legal codes, the solution would be to make the coding rules more stringent or to reduce the number of channel bits in the group. Designing a group code is an iterative procedure. In practice 258 symbols are legal, because the extra two are used to synchronise the CD subcode.
Mathematically speaking, it does not matter which valid fourteen channel bit pattern represents which eight bit data pattern. In practice it does matter, because some relationships between data and channel bits simplify the logic in the player. The EFM coding table was designed on that basis.
The individual EFM symbols meet the coding rules, but certain combinations of symbols violate the run length limits. The solution in EFM is to have three channel bits, known as merging bits, between the fourteen bit symbols. These merging bits are used to prevent run length violations and have an additional function of controlling DC content, which is important in optical discs to prevent interference with the focus and tracking systems.
Figure 4a) shows how the digital sum value (DSV) of the group is calculated. In Figure 4b), two successive groups both have a negative DSV, which would compound unless action is taken. The insertion of a transition in the packing bits inverts the second symbol and the DSV reduces instead of increasing. The transition in the packing bits must not violate the coding rules. Sometimes the transition could be in more than one place and still be legal. In that case the location that minimises DC content would be chosen. The DC content control is only a matter for the encoder. The decoder simply ignores the merging bits.
Figure 4. At a) the channel waveform is effectively integrated to obtain the DC component or DSV. A channel bit one in the merging bits will invert the subsequent waveform, so that DC components can cancel rather than adding. The position of the extra transition can fine-tune the DC offset. Click to enlarge.
EFM effectively requires 17 channel bits to record 8 data bits, so it loses out on the swings by a factor of 8/17 in that conversion. However the coding rule of at least two channel zeros between ones divides the bandwidth neededby three, so the performance increases on the roundabouts by 3 x 8/17, which is an overall gain of 41 percent over a conventional code.
Many years later, with the advent of DVD, the basic EFM code was upgraded to EFM Plus. The run length limits, minimum two zeros and maximum ten zeros between channel ones remained the same, but instead of coding from eight to fourteen (plus three) channel bits, the coding eliminated the merging bits and went from eight data bits to sixteen channel bits. The larger number of codes that met the run length limits meant that substitution could be used to prevent merging violations and to control DC content. The additional complexity could be tolerated due to Moore's Law.
The change from 17 channel bits to 16 channel bits gave EFM Plus a density increase of 6.25 percent over EFM. Whilst the improvement was worth having, the fact that it is so small would suggest that the original EFM was an excellent code.
Group codes were common in audiovisual formats. The D-3 and D-5 DVTR formats also used an 8/14 code, but without merging bits. Merging and DC control were achieved by substitution. To obtain an adequate number of codes, the lower run length limit had to be relaxed to two channel bit periods instead of the three of CD.
The DAT tape used an 8/10 code. As DAT uses azimuth recording, which will be described in a future piece, the goal was not just to be DC-free, but also to reduce the low frequency content of the recorded spectrum.
The previous five chapters in this series on data recording and transmission can be found at these links:
- Data Recording and Transmission : Introduction
- Data Recording and Transmission: Why Use Binary?
- Data Recording and Transmission: Digital Media
- Data Recording and Transmission: Pushing Storage Density
- Data Recording and Transmission: Channel Coding
Other John Watkinson articles you may find interesting are shown below. A complete list of his tutorials is available on The Broadcast Bridge website home page. Search for “John Watkinson”.
John Watkinson, Consultant, publisher, London (UK)