Patent ID: 8196012

Claim:
A method for encoding data, the method comprising: creating m parity bits from k data bits based on a parity-check matrix (H), the parity-check matrix (H) including a data portion (H 1 ) and a parity portion (H 2 ), the parity portion (H 2 ) includes sub-block matrices, each sub-block matrix being any one from the group consisting of: zero matrix, identity matrix and permutation matrix; and forming a codeword containing the k data bits and the created m parity bits; wherein an upper diagonal is defined in the parity portion starting from the first sub-block matrix in the second column extending to the second last sub-block matrix in the last column, and each sub-block matrix on the upper diagonal is an identity matrix or a permutation matrix, and the sub-block matrices above the upper diagonal are zero matrices; each column from the second column to the third last column of the parity portion contains one or more identity matrices or permutation matrices below the upper diagonal, and the remaining sub-block matrices in the same column below the upper diagonal are zero matrices; the last three sub-block matrices (P 1 , P 2 , P 3 ) in the first column of the parity portion are identity matrices or permutation matrices and at least two of the last three matrices are the same, and the remaining sub-block matrices in the first column of the parity portion are zero matrices; in the second last column of the parity portion, the third last sub-block matrix (P 4 ) is equal to the second last sub-block matrix (P 5 ) and the last sub-block matrix (P 6 ) is a zero matrix, or the third last sub-block matrix (P 4 ) is equal to the last sub-block matrix (P 6 ) and the second last sub-block matrix (P 5 ) is a zero matrix; and the last two sub-block matrices (P 7 ) in the last column of the parity portion are the same, and are identity matrices or permutation matrices.