Encoding CSE370 in = CD-ROM

By the Three Musketeers

Susan Hewitt
Alex Rockwell
Sasha Aravkin

Brief Background

CD-ROMS are multilayered disks about 12 cm in diameter, that spin at a constant angular velocity. Information is encoded using "pits" and = "lands" that are sketched in the bottom layer of the CD by a machine at the time of = recording. The laser scans the surface of the CD, and a photoscan device picks up the light = reflected by the reflective layer. The key here is that the light intensity changes every = time the laser goes from a pit to a land, and vice versa. Information can thus be = encoded.

Beyond Binary

At first it seemed as though encoding information would be simple: just = translate the code to binary, and then (maybe) a pit would be a 0, and a land a 1. However, = this is not possible because of the physical features of the device: the light censor picks = the change in the intensity of the light, rather than reading a specific value. Here is = the real rule:

A change from a pit to a land, or a land to a pit, is a one. A string = of pits or lands is a string of 0's.

Silly Physics

The laser beam wavelength is about 780 nm, and the pits are about 600 nm = wide. The device is thus not accurate enough to precisely read a string of 0's, or a = string of 1's. Also, there is a limitation on the length of a given pit, to allow for = syncronization data. Special conventions have been created to solve this problem. There must = be at least two 0's between two 1's, and the length of any pit must not exceed 10 bits.

Eight-to-Fourteen (ETF)

In a system very similar to Gray code discussed in class, 8 bit = characters are converted to 14 bits with the ETF conversion. So, to convert the characters C, S, E, 3, = 7, 0 to ETF, we must first convert them to binary, and then use an algorithm, or just look = them up in a table.

Character ASCII ETF
C 01000011 00000100100001
S 01010011 10000001001001
E 01000101 00000100001001
3 00110011 00100100010000
7 00110111 00100010001001
0 00110000 00000100100000

Putting Everything Together

Now that CSE370 is converted to ETF, the first problem is solved: there = are aways two zeros between two ones. However, there is still the second rule to worry = about: we must not have a string of zeros greater than 10 bits in length. In our particular = case, this does not matter, since nowhere in the ETF string CSE370 will there be 10 zeros. But, the = string C0, for example, would have such a predicament.

To solve this complication, three bits are added for 'padding'. As far = as we know, these can be either 000, or 100, or 001, or 010, and you may use them depending on = the situation. So, for example, if you need to concatenate the strings ...00000 00000... = you can use 010, to prevent 10 0's in a row. So, with this last bit of information, we can = write down the encoding in ETF.

CSE370=0000010010000100010000001001001 0010000010000100100000100100010000 1000010001000100100000000100100000

Now, we can just convert this to pits and lands, using p for pit and e = for land.

pppppeeepppppeeeepppppppeeepppeeeppppppeeeeepppee eeeepppeeeepppppeeeeeppppeeeepppeeeeeeeeepppeeeeee

If we were to draw this out, it would look suspiciously like a timing = curcuit, so we'll spare the reader that terrible agonizing pain. However, for more information, = please refer to any of the following websites:

General = description

Physical/mathematical aspects (pdf)

ETF= conversion talbe