Data encoding by efficient inversion of a parity-check sub-matrix
AssigneeApple Inc.
InventorsMoti Teitel, Tomer Ish-Shalom, Yonathan Tate
Life of this patent
Estimating the term…
Loading patent…
AssigneeApple Inc.
InventorsMoti Teitel, Tomer Ish-Shalom, Yonathan Tate
Estimating the term…
A method for data encoding includes receiving a data vector to be encoded into a code word in accordance with a code defined by a parity-check matrix H. An intermediate vector s is produced by multiplying the data vector by a data sub-matrix Hs of the parity-check matrix H. A parity part of the code word is derived by applying a sequence of operations to the intermediate vector s based on a decomposition of a parity sub-matrix Hp of the matrix H using matrices A, C, U and V, in which decomposition A is a block triangular matrix that has the same size as Hp, C is matrix that is smaller than Hp, and the matrices U and V are placement matrices that are selected so that A, C, U and V satisfy a matrix equation Hp=A+UCV.
A method for data encoding, comprising:
A data encoder, comprising:
A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a processor of a data encoder, cause the processor to be configured for encoding data with a code which can be defined by a parity-check matrix H formed of a data sub-matrix Hs and a parity-check sub-matrix Hp, by storing, in a memory, the data sub-matrix Hs, and pre-calculated values of functions of matrices A, C, U and V of a decomposition of Hp of the form Hp=A+UCV, where A is a block triangular matrix, C is a matrix that is smaller than Hp, and the matrices U and V are placement matrices, wherein the storage space of the pre-calculated values is smaller than required to store an inverse of Hp, to receive, via an interface of the data encoder, a data vector for transmission or storage to be encoded into a code word to produce an intermediate vector s by multiplying the data vector by the data sub-matrix Hs, to calculate a vector y which fulfils the equation y=A−1s from the produced intermediate vector s and one or more of the pre-calculated values stored in the memory, to calculate a modified vector s′, which fulfils the equation s′=s−UW−1V·y, where W−1=(C−1+VA−1U)−1, from the vector y, the produced intermediate vector s, and one or more of the pre-calculated values stored in the memory, to derive a parity part p of the code word, which fulfils the equation Ap=s′, using the modified vector s′ and pre-calculated values stored in the memory, to generate a code word representing the received data vector, as a function of the received data vector and the derived parity part, and to transmit or store the code word to a device, wherein some code words transmitted or stored by the output interface get corrupted in the transmission or storing, and wherein the corrupted code words are decoded to recover the data vector.
Dependencies are inferred from the claim text.