Difference between revisions of "Private:leung"

From NMSL
Line 3: Line 3:
 
== 24 May 2010 ==
 
== 24 May 2010 ==
 
'''Test cases without padding, but with erasures:''' (Errors are introduced after encoding)
 
'''Test cases without padding, but with erasures:''' (Errors are introduced after encoding)
Introduced 0, 16, 32, 33, 48, 64, 65 errors in an App Data row => Worked as expected.
+
*Introduced 0, 16, 32, 33, 48, 64, 65 errors in an App Data row => Worked as expected.
Introduced 0, 16, 32, 33, 48, 64 errors in a RS Data row => Worked as expected.
+
*Introduced 0, 16, 32, 33, 48, 64 errors in a RS Data row => Worked as expected.
Introduced 0, 32, 33, 64, 65 errors in a row of the MPE-FEC frame (App Data + RS Data) => Worked as Expected
+
*Introduced 0, 32, 33, 64, 65 errors in a row of the MPE-FEC frame (App Data + RS Data) => Worked as Expected
  
 
'''Given erasure data, the total number of errors fixable within any block of data is now 64 regardless of position.'''
 
'''Given erasure data, the total number of errors fixable within any block of data is now 64 regardless of position.'''

Revision as of 11:02, 19 May 2010

Summary of accomplishments by Gordon Leung.

24 May 2010

Test cases without padding, but with erasures: (Errors are introduced after encoding)

  • Introduced 0, 16, 32, 33, 48, 64, 65 errors in an App Data row => Worked as expected.
  • Introduced 0, 16, 32, 33, 48, 64 errors in a RS Data row => Worked as expected.
  • Introduced 0, 32, 33, 64, 65 errors in a row of the MPE-FEC frame (App Data + RS Data) => Worked as Expected

Given erasure data, the total number of errors fixable within any block of data is now 64 regardless of position.

17 May 2010

  • Learning C++
  • Learning Unix
  • Compiled FEC library on Linux. It does not work on Windows. Also, you must disable compiler optimization.
  • Complied C++ code that uses the library to encode and decode random data stored in memory.

The library encodes and decodes an MPE-FEC frame one row at a time.

Test cases without padding: (Errors are introduced after encoding)

  • Introduced 0, 16, 32, 33, 38 continuous errors in each row of the App Data table => Worked as expected.
  • Introduced 16, 32, 33, 38 errors spaced apart from each other in a App Data table row => Worked as expected.
  • Introduced 0, 16, 32, 33, 38 continuous errors in each row of the RS table => Worked as expected.
  • Introduced 16, 32, 33, 38 errors spaced apart from each other in a RS table row => Worked as expected.
  • Introduced 16,17 continuous errors in both the App Data table and RS table => Worked as expected.
  • Introduced 16,17 errors spread apart in both the App Data table and RS table => Worked as expected.

All of these test cases point to the fact that the current number of max errors fixable in a block of data is 32 regardless of where the errors occur in the block. With CRC, it should be possible to correct up to 64 errors. I don't know whether CRC is implemented in the system.

The library handles padding slightly differently than the Standard Specification. The library assumes the padding columns are on the leftmost of the App Data table whereas the Standard assumes the padding columns are on the rightmost of the App Data table. The library's padding parameter seems to work as expected.

Test cases with padding:

  • Introduced 1 padding column with 32 and 33 continuous errors in App Data table => Worked as expected
  • Introduced 32 padding columns with 64 and 65 continuous errors in App Data table => Worked as expected

Basically, the padding columns are ignored and marked as reliable. The max number of correctable errors ignoring padded columns per block still stands at 32.

Next Steps: Test with some text file. Need function to write data into the MPE-FEC frame.