18.08.2013 Views

CHAPTER 13

CHAPTER 13

CHAPTER 13

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DVD Chapter <strong>13</strong><br />

725<br />

Unlike CDs, DVDs do not use subcodes and instead use the ID bytes in each data frame to store the<br />

sector number and information about the sectors.<br />

Handling Errors<br />

DVDs use more powerful error correcting codes than were first devised for CDs. Unlike CDs, which<br />

have different levels of error correction depending on whether audio/video or data is being stored,<br />

DVDs treat all information equally and apply the full error correction to all sectors.<br />

The main error correcting in DVDs takes place in the ECC frame. Parity outer (column) and parity<br />

inner (row) bits are added to detect and correct errors. The scheme is simple and yet very effective.<br />

The information from the data frames is first broken up into 192 rows of 172 bytes each. Then, a<br />

polynomial equation is used to calculate and add 10 PI bytes to each row, making the rows now 182<br />

bytes each. Finally, another polynomial equation is used to calculate 16 PO (Parity Outer) bytes for<br />

each column, resulting in 16 bytes (rows) being added to each column. What started out as 192 rows<br />

of 172 bytes becomes 208 rows of 182 bytes with the PI and PO information added.<br />

The function of the PI and PO bytes can be explained with a simple example using simple parity. In<br />

this example, 2 bytes are stored (01001110 = N, 01001111 = O). To add the error correcting information,<br />

they are organized in rows, as shown in the following:<br />

Data bits<br />

1 2 3 4 5 6 7 8<br />

-------------------------------------<br />

Byte 1 0 1 0 0 1 1 1 0<br />

Byte 2 0 1 0 0 1 1 1 1<br />

-------------------------------------<br />

Then, 1 PI bit is added for each row, using odd parity. This means you count up the 1 bits: In the first<br />

row there are 4, so the parity bit is created as a 1, making the sum an odd number. In the second row,<br />

the parity bit is a 0 because the sum of the 1s was already an odd number. The result is as follows:<br />

Data bits |<br />

1 2 3 4 5 6 7 8 | PI<br />

---------------------------------------|---------<br />

Byte 1 0 1 0 0 1 1 1 0 | 1<br />

Byte 2 0 1 0 0 1 1 1 1 | 0<br />

---------------------------------------|---------<br />

Next, the parity bits for each column are added and calculated the same as before. In other words,<br />

the parity bit will be such that the sum of the 1s in each column is an odd number. The result is as<br />

follows:<br />

Data bits |<br />

1 2 3 4 5 6 7 8 | PI<br />

---------------------------------------|---------<br />

Byte 1 0 1 0 0 1 1 1 0 | 1<br />

Byte 2 0 1 0 0 1 1 1 1 | 0<br />

---------------------------------------|---------<br />

PO 1 1 1 1 1 1 1 0 | 1<br />

Now the code is complete, and the extra bits are stored along with the data. So, instead of just the 2<br />

bytes being stored, 11 addition bits are stored for error correction. When the data is read back, the<br />

error correction bit calculations are repeated and they’re checked to see whether they are the same as

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!