Parity-Check Sub-Matrix Inversion for Faster ECC Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Error Correction Coding (ECC) systems face challenges in efficiently encoding data due to the high complexity and storage requirements of inverting large parity-check matrices, particularly in applications like LDPC and GLDPC codes, where the inverse of the parity-check matrix cannot be calculated in real-time and requires significant processing and memory.
Innovation Solution
The proposed method decomposes the parity-check matrix into a data sub-matrix and a parity sub-matrix, using a block triangular matrix decomposition (Hp=A+UCV) to efficiently derive the parity part of the code word, reducing storage space and processing complexity through the Woodbury matrix identity and optimized operations like cyclic shift operations for circulant sub-matrices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the parity-check matrix is inverted directly to calculate parity bits, then the encoding can be completed, but the processing complexity and storage requirements become excessively high
Solution Approach 1:
The parity-check matrix H is segmented into sub-matrices including a data sub-matrix H_s and a parity sub-matrix H_p. The parity sub-matrix is further decomposed using the Woodbury matrix identity into components A, C, U, and V, where A is block triangular and C is smaller than H_p. This segmentation allows the encoding process to work with smaller, more manageable matrix components rather than inverting the entire large parity-check matrix directly.
Solution Approach 2:
The Woodbury matrix identity decomposition is pre-computed and stored, separating the complex inversion operation into pre-processing steps (decomposing H_p into A, C, U, V) and runtime steps (multiplying by these smaller components). This preliminary action moves the computationally intensive part to an offline stage, enabling real-time encoding with reduced complexity.
2Productivity
If the inverse of the parity-check matrix is stored, then parity calculation can be performed quickly, but significant memory space is required
Solution Approach 1:
Instead of storing the complete inverse matrix H_p^-1 which requires O((n-k)^2) memory, the matrix is segmented into smaller components A, C, U, and V through Woodbury decomposition. Only these smaller components need to be stored, significantly reducing memory requirements while enabling efficient parity calculation through sequential multiplication operations.
Solution Approach 2:
The invention creates a simplified representation (copy) of the inverse matrix operation by using the Woodbury identity decomposition. Rather than storing or computing the full inverse, a compressed version using smaller matrix components is created, which reproduces the same functionality with reduced storage requirements.
3Reliability
If large parity-check matrices are used for better error correction, then the error correction capability improves, but the real-time processing becomes infeasible
Solution Approach 1:
The computationally intensive Woodbury matrix identity decomposition is performed in advance during system initialization or code design phase. This preliminary action prepares the matrix components (A, C, U, V) so that during actual encoding operations, only simple multiplications with these pre-decomposed components are needed, enabling real-time processing even for large matrices with strong error correction capabilities.
Solution Approach 2:
The large parity-check matrix is segmented into smaller manageable components through Woodbury decomposition, transforming one large complex inversion operation into multiple smaller, simpler operations that can be executed efficiently in real-time while maintaining the error correction capability provided by the original large matrix structure.
Data Source
AI summary
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.


