ES2459065T3 - Descodificación de códigos de reacción en cadena por inactivación - Google Patents

Descodificación de códigos de reacción en cadena por inactivación Download PDF

Info

Publication number
ES2459065T3
ES2459065T3 ES10013224.0T ES10013224T ES2459065T3 ES 2459065 T3 ES2459065 T3 ES 2459065T3 ES 10013224 T ES10013224 T ES 10013224T ES 2459065 T3 ES2459065 T3 ES 2459065T3
Authority
ES
Spain
Prior art keywords
origin
symbols
symbol
active
decoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES10013224.0T
Other languages
English (en)
Inventor
M. Amin Shokrollahi
Soren Lassen
Richard Karp
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.)
Digital Fountain Inc
Original Assignee
Digital Fountain Inc
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 Digital Fountain Inc filed Critical Digital Fountain Inc
Application granted granted Critical
Publication of ES2459065T3 publication Critical patent/ES2459065T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] 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
    • 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Abstract

Un descodificador para descodificar un código de reacción en cadena, con una pluralidad de símbolos (230, 720, 920) de salida y una pluralidad de símbolos (220, 710, 910, 1010) de origen, en el cual cada símbolo de salida está asociado a uno o más símbolos de origen, y siendo los códigos de reacción en cadena tales que un símbolo de origen puede ser descodificado a partir de un símbolo de salida de grado uno, y la descodificación de un símbolo de origen reduce los grados de los símbolos de salida que están asociados a ese símbolo de origen descodificado, y teniendo el código de reacción en cadena una pluralidad de símbolos de salida de múltiples etapas y dicha pluralidad de símbolos de origen, comprendiendo cada uno de los símbolos de salida de múltiples etapas ya sea dicho símbolo de salida o bien un símbolo de comprobación, en el que cada uno de los símbolos de salida de múltiples etapas está asociado a uno o más símbolos de origen, denominándose los símbolos de salida de múltiples etapas, asociados a uno o más símbolos de origen, símbolos de salida de múltiples etapas de grado uno o superior, en el que al menos un símbolo de salida de múltiples etapas está asociado a al menos dos símbolos de origen, denominándose los símbolos de salida de múltiples etapas, asociados a dos o más símbolos de origen, símbolos de salida de múltiples etapas de grado dos o superior, y en el que al menos un símbolo de origen está marcado como activo, comprendiendo el descodificador: (0) medios para determinar que ningún símbolo de salida de múltiples etapas dentro del código de reacción en cadena está asociado a solamente un símbolo de origen, (i) medios para seleccionar uno de los símbolos de origen activos asociados a un símbolo de salida de múltiples etapas de grado dos o superior; (ii) medios para desactivar el símbolo de origen seleccionado, asociado a un símbolo de salida de múltiples etapas de grado dos o superior, en el que (ii) el medio para desactivar el símbolo de origen seleccionado produce un símbolo de origen desactivado y uno o más símbolos de origen recuperables, en el que cada símbolo de origen recuperable está asociado a un símbolo de salida de múltiples etapas de grado uno, donde el grado está determinado según lo especificado anteriormente, pero considerando el símbolo de origen desactivado como descodificado; (iii) medios para recuperar los valores de uno o más símbolos de origen desactivados; y (iv) medios para determinar, en base a los valores recuperados de los símbolos de origen desactivados, los valores de uno o más símbolos de origen recuperables.

Description

