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