A method for providing low density parity check decoding comprising: accessing memory storing edge information associated with a structured parity check matrix used to generate Low Density Parity (LDPC) coded signal and memory storing a posteriori probability value for each coded bit of the LDPC coded signal, the edge information is stored according to a predetermined scheme that permits concurrent retrieval of a set of the edge information; and outputting, using a plurality of parallel engines, a decoded signal corresponding to the LDPC coded signal based on the stored edge information and the a posteriori probability values, whereby the input messages of each check node are determined from the corresponding edge information and the corresponding a posteriori probability value, and the corresponding edge information are overwritten by the output messages of each check node, which are determined from the corresponding input messages, wherein in each row of the memory storing the edge information, the element in the i-th column carries the edge adjacent to the i-th check node in a group of M check nodes, wherein for the first group of M check nodes, the first d rows of the memory storing the edge information and a certain set of d rows from the memory storing the a posteriori probability values are read, and for each row of the memory storing the a posteriori probability values, the entries are circularly shifted to the left a certain number of times before they are aligned by the contents of the memory storing the edge information, wherein the d input messages v k with k = 1,2,..., d to i-th check node is calculated as the difference of the respective a posteriori probability value b j id + k with k = 1,2,..., d and the corresponding edge information e id + k with k = 1,2,..., d, wherein an output message w p from the i-th check node is computed by w p = x − 1 × s × sign ν p if x ≥ 1, otherwise w p = 0, otherwise w p = 0, wherein x ≡ sec ond min{| v 1 |,| v 2 |,....| v d |} s ≡ sign ( v 1)× sign ( v 2)×...sign ( v d), z ≡ min{| v 1 |,| v 2 |,...| v d |} = | v p |, for some p wherein the output message w k from the i-th check node to d bit nodes is computed by w k = ( z - t)× s × sign ( v k) k = 1,2,..., p -1, p +1,...., d if z ≥ 1, otherwise w k = 0, wherein t ≡ 2 for code rate 1/4 and t ≡ 1 for all the other code rates, wherein the a posteriori probability values are overwritten by the sum ( v k + w k) of the corresponding input message ( v k) and the corresponding output message ( w k), which results in updated a posteriori probability values, and wherein the updated a posteriori probability values are circularly shifted back by the same amount before being written back to the memory storing the a posteriori probability values. accessing memory storing edge information associated with a structured parity check matrix used to generate Low Density Parity (LDPC) coded signal and memory storing a posteriori probability value for each coded bit of the LDPC coded signal, the edge information is stored according to a predetermined scheme that permits concurrent retrieval of a set of the edge information; and outputting, using a plurality of parallel engines, a decoded signal corresponding to the LDPC coded signal based on the stored edge information and the a posteriori probability values, whereby the input messages of each check node are determined from the corresponding edge information and the corresponding a posteriori probability value, and the corresponding edge information are overwritten by the output messages of each check node, which are determined from the corresponding input messages, wherein in each row of the memory storing the edge information, the element in the i-th column carries the edge adjacent to the i-th check node in a group of M check nodes, wherein for the first group of M check nodes, the first d rows of the memory storing the edge information and a certain set of d rows from the memory storing the a posteriori probability values are read, and for each row of the memory storing the a posteriori probability values, the entries are circularly shifted to the left a certain number of times before they are aligned by the contents of the memory storing the edge information, wherein the d input messages v k with k = 1,2,..., d to i-th check node is calculated as the difference of the respective a posteriori probability value b j id + k with k = 1,2,..., d and the corresponding edge information e id + k with k = 1,2,..., d, wherein an output message w p from the i-th check node is computed by w p = x − 1 × s × sign ν p if x ≥ 1, otherwise w p = 0, otherwise w p = 0, wherein x ≡ sec ond min{| v 1 |,| v 2 |,....| v d |} s ≡ sign ( v 1)× sign ( v 2)×...sign ( v d), z ≡ min{| v 1 |,| v 2 |,...| v d |} = | v p |, for some p x ≡ sec ond min{| v 1 |,| v 2 |,....| v d |} s ≡ sign ( v 1)× sign ( v 2)×...sign ( v d), z ≡ min{| v 1 |,| v 2 |,...| v d |} = | v p |, for some p wherein the output message w k from the i-th check node to d bit nodes is computed by w k = ( z - t)× s × sign ( v k) k = 1,2,..., p -1, p +1,...., d if z ≥ 1, otherwise w k = 0, wherein t ≡ 2 for code rate 1/4 and t ≡ 1 for all the other code rates, wherein the a posteriori probability values are overwritten by the sum ( v k + w k) of the corresponding input message ( v k) and the corresponding output message ( w k), which results in updated a posteriori probability values, and wherein the updated a posteriori probability values are circularly shifted back by the same amount before being written back to the memory storing the a posteriori probability values.