ES2356912T3 - Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción. - Google Patents

Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción. Download PDF

Info

Publication number
ES2356912T3
ES2356912T3 ES04735346T ES04735346T ES2356912T3 ES 2356912 T3 ES2356912 T3 ES 2356912T3 ES 04735346 T ES04735346 T ES 04735346T ES 04735346 T ES04735346 T ES 04735346T ES 2356912 T3 ES2356912 T3 ES 2356912T3
Authority
ES
Spain
Prior art keywords
decoding
check matrix
recording
low density
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES04735346T
Other languages
English (en)
Inventor
Atsushi Kikuchi
Masayuki Hattori
Toshiyuki Miyauchi
Kazuo Watanabe
Makiko Kan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of ES2356912T3 publication Critical patent/ES2356912T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1866Error detection or correction; Testing, e.g. of drop-outs by interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2933Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code
    • H03M13/2936Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code comprising an outer Reed-Solomon code and an inner convolutional code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Método para decodificar un código lineal sobre un anillo R, incluyendo el método: obtener una palabra de recepción; una etapa de procesado de baja densidad para reducir la densidad de elementos cuyo valor es uno de tal manera que el número de elementos que tienen el valor de uno es menor que un número predeterminado, para una primera matriz de comprobación del código lineal, incluyéndose dicha primera matriz de comprobación en la palabra de recepción; y una etapa de decodificación para decodificar la palabra de recepción a través de un algoritmo de suma producto usando una matriz de comprobación nueva cuya densidad se ha reducido a través de la etapa de procesado de baja densidad; en el que la etapa de procesado de baja densidad incluye: fijar una variable n a un valor inicial, funcionando n como criterio para extracción de filas; una etapa de cálculo de combinación lineal para calcular todas las combinaciones lineales de filas de la primera matriz de comprobación; una etapa de generación de matrices de comprobación para extraer un subconjunto de vectores de peso inferior con el fin de formar un espacio complementario de entre un conjunto de vectores obtenido mediante la combinación lineal calculada a través de la etapa de cálculo de combinación lineal y generar la matriz de comprobación nueva incluyendo todos los vectores del subconjunto de vectores, como elementos de fila, comprendiendo dicha extracción extraer, del conjunto de vectores formado mediante combinación lineal, cualquier combinación lineal que tiene un peso menor que o igual a n; actualizar el valor de n sumando 1; y una etapa de determinación para determinar si el rango de la primera matriz de comprobación concuerda o no con el rango de la matriz de comprobación nueva, y, en caso negativo, volver a y repetir la etapa de generación de matrices de comprobación con el valor actualizado de n; y en el que la etapa de obtención, la etapa de procesado de baja densidad y la etapa de decodificación se realizan para cada palabra de recepción.

Description

