Coding and decoding of data by the use of parity-check codes and/or block codes are techniques frequently used in data transmission systems in order to ensure reliability of data transmission. By coding, data is pre-processed in such a way as to allow for reliable data recovery by decoding. Decoding is the process of reconstructing transmitted data which has been coded and transmitted through unreliable media into codewords. Many different coding/decoding approaches are available depending on system and transmission channel considerations.