ESQUEMA DE DIVERSIDAD PARA CODIFICACIÓN DE CONTROL DEL ERROR EN UN SISTEMA CON DATOS EN PRIORIDAD
ANTECEDENTES DE LA INVENCIÓN CAMPO DE LA INVENCIÓN La presente invención generalmente se refiere a sistemas de transmisión de información que tienen paquetes de longitud variable que llevan datos en prioridad y, más particularmente, a un método de codificación de control del error de diversidad y aparato para utilizarse con tales sistemas.
ANTECEDENTES DE LA INVENCIÓN Algunos sistemas de transmisión de información emplean tanto paquetes de longitud variable como datos en prioridad (es decir, algunos datos pueden clasificarse como de baja prioridad y algunos pueden clasificarse como de alta prioridad). Ejemplos de tales sistemas incluyen aquellos que tienen esquemas de codificación de audio y video recientes. Los sistemas anteriores han incluido separar el tráfico de alta y baja prioridad y protegerlos diferencialmente con diferentes códigos de control del error. La interliberación también se utiliza comúnmente para difundir/no difundir un estallido de errores para hacer al mecanismo de codificación de bloques más eficiente . Otros sistemas de transmisión de información solamente emplean paquetes de longitud variable y no datos en prioridad. En tales sistemas, ta técnica anterior (ver, por ejemplo, J. Boyce, "Packet Loss Resilient Transmisión of MPEG Video Over The Internet", Signal Processing:lmage Communication 15, pp. 7-24, 1999) trata técnicas para agrupar varios paquetes de longitud variable y formar palabras en código a lo largo de la dimensión vertical. La Fig. 1 es un diagrama de bloques que ilustra un agrupamiento de paquetes de longitud variable 102A-F, de acuerdo a la técnica anterior. Las palabras en código se forman a través de varios paquetes verticalmente, y los símbolos de paridad asociados se transmiten en un paquete separado. Por ejemplo, la primer palabra en código se forma del primer símbolo de cada paquete. La segunda palabra en código se forma del segundo símbolo de cada paquete, y así sucesivamente. Los bits de paridad asociados se transmiten en un paquete separado. Ya que las mismas palabras en código son más cortas que las otras, el tamaño de las palabras en código verticales variará. Un código madre puede utilizarse y las palabras en código de longitud variable pueden formarse al acortar el código madre a la longitud apropiada. El problema con las técnicas anteriores es que ninguna protección adicional se da a los datos de alta prioridad. Una posibilidad es agrupar los paquetes de alta prioridad y enviarlos por separado utilizando más símbolos de paridad. Sin embargo, la desventaja de este planteamiento es que habrá latencia incrementada mientras se espera por suficientes paquetes de alta prioridad. En la práctica, los paquetes de alta prioridad se ordenan de manera esparcida. Por ejemplo, en video, un paquete de alta prioridad puede contener una estructura I y estará en medio de varias estructuras predecibles que se marcarían como de baja prioridad. De acuerdo con lo anterior, sería deseable y altamente ventajoso tener una método de codificación de control del error de diversidad y aparato para utilizarse con sistemas de transmisión de información que tienen paquetes de longitud variable que llevan datos en prioridad que superan las deficiencias arriba descritas de la técnica anterior.
BREVE DESCRIPCIÓN DE LA INVENCIÓN Los problemas establecidos arriba, así como también otros problemas relacionados de la técnica anterior, se resuelven por la presente invención, un método de codificación de control del error de diversidad y aparato para sistemas de transmisión de información que tienen paquetes de longitud variable que llevan datos en prioridad. De acuerdo a un aspecto de la presente invención, se proporciona un método de codificación de control del error de diversidad para un sistema que tiene paquetes de longitud variable que llevan datos en prioridad. Los paquetes de alta prioridad en una secuencia de datos se replican para formar replicación virtual. Los símbolos de paridad se generan de la secuencia de datos y de las replicaciones virtuales, y la información de etiqueta se genera lo que indica un número de las replicaciones virtuales utilizadas para generar los símbolos de paridad, para transmisión subsecuente de solamente las secuencias de datos, los símbolos de paridad, y la información de etiqueta para reconstruir la secuencia de datos. De acuerdo a otro aspecto de la presente invención, se proporciona un método de decodificación de control del error de diversidad para un sistema que tiene paquetes de longitud variable que llevan datos en prioridad. Los paquetes de datos, paquetes de paridad, e información de etiqueta se reciben. Los paquetes de paridad tienen símbolos de paridad generados de tanto los paquetes de datos como de las replicaciones de los de alta prioridad de los paquetes de datos. La información de etiqueta es para indicar un número de las replicaciones utilizadas para generar los símbolos de paridad. La secuencia de datos se reconstruye de los recibidos de los paquetes de datos, los símbolos de paridad, y la información de etiqueta, sin ninguna de una transmisión y recepción de las replicaciones. De acuerdo a todavía otro aspecto de la presente invención, se proporciona un aparato para codificación de control del error de diversidad en un sistema que tiene paquetes de longitud variable que llevan datos en prioridad. Un replicador replica los paquetes de alta prioridad en una secuencia de datos para formar replicaciones virtuales. Un generador de símbolos de paridad genera símbolos de paridad de la secuencia de datos y las replicaciones virtuales. Un generador de la información de etiqueta genera información de etiqueta que indica un número de las replicaciones virtuales utilizadas para generar los símbolos de paridad. Solamente la secuencia de datos, los símbolos de paridad, y la información de etiqueta se transmiten subsecuentemente para reconstruir la secuencia de datos.
De acuerdo con todavía otro aspecto de la presente invención, se proporciona un aparato para codificación de control del error de diversidad en un sistema que tiene paquetes de longitud variable que llevan datos en prioridad . Un decodificador recibe una secuencia de datos que incluye paquetes de datos, paquetes de paridad, e información de etiqueta. Los paquetes de paridad tienen símbolos de paridad generados de tanto los paquetes de datos como de las replicaciones de los de alta prioridad de los paquetes de datos. La información de etiqueta indica un número de replicaciones utilizadas para generar los símbolos de paridad. El decodificador reconstruye los símbolos de datos en los paquetes de datos sin ninguna recepción de las replicaciones, y utilizando al menos los bits de paridad y la información de etiqueta. Estos y otros aspectos, características y ventajas de la presente invención serán aparentes a partir de la siguiente descripción detallada de modalidades preferidas, que está por leerse en conexión con los dibujos acompañantes.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Fig. 1 es una diagrama de bloques que ilustra un agrupamiento de paquetes de longitud variable, de acuerdo a la técnica anterior; Fig. 2 es un diagrama de bloques que ilustra un sistema 200 al cual la presente invención puede aplicarse, de acuerdo a una modalidad ilustrativa de la presente invención; Fig. 3 es un diagrama de bloques que ilustra el uso de replícaciones virtuales de paquetes de alta prioridad, de acuerdo a una modalidad ilustrativa de la presente invención; Fig. 4 es un diagrama que ilustra la estructura del paquete utilizado en el ejemplo, de acuerdo con una modalidad ilustrativa de la presente invención; Fig . 5 es un diagrama que ilustra la aplicación de códigos a paquetes, de acuerdo a una modalidad ilustrativa de la presente invención; Fig. 6 es un diagrama que ilustra los patrones de errores utilizados en ei ejemplo, de acuerdo a una modalidad ilustrativa de la presente invención; y Fig. 7 es un diagrama de flujo que ilustra un método sin ayuda en base al patrón de error de Fig. 6, de acuerdo a una modalidad ilustrativa de la presente invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN La presente invención se dirige a un método de codificación de control del error de diversidad y aparato para sistemas de transmisión de información que tienen paquetes de longitud variable que llevan datos en prioridad. La invención logra una "ganancia de diversidad' al realizar una repetición virtual de los paquetes de alta prioridad y computarizar símbolos de paridad adicionales para esta repetición. La única transmisión adicional es los símbolos de paridad adicionales para paquetes de alta prioridad e información de etiqueta que indica el número de repeticiones virtuales que se utilizan para crear los símbolos de paridad; los paquetes de alta prioridad NO se envían múltiples veces. Como se utiliza en la presente, la frase "sistema de transmisión de información" se refiere a cualquier sistema capaz de utilizar, transmitir, y/o recibir información. La transmisión de los símbolos de paridad adicionales y el uso de la repetición virtual de los símbolos de alta prioridad da un tipo de "ganancia de diversidad" similar a la manera en que la diversidad se utiliza en sistemas de comunicación con múltiples antenas (así llamada diversidad de antena. Esta ganancia de diversidad ocurre debido a que es posible que una versión del paquete de alta prioridad no puede reconstruirse pero tal vez otras versiones de él (una de las repeticiones virtuales) pueden corregirse. Debe entenderse que la presente invención puede implementarse en varias formas de hardware, software, firmware, procesadores de propósito especial, o una combinación de los mismos. Preferentemente, la presente invención se implementa como una combinación de hardware y software. Además, el software se implementa preferentemente como un programa de aplicación incluido tangiblemente en un dispositivo de almacenamiento de programa. El programa de aplicación puede actualizarse en, y ejecutarse por, una máquina que comprende cualquier arquitectura adecuada, preferentemente, la máquina se implementa en una plataforma de la computadora que tiene hardware tal como una o más unidades de procesamiento central (CPU), una memoria de acceso aleatoria (RAM) e interfase(s) de entrada/salida (l/O). La plataforma de la computadora también incluye un sistema operativo y código de microinstrucción. Los diversos procesos y funciones descritas en la presente pueden ya sea ser parte del código de microconstruccion o parte del programa de aplicación (o una combinación de los mismos) que se ejecuta a través del sistema operativo. Además, varios otros dispositivos periféricos pueden conectarse a la plataforma de la computadora tal como un dispositivo de almacenamiento de datos adicional y un dispositivo de impresión. Debe entenderse que además, debido a que algunos componentes del sistema constituyentes y pasos del método representado en las figuras acompañantes se implementan preferentemente en software, las conexiones actuales entre los componentes del sistema (o los pasos del procesamiento) pueden diferir dependiendo de la manera en la cual la presente invención se programa. Dada las enseñanzas en la presente, alguien de experiencia ordinaria en la materia relacionada será capaz de contemplar estas y similares ímplementaciones o configuraciones de la presente invención. La Fig. 2 es un diagrama de bloques que ilustra un sistema 200 al cual la presente invención puede aplicarse, de acuerdo a una modalidad ilustrativa de la presente invención. El sistema 200 incluye una porción de transmisión 210 y una porción de recepción 250 acopladas a través de una red o canal de transmisión 290. Debe apreciarse que la presente invención puede utilizarse en cualquier tipo de sistema que emplea paquetes de longitud variable que llevan datos en prioridad. Además, debe apreciarse además que en tal sistema, las funciones de codificación y transmisión y así como también las funciones de recepción y decodificación pueden realizarse de manera intercambiable por todo el sistema para intercambiar datos. La porción de transmisión 210 incluye un codificador 212 para codificar datos y un transmisor 214 para transmitir los datos y otra información como se describe en la presente abajo. El codificador 212 incluye un replicador 222, un generador de símbolos de paridad 224, y un generador de información de etiqueta 226. El replicador 222 genera replicaciones virtuales de paquetes de alta prioridad. El generador de símbolos de paridad 224 genera símbolos de paridad para ambos paquetes de datos, de alta y baja prioridad así como también para las replicaciones virtuales de los paquetes de alta prioridad. El generador de información de etiqueta 226 genera información de etiqueta que indica el número de representaciones virtuales (es decir, cuantas representaciones virtuales se crean para un paquete de alta prioridad dado, para crear los símbolos de paridad). La porción de transmisión 250 incluye un receptor 254 para recibir datos, y un decodificador 252 para decodificar los datos. Debe apreciarse que el codificador 212 y el decodificador 252 pueden reemplazarse por otros elementos capaces de realizar la misma función mientras aún se mantiene el espíritu y alcance de la presente invención. Por ejemplo, pueden utilizarse codees. Ahora se dará una breve descripción de algunas observaciones relacionadas con esta invención. Primero, (os paquetes de alta prioridad tienden a ser muy largos. Para un ejemplo que pertenece a datos de video, los paquetes de alta prioridad son estructuras I que contienen un lote de datos mientras que los paquetes de baja prioridad son estructuras predecibles que no contienen tantos datos. Segundo, se utilizarán el tipo "borradura" de codificación, donde un paquete perdido o caído se maneja al marcar el paquete completo como una borradura. Las borraduras son una técnica conocida en la codificación de control del error donde el decodificador se informa de la ubicación de un error de alguna entidad que es externa al decodificador. Por ejemplo, el procesamiento que detecta un paquete perdido puede informar al decodificador de las borraduras asociadas. Tercero, mientras más largo sea el paquete, más alta será la probabilidad de un paquete perdido. Por ejemplo, en un sistema inalámbrico, es posible que las condiciones del canal puedan cambiar más severamente durante la duración más larga de la transmisión de un paquete largo. En comparación, existe menos oportunidad que las condiciones tales como un canal nulo o ruido de impulso ocurrirán durante paquetes cortos. Un resumen breve de la presente invención se dará ahora. En general, la presente invención forma replicaciones virtuales de paquetes de alta prioridad en el codificador. Fig. 3 es un diagrama de bloques que ilustra el uso de replicaciones virtuales de paquetes de alta prioridad, de acuerdo a una modalidad ilustrativa de la presente invención. Los paquetes 310 mostrados en la Fig. 3 incluyen un paquete de paridad 310, paquetes de baja prioridad 320, un paquete de alta prioridad 330, y una repetición virtual 340 del paquete de alta prioridad. Como se utiliza en la presente, el término "replicación virtual" se refiere a una replicación de los datos en el transmisor para propósitos de codificación, de manera que ios datos replicados no se transmiten actualmente sobre un canal de comunicaciones. Los paquetes de alta prioridad se replican al repetirlos (tantas veces como sea necesario para efectuar el nivel requerido de protección de error) de extremo a extremo, como se ilustra por el paquete sombreado 340 mostrado en la Fig. 3 que representa una repetición virtual del paquete de alta prioridad 330. Los símbolos de paridad asociados (señalados por las flechas en la Fig. 3) se forman al codificar los dos paquetes de baja prioridad así como también la replicación virtual del paquete de alta prioridad. Solamente el primer caso del paquete de alta prioridad se transmite sobre el canal. La replicación virtual NO se transmite. La única transmisión adicional empleada por la presente invención es la transmisión de los símbolos de paridad adicionales que resultan del uso de la replicación virtual, y el etiquetado de la información de replicación (en el orden de unos pocos bits por símbolo). En el decodificador, las replicaciones virtuales se forman al replicar los paquetes de alta prioridad recibidos, asociados y los paquetes se decofican y los errores se corrigen. El beneficio de la presente invención es que mientras sea posible que la versión original del paquete de alta prioridad no pueda decodíficarse correctamente (debido a, por ejemplo, un gran número de errores de paquetes caídos), es posible que una de las replicaciones virtuales pueda decodíficarse correctamente debido a la diversidad inherente en este esquema. Por el tiempo que solo una versión de los paquetes de alta prioridad (ya sea en el paquete original o su replicación virtual) pueda decodificarse, el paquete de alta prioridad se habrá recibido de manera apropiada. Esto puede ilustrarse a manera de ejemplo. Un breve ejemplo de la presente invención se proporcionará ahora con respecto a las Figs. 4-6. La Fig . 4 es un diagrama que ilustra la estructura del paquete 400 utilizado en el ejemplo, de acuerdo a una modalidad ilustrativa de la presente invención. Fig. , 5 es un diagrama que ilustra la aplicación de los códigos a los paquetes, de acuerdo a una modalidad ilustrativa de la presente invención . Fig. 6 es un diagrama que ilustra los patrones de errores utilizados en el ejemplo, de acuerdo a una modalidad ilustrativa de la presente invención . El ejemplo empleará tres paquetes. El paquete 1 es uno de baja prioridad con 4 símbolos. Como se muestra en la figura 5, los dos símbolos de alta prioridad del paquete 2 se replican (indicado por los símbolos con líneas punteadas) y después el código se aplica verticalmente a través de los paquetes. Diferentes tamaños de código se utilizan debido a las diferentes longitudes de los paquetes. Un (4,3) código se utiliza en las primeras dos columnas. El código tiene 3 símbolos de datos y agrega 1 símbolo de paridad para formar una palabra en código de longitud 4. Un (3,2) código se utiliza en una tercer y cuarta columna. El código tiene 2 símbolos de datos y agrega 1 símbolo de paridad apara formar una palabra en código de longitud 3. Ambos de estos códigos son capaces de corregir solo un error. La suposición es que la decodificación de borraduras se utiliza y en tal esquema, cada símbolo de paridad puede corregir un error único. Se asume que los paquetes llegan en el receptor con el patrón de error mostrado en la Fig. 6. X's indican ios símbolos que se reciben en error. Se recuerda que un máximo de un error por palabra en código puede corregirse. Existen errores en cada símbolo en ambos paquetes 1 y 2 (tal vez debido a los paquetes perdidos). Las primeras dos columnas tienen 2 errores en tal palabra en código vertical. Ya que excede la capacidad de corrección del código, NINGUNO de los datos en esa columna puede recuperarse (aún los símbolos de baja prioridad del paquete 3). Sin embargo, las columnas 3 y 4, que contienen la replicación virtual de los símbolos de alta prioridad, solamente contienen 1 error cada uno, y de esta manera los errores en la replicación virtual de los símbolos de alta prioridad PUEDEN recuperarse. Aunque los paquetes 1 y 3 son perdidos, el paquete 2 de alta prioridad puede recuperarse exitosamente al utilizar la presente invención (sin la presente invención, el paquete 2 de alta prioridad no sería recuperable). Además, una vez que el paquete 2 de alta prioridad se recupera de su replicación virtual, puede substituirse de nuevo para los símbolos de alta prioridad originales en las primeras dos columnas como símbolos corregidos. Entonces existe solo un error por columna y los errores en el paquete 1 también pueden corregirse a través del método sin ayuda. Fig . 7 es un diagrama de flujo que ilustra un método sin ayuda en base al patrón de error de la Fig. 6, de acuerdo a una modalidad ilustrativa de la presente invención. Los símbolos de paridad 613 y 614 se utilizan para corregir los errores en repeticiones virtuales 605 y 606 (paso 710). De esta manera, un símbolo de paridad puede corregir un error. Los símbolos corregidos 605 y 606 se substituyen por los símbolos de alta prioridad originales 603 y 604 (paso 720). De esta manera, los símbolos de paridad 611 y 612 podrían no corregir dos errores pero la substitución "remueve" uno de los errores. Los símbolos de paridad 611 y 612 se utilizan para corregir los errores en los símbolos 601 y 602 paso (730). De esta manera, existe un error y un símbolo de paridad, de manera que el error puede corregirse. Por lo tanto, la ventaja de enviar símbolos de paridad en lugar de replicar simplemente y transmitir los paquetes de alta prioridad múltiples veces es que cuando se hace un error, el paquete de alta prioridad original se recupera de otro paquetes correctamente recibidos a través del método sin ayuda ilustrativamente descrito con respecto a la Fig. 7. Como es evidente para alguien de experiencia ordinaria en la técnica relacionada, este método se realiza mejor que un simple esquema de replicación de paquete para la misma cantidad de información transmitida. El único exceso adicional transmitido requerido por la presente invención para este ejemplo es la transmisión de 1 símbolo de paridad adicional (un símbolo para la palabra en código de la columna 3 y uno para la columna 4) e información de etiqueta para indicar cuantas veces los datos se replican (en el orden de unos pocos bits para el paquete de AP). Una breve descripción se dará ahora de varios conceptos principales y ventajas de la presente invención. La presente invención se dirige a codificación de control del error de diversidad para utilizarse en un sistema de transmisión de información con paquetes de longitud variable que llevan datos en prioridad. Los paquetes de alta prioridad se replican para formar replicaciones virtuales de los datos. Las replicaciones virtuales se utilizan en el proceso de codificación para generar símbolos de paridad asociados, pero las replicaciones NO se transmiten sobre el canal (conservando así el ancho de banda). Las replicaciones virtuales de los datos recibidos se utilizan por el decodificador para decodificar los datos. El aspecto de diversidad de decodificación permite que los datos de alta prioridad se decodifiquen correctamente siempre que una o más de las replicaciones virtuales de los datos se decodifiquen exitosamente. La presente invención proporciona ventajosamente la habilidad de hacer el número de replicaciones una función de la prioridad (por ejemplo, diferentes niveles de prioridad pueden tener diferentes números de repeticiones). Aunque las modalidades ilustrativas se han descrito en la presente con referencia a los dibujos acompañantes, debe entenderse que la presente invención no se limita a aquellas modalidades precisas, y que varios otros cambios y modificaciones pueden afectarse en la presente por alguien de experiencia ordinaria en la materia en la técnica relacionada y sin apartarse del alcance o espíritu de la invención. Todos de tales cambios y modificaciones se proponen para incluirse dentro del alcance de la invención como se define por las reivindicaciones anexas.