ES2325138T3 - Procedimiento rapido de codificacion y decodificacion y dispositivos asociados. - Google Patents
Procedimiento rapido de codificacion y decodificacion y dispositivos asociados. Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2972—Serial concatenation using convolutional component codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1191—Codes on graphs other than LDPC codes
- H03M13/1194—Repeat-accumulate [RA] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2771—Internal interleaver for turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
- H03M13/2978—Particular arrangement of the component decoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations 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.
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.
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:
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.
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:
\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:
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:
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:
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.
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.
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:
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:
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:
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:
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:
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:
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:
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:
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.
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)
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)
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 | 삼성전자주식회사 | 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법 |
-
2006
- 2006-01-19 FR FR0650196A patent/FR2896359A1/fr not_active Withdrawn
-
2007
- 2007-01-18 EP EP07718051A patent/EP1974472B1/fr active Active
- 2007-01-18 WO PCT/FR2007/050664 patent/WO2007083066A1/fr active Application Filing
- 2007-01-18 DE DE602007000915T patent/DE602007000915D1/de active Active
- 2007-01-18 US US12/223,109 patent/US8214723B2/en active Active
- 2007-01-18 JP JP2008550822A patent/JP5122480B2/ja active Active
- 2007-01-18 AT AT07718051T patent/ATE429076T1/de not_active IP Right Cessation
- 2007-01-18 CN CN2007800027801A patent/CN101371448B/zh active Active
- 2007-01-18 ES ES07718051T patent/ES2325138T3/es active Active
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 |