Class ReedSolomonDecoder


  • public final class ReedSolomonDecoder
    extends java.lang.Object

    Implements Reed-Solomon decoding, as the name implies.

    The algorithm will not be explained here, but the following references were helpful in creating this implementation:

    Much credit is due to William Rucklidge since portions of this code are an indirect port of his C++ Reed-Solomon implementation.

    • Constructor Detail

      • ReedSolomonDecoder

        public ReedSolomonDecoder​(GenericGF field)
    • Method Detail

      • decode

        public void decode​(int[] received,
                           int twoS)
                    throws ReedSolomonException

        Decodes given set of received codewords, which include both data and error-correction codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place, in the input.

        Parameters:
        received - data and error-correction codewords
        twoS - number of error-correction codewords available
        Throws:
        ReedSolomonException - if decoding fails for any reason
      • decodeWithECCount

        public int decodeWithECCount​(int[] received,
                                     int twoS)
                              throws ReedSolomonException

        Decodes given set of received codewords, which include both data and error-correction codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place, in the input.

        Parameters:
        received - data and error-correction codewords
        twoS - number of error-correction codewords available
        Returns:
        the number of errors corrected
        Throws:
        ReedSolomonException - if decoding fails for any reason
      • findErrorMagnitudes

        private int[] findErrorMagnitudes​(GenericGFPoly errorEvaluator,
                                          int[] errorLocations)