CAMPO TÉCNICO
La presente invención se refiere a un método de decodificación y a un decodificador, a un programa, a un 5 aparato y a un método de grabación-y-reproducción, y a un aparato y a un método de reproducción, y se refiere, particularmente, a un método de decodificación y a un decodificador, a un programa, a un aparato y a un método de grabación-y-reproducción, y a un aparato y a un método de reproducción que son adecuados para decodificar datos codificados cuya codificación se ha realizado usando un código lineal sobre un anillo R.
10
ANTECEDENTES DE LA TÉCNICA
En los últimos años, mientras se han estado estudiando, con avances considerables, el campo de las comunicaciones, tales como las comunicaciones móviles y las comunicaciones en el espacio profundo, y el campo 15 de la radiodifusión, tal como la radiodifusión por ondas terrestres y la radiodifusión digital por satélite, se ha estudiado activamente, por ejemplo, la teoría de la codificación para aumentar la eficacia de la codificación y decodificación de corrección de errores.
Como límites teóricos del rendimiento de un código se conoce el límite de Shannon presentado por el 20 teorema denominado de codificación de las vías de comunicación de Shannon (C.E. Shannon). La teoría de la codificación se estudia para desarrollar un código que presente un rendimiento que se aproxime al límite de Shannon descrito anteriormente. En los últimos años, se ha desarrollado, como método de codificación que presenta un rendimiento que se aproxima al límite de Shannon, un método al que se hace referencia como la denominada turbocodificación que incluye códigos convolucionales concatenados en paralelo (PCCC), códigos 25 convolucionales concatenados en serie (SCCC), y otros. Además, aparte de los turbocódigos que están siendo desarrollados, se está prestando atención a un método de codificación conocido, es decir, los códigos de comprobación de paridad de baja densidad (a los que se hará referencia en lo sucesivo como códigos LDPC).
El código LDPC fue sugerido por primera vez en, “Low Density Parity Check Codes”, de R. G. Gallager, 30 Cambridge, Massachusetts: M.I.T.Press, 1963 por R. G. Gallager. A continuación, el código LDPC ha recibido atención adicional por parte de D.J.C. MacKay, “Good error correcting codes based on very sparse matrices”, presentado en IEEE Trans. Inf. Theory, IT-45, págs. 399 a 431, 1999, “Analysis of low density codes and improved designs using irregular graphs”, de M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi y D. A. Spielman, en Proceedings of ACM Symposium on Theory of Computing, págs. 249 a 258, 1998, y otros. 35
Según estudios de los últimos años, el rendimiento del código LDPC se aproxima al límite de Shannon con aumentos en la longitud del código. Además, como la distancia mínima del código LDPC es proporcional a la longitud del código, el código LDPC presenta, como características propias, las siguientes ventajas. Es decir, el código LDPC presenta características de una probabilidad alta de errores de bloque y apenas provoca el fenómeno 40 denominado suelo de error que se observa en las características de los turbocódigos de decodificación o similares.
Se describirá detalladamente el código LDPC descrito anteriormente, según la manera expuesta a continuación. El código LDPC es un código lineal y no necesariamente binario. No obstante, en esta memoria descriptiva, el mismo se describirá suponiendo que el código LDPC es binario. 45
La característica principal del código LDPC es que una matriz de comprobación de paridad que define el código LDPC es poco densa. En este caso, la matriz poco densa indica una matriz que incluye muy pocos componentes cuyos valores son “1”. La matriz de comprobación poco densa se designa mediante el carácter de referencia H. La matriz de comprobación poco densa incluye la HLDPC mostrada en la Fig. 1, donde el peso 50 Hamming (el número de “1”) de cada fila es “2” y el de cada columna es, por ejemplo, “4”.
De este modo, al código LDPC definido por una matriz de comprobación H, en donde el peso Hamming de cada una de las filas y columnas es constante, se le hace referencia como código LDPC regular. Por otro lado, a un código LDPC definido por una matriz de comprobación H en donde el peso Hamming de cada una de las filas y 55 columnas no es constante se le hace referencia como código LDPC irregular.
La codificación usando el código LDPC descrito anteriormente se logra mediante una matriz de generación G basada en la matriz de comprobación H y generando una palabra de código mediante la multiplicación de la matriz de generación G por un mensaje de datos binarios. Más específicamente, en primer lugar, un codificador 60 destinado a realizar la codificación por el código LDPC calcula la matriz de generación G, en donde se cumple una ecuación GHT=0, entre la matriz de comprobación H y una matriz transpuesta HT. Cuando la matriz de generación G es una matriz de k x n, el codificador multiplica la matriz de generación G por un mensaje de datos de k bits (vector u) y genera una palabra de código de n bits c (= uG). En la palabra de código generada por el codificador, de un bit de código cuyo valor es “0” se establece una correspondencia con “+1”, y de un bit de código cuyo valor es “1” se 65 establece una correspondencia con “1”. A continuación, la palabra de código se transmite y es recibida en el lado de recepción a través de una vía de comunicación predeterminada.
La decodificación del código LDPC se puede realizar usando un algoritmo propuesto por Gallager, y cuyo nombre fue designado por este último, como decodificación probabilística, es decir, un algoritmo de paso de mensajes por propagación de confianza (belief propagation) sobre una gráfica denominada de Tanner que incluye un modo variable (al que en ocasiones se hace referencia como nodo de mensaje) y un nodo de comprobación. En 5 lo sucesivo, al nodo variable y al nodo de comprobación se les hará referencia simplemente como nodos, según se requiera.
Por ejemplo, la matriz de comprobación de paridad HLDPC mostrada en la Fig. 1 se expresa mediante una gráfica de Tanner mostrada en la Fig. 2. En la gráfica de Tanner mostrada en la Fig. 2, se determina que cada 10 columna de la matriz de comprobación de paridad HLDPC mostrada en la Fig. 1 es un nodo variable y se determina que cada fila es un nodo de comprobación. Además, el nodo variable j-ésimo y el nodo de comprobación i-ésimo están conectados a un elemento cuyo valor es “1” en la fila i-ésima y la columna j-ésima de la matriz de comprobación de paridad HLDPC, como bordes.
15
No obstante, cuando se realiza la decodificación probabilística, el valor de un mensaje transmitido entre los nodos se proporciona en forma de un número real. Posteriormente, existe una necesidad de realizar un seguimiento de la distribución de probabilidad de mensajes que tienen valores consecutivos para una solución analítica, lo cual resulta extremadamente difícil. Por lo tanto, Gallager propuso los algoritmos A y B, como algoritmo para decodificar el código LDPC. 20
Habitualmente, la decodificación del código LDPC se logra realizando los procedimientos mostrados en la Fig. 2. Aquí, en este caso, se determina que un valor de recepción (una secuencia de código recibida) es U0(u0i), se determina que un mensaje transmitido desde el nodo de comprobación es uj, y se determina que un mensaje transmitido desde el nodo variable es vi. Además, en este caso, el mensaje es un valor de número real que indica la 25 probabilidad de que el valor sea “0”, en forma de una denominada razón de verosimilitud logarítmica.
Habitualmente, la decodificación del código LDPC se logra realizando los procedimientos mostrados en la Fig. 3. Aquí, en este caso, se determina que el valor de recepción (la secuencia de código recibida) es U0(u0i), se determina que el mensaje transmitido desde el nodo de comprobación es uj, y se determina que el mensaje 30 transmitido desde el nodo variable es vi, además, en este caso, el mensaje es el valor de un número real que indica la probabilidad de que el valor sea “0”, en forma de la denominada razón de verosimilitud logarítmica.
En primer lugar, para decodificar el código LDPC, se recibe un valor de recepción U0(u0i), un mensaje ui se inicializa a “0”, y una variable k que es un entero que funciona como contador de un procesado de repetición se 35 inicializa a “0”, en la etapa S1, y el procesado avanza hacia la etapa S2, tal como se muestra en la Fig. 3. En la etapa S2, se obtiene el mensaje vi ejecutando el cálculo mostrado por la Ecuación (1) (cálculo de nodo variable) sobre la base del valor de recepción U0(u0i), y se obtiene el mensaje uj ejecutando el cálculo mostrado en la Ecuación (2) (cálculo de nodo de comprobación) sobre la base del mensaje vi.
40
En este caso, la dv y la dc mostradas en las Ecuaciones (1) y (2) son parámetros que indican el número de 45 “1” a lo largo de la dirección vertical (columnas) y la dirección horizontal (filas) de la matriz de comprobación H y que se pueden seleccionar, de forma respectiva, arbitrariamente. Por ejemplo, en el caso de un código (3, 6), se cumplen las ecuaciones dv=3 y dc=6.
Además, en los cálculos mostrados por las Ecuaciones (1) y (2), como parámetro de operación de suma u 50 operación de producto no se usa un mensaje introducido desde un borde para dar salida a mensajes (una línea que conecta el nodo variable al nodo de comprobación). De este modo, se determina que el área de la operación de suma o producto es de 1 a dv – 1, o de 1 a dc – 1. Además, el cálculo mostrado en la Ecuación (2) se realiza en realidad generando una tabla de una función R(v1, v2) mostrada en la Ecuación (3) definida por una salida para dos entradas v1 y v2 de antemano, y usando la tabla consecutivamente (de forma recursiva), tal como se muestra en la 55 Ecuación (4).
Además, en la etapa S2, la variable k se incrementa en “1”, y el procesado avanza hacia la etapa S3. En la etapa S3, se determina si la variable k es mayor o no que un número de decodificación de repetición predeterminado N. Cuando se determina que la variable k no es mayor que N, en la etapa S3, el procesado vuelve 5 a la etapa S2, y seguidamente se repite el mismo procesado.
Además, cuando se determina que la variable k es mayor que N, en la etapa S3, el procesado avanza hacia la etapa S4, de manera que se realiza el cálculo mostrado en la Ecuación (5), con lo cual se obtiene y se da salida al mensaje vi, en forma de un resultado de decodificación obtenido finalmente a la salida. A continuación, 10 finaliza la decodificación del código LDPC.
En este caso, a diferencia del cálculo mostrado en la Ecuación (1), el cálculo mostrado en la Ecuación (5) 15 se realiza usando mensajes introducidos desde todos los bordes conectados al nodo variable.
Cuando la decodificación del código LDPC se realiza usando el código (3, 6), por ejemplo, se transmiten mensajes entre los nodos, tal como se muestra en la Fig. 4. Además, el cálculo mostrado en la Ecuación (1) se realiza en nodos indicados por signos “=” (nodos variables) mostrados en la Fig. 4, y el cálculo mostrado en la 20 Ecuación (2) se realiza en nodos indicados por signos “+” (nodos de comprobación). Particularmente, en el caso de un algoritmo A, los mensajes se dividen en dos y se ejecuta una operación OR exclusiva para dc – 1 mensajes de entrada en los nodos indicados por los signos “+”. Cuando todos los valores de bit de los dv – 1 mensajes de entrada son diferentes entre sí para un valor de recepción R en los nodos indicados por signos “=”, el código se invierte y se da salida al mismo. 25
En los últimos años, aparte de la tecnología descrita anteriormente, se han estudiado métodos para montar la decodificación de los códigos LDPC. En primer lugar, se describirá esquemáticamente la decodificación de los códigos LDPC antes de describir el método de montaje.
30
La Fig. 5 es una matriz ejemplificativa de comprobación de paridad del código LDPC (3, 6) (en el que la relación de codificación es 1/2 y la longitud del código es 12). La matriz de comprobación de paridad del código LDPC se puede escribir a través de una gráfica de Tanner, tal como se muestra en la Fig. 6. En este caso, en la Fig. 6, los nodos de comprobación se indican mediante signos “+” y los nodos variables se indican mediante signos “=”. Los nodos de comprobación y los nodos variables se corresponden con las filas y columnas, respectivamente, 35 de la matriz de comprobación de paridad. Las conexiones entre los nodos de comprobación y los nodos variables son bordes y se corresponden con “1” de la matriz de comprobación de paridad. Es decir, cuando un componente en la fila j-ésima y la columna i-ésima de la matriz de comprobación de paridad es uno, el nodo variable i-ésimo (un nodo indicado mediante el signo “=”) desde la parte superior y el nodo de comprobación j-ésimo (un nodo indicado mediante el signo “+”) desde la parte superior se conectan entre sí por el borde, tal como se muestra en la Fig. 6. El 40 borde indica que un bit de código correspondiente al nodo variable tiene una condición de restricción correspondiente al nodo de comprobación. Además, la Fig. 6 muestra la gráfica de Tanner de la matriz de comprobación de paridad mostrada en la Fig. 5.
Como método de decodificación del código LDPC se puede usar un algoritmo de suma producto (Remitirse 45 a Tadashi Wadayama, “Low density parity check code and sum-product algorithm”, [online], 22 de junio, 2001, Okayama Prefectural University, [buscado el 19 de Mayo de 2003], Internet
URL:http//vega.c.oka-pu.ac.jp/-wadayama/pdf/LDPC.pnf ”, por ejemplo).
Según el algoritmo de suma producto, la operación del nodo variable y la operación del nodo de 50 comprobación se realizan de manera repetitiva.
En el nodo variable, se realiza la operación mostrada en la Ecuación (1) (la operación del nodo variable), tal como se muestra en la Fig. 7. Es decir, según la Fig. 7, el mensaje vi correspondiente a un borde para el cual se va a realizar un cálculo se calcula usando mensajes u1 y u2 transmitidos desde los otros bordes conectados al nodo 55 variable y los datos de recepción u0i. Los mensajes correspondientes a los otros bordes se calculan de la misma manera.
A continuación, se rescribe la Ecuación (2) usando la relación expresada mediante la ecuación a x b= exp{ln(lal) + ln(lbl)} x sign(a) x sign(b), tal como se muestra mediante la Ecuación (6), antes de describir la operación 60 del nodo de comprobación. En este caso, cuando se cumple la expresión x0, la sign(x) es uno, y cuando se cumple la expresión x < 0, la sign(x) es uno negativo.
Además, cuando se cumple la expresión x0 y φ(x) se define ln(tanh(x/2)), se cumple la expresión φ-1(x)=2tanh-1(e-x). Por lo tanto, las Ecuaciones (6) se pueden escribir, tal como se muestra mediante la Ecuación (7). 5
Tal como se muestra en la Fig. 8, en el nodo de comprobación, se realiza la operación mostrada en la Ecuación (7) (operación del nodo de comprobación). Es decir, en la Fig. 8, el mensaje uj correspondiente a un borde 10 para el cual se va a realizar un cálculo se calcula usando mensajes v1, v2, v3, v4, y v5 transmitidos desde los otros bordes conectados al nodo de comprobación. Los mensajes correspondientes a los otros bordes se calculan de la misma manera.
Además, la función Φ(x) se puede expresar como la ecuación φ(x) = ln((ex + 1)/(ex – 1)). Además, la 15 función Φ(x) se puede expresar como la ecuación φ(x) = φ-1(x), en donde se cumple la expresión x>0. Las funciones φ(x) y φ-1(x) se montan frecuentemente en hardware usando una LUT (tabla de consulta). Se puede usar la misma LUT para las dos funciones.
Cuando el algoritmo de suma producto se monta en hardware, es necesario realizar de manera repetitiva la 20 operación de nodo variable mostrada en la Ecuación (1) y la operación del nodo de comprobación mostrada en la Ecuación (7) usando un circuito con un tamaño adecuado y a frecuencias de funcionamiento adecuadas.
Además, son ampliamente conocidos los métodos para calcular el coste de la operación de código LDPC usando el algoritmo descrito anteriormente de suma producto (remitirse, por ejemplo, a Matthew C. Davey, David J 25 C MacKay “Low Density Parity Check Codes over GF(q)””).
Para obtener una calidad alta de decodificación usando el algoritmo de suma producto (SPA) según se ha descrito anteriormente, la densidad de la matriz de comprobación de paridad debe ser baja.
30
Además, la Fig. 9 muestra una matriz de comprobación de paridad H del otro código lineal corriente, tal como un código Reed-Solomon, en donde se determina que la raíz primitiva de un campo de definición es a. Habitualmente, la densidad de la matriz de comprobación de paridad H de un código lineal no es baja, tal como se muestra en la Fig. 9. Para el código Reed-Solomon cuya densidad no es baja, se realiza una decodificación usando el algoritmo de Euclides o similares (a la que se hará referencia en lo sucesivo como decodificación corriente). 35
La Fig. 10 es un diagrama de bloques que ilustra la configuración de un sistema ejemplificativo de corrección de errores para ejecutar una corrección de errores usando el código de Reed-Solomon. El sistema de corrección de errores mostrado en la Fig. 10 es un sistema usado para un sistema de comunicaciones digitales tal como, por ejemplo, una TV digital. 40
En el sistema de corrección de errores mostrado en la Fig. 10, datos digitales transmitidos desde un codificador 10 en el lado de transmisión se transmiten hacia un decodificador 30 en el lado de recepción a través de una vía de comunicaciones 21, tal como, por ejemplo, Internet.
45
El decodificador 10 incluye una unidad de codificación de Reed-Solomon 11 para codificar datos digitales transmitidos externamente, con vistas a su transmisión, usando el código de Reed-Solomon, un entrelazador 12 para reordenar los datos digitales codificados, una unidad de codificación convolucional 13 para realizar la codificación convolucional, y una unidad de procesado de comunicaciones 14 para comunicarse con el decodificador 30 a través de la vía de comunicaciones 21. 50
Además, el decodificador 30 incluye una unidad de procesado de comunicaciones 31 para obtener una palabra de transmisión transmitida a través de la vía de comunicaciones 21, una unidad de decodificación convolucional 32 para realizar una decodificación convolucional para la palabra de transmisión obtenida, un desentrelazador 33 para reinicializar los datos reordenados en el orden original, y una unidad de decodificación de Reed-Solomon 34 para realizar una decodificación de Reed-Solomon (decodificación corriente). 5
Los datos digitales de transmisión transmitidos desde fuera del codificador 10 se codifican en un código de Reed-Solomon a través de la unidad de codificación de Reed-Solomon 11 del decodificador 10 y se transmiten hacia el entrelazador 12. El entrelazador 12 realiza un reordenamiento (entrelazado) de los datos para difuminar ráfagas de errores que se producen principalmente en la vía de comunicaciones 21. Puesto que el código de Reed-10 Solomon ejecuta una corrección de errores, en donde una pluralidad de bits se considera como un único símbolo, el entrelazador 12 realiza un entrelazado de símbolos para difuminar las ráfagas de errores por símbolo.
Los datos digitales de transmisión reordenados se someten adicionalmente a una codificación convolucional a través de la unidad de codificación convolucional 13 sobre la base de una pluralidad de bloques de 15 datos de manera que se determinan secuencias de código de forma secuencial. Por ejemplo, tras recibir los datos digitales para cada bloque de datos de k bits desde el entrelazador 12, la unidad de codificación convolucional 13 con una longitud de restricción K codifica los datos digitales en un bloque de código de n bits sobre la base, no solamente del bloque de datos transmitido en ese momento, sino también de K bloques de datos que incluyen bloques de datos que habían sido proporcionados. 20
A continuación, los datos digitales codificados de manera convolucional se convierten en datos que se pueden transmitir a través de la unidad de procesado de comunicaciones 14 y se transmiten hacia el decodificador 30 a través de la vía de comunicaciones 21.
25
El decodificador 30 obtiene la palabra de transmisión transmitida a través de la vía de comunicaciones 21 de manera alámbrica o inalámbrica en la unidad de procesado de comunicaciones 31. La palabra de transmisión obtenida se somete a una decodificación convolucional a través de la unidad de decodificación convolucional 32. Tras recibir los datos decodificados de manera convolucional, el desentrelazador 33 realiza un procesado para reinicializar los datos reordenados en el orden original (desentrelazado) a través del reordenamiento de los datos 30 según un método correspondiente al entrelazado realizado por el entrelazador 12 del codificador. La unidad de decodificación de Reed-Solomon 34 ejecuta una decodificación de Reed-Solomon mediante una decodificación corriente para los datos digitales reinicializados en el orden original, reconstruye los datos digitales en el estado previo en el que no se ha realizado todavía la codificación de Reed-Solomon, y transmite los datos hacia fuera del decodificador 30. 35
Según la manera descrita anteriormente, el sistema de corrección de errores mostrado en la Fig. 10 corrige errores que se producen durante las comunicaciones y ejecuta las comunicaciones de la manera más precisa nunca conseguida.
40
La Fig. 11 es un diagrama de bloques que ilustra la configuración de un aparato ejemplificativo de grabación-y-reproducción que usa el sistema de corrección de errores para realizar la corrección de errores usando el código de Reed-Solomon. El aparato de grabación-y-reproducción mostrado en la Fig. 11 es un aparato de grabación-y-reproducción en soporte de grabación-digital, tal como, por ejemplo, un reproductor de discos DVD (Disco Versátil Digital). 45
El aparato de grabación-y-reproducción 50 mostrado en la Fig. 11 codifica los datos digitales transmitidos externamente, a través de la unidad de procesado de codificación 60 y graba los datos digitales sobre un soporte de grabación 72 en una unidad de grabación-y-reproducción 70. Además, el aparato de grabación-y-reproducción 50 reproduce los datos digitales grabados sobre el soporte de grabación 72 en la unidad de grabación-y-reproducción 50 70, obtiene los datos digitales originales a través de la ejecución de una decodificación en una unidad de decodificación 80, y da salida externamente a los datos.
La unidad de procesado de codificación 60 incluye de una primera a una n-ésima unidades de codificación de Reed-Solomon 61-1 a 61-n para ejecutar la codificación de Reed-Solomon para los datos digitales, en donde la 55 codificación de Reed-Solomon se refiere a grados que son diferentes entre sí.
La unidad de grabación-y-reproducción 70 incluye una unidad de grabación 71 para grabar los datos transmitidos desde la unidad de procesado de codificación 60 sobre el soporte de grabación 72, el soporte de grabación 72, tal como, por ejemplo, un disco óptico, y una unidad de reproducción 73 para reproducir los datos 60 grabados sobre el soporte de grabación 72.
Además, la unidad de procesado de decodificación 80 es un decodificador correspondiente a la unidad de procesado de codificación 60 e incluye de una primera a una n-ésima unidades de decodificación de Reed-Solomon 81-1 a 81-n para ejecutar una decodificación de Reed-Solomon (decodificación corriente) referente a grados que 65 son diferentes entre sí para los datos digitales.
Los datos digitales transmitidos desde el exterior de la unidad de procesado de codificación 60 se someten a una codificación de Reed-Solomon referente al grado uno en la primera unidad de codificación de Reed-Solomon 61-1. A continuación, los datos digitales se someten secuencialmente a una codificación de Reed-Solomon referente a cada uno de los grados dos a n en las unidades de codificación de Reed-Solomon segunda a n-ésima 61-2 a 61-n. Cuando la unidad n-ésima de codificación de Reed-Solomon 61-n finaliza la codificación, la unidad de 5 procesado de codificación 60 transmite los datos digitales codificados hacia la unidad de grabación-y-reproducción 70. La unidad de grabación 71 de la unidad de grabación-y-reproducción 70 graba los datos digitales transmitidos desde la unidad de procesado de codificación 60 en el soporte de grabación 72.
La unidad de reproducción 73 de la unidad de grabación-y-reproducción 70 reproduce los datos digitales 10 grabados sobre el soporte de grabación 72 (los datos digitales codificados) y transmite los datos digitales hacia la unidad de procesado de decodificación 80.
La unidad de procesado de decodificación 80 ejecuta una decodificación de Reed-Solomon (decodificación corriente) en relación con cada grado para los datos digitales transmitidos desde la unidad de reproducción 73 en 15 las unidades primera a n-ésima de decodificación de Reed-Solomon 81-1 a 81-n y reconstruye los datos digitales originales. Además, la unidad de procesado de decodificación 80 ejecuta una decodificación que es la inversa de la decodificación realizada por la unidad de procesado de codificación 60. En primer lugar, la unidad de procesado de decodificación 80 ejecuta una decodificación referente al grado n en la unidad n-ésima de decodificación de Reed-Solomon 81-n, y posteriormente ejecuta la decodificación de Reed-Solomon en el orden decreciente de los grados, 20 es decir, desde el grado n-1 al grado n-2. Finalmente, la unidad de procesado de decodificación 80 ejecuta una decodificación referente al primer grado. La unidad de procesado de decodificación 80 da salida a los datos digitales originales reconstruidos hacia el exterior del aparato de grabación-y-reproducción 50.
Tal como se ha descrito, el aparato de grabación-y-reproducción 50 mostrado en la Fig. 11 corrige errores 25 de datos que se producen durante la grabación o reproducción de datos.
La decodificación corriente para el código de Reed-Solomon descrito anteriormente, un código BCH (Bose-Chaudhuri-Hocquenghem), y otros, es un método de decodificación usado para una palabra de recepción de decisión rígida en donde se estima que un valor de recepción es solamente “0” ó “1”. 30
No obstante, cuando se obtiene una palabra de recepción de decisión flexible y cuando un código de Reed-Solomon se somete a la decodificación corriente en un sistema que puede obtener la palabra de recepción de decisión flexible, la calidad de la decodificación es baja. Esto es debido a que la calidad de decodificación obtenida mediante el uso de la palabra de recepción de decisión rígida es habitualmente menor que en el caso en el que se 35 usa la palabra de recepción de decisión flexible.
Posteriormente, se considera el método descrito anteriormente para decodificación usando el algoritmo de suma producto. No obstante, como, en la mayoría de los casos, la densidad de una matriz de comprobación de paridad de un código lineal ampliamente usado no es baja, la calidad de la decodificación no aumenta. Además, si 40 la densidad de una matriz de comprobación de paridad, proporcionada, fuera baja, la configuración de un algoritmo de suma producto sobre un campo finito grande resultaría muy complicada, lo cual haría que aumentase el coste de la operación.
EXPOSICIÓN DE LA INVENCIÓN 45
“On Iterative Soft-Decisions Decoding of Linear Binary Block Codes and Product Codes” de Rainer Lucas, Martin Bossert y Markus Breitback, IEEE Journal on Selected Areas in Communications, Volumen 16/2, febrero de 1998, describe la decodificación iterativa de códigos de bloque. El algoritmo de decodificación propuesto usa únicamente vectores de comprobación de paridad de peso mínimo. 50
Por consiguiente, la presente invención se proporciona para ejecutar de manera sencilla una decodificación de alto rendimiento en el caso en el que, como método para decodificar un código lineal corriente, se usa un algoritmo de suma producto.
55
La invención se define en las reivindicaciones adjuntas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La Fig. 1 ilustra una matriz ejemplificativa de comprobación de paridad de baja densidad. 60
La Fig. 2 ilustra una gráfica de Tanner correspondiente a la matriz de comprobación de paridad mostrada en la Fig. 1.
La Fig. 3 es un diagrama de flujo que ilustra procesos para decodificar un código LDPC. 65
La Fig. 4 ilustra el flujo de un mensaje.
La Fig. 5 ilustra una matriz de comprobación ejemplificativa del código LDPC.
La Fig. 6 ilustra una gráfica de Tanner de la matriz de comprobación.
5
La Fig. 7 muestra un nodo variable.
La Fig. 8 muestra un nodo de comprobación.
La Fig. 9 ilustra una matriz de comprobación de un código de Reed-Solomon. 10
La Fig. 10 ilustra la configuración de un sistema conocido y ejemplificativo de corrección de errores.
La Fig. 11 ilustra la configuración de un aparato conocido y ejemplificativo de grabación-y-reproducción.
15
La Fig. 12 ilustra la configuración de un decodificador ejemplificativo que usa la presente invención.
La Fig. 13 es un diagrama de flujo que ilustra el procesado de decodificación ejecutado por el decodificador mostrado en la Fig. 12.
20
La Fig. 14 es un diagrama de flujo que ilustra el procesado de baja densidad con matriz de comprobación de paridad, ejecutado en la etapa S21 mostrada en la Fig. 13.
La Fig. 15 ilustra una matriz ejemplificativa de comprobación de paridad de un código BCH.
25
La Fig. 16 ilustra una gráfica de Tanner correspondiente a la matriz de comprobación de paridad mostrada en la Fig. 15.
La Fig. 17 ilustra una matriz ejemplificativa de comprobación de paridad, expandida.
30
La Fig. 18 ilustra una gráfica de Tanner correspondiente a la matriz de comprobación de paridad mostrada en la Fig. 17.
La Fig. 19 es una gráfica que muestra comparaciones de decodificaciones.
35
La Fig. 20 ilustra la configuración de otro decodificador ejemplificativo que usa la presente invención.
La Fig. 21 es un diagrama de flujo que muestra un procesado de decodificación ejecutado por el decodificador mostrado en la Fig. 20.
40
La Fig. 22 ilustra una matriz ejemplificativa de comprobación de paridad del código de Reed-Solomon.
La Fig. 23 ilustra otra matriz ejemplificativa de comprobación de paridad, expandida.
La Fig. 24 es otra gráfica que muestra comparaciones de decodificaciones. 45
La Fig. 25 es un diagrama de bloques que ilustra la configuración de un sistema ejemplificativo de corrección de errores que usa la presente invención.
La Fig. 26 es un diagrama de bloques que ilustra la configuración de otro sistema ejemplificativo de 50 corrección de errores que usa la presente invención.
La Fig. 27 es un diagrama de bloques que ilustra la configuración de un aparato ejemplificativo de grabación-y-reproducción que usa la presente invención.
55
La Fig. 28 es un diagrama de bloques que muestra la configuración de un aparato de grabación ejemplificativo.
La Fig. 29 es un diagrama de bloques que muestra la configuración de un aparato de reproducción ejemplificativo que usa la presente invención. 60
La Fig. 30 es un diagrama de bloques que ilustra la configuración de otro aparato ejemplificativo de grabación-y-reproducción que usa la presente invención.
La Fig. 31 es un diagrama de bloques que muestra la configuración de otro aparato de reproducción 65 ejemplificativo que usa la presente invención.
La Fig. 32 es un diagrama de bloques que ilustra la configuración de un ordenador según una forma de realización de la presente invención.
MEJOR MODO DE PONER EN PRÁCTICA LA INVENCIÓN
5
Se describirán según se indica a continuación formas de realización de la presente invención. En primer lugar, se describirá una tecnología ejemplificativa que usa la presente invención.
La Fig. 12 es un diagrama de bloques que ilustra la configuración ejemplificativa de un decodificador ejemplificativo que hace uso de la presente invención. 10
En la Fig. 12, un decodificador 100 es un decodificador que se puede usar, por ejemplo, para un código BCH, y que incluye una unidad de procesado de baja densidad 110 para convertir una matriz de comprobación de paridad de por lo menos una palabra de recepción sobre un anillo R (o un campo finito) en una matriz cuya densidad es suficientemente baja, y una unidad de decodificación de LDPC 121 para decodificar la palabra de 15 recepción usando la matriz de comprobación de paridad de baja densidad.
La unidad de procesado de baja densidad 110 incluye una unidad de cálculo de combinación lineal 111 para calcular una combinación lineal de filas de la matriz de comprobación de paridad, una unidad de generación de matrices de comprobación de paridad 112 para generar una matriz de comprobación de paridad suficientemente 20 poco densa mediante el uso de las filas combinadas linealmente, y una unidad de determinación 113 para determinar si el rango de la matriz de comprobación de paridad generada es o no el mismo que el de la matriz de comprobación de paridad original.
La unidad de cálculo de combinación lineal 111 calcula la combinación lineal de filas de una matriz de 25 comprobación de paridad incluida en una palabra de recepción obtenida, para todas las combinaciones. Es decir, la unidad de cálculo de combinación lineal 111 calcula 2n maneras de combinación lineal para una matriz de comprobación de paridad que tiene n filas. La unidad de cálculo de combinación lineal 111 transmite el resultado del cálculo y las palabras de recepción hacia la unidad de generación de matrices de comprobación de paridad 112.
30
La unidad de generación de matrices de comprobación de paridad 112 extrae filas del resultado del cálculo transmitido desde la unidad de cálculo de combinación lineal 111, es decir, las filas combinadas linealmente, a partir de criterios predeterminados, y genera una matriz de comprobación de paridad que incluye las filas extraídas. La unidad de generación de matrices de comprobación de paridad 112 fija criterios predeterminados de manera que la densidad de la matriz de comprobación de paridad generada resulte baja. Por ejemplo, se puede disponer que se 35 extraiga una fila predeterminada de entre las filas combinadas linealmente, en la que el número de elementos cuyos valores son “1” sea menor que un número predeterminado. A continuación, la unidad de generación de matrices de comprobación de paridad 112 extrae por lo menos una fila que cumple los criterios. La unidad de generación de matrices de comprobación de paridad 112 transmite la matriz de comprobación de paridad generada y la palabra de recepción hacia la unidad de determinación 113. Además, tal como se describirá posteriormente, cuando la unidad 40 de determinación 113 determina que el rango de la matriz de comprobación de paridad generada es diferente al de la matriz de comprobación de paridad original, la unidad de generación de matrices de comprobación de paridad 112 ejecuta nuevamente la extracción de filas, y genera una nueva matriz de comprobación de paridad. En ese momento, la unidad de generación de matrices de comprobación de paridad 112 cambia los criterios para la extracción previa de filas y genera una matriz de comprobación de paridad que incluye filas diferentes a las de la 45 matriz de comprobación de paridad generada previamente.
La unidad de determinación 113 determina si el rango de la matriz de comprobación de paridad generada por la unidad de generación de matrices de comprobación de paridad 112 concuerda o no con el de la matriz de comprobación de paridad original. Cuando se determina que los rangos concuerdan entre sí, la unidad de 50 determinación 113 transmite la palabra de recepción y la matriz de comprobación de paridad generada hacia la unidad de decodificación de LDPC 121. Cuando se determina que los rangos no concuerdan entre sí, la unidad de determinación 113 cambia el procesado de vuelta hacia la unidad de generación de matrices de comprobación de paridad 112, de manera que la unidad de generación de matrices de comprobación de paridad 112 genera otra matriz nueva de comprobación de paridad. 55
Tal como se ha descrito, la unidad de procesado de baja densidad 110 reduce la densidad de la matriz de comprobación de paridad del código BCH incluido en la palabra de recepción y transmite la matriz de comprobación de paridad de baja densidad y la palabra de recepción hacia la unidad de decodificación de LDPC 121.
60
La unidad de decodificación de LDPC 112 decodifica las palabras de recepción según un algoritmo de suma producto usando la matriz obtenida de comprobación de paridad de baja densidad y da salida externamente a la palabra de recepción decodificada fuera del decodificador 100.
Tal como se ha descrito anteriormente, la unidad de procesado de baja densidad 110 reduce la densidad 65 de la matriz de comprobación de paridad de las palabras de recepción, con lo cual la unidad de decodificación de LDPC 121 puede ejecutar la decodificación que usa el algoritmo de suma producto usando la matriz de
comprobación de paridad de baja densidad. A continuación, se puede ejecutar la decodificación de alto rendimiento. Además, puesto que la unidad de procesado de baja densidad 110 reduce la densidad de la matriz de comprobación de paridad de la palabra de recepción a través de la combinación lineal, la unidad de decodificación de LDPC 121 puede ejecutar la decodificación sobre un subcampo y reducir el coste de la operación. Es decir, como la densidad de la matriz de comprobación de paridad se reduce a través de la combinación lineal antes de 5 ejecutar la decodificación que usa el algoritmo de suma producto, el decodificador 100 puede ejecutar de manera sencilla la decodificación de alto rendimiento.
A continuación, se describirá, haciendo referencia a un diagrama de flujo mostrado en la Fig. 13, la decodificación ejecutada por el decodificador descrito anteriormente. 10
En primer lugar, la unidad de procesado de baja densidad 110 del decodificador 100 ejecuta un procesado de baja densidad con matriz de comprobación de paridad, en la etapa S21, para reducir la densidad de una matriz de comprobación de paridad incluida en una palabra de recepción obtenida. Los detalles del procesado de baja densidad con matriz de comprobación de paridad se describirán posteriormente haciendo referencia a un diagrama 15 de flujo de la Fig. 14.
A continuación, en la etapa S22, la unidad de decodificación de LDPC 121 ejecuta una decodificación que usa el algoritmo de suma producto (SPA) utilizando la matriz de comprobación de paridad cuya densidad se reduce a través del procesado en la etapa S21. Cuando ha finalizado el procesado en la etapa S22, la unidad de 20 decodificación de LDPC 121 termina la decodificación para la palabra de recepción. Además, el decodificador 100 ejecuta la decodificación descrita anteriormente para cada palabra de recepción (cada bloque).
Seguidamente, se describirán, haciendo referencia al diagrama de flujo de la Fig. 14, los detalles del procesado de baja densidad con matriz de comprobación de paridad realizado en la etapa S21 mostrada en la Fig. 25 13.
En primer lugar, en la etapa S41, la unidad de cálculo de combinación lineal 111 de la unidad de procesado de baja densidad 110 combina linealmente las filas de la matriz de comprobación de paridad incluida en la palabra de recepción obtenida, de todas las maneras posibles, y calcula el resultado de la combinación. 30
Después de calcular la combinación lineal, la unidad de cálculo de combinación lineal 111 fija el valor de una variable n que funciona como criterios de extracción de filas, según se describirá posteriormente, a un valor inicial tal como “1”, en la etapa S42. A continuación, una unidad de cálculo de combinación lineal 111 transmite la palabra de recepción, el resultado de cálculo de la combinación lineal, y la variable n hacia la unidad de generación 35 de matrices de comprobación de paridad 112, de manera que el procesado avanza hacia la etapa S43.
En la etapa S43, la unidad de generación de matrices de comprobación de paridad 112 calcula un peso que indica el número de elementos cuyos valores se determina que es “1” para cada uno de los resultados obtenidos de la combinación lineal, extrae filas con el peso predeterminado de entre todos los resultados de la 40 combinación lineal, en las que el peso extraído que indica el número de elementos cuyos valores se han determinado que son “1” es menor que la variable n, y genera una matriz de comprobación de paridad de baja densidad que incluye las filas extraídas.
Es decir, la unidad de generación de matrices de comprobación de paridad 112 extrae un subconjunto de 45 vectores con pesos inferiores, en donde el subconjunto forma un espacio complementario de código, de entre el conjunto de vectores obtenidos a través de la combinación lineal calculada por la unidad de cálculo de combinación lineal 111, y genera una nueva matriz de comprobación de paridad que incluye todos los vectores del subconjunto de vectores, en los que los vectores funcionan como elementos de fila.
50
Después de generar la matriz nueva de comprobación de paridad, la unidad de generación de matrices de comprobación de paridad 112 hace avanzar el procesado hacia la etapa S44, suma (1) al valor de la variable n, y transmite la palabra de recepción, la matriz generada de comprobación de paridad, y la variable n hacia la unidad de determinación 113.
55
Tras recibir la palabra de recepción, la matriz generada de comprobación de paridad, y la variable n, la unidad de determinación 113 determina si el rango de la matriz original de comprobación de paridad concuerda o no con el rango de la matriz de comprobación de paridad de baja densidad basándose en información referente a la matriz original de comprobación de paridad incluida en la palabra de recepción, en la etapa S45.
60
Por ejemplo, cuando se determina que el rango de la matriz de comprobación de paridad de baja densidad es bajo y no concuerda con el de la matriz original de comprobación de paridad, la unidad de determinación 113 vuelve a la etapa S43 y repite el procesado desde allí en adelante. Es decir, la unidad de determinación 113 transmite su resultado de determinación hacia la unidad de generación de matrices de comprobación de paridad 112 y hace que la unidad de generación de matrices de comprobación de paridad 112 vuelva a generar una matriz 65 de comprobación de paridad de baja densidad. En ese momento, el valor de la variable n que funciona como criterios de extracción a partir del resultado de la combinación lineal es diferente al del procesado previo. Por lo
tanto, la unidad de generación de matrices de comprobación de paridad 112 puede generar una matriz de comprobación de paridad de baja densidad que tiene filas diferentes a las del procesado previo (elementos diferentes a los del procesado previo).
Cuando se determina que el rango de la matriz original de comprobación de paridad concuerda con el de la 5 matriz de comprobación de paridad de baja densidad, en la etapa S45, la unidad de determinación 113 avanza hacia la etapa S46, transmite las palabras de recepción y la matriz generada de comprobación de paridad de baja densidad hacia la unidad de decodificación de LDPC 121, y vuelve a la etapa S22 mostrada en la Fig. 13.
Mediante la realización de la decodificación y el procesado de baja densidad de la matriz de comprobación 10 de paridad según la manera descrita anteriormente, el decodificador 100 reduce la densidad de la matriz de comprobación de paridad a través de una combinación lineal antes de realizar la decodificación que usa el algoritmo de suma producto. Por lo tanto, el decodificador 100 puede realizar de forma sencilla una decodificación de alto rendimiento.
15
A continuación, se describirá detalladamente una reducción de densidad ejemplificativa que hace uso del decodificador descrito anteriormente 100.
En el siguiente ejemplo, se determina que un campo finito es un campo finito GF (24) cuyos elementos son potencias de números primos (un campo de extensión de grado 4 de GF(2)), un código lineal se indica mediante C, 20 y se decodifica un código BCH (15, 7) del cual se determina que su longitud de código y longitud de datos son quince y siete.
Tal como se muestra en la Fig. 15, se proporciona por ejemplo una matriz de comprobación de paridad H del código lineal C. La matriz de comprobación de paridad H mostrada en la Fig. 15 es una matriz que incluye ocho 25 filas y quince columnas. Tal como se muestra en la Fig. 16, se proporciona una gráfica de Tanner correspondiente a la matriz de comprobación de paridad H. En la gráfica de Tanner mostrada en la Fig. 16, cada columna de la matriz de comprobación de paridad H se muestra como un nodo variable indicado mediante “=” y cada fila se muestra como un nodo de comprobación indicado mediante “+”. La densidad de bordes que conectan los nodos variables a los nodos de comprobación es alta, lo cual muestra que la matriz de comprobación de paridad H mostrada en la 30 Fig. 15 no es una matriz de baja densidad.
Tal como se ha descrito anteriormente, la unidad de procesado de baja densidad 110 mostrada en la Fig. 12 realiza una combinación lineal usando las ocho filas descritas anteriormente y genera 28=256 segmentos de vectores de fila cuya densidad de “1” es baja. A continuación, la unidad de procesado de baja densidad 110 extrae 35 quince segmentos de vectores de fila, en los que el número de “1” es cuatro o menos, y genera una matriz nueva Hsp4 que incluye vectores de quince elementos alineados verticalmente, tal como se muestra en la Fig. 17. La Fig. 18 muestra una gráfica de Tanner correspondiente a la matriz Hsp4 mostrada en la Fig. 17. Puesto que tanto el número de filas como el número de columnas de la matriz Hsp4 mostrada en la Fig. 17 es quince, el número de nodos variables así como el número de nodos de comprobación de la gráfica de Tanner mostrada en la Fig. 18 es 40 quince. Es decir, la densidad de bordes que conectan los nodos variables a los nodos de comprobación es menor que en el caso de la Fig. 16.
La unidad de procesado de baja densidad 110 determina que la matriz descrita anteriormente Hsp4 es una matriz de comprobación de paridad y transmite la matriz Hsp4 hacia la unidad de decodificación de LDPC 121. La 45 unidad de decodificación de LDPC 121 decodifica la palabra de recepción usando el algoritmo de suma producto mediante la utilización de la matriz de comprobación de paridad de baja densidad Hsp4 mostrada en la Fig. 17.
La Fig. 19 es una gráfica que muestra una comparación entre el caso en el que se decodifica el código BCH que incluye la matriz de comprobación de paridad descrita anteriormente siguiendo un procedimiento de 50 máxima verosimilitud a través de una decodificación de Viterbi y el caso en el que el código BCH se decodifica usando el algoritmo de suma producto mediante la utilización de la matriz de comprobación de paridad de baja densidad Hsp4 mostrada en la Fig. 17.
En la Fig. 19, una curva 131 muestra la tasa de errores de bit (BER) del resultado de la decodificación 55 mediante el uso del algoritmo de suma producto (SPA) ((2) bch 15 7(peso4) SPA BER) y una curva 132 indica la tasa de errores de bit (BER) del resultado de la decodificación obtenido mediante una decodificación de Viterbi ((1) bch 15 7 ML BER). Además, los datos representados por un punto 133 indican una tasa de errores de trama (FER) del resultado de la decodificación usando el algoritmo de suma producto ((2) bch 15 7(peso4) SPA FER) y los datos representados por un punto 134 indican una tasa de errores de trama (FER) del resultado de la decodificación 60 obtenido mediante una decodificación de Viterbi ((1) bch 15 7 ML FER).
La decodificación de máxima verosimilitud (la curva 132 mostrada en la Fig. 19) indica el límite del rendimiento obtenido en el caso en el que se usa una decodificación de probabilidad tal como el algoritmo de suma producto. La curva 131 que usa la presente invención indica un rendimiento que se aproxima al límite del 65 rendimiento, tal como se muestra en la Fig. 19.
Tal como se ha descrito anteriormente, el decodificador 100 reduce la densidad de la matriz de comprobación de paridad a través de una combinación lineal antes de decodificar el código BCH usando el algoritmo de suma producto. Posteriormente, el decodificador 100 puede realizar de forma sencilla una decodificación de alto rendimiento.
5
Aunque se ha descrito la decodificación del código BCH, se puede usar cualquier método de códigos sin limitarse al mismo, siempre que se use un código lineal ampliamente utilizado, tal como un código de Reed-Solomon. A continuación se describirá, según la manera que se expone seguidamente, el caso en el que la señal de Reed-Solomon se decodifica usando el algoritmo de suma producto.
10
La Fig. 20 es un diagrama de bloques que muestra la configuración de otro decodificador ejemplificativo que usa la presente invención.
En la Fig. 20, un decodificador 150 es un decodificador compatible con el código de Reed-Solomon, por ejemplo, e incluye una unidad de expansión 161 para expandir la matriz de comprobación de paridad de una 15 palabra de recepción, una unidad de procesado de baja densidad 170 para convertir la matriz expandida de comprobación de paridad en una matriz cuya densidad es suficientemente baja, y una unidad de decodificación de LDPC 181 para decodificar la palabra de recepción usando la matriz de comprobación de paridad de baja densidad.
La unidad de procesado de expansión 161 expande cada uno de los elementos de una matriz de 20 comprobación de paridad incluidos en una palabra de recepción obtenida, en un grado predeterminado de acuerdo con el grado de un campo finito de la matriz, como preprocesado del procesado de baja densidad para la matriz de comprobación de paridad. Es decir, la unidad de procesado de expansión 161 expande la matriz de comprobación de paridad sobre el campo finito cuyos elementos son potencias de números primos en un subcampo del campo finito en grados predeterminados. La unidad de procesado de baja densidad 161 transmite la matriz expandida de 25 comprobación de paridad y la palabra de recepción hacia la unidad de procesado de baja densidad 170.
El procesado de baja densidad 170 incluye una unidad de cálculo de combinación lineal 171 para calcular una combinación lineal de filas de la matriz de comprobación de paridad, una unidad de generación de matrices de comprobación de paridad 172 para generar una matriz de comprobación de paridad suficientemente poco densa 30 usando las filas combinadas linealmente, y una unidad de determinación 173 para determinar si el rango de la matriz de comprobación de paridad generada es o no el mismo que el de la matriz original de comprobación de paridad. Puesto que la configuración y las operaciones de cada una de las unidades descritas anteriormente son las mismas que las de la unidad de procesado de baja densidad 110 del decodificador 100 mostrado en la Fig. 12, se omite su descripción. Es decir, las unidades que incluyen la unidad de cálculo de combinación lineal 171 a la unidad 35 de determinación 173 de la unidad de procesado de baja densidad 170 se corresponden con las que incluyen desde la unidad de cálculo de combinación lineal 111 al límite de determinación 113 mostrados en la Fig. 12. No obstante, la unidad de procesado de baja densidad 170 ejecuta un procesado de baja densidad para la matriz expandida de comprobación de paridad transmitida desde la unidad de expansión 161.
40
La unidad de procesado de baja densidad 170 reduce la densidad de la matriz de comprobación de paridad del código de Reed-Solomon expandida por la unidad de procesado de expansión 161 y transmite la matriz de comprobación de paridad de baja densidad y la palabra de recepción hacia la unidad de decodificación de LDPC 181.
45
La unidad de decodificación de LDPC 181 decodifica la palabra de recepción a través del algoritmo de suma producto usando la matriz obtenida de comprobación de paridad de baja densidad, y da salida a la palabra de recepción decodificada al exterior del decodificador 150.
De este modo, puesto que la unidad de procesado de expansión 161 expande la matriz de comprobación 50 de paridad antes de que la unidad de procesado de baja densidad 170 reduzca la densidad de la matriz de comprobación de paridad, el coste de operación de la decodificación realizada por la unidad de decodificación de LDPC 181 a través del algoritmo de suma producto mediante el uso de la matriz de comprobación de paridad de baja densidad Hsp24 se reduce a aproximadamente un cuarto del coste de operación en el caso en el que la decodificación se realiza a través del algoritmo de suma producto usando la matriz de comprobación de paridad H 55 incluida en la palabra de recepción, tal como se muestra en la Ecuación (8) que se presenta a continuación.
Seguidamente, el decodificador 150 puede ejecutar de forma sencilla una decodificación de alto 60 rendimiento.
A continuación, se describirá, haciendo referencia a un diagrama de flujo mostrado en la Fig. 21, la decodificación ejecutada por el decodificador descrito anteriormente 150.
En primer lugar, la unidad de procesado de expansión 161 del decodificador 150 expande una matriz de comprobación de paridad incluida en una palabra de recepción obtenida, según el grado del campo finito de la misma, en la etapa S61. A continuación, la unidad de procesado de expansión 161 transmite la matriz expandida de comprobación de paridad y la palabra de recepción hacia la unidad de procesado de baja densidad 170, de manera que el procesado avanza hacia la etapa S62. 5
La unidad de procesado de baja densidad 170 ejecuta el procesado de baja densidad de la matriz de comprobación de paridad, en la etapa S62, de manera que se reduce la densidad de la matriz expandida de comprobación de paridad. Puesto que los detalles del procesado de baja densidad de la matriz de comprobación de paridad son los mismos que los descritos haciendo referencia al diagrama de flujo mostrado en la Fig. 14, se omite 10 la descripción detallada. No obstante, en el procesado descrito anteriormente de baja densidad de la matriz de comprobación de paridad, la unidad de procesado de baja densidad 170 reduce la densidad de la matriz de comprobación de paridad expandida por la unidad de procesado de expansión 161 según la manera descrita anteriormente.
15
A continuación, en la etapa S63, la unidad de decodificación de LDPC 181 ejecuta la decodificación a través del algoritmo de suma producto (SPA) usando la matriz de comprobación de paridad cuya densidad se reduce a través del procesado ejecutado, en la etapa S62. Después de finalizar el procesado en la etapa S63, la unidad de decodificación de LDPC 121 termina la decodificación para la palabra de recepción. El decodificador 150 ejecuta la decodificación descrita anteriormente para cada palabra de recepción (cada bloque). 20
Ejecutando la decodificación según la manera descrita anteriormente, el decodificador 150 expande cada elemento de la matriz de comprobación de paridad antes de realizar la reducción de la densidad. Seguidamente, el decodificador 150 puede ejecutar de manera sencilla una decodificación de alto rendimiento.
25
A continuación, se describirá detalladamente una expansión ejemplificativa realizada a través del decodificador descrito anteriormente 150.
En el siguiente ejemplo, se determina que un campo finito es GF(24), un código lineal se indica mediante C, y se decodifica un código de Reed-Solomon (15, 11) cuya longitud de código se ha determinado que es quince y 30 la longitud de datos se ha determinado que es once. Además, se determina que la raíz primitiva de GF(24) es a, se proporciona un polinomio primitivo que incluye la raíz primitiva a, como Ecuación (9), y se proporciona un polinomio generador de código, como Ecuación (10).
35
Tal como se muestra en la Fig. 22, se proporciona una matriz de comprobación de paridad del código lineal C en ese momento. La matriz de comprobación de paridad H mostrada en la Fig. 22 es una matriz que incluye 40 cuatro filas y quince columnas. Puesto que el campo finito GF(24) es un campo de extensión de grado cuatro de GF(2), todos los elementos y columnas sobre el campo finito GF(24) se pueden expandir en grado cuatro. La unidad de procesado de expansión 161 del decodificador 150 expande y convierte la matriz de comprobación de paridad H mostrada en la Fig. 22 en una matriz de comprobación de paridad Hexp que tiene dieciséis filas y sesenta columnas, tal como se muestra en la Fig. 23. En ese caso, la unidad de procesado de expansión 161 expande cada elemento 45 de la matriz de comprobación de paridad H mostrada en la Fig. 22 en un grupo de 4 por 4 elementos, con lo cual se genera la matriz de comprobación de paridad Hexp mostrada en la Fig. 23.
La unidad de procesado de baja densidad 170 del decodificador 150 ejecuta una reducción de densidad para la matriz expandida de comprobación de paridad Hexp. La unidad de decodificación de LDPC 181 ejecuta una 50 decodificación a través del algoritmo de suma producto usando la matriz de comprobación de paridad de baja densidad Hexp.
La Fig. 24 es una gráfica que muestra una comparación entre el rendimiento de la decodificación obtenido cuando un código de Reed-Solomon que incluye la matriz descrita anteriormente de comprobación de paridad se 55 decodifica a través de una decodificación corriente y el obtenido cuando el código de Reed-Solomon se decodifica a través del algoritmo de suma producto usando la matriz de comprobación de paridad Hsp24 obtenida mediante la reducción de la densidad de la matriz expandida de comprobación de paridad Hexp mostrada en la Fig. 23.
En la Fig. 24, una curva 191 muestra una tasa de errores de bit (BER) del resultado de la decodificación 60 realizada a través del algoritmo de suma producto (SPA) usando la matriz de comprobación de paridad de baja densidad Hsp24 ((4) RS peso24 SPA BER) y una curva 192 indica una tasa de errores de bit (BER) del resultado de una decodificación corriente ((3) RS ORD BER). Además, los datos representados por un punto 193 indican una tasa de errores de trama (FER) del resultado de una decodificación realizada a través del algoritmo de suma
producto usando la matriz de comprobación de paridad de baja densidad Hsp24 ((4) RS peso24 SPA FER) y los datos representados por un punto 194 indican una tasa de errores de trama (FER) del resultado de una decodificación corriente ((3) RS ORD FER).
La curva 191 (el punto 193) que indica el resultado de la decodificación usando la presente invención 5 muestra un rendimiento mayor que el de la curva 192 (el punto 194) que indica el resultado de una decodificación corriente, según se muestra en la Fig. 24.
Tal como se ha descrito, el decodificador 150 reduce la densidad de la matriz de comprobación de paridad a través de una combinación lineal antes de decodificar el código de Reed-Solomon usando el algoritmo de suma 10 producto. Por lo tanto, el decodificador 150 puede lograr de forma sencilla una decodificación de alto rendimiento. Además, el decodificador 150 expande cada uno de los elementos y columnas de la matriz de comprobación de paridad antes de reducir la densidad de la matriz de comprobación de paridad. Subsiguientemente, se puede reducir el coste de la operación.
15
La Fig. 25 es un diagrama de bloques que muestra la configuración de un sistema ejemplificativo de corrección de errores usando un código de Reed-Solomon. El sistema de corrección de errores mostrado en la Fig. 25 es un sistema usado para un sistema de comunicaciones digitales, tal como, por ejemplo, una TV digital.
En el sistema de corrección de errores mostrado en la Fig. 25, datos digitales transmitidos desde un 20 codificador 210 en el lado de transmisión se transmiten hacia un decodificador 230 en el lado de recepción a través de una vía de comunicaciones 221, tal como, por ejemplo, Internet.
El codificador 210 incluye una unidad de codificación de Reed-Solomon 211 para codificar datos digitales transmitidos externamente con vistas a su transmisión, usando el código de Reed-Solomon, un entrelazador 212 25 para reordenar los datos digitales codificados, una unidad de codificación convolucional 213 para ejecutar una codificación convolucional, y una unidad de comunicaciones 214 para comunicarse con el decodificador 230 a través de la vía de comunicaciones 221.
La unidad de codificación de Reed-Solomon 211 codifica los datos digitales transmitidos desde el exterior 30 del codificador 210 usando el código de Reed-Solomon y transmite los datos digitales codificados hacia el entrelazador 212. El entrelazador 212 reordena los datos digitales codificados (entrelazado) para difuminar ráfagas de errores que se producen principalmente en la vía de comunicaciones 221. Puesto que el código de Reed-Solomon ejecuta una corrección de errores, en la que se reordena una pluralidad de bits, en forma de un único símbolo, el entrelazador 212 ejecuta un entrelazado de símbolos para difuminar ráfagas de errores en símbolos. 35 Después de finalizar el reordenamiento de los datos, el entrelazador 212 transmite los datos digitales reordenados hacia la unidad de codificación convolucional 213.
La unidad de codificación convolucional 213 remite a datos que fueron codificados en el pasado para los datos digitales reordenados y ejecuta una codificación convolucional basándose en una pluralidad de bloques de 40 datos, con lo cual una secuencia de código se fija en orden. Por ejemplo, tras recibir los datos digitales para cada bloque de datos de k bits desde el entrelazador 212, la unidad de codificación convolucional 213 con una longitud de restricción K codifica los datos digitales en un bloque de código de n bits basándose, no solamente en el bloque de datos transmitido en ese momento, sino también en K bloques de datos que incluyen bloques de datos que habían sido proporcionados. Después de finalizar la codificación convolucional, la unidad de codificación 45 convolucional 213 transmite los datos digitales codificados convolucionalmente hacia la unidad de comunicaciones 214.
La unidad de comunicaciones 214 ejecuta un procesado de control de comunicaciones y transmite hacia el decodificador 230 los datos digitales transmitidos, en forma de una palabra de transmisión a través de la vía de 50 comunicaciones 221 sobre la base de un protocolo predeterminado.
Los datos digitales transmitidos desde el codificador 210 se transmiten hacia el decodificador 230 a través de la vía de comunicaciones 221.
55
El decodificador 230 incluye una unidad de comunicaciones 231 para recibir los datos digitales transmitidos a través de la vía de comunicaciones 221, en forma de una palabra de recepción, una unidad de decodificación convolucional 232 para ejecutar una decodificación convolucional para la palabra de recepción obtenida por la unidad de comunicaciones 231, un desentrelazador 233 para reordenar la palabra de recepción decodificada convolucionalmente en su orden original, y una unidad de decodificación de SPA y Reed-Solomon 234 para 60 decodificar los datos digitales reordenados en el orden original a través del algoritmo de suma producto y reconstruir los datos digitales en el estado previo en el que no se ha realizado todavía la codificación de Reed-Solomon.
La unidad de comunicaciones 231 se comunica con la unidad de comunicaciones 214 del codificador 210 a 65 través de la vía de comunicaciones 221 y obtiene los datos digitales transmitidos desde la unidad de comunicaciones 214, en forma de una palabra de recepción, sobre la base de un protocolo predeterminado. La
unidad de comunicaciones 231 transmite la palabra de recepción obtenida hacia la unidad de decodificación convolucional 232.
La unidad de decodificación convolucional 232 decodifica la palabra de recepción transmitida desde la unidad de transmisión 231 según un método que se corresponde con el método de codificación ejecutado por la 5 unidad de codificación convolucional 213 del codificador 210. Es decir, la unidad de decodificación convolucional 232 ejecuta una decodificación de decisión flexible para la palabra de recepción usando el algoritmo de BCJR (Bahl, Cocke, Jelinek, y Raviv), el SOVA (algoritmo de Viterbi de salida flexible), y otros, con el fin de lograr una decodificación de Probabilidad máxima a posteriori (por ejemplo, decodificación MAP). A continuación, la unidad de decodificación convolucional 232 transmite la palabra de recepción decodificada por decisión flexible hacia el 10 desentrelazador 233.
El desentrelazador 233 ejecuta un reordenamiento de datos para la palabra de recepción transmitida, según un método que se corresponde con el entrelazado ejecutado por el entrelazador 212 del codificador 210, ejecuta un procesado para reinicializar los datos reordenados al orden original (desentrelazado), y transmite la 15 palabra de recepción reordenada en el orden original hacia la unidad de decodificación de SPA y Reed-Solomon 234.
Básicamente, la unidad de decodificación de SPA y Reed-Solomon 234 está configurada y funciona tal como el caso del decodificador 150 mostrado en la Fig. 20. Además, el diagrama de bloques mostrado en la Fig. 20 20 y el diagrama de flujo mostrado en la Fig. 21 se pueden usar para la unidad de decodificación de SPA y Reed-Solomon 234. Por lo tanto, se omitirá su descripción.
La unidad de decodificación de SPA y Reed-Solomon 234 expande la matriz de comprobación de paridad de la palabra de recepción sometida a la codificación de Reed-Solomon y reduce la densidad de la matriz de 25 comprobación de paridad de la misma. A continuación, la unidad de decodificación de SPA y Reed-Solomon 234 ejecuta la decodificación a través del algoritmo de suma producto usando la matriz de comprobación de paridad y reconstruye los datos digitales al estado previo en el que no se ha realizado todavía la codificación. La unidad de decodificación de SPA y Reed-Solomon 234 transmite los datos digitales decodificados hacia el exterior del decodificador 230. 30
Tal como se ha descrito anteriormente, el sistema de corrección de errores mostrado en la Fig. 25 puede realizar de forma sencilla una decodificación de alto rendimiento y ejecutar las comunicaciones de la forma más precisa nunca lograda. Además, puesto que el decodificador 230 expande cada elemento y columna de la matriz de comprobación de paridad antes de reducir la densidad de la matriz de comprobación de paridad, el coste de 35 operación para la decodificación se puede reducir.
Además, en la forma de realización descrita anteriormente, el sistema de corrección de errores se usa para decodificar el código de Reed-Solomon. No obstante, el sistema de corrección de errores puede decodificar códigos BCH, por ejemplo, sin limitarse a la forma de realización descrita anteriormente. 40
La Fig. 26 es un diagrama de bloques que muestra la configuración de otro sistema ejemplificativo de corrección de errores que usa un código de Reed-Solomon según la presente invención. El sistema de corrección de errores mostrado en la Fig. 26 es un sistema usado para el sistema de comunicaciones digitales tal como, por ejemplo, la TV digital. Las partes iguales que las mostradas en la Fig. 25 se designan por medio de las mismas 45 referencias numéricas y se omitirá su descripción.
En el sistema de corrección de errores mostrado en la Fig. 26, datos digitales codificados por el codificador 210 en el lado de transmisión se transmiten a un decodificador 240 en el lado de recepción a través de la vía de comunicaciones 221 tal como, por ejemplo, Internet. 50
El decodificador 240 incluye una unidad de comunicaciones 241 para recibir los datos digitales transmitidos a través de la vía de comunicaciones 221, en forma de una palabra de recepción, una unidad de decodificación convolucional 242 para ejecutar la decodificación convolucional para la palabra de recepción obtenida por la unidad de comunicaciones 241, un desentrelazador 243 para reordenar la palabra de recepción decodificada de forma 55 convolucional, en el orden original, una unidad de decodificación de SPA y Reed-Solomon 244 para ejecutar una decodificación a través del algoritmo de suma producto para los datos digitales reinicializados al orden original, con el fin de reconstruir los datos digitales al estado previo en el que no se ha realizado todavía la codificación de Reed-Solomon, y un entrelazador 245 para reordenar los datos digitales, tal como el caso del entrelazador 212 del codificador 210. 60
Tal como se produce con la unidad de comunicaciones 231 mostrada en la Fig. 25, la unidad de comunicaciones 241 se comunica con la unidad de comunicaciones 214 del codificador 210 a través de la vía de comunicaciones 221 y obtiene los datos digitales transmitidos desde la unidad de comunicaciones 214, en forma de una palabra de recepción, sobre la base de un protocolo predeterminado. La unidad de comunicaciones 241 65 transmite la palabra de transmisión obtenida hacia la unidad de decodificación convolucional 242.
La unidad de decodificación convolucional 242 decodifica la palabra de recepción transmitida desde la unidad de transmisión 241 según un método que se corresponde con el método de codificación ejecutado por la unidad de codificación convolucional 213 del codificador 210. Es decir, la unidad de decodificación convolucional 242 ejecuta una decodificación de decisión flexible para la palabra de recepción usando el algoritmo de BCJR, el SOVA, y otros. A continuación, la unidad de decodificación convolucional 242 transmite la palabra de recepción 5 decodificada por decisión flexible hacia el desentrelazador 243. Además, la palabra de recepción que se había sometido a una decodificación a través del algoritmo de suma producto se reordena nuevamente y se transmite desde el entrelazador 256 hacia la unidad de decodificación convolucional 242. La unidad de decodificación convolucional 242 ejecuta una decodificación de decisión flexible para la palabra de recepción usando el algoritmo de BCJR, el SOVA, y otros, tal como el caso de la palabra de recepción transmitida desde la unidad de 10 comunicaciones 241, y transmite la palabra de recepción hacia el desentrelazador 243.
Tal como el caso del desentrelazador 233 mostrado en la Fig. 25, el desentrelazador 243 realiza un reordenamiento de los datos para la palabra de recepción transmitida desde la unidad de decodificación convolucional al 242 según un método que se corresponde con el entrelazado realizado por el entrelazador 212 del 15 codificador 210, ejecuta un procesado para reinicializar los datos reordenados en el orden original (desentrelazado), y transmite la palabra de recepción reordenada en el orden original hacia la unidad de decodificación de SPA y Reed-Solomon 244. Además, tal como se ha descrito anteriormente, la palabra de recepción transmitida desde la unidad de decodificación convolucional 242 incluye una palabra de recepción transmitida desde el desentrelazador 245 a través de la unidad de decodificación convolucional 242 que es diferente a la palabra de recepción 20 transmitida desde la unidad de comunicaciones 241 a través de la unidad de decodificación convolucional 242.
Básicamente, la unidad de decodificación de SPA y Reed-Solomon 244 está configurada y funciona tal como en el caso del decodificador 150 mostrado en la Fig. 20, igual que la unidad de decodificación de SPA y Reed-Solomon 244 mostrada en la Fig. 25. El diagrama de bloques mostrado en la Fig. 20 y el diagrama de flujo 25 mostrado en la Fig. 21 se pueden usar para la unidad de decodificación de SPA y Reed-Solomon 244, tal como en el caso del decodificador 150.
La unidad de decodificación de SPA y Reed-Solomon 244 expande la matriz de comprobación de paridad en la palabra de recepción obtenida del desentrelazador 243 y reduce la densidad de la matriz de comprobación de 30 paridad. A continuación, la unidad de decodificación de SPA y Reed-Solomon 244 ejecuta una decodificación a través del algoritmo de suma producto usando la matriz de comprobación de paridad y reconstruye los datos digitales en el estado previo en el que no se ha realizado todavía la codificación. La unidad de decodificación de SPA y Reed-Solomon 244 transmite los datos digitales decodificados al exterior del decodificador 240. Además, la unidad de decodificación de SPA y Reed-Solomon 244 transmite los datos digitales decodificados al entrelazador 35 245.
El entrelazador 245 reordena los datos digitales obtenidos en un orden predeterminado, tal como en el caso del entrelazador 212 del codificador 210. El esquema de reordenamiento realizado por el entrelazador 245 es el mismo que en el caso del entrelazador 212. Los datos digitales reordenados según la manera descrita 40 anteriormente se transmiten hacia la unidad de decodificación convolucional 242.
Tal como se ha descrito, el decodificador 240 ejecuta una decodificación por decisión flexible por medio de la unidad de decodificación convolucional 242 y una decodificación a través del algoritmo de suma producto por medio de la unidad de decodificación de SPA y Reed-Solomon 244 para la palabra de recepción obtenida por la 45 unidad de comunicaciones 241, de forma repetitiva a través del desentrelazador 243 y el entrelazador 245, con el fin de reducir la probabilidad de errores de decodificación que se producen durante la decodificación. El número de repeticiones de decodificación se puede predeterminar de antemano. Si no, se puede determinar si las repeticiones se deberían interrumpir o no de acuerdo con una condición predeterminada, tal como por ejemplo el número de posiciones en las que se realiza la corrección de errores. 50
Tal como se ha descrito anteriormente, el decodificador 240 puede ejecutar fácilmente una decodificación de alto rendimiento y el sistema de corrección de errores mostrado en la Fig. 26 puede realizar las comunicaciones de forma más precisa que nunca. Además, puesto que el decodificador 240 expande cada elemento y columna de la matriz de comprobación de paridad antes de reducir la densidad de la matriz de comprobación de paridad, se 55 puede reducir el coste de operación para la decodificación.
Tal como se ha descrito anteriormente, la unidad de decodificación de SPA y Reed-Solomon 244 da salida a los datos digitales decodificados al exterior del decodificador 240 y transmite los datos digitales decodificados hacia el entrelazador 245. No obstante, sin limitarse a la configuración descrita anteriormente, la unidad de 60 decodificación de SPA y Reed-Solomon 244 puede transmitir los datos digitales decodificados únicamente hacia el entrelazador 245 mientras se realiza la decodificación de manera repetitiva. Cuando finalicen las repeticiones de la decodificación, el destino de la salida de los datos digitales se puede conmutar del entrelazador 245 al exterior del decodificador 240, de manera que se dé salida a los datos digitales decodificados.
Tal como se ha descrito anteriormente, el sistema de corrección de errores está configurado para decodificar un código de Reed-Solomon. No obstante, sin limitarse a la configuración descrita anteriormente, el sistema de corrección de errores puede decodificar, por ejemplo, un código BCH.
La Fig. 27 es un diagrama de bloques que ilustra la configuración de un aparato ejemplificativo de 5 grabación-y-reproducción que usa el sistema de corrección de errores para realizar una corrección de errores usando el código de Reed-Solomon de acuerdo con la presente invención. El aparato de grabación-y-reproducción mostrado en la Fig. 27 es un aparato de grabación-y-reproducción sobre soporte de grabación digital, tal como un reproductor de discos DVD, o similares.
10
El aparato de grabación-y-reproducción 250 mostrado en la Fig. 27 codifica los datos digitales transmitidos externamente a través de la unidad de procesado de codificación 260 y graba los datos digitales sobre un soporte de grabación 272 en una unidad de grabación-y-reproducción 270. Además, el aparato de grabación-y-reproducción 250 reproduce los datos digitales grabados sobre el soporte de grabación 272 en la unidad de grabación-y-reproducción 270, obtiene los datos digitales originales ejecutando una decodificación en una unidad de procesado 15 de decodificación 280, y da salida externamente a los datos.
La unidad de procesado de codificación 260 incluye de una primera a una n-ésima unidades de codificación de Reed-Solomon 261-1 a 261-n para ejecutar una codificación de Reed-Solomon para los datos digitales, en donde la codificación de Reed-Solomon se refiere a grados que son diferentes entre sí. 20
Los datos digitales transmitidos desde el exterior de la unidad de procesado de codificación 260 se someten a una codificación de Reed-Solomon referente al grado uno en la primera unidad de codificación de Reed-Solomon 261-1. A continuación, los datos digitales se someten secuencialmente a una codificación de Reed-Solomon referente a cada uno de los grados dos a n en las unidades de codificación de Reed-Solomon segunda a 25 n-ésima 261-2 a 261-n. Cuando la unidad n-ésima de codificación de Reed-Solomon 261-n finaliza la codificación, la unidad de procesado de codificación 260 transmite los datos digitales codificados hacia la unidad de grabación-y-reproducción 270.
La unidad de grabación-y-reproducción 270 incluye una unidad de grabación 271 para grabar los datos 30 transmitidos desde la unidad de procesado de codificación 260 sobre el soporte de grabación 272, el soporte de grabación 272 tal como un disco óptico, por ejemplo, y una unidad de reproducción 273 para reproducir los datos grabados sobre el soporte de grabación 272.
La unidad de grabación 271 de la unidad de grabación-y-reproducción 270 ejecuta una conversión NRZI 35 (Sin Retorno a Cero con Inversión) (codificación NRZI) para los datos digitales transmitidos desde la unidad de codificación, por ejemplo, y graba los datos digitales sobre el soporte de grabación 272. Además, la unidad de reproducción 273 de la unidad de grabación-y-reproducción 270 reproduce los datos digitales grabados sobre el soporte de grabación 272 (los datos digitales sometidos a la codificación de Reed-Solomon), restablece (decodifica) los datos digitales convertidos por NRZI, y transmite los datos digitales hacia una unidad de procesado de 40 descodificación 280.
La unidad de procesado de decodificación 280 es un decodificador que se corresponde con la unidad de procesado de codificación 260 e incluye de una primera a una n-ésima unidades de decodificación de SPA y Reed-Solomon 281-1 a 281-n para realizar la decodificación para los datos digitales a través del algoritmo de suma 45 producto en relación con grados que son diferentes entre sí.
Las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 281 a 281-n se corresponden con las unidades primera a n-ésima de codificación de Reed-Solomon 261-1 a 261-n de la unidad de procesado de codificación 260, respectivamente, y ejecutan la decodificación a través del algoritmo de suma producto para 50 códigos de Reed-Solomon referentes a los grados. Básicamente, cada una desde la primera a la n-ésima unidades de decodificación de SPA y Reed-Solomon 281-1 a 281-n está configurada y funciona tal como en el caso del decodificador 150 mostrado en la Fig. 20. A continuación, tal como en el caso del decodificador 150, el diagrama de bloques mostrado en la Fig. 20 y el diagrama de flujo mostrado en la Fig. 21 se pueden usar para las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 281-1 a 281-n. 55
La unidad de procesado de decodificación 280 expande cada uno de los elementos y columnas de una matriz de comprobación de paridad de los datos digitales transmitidos desde la unidad de reproducción 273 en cada una desde la primera a la n-ésima unidades de decodificación de SPA y Reed-Solomon 281-1 a 281-n, reduce la densidad de la matriz de comprobación de paridad, y ejecuta una decodificación referente a cada grado a través del 60 algoritmo de suma producto. En ese momento, la unidad de procesado de decodificación 280 ejecuta una decodificación que es la inversa de la decodificación realizada por la unidad de procesado de codificación 260, tal como se muestra en la Fig. 27. En primer lugar, la unidad de procesado de decodificación 280 ejecuta una decodificación referente al grado n-ésimo a través del algoritmo de suma producto en la unidad n-ésima de decodificación de SPA y Reed-Solomon 281-n, y posteriormente ejecuta una decodificación a través del algoritmo 65 de suma producto en el orden decreciente de los grados, es decir, desde el grado n-1 al grado n-2 en las unidades de decodificación de SPA y Reed-Solomon que están conectadas en serie entre sí. Finalmente, la unidad de
procesado de decodificación 280 ejecuta una decodificación a través del algoritmo de suma producto referente al grado uno en la primera unidad de decodificación de SPA y Reed-Solomon 281-1. La unidad de procesado de decodificación 280 da salida a los datos digitales originales reconstruidos según la manera descrita anteriormente al exterior del aparato de grabación-y-reproducción 250.
5
Tal como se ha descrito anteriormente, la unidad de procesado de decodificación 280 puede realizar fácilmente la decodificación de alto rendimiento y el aparato de grabación-y-reproducción 250 puede grabar y reproducir datos digitales de forma más precisa que nunca. Además, puesto que la unidad de procesado de decodificación 280 expande cada uno de los elementos y columnas de la matriz de comprobación de paridad antes reducir la densidad de la matriz de comprobación de paridad, se puede reducir el coste de la operación para la 10 decodificación.
Tal como se ha descrito anteriormente, el aparato de grabación-y-reproducción 250 está configurado para decodificar un código de Reed-Solomon. No obstante, sin limitarse a la configuración descrita anteriormente, el aparato de grabación-y-reproducción 250 puede configurarse para decodificar, por ejemplo, un código BCH. 15
La forma de realización descrita anteriormente ilustra el aparato de grabación-y-reproducción para grabar y reproducir datos digitales. No obstante, la función de grabación para grabar los datos digitales sobre el soporte de grabación y la función de reproducción para reproducir los datos digitales grabados sobre el soporte de grabación del aparato de grabación-y-reproducción 250 se pueden proporcionar en unidades separadas entre sí. 20
La Fig. 28 es un diagrama de bloques que muestra la configuración de un aparato ejemplificativo de grabación que tiene la misma función de grabación que la del aparato de grabación-y-reproducción 250 mostrado en la Fig. 27. Las partes iguales que las mostradas en la Fig. 27 se designan mediante las mismas referencias numéricas y se omite su descripción. 25
Un aparato de grabación 300 mostrado en la Fig. 28 incluye la unidad de procesado de codificación 260 que incluye los codificadores de Reed-Solomon primero a n-ésimo 261-1 a 261-n y una unidad de procesado de grabación 310 que incluye la unidad de grabación 271 y el soporte de grabación 272. En primer lugar, datos digitales transmitidos desde el exterior de la unidad de procesado de codificación 260 del aparato de grabación 300 30 se someten a una codificación de Reed-Solomon referente al grado uno en la primera unidad de codificación de Reed-Solomon 261-1. A continuación, los datos digitales sometidos a la codificación referente al grado uno se transmiten hacia las unidades segunda a n-ésima de codificación de Reed-Solomon 261-2 a 261-n de forma secuencial y se someten a una codificación de Reed-Solomon referente a los grados dos a n en las unidades. Cuando la unidad n-ésima de codificación de Reed-Solomon 261-n finaliza la codificación, la unidad de procesado 35 de codificación 260 transmite los datos digitales codificados hacia la unidad de procesado de grabación 310.
La unidad de procesado de grabación 310 incluye la unidad de grabación 271 para grabar los datos transmitidos desde la unidad de procesado de codificación 260 sobre el soporte de grabación 272, y el soporte de grabación 272 tal como un disco óptico, por ejemplo. La unidad de grabación 271 de la unidad de procesado de 40 grabación 310 ejecuta una conversión NRZI (codificación NRZI) para los datos digitales transmitidos desde la unidad de procesado de codificación 260, por ejemplo, y graba los datos digitales en el soporte de grabación 272.
Es decir, tal como en el caso del aparato de grabación-y-reproducción 250 mostrado en la Fig. 27, el aparato de grabación 300 ejecuta una codificación de Reed-Solomon para los datos digitales en la unidad de 45 procesado de codificación 260 y graba los datos digitales codificados por Reed-Solomon en el soporte de grabación 272 bajo el control de la unidad de grabación 271 de la unidad de procesado de grabación 310.
La Fig. 29 muestra un aparato de grabación correspondiente al aparato de grabación 300 descrito anteriormente. Las partes iguales que las mostradas en la Fig. 27 se designan mediante las mismas referencias 50 numéricas y se omite su descripción.
Un aparato de reproducción 350 mostrado en la Fig. 29 es un aparato de reproducción que se corresponde con el aparato de grabación 300 mostrado en la Fig. 28, e incluye la unidad de procesado de decodificación 280 que incluye las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 281-1 a 281-n y una unidad 55 de procesado de decodificación 350 que incluye el soporte de grabación 272 y la unidad de reproducción 273. La unidad de reproducción 273 del aparato de reproducción 350 reproduce los datos digitales grabados en el soporte de grabación 272 (los datos digitales sometidos a la codificación de Reed-Solomon), restablece (decodifica) los datos digitales convertidos por NRZI, y transmite los datos digitales hacia la unidad de procesado de decodificación 280. 60
En las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 281-1 a 281-n, la unidad de procesado de decodificación 280 expande cada uno de los elementos y columnas de una matriz de comprobación de paridad de los datos digitales transmitidos desde la unidad de reproducción 273, reduce la densidad de la matriz de comprobación de paridad, y ejecuta una decodificación a través del algoritmo de suma producto referente a cada 65 grado. En ese momento, la unidad de procesado de decodificación 280 ejecuta una decodificación que es la inversa de la decodificación realizada por la unidad de procesado de codificación 260, según se muestra en la Fig. 29. En
primer lugar, la unidad de procesado de decodificación 280 ejecuta una decodificación a través del algoritmo de suma producto referente al grado n-ésimo en la unidad n-ésima de decodificación de SPA y Reed-Solomon 281-n, y subsiguientemente ejecuta una decodificación a través del algoritmo de suma producto en el orden decreciente de los grados, es decir, del grado n-1 al grado n-2 en las unidades de decodificación de SPA y Reed-Solomon que están conectadas en serie entre sí. Finalmente, la unidad de procesado de decodificación 280 ejecuta una 5 decodificación a través del algoritmo de suma producto referente al primer grado en la primera unidad de decodificación de SPA y Reed-Solomon 281-1. La unidad de procesado de decodificación 280 transmite los datos digitales originales reconstruidos según la manera descrita anteriormente al exterior del aparato de reproducción 350.
10
Tal como se ha descrito anteriormente, la unidad de procesado de decodificación 280 puede ejecutar de manera sencilla la decodificación de alto rendimiento y el aparato de reproducción 350 puede reproducir datos digitales de forma más precisa que nunca. Además, puesto que la unidad de procesado de decodificación 280 expande cada uno de los elementos y columnas de la matriz de comprobación de paridad antes de reducir la densidad de la matriz de comprobación de paridad, se puede reducir el coste de la operación para la decodificación. 15
Tal como se ha descrito anteriormente, el aparato de grabación-y-reproducción 300 está configurado para decodificar un código de Reed-Solomon. No obstante, sin limitarse a la configuración descrita anteriormente, el aparato de grabación-y-reproducción 300 se puede configurar para decodificar, por ejemplo, un código BCH.
20
La Fig. 30 es un diagrama de bloques que ilustra la configuración de un aparato ejemplificativo de grabación-y-reproducción que usa el sistema de corrección de errores para ejecutar una corrección de errores usando códigos de Reed-Solomon según la presente invención. Un aparato de grabación-y-reproducción 400 mostrado en la Fig. 30 es un aparato de grabación-y-reproducción sobre soporte de grabación digital, tal como, por ejemplo, un grabador de discos DVD o similares. Las partes iguales que las mostradas en la Fig. 27 se designan 25 mediante referencias numéricas iguales y se omite su descripción.
El aparato de grabación-y-reproducción 400 mostrado en la Fig. 30 codifica los datos digitales transmitidos externamente, a través de la unidad de procesado de codificación 260, y graba los datos digitales sobre el soporte de grabación 272 en la unidad de grabación-y-reproducción 270. Además, el aparato de grabación-y-reproducción 30 400 reproduce los datos digitales grabados sobre el soporte de grabación 272 en la unidad de grabación-y-reproducción 270, obtiene los datos digitales originales ejecutando una decodificación en una unidad de procesado de decodificación 410, y da salida externamente a los datos.
La unidad de procesado de decodificación 410 es un decodificador que se corresponde con la unidad de 35 procesado de codificación 260 e incluye n unidades de decodificación conectadas en serie, es decir, unidades primera a n-ésima de decodificación 420-1 a 420-m. Cada una de las unidades está configurada y ejecuta una decodificación tal como el caso de la unidad de procesado de decodificación 280 mostrada en la Fig. 27.
Tal como en el caso del procesado de decodificación 280 mostrado en la Fig. 27, la primera unidad de 40 decodificación 420-1 incluye n unidades de decodificación conectadas en serie, es decir, unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 421-1-1 a 421-1-n que se corresponden con las unidades primera a n-ésima de codificación de Reed-Solomon 261-1 a 261-n de la unidad de procesado de codificación 260 y que ejecutan una decodificación a través del algoritmo de suma producto para códigos Reed-Solomon en relación con los grados. Básicamente, cada una de las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 45 421-1-1 a 421-1-n está configurada y funciona tal como el caso del decodificador 150 mostrado en la Fig. 20. Por lo tanto, el diagrama de bloques mostrado en la Fig. 20 y el diagrama de flujo mostrado en la Fig. 21 se pueden usar para cada una de las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 421-1-1 a 421-1-n, tal como en el caso del decodificador 150.
50
Cada una de las unidades segunda a m-ésima de decodificación 420-2 a 420-m está configurada y funciona tal como en el caso de la primera unidad de decodificación 420-1. Por ejemplo, la segunda unidad de decodificación 420-2 incluye n unidades de decodificación conectadas en serie, es decir, unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 421-2-1 a 421-2-n, y la unidad m-ésima de decodificación 420-m incluye n unidades de decodificación conectadas en serie, es decir, unidades primera a n-ésima de decodificación 55 de SPA y Reed-Solomon 421-m-1 a 421-m-n. Además, la totalidad de las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon que forman las unidades segunda a m-ésima de decodificación 420-2 a 420-m descritas anteriormente tienen básicamente las mismas configuraciones y funcionan de la misma manera que en el caso del decodificador 150 mostrado en la Fig. 20. Por lo tanto, el diagrama de bloques mostrado en la Fig. 20 y el diagrama de flujo mostrado en la Fig. 21 se pueden usar para cada una de las unidades primera a n-60 ésima de decodificación de SPA y Reed-Solomon, tal como en el caso del decodificador 150.
En primer lugar, la unidad de procesado de decodificación 410 expande cada uno de los elementos y columnas de una matriz de comprobación de paridad de los datos digitales transmitidos desde la unidad de reproducción 273, reduce la densidad de la matriz de comprobación de paridad, y ejecuta una decodificación a 65 través del algoritmo de suma producto en relación con cada grado en las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 421-1-1 a 421-1-n de la primera unidad de decodificación 420-1.
En ese momento, la primera unidad de decodificación 420-1 ejecuta una decodificación que es la inversa de la decodificación ejecutada por la unidad de procesado de codificación 260. En primer lugar, la primera unidad de decodificación 420-1 ejecuta una decodificación a través del algoritmo de suma producto referente al grado n-ésimo en la unidad n-ésima de decodificación de SPA y Reed-Solomon 421-1-n, y subsiguientemente ejecuta una 5 decodificación a través del algoritmo de suma producto en el orden decreciente de las dimensiones, es decir, del grado n-1 al grado n-2 en las unidades de decodificación de SPA y Reed-Solomon que están conectadas en serie. Finalmente, la primera unidad de decodificación 420-1 ejecuta una decodificación a través del algoritmo de suma producto referente al primer grado en la primera unidad de decodificación de SPA y Reed-Solomon 421-1-1.
10
Cuando finaliza la decodificación, la primera unidad de decodificación 420-1 transmite los datos digitales decodificados hacia la segunda unidad de decodificación 420-2. La segunda unidad de decodificación 420-2 ejecuta una decodificación a través del algoritmo de suma producto en el orden decreciente de los grados, de uno en uno, usando las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 421-2-1 a 421-2-n, tal como en el caso de la primera unidad de decodificación 420-1, y transmite los datos digitales decodificados a la siguiente 15 unidad de decodificación. De este modo, la decodificación se ejecuta secuencialmente para la unidad m-ésima de decodificación 420-m. Cuando finaliza la decodificación en la unidad m-ésima de decodificación 420-m, la unidad de procesado de decodificación 410 da salida a los datos digitales decodificados al exterior del aparato de grabación-y-reproducción 400.
20
Según la configuración descrita anteriormente, la unidad de procesado de decodificación 410 puede ejecutar fácilmente una decodificación de alto rendimiento, y el aparato de grabación-y-reproducción 400 puede grabar y reproducir datos digitales de forma más precisa que nunca. Además, debido a que la unidad de procesado de decodificación 410 expande cada uno de los elementos y columnas de la matriz de comprobación de paridad antes de reducir la densidad de la matriz de comprobación de paridad, se puede reducir el coste de la operación 25 para la decodificación.
En la configuración descrita anteriormente, el aparato de grabación-y-reproducción 400 está configurado para decodificar un código de Reed-Solomon. No obstante, sin limitarse a la configuración descrita anteriormente, el aparato de grabación-y-reproducción 400 se puede configurar para decodificar, por ejemplo, un código BCH. 30
La forma de realización descrita anteriormente ilustra el aparato de grabación-y-reproducción para grabar y reproducir datos digitales. No obstante, la función de grabación para grabar los datos digitales en el soporte de grabación y la función de reproducción para reproducir los datos digitales grabados sobre el soporte de grabación del aparato de grabación-y-reproducción 400 se pueden proporcionar en unidades independientes entre sí. En ese 35 caso, un dispositivo de grabación que tiene la misma función de grabación que la del aparato de grabación-y-reproducción 400 mostrado en la Fig. 30 se configura y funciona tal como en el caso del aparato de grabación 300 mostrado en la Fig. 28. Por lo tanto, para ello puede usarse el diagrama de bloques de la Fig. 28, y se omite su descripción.
40
La Fig. 31 muestra un dispositivo de reproducción que se corresponde con el aparato de grabación 300 que es el aparato de grabación que tiene la misma función de grabación que la del aparato de grabación-y-reproducción 400 mostrado en la Fig. 30. Las partes iguales que las mostradas en la Fig. 30 se designan mediante las mismas referencias numéricas y se omite su descripción.
45
Un dispositivo de reproducción 450 mostrado en la Fig. 31 es el dispositivo de reproducción correspondiente al aparato de grabación 300 mostrado en la Fig. 28, y tiene la unidad de procesado de decodificación 410 que incluye las unidades primera a m-ésima de decodificación 420-1 a 420-m y una unidad de procesado de reproducción 460 que incluye el soporte de grabación 272 y la unidad de reproducción 273. Además, la unidad de reproducción 273 del dispositivo de reproducción 450 reproduce los datos digitales grabados sobre el 50 soporte de grabación 272 (los datos digitales sometidos a la codificación de Reed-Solomon), restablece (decodifica) los datos digitales convertidos por NRZI, y transmite los datos digitales a la unidad de procesado de decodificación 410.
En primer lugar, la unidad de procesado de decodificación 410 expande cada uno de los elementos y 55 columnas de la matriz de comprobación de paridad de los datos digitales transmitidos desde la unidad de reproducción 273, reduce la densidad de la matriz de comprobación de paridad, y ejecuta una decodificación a través del algoritmo de suma producto para cada grado en la primera unidad de decodificación 420-1. Subsiguientemente, la unidad de procesado de decodificación 410 transmite los datos digitales a las segundas unidades de decodificación 420-2 a 420-m conectadas en serie de forma secuencial y ejecuta una decodificación a 60 través del algoritmo de suma producto en las unidades. Cuando ha finalizado la decodificación por parte de la unidad m-ésima de decodificación 420-m, la unidad de procesado de decodificación 410 da salida a los datos digitales decodificados hacia el exterior del aparato de grabación-y-reproducción 400.
Según la configuración descrita anteriormente, la unidad de procesado de decodificación 410 puede 65 ejecutar fácilmente una decodificación de alto rendimiento y el dispositivo de reproducción 450 puede reproducir datos digitales de forma más precisa que nunca. Además, puesto que la unidad de procesado de decodificación
410 expande cada uno de los elementos y columnas de la matriz de comprobación de paridad antes de reducir la densidad de la matriz de comprobación de paridad, se puede reducir el coste de la operación para la decodificación.
En las configuraciones descritas anteriormente, la presente invención se usa para decodificar un código BCH o un código de Reed-Solomon. No obstante, la presente invención se puede usar para decodificar cualquier 5 código sin limitarse a las configuraciones descritas anteriormente, siempre que el código sea un código lineal ampliamente usado.
En las configuraciones descritas anteriormente, el dispositivo de reproducción 450 está configurado para decodificar un código de Reed-Solomon. No obstante, sin limitarse a las configuraciones descritas anteriormente, el 10 aparato de reproducción 400 se puede configurar para decodificar, por ejemplo un código BCH.
Además, según las configuraciones descritas anteriormente, por ejemplo, los decodificadores y las unidades de decodificación que usa la presente invención, tales como el decodificador 100 mostrado en la Fig. 12, el decodificador 150 mostrado en la Fig. 20, la unidad de decodificación de SPA y Reed-Solomon 234 mostrado en 15 la Fig. 25, la unidad de decodificación de SPA y Reed-Solomon 244 mostrada en la Fig. 26, las unidades primera a n-ésima de decodificación de SPA y Reed-Solomon 281-1 a 281-n mostradas en la Fig. 27, y las unidades primera a m-ésima de decodificación 420-1 a 420-m mostradas en la Fig. 30 reducen la densidad de una matriz de comprobación de paridad y decodifican un código lineal usando la matriz de comprobación de baja densidad, como método para decodificar un código lineal corriente. No obstante, sin limitarse al método descrito anteriormente, se 20 puede disponer que la densidad de la matriz de comprobación se reduzca de antemano en otros dispositivos o, por ejemplo, otras unidades de procesado. En ese caso, el dispositivo de decodificación (o la unidad de decodificación) decodifica el código lineal transmitido desde el codificador o similares usando la matriz de comprobación con la densidad reducida. Es decir, la densidad de una matriz de comprobación se reduce de antemano, por ejemplo, fuera del decodificador 230 mostrado en la Fig. 25, el decodificador 240 mostrado en la Fig. 26, el aparato de 25 grabación-y-reproducción 250 mostrado en la Fig. 27, el aparato de reproducción 350 mostrado en la Fig. 29, el aparato de grabación-y-reproducción 400 mostrado en la Fig. 30, y el dispositivo de reproducción 450 mostrado en la Fig. 31. Además, cada unidad puede decodificar un código lineal transmitido, usando la matriz de comprobación con la densidad reducida.
30
Las series descritas anteriormente de procedimientos de procesado se pueden ejecutar o bien por hardware o bien por software. Cuando los procedimientos se realizan mediante software, el aparato descrito anteriormente de procesado de imágenes se constituye en forma de un ordenador personal, por ejemplo, mostrado en la Fig. 32.
35
En la Fig. 32, una CPU (Unidad de Procesado Central) 501 de un ordenador personal 500 realiza varios tipos de procesado según un programa almacenado en la ROM (Memoria de Solo Lectura) 502, o un programa conducido desde una unidad de almacenamiento 513 a una RAM (Memoria de Acceso Aleatorio) 503. La RAM 503 almacena además datos necesarios para que la CPU 501 ejecute, según se requiera, los diversos tipos de procesado. 40
La CPU 501, la ROM 502, y la RAM 503 están conectadas entre sí a través de un bus 504. Una interfaz de entrada-y-salida 510 está conectada también al bus 504.
Una unidad de entrada 511 que incluye un teclado, un ratón, y otros, una pantalla que incluye un CRT 45 (Tubo de Rayos Catódicos), una LCD (Pantalla de Cristal Líquido), o similares, una unidad de salida 512 que incluye un altavoz o similares, una unidad de almacenamiento 513 que incluye un disco duro o similares, y una unidad de comunicaciones 514 que incluye un módem o similares, están conectadas a la interfaz de entrada-y-salida 510. La unidad de comunicaciones 514 ejecuta las comunicaciones a través de redes, incluyendo Internet.
50
Además, una unidad controladora 515 está conectada a la interfaz de entrada-y-salida 510, si fuera necesario, y un soporte extraíble 921 que incluye un disco magnético, un disco óptico, un disco magneto-óptico, una memoria de semiconductores, y otros, está montado en la misma, según se requiera, y un programa de ordenador leído de este último se instala en la unidad de almacenamiento 513, según se requiera.
55
Cuando la serie de procedimientos de procesado se ejecutan a través del software, un programa predeterminado que constituye el software se instala en la unidad mencionada, a través de una red o soporte de grabación predeterminados.
El soporte de grabación se distribuye para proporcionar el programa a un usuario, aparte del sistema, y 60 está formado no solamente por el soporte extraíble 521 que almacena el programa, tal como el disco magnético (incluyendo un disco flexible), el disco óptico (incluyendo un CD-ROM (Disco Compacto-Memoria de Solo Lectura) y un DVD (Disco Versátil Digital)), el disco magneto-óptico (incluyendo un MD (Mini-Disco)), la memoria de semiconductores, y otros, según se muestra en la Fig. 32, sino también por la ROM 502 que almacena el programa, el disco duro incluido en la unidad de almacenamiento 513, y otros, que se montan en el aparato de antemano y se 65 proporcionan al usuario.
Además, en esta memoria descriptiva, las etapas que describen el programa almacenado en el soporte de grabación incluyen no solamente procedimientos de procesado ejecutados sobre la base de una sucesión temporal en el orden descrito anteriormente, sino también procedimientos de procesado que no se ejecutan necesariamente sobre la base de una sucesión temporal sino que se pueden ejecutar de manera paralela o individual.
5
Además, en la presente memoria, el término sistema indica el aparato completo, incluyendo la pluralidad de unidades.
APLICABILIDAD INDUSTRIAL
10
Tal como se ha descrito, la presente invención permite la decodificación de un código lineal corriente. Particularmente, cuando se use un algoritmo de suma producto, como método para decodificar el código lineal corriente, se puede ejecutar fácilmente una decodificación de alto rendimiento.

Claims (19)

  1. REIVINDICACIONES
    1. Método para decodificar un código lineal sobre un anillo R, incluyendo el método:
    obtener una palabra de recepción;
    5
    una etapa de procesado de baja densidad para reducir la densidad de elementos cuyo valor es uno de tal manera que el número de elementos que tienen el valor de uno es menor que un número predeterminado, para una primera matriz de comprobación del código lineal, incluyéndose dicha primera matriz de comprobación en la palabra de recepción; y
    10
    una etapa de decodificación para decodificar la palabra de recepción a través de un algoritmo de suma producto usando una matriz de comprobación nueva cuya densidad se ha reducido a través de la etapa de procesado de baja densidad;
    en el que la etapa de procesado de baja densidad incluye: 15
    fijar una variable n a un valor inicial, funcionando n como criterio para extracción de filas;
    una etapa de cálculo de combinación lineal para calcular todas las combinaciones lineales de filas de la primera matriz de comprobación; 20
    una etapa de generación de matrices de comprobación para extraer un subconjunto de vectores de peso inferior con el fin de formar un espacio complementario de entre un conjunto de vectores obtenido mediante la combinación lineal calculada a través de la etapa de cálculo de combinación lineal y generar la matriz de comprobación nueva incluyendo todos los vectores del subconjunto de vectores, como elementos 25 de fila, comprendiendo dicha extracción extraer, del conjunto de vectores formado mediante combinación lineal, cualquier combinación lineal que tiene un peso menor que o igual a n;
    actualizar el valor de n sumando 1; y
    30
    una etapa de determinación para determinar si el rango de la primera matriz de comprobación concuerda o no con el rango de la matriz de comprobación nueva, y, en caso negativo, volver a y repetir la etapa de generación de matrices de comprobación con el valor actualizado de n;
    y en el que la etapa de obtención, la etapa de procesado de baja densidad y la etapa de decodificación se 35 realizan para cada palabra de recepción.
  2. 2. Método de decodificación según la reivindicación 1, en el que el anillo es un campo finito que incluye potencias de números primos, como elementos.
    40
  3. 3. Método de decodificación según la reivindicación 2, en el que el código lineal incluye un código BCH, o un código de Reed-Solomon sobre el campo finito.
  4. 4. Método de decodificación según la reivindicación 1, en el que la etapa de procesado de baja densidad incluye además: 45
    una etapa de expansión para expandir la primera matriz de comprobación sobre el campo finito en un subcampo predeterminado del campo finito en un grado predeterminado,
    en el que la etapa de cálculo de combinación lineal se proporciona para calcular la combinación lineal de 50 las filas de la matriz de comprobación expandida a través de la etapa de expansión.
  5. 5. Decodificador (100) para un código lineal sobre un anillo R, incluyendo el decodificador:
    unos medios para obtener una palabra de recepción; 55
    unos medios de procesado de baja densidad (110) que ejecutan un procesado de baja densidad para reducir la densidad de elementos cuyo valor es uno de tal manera que el número de elementos que tienen el valor de uno es menor que un número predeterminado, para una primera matriz de comprobación del código lineal, incluyéndose dicha primera matriz de comprobación en la palabra de recepción; y 60
    unos medios de decodificación (120) para decodificar la palabra de recepción a través de un algoritmo de suma producto usando una matriz de comprobación nueva cuya densidad se ha reducido a través de los medios de procesado de baja densidad;
    65
    en el que los medios de procesado de baja densidad (111) incluyen:
    unos medios para fijar una variable n a un valor inicial, funcionando n como criterio para extracción de filas;
    unos medios de cálculo de combinación lineal para calcular todas las combinaciones lineales de filas de la primera matriz de comprobación; y 5
    unos medios de generación de matrices de comprobación (112) para extraer un subconjunto de vectores de peso inferior con el fin de formar un espacio complementario de entre un conjunto de vectores obtenido mediante la combinación lineal calculada a través de los medios de cálculo de combinación lineal y generar la matriz de comprobación nueva incluyendo todos los vectores del subconjunto de vectores, como 10 elementos de fila, comprendiendo dicha extracción extraer, del conjunto de vectores formado mediante combinación lineal, cualquier combinación lineal que tiene un peso menor que o igual a n;
    unos medios para actualizar el valor de n sumando 1; y
    15
    unos medios de determinación para determinar si el rango de la primera matriz de comprobación concuerda o no con el rango de la matriz de comprobación nueva, y, en caso negativo, para volver a los medios de generación de matrices de comprobación con el valor actualizado de n;
    y en el que la obtención, el procesado de baja densidad y la decodificación se realizan para cada palabra 20 de recepción.
  6. 6. Decodificador según la reivindicación 5, en el que el anillo es un campo finito que incluye potencias de números primos, como elementos.
    25
  7. 7. Decodificador según la reivindicación 6, en el que el código lineal incluye un código BCH, o un código de Reed-Solomon sobre el campo finito.
  8. 8. Decodificador según la reivindicación 5, en el que los medios de procesado de baja densidad incluyen además unos medios de expansión (161) para expandir la matriz de comprobación sobre el campo finito en un 30 subcampo predeterminado del campo finito en un grado predeterminado,
    en el que los medios de cálculo de combinación lineal calculan la combinación lineal de filas de la primera matriz de comprobación expandida a través de los medios de expansión.
    35
  9. 9. Decodificador según la reivindicación 5, que incluye además unos medios de decodificación por decisión flexible para ejecutar una decodificación, por decisión flexible, de datos que han sido sometidos a una codificación de Reed-Solomon seguida por una codificación convolucional y una decodificación convolucional
    en el que los medios de procesado de baja densidad reducen la densidad de los elementos cuyo valor es 40 uno para la primera matriz de comprobación del código lineal con el fin de generar la matriz de comprobación nueva que se usa para la decodificación por decisión flexible por parte de los medios de decodificación por decisión flexible.
  10. 10. Decodificador según la reivindicación 8, en el que la decodificación por decisión flexible por parte de 45 los medios de decodificación por decisión flexible, el procesado de baja densidad por parte de los medios de procesado de baja densidad y la decodificación por parte de los medios de decodificación se realizan de manera repetitiva.
  11. 11. Unidad de almacenamiento que incluye un programa para su carga en un ordenador con el fin de 50 decodificar un código lineal sobre un anillo R, provocando el programa que el ordenador ejecute un procesado de acuerdo con el método según cualquiera de las reivindicaciones 1 a 4.
  12. 12. Aparato de grabación-y-reproducción (270) para grabar datos en un soporte de grabación y reproducir los datos grabados en el soporte de grabación, incluyendo el aparato de grabación-y-reproducción: 55
    unos medios de grabación (271) para grabar datos codificados usando un código lineal sobre un anillo R sobre el soporte de grabación (272);
    unos medios de reproducción (273) para reproducir los datos grabados por los medios de grabación; y 60
    un decodificador según cualquiera de las reivindicaciones 5 a 10.
  13. 13. Aparato de grabación-y-reproducción según la reivindicación 12, en el que los datos están codificados usando N unidades de codificación de Reed-Solomon en secuencia, y en el que dicho decodificador comprende N 65 unidades de decodificación de Reed-Solomon en secuencia, comprendiendo cada unidad de decodificación el decodificador según la reivindicación 8.
  14. 14. Aparato de grabación-y-reproducción según la reivindicación 12, en el que el procesado de baja densidad por parte de los medios de procesado de baja densidad y la decodificación por parte de los medios de decodificación se realizan de manera repetitiva.
  15. 15. Método de grabación-y-reproducción para un aparato de grabación-y-reproducción para grabar datos 5 sobre un soporte de grabación y reproducir los datos grabados sobre el soporte de grabación, estando caracterizado el método de grabación-y-reproducción porque incluye:
    una etapa de control de grabación para codificar datos usando un código lineal sobre un anillo R que graba los datos sobre el soporte de grabación; 10
    una etapa de control de reproducción para reproducir los datos grabados bajo el control de la etapa de control de grabación;
    y el método de decodificación según cualquiera de las reivindicaciones 1 a 4, en el que la etapa de 15 procesado de baja densidad se realiza para la primera matriz de comprobación del código lineal.
  16. 16. Aparato de reproducción (360) para reproducir datos grabados sobre un soporte de grabación, incluyendo el aparato de reproducción:
    20
    unos medios de reproducción (273) para reproducir datos codificados usando un código lineal sobre un anillo R y grabados sobre el soporte de grabación (272); y
    un decodificador según cualquiera de las reivindicaciones 5 a 10.
    25
  17. 17. Aparato de reproducción según la reivindicación 16, en el que los datos están codificados usando N unidades de codificación de Reed-Solomon en secuencia, y en el que dicho decodificador comprende N unidades de decodificación de Reed-Solomon en secuencia, comprendiendo cada unidad de decodificación el decodificador según la reivindicación 8.
    30
  18. 18. Aparato de reproducción según la reivindicación 16, en el que el procesado de baja densidad por parte de los medios de procesado de baja densidad y la decodificación por parte de los medios de decodificación se realizan de manera repetitiva.
  19. 19. Método de reproducción para un aparato de reproducción para reproducir datos grabados sobre un 35 soporte de grabación, incluyendo el método de reproducción:
    una etapa de control de reproducción para controlar la reproducción de datos codificados usando un código lineal sobre un anillo R y grabados sobre el soporte de grabación;
    40
    y el método de decodificación según cualquiera de las reivindicaciones 1 a 4, en el que la etapa de procesado de baja densidad se realiza para la primera matriz de comprobación del código lineal.
ES04735346T 2003-05-30 2004-05-28 Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción. Expired - Lifetime ES2356912T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-153927 2003-05-30
JP2003153927 2003-05-30

Publications (1)

Publication Number Publication Date
ES2356912T3 true ES2356912T3 (es) 2011-04-14

Family

ID=33487304

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04735346T Expired - Lifetime ES2356912T3 (es) 2003-05-30 2004-05-28 Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción.

Country Status (8)

Country Link
US (1) US7607063B2 (es)
EP (1) EP1524771B1 (es)
JP (1) JP4432902B2 (es)
KR (1) KR101143732B1 (es)
CN (1) CN100546204C (es)
DE (1) DE602004030869D1 (es)
ES (1) ES2356912T3 (es)
WO (1) WO2004107585A1 (es)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050044963A (ko) * 2003-11-08 2005-05-16 삼성전자주식회사 q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법
JP4534128B2 (ja) * 2004-03-05 2010-09-01 ソニー株式会社 符号化方法および装置
US7581157B2 (en) 2004-06-24 2009-08-25 Lg Electronics Inc. Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system
WO2006039801A1 (en) 2004-10-12 2006-04-20 Nortel Networks Limited System and method for low density parity check encoding of data
US7752521B2 (en) * 2004-10-12 2010-07-06 Nortel Networks Limited Low density parity check (LDPC) code
WO2006068435A2 (en) 2004-12-22 2006-06-29 Lg Electronics Inc. Apparatus and method for decoding using channel code
US7958424B2 (en) * 2005-06-22 2011-06-07 Trident Microsystems (Far East) Ltd. Multi-channel LDPC decoder architecture
US11327674B2 (en) 2012-06-05 2022-05-10 Pure Storage, Inc. Storage vault tiering and data migration in a distributed storage network
KR101119111B1 (ko) * 2006-05-04 2012-03-16 엘지전자 주식회사 Ldpc 부호를 이용한 데이터 재전송 방법
US7814398B2 (en) 2006-06-09 2010-10-12 Seagate Technology Llc Communication channel with Reed-Solomon encoding and single parity check
WO2008034287A1 (en) 2006-09-18 2008-03-27 Juntan Zhang An interleaving scheme for an ldpc coded 32apsk system
US8230299B2 (en) 2006-09-18 2012-07-24 Availink, Inc. Interleaving scheme for an LDPC coded QPSK/8PSK system
US8369448B2 (en) * 2006-09-18 2013-02-05 Availink, Inc. Bit mapping scheme for an LDPC coded 32APSK system
WO2008034285A1 (en) 2006-09-18 2008-03-27 Fengwen Sun A family of ldpc codes for video broadcasting applications
US20110173509A1 (en) * 2006-09-18 2011-07-14 Availink, Inc. Bit mapping scheme for an ldpc coded 16apsk system
US7900126B2 (en) 2006-09-28 2011-03-01 Via Telecom, Inc. Systems and methods for reduced complexity LDPC decoding
KR101221911B1 (ko) * 2006-11-17 2013-01-15 엘지전자 주식회사 Ldpc 부호를 이용하여 재전송을 수행하는 방법
JP4858335B2 (ja) * 2007-07-10 2012-01-18 ソニー株式会社 符号化方法および符号化装置
KR101493999B1 (ko) * 2007-09-06 2015-02-17 삼성전자주식회사 선형 부호 생성 장치 및 방법
US8301979B2 (en) * 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
US8135015B2 (en) * 2009-03-27 2012-03-13 Qualcomm Incorporated System and method of transmitting and receiving data frames
US8443255B2 (en) * 2010-08-26 2013-05-14 Qualcomm Incorporated Parity check matrix optimization and selection for iterative decoding
US8756473B1 (en) * 2010-12-23 2014-06-17 Sk Hynix Memory Solutions Inc. Solid state device coding architecture for chipkill and endurance improvement
US8918705B1 (en) 2012-01-11 2014-12-23 Sk Hynix Memory Solutions Inc. Error recovery by modifying soft information
US8739008B2 (en) * 2012-02-22 2014-05-27 Silicon Motion, Inc. Method for determining parity check matrix utilized in flash memory system and related flash memory system thereof
US9613052B2 (en) * 2012-06-05 2017-04-04 International Business Machines Corporation Establishing trust within a cloud computing system
US9183095B1 (en) 2013-06-28 2015-11-10 Sk Hynix Memory Solutions Inc. Recovering from a program failure by combining write data
FR3032571B1 (fr) * 2015-02-11 2017-03-10 Commissariat Energie Atomique Methode de decodage iteratif de sequences lfsr a faible probabilite de fausse alarme
US9973212B2 (en) * 2015-09-08 2018-05-15 Storart Technology Co. Ltd. Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code
CN111988112A (zh) * 2019-05-23 2020-11-24 华为技术有限公司 通信方法和装置
US20220069987A1 (en) * 2020-08-31 2022-03-03 Massachusetts Institute Of Technology Network Coding-Based Post-Quantum Cryptography

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3818442A (en) * 1972-11-08 1974-06-18 Trw Inc Error-correcting decoder for group codes
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US7000167B2 (en) * 2001-08-01 2006-02-14 International Business Machines Corporation Decoding low density parity check codes
JP3833545B2 (ja) * 2002-02-13 2006-10-11 三菱電機株式会社 通信システム、受信機、送信機および通信方法
EP1480346A4 (en) * 2002-02-28 2006-05-10 Mitsubishi Electric Corp METHOD FOR GENERATING LDPC CODE INSPECTION ARRAYS AND DEVICE FOR GENERATING INSPECTION ARRAYS
US7103818B2 (en) 2002-09-30 2006-09-05 Mitsubishi Electric Research Laboratories, Inc Transforming generalized parity check matrices for error-correcting codes
KR20040033554A (ko) * 2002-10-15 2004-04-28 삼성전자주식회사 에러 정정 부호화 장치 및 그 방법

Also Published As

Publication number Publication date
WO2004107585A1 (ja) 2004-12-09
CN1698272A (zh) 2005-11-16
CN100546204C (zh) 2009-09-30
KR20060014020A (ko) 2006-02-14
JP4432902B2 (ja) 2010-03-17
EP1524771A1 (en) 2005-04-20
EP1524771A4 (en) 2007-09-05
DE602004030869D1 (de) 2011-02-17
KR101143732B1 (ko) 2012-05-09
EP1524771B1 (en) 2011-01-05
US7607063B2 (en) 2009-10-20
JPWO2004107585A1 (ja) 2006-07-20
US20060015791A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
ES2356912T3 (es) Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción.
US10511326B2 (en) Systems and methods for decoding error correcting codes
US8566666B2 (en) Min-sum based non-binary LDPC decoder
JP5216593B2 (ja) 多段階誤り訂正方法及び装置
US20210091790A1 (en) Encoding method and device and decoding method and device for structured ldpc
US11115051B2 (en) Systems and methods for decoding error correcting codes
US8352847B2 (en) Matrix vector multiplication for error-correction encoding and the like
US7318186B2 (en) Decoding method, decoding apparatus, and program to decode low density parity check codes
US8572463B2 (en) Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US8205130B2 (en) Decoding apparatus
JP4858335B2 (ja) 符号化方法および符号化装置
JP2008035524A (ja) 反復確率伝搬を使用して記号ブロックを復号化する装置および方法
JP2006157926A (ja) 低密度パリティ検査符号の生成方法及び装置
US10574274B2 (en) Systems and methods for decoding error correcting codes
JP4832447B2 (ja) チャネルコードを用いた復号化装置及び方法
JP2005051469A (ja) 符号化装置および符号化方法、並びにプログラム
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
JP2004088449A (ja) 符号化装置及び符号化方法、並びに復号装置及び復号方法
JP2006100941A (ja) 信号処理装置、低密度パリティ検査符号の符号化方法および復号方法
JP2010028408A (ja) 情報処理装置、情報処理方法、およびプログラム
Pal et al. Error-Control Coding Algorithms and Architecture for Modern Applications Powered by LDPC Codes and Belief Propagation