10149.audiosector.ecc
上传用户:weiliju62
上传日期:2007-01-06
资源大小:619k
文件大小:2k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. Cross Interleaved Reed-Solomon Code for audio sectors
  2. 24 bytes (data) are extended by 8 bytes CIRC EDC/ECC information.
  3. 32 bytes are extended by one subchannel byte.
  4. 1 + 12 +  4 + 12 + 4 = 33 bytes. This is a small frame.
  5. S + D1 + Q1 + D2 + P1
  6. (S = subchannel, D1 = first data portion, Q1 = Q parity
  7. D2 = second data portion, P1 = P parity)
  8. 98 small frames yield 3234 bytes (one sector or big frame).
  9. That is 98 subchannel bytes (including 2 sync bytes) plus
  10. 24*98=2352 data bytes plus
  11. (4+4)*98=392+392 Q+P-CIRC bytes
  12. The input of the Reed-Solomon encoder consists of
  13. 12 16-bit-words of data giving 24 bytes.
  14. These bytes go through delay and scrambling stages.
  15. The delay is two bytes (for some bytes).
  16. Four Q parity bytes are generated (Encoder C2).
  17. 28 bytes go through a second delay stage (delays vary from
  18. 0 to 108 bytes).
  19. Four P parity bytes are generated (Encoder C1).
  20. 32 bytes are delayed (0 or 1 bytes).
  21. At this stage the total delay so far is 3 up to 108 bytes.
  22. Q and P parity are inverted.
  23. This gives D1, Q1, D2, P1.
  24. Decoding reverses the process.
  25. Total constant delay of encoding and decoding is 111 bytes.
  26. Reed-Solomon operates on bytes.
  27. Polynomial:
  28. P(x) = x^8 + x^4 + x^3 + x^2 + 1
  29. primitive element alpha of GF(2^8):
  30. alpha = (00000010) (MSBit - LSBit)
  31. first stage (Q-parity)
  32. (28,24) Reed-Solomon code bytes over GF(2^8)
  33. P1[n] = sum over m (S[(m * 24) + n]
  34. P2[n] = sum over m (S[(m * 24) + n]
  35. second stage (P-parity)
  36. (32,28) Reed-Solomon code bytes over GF(2^8)
  37. Q1[n] = sum over m (S[(m * 28) + n]
  38. Q2[n] = sum over m (S[(m * 28) + n]