Patent Publication Number: US-8122315-B2

Title: LDPC decoding apparatus and method using type-classified index

Description:
FIELD OF THE INVENTION 
     The present invention relates to a low-density parity-check (LDPC) decoding apparatus and method using a type-classified index; and, more particularly, to an LDPC decoding apparatus and method using a type-classified index which can efficiently perform LDPC decoding, at a high speed by forming a memory structure for parallel decoding, when the LDPC decoding apparatus using a structuralized parity check matrix, e.g., a parity check matrix adopted in a digital video broadcasting-satellite 2 (DVB-S2) standard, is realized, and performing memory control and management through the type-classified index such as a Read Only Memory (ROM) index, an address index and a permutation index. 
     DESCRIPTION OF RELATED ART 
     A communication/broadcasting system adopts a channel encoding/decoding method to secure data transmitted through a noise channel as a reliable data. An object of designing of the channel encoding/decoding method is achieving performance close to Shannon limit. A low-density parity-check (LDPC) code is one of codes known as a code which is the most close to the Shannon limit among channel code algorithms. The LDPC is not generally used due to difficulty in realization. It is because an LDPC coding technology is complicated. 
     A parity creation matrix is required to perform LDPC coding on information data. The parity creation matrix is differently formed according to a length of information data to be coded and a length of parity to be added. The parity creation matrix to be used in coding is very important to satisfy desired performance after decoding. 
     The LDPC code means a low-density parity check code as shown in a term of the LDPC code. The parity creation matrix requires a sparse matrix, which is important. However, since the number of ‘1’ element increases in the sparse matrix according to the number of the parity bits added to coded data, memory management for storing the created matrix is also very important. 
     A formation of the parity creation matrix affects on improvement of a speed and performance in a decoding procedure as well as an encoding procedure. Also, Check Node Update (CNU) and Bit Node Update (BNU) procedures are determined by the formation of the parity creation matrix in the decoding procedure. Accordingly, an efficient memory managing and controlling method is necessarily required. 
     Meanwhile, most conventional LDPC decoders are manufactured for mobile communication. A short frame is processed in a mobile communication standard. Accordingly, although a node information update process including a bit node update process and a check node update process is performed in series, it is possible to provide to a speed suggested in the mobile communication standard. Also, processing the short frame does not cause a problem in a parallel process method. However, 64800 bits should be processed in a decoding procedure of the DVB-S2 standard. Accordingly, since adopting a serial process method as in the mobile communication decreases the update process speed, an efficient parallel process method is essentially required. 
     SUMMARY OF THE INVENTION 
     It is, therefore, an object of the present invention to provide a low-density parity-check (LDPC) decoding apparatus and method using a type-classified index which can efficiently perform LDPC decoding at a high speed by forming a memory structure for parallel decoding when the LDPC decoding apparatus using a structuralized parity check matrix, e.g., a parity check matrix adopted in a digital video broadcasting-satellite 2 (DVB-S2) standard, and performing memory control/management through the type-classified index such as a Read Only Memory (ROM) index, an address index and a permutation index. 
     Other objects and advantages of the invention will be understood by the following description and become more apparent from the embodiments in accordance with the present invention, which are set forth hereinafter. It will be also apparent that objects and advantages of the invention can be embodied easily by the means defined in claims and combinations thereof. 
     In accordance with an aspect of the present invention, there is provided a LDPC decoding apparatus using a structuralized parity check matrix, including: a memory allocating unit for multiplying reception data by an estimated channel value and storing a multiplied value in a memory including a plurality of memory block; an index storing unit for storing a ROM index, an address index and a permutation index for the stored data; a check node updating unit for bringing the stored data in parallel based on the ROM index, the address index, and the permutation index and updating a check node; and a bit node updating unit for updating a bit node based on the data stored in the memory and check node information updated in the check node updating unit. 
     In accordance with another aspect of the present invention, there is provided a LDPC decoding method using a structuralized parity check matrix, including the steps of: a) multiplying reception data by an estimated channel value and storing a multiplied value in a memory including a plurality of memory blocks; b) bring the stored data in parallel based on a ROM index, an address index, and a permutation index for the data and updating a check node; and c) updating a bit node based on the stored data and the updated check node information. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other objects and features of the present invention will become apparent from the following description of the preferred embodiments given in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a block diagram showing a low-density parity-check (LDPC) decoding apparatus using a type-classified index in accordance with an embodiment of the present invention; 
         FIG. 2  shows a configuration of a log-likelihood ratio (LLR) memory of  FIG. 1 ; 
         FIG. 3  illustrates a configuration of a memory block for a parity bit in the LLR memory of  FIG. 2 ; 
         FIG. 4  shows an entire configuration of the LLR memory of  FIG. 2 ; 
         FIG. 5  illustrates a formation of the memory block for information bits in the LLR memory of  FIG. 2  in accordance with an embodiment of the present invention; 
         FIG. 6  shows index relationship in an LDPC decoding procedure in accordance with an embodiment of the present invention; 
         FIG. 7  shows a relationship between Rom_Index and Address_Index used in the LDPC decoding procedure in accordance with the embodiment of the present invention; and 
         FIGS. 8A to 8C  show an index used in the LDPC decoding procedure in accordance with an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Other objects and advantages of the present invention will become apparent from the following description of the embodiments with reference to the accompanying drawings. Therefore, those skilled in the field of this art of the present invention can embody the technological concept and scope of the invention easily. In addition, if it is considered that detailed description on a related art may obscure the points of the present invention, the detailed description will not be provided herein. The preferred embodiments of the present invention will be described in detail hereinafter with reference to the attached drawings. 
       FIG. 1  is a block diagram showing a low-density parity-check (LDPC) decoding apparatus using a type-classified index in accordance with an embodiment of the present invention.  FIG. 1  is based on LDPC decoding using a structuralized parity check matrix. 
     The LDPC decoding apparatus of the present invention includes an initializing/buffering unit  100 , which is a memory allocating unit, a log-likelihood ratio (LLR) memory  110 , a check node updating (CNU) unit  120 , a bit node updating (BNU) unit  130 , a decoding bit creating unit  140 , an error symptom check unit  150 , and an index storing unit  160 . Each constitutional element will be described hereinafter. 
     The initializing/buffering unit  100  multiplies the received data by an estimated channel value and performs initial allocation on the estimated channel value, i.e., stores the estimated channel value in the LLR memory  110 . 
     The LLR memory  110  is formed of a plurality of memory blocks. The memory blocks are arranged as a structure of a column address register, which is suggested in a digital video broadcasting-satellite (DVB-S2) standard. The values are stored in an order. One memory block includes 360 data symbols. 
     The check node updating unit  120  updates a check node based on information stored in the LLR memory  110  and index stored in the index storing unit  160  such as Read-Only Memory (ROM)/address/permutation index. That is, the check node updating unit  120  brings the data stored in the LLR memory  110  in parallel based on the ROM index, the address index, and the permutation index and updates the check node. 
     The bit node updating unit  130  updates a bit node based on the information stored in the LLR memory  110  and check node information updated in the check node updating unit  120 . 
     The decoding bit creating unit  140  creates decoded data by output of the bit node updating unit  130 . The error symptom check unit  150  determines whether check node update (CNU) and bit node update (BNU) are repeated by performing error check on the decoded data outputted in the decoding bit creating unit  140 . 
     The index storing unit  160  stores Rom_Index, Address_Index, and Permut_Index of the data stored in the LLR memory  110  and stores each index in different registers  161 ,  162  and  163 . The Rom_Index shows a column of the memory block in  FIG. 6  showing the configuration of the memory. The Address_Index shows a row of the memory block among a specific ROM memory. The Permut_Index shows a location of the symbol in a corresponding block when a memory block is divided into 360 memory blocks. 
     The Rom_Index divides a memory to update the bit node in parallel. The Address_Index and the Permut_Index update the check node in parallel. The index is ruled as above to perform the update process in parallel. 
     The LDPC decoding method performed in the LDPC decoding apparatus of the present invention will be described. To realize the LDPC decoding method, it is required to form a memory structure for parallel decoding and use the type-classified index such as the Rom_Index, the Address_Index, and the Permut_Index to efficiently control/manage the memory. 
     The present invention multiplies a reception signal by an estimated channel value and allocates a multiplied result in the LLR memory  110 . Also, the present invention updates the check node based on the information allocated in the LLR memory. 
     The present invention updates the bit node based on the information provided in a memory allocating procedure and a check node updating procedure. Also, the present invention controls repeated operations or stop of the check node updating procedure and the bit node updating procedure. The present invention outputs a decoding determination bit based on the information data acquired from the control procedure. 
       FIG. 2  shows a configuration of the LLR memory of  FIG. 1 . 
     The LLR memory  110  shows a memory structure of a information bit part at a code rate 1/2. A memory block  201  or a memory block  202  on a drawing is formed of 6-bits 360 symbols. An index displayed on a right lower part of  FIG. 2  is a variable to be referred to when the node information is updated. That is, M[0][0][360]  211  is an index of the memory block  201  and M[0][1][360]  212  is an index of the memory block  202 . Memory blocks in the same column are stored in the same memory as the memory  200 . 
       FIG. 3  illustrates a configuration of the memory block for a parity bit in the LLR memory of  FIG. 2 . 
     A memory for the parity bit has a structure for allocating information data while increasing the number of memories as many as the number of ROMs to efficiently calculate check node update. 
     At a code rate 1/2, 90 symbols increase every parity check matrix address and 360 data symbols are stored in a memory block. 
     When data are divided into data blocks every 360 symbols, a decoding procedure is performed as shown in  FIG. 5 . 
     A part parallel should have 360 check node update (CNU) processors and bit node update (BNU) processors and simultaneously calculate as many as the number of row weights. 
     When the check node update is completely calculated on a memory block having 360 data symbols, the check node update is calculated on a next memory block according to the same method. That is, the check node update is sequentially calculated on 90 memory blocks in serial. When the check node update is calculated, each memory block index and an index for a start location are required in each memory block. When the bit node update is calculated, only the memory block index is required since the start location is a start point of each memory block. 
       FIG. 4  shows an entire configuration of the LLR memory of  FIG. 2 . 
     An entire structure of the LLR memory  110  of the present invention is arrange based on the same structure as the column address weight suggested in the DVB-S2 standard. Values are also sequentially stored. 
       FIG. 5  illustrates a configuration of the memory block for information bits in the LLR memory of  FIG. 2  in accordance with an embodiment of the present invention. 
     As shown in the memory blocks  201  and  202  of  FIG. 2 , a memory block of the LLR memory  110  is formed of 360 data symbols and total 90 memory blocks are stored in each memory. A memory  200  of  FIG. 2  includes 90 memory blocks. 
       FIG. 6  shows index relationship in an LDPC decoding procedure in accordance with an embodiment of the present invention. 
     The initializing/buffering unit  100  stores an initial value in the LLR memory  110 . To be more specific, the initializing/buffering unit  100  multiplies an estimated channel value by reception data and stores multiplied values in each memory in parallel for each of 360 symbols. 
     The memory blocks in the same column are stored in the same memory. Total 8 memories are used as the same as the number of column weight. 
     When a memory is formed of 90 memory blocks and each memory block includes 360 symbols, a memory uses total 32,400 data symbols where each symbol is 6 bits. When it is assumed that 144 bits are stored in one address, 1,350 addresses are required. 
     A memory of a chip to be realized in the present invention can store 144 bits×4K data. 
     A check node updating unit  60  can access to 8 memories in parallel by accessing to each memory as many as 144 bits. A bit node updating unit  61  brings and calculates the memories in parallel with reference to an address in each memory. 
       FIG. 7  shows a relationship between the Rom_Index and the Address_Index used in the LDPC decoding procedure in accordance with the embodiment of the present invention. 
     The Address_Index block is divided into 90 blocks and each memory block stores 360 data. 
     A block for 0 th  Address_Index where Address index=0 stores 359 symbols from a 0 th  symbol of the reception data. A second block where Address index=1 stores 360 symbols from a 360 th  symbol. 90 memory blocks store total 32,400 reception data symbols where 90×360=32,400. 
     The initializing/buffering unit  100  can easily store the reception data by which the estimated channel value is multiplied based on the storing method as described above. 
       FIGS. 8A to 8C  show the index used in the LDPC decoding procedure in accordance with an embodiment of the present invention. 
       FIG. 8A  shows the Rom_Index and  FIG. 8B  shows the Address_Index.  FIG. 8C  shows the Permut_Index. 
     When the present invention realizes the LDPC decoding apparatus using a structuralized parity check matrix, e.g., a parity check matrix adopted in the DVB-S2 standard, the present invention forms the memory structure for parallel decoding and uses the type-classified index to control/manage the memory. Accordingly, the present invention can efficiently manage the memory, optimize the memory structure and perform the LDPC decoding at a high speed. 
     As described above, the technology of the present invention can be realized as a program and stored in a computer-readable recording medium, such as CD-ROM, RAM, ROM, floppy disk, hard disk and magneto-optical disk. Since the process can be easily implemented by those skilled in the art of the present invention, further description will not be provided herein. 
     The present application contains subject matter related to Korean patent application Nos. 2005-0116053 and 2006-0115857, filed with the Korean Intellectual Property Office on Dec. 1, 2005, and Nov. 22, 2006, respectively, the entire contents of which are incorporated herein by reference. 
     While the present invention has been described with respect to certain preferred embodiments, it will be apparent to those skilled in the art that various changes and modifications may be made without departing from the scope of the invention as defined in the following claims.