Descodificación de códigos de reacción en cadena por inactivación
Antecedentes de la invención
La presente invención se refiere a sistemas y procedimientos para descodificar datos y, más específicamente, a sistemas y procedimientos para descodificar códigos aditivos de información y códigos aditivos de información de múltiples etapas, mencionados en la presente memoria colectivamente como “códigos de reacción en cadena”.
Los códigos de reacción en cadena han sido descritos previamente en las patentes del cesionario, tales como la Patente Estadounidense Nº 6.307.487, titulada “Generador y descodificador de códigos aditivos de información para sistemas de comunicación” (en adelante en la presente memoria, “Luby I”) y la Solicitud de Patente Estadounidense Nº 10 / 032.156, (número de publicación US2003/058958 A1, publicada el 27 de Marzo de 2003 y patentada como US 7.068.729 B1), titulada “Generador y descodificador de código de múltiples etapas para sistemas de comunicación” (en adelante en la presente memoria, “Raptor”). Según lo descrito en la presente memoria, la descodificación por reacción en cadena es una forma única de corrección anticipada de errores que permite la reconstrucción de datos a partir de un conjunto de datos recibidos de un tamaño dado, sin considerar los paquetes de datos específicos recibidos. Los sistemas de comunicación que emplean códigos de reacción en cadena son capaces de comunicar información mucho más eficazmente, en comparación con los códigos tradicionales de FEC transmitidos mediante un carrusel de datos o protocolos basados en acuses de recibo, tales como los descritos en Luby I o Raptor.
La Fig. 1 ilustra un proceso ejemplar de codificación de datos usando códigos de reacción en cadena, en el cual un símbolo 170 de salida es generado a partir de varios símbolos de entrada. Los símbolos de entrada son indicados como 110(a) a 110(f). En algunas realizaciones la primera etapa del proceso de codificación es la codificación estática, según lo descrito en Raptor. Esta etapa puede producir los símbolos de origen, indicados como 120(a) a 120(f), y 160(a) a 160(c). En algunas realizaciones, la codificación estática puede ser sistemática, de modo que los valores de los símbolos 120(a) a 120(f) de origen sean iguales a los de 110(a) a 110(f). En algunas realizaciones, puede no haber ninguna codificación estática, en cuyo caso los símbolos de entrada coinciden con los símbolos de origen.
Una vez que los símbolos de origen han sido creados, los símbolos de salida son generados a partir de los símbolos de origen. En adelante en la presente memoria, un símbolo de salida y un símbolo de entrada son descritos como “asociados” si el valor del símbolo de entrada es usado para obtener el valor del símbolo de salida. La operación matemática que define esta asociación puede ser cualquier operación específica y, en una realización, el valor del símbolo de salida es el resultado de la operación lógica XOR de los valores de algunos de los símbolos de origen. Para cada símbolo de salida, el generador 140 de claves produce una clave, a partir de la cual el peso del símbolo de salida es determinado desde una tabla 150 de pesos. Una vez que el peso W está determinado, se escogen W símbolos de origen aleatorios, o seudo-aleatorios, y el valor del símbolo de salida es calculado como XOR de los valores de estos símbolos de origen. Por ejemplo, en la Figura 1, el peso del símbolo 170 de salida es igual a 3 y su valor está determinado como el XOR de los símbolos 120(a), 120(d) y 160(b) de origen. De manera correspondiente, el símbolo 170 de salida está asociado a los símbolos 120(a), 120(d) y 160(b) de origen. En adelante en la presente memoria, el término “grado” es usado como sinónimo de “peso”.
La Fig. 2A ilustra un gráfico de descodificación usado en la descodificación de un código de reacción en cadena. Este gráfico de descodificación consiste en dos conjuntos de símbolos, los símbolos 220 (a) a (i) de origen y los símbolos 230
(a) a (l) de salida. Un símbolo de salida está conectado con un símbolo de origen si los símbolos de origen y de salida están “asociados”, según lo descrito anteriormente.
La Fig. 2B ilustra una matriz de descodificación correspondiente al gráfico de descodificación de la Fig. 2A, que es útil en el proceso de descodificación. La matriz 200 de descodificación tiene tantas filas como símbolos de salida haya, tantas columnas como símbolos de origen haya, y está poblada con entradas “0” y “1”. Un “1” se coloca en la posición (k, j) de la matriz de descodificación si el j-ésimo símbolo de origen está asociado al k-ésimo símbolo de salida.
En un típico proceso de descodificación por reacción en cadena, la descodificación comienza identificando un símbolo O1 de salida asociado a un único símbolo de origen. El término “símbolo de salida de grado uno” se refiere al precitado símbolo de salida asociado a solamente un símbolo de origen. De manera similar, un símbolo de salida asociado a dos símbolos de origen sería denominado un símbolo de salida de “grado dos”. Los símbolos de origen son denominados de manera similar, correspondiente al número de símbolos de salida a los cuales está asociado cada símbolo de origen.
Una vez que está identificado el símbolo O1 de salida de grado uno, el símbolo de origen asociado de O1 es recuperado y es eliminado del gráfico de descodificación. El proceso continúa identificando otro símbolo O2 de salida de grado uno. Por ejemplo, en la situación ilustrada en la Fig. 2, O1 podría ser el símbolo de salida indicado como 230(a). Una vez que su símbolo 220(b) de origen asociado es eliminado del Gráfico de Descodificación, hay tres símbolos de salida de grado uno, a saber, 230(c), 230(d) y 230(k).
El proceso continúa hasta que todos los símbolos de origen estén recuperados, o hasta que no haya ningún símbolo de salida de grado uno. Por ejemplo, en la situación de la Fig. 2, la siguiente secuencia de símbolos de salida es escogida para recuperar los correspondientes símbolos de origen:
Símbolo de salida
Símbolo de origen recuperado
230(a)
220(b)
230(c)
220(e)
230(h)
220(h)
230(d)
220(i)
230(i)
220(d)
230(b)
220(a)
230(j)
220(f)
230(g)
220(g)
230(e)
220(c)
En este caso, la descodificación es exitosa.
El precedente proceso de descodificación por reacción en cadena encuentra dificultades cuando no se halla ningún símbolo de salida de grado uno. En algunos casos, el proceso de descodificación puede detenerse prematuramente y el descodificador puede indicar un error. Alternativamente, el descodificador puede usar otros algoritmos más complejos, como la eliminación Gaussiana para completar la descodificación, si es posible. Sin embargo, el tiempo de ejecución de la eliminación Gaussiana puede ser prohibitivamente largo para aplicaciones donde se desea una descodificación rápida, especialmente cuando el número de símbolos de entrada no recuperados, en el momento en que no se hallan más símbolos de salida de grado uno, es grande. Esto llevaría a un algoritmo de descodificación cuyo sobregasto de cálculo es significativamente mayor que el de un descodificador por reacción en cadena, y puede por tanto ser indeseable en ciertas aplicaciones.
Por esta razón, el diseño de sistemas de codificación por reacción en cadena se hace usualmente de manera que garantice que el descodificador no se detenga prematuramente. Este requisito puede imponer condiciones más restrictivas en el diseño del código que las que pueden ser posibles usando un descodificador más complejo. Por ejemplo, puede imponer que el grado medio de un símbolo de salida sea mayor que en otros casos y de ese modo puede llevar a una reducción en las prestaciones del codificador y del descodificador. Más generalmente, este procedimiento de descodificación fuerza que el diseño de la tabla de pesos sea de tal forma como para garantizar el éxito del precitado algoritmo de descodificación con alta probabilidad, y por ello puede imponer restricciones sobre el conjunto de posibles tablas de pesos.
Lo que se necesita, por lo tanto, es un nuevo algoritmo de descodificación que ofrezca ventajas de cálculo similares a las del descodificador por reacción en cadena, y que sea capaz de continuar descodificando incluso si no se halla ningún símbolo de salida de grado uno en alguna etapa de la descodificación.
Sumario
La presente invención proporciona sistemas y procesos para descodificar un código de reacción en cadena, incluso cuando no se halla ningún símbolo de salida de grado uno en el código. Esto se logra seleccionando un símbolo de origen que esté asociado a un símbolo de salida de grado dos o superior (es decir, un símbolo de salida que esté a su vez asociado a dos o más símbolos de entrada). El símbolo de origen asociado al símbolo de salida de grado dos o superior es desactivado luego en un intento de producir un símbolo de salida de grado uno. El proceso de inactivación puede ser repetido, bien sucesivamente hasta que sea identificado un símbolo de salida de grado uno, y / o bien toda vez que el proceso de descodificación sea incapaz de localizar un símbolo de salida de grado uno. Diversas realizaciones de los procesos y sistemas son presentadas en la presente memoria.
Breve descripción de los dibujos
La Fig. 1 ilustra un proceso ejemplar de codificación de datos usando códigos de reacción en cadena.
La Fig. 2A ilustra un proceso ejemplar para descodificar símbolos de salida codificados por reacción en cadena. La Fig. 2B ilustra una matriz de descodificación correspondiente al gráfico de descodificación de la Fig. 2A. La Fig. 3 ilustra un panorama de los procesos usados para descodificar códigos de reacción en cadena, de acuerdo a una
realización de la presente invención. La Fig. 4A ilustra una primera realización del proceso de arranque mostrado en la Fig. 3. La Fig. 4B ilustra una segunda realización del proceso 310 de arranque mostrado en la Fig. 3. La Fig. 5 ilustra una primera realización del proceso de selección y desactivación de símbolos de origen mostrado en la
Fig. 3. La Fig. 6 ilustra una realización del proceso de recuperación de símbolos de origen mostrado en la Fig. 3. La Fig. 7A ilustra una segunda realización del proceso de selección de símbolos de origen mostrado en la Fig. 3. La Fig. 7B ilustra un gráfico de descodificación para una cadena de grado 2, de acuerdo a una realización de la presente
invención. La Fig. 8A ilustra una matriz de descodificación modificada, de acuerdo a la presente invención. La Fig. 8B ilustra el proceso de aplicar la eliminación Gaussiana a la matriz de descodificación, de acuerdo a una
realización de la presente invención.
Las Figs. 9A y 9B ilustran un ejemplo de descodificación por inactivación, usando gráficos y matrices de descodificación, de acuerdo a una realización de la presente invención. La Fig. 10A ilustra un gráfico modificado de descodificación, útil en la descodificación de un código de reacción en cadena
de múltiples etapas, de acuerdo a una realización de la presente invención.
La Fig. 10B ilustra una matriz modificada de descodificación correspondiente al gráfico 10A modificado de descodificación. La Fig. 11A ilustra un sistema ejemplar de ordenador operable para ejecutar códigos de instrucción correspondientes a
procesos de los procedimientos descritos, de acuerdo a la presente invención.
La Fig. 11B ilustra un diagrama simplificado de bloques de sistema del sistema ejemplar de ordenador usado para ejecutar códigos de instrucción correspondientes a los procedimientos descritos, de acuerdo a la presente invención. Las Figs. 12A a 12B muestran gráficos que describen varios miles de simulaciones por ordenador del descodificador por
inactivación para diversos valores del número N de símbolos de entrada. Para mayor claridad y conveniencia, las características y componentes que están identificados en dibujos anteriores retienen sus números de referencia en los dibujos siguientes.
Descripción detallada de algunas realizaciones ejemplares
Los siguientes términos son usados en toda la extensión de la solicitud y están concebidos para tener el significado indicado:
El término “activo” se refiere a un posible estado de un símbolo de origen. El estado activo de un símbolo de origen no es permanente, y el estado activo de un símbolo de origen puede cambiar, bien a un estado “inactivo”, un “estado recuperable”, o bien un estado “recuperado”, según son definidos más adelante estos términos.
Los términos “desactivado” o “inactivo” se refieren a otro estado de un símbolo de origen. El estado de un símbolo de origen desactivado no es necesariamente permanente, y un símbolo de origen inactivo puede ser reactivado en procesos según la presente invención.
El término “recuperable” se refiere a otro estado más de un símbolo de origen, que indica que el valor del símbolo de origen puede ser recuperado si son recuperados los valores de algunos otros símbolos de origen. En una realización específica de la invención, un símbolo de origen puede tornarse “recuperable” mediante la inactivación de uno o más símbolos de origen.
El término “símbolo de origen recuperado” se refiere a un símbolo de origen cuyos valores han sido determinados. El valor de un símbolo de origen puede ser determinado, ya sea directamente, p. ej., a partir del valor de un símbolo de salida, el
cual está unívocamente asociado con el mismo, o bien indirectamente, p. ej., a partir del valor de un símbolo de origen desactivado.
La Fig. 3 ilustra un panorama de los procesos usados para descodificar códigos de reacción en cadena, de acuerdo a una realización de la presente invención. Los procesos incluidos en la rutina ejemplar 300 de descodificación incluyen un proceso 310 de arranque, un proceso 320 de selección y desactivación de símbolos de origen y un proceso 330 de recuperación de valores de símbolos de origen.
La Fig. 4A ilustra una primera realización del proceso 310 de arranque ilustrado en la Fig. 3. Inicialmente, en 311 se toma una determinación en cuanto a si están o no presentes algunos símbolos de salida de grado uno. Si es así, el símbolo de origen asociado a ese símbolo de salida es recuperado en 312. El proceso vuelve luego a 311, donde se toma una determinación posterior en cuanto a si permanecen o no algunos otros símbolos de salida de grado uno en el código. Si en 311 no queda ningún símbolo de salida de grado uno, el proceso avanza al proceso 320 de selección y desactivación de símbolos de origen, descrito adicionalmente más adelante.
La Fig. 4B ilustra una segunda realización del proceso 310 de arranque ilustrado en la Fig. 3. En esta realización, un símbolo de salida de grado uno es identificado en 315. Posteriormente, en 316, es recuperado el símbolo de origen asociado al símbolo de salida identificado. Luego, en 317, se toma una determinación en cuanto a si queda o no algún otro símbolo de salida de grado uno. Si es así, el proceso vuelve a 316, donde es recuperado el símbolo de origen asociado. Si no es así, el proceso avanza a los procesos de selección y desactivación de símbolos de origen descritos más adelante.
En una realización de la invención, la recuperación de los símbolos de origen descritos en 310 ocurre temporalmente antes de la recuperación de símbolos de origen desactivados y recuperables, mencionados en 320. Sin embargo, la invención no está limitada a ello, y la recuperación de los símbolos de origen identificados en 310 puede ocurrir de manera esencialmente concurrente con la recuperación de los símbolos de origen, desactivados y recuperables, en el proceso 330, en realizaciones alternativas de la presente invención.
La Fig. 5 ilustra una primera realización del proceso 320 de selección y desactivación de símbolos de origen, ilustrado en la Fig. 3. Inicialmente, en 321, es seleccionado un símbolo de origen activo que esté asociado a un símbolo de salida de grado dos o superior (es decir, un símbolo de salida asociado a dos o más símbolos de origen). La manera por la cual un símbolo de origen específico es seleccionado entre un cierto número de símbolos de origen similares es descrita en mayor detalle más adelante. Luego, en 322, el símbolo de origen específico seleccionado es desactivado. Posteriormente, en 323, se toma una determinación en cuanto a si existen o no algunos símbolos de salida de grado uno, para su descodificación. En algunas realizaciones, la inactivación precedente producirá uno o más símbolos de salida de grado uno. En otras realizaciones, la desactivación precedente no dará como resultado un símbolo de salida de grado uno. En este último caso, el proceso repite el proceso de 321 a 323, según se describe más adelante.
Si el proceso de desactivación de 322 da como resultado la producción de uno o más símbolos de salida de grado uno, el proceso continúa en 324, donde el símbolo de origen asociado a un símbolo de salida de grado uno es declarado como recuperable. El proceso vuelve entonces a 323, donde se toma una determinación en cuanto a si quedan o no algunos símbolos de salida adicionales de grado uno. Los procesos de 323 y 324 son repetidos hasta que todos los símbolos de salida de grado uno producidos por el precedente proceso de desactivación sean declarados como recuperables.
Si la desactivación del símbolo de origen seleccionado en 322 no da como resultado un símbolo de salida de grado uno, o bien, una vez que todos los símbolos de origen asociados a un símbolo de salida de grado uno son declarados como recuperables en 324, el proceso continúa desde 323 a 325, donde se toma una determinación en cuanto a si quedan o no algunos símbolos de origen asociados a símbolos de salida de grado dos o superior. Si es así, el proceso vuelve a 321, donde otro símbolo de origen activo, asociado a un símbolo de salida de grado dos o superior, es seleccionado y desactivado, y se comprueba la presencia de símbolos de salida de grado uno. Una o más iteraciones de los procesos pueden ocurrir, por ejemplo, allí donde la inactivación de un primer símbolo de origen, asociado a un símbolo de salida de grado dos o superior, no dé como resultado un símbolo de salida de grado uno, pero queden símbolos de origen adicionales asociados a un símbolo de salida de grado dos (o superior). En este caso, la posterior desactivación de otro símbolo de origen asociado a un símbolo de salida de grado dos (o superior) puede producir uno o más símbolos de salida de grado uno. El proceso se repite hasta que todos los símbolos de origen hayan sido recuperados (mediante el proceso 310 de arranque), desactivados (mediante 322) o declarados como recuperables (mediante 325), punto en el cual el proceso avanza al proceso 330 de recuperación de valores de símbolos de origen.
La Fig. 6 ilustra una realización del proceso 330 de recuperación de símbolos de origen ilustrado en la Fig. 3. Inicialmente, en 332, son recuperados los valores de uno o más símbolos de origen desactivados en 322. En una realización específica, por ejemplo, en la cual es usada la eliminación Gaussiana en el proceso de descodificación, todos los valores de símbolos de origen desactivados son recuperados en este proceso. Posteriormente, en 334, los valores de uno o más símbolos de origen, declarados como recuperables en el proceso 325, son determinados usando los valores recuperados
de los símbolos de origen desactivados. En una implementación, tal como la precitada, en la cual se usa la eliminación Gaussiana, los valores de todos los símbolos de origen recuperables son determinados en este proceso. En realizaciones alternativas de 332 y 334, son determinados los valores de uno o más, pero no todos, símbolos de origen recuperables. Esto puede ser ventajoso cuando, por razones de necesidad, oportunidad, coste, etc., una descodificación completa del código de reacción en cadena no es requerida o posible. Los procesos de 332 y 334 están adicionalmente ilustrados a continuación en una realización específica.
La Fig. 7A ilustra una segunda realización del proceso 321 de selección de símbolos de origen, por la cual un símbolo de origen activo, asociado a un símbolo de salida de grado al menos dos, es seleccionado para su desactivación. Inicialmente, en 702, es identificado un símbolo de origen activo asociado a un símbolo de salida de grado dos o superior. Luego, en 704, se toma una determinación en cuanto al número de símbolos de origen que son potencialmente recuperables (es decir, símbolos de origen que pueden tornarse recuperables sin inactivación adicional de símbolos de origen) si fuera desactivado el símbolo de origen identificado. Luego, en 706, se hace una comparación entre el número de símbolos de origen potencialmente recuperables y un número predefinido, por lo cual, si el número de símbolos de origen potencialmente recuperables supera el número predefinido, el símbolo de origen identificado es seleccionado para su desactivación en 322. Si el número de símbolos de origen potencialmente recuperables no iguala o supera el número predefinido, entonces el proceso vuelve a 702, donde es identificado otro símbolo de origen asociado a un símbolo de salida de grado dos o superior.
Los expertos en la tecnología apreciarán que pueden ser usados otros criterios de selección para seleccionar símbolos de origen a fin de obtener el mayor número de símbolos de salida de grado uno. Por ejemplo, en un proceso, el símbolo de origen asociado al mayor número de símbolos de salida es seleccionado para su desactivación. En otra realización, un símbolo de origen es seleccionado aleatoriamente entre un grupo de aquellos símbolos de origen asociados a dos o más símbolos de salida. En otra realización adicional más, es identificado un símbolo de salida que está asociado a un número predeterminado de símbolos de origen, p. ej., el menor. Posteriormente, todos los símbolos de origen, menos uno, son seleccionados para su desactivación.
En otra realización del proceso de selección de símbolos de origen, puede ser recuperada una cadena de símbolos de origen. En este proceso, ha de ser identificado un símbolo de salida de grado dos, de modo tal que uno de sus símbolos de origen asociados esté asociado a su vez a un segundo símbolo de salida de grado dos, y tal que uno de sus símbolos de origen asociados esté asociado a su vez a un tercer símbolo de salida de grado dos, y así sucesivamente. Tal cadena de símbolos de salida se llamará una cadena de grado dos en adelante en la presente memoria.
La Fig. 7B ilustra un gráfico de descodificación de una cadena de grado dos, de acuerdo a una realización de la presente invención. Los símbolos de salida que participan en una posible cadena de grado 2 son 720(a), 720(c), 720(d), 720(e) y 720(h). La desactivación, por ejemplo, del símbolo 710(a) de origen reduce el grado del símbolo 720(c) de salida a uno, lo que hace recuperable al símbolo 710(f) de origen, lo que a su vez reduce a uno el grado del símbolo 720(e) de salida. Esto hace recuperable al símbolo 710(b) de origen, lo que reduce a uno los grados de 720(a) y 720(d), y estos hacen recuperables a 710(g) y 710(e). Como puede verse, si el número de símbolos de salida en una tal cadena es k, y si cualquiera de los símbolos de origen asociados de cualquiera de los símbolos de salida en una tal cadena es desactivado, entonces la existencia de un símbolo de salida de grado uno está garantizada para k etapas consecutivas de descodificación por inactivación. Este proceso puede incluir adicionalmente identificar un símbolo de salida de grado dos que lleve a una cadena de grado 2 de longitud máxima, y desactivar un símbolo de origen asociado al símbolo de salida identificado.
Cualquiera de los procesos de selección de símbolos de origen puede incluir adicionalmente un “proceso de retroceso”, por el cual es reactivado el símbolo de origen desactivado, y otro símbolo de origen es seleccionado para su desactivación, de acuerdo a los procedimientos presentados en la presente memoria. La invención no está limitada a los procesos ejemplares por los cuales un símbolo de origen es seleccionado para su desactivación, y puede ser usado en la presente invención cualquier procedimiento en el cual sea seleccionado un símbolo de origen asociado a dos o más símbolos de salida.
Como se ha explicado anteriormente con referencia a la Fig. 2B, una matriz de descodificación es útil en la descodificación de códigos de reacción en cadena. Con referencia específica al proceso de descodificación que usa la inactivación, la matriz 200 de descodificación de la Fig. 2B puede ser modificada para asimilar la inclusión de símbolos de origen inactivos. Específicamente, allí donde la secuencia de índices de símbolos de origen inactivos, durante el proceso de descodificación, es la secuencia i1, i2, ..., in, y el número de símbolos de origen es K, entonces la descodificación por inactivación produce las matrices P y Q de permutación, donde Q intercambia las columnas i1 y K-n+1, i2 y K-n+2, ..., e in y K, y de modo que P • M • Q tenga la forma dada en la Figura 8B. La matriz de descodificación modificada mostrada en la Fig. 8A consiste en una matriz triangular inferior L, y submatrices A, B y C. Las columnas de la submatriz A corresponden a los símbolos de origen inactivos. La tarea del descodificador es resolver el sistema de K’ ecuaciones lineales con K incógnitas x1, ..., xK, dado por
P M • Q • (Q-1 • x) = P • b,
donde x es el vector columna (x1, ..., xK) y b es el vector que consiste en los valores de los K’ símbolos de salida recibidos. En la práctica, las matrices P y Q pueden no ser almacenadas como matrices completas, sino como permutaciones calculadas rastreando el proceso de la Descodificación por Inactivación. Esta forma requiere usualmente mucha menos memoria que el almacenamiento de una matriz completa. Como puede ser apreciado por los expertos en la tecnología, el proceso de recuperación no depende de la permutación específica de las columnas de la matriz de descodificación ilustrada, y pueden ser usadas otras permutaciones de columnas en realizaciones alternativas según la presente invención.
De las muchas maneras posibles para calcular la solución x del sistema de ecuaciones dado anteriormente, ilustraremos en lo que sigue una posibilidad. Esto se ofrece solamente con fines descriptivos, y no está concebido para limitar el ámbito de esta invención.
Para la descripción del núcleo del algoritmo, es ventajoso indicar el vector Q-1 • x como y, y redefinir la tarea de descodificar como la tarea de calcular el vector y. Una vez que y está calculado, x puede ser calculado eficazmente como la permutación de y descrita por Q. Además, la matriz P • M • Q se indica como N; el vector P • b se indica como c, es decir, c es la permutación de b descrita por P, que es nuevamente de cálculo eficaz. La tarea es entonces calcular el vector y que satisface N • y = c, donde N tiene la forma dada en la Fig. 8A.
Para resolver este sistema, la eliminación Gaussiana puede ser aplicada a la matriz N. Las filas de la submatriz B son eliminadas por las filas de la matriz triangular inferior L. La misma transformación es aplicada al vector c. Esta acción transforma la matriz B en la matriz que consiste en ceros, y la matriz C es transformada en una matriz D distinta, obtenida aplicando las mismas etapas de eliminación a las matrices A y C. Esta transformación se muestra en la Figura 8B. Suponiendo que han sido desactivados n símbolos de origen, y que hay K símbolos de origen y K’ símbolos de salida, la submatriz L tiene (K-n) filas y (K-n) columnas, la matriz A tiene (K-n) filas y n columnas, y la matriz D tiene (K’-K+n) filas y n columnas. Las submatrices L y A en la matriz transformada son las mismas que las correspondientes submatrices en la matriz N. El vector b también está transformado en otro vector f con dos componentes: el vector d dado en 870, que consiste en los primeros K-n componentes de f, y el vector e en 875, que consiste en los componentes restantes de f. De manera correspondiente, el vector desconocido y en 820 es subdivido en dos subvectores. El vector u consiste en las primeras K-n entradas de y, y el vector z consiste en las n entradas restantes.
Esta eliminación transforma el sistema original de ecuaciones en dos sistemas distintos: el sistema dado por D • z= e y el sistema L • u + A • z = d. Los valores del vector desconocido z corresponden a los valores de los símbolos de origen correspondientes a los símbolos de origen inactivados. Una vez que estos valores son hallados a partir del conjunto de ecuaciones D • z = e, los valores restantes dados por u pueden ser hallados de una gran variedad de formas. En algunas realizaciones de la presente invención, estos valores pueden ser hallados multiplicando la matriz A por z, efectuando la operación lógica XOR del vector resultante con d para obtener un vector g, y resolviendo el sistema de ecuaciones L • u =
g. En algunas realizaciones, este último sistema puede ser resuelto usando un descodificador por reacción en cadena. En otras realizaciones más, el valor de cada símbolo de origen, correspondiente a un símbolo de origen inactivo, es sometido a una operación XOR con los valores de los símbolos de salida correspondientes a los símbolos de salida vecinos, asociados a dicho símbolo de origen, y el símbolo de origen inactivo es eliminado del correspondiente gráfico de descodificación (no mostrado). Esto produce un nuevo gráfico restringido de descodificación, con todos los símbolos de origen inactivos eliminados. Luego puede ser aplicada una descodificación normal por reacción en cadena al Gráfico de Descodificación restringido, para recuperar los otros símbolos de origen.
El sistema de ecuaciones D • z = e puede ser resuelto de una gran variedad de formas. En algunas realizaciones, este sistema puede ser resuelto usando el algoritmo de eliminación Gaussiana. En otras realizaciones, la descodificación por inactivación puede ser aplicada recursivamente para obtener los valores desconocidos de los símbolos de origen inactivos. También pueden ser aplicados otros procedimientos para resolver sistemas de ecuaciones lineales.
En algunas realizaciones del descodificador por inactivación, el proceso de descodificación puede comenzar antes de que todos los símbolos de salida hayan sido introducidos en el gráfico de descodificación. En estas realizaciones, toda vez que el gráfico de descodificación no tiene más símbolos de salida de grado uno, y tiene al menos un símbolo de origen activo, las estrategias descritas anteriormente pueden ser empleadas para determinar si se inactiva un símbolo de origen o si se introduce otro símbolo de salida en el Gráfico de Descodificación, si existe un tal símbolo de salida. En los casos donde el proceso de descodificación comienza antes de que todos los símbolos de salida hayan sido recogidos, la creación de la matriz de descodificación, y el proceso de eliminación para la matriz de descodificación, pueden tener lugar de manera esencialmente concurrente con el proceso de recepción, efectuándose una o más etapas del proceso de eliminación con la recepción de cada nuevo símbolo de salida. Alternativamente, más de un símbolo de salida podría ser recogido a la vez, y la descodificación podría avanzar hasta que todos dichos símbolos de salida estén procesados; si no es así, todos los símbolos de origen son recuperados en este punto, otro conjunto de símbolos de salida podría ser solicitado y procesado, hasta que todos los símbolos de origen hayan sido recuperados.
Las Figs. 9A y 9B ilustran un ejemplo de descodificación por inactivación que usa los precitados gráficos y matrices de descodificación, según una realización de la presente invención. El gráfico de descodificación original de la Fig. 9A contiene seis símbolos de origen indicados como 910(a) a 910(f), y siete símbolos de salida indicados como 920(a) a 929(g). Como puede verse, la descodificación convencional por reacción en cadena ni siquiera puede comenzar en este gráfico, ya que no hay ningún símbolo de salida de grado uno. Desactivando el símbolo 910(f) de origen, la descodificación por reacción en cadena puede comenzar, y en cada etapa se halla un símbolo de salida de grado uno.
La Fig. 9B ilustra la permutación que ocurre dentro de la matriz de descodificación como resultado del proceso de inactivación. La desactivación del símbolo 910(f) da como resultado la desactivación de la última columna de la matriz. Las columnas restantes pueden luego ser transformadas en una forma triangular inferior. La secuencia de círculos y flechas indica el orden en el cual han de ser permutadas las filas y columnas, observando que una posición a la que apunta la k-ésima flecha debe ser permutada con la posición (k, k) de la nueva matriz triangular inferior. Por ejemplo, las permutaciones deben ser hechas en un orden tal que la posición (2,4) se convierta en la posición (1,1), la posición (1,1) se convierta en la posición (2,2), la posición (3,5) se convierta en la posición (3,3), etc.
La Fig. 10A ilustra un gráfico 1000 de descodificación modificado, para la descodificación, según la invención, de un código de reacción en cadena de múltiples etapas, tal como el descrito en Raptor. El gráfico 1000 incluye una pluralidad de símbolos 1020(a) a (f) de origen y símbolos 1050 de salida de múltiples etapas, que incluyen colectivamente los símbolos 1052(a) a (g) de salida anteriormente descritos, y los símbolos 1055(a) a (d) de comprobación. Los símbolos 1052 de salida son según lo anteriormente descrito, estando cada uno asociado a uno o más símbolos de origen. Cada uno de los símbolos 1055 de comprobación también está asociado a uno o más símbolos de origen, y describe la relación matemática entre dos o más símbolos de origen. Por ejemplo, el símbolo 1055(a) significa que la operación XOR de los valores de los símbolos de origen, correspondientes a los símbolos 1020(a), 1020(b), 1020(e) y 1020(f) de origen, es cero. La interrelación entre símbolos de origen puede ser impartida por un proceso de codificación estática, tal como un código de control de paridad de baja densidad, y similares.
Como ejemplo específico, donde se usa un código de control de paridad de baja densidad para el proceso de codificación estática, luego puede ser añadido un cierto número de símbolos de salida de múltiples etapas, igual al número de símbolos de comprobación en este código, al gráfico de descodificación, fijar su valor en 0, y el gráfico de descodificación puede ser aumentado por el gráfico del código de control de paridad de baja densidad, entre los símbolos de origen y los símbolos de comprobación, y el gráfico de descodificación puede ser reemplazado por el nuevo gráfico. La elección de códigos de control de paridad de baja densidad no es esencial para esta solicitud. En general, para cualquier tipo de codificación estática, la correspondiente matriz de control de paridad define un gráfico bipartito por el cual puede ser aumentado el gráfico de descodificación.
La Fig. 10B ilustra una matriz 1070 de descodificación modificada que corresponde al gráfico 10A de descodificación modificado. La matriz 1070 de descodificación modificada está poblada con ceros y unos, y tiene tantas columnas como símbolos de origen haya, y tantas filas como el número conjunto de símbolos de salida y símbolos de comprobación. De manera correspondiente, la matriz 1070 de descodificación modificada consiste en dos conjuntos de filas, uno correspondiente a los símbolos de salida, y uno correspondiente a los símbolos de comprobación. Allí donde hay K’ símbolos de salida, C símbolos de comprobación y K símbolos de origen, la matriz de descodificación modificada puede ser descompuesta en una submatriz Mo que consiste en K’ filas y K columnas, y una matriz Mc que consiste en C filas y K columnas. Si x1, ..., xK indican los valores desconocidos de los símbolos de origen, y b1, ..., bK indican los valores conocidos de los símbolos de salida recibidos, la tarea del descodificador puede ser resolver el sistema de ecuaciones dado por Mo • x = b, y Mc • x = 0. El sistema combinado de ecuaciones sería como el dado en la Fig. 10B.
En algunas realizaciones de esta invención, la descodificación por inactivación puede proceder de la misma manera descrita anteriormente, siendo el gráfico de descodificación de la Fig. 9A reemplazado por el gráfico de descodificación modificado de la Fig. 10A, y la matriz de descodificación de 8B reemplazada por la matriz de descodificación modificada de la Fig. 10B. En otras realizaciones, los distintos símbolos del gráfico 1000 de descodificación modificado pueden recibir distintas prioridades durante las distintas fases de la descodificación. Por ejemplo, la descodificación puede comenzar procesando símbolos de salida solamente, y recurriendo a símbolos de comprobación de grado uno solamente si no queda ningún símbolo de salida de grado uno. En algunas aplicaciones, esto puede llevar a menores recursos de memoria y de cálculo, según los símbolos de comprobación son inyectados en el gráfico de descodificación modificado por criterios básicos de necesidad.
Cada uno de los procedimientos descritos en la presente memoria pueden ser puestos en práctica en una multitud de formas distintas (es decir, software, hardware, o una combinación de ambos) y en una gran variedad de sistemas. En una realización, los procedimientos descritos pueden ser implementados como códigos de instrucción almacenados en un disco legible por ordenador, en memoria (volátil o no volátil), o bien residir dentro de un procesador (ordenador, procesador incrustado y similares). Además, un sistema para descodificar un código de reacción en cadena, usando las técnicas de inactivación descritas en la presente memoria, puede comprender un ordenador u otra máquina programable de ese tipo, con una memoria operable para almacenar y / o ejecutar códigos de instrucción correspondientes a los
procesos descritos en la presente memoria.
La Fig. 11A ilustra un sistema ejemplar de ordenador operable para ejecutar códigos de instrucción correspondientes a procesos de los procedimientos descritos. El sistema 1110 de ordenador incluye un monitor 1114, una pantalla 1112, un gabinete 1118 y un teclado 1134. Un ratón (no mostrado), un lápiz de luz u otras interfaces de Entrada / Salida, tales como las interfaces de realidad virtual, también pueden ser incluidas para proporcionar comandos de Entrada / Salida. El gabinete 1118 aloja un controlador 1116 para medios extraíbles tales como CD o DVD, y un controlador de disco rígido (no mostrado). El sistema 1110 de ordenador puede incluir controladores y / o interfaces de controlador, operables para registrar o leer datos, código de instrucción y otra información necesaria para ejecutar los procedimientos de la presente invención. El gabinete 1118 también aloja componentes usuales de ordenador (no mostrados), tales como un procesador, memoria y similares.
La Fig. 11B ilustra un diagrama simplificado de bloques de sistema del sistema 1110 ejemplar de ordenador usado para ejecutar códigos de instrucción correspondientes a los procedimientos descritos. Según se muestra en la Fig. 11A, el sistema 1110 de ordenador incluye el monitor 1114 que, optativamente, es interactivo con el controlador 1124 de Entrada / Salida. El sistema 1110 de ordenador incluye adicionalmente subsistemas tales como la memoria 1126 del sistema, el procesador central 1128, el altavoz 1130, el disco extraíble 1136, el teclado 1134, el disco fijo 1137 y la interfaz 1138 de red. Otros sistemas de ordenador adecuados para su uso con los procedimientos descritos pueden incluir subsistemas adicionales, o menos subsistemas. Por ejemplo, otro sistema de ordenador podría incluir un procesador adicional. Las flechas tales como 1140 representan la arquitectura del bus de sistema del sistema 1110 de ordenador. Sin embargo, estas flechas 1140 son ilustrativas de cualquier esquema de interconexión que sirva para enlazar los subsistemas. Por ejemplo, un bus local podría ser utilizado para conectar el procesador central 1128 con la memoria 1126 del sistema. El sistema 1110 de ordenador mostrado en la Fig. 11B no es más que un ejemplo de un sistema de ordenador adecuado para su uso con la presente invención. Otras configuraciones de subsistemas adecuados para su uso con la presente invención serán inmediatamente evidentes para alguien medianamente experto en la tecnología.
En consecuencia, en algunas realizaciones de la presente invención, el mecanismo de descodificación por inactivación es usado para reducir el sobregasto de recepción de la codificación por reacción en cadena cuando el contenido original entero debe ser reconstruido.
En otras realizaciones de la presente invención, el descodificador por inactivación es usado para reducir el grado medio de un símbolo de salida, y reducir por tanto los recursos de cálculo usados para crear símbolos de salida.
Otra propiedad de un sistema de codificación por reacción en cadena que usa un descodificador por inactivación es que puede ser diseñada una tabla de pesos en la cual ninguno de los símbolos de salida pueda ser de grado uno. Esto significa que ninguno de los símbolos de salida de un sistema de codificación de ese tipo contiene el valor de un símbolo de entrada. En algunas realizaciones, esta propiedad puede ser usada para reducir el grado medio de los símbolos de salida, reduciendo por ello la carga de cálculo del codificador. Además, en algunas aplicaciones, esta propiedad puede ser usada para dar a la transmisión un nivel ligero de seguridad ante acceso no autorizado a los datos originales.
Ejemplo de descodificación por inactivación
Una realización de un sistema de codificación por reacción en cadena, según lo revelado en Raptor, está descrita por el número de símbolos de datos, indicado como N, una codificación estática que genera R símbolos de codificación estáticos y un codificador dinámico descrito por una tabla de pesos. En algunas realizaciones también puede ser especificado un sobregasto de recepción que da buenas garantías probabilísticas del éxito del descodificador. En otras realizaciones, los símbolos de salida pueden ser recogidos hasta que sea posible la descodificación completa, y no hay ninguna necesidad de especificar un sobregasto de recepción.
La siguiente tabla describe diversos parámetros para un descodificador ejemplar por inactivación, dando la primera columna la gama para el valor N, dando la segunda información sobre la generación de símbolos de codificación estáticos, dando la tercera la tabla de pesos para la generación de símbolos de codificación dinámicos y, finalmente, dando la cuarta el número de símbolos de codificación estáticos calculados:
1-200
9 1 S0 5% + 130
200-970
9 1 S1 5% + 130
970-1250
9 1 S1 5% + 140
1250-1320
9 1 S1 5% + 130
1320-2100
3 0,5 S1 5% + 110
5
0,5
2100-2500
1 2/3 S1 5% + 100
9
1/3
2500-4100
1 2/3 S1 5% + 100
8
1/3
4100-5000
1 2/3 S1 5% + 100
7
1/3
5000-8100
1 2/3 S2 5% + 100
7
1/3
8100-16500
1 2/3 S2 5% + 100
6
1/3
16500-65536
1 2/3 S2 5% + 100
5
1/3
>65536
1 2/3 S2 5% + 100
4
1/3
Por ejemplo, la novena fila en la tabla significa que si N está entre 5000 y 8100, entonces el número R de símbolos de
codificación estáticos es el entero más pequeño mayor o igual a 0,05*N + 100. En todos los casos, la primera etapa del
5 codificador estático puede usar primero un código de Hamming para codificar los símbolos originales, según lo descrito
en Raptor. La segunda etapa puede usar un código de control de paridad de baja densidad. En el ejemplo dado por la
novena fila, la matriz de control de paridad de este código consiste en dos submatrices. La primera tiene !2*R/3∀ filas y
N+R columnas, donde !a∀ indica el mayor entero más pequeño o igual a a. La segunda submatriz tiene R-!2*R/3∀ filas y
N+R columnas. Cada una de estas submatrices es escogida aleatoriamente, sometida a la condición de que en la primera 10 matriz cada columna tiene exactamente 1 entrada no nula, y en la segunda matriz cada columna tiene exactamente 7
entradas no nulas.
Las tablas de pesos correspondientes a S0, S1 y S2 están dadas por:
Tabla de pesos para S0
Peso
Probabilidad
Tabla de pesos para S1
Peso
Probabilidad
1
0,0221538
2
0,492912
3
0,166059
4
0,0768401
5
0,0803003
8
0,0636444
9
0,0353027
19
0,0439408
20
0,0188495
Tabla de pesos para S2
Peso
Probabilidad
1
0,008199
2
0,507871
3
0,171036
4
0,074750
5
0,084950
8
0,057682
9
0,038307
19
0,057200
Los pesos medios de S1 y S2 son 4,254 y 4,154, respectivamente.
Si el sobregasto de recepción está fijado en 5% o 50, aquel que sea mayor, entonces puede ser demostrado matemáticamente que la probabilidad de fallo en la descodificación por inactivación es menor que 10-13. El ejemplo concreto dado aquí es solamente con fines ilustrativos. Las variaciones de los números efectivos llevan a diseños que
10 están dentro del ámbito de esta invención.
Las Figs. 12A a 12B muestran gráficos que describen varios miles de simulaciones de ordenador del descodificador por inactivación, para diversos valores del número N de símbolos de entrada. El eje horizontal indica N, y el eje vertical indica el número de símbolos de origen inactivos en el Gráfico de Descodificación Modificado. Cada punto representa una ronda de simulación. La Figura 10 (a) muestra los resultados para la gama de N entre 1 y 140.000. La Figura 10(b) es la
15 ampliación de la Figura 10(a) para la gama de N entre 1 y 16.000.
Como puede apreciarse, en algunas de las ejecuciones, el número de símbolos de origen inactivos es cero, lo que significa que el descodificador normal por reacción en cadena habría completado la descodificación. Sin embargo, donde N está entre 1 y 10.000, en la mayoría de los casos el número de símbolos de origen inactivos es mayor que uno. En estos casos el descodificador normal por reacción en cadena habría fallado. El número de símbolos de origen inactivados 20 es muy frecuentemente cero si el número N de símbolos de origen es mayor que 20.000. En estos casos, el descodificador es especialmente rápido, dando a la vez garantías probabilísticas excepcionalmente buenas para la
descodificación exitosa.
La descripción precedente ha sido presentada con fines de ilustración y descripción. No está concebida para ser exhaustiva ni para limitar la invención a la forma exacta revelada y, obviamente, muchas modificaciones y variaciones son posibles a la luz de la revelación anterior. Las realizaciones descritas fueron escogidas a fin de explicar de la mejor manera los principios de la invención y su aplicación práctica, para permitir por ello a otros expertos en la técnica utilizar de la mejor manera la invención en diversas realizaciones y con diversas modificaciones, según se adecuen al uso específico contemplado. Se pretende que el alcance de la invención esté definido por las reivindicaciones adjuntas.

Claims (14)

  1. REIVINDICACIONES
    1. Un descodificador para descodificar un código de reacción en cadena, con una pluralidad de símbolos (230, 720, 920) de salida y una pluralidad de símbolos (220, 710, 910, 1010) de origen, en el cual cada símbolo de salida está asociado a uno o más símbolos de origen, y siendo los códigos de reacción en cadena tales que un símbolo de origen puede ser descodificado a partir de un símbolo de salida de grado uno, y la descodificación de un símbolo de origen reduce los grados de los símbolos de salida que están asociados a ese símbolo de origen descodificado, y teniendo el código de reacción en cadena una pluralidad de símbolos de salida de múltiples etapas y dicha pluralidad de símbolos de origen, comprendiendo cada uno de los símbolos de salida de múltiples etapas ya sea dicho símbolo de salida o bien un símbolo de comprobación, en el que cada uno de los símbolos de salida de múltiples etapas está asociado a uno o más símbolos de origen, denominándose los símbolos de salida de múltiples etapas, asociados a uno o más símbolos de origen, símbolos de salida de múltiples etapas de grado uno o superior, en el que al menos un símbolo de salida de múltiples etapas está asociado a al menos dos símbolos de origen, denominándose los símbolos de salida de múltiples etapas, asociados a dos o más símbolos de origen, símbolos de salida de múltiples etapas de grado dos o superior, y en el que al menos un símbolo de origen está marcado como activo, comprendiendo el descodificador:
    (0)
    medios para determinar que ningún símbolo de salida de múltiples etapas dentro del código de reacción en cadena está asociado a solamente un símbolo de origen,
    (i)
    medios para seleccionar uno de los símbolos de origen activos asociados a un símbolo de salida de múltiples etapas de grado dos o superior;
    (ii)
    medios para desactivar el símbolo de origen seleccionado, asociado a un símbolo de salida de múltiples etapas de grado dos o superior, en el que (ii) el medio para desactivar el símbolo de origen seleccionado produce un símbolo de origen desactivado y uno o más símbolos de origen recuperables, en el que cada símbolo de origen recuperable está asociado a un símbolo de salida de múltiples etapas de grado uno, donde el grado está determinado según lo especificado anteriormente, pero considerando el símbolo de origen desactivado como descodificado;
    (iii) medios para recuperar los valores de uno o más símbolos de origen desactivados; y
    (iv) medios para determinar, en base a los valores recuperados de los símbolos de origen desactivados, los valores de uno o más símbolos de origen recuperables.
  2. 2.
    El descodificador de la reivindicación 1, que comprende adicionalmente medios para repetir (i) a (ii) si algunos símbolos de origen, asociados a un símbolo de salida de múltiples etapas de grado dos o superior, permanecen en el código de reacción en cadena.
  3. 3.
    El descodificador de la reivindicación 1, que comprende adicionalmente medios para repetir (i) a (ii) una o más veces, para producir uno o más símbolos de origen desactivados y uno o más símbolos de origen recuperables.
  4. 4.
    El descodificador de la reivindicación 1, en el cual (iii) los medios para recuperar los valores de uno o más de los símbolos de origen desactivados están adaptados para recuperar los valores de todos los símbolos de origen desactivados.
  5. 5.
    El descodificador de la reivindicación 1, en el cual (i) los medios para seleccionar uno de los símbolos de origen activos están adaptados para seleccionar uno de los símbolos de origen activos, que esté asociado a un símbolo de salida de múltiples etapas de grado dos o superior, comprendiendo el símbolo de salida de múltiples etapas dos o más símbolos de comprobación.
  6. 6.
    El descodificador de la reivindicación 1, en el cual (i) los medios para seleccionar uno de los símbolos de origen activos están adaptados para seleccionar uno de los símbolos de origen activos, que esté asociado al mayor número de símbolos de salida de múltiples etapas.
  7. 7.
    El descodificador de la reivindicación 1, en el cual (i) los medios para seleccionar uno de los símbolos de origen activos están adaptados para seleccionar aleatoriamente un símbolo de origen activo entre un grupo de símbolos de origen activos, cada uno de los cuales está asociado a un símbolo de salida de múltiples etapas de grado dos o superior.
  8. 8.
    El descodificador de la reivindicación 1, en el cual (i) los medios para seleccionar uno de los símbolos de origen activos están adaptados para:
    (a)
    identificar un símbolo de origen activo;
    (b)
    determinar el número de símbolos de origen activos que son potencialmente recuperables si es desactivado el símbolo
    de origen activo identificado; y
    (c)
    si el número de símbolos de origen recuperables no supera un número predefinido, repetir (a) y (b) para otro símbolo de origen activo.
  9. 9. El descodificador de la reivindicación 3, que comprende adicionalmente:
    5 medios para reactivar el símbolo de origen desactivado si el número de símbolos de origen potencialmente recuperables no supera un número predefinido; y
    medios para seleccionar otro símbolo de origen activo.
  10. 10. El descodificador de la reivindicación 1, en el cual los medios para seleccionar uno de los símbolos de origen activos están adaptados para:
    10 identificar un símbolo de origen que esté asociado a un símbolo de salida de múltiples etapas, que esté a su vez asociado a un número predefinido de símbolos de origen activos,
    en el cual los medios para desactivar el símbolo de origen seleccionado están adaptados para desactivar todos menos uno de los símbolos de origen activos, asociados al símbolo de salida de múltiples etapas identificado, y en el cual el símbolo de origen activo restante comprende un símbolo de origen no desactivado.
    15 11. El descodificador de la reivindicación 10, en el cual el símbolo de origen seleccionado está asociado al menor número de símbolos de salida de múltiples etapas.
  11. 12. El descodificador de la reivindicación 1, en el cual (i) los medios para seleccionar uno de los símbolos de origen activos están adaptados para seleccionar un símbolo de origen activo, asociado a un primer símbolo de salida de múltiples etapas, en el que el primer símbolo de salida de múltiples etapas está asociado a un primer conjunto de dos
    20 símbolos de origen activos.
  12. 13.
    El descodificador de la reivindicación 12, en el cual al menos uno del primer conjunto de dos símbolos de origen está asociado a un segundo símbolo de salida de múltiples etapas, estando asociado el segundo símbolo de salida de múltiples etapas a un segundo conjunto de dos símbolos de origen activos.
  13. 14.
    El descodificador de la reivindicación 13, en el cual al menos uno entre el segundo conjunto de dos símbolos de origen
    25 está asociado a un tercer símbolo de salida de múltiples etapas, estando asociado el tercer símbolo de salida de múltiples etapas a un tercer conjunto de dos símbolos de origen activos.
  14. 15. El descodificador de la reivindicación 1, en el cual los símbolos de comprobación son generados de acuerdo a un código LDPC.
ES10013224.0T 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena por inactivación Expired - Lifetime ES2459065T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38812902P 2002-06-11 2002-06-11
US388129P 2002-06-11

Publications (1)

Publication Number Publication Date
ES2459065T3 true ES2459065T3 (es) 2014-05-07

Family

ID=29736429

Family Applications (5)

Application Number Title Priority Date Filing Date
ES10013228.1T Expired - Lifetime ES2445116T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena por inactivación
ES10013226.5T Expired - Lifetime ES2443823T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena por inactivación
ES10013227.3T Expired - Lifetime ES2445761T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena mediante inactivación
ES10013224.0T Expired - Lifetime ES2459065T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena por inactivación
ES03757482T Expired - Lifetime ES2400239T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena mediante la inactivación de símbolos recuperados

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES10013228.1T Expired - Lifetime ES2445116T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena por inactivación
ES10013226.5T Expired - Lifetime ES2443823T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena por inactivación
ES10013227.3T Expired - Lifetime ES2445761T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena mediante inactivación

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES03757482T Expired - Lifetime ES2400239T3 (es) 2002-06-11 2003-06-10 Descodificación de códigos de reacción en cadena mediante la inactivación de símbolos recuperados

Country Status (8)

Country Link
US (5) US6856263B2 (es)
EP (6) EP2306652B1 (es)
JP (1) JP4224022B2 (es)
CN (1) CN100479333C (es)
AU (1) AU2003253635A1 (es)
ES (5) ES2445116T3 (es)
HK (1) HK1082127A1 (es)
WO (1) WO2003105350A1 (es)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US7243285B2 (en) * 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
JP4224022B2 (ja) 2002-06-11 2009-02-12 デジタル ファウンテン, インコーポレイテッド イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
KR101143282B1 (ko) * 2002-10-05 2012-05-08 디지털 파운튼, 인크. 연쇄 반응 코드의 체계적 인코딩 및 디코딩
KR101183843B1 (ko) 2003-10-06 2012-09-19 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러정정 다중-스테이지 코드 생성기 및 디코더
US8374284B2 (en) * 2004-02-12 2013-02-12 Apple, Inc. Universal decoder
WO2005112250A2 (en) 2004-05-07 2005-11-24 Digital Fountain, Inc. File download and streaming system
US7203871B2 (en) 2004-06-03 2007-04-10 Cisco Technology, Inc. Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes
WO2006020826A2 (en) * 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
US7596673B2 (en) * 2005-12-08 2009-09-29 Sony Corporation Failure tolerant data storage
FR2895176B1 (fr) * 2005-12-21 2008-02-22 St Microelectronics Sa Transmission securisee avec code correcteur d'erreur
CN101686107B (zh) 2006-02-13 2014-08-13 数字方敦股份有限公司 使用可变fec开销和保护周期的流送和缓冲
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
JP4808054B2 (ja) * 2006-03-17 2011-11-02 富士通株式会社 データ転送方法及び,これを適用する通信システム及びプログラム
JP4696008B2 (ja) * 2006-03-20 2011-06-08 富士通株式会社 Ip送信装置およびip送信方法
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9178535B2 (en) * 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9419749B2 (en) * 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US8006160B2 (en) * 2006-06-29 2011-08-23 Digital Fountain, Inc. Efficient encoding and decoding methods for representing schedules and processing forward error correction codes
US8181093B2 (en) * 2006-12-29 2012-05-15 Interdigital Technology Corporation Method and apparatus for transmitting and receiving multimedia broadcast multicast services via a dedicated downlink carrier
US8407552B2 (en) * 2007-06-19 2013-03-26 France Telecom Method based on error corrector codes, applicable to a variable rate multimedia datastream
AU2008298602A1 (en) 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
TWI357245B (en) * 2007-12-31 2012-01-21 Ind Tech Res Inst System and method for downloading real-time intera
US9281847B2 (en) * 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9015564B2 (en) 2009-08-19 2015-04-21 Qualcomm Incorporated Content delivery system with allocation of source data and repair data among HTTP servers
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
KR101154818B1 (ko) * 2009-10-06 2012-06-08 고려대학교 산학협력단 랩터 부호 사용 시스템을 위한 복호화 방법
KR101615384B1 (ko) * 2010-04-05 2016-04-25 삼성전자주식회사 통신 시스템에서의 채널 부호화 장치 및 방법
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
DE102010035210B4 (de) 2010-08-24 2012-08-30 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
TWI445323B (zh) 2010-12-21 2014-07-11 Ind Tech Res Inst 資料傳送的混合式編解碼裝置與方法
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9134378B2 (en) * 2011-03-14 2015-09-15 Synopsys, Inc. Linear decompressor with two-step dynamic encoding
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
KR101591238B1 (ko) 2011-11-01 2016-02-18 퀄컴 인코포레이티드 Http 서버들 사이의 소스 데이터 및 리페어 데이터의 할당에 의한 컨텐츠 전달 시스템
US9612902B2 (en) 2012-03-12 2017-04-04 Tvu Networks Corporation Methods and apparatus for maximum utilization of a dynamic varying digital data channel
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US10345369B2 (en) 2012-10-02 2019-07-09 Synopsys, Inc. Augmented power-aware decompressor
US10015486B2 (en) * 2012-10-26 2018-07-03 Intel Corporation Enhanced video decoding with application layer forward error correction
WO2015022910A1 (ja) 2013-08-16 2015-02-19 日本電信電話株式会社 通信路復号方法及び通信路復号装置
EP2858286A1 (en) * 2013-10-04 2015-04-08 Alcatel Lucent Rateless decoding
US9805479B2 (en) 2013-11-11 2017-10-31 Amazon Technologies, Inc. Session idle optimization for streaming server
US9578074B2 (en) 2013-11-11 2017-02-21 Amazon Technologies, Inc. Adaptive content transmission
US9641592B2 (en) 2013-11-11 2017-05-02 Amazon Technologies, Inc. Location of actor resources
US9604139B2 (en) 2013-11-11 2017-03-28 Amazon Technologies, Inc. Service for generating graphics object data
US9634942B2 (en) 2013-11-11 2017-04-25 Amazon Technologies, Inc. Adaptive scene complexity based on service quality
US9582904B2 (en) 2013-11-11 2017-02-28 Amazon Technologies, Inc. Image composition based on remote object data
US9413830B2 (en) 2013-11-11 2016-08-09 Amazon Technologies, Inc. Application streaming service
TWI523465B (zh) * 2013-12-24 2016-02-21 財團法人工業技術研究院 檔案傳輸系統和方法
US10404416B2 (en) * 2014-04-09 2019-09-03 Hirschmann Automation And Control Gmbh Redundant transmission system with PRP and fault prediction
WO2015178018A1 (ja) * 2014-05-22 2015-11-26 日本電気株式会社 端末、パケット復号方法、および、プログラムが記憶された記憶媒体
US10903858B2 (en) 2015-05-27 2021-01-26 Quantum Corporation Dynamically variable error correcting code (ECC) system with hybrid rateless reed-solomon ECCs
US10380303B2 (en) 2015-11-30 2019-08-13 Synopsys, Inc. Power-aware dynamic encoding
WO2017196946A1 (en) 2016-05-12 2017-11-16 Sharp Laboratories Of America, Inc. Communication methods and apparatus employing rateless codes
TWI602409B (zh) * 2016-08-15 2017-10-11 國立交通大學 資料傳輸方法與系統
KR20200036338A (ko) * 2018-09-28 2020-04-07 삼성전자주식회사 무선 통신 시스템에서 극 부호를 이용한 부호화 및 복호화를 위한 장치 및 방법

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3215601A (en) 1963-02-07 1965-11-02 Warner Lambert Pharmaceutical Antacid composition and method of making same
GB8815978D0 (en) * 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
CA2219379A1 (en) 1995-04-27 1996-10-31 Cadathur V. Chakravarthy High integrity transport for time critical multimedia networking applications
US6073250A (en) * 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US7243285B2 (en) * 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US6320520B1 (en) * 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6618451B1 (en) * 1999-02-13 2003-09-09 Altocom Inc Efficient reduced state maximum likelihood sequence estimator
US6678855B1 (en) * 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6748441B1 (en) * 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6486803B1 (en) * 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US6411223B1 (en) * 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US7072971B2 (en) * 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US6820221B2 (en) * 2001-04-13 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for detecting process and network failures in a distributed system
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6677864B2 (en) * 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
JP4224022B2 (ja) 2002-06-11 2009-02-12 デジタル ファウンテン, インコーポレイテッド イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理
KR101143282B1 (ko) * 2002-10-05 2012-05-08 디지털 파운튼, 인크. 연쇄 반응 코드의 체계적 인코딩 및 디코딩
WO2004068715A2 (en) * 2003-01-29 2004-08-12 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
KR101183843B1 (ko) * 2003-10-06 2012-09-19 디지털 파운튼, 인크. 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러정정 다중-스테이지 코드 생성기 및 디코더
CN100555213C (zh) * 2003-10-14 2009-10-28 松下电器产业株式会社 数据转换器
WO2006020826A2 (en) * 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
US7644335B2 (en) 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7164370B1 (en) * 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
AU2008298602A1 (en) * 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8151174B2 (en) * 2008-02-13 2012-04-03 Sunrise IP, LLC Block modulus coding (BMC) systems and methods for block coding with non-binary modulus

Also Published As

Publication number Publication date
WO2003105350A1 (en) 2003-12-18
AU2003253635A1 (en) 2003-12-22
EP2278719A2 (en) 2011-01-26
CN1679243A (zh) 2005-10-05
EP2306652B1 (en) 2014-03-19
EP2278720A3 (en) 2011-03-30
EP2278717A3 (en) 2011-03-30
US20080169945A1 (en) 2008-07-17
EP2278718A2 (en) 2011-01-26
EP2278718A3 (en) 2011-03-30
US20100103001A1 (en) 2010-04-29
US6856263B2 (en) 2005-02-15
US7265688B2 (en) 2007-09-04
US20060227022A1 (en) 2006-10-12
EP2278719A3 (en) 2011-03-30
EP1506621A1 (en) 2005-02-16
JP2006512790A (ja) 2006-04-13
EP2278718B1 (en) 2013-12-18
ES2443823T3 (es) 2014-02-20
EP2278719B1 (en) 2013-12-18
CN100479333C (zh) 2009-04-15
EP2278720A2 (en) 2011-01-26
EP2278717A2 (en) 2011-01-26
EP2306652A1 (en) 2011-04-06
EP1506621B1 (en) 2013-01-02
US7633413B2 (en) 2009-12-15
ES2445761T3 (es) 2014-03-05
JP4224022B2 (ja) 2009-02-12
ES2400239T3 (es) 2013-04-08
HK1082127A1 (en) 2006-05-26
EP2278720B1 (en) 2013-12-25
US20040075592A1 (en) 2004-04-22
US7956772B2 (en) 2011-06-07
ES2445116T3 (es) 2014-02-28
US7030785B2 (en) 2006-04-18
US20050206537A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
ES2459065T3 (es) Descodificación de códigos de reacción en cadena por inactivación
US9240810B2 (en) Systems and processes for decoding chain reaction codes through inactivation
ES2516765T3 (es) Procedimientos y aparatos para descodificar códigos LDPC
JP5231459B2 (ja) 低密度パリティ検査(ldpc)符号を符号化し復号するための方法及び装置
US20120089888A1 (en) Systems and Methods for Multi-Level Quasi-Cyclic Low Density Parity Check Codes
ES2356912T3 (es) Método de decodificación, dispositivo de decodificación, programa dispositivo de grabación/reproducción y método, y método y dispositivo de reproducción.
US10090860B2 (en) Memory system using integrated parallel interleaved concatenation
Ghosh et al. Reducing power consumption in memory ECC checkers
US8443250B2 (en) Systems and methods for error correction using irregular low density parity check codes
Cassuto et al. Low-complexity array codes for random and clustered 4-erasures
JP2017505498A (ja) データ記憶方法及びデータ記憶デバイス、記憶されているデータの復号方法及び復号デバイス、並びに対応するコンピュータプログラム
KR100950186B1 (ko) 복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩
Özbudak et al. Improved probabilistic decoding of interleaved Reed–Solomon codes and folded Hermitian codes
Pishro-Nik et al. Results on non-uniform error correction using low-density parity-check codes
KR20240049911A (ko) 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법
TW201543823A (zh) 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
Ivanov et al. Low-Density Parity-Check codes based on Partial Unit Memory codes