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

SCSI/ASPI

开发平台:

MultiPlatform

  1. Mode 1:
  2. <- sync -><- header, user data, edc, intermediate -><- p -><- q ->
  3. 0         12                                        2076   2248   2352
  4. <---------------------- 2352 ------------------------------------>
  5.           <- fed into Reed-Solomon encoder (2064) ->
  6.           <- fed into Reed-Solomon decoder (2340)               ->
  7. Mode 2 Form 1:
  8. <- sync -><- header, subheader, user data, edc -><- p -><- q ->
  9. 0         12                                     2076   2248   2352
  10. <---------------------- 2352 ------------------------------------>
  11.           <- fed into Reed-Solomon encoder (2064) ->
  12.           <- fed into Reed-Solomon decoder (2340)               ->
  13. Reed-Solomon Product Code for data sectors
  14. The 2340 bytes are structured in 16-bit-words.
  15. 2340 bytes of the 2352 bytes (B) are accessed in 16-bit words (S).
  16. S[n] = B[2n + 1 + 12] << 8 (MSB) + B[2n + 12] (LSB)
  17. Reed-Solomon operates on bytes. Reed-Solomon is applied to the MSByte
  18. of a word first, and then to the LSByte.
  19. Polynomial:
  20. P(x) = x^8 + x^4 + x^3 + x^2 + 1
  21. primitive element alpha of GF(2^8):
  22. alpha = (00000010) (MSBit - LSBit)
  23. first stage (P-parity)
  24. (26,24) Reed-Solomon code 16-bit-words over GF(2^8)
  25. P1[n] = sum over m (S[(m * 43) + n]
  26. P2[n] = sum over m (S[(m * 43) + n]
  27. second stage (Q-parity)
  28. (45,43) Reed-Solomon code 16-bit-words over GF(2^8)
  29. Q1[n] = sum over m (S[((m * 44) + 43*n) mod 1118]
  30. Q2[n] = sum over m (S[((m * 44) + 43*n) mod 1118]