ES2325138T3 - Procedimiento rapido de codificacion y decodificacion y dispositivos asociados. - Google Patents

Procedimiento rapido de codificacion y decodificacion y dispositivos asociados. Download PDF

Info

Publication number
ES2325138T3
ES2325138T3 ES07718051T ES07718051T ES2325138T3 ES 2325138 T3 ES2325138 T3 ES 2325138T3 ES 07718051 T ES07718051 T ES 07718051T ES 07718051 T ES07718051 T ES 07718051T ES 2325138 T3 ES2325138 T3 ES 2325138T3
Authority
ES
Spain
Prior art keywords
bits
stage
interlacing
coding
parity
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.)
Active
Application number
ES07718051T
Other languages
English (en)
Inventor
Jean-Baptiste Dore
Marie-Helene Hamon
Pierre Penard
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.)
Orange SA
Original Assignee
France Telecom SA
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 France Telecom SA filed Critical France Telecom SA
Application granted granted Critical
Publication of ES2325138T3 publication Critical patent/ES2325138T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2972Serial concatenation using convolutional component 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/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
    • H03M13/1194Repeat-accumulate [RA] 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/27Coding, 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 using interleaving techniques
    • H03M13/2771Internal interleaver for turbo 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/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders
    • 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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Removal Of Specific Substances (AREA)

Abstract

Procedimiento de codificación de una secuencia de bits de entrada (S0) en una secuencia de bits codificados (S), comprendiendo dicho procedimiento: - una primera etapa (E1) de codificación aplicada sobre los bits de la secuencia de bits de entrada (S0), según un primer código; - una etapa de entrelazado (E3) destinada a entrelazar, por medios de entrelazado (33), los bits procedentes de dicho primer código; - una segunda etapa (E4) de codificación llamada de paridad, aplicada sobre los bits procedentes de dichos medios de entrelazado (33), según un segundo código, para generar dicha secuencia de bits codificados (S); caracterizándose dicho procedimiento porque dicha segunda etapa de codificación (E4) de paridad comienza después del entrelazado de un número Delta predeterminado de bits sin esperar al final de la etapa de entrelazado (E3), estando comprendido dicho número Delta predeterminado de bits entre un primer número inferior Delta i de bits dependiente de por lo menos un parámetro de dicha etapa de entrelazado (E3), y un primer número superior Delta s de bits correspondiente al número total de bits que han de ser procesados durante dicha etapa de entrelazado (E3).

Description

Procedimiento rápido de codificación y decodificación y dispositivos asociados.
Campo técnico de la invención
La invención se refiere al campo de las comunicaciones digitales y concierne más particularmente a un procedimiento de codificación y de decodificación a alta velocidad según, por ejemplo, un código de tipo LDPC (Low Density Parity Check), así como dispositivos de codificación y de decodificación asociados.
Antecedentes de la invención
Actualmente, los sistemas de comunicación digital más avanzados estriban en sistemas en los que los datos que se van a transmitir se protegen mediante una codificación de canal de grandes prestaciones y se decodifican de forma iterativa mediante un decodificador de salida ponderada. La codificación de canal o codificación con corrección de errores permite mejorar la calidad de la transmisión, intercalando en el mensaje objeto de la transmisión elementos binarios llamados de redundancia, según una determinada ley.
En el campo de las transmisiones digitales y, más particularmente, cuando el canal de transmisión es de tipo radioeléctrico, la función principal de estos códigos correctores es la de permitir suprimir ambigüedades introducidas en el mensaje transmitido por el canal de transmisión. El decodificador de canal, que conoce la ley de codificación utilizada en la emisión, comprueba si en la recepción se sigue respetando esta ley. Si no es así, éste detecta la presencia de errores de transmisión.
La ganancia de rendimiento que estos códigos aportan se puede asignar a la reducción de consumo de los terminales o al aumento del volumen de información transmitida.
Se han llevado a cabo recientemente numerosos trabajos en el campo de la codificación de canal utilizando códigos correctores de errores llamados códigos LDPC (Low Density Parity Check).
En el ámbito de las instancias de normalización se proponen actualmente estos códigos, por ejemplo en el contexto de la normalización del protocolo de comunicación IEEE 802.11n destinado a las futuras redes de acceso inalámbrico (WLAN) a muy alta velocidad, o también en el contexto de la normalización del protocolo IEEE 802.16e (WiMAX móvil).
El documento US20050216819 describe un procedimiento y un dispositivo de codificación y de decodificación de códigos del tipo de la serie de códigos Turbo. Estos códigos se generan mediante la concatenación en serie de un código externo, de un entrelazado, de un código de paridad y de un código interno.
En el documento titulado "A New Class of Turbo-like Codes with Universally Good Performance and High-Speed Decoding" (IEEE Milcom 2005, octubre de 2005), Keith M. Chugg y col. describen una nueva clase de códigos denominados S-SCP (Systematic and Serial Concatenated Parity) y particularmente los códigos F-LDPC (Flexible LDPC) para los que la matriz de control de paridad H se puede escribir como sigue:
1
donde I es una une matriz identidad, G y S son matrices bidiagonales y V es el producto de tres matrices según el documento de normalización IEEE 802.11-04/0953r4 de K. Chugg y col. (802.11 Task Group N, septiembre de 2004). La forma de esta matriz V presenta una limitación respecto a la velocidad de codificación y de decodificación.
Las figuras 1A y 1B representan respectivamente la estructura de un codificador 10 y de un decodificador 20 según el estado actual de la técnica. De acuerdo con la figura 1A, el codificador 10 comprende un codificador externo 3, un entrelazador 5, un convertidor serie-paralelo 7, un codificador de paridad 9 y un codificador interno 11. El código generado por este codificador 10 resulta de la concatenación en serie de los códigos generados sucesivamente por el codificador externo 3, el codificador de paridad 9 y el codificador interno 11.
Según esta arquitectura, una secuencia de bits de entrada De se codifica primero en su totalidad mediante el codificador externo 3, y después se entrelaza mediante el entrelazador 5 para formar una secuencia de datos entrelazados Di. El convertidor serie-paralelo 7 permite paralelizar la secuencia de datos entrelazados Di. A continuación, el codificador de paridad 9 lleva a cabo un cálculo de paridad realizando la suma módulo 2 de J bits extraídos a la salida del convertidor serie-paralelo 7. A continuación, se codifica la secuencia de datos a la salida del codificador de paridad 9 mediante el codificador interno 11.
\newpage
La figura 1B representa la estructura de un decodificador 20 que comprende un decodificador externo 15, un entrelazador/desentrelazador 17, un decodificador de paridad 19, un decodificador interno 21.
La decodificación que el decodificador 20 pone en práctica se efectúa de forma iterativa sobre datos flexibles. Los datos flexibles que corresponden a la parte sistemática del código son usados por el decodificador externo 15 para obtener una información extrínseca I1 que a continuación se entrelaza mediante el entrelazador 17, para dar una información I2 utilizable por el decodificador de paridad 19 que calcula nuevas informaciones extrínsecas I3. Partiendo de esta información I3 y de los datos flexibles I4 que corresponden a la parte redundante del código, el decodificador interno 21 calcula un mensaje I5 que a continuación decodifica el decodificador de paridad 19, para formar un mensaje I6 que es transmitido al desentrelazador 17. Una vez desentrelazado el mensaje I6 en un mensaje I7 por el desentrelazador 17, se realiza entonces una iteración del procedimiento de codificación.
El gran inconveniente del codificador 10 (respectivamente decodificador 20) es la latencia introducida por su arquitectura de tipo serie, que tiene como efecto el de limitar la velocidad de codificación (respectivamente decodificación).
Las figuras 2A y 2B representan respectivamente la ordenación de las diferentes etapas del procedimiento de codificación y del procedimiento de decodificación efectuados respectivamente por el codificador 10 y el decodificador 20.
En el caso convencional de codificación según códigos concatenados en serie, cada codificador constitutivo del dispositivo de codificación 10, es decir, el codificador externo 3, el codificador de paridad 9 o el codificador interno 11, se activa con la condición de que el codificador que le precede haya llevado a cabo completamente su tarea.
La figura 2A representa de forma muy esquemática la ordenación en el tiempo (en abscisas) de las tareas (en ordenadas) constitutivas del procedimiento de codificación puesto en práctica por el codificador 10, siendo efectuadas sucesivamente estas tareas por el codificador externo 3, el codificador de paridad 9 y el codificador interno 11 de la figura 1A.
Según esta ordenación, el codificador externo 3 lleva a cabo una primera etapa de codificación E10 durante un tiempo T10. Cuando se termina totalmente la etapa E10, el codificador de paridad 9 lleva a cabo una etapa de cálculo E30 durante un tiempo T30. Una vez terminada la etapa E30, ésta viene seguida por una etapa de codificación E50 realizada por el codificador interno 11 durante un tiempo T50. El tiempo necesario para codificar una secuencia de bits a la entrada del codificador 10 es pues igual a la suma T10 + T30 + T50. Así, esta ordenación de las tareas limita la velocidad de codificación del codificador 10.
La figura 2B representa una distribución en el tiempo (en abscisas) de las tareas (en ordenadas) de la decodificación que el decodificador 20 de la figura 1B pone en práctica, con motivo de una iteración de este procedimiento.
De acuerdo con la figura 2B, el decodificador externo 15 lleva a cabo una etapa E70 de decodificación durante un tiempo T70. Una vez terminada la etapa E70, el decodificador de paridad 19 lleva a cabo una etapa de cálculo E90 durante un tiempo T90. Una vez terminada la etapa E70, el decodificador interno 21 lleva a cabo una etapa E110 durante un tiempo T110. A continuación, el decodificador de paridad 19 lleva a cabo una etapa E130 durante el tiempo T130. Así, el tiempo T de una iteración del procedimiento de decodificación es por tanto igual a la suma de los tiempos de cada una de las etapas anteriormente descritas E70, E90, E110, E130, o lo que es lo mismo, el tiempo T = T70 + T90 + T110 + T130.
Los procedimientos de codificación y de decodificación anteriormente descritos se ven limitados desde el punto de vista de las velocidades a causa del tipo de ordenación de las diferentes tareas constitutivas de los procedimientos de codificación y de decodificación.
Además, los recursos físicos ("hardware") del codificador 10 y del decodificador 20 no se usan de forma óptima, en el sentido de que cada función de procesamiento en el seno del codificador 10 y del decodificador 20 no se usa de manera continua en el tiempo.
Objeto y resumen de la invención
La presente invención tiene pues por objetivo principal solventar los inconvenientes precitados, proporcionando un procedimiento de codificación y de decodificación que tiene la propiedad de codificar y de decodificar una secuencia de datos con gran rapidez y sin pérdida significativa de rendimiento respecto a los procedimientos conocidos.
Estos objetivos se logran gracias a un procedimiento de codificación de una secuencia de bits de entrada S0 en una secuencia de bits codificados S, que comprende las siguientes etapas:
- una primera etapa de codificación aplicada sobre los bits de la secuencia de bits de entrada S0, según un primer código;
- una etapa de entrelazado destinada a entrelazar, por medios de entrelazado, los bits procedentes del primer código;
- una segunda etapa de codificación llamada de paridad, aplicada sobre los bits procedentes de los medios de entrelazado, según un segundo código, para generar la secuencia de bits codificados S, de modo que la segunda etapa de codificación de paridad comience después del entrelazado de un número \Delta predeterminado de bits. Este número \Delta predeterminado de bits está comprendido entre un primer número inferior \Deltai de bits dependiente de por lo menos un parámetro de la etapa de entrelazado, y un primer número superior \Deltas de bits correspondiente al número total de bits que han de ser procesados durante la etapa de entrelazado.
Un procedimiento de codificación de este tipo permite empezar la segunda etapa de codificación de paridad sin esperar al final de la etapa de entrelazado, realizándose la segunda etapa de codificación en paralelo con la etapa de entrelazado y con un desplazamiento relativo de de \Delta bits.
Así, este procedimiento permite paralelizar las etapas de codificación de paridad y de entrelazado sin tener que duplicar todas las funciones y las memorias asociadas al procesamiento de las tareas relacionadas con estas etapas, a diferencia del caso de una arquitectura en la que la ordenación de estas tareas es secuencial.
Este procedimiento permite así reducir la complejidad de la puesta en práctica del procedimiento de codificación, con prestaciones superiores o iguales a las de los procedimientos conocidos.
Según otra característica de la invención, la segunda etapa de codificación de paridad comienza después de la codificación de un número predeterminado \Delta' de bits según la primera etapa de codificación. Este número predeterminado \Delta' de bits está comprendido entre un segundo número inferior \Deltai' de bits dependiente de por lo menos un parámetro de la etapa de entrelazado, y un segundo número superior \Deltas' de bits correspondiente al número total de bits que han de ser procesados durante la primera etapa de codificación.
Así, este procedimiento de codificación permite empezar la segunda etapa de codificación de paridad sin esperar al final de la primera etapa de codificación de paridad, realizándose la segunda etapa de codificación en paralelo con la primera etapa de codificación y con un desplazamiento de \Delta' bits.
El desplazamiento entre el inicio de la primera etapa de codificación y el inicio de la etapa de entrelazado se puede regular y corresponde como mínimo a un desplazamiento de 1 bit. (\Delta' - \Delta \geq 1).
Ventajosamente, la etapa de entrelazado se puede realizar conjuntamente con la segunda etapa de codificación de paridad.
Según otra característica de la invención, la etapa de entrelazado incorpora una primera función \pi de entrelazado por bits que asocia con el i^{ésimo} bit procedente del primer código, el \pi(i)^{ésimo} bit de una secuencia de bits entrelazados, de modo que el entrelazado de los k primeros bits proporcione por lo menos los m primeros bits de la secuencia de bits entrelazados.
Así, esta característica permite empezar la segunda etapa de codificación de paridad sin esperar al final de la etapa de entrelazado.
Según otra característica de la invención, la etapa de entrelazado y la segunda etapa de codificación de paridad se llevan a cabo por medio de una matriz V de control de paridad cuasicíclica que comprende una pluralidad de submatrices identidad, con la siguiente forma:
2
\vskip1.000000\baselineskip
tal que para todo i comprendido entre 1 y m_{1} y para todo j comprendido entre 1 y m_{2}, si el coeficiente c(i,j) es estrictamente negativo, entonces la submatriz I[c(i,j)] es una matriz nula; en caso contrario, dicha matriz I[c(i,j)] es una matriz identidad con permutación circular de c(i,j) posiciones.
La forma cuasicíclica de la matriz de control de paridad V permite una paralelización entre la etapa de entrelazado y la segunda etapa de codificación de paridad, que, en este caso, se realizan de forma conjunta.
Según otra características de la invención, la etapa de entrelazado incorpora una segunda función \lambda de entrelazado que permite asociar un primer conjunto de paquetes de m_{1} bits procedentes del primer código con un segundo conjunto de paquetes de J bits de la secuencia de bits entrelazados, de modo que los bits pertenecientes a un mismo paquete de J bits de la secuencia de bits entrelazados provengan de paquetes distintos del primer conjunto de paquetes de m_{1} bits.
Este entrelazado por paquetes permite evitar el acceso a un mismo espacio de memoria en el mismo momento durante la etapa de codificación de paridad. Este tipo de entrelazado permite por tanto aumentar la velocidad de codificación, reduciendo al mínimo la latencia ligada a los conflictos de acceso a la memoria.
Según una particularidad de la invención, para una misma fila de la matriz V de control de paridad, los coeficientes c(i,j) positivos son diferentes.
Con el fin de evitar los conflictos de acceso a memoria, es necesario que varios bits que intervienen en una misma ecuación de paridad contenida en la matriz V no provengan de una misma área de memoria. Esta condición se traduce en la relación matemática siguiente referida a los coeficientes positivos de la matriz V:
100
En otras palabras, esta condición garantiza que dos accesos simultáneos a una misma memoria son imposibles, permitiendo así incrementar la velocidad de codificación, reduciendo la latencia ligada con los conflictos de acceso a la memoria.
Según una particularidad de la invención, dicho por lo menos un parámetro que determina los números de bits \Delta y \Delta' es función de los coeficientes c(i,j) positivos de dicha matriz de control de paridad V.
Según otra característica de la invención, el primer código de la primera etapa de codificación se compone de una primera pluralidad de códigos independientes.
Así, se puede paralelizar el propio primer código, permitiendo así un aumento suplementario de la velocidad de codificación en el contexto de la primera etapa de codificación.
Según otra característica de la invención, el procedimiento de codificación consta de una tercera etapa de codificación, según un tercer código, aplicada sobre bits procedentes de la segunda etapa de codificación de paridad, de modo que la tercera etapa de codificación comienza a partir de la codificación de por lo menos un bit procedente de la segunda etapa de codificación de paridad.
Así, el tercer código de la tercera etapa de codificación se puede elegir de modo que presente propiedades suplementarias respecto al primer código de la primera etapa de codificación, por ejemplo, a fin de incrementar el poder corrector del código formado por la concatenación de los códigos primero, segundo y tercero.
Ventajosamente, el tercer código de la tercera etapa de codificación se compone de una segunda pluralidad de códigos independientes. Así, se puede paralelizar el propio tercer código, permitiendo así un aumento suplementario de la velocidad de codificación en el contexto de la tercera etapa de codificación.
La invención tiene asimismo como propósito un procedimiento de decodificación de una señal de recepción digitalizada que comprende una secuencia de datos formada por una primera parte correspondiente a información que hay que transmitir y por una segunda parte que incorpora datos de redundancia, comprendiendo:
- una primera etapa de decodificación aplicada sobre los datos de la primera parte;
- una etapa de entrelazado, por medios de entrelazado, destinada a entrelazar datos procedentes de la primera etapa de decodificación; y
- una segunda etapa de decodificación llamada de paridad, aplicada sobre datos procedentes de los medios de entrelazado.
Ventajosamente, la segunda etapa de decodificación de paridad comienza después del entrelazado de un número predeterminado \Delta de datos. Este número predeterminado \Delta de datos está comprendido entre un primer número inferior \Deltai de datos dependiente de por lo menos un parámetro de la etapa de entrelazado, y un primer número superior \Deltas de datos correspondiente al número total de datos que han de ser procesados durante la etapa de entrelazado.
Así, este procedimiento permite paralelizar las etapas de decodificación de paridad y de entrelazado sin tener que duplicar todas las funciones y las memorias asociadas al procesamiento de las tareas ligadas con estas etapas.
Según otra característica de la invención, la segunda etapa de decodificación de paridad comienza después de la decodificación de un número predeterminado \Delta' de datos según la primera etapa de decodificación. Este número predeterminado \Delta' de datos está comprendido entre un segundo número inferior \Deltai' de datos dependiente de por lo menos un parámetro de la etapa de entrelazado, y un segundo número superior \Deltas' de datos correspondiente al número total de datos que han de ser procesados durante la primera etapa de decodificación.
\newpage
Según otra característica de la invención, el procedimiento de decodificación consta de una tercera etapa de decodificación a fin de decodificar datos procedentes de la segunda etapa de decodificación de paridad, comenzando la tercera etapa de decodificación a partir de la decodificación de por lo menos un dato procedente de la segunda etapa de decodificación de paridad.
Según otra característica de la invención, la etapa de entrelazado se realiza conjuntamente con la segunda etapa de decodificación de paridad.
Según otra característica de la invención, la etapa de entrelazado y la segunda etapa de decodificación se llevan a cabo por medio de una matriz V de control de paridad cuasicíclica que comprende una pluralidad de submatrices identidad de la siguiente forma:
3
tal que, para todo i comprendido entre 1 y m_{1} y para todo j comprendido entre 1 y m_{2}, si el coeficiente c(i,j) es estrictamente negativo, entonces la submatriz I[c(i,j)] es una matriz nula; en caso contrario, dicha matriz I[c(i,j)] es una matriz identidad con permutación circular de c(i,j) posiciones.
Según otra característica de la invención, para una misma columna de la matriz V de control de paridad, los coeficientes c(i,j) positivos son diferentes.
Con el fin de evitar cualquier conflicto de acceso a la memoria, que originaría latencia y que se traduciría en un descenso de la velocidad de decodificación, es necesario que una variable no intervenga más que una sola vez en un grupo de m_{2} ecuaciones de paridad contenidas en la matriz V, lo que se traduce en los coeficientes positivos de la matriz V por la siguiente relación matemática:
101
Según otra característica de la invención, dicho por lo menos un parámetro que determina los números de datos \Delta y \Delta' es función de los coeficientes c(i,j) positivos de la matriz V de control de paridad.
La invención tiene asimismo como propósito un dispositivo de codificación de una secuencia de bits de entrada S0 en una secuencia de bits S codificados, que comprende:
- primeros medios de codificación destinados a codificar los bits de la secuencia de bits de entrada S0, según un primer código;
- medios de entrelazado destinados a entrelazar bits procedentes de los primeros medios de codificación;
- segundos medios de codificación llamada de paridad, destinados a codificar bits procedentes de los medios de entrelazado, según un segundo código, para generar la secuencia de bits codificados S.
Ventajosamente, estos medios de entrelazado están adaptados de modo que los segundos medios de codificación de paridad comienzan la secuencia de bits codificados S después del entrelazado de un número \Delta predeterminado de bits. Este número \Delta predeterminado de bits está comprendido entre un primer número inferior \Deltai de bits dependiente de por lo menos un parámetro de los medios de entrelazado, y un primer número superior \Deltas de bits correspondiente al número total de bits que los medios de entrelazado tienen que procesar.
El dispositivo de codificación se puede adaptar particularmente para la puesta en práctica del procedimiento de codificación tal como se ha descrito anteriormente.
La invención tiene asimismo como propósito un dispositivo de decodificación de una señal de recepción digitalizada que comprende una secuencia de datos formada por una primera parte D correspondiente a información que hay que transmitir y por una segunda parte C que incorpora datos de redundancia. Este dispositivo comprende:
- primeros medios de decodificación de los datos de la primera parte D;
- medios de entrelazado destinados a entrelazar bits procedentes de los primeros medios de decodificación; y
- segundos medios de decodificación llamada de paridad, destinados a decodificar bits procedentes de los medios de entrelazado.
Los medios de entrelazado están adaptados de modo que los segundos medios de decodificación de paridad comienzan la decodificación de paridad después del entrelazado de un número predeterminado \Delta de datos. Este número predeterminado \Delta de datos está comprendido entre un primer número inferior \Deltai de datos dependiente de por lo menos un parámetro de los medios de entrelazado, y un primer número superior \Deltas de datos correspondiente al número total de datos que los medios de entrelazado tienen que procesar.
El dispositivo de decodificación se puede adaptar particularmente para la puesta en práctica del procedimiento de decodificación tal como se ha descrito anteriormente.
La invención tiene asimismo como propósito un producto de programa de ordenador descargable desde una red de comunicaciones y/o almacenado en un soporte legible por ordenador y/o ejecutable por un microprocesador, que comprende instrucciones de códigos de programa para la ejecución de las etapas del procedimiento de codificación anteriormente descrito, cuando se ejecuta en un ordenador.
La invención tiene asimismo como propósito un producto de programa de ordenador descargable desde una red de comunicaciones y/o almacenado en un soporte legible por ordenador y/o ejecutable por un microprocesador, que comprende instrucciones de códigos de programa para la ejecución de las etapas del procedimiento de decodificación anteriormente descrito, cuando se ejecuta en un ordenador.
Breve descripción de los dibujos
Se desprenderán otras características y ventajas de la presente invención a partir de la descripción que sigue, con referencia a los dibujos que se adjuntan, que ilustran un ejemplo de realización de la misma carente de cualquier limitativo. En las figuras:
- las figuras 1A y 1B ya descritas anteriormente representan respectivamente un codificador y un decodificador del estado de la técnica;
- las figuras 2A y 2B ya descritas anteriormente representan respectivamente la ordenación de las etapas de codificación y de decodificación según el estado de la técnica;
- la figura 3 representa la ordenación de las etapas de codificación según la invención;
- las figuras 4 y 7 representan respectivamente la ordenación de las etapas de codificación y de decodificación según una forma de realización de la presente invención;
- las figuras 5A y 5B representan respectivamente un entrelazado por bits y un entrelazado por paquetes, según la presente invención;
- las figuras 6 y 8 ilustran respectivamente, de forma esquemática, un dispositivo de codificación y un dispositivo de decodificación según la invención; y
- la figura 9 ilustra esquemáticamente un sistema informático que pone en práctica el dispositivo de codificación y/o de decodificación según la invención.
Descripción detallada de formas de realización
La figura 3 ilustra la ordenación en el tiempo (abscisas) de las etapas (ordenadas) de un procedimiento de codificación según la invención, que permite codificar una secuencia de bits de entrada S0 en una secuencia de bits codificados S.
Este procedimiento consta de una primera etapa E1 de codificación, aplicada sobre los bits de la secuencia de bits de entrada S0 según un primer código. Los bits procedentes de este primer código son entrelazados por medios de entrelazado 33 (véase la figura 6), durante una etapa de entrelazado E3.
Los bits procedentes de los medios de entrelazado 33 se codifican según una segunda etapa E4 de codificación llamada de paridad, según un segundo código, para generar la secuencia de bits codificados S.
Ventajosamente, la segunda etapa E4 de codificación de paridad comienza después del entrelazado de un número \Delta predeterminado de bits. Este número \Delta predeterminado de bits está comprendido entre un primer número inferior \Deltai de bits dependiente de por lo menos un parámetro de la etapa de entrelazado E3, y un primer número superior \Deltas de bits correspondiente al número total de bits que han de ser procesados durante la etapa de entrelazado E3.
La figura 4 ilustra, a título de ejemplo, la ordenación en el tiempo (en abscisas) de las distintas etapas (en ordenadas) constitutivas de un procedimiento de codificación según una forma de realización de la invención.
Este procedimiento de codificación permite codificar una secuencia de bits de entrada S0 en una secuencia de bits codificados S' según las siguientes etapas.
Se aplica una primera etapa de codificación (llamada codificación externa) E1 sobre bits de la secuencia de bits de entrada S0, mediante primeros medios de codificación 30 (también denominados codificador externo 30), según un primer código (llamado código externo) descrito por una matriz de control de paridad G1 del código externo.
Una etapa de entrelazado E3 se encarga de entrelazar, mediante medios de entrelazado 33 (también denominados "entrelazador" 33), bits procedentes del código externo, según un entrelazado doble por bits y por paquetes.
Los bits procedentes del entrelazador 33 se codifican mediante segundos medios de codificación 32 llamada de paridad (también denominados "codificador de paridad" 32) durante una segunda etapa de codificación E4 (llamada codificación de paridad), según un código de paridad descrito en la matriz de control de paridad V del código de paridad.
Se aplica una segunda etapa de codificación (llamada codificación interna) E6 sobre bits procedentes del codificador de paridad 32, para formar la secuencia de bits codificados S', según el código descrito por una matriz de control de paridad G2 del código interno.
Ventajosamente, la etapa de codificación de paridad E4 comienza al cabo de un tiempo proporcional a un número predeterminado \Delta de bits, es decir, después del entrelazado de \Delta primeros bits. Este número predeterminado \Delta está comprendido entre un primer número inferior \Deltai de bits y un primer número superior \Deltas de bits correspondiente al número total de bits que tienen que procesarse durante la etapa de entrelazado E3. Así, la etapa de codificación de paridad E4 se realiza en paralelo con la etapa de entrelazado E3 y con un desplazamiento de \Delta bits.
La etapa de entrelazado E3 comienza y se realiza en paralelo con la etapa de codificación externa E1, con un desplazamiento de por lo menos un bit (\Delta' - \Delta \geq 1). Del mismo modo, la etapa de codificación interna E6 comienza y se realiza en paralelo con la etapa de codificación de paridad E4, con un desplazamiento de por lo menos un bit.
De acuerdo con una forma de realización preferente, el código en cuestión es un código de tipo LDPC (Low Density Parity Check) construido a partir de una matriz de control de paridad H que tiene la siguiente forma:
4
donde
- G1 es una matriz de control de paridad del código externo asociada al codificador externo 30 (véase la figura 6);
- V es una matriz de control de paridad de un código que comprende el código de paridad y la función de entrelazado; y
- G2 es la matriz de control de paridad del código interno asociado al codificador interno 34 (véase la figura 6).
El código externo se define a partir de la matriz G1, que es una matriz cuadrada de dimensiones K x K, de la siguiente forma:
5
donde I es una matriz identidad de dimensiones z x z e Ip es una matriz identidad de dimensiones z x z con permutación circular de p posiciones a la derecha o a la izquierda.
Opcionalmente, es posible paralelizar la etapa de codificación/decodificación externa fijando el valor del número "p", de modo que el código externo se componga de una pluralidad de códigos independientes, permitiendo así aumentar la rapidez de codificación/decodificación (en lo que respecta a la codificación/decodificación externa).
En este ejemplo, el código externo se compone de "z" códigos independientes, en caso de que p = 0. En caso contrario, (es decir, en caso de que p \neq 0), el código externo se compone de "z/b" códigos independientes, en el caso de que b es el mínimo entero no nulo positivo, tal que: (b.p) modulo z = 0. (Ec. 4)
Por ejemplo, el código externo puede componerse de una pluralidad de códigos convolucionales circulares independientes, funcionando en paralelo y permitiendo así aumentar la velocidad de codificación. El código interno se define a partir de la matriz G2, que es una matriz cuadrada de dimensiones M x M, de la siguiente forma:
6
donde I es una matriz identidad de dimensiones z x z, Ie es una matriz identidad de dimensiones z x z con permutación no circular de "e" posiciones a la derecha o a la izquierda.
Opcionalmente, al igual que para la etapa de codificación externa, es posible paralelizar la etapa de codificación interna fijando el valor del número "e", de modo que el código interno se componga de una pluralidad de códigos independientes, permitiendo así aumentar la rapidez de codificación en lo que respecta a la codificación interna.
En este ejemplo, el código interno se compone de "z" códigos independientes en caso de que e = 0. En caso contrario, es decir, si e \neq 0, el código externo se compone de un número de códigos independientes igual al número "e".
Por ejemplo, el código interno puede componerse de una pluralidad de códigos convolucionales circulares recurrentes independientes funcionando en paralelo, permitiendo así aumentar la velocidad de codificación.
La matriz V es una matriz de dimensiones M x K, de forma cuasicíclica, que comprende una pluralidad de matrices nulas y/o de matrices identidad con permutación circular, quedando definida la matriz V por la siguiente relación:
7
donde
- m_{1} es un número entero estrictamente positivo tal que K = m_{1} x z (Ec.7)
- m_{2} es un número entero estrictamente positivo tal que M = m_{2} x z (Ec. 8)
- I[c(i,j)] es bien una matriz nula de dimensiones z x z, bien una matriz identidad con permutación circular de dimensiones z x z. Si c(i,j)<0, entonces I[c(i,j)] es una matriz nula. En caso contrario, I[c(i,j)] es una matriz identidad con permutación circular de c(i,j) posiciones a la derecha o a la izquierda.
La forma de la matriz V tal y como se ha descrito anteriormente comprende un código de paridad y un entrelazado doble por bits y por paquetes según la invención.
Las figuras 5A y 5B representan respectivamente un entrelazado por bits según una primera función \pi y un entrelazado por paquetes según una segunda función \lambda.
De acuerdo con la figura 5A, los bits a la salida del codificador externo pertenecientes a un primer bloque de bits B_{1} son entrelazados según la primera función \pi de entrelazado por bits, para formar un segundo bloque de bits entrelazados B_{2}.
Esta primera función de entrelazado \pi asocia, con todo bit de índice "i" perteneciente al primer bloque de bits B_{1}, el bit de índice \pi(i) del bloque de bits entrelazados B_{2}, de tal modo que el entrelazado de los k primeros bits del primer bloque de bits B_{1} proporcione por lo menos los m primeros bits del segundo bloque de bits entrelazados B_{2}. Así, en este ejemplo, el próximo bit de índice k + 1 del primer bloque de bits B_{1} que hay que procesar quedará posicionado en la posición de índice \pi(k + 1) en el segundo bloque de bits entrelazados B_{2}, de modo que \pi(k + l) > m.
Así, en caso de que la codificación de paridad se realice por bloques de J = m bits, esta función de entrelazado permite empezar la codificación de los J primeros bits procedentes de los medios de entrelazado 33, sin tener que esperar al final de la etapa de entrelazado E3. A diferencia de la técnica anterior mencionada, no es necesario esperar a que la totalidad de los bits a la salida del codificador externo hayan sido entrelazados por los medios de entrelazado 33, para poder empezar la etapa de codificación de paridad E4.
De acuerdo con la figura 5B, los bits que pertenecen al primer bloque B_{1} de bits a la salida del codificador externo 30 se entrelazan según una segunda función \lambda de entrelazado por paquetes. Esta función \lambda permite asociar un primer conjunto de paquetes (P_{1}, P_{2}, P_{3}, P_{4}, P_{5}) de m_{1} bits pertenecientes al primer bloque B_{1} de bits, con un segundo conjunto de paquetes (P_{10}, P_{20}, P_{30}, P_{40}, P_{50}, P_{60}) de J bits entrelazados, de modo que los bits que pertenecen a un mismo paquete P_{30} de J bits entrelazados provienen en su totalidad de paquetes distintos pertenecientes al primer conjunto de paquetes de m_{1} bits (P_{1}, P_{2}, P_{3}, P_{4}, P_{5}). En el ejemplo de la figura 5B, el paquete P_{30} se compone de cinco bits (b_{1}, b_{2}, b_{3}, b_{4}, b_{5}) que provienen respectivamente de los cinco paquetes (P_{1}, P_{2}, P_{3}, P_{4}, P_{5}).
En la forma de realización preferente, la forma de la matriz V, tal y como se ha descrito anteriormente, permite llevar a cabo un entrelazado doble por bits y por paquetes, respectivamente según la primera función \pi y la segunda función \lambda. Así, a todo bit de índice "\pi(i)" perteneciente al I^{ésimo} paquete de J bits entrelazado se le asocia el (i)^{ésimo} bit perteneciente al \lambda^{-1}(i,I)^{ésimo} paquete de m_{1} bits.
En el procedimiento de codificación (respectivamente de decodificación) según la invención, los parámetros de la paralelización de la etapa de codificación (respectivamente decodificación) de paridad y de la etapa de codificación (respectivamente decodificación) externa se ajustan mediante una métrica predeterminada \Delta, correspondiente a un número predeterminado de bits.
El valor de este número \Delta se calcula a partir de los coeficientes c(i,j) estrictamente positivos de la matriz V, como sigue.
Sea \Phi \equiv {c_{1}} el conjunto de los c(i,j) positivos no nulos de la matriz V, ordenados en orden creciente. Definamos una función "d" que permita calcular la distancia entre dos puntos x e y con x \geq y, definida por d(x,y) = (x - y). El valor de este número \Delta se calcula entonces mediante la relación siguiente:
102
donde
card(\Phi) representa el número de elementos del conjunto \Phi;
c_{0} es el mínimo coeficiente c(i,j) positivo y no nulo de la matriz V de control de paridad;
z es la dimensión de las submatrices identidad contenidas en la matriz V de control de paridad; y
\Delta_{1} es la máxima distancia entre dos elementos adyacentes cualesquiera (c_{i} y c_{i+1}) pertenecientes al conjunto \Phi, quedando definida esta distancia por la siguiente relación:
103
La figura 6 ilustra una forma de realización de un dispositivo de codificación 100 según la invención, que comprende un primer codificador externo 30 (primeros medios de codificación), un codificador de paridad 32 (segundos medios de codificación) que comprende un entrelazador 33 (medios de entrelazado), un codificador interno 34 (terceros medios de codificación), una primera memoria 36 ubicada entre el codificador externo 30 y el codificador de paridad 32, y una segunda memoria 38 ubicada entre el codificador de paridad 32 y el codificador interno 34.
Téngase presente que, en otra forma de realización, el entrelazador 33 y el codificador de paridad 32 pueden ir desunidos.
La primera memoria 36 incorpora un primer conjunto de "z" primeros bancos de memoria (ME_{1} a ME_{z}), teniendo cada uno de estos primeros bancos de memoria una capacidad de almacenamiento de m_{1} bits.
La segunda memoria 38 incorpora por lo menos dos segundos bancos de memoria (MI_{1} y MI_{2}), teniendo cada uno de estos segundos bancos de memoria una capacidad de almacenamiento de m_{2} bits.
Un bloque de bits de entrada B0 es codificado por el dispositivo de codificación 100 según la invención, para formar una secuencia de bits codificados S.
El bloque de bits de entrada B0 empieza a ser codificado por el codificador externo 30, creando así primeros bits a la salida del codificador externo 30, memorizándose directamente estos primeros bits en los primeros bancos de memoria (ME_{1} a ME_{z}) de la memoria 36, en el orden natural y por paquetes de m_{1} bits.
Después de un tiempo proporcional al número predeterminado \Delta, el codificador de paridad 32 lee un bit de cada banco de memoria de un subconjunto del primer conjunto de bancos de memoria (ME_{1} a ME_{z}) y suma a ellos estos bits según una operación de adición módulo 2, siguiendo unas leyes de paridad descritas en la matriz V (definiendo cada fila de la matriz V una ecuación de paridad).
El codificador de paridad 32 puede procesar, por ejemplo, m_{2} ecuaciones de paridad contenidas en m_{2} filas en la matriz V, a fin de generar m_{2} bits a la salida del codificador de paridad 32. Estos m_{2} bits se almacenan directamente en un banco de memoria MI_{1} del segundo conjunto de bancos de memoria (MI_{1} y MI_{2}) de la memoria 38.
En cuanto acaba la escritura de m_{2} bits en un banco de memoria (MI_{1}, MI_{2}) a la salida del codificador de paridad 32, el codificador interno 34 lee estos m_{2} bits que puede empezar a codificar de forma casi instantánea, según el código interno contenido en la matriz de control de paridad G2 del código interno.
Dado que la operación de codificación interna se realiza sobre m_{2} bits y justo después de la escritura de m_{2} bits en un segundo banco de memoria (MI_{1} en este ejemplo), basta con que la segunda memoria 38 contenga únicamente dos bloques de memoria (MI_{1}, MI_{2}) para permitir una utilización óptima de los recursos físicos, funcionando cada uno de estos dos bancos de memoria alternativamente en escritura y en lectura.
En la práctica, basta con que el codificador de paridad haya procesado un bit para permitir que el codificador interno empiece su tarea en paralelo con el codificador de paridad.
La figura 7 ilustra, de forma muy esquemática, la ordenación en el tiempo (en abscisas) de las distintas etapas (en ordenadas) constitutivas de un procedimiento de decodificación según una forma de realización particular.
Este procedimiento de decodificación permite decodificar una señal de recepción digitalizada que comprende una secuencia de datos formada por una primera parte D correspondiente a información que hay que transmitir y por una segunda parte C que incorpora datos de redundancia.
De acuerdo con este procedimiento, se aplica una primera etapa de decodificación (llamada decodificación externa) E100 a datos de la primera parte D. Una etapa de entrelazado E300 que llevan a cabo unos medios de entrelazado 43 (también denominados entrelazador 43) permite entrelazar datos procedentes de la primera etapa de decodificación E100 (etapa de decodificación externa). Se aplica una segunda etapa de decodificación llamada de paridad E400 (etapa de decodificación de paridad) sobre datos procedentes del entrelazador 43. Se aplica una tercera etapa de decodificación (llamada etapa de decodificación interna) E600 sobre datos procedentes de la etapa de decodificación de paridad E400.
Ventajosamente, la etapa de decodificación de paridad E400 comienza después del entrelazado de un número predeterminado \Delta de datos. Este número predeterminado \Delta de datos está comprendido entre un primer número inferior \Deltai de datos dependiente de por lo menos un parámetro de la etapa de entrelazado E300, y un primer número superior \Deltas de datos correspondiente al número total de datos que han de ser procesados durante la etapa de entrelazado E300.
La figura 8 ilustra una forma de realización de un dispositivo de decodificación 200 según la invención, que permite decodificar una señal de recepción digitalizada que comprende una secuencia de datos formada por una primera parte D correspondiente a información que hay que transmitir y por una segunda parte C que incorpora datos de redundancia.
El dispositivo de decodificación 200 según la invención comprende un decodificador externo 40 (o primeros medios de decodificación 40), un decodificador de paridad 42 (o segundos medios de decodificación llamada de paridad 42) que comprende un entrelazador 43 (o medios de entrelazado 43), un decodificador interno 44 (o segundos medios de decodificación 44), un primer módulo de memoria 46 ubicado a la entrada del decodificador externo 40 y del decodificador interno 44, un segundo módulo de memoria 48 ubicado entre el decodificador externo 40 y el decodificador de paridad 42, un tercer módulo de memoria 50 ubicado entre el codificador de paridad 42 y el codificador interno 44.
Téngase presente que, en otra forma de realización, el entrelazador 43 y el decodificador de paridad 42 pueden ir desunidos.
El entrelazador 43 está adaptado de modo que el decodificador de paridad 42 comience la etapa de decodificación de paridad E400 después del entrelazado de un número predeterminado \Delta de datos. Este número predeterminado \Delta de datos está comprendido entre un primer número inferior \Deltai de datos dependiente de por lo menos un parámetro del entrelazador 43, y un primer número superior \Deltas de datos correspondiente al número total de datos que el entrelazador 43 tiene que procesar.
El primer módulo de memoria 46, destinado a memorizar una señal digitalizada de recepción que incorpora "m_{1}xz" valores flexibles, comprende "z" primeros bancos de memoria (M_{1} a M_{z}), teniendo cada uno de estos bancos de memoria una capacidad de almacenamiento de m_{1} bits.
El segundo módulo de memoria 48, destinado a memorizar datos que transitan entre el decodificador externo 40 y el decodificador de paridad 42, comprende "z" segundos bancos de memoria (ME_{1} a ME_{z}), teniendo cada uno una capacidad de almacenamiento de m_{1} bits.
El tercer módulo de memoria 50, destinado a memorizar datos que transitan entre el decodificador de paridad 42 y el decodificador interno 44, comprende "z" segundos bancos de memoria (MI_{1} a MI_{z}), teniendo cada uno una capacidad de almacenamiento de m_{2} bits.
La descomposición de las memorias 46, 48, 50 en una pluralidad de bancos de memoria, respectivamente (M_{1} a M_{z}), (ME_{1} a ME_{z}), (MI_{1} a MI_{z}) permite reducir al mínimo, e incluso suprimir, los accesos simultáneos a una misma memoria.
La decodificación de una trama de N valores flexibles se desarrolla según un procedimiento iterativo. Téngase presente que la decodificación flexible del código interno y del código externo se puede llevar a cabo utilizando técnicas convencionales de decodificación de códigos convolucionales de salida flexible, como el algoritmo BCJR (Bahi-Cocke-Jelinek-Raviv), el algoritmo FBA (Forward Backward Algorithm) o también el algoritmo SOVA (Soft Output Viterbi Algorithm), tal y como los describe L.R. Bahl y col. en el documento titulado "Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate" (IEEE Transactions on Information Theory, Volumen IT-20, marzo de 1974, pp. 248-287).
La etapa de inicialización de este procedimiento consiste en almacenar en memoria, en el orden natural y por paquetes de m_{1} valores flexibles, los N datos contenidos en una señal de recepción (tal que N = m_{1} x z), en los "z" primeros bancos de memoria (M_{1} a M_{z}) del primer módulo de memoria 46.
En otras palabras, los m_{1} primeros valores flexibles de la señal recibida se memorizan en el primer banco de memoria M_{1}, los m_{1} valores flexibles siguientes se memorizan en el banco de memoria siguiente M_{2} y así sucesivamente.
Para cada iteración, el procedimiento consta de las siguientes etapas.
El decodificador externo 40 lleva a cabo una decodificación sobre una ventana de índice j que comprende m_{1} datos (o m_{1} valores flexibles) contenidos en el banco de memoria M_{j} perteneciente al primer módulo de memoria 46, a fin de generar primeros datos extrínsecos que se memorizan en el banco de memoria ME_{j} perteneciente al segundo módulo de memoria 48.
Tras la decodificación de un número \Delta de ventanas, el decodificador de paridad 42 puede funcionar en paralelo y sin colisión con el decodificador externo 40.
Las ecuaciones de paridad definidas en la matriz V se resuelven en serie y por grupos de m_{2} ecuaciones, a partir de las variables o datos proporcionados a la salida del codificador externo. Los valores de cada una de estas variables utilizadas en las m_{2} ecuaciones de paridad de la matriz V en el momento de la decodificación de una ventana son leídas en bancos de memoria (ME_{1} a ME_{z}) diferentes. Para cada ventana de índice i, las m_{2} ecuaciones del i^{ésimo} grupo de m_{2} ecuaciones se resuelven en el orden que sigue: i, i + z, i + 2xz, ..., i + m_{2}xz, (con i comprendido entre 1 y z).
El resultado de la decodificación del i^{ésimo} grupo de m_{2} ecuaciones se almacena en el i^{ésimo} banco de memoria MI_{i} perteneciente al tercer módulo de memoria 50. Por ejemplo, los m_{2} datos que resultan de la resolución del 2º grupo de m_{2} ecuaciones de paridad se memorizan en el 2º banco de memoria MI_{2}.
Directamente después de la resolución del primer grupo de m_{2} ecuaciones llevada a cabo sobre una ventana de índice i por el codificador de paridad, el decodificador interno puede empezar su tarea de decodificación sobre esta ventana. La información extrínseca que resulta de la decodificación de la ventana de índice i se almacena en el banco de memoria MI_{i} perteneciente al tercer módulo de memoria 50.
Como consecuencia de la decodificación de \Delta ventanas mediante el decodificador interno, se actualizan las variables que intervienen en las ecuaciones de paridad definidas en la matriz V.
Para evitar cualquier conflicto de acceso a un mismo banco de memoria durante la etapa de decodificación de paridad, es necesario que una variable no intervenga más que una sola vez en un grupo de m_{2} ecuaciones de paridad. Esta regla se traduce en la condición de que, para una misma columna de la matriz V, todos los coeficientes c(i,j) positivos son distintos.
La invención tiene asimismo como propósito un programa de ordenador descargable desde una red de comunicaciones, que comprende instrucciones de códigos de programa para la ejecución de las etapas del procedimiento de codificación y/o del procedimiento de decodificación según la invención, cuando se ejecuta en un ordenador. Este programa de ordenador se puede almacenar en un soporte legible por ordenador.
Este programa puede utilizar cualquier lenguaje de programación y presentarse en forma de código fuente, código objeto, o de código intermedio entre código fuente y código objeto, tal como en una forma compilada parcialmente, o en cualquier otra forma deseable.
La invención tiene asimismo como propósito un soporte de información legible por ordenador y que incorpora instrucciones de un programa de ordenador tal y como se ha mencionado anteriormente.
El soporte de información puede ser cualquier entidad o dispositivo capaz de almacenar el programa. Por ejemplo, el soporte puede incorporar un medio de almacenamiento, tal como una ROM, por ejemplo un CD-ROM o una ROM de circuito microelectrónico, o también un medio de grabación magnética, por ejemplo un disquete (floppy disc) o un disco duro.
Por otra parte, el soporte de información puede ser un soporte transmisible, tal como una señal eléctrica u óptica, que se puede conducir a través de un cable eléctrico u óptico, por radio o por otros medios. El programa según la invención se puede descargar en particular por una red de tipo Internet.
Alternativamente, el soporte de información puede ser un circuito integrado en el que va incorporado el programa, estando adaptado el circuito para ejecutar o para ser utilizado en la ejecución del procedimiento en cuestión.
Téngase presente que el dispositivo de codificación se puede poner en aplicación mediante un sistema informático F, tal y como se muestra en la figura 9, que incorpora de manera convencional una unidad central de proceso 60 que controla, mediante señales B, una memoria 62, una unidad de entrada 64 y una unidad de salida 66. Todos los elementos están conectados entre sí por buses de datos 68.
Además, este sistema informático se puede utilizar para ejecutar un programa de ordenador que incorpora instrucciones para la puesta en aplicación del procedimiento de codificación según la invención.
Téngase presente que el dispositivo de decodificación también se puede poner en aplicación mediante un sistema informático como el de la figura 9.
Además, este sistema informático se puede utilizar para ejecutar un programa de ordenador que incorpora instrucciones para la puesta en aplicación del procedimiento de decodificación según la invención.

Claims (15)

1. Procedimiento de codificación de una secuencia de bits de entrada (S0) en una secuencia de bits codificados (S), comprendiendo dicho procedimiento:
- una primera etapa (E1) de codificación aplicada sobre los bits de la secuencia de bits de entrada (S0), según un primer código;
- una etapa de entrelazado (E3) destinada a entrelazar, por medios de entrelazado (33), los bits procedentes de dicho primer código;
- una segunda etapa (E4) de codificación llamada de paridad, aplicada sobre los bits procedentes de dichos medios de entrelazado (33), según un segundo código, para generar dicha secuencia de bits codificados (S);
caracterizándose dicho procedimiento porque dicha segunda etapa de codificación (E4) de paridad comienza después del entrelazado de un número \Delta predeterminado de bits sin esperar al final de la etapa de entrelazado (E3), estando comprendido dicho número \Delta predeterminado de bits entre un primer número inferior \Deltai de bits dependiente de por lo menos un parámetro de dicha etapa de entrelazado (E3), y un primer número superior \Deltas de bits correspondiente al número total de bits que han de ser procesados durante dicha etapa de entrelazado (E3).
2. Procedimiento de codificación según la reivindicación 1, caracterizado porque dicha segunda etapa de codificación (E4) de paridad comienza después de la codificación de un número predeterminado \Delta' de bits según la primera etapa (E1) de codificación, estando comprendido dicho número predeterminado \Delta' de bits entre un segundo número inferior \Deltai' de bits dependiente de por lo menos un parámetro de dicha etapa de entrelazado (E3), y un segundo número superior \Deltas' de bits correspondiente al número total de bits que han de ser procesados durante dicha primera etapa de codificación (E1).
3. Procedimiento de codificación según una cualquiera de las reivindicaciones precedentes, caracterizado porque dicha etapa de entrelazado (E3) se realiza conjuntamente con dicha segunda etapa de codificación de paridad (E4).
4. Procedimiento de codificación según una cualquiera de las reivindicaciones 1 a 4, caracterizado porque dicha etapa de entrelazado (E3) incorpora una primera función \pi de entrelazado por bits que asocia al i^{ésimo} bit procedente de dicho primer código el \pi(i)^{ésimo} bit de una secuencia de bits entrelazados (B2), de modo que el entrelazado de los k primeros bits proporcione por lo menos los m primeros bits de dicha secuencia de bits entrelazados (B2).
5. Procedimiento de codificación según una cualquiera de las reivindicaciones 3 y 4, caracterizado porque dicha etapa de entrelazado (E3) y dicha segunda etapa (E4) de codificación de paridad se llevan a cabo por medio de una matriz V de control de paridad cuasicíclica que comprende una pluralidad de submatrices identidad, de la forma siguiente:
8
tal que, para todo i comprendido entre 1 y m_{1} y para todo j comprendido entre 1 y m_{2}, si el coeficiente c(i,j) es estrictamente negativo, entonces la submatriz I[c(i,j)] es una matriz nula; en caso contrario, dicha matriz I[c(i,j)] es una matriz identidad con permutación circular de c(i,j) posiciones.
6. Procedimiento de codificación según una cualquiera de las reivindicaciones 3 a 5, caracterizado porque dicha etapa de entrelazado (E3) incorpora una segunda función \lambda de entrelazado que permite asociar un primer conjunto de paquetes de m_{1} bits (P1, P2, P3, P4, P5), procedentes del primer código, con un segundo conjunto de paquetes (P10, P20, P30, P40, P50, P60) de J bits de dicha secuencia de bits entrelazados (B2), de modo que los bits pertenecientes a un mismo paquete (P30) de J bits de dicha secuencia de bits entrelazados (B2) provengan de paquetes distintos de dicho primer conjunto de paquetes (P1, P2, P3, P4, P5) de m_{1} bits.
7. Procedimiento de codificación según una cualquiera de las reivindicaciones precedentes, caracterizado porque incorpora una tercera etapa (E6) de codificación, según un tercer código, aplicada sobre bits procedentes de dicha segunda etapa (E4) de codificación de paridad, de modo que dicha tercera etapa (E6) de codificación comience a partir de la codificación de por lo menos un bit procedente de dicha segunda etapa (E4) de codificación de paridad.
8. Procedimiento de decodificación de una señal de recepción digitalizada que comprende una secuencia de datos formada por una primera parte D correspondiente a la información que hay que transmitir y por una segunda parte C que incorpora datos de redundancia, caracterizándose dicho procedimiento porque comprende:
- una primera etapa (E100) de decodificación aplicada sobre datos de dicha primera parte D;
- una etapa de entrelazado (E300) destinada a entrelazar, mediante medios de entrelazado (43), datos procedentes de dicha primera etapa (E100) de decodificación;
- una segunda etapa (E400) de decodificación llamada de paridad, aplicada sobre datos procedentes de dichos medios de entrelazado (43);
caracterizándose dicho procedimiento porque dicha segunda etapa (E400) de decodificación de paridad comienza después del entrelazado de un número predeterminado \Delta de datos, sin esperar al final de la etapa de entrelazado (E300), estando comprendido dicho número predeterminado \Delta de datos entre un primer número inferior \Deltai de datos dependiente de por lo menos un parámetro de dicha etapa de entrelazado (E300), y un primer número superior \Deltas de datos correspondiente al número total de datos que han de ser procesados durante dicha etapa de entrelazado (E300).
9. Procedimiento de decodificación según la reivindicación 8, caracterizado porque dicha segunda etapa (E400) de decodificación de paridad comienza después de la decodificación de un número predeterminado \Delta' de datos según dicha primera etapa de decodificación (E100), estando comprendido dicho número predeterminado \Delta' de datos entre un segundo número inferior \Deltai' de datos dependiente de por lo menos un parámetro de dicha etapa de entrelazado (E300), y un segundo número superior \Deltas' de datos correspondiente al número total de datos que han de ser procesados durante dicha primera etapa de decodificación (E100).
10. Procedimiento de decodificación según la reivindicación 9, caracterizado porque dicha etapa de entrelazado (E300) se realiza conjuntamente con dicha segunda etapa (E400) de decodificación de paridad.
11. Procedimiento de decodificación según la reivindicación 10, caracterizado porque dicha etapa de entrelazado (E300) y dicha segunda etapa de decodificación (E400) se llevan a cabo por medio de una matriz V de control de paridad cuasicíclica que comprende una pluralidad de submatrices identidad, de la forma siguiente:
9
tal que, para todo i comprendido entre 1 y m_{1} y para todo j comprendido entre 1 y m_{2}, si el coeficiente c(i,j) es estrictamente negativo, entonces la submatriz I[c(i,j)] es una matriz nula; en caso contrario, dicha matriz I[c(i,j)] es una matriz identidad con permutación circular de c(i,j) posiciones.
12. Dispositivo de codificación de una secuencia de bits de entrada (S0) en una secuencia de bits codificados (S), comprendiendo dicho dispositivo:
- primeros medios de codificación (30) destinados a codificar los bits de dicha secuencia de bits de entrada (S0), según un primer código;
- medios de entrelazado (33) destinados a entrelazar bits procedentes de dichos primeros medios de codificación (30);
- segundos medios de codificación (32) llamada de paridad, destinados a codificar bits procedentes de dichos medios de entrelazado (33), según un segundo código, para generar dicha secuencia de bits codificados (S);
caracterizándose dicho dispositivo porque dichos medios de entrelazado (33) están adaptados de modo que dichos segundos medios de codificación de paridad (32) comienzan dicha secuencia de bits codificados (S) después del entrelazado de un número \Delta predeterminado de bits, sin esperar al final del entrelazado, estando comprendido dicho número \Delta predeterminado de bits entre un primer número inferior \Deltai de bits dependiente de por lo menos un parámetro de dichos medios de entrelazado (33), y un primer número superior \Deltas de bits correspondiente al número total de bits que dichos medios de entrelazado (33) tienen que procesar.
\newpage
13. Dispositivo de decodificación de una señal de recepción digitalizada que comprende una secuencia de datos formada por una primera parte D correspondiente a información que hay que transmitir y por una segunda parte C que incorpora datos de redundancia, comprendiendo dicho dispositivo:
- primeros medios de decodificación (40) de los datos de dicha primera parte D;
- medios de entrelazado (43) destinados a entrelazar bits procedentes de dichos primeros medios de decodificación (40);
- segundos medios de decodificación (42) llamada de paridad destinados a decodificar bits procedentes de dichos medios de entrelazado (43);
caracterizándose dicho dispositivo porque dichos medios de entrelazado (43) están adaptados de modo que dichos segundos medios de decodificación de paridad (42) comienzan la decodificación de paridad después del entrelazado de un número predeterminado \Delta de datos, sin esperar al final del entrelazado, estando comprendido dicho número predeterminado \Delta de datos entre un primer número inferior \Deltai de datos dependiente de por lo menos un parámetro de dichos medios de entrelazado (43), y un primer número superior \Deltas de datos correspondiente al número total de datos que dichos medios de entrelazado (43) tienen que procesar.
14. Producto de programa de ordenador descargable desde una red de comunicaciones y/o almacenado en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado porque comprende instrucciones de códigos de programa para la ejecución de las etapas del procedimiento de codificación según por lo menos una de las reivindicaciones 1 a 7, cuando se ejecuta en un ordenador.
15. Producto de programa de ordenador descargable desde una red de comunicaciones y/o almacenado en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado porque comprende instrucciones de códigos de programa para la ejecución de las etapas del procedimiento de decodificación según por lo menos una de las reivindicaciones 8 a 11, cuando se ejecuta en un ordenador.
ES07718051T 2006-01-19 2007-01-18 Procedimiento rapido de codificacion y decodificacion y dispositivos asociados. Active ES2325138T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0650196 2006-01-19
FR0650196A FR2896359A1 (fr) 2006-01-19 2006-01-19 Procede d'encodage et de decodage rapides et dispositifs associes.

Publications (1)

Publication Number Publication Date
ES2325138T3 true ES2325138T3 (es) 2009-08-26

Family

ID=37491986

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07718051T Active ES2325138T3 (es) 2006-01-19 2007-01-18 Procedimiento rapido de codificacion y decodificacion y dispositivos asociados.

Country Status (9)

Country Link
US (1) US8214723B2 (es)
EP (1) EP1974472B1 (es)
JP (1) JP5122480B2 (es)
CN (1) CN101371448B (es)
AT (1) ATE429076T1 (es)
DE (1) DE602007000915D1 (es)
ES (1) ES2325138T3 (es)
FR (1) FR2896359A1 (es)
WO (1) WO2007083066A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5306342B2 (ja) * 2007-07-04 2013-10-02 エスティー‐エリクソン、ソシエテ、アノニム シャッフルldpcデコーディング
US8225165B2 (en) * 2007-10-12 2012-07-17 Industrial Technology Research Institute Methods and devices for encoding data in communication systems
US8161345B2 (en) * 2008-10-29 2012-04-17 Agere Systems Inc. LDPC decoders using fixed and adjustable permutators
WO2010073922A1 (ja) * 2008-12-25 2010-07-01 日本電気株式会社 誤り訂正符号化装置、復号装置、符号化方法、復号方法、及びそのプログラム
US9712459B1 (en) 2010-01-27 2017-07-18 Marvell International Ltd. Low-to-high speed cut-through communication
FR2982447A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2982446A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
CN115085739A (zh) * 2021-03-10 2022-09-20 华为技术有限公司 一种编译码方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0935363A4 (en) * 1997-06-19 2005-09-07 Toshiba Kk TRANSMISSION SYSTEM WITH INFORMATION MULTIPLEXING, MULTIPLEXER AND DEMULTIPLEXER USED FOR THE SAME, AND ENCODER AND DECODER FOR ERROR CORRECTION
US6643331B1 (en) * 1997-12-24 2003-11-04 Inmarsat Ltd. Coding method and apparatus
CA2550761C (en) * 1999-07-08 2009-05-26 Nortel Networks Limited Puncturing of convolutional codes
JP3590310B2 (ja) * 1999-12-07 2004-11-17 シャープ株式会社 連接畳込み符号復号器
US7649829B2 (en) * 2001-10-12 2010-01-19 Qualcomm Incorporated Method and system for reduction of decoding complexity in a communication system
US6954885B2 (en) * 2001-12-14 2005-10-11 Qualcomm Incorporated Method and apparatus for coding bits of data in parallel
JP4044774B2 (ja) * 2002-03-13 2008-02-06 富士通株式会社 データ記録装置及びデータ再生装置
US7224296B2 (en) * 2002-04-18 2007-05-29 Koninklijke Philips Electronics N.V. Error-correcting binary run-length-limited product-code
KR20050020526A (ko) * 2003-08-23 2005-03-04 삼성전자주식회사 이동통신시스템에서 비트 인터리빙장치 및 방법
KR100683179B1 (ko) * 2003-11-03 2007-02-15 삼성전자주식회사 듀얼 스트림용 디지털 방송 송/수신 시스템의 강건한에러정정 부호화/복호화 장치 및 그의 방법
KR100918763B1 (ko) * 2003-11-14 2009-09-24 삼성전자주식회사 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법

Also Published As

Publication number Publication date
JP2009524316A (ja) 2009-06-25
US20100287437A1 (en) 2010-11-11
ATE429076T1 (de) 2009-05-15
EP1974472B1 (fr) 2009-04-15
FR2896359A1 (fr) 2007-07-20
CN101371448A (zh) 2009-02-18
CN101371448B (zh) 2011-07-13
DE602007000915D1 (de) 2009-05-28
JP5122480B2 (ja) 2013-01-16
WO2007083066A1 (fr) 2007-07-26
EP1974472A1 (fr) 2008-10-01
US8214723B2 (en) 2012-07-03

Similar Documents

Publication Publication Date Title
ES2325138T3 (es) Procedimiento rapido de codificacion y decodificacion y dispositivos asociados.
US7783952B2 (en) Method and apparatus for decoding data
ES2430361T3 (es) Turbo-descodificación con intercaladores QPP libres de contención
JP5120862B2 (ja) 低密度パリティ検査符号を使用する通信システムのチャネル符号化装置及びその方法
US9300329B2 (en) Turbo-product codes (TPC) with interleaving
US6323788B1 (en) Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system
JP2007511164A (ja) 並列連接低密度パリティ検査符号を用いるチャンネル符号化/復号化装置及び方法
US20070011566A1 (en) Clash-free irregular-repeat-accumulate code
US20070011565A1 (en) Method and apparatus for low-density parity check encoding
US8010867B2 (en) Error correction code decoding device
ES2664496T3 (es) Aparato y procedimiento para codificar y decodificar canales en un sistema de comunicación usando códigos de verificación de paridad de baja densidad
WO2015120719A1 (zh) 信息处理方法及装置
US20020162072A1 (en) Concatenated turbo product codes for high performance satellite and terrestrial communications
CN102142928A (zh) 交织、解交织外码编码输出码字的方法和交织、解交织器
US7100101B1 (en) Method and apparatus for concatenated and interleaved turbo product code encoding and decoding
KR101110201B1 (ko) 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치
KR101865068B1 (ko) 저밀도 패리티 검사 부호를 사용하는 시스템에서 신호 맵핑/디맵핑 장치 및 방법
US7793200B1 (en) Method of and circuit for accessing a memory of a trellis decoder
US8086930B2 (en) Fixed-spacing parity insertion for FEC (Forward Error Correction) codewords
WO2010089834A1 (ja) 無線通信装置
WO2023060865A1 (zh) 编解码方法和编解码设备
Sunkara et al. Turbo code using a novel hybrid interleaver
KR20080036402A (ko) 이동 통신 시스템에서의 복호 방법 및 장치
US8259868B1 (en) Conditionally cycle-free generalized tanner graphs based decoding
Gazi Prunable collision free random interleaver design