ES2739006T3 - Mejora de la resistencia a errores usando información de directorio fuera de banda - Google Patents

Mejora de la resistencia a errores usando información de directorio fuera de banda Download PDF

Info

Publication number
ES2739006T3
ES2739006T3 ES06770411T ES06770411T ES2739006T3 ES 2739006 T3 ES2739006 T3 ES 2739006T3 ES 06770411 T ES06770411 T ES 06770411T ES 06770411 T ES06770411 T ES 06770411T ES 2739006 T3 ES2739006 T3 ES 2739006T3
Authority
ES
Spain
Prior art keywords
multimedia data
directory
package
packet
header information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06770411T
Other languages
English (en)
Inventor
Thadi M Nagaraj
Amnon Silberger
Bruce Collins
Gordon Kent Walker
Serafim S Loukas
Vijayalakshmi R Raveendran
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2739006T3 publication Critical patent/ES2739006T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Un procedimiento de procesamiento de datos multimedia, que comprende: recibir (305) los datos multimedia, en el que los datos multimedia comprenden paquetes de datos y en el que los paquetes de datos comprenden información de cabecera; generar (315) un directorio contenido en un mensaje y que comprende al menos una parte de la información de cabecera asociada con los datos multimedia, en el que el directorio comprende además una pluralidad de registros, en el que un registro comprende información relativa a una ubicación de un paquete en los datos multimedia, en el que la información de cabecera comprende al menos una de una marca de punto de acceso aleatorio y una velocidad de trama; transmitir (320) los datos multimedia que comprenden los paquetes de datos y la información de cabecera; transmitir (325) el directorio; en el que transmitir los datos multimedia comprende transmitir a través de un primer enlace de comunicación y en el que transmitir el directorio comprende transmitir a través de un segundo enlace de comunicación.

Description

DESCRIPCIÓN
Mejora de la resistencia a errores usando información de directorio fuera de banda
REFERENCIA CRUZADA A SOLICITUDES RELACIONADAS
[0001] La presente solicitud de patente reivindica la prioridad sobre la solicitud provisional n.° 60/789.454, titulada «Improving Error Resilience Using Out of Band Directory Information [Mejora de la resistencia a errores usando información de directorio fuera de banda]» presentada el 4 de abril de 2006 y asignada al cesionario de la misma, y la solicitud provisional n.° 60/680.809 titulada «Methods and Apparatus for Improving Packet Error Resiliency Using Out-Of-Band Directory Information [Procedimientos y aparatos para mejorar la resistencia a errores de paquetes usando información de directorio fuera de banda]» presentada el l3 de mayo de 2005 y asignada al cesionario de la misma.
ANTECEDENTES DE LA INVENCIÓN
Campo de la invención
[0002] La presente invención se refiere a procedimientos y aparatos para codificar y descodificar datos digitales con sistemas de gestión de errores.
Descripción de la técnica relacionada
[0003] Debido al crecimiento exponencial y gran éxito de Internet y la comunicación inalámbrica, así como a la creciente demanda de servicios multimedia, la transmisión en continuo de medios por Internet y los canales móviles/inalámbricos ha atraído una enorme atención. En redes de protocolo de Internet (IP) heterogéneas, un servidor proporciona vídeo que puede ser transmitido en continuo por uno o más clientes. Las conexiones alámbricas incluyen una línea conmutada, una red digital de servicios integrados (RDSI), un cable, unos protocolos de línea de abonado digital (denominados colectivamente xDSL), una fibra, unas redes de área local (LAN), unas redes de área amplia (WAN) y otros. El modo de transmisión puede ser unidifusión o multidifusión.
[0004] La comunicación móvil/inalámbrica es similar a la red IP heterogénea. El transporte de contenido multimedia a través de canales móviles/inalámbricos es un gran desafío, ya que estos canales a menudo se ven gravemente dañados por el desvanecimiento de trayectorias múltiples, el desvanecimiento lento, la interferencia entre símbolos y las perturbaciones de ruido. Algunas otras razones, como la movilidad y el tráfico de la competencia, también causan variaciones y pérdidas de ancho de banda. El ruido de canal y el número de usuarios que se atienden determinan la propiedad variable en el tiempo de los entornos de canal.
[0005] Las demandas de mayores velocidades de transferencia de datos y mayor calidad de servicio tanto en redes IP heterogéneas como en sistemas de comunicaciones móviles están creciendo con rapidez. Sin embargo, factores como tiempos de retardo limitados, potencia de transmisión limitada, ancho de banda limitado y desvanecimiento de trayectorias múltiples siguen restringiendo las velocidades de transferencia de datos utilizadas por los sistemas prácticos. En las comunicaciones multimedia, particularmente en entornos propensos a errores, la resistencia a errores de los medios transmitidos es fundamental para proporcionar la calidad de servicio deseada, ya que los errores, incluso en un solo valor descodificado, pueden llevar a la descodificación de artefactos que se multiplican en el espacio y el tiempo. Se han usado diversas medidas de codificación para reducir errores mientras se mantiene una velocidad de transferencia de datos necesaria, sin embargo, todas estas técnicas adolecen de problemas con errores que llegan por el lado del descodificador.
[0006] Mediante el uso de un codificador de origen, los datos se comprimen, transmitiendo la información máxima y gastando el mínimo número de bits, y a continuación un codificador de canal tiende a maximizar la capacidad del canal de transmisión para una probabilidad de error dada en la recepción de estos bits.
[0007] La codificación de canal, por ejemplo, la codificación Reed-Solomon, se usa para mejorar la solidez de los datos codificados de origen. Se han usado metodologías de codificación de canal de origen conjuntas para proporcionar niveles variables de protección frente a errores a los datos codificados de origen con niveles variables de importancia o para permitir la adaptación de la velocidad de los datos de vídeo codificados al ancho de banda de red disponible a través de la división y la exclusión de paquetes. Esto se debe a que los protocolos de transporte comunes no suministran datos alterados al descodificador de origen.
[0008] Se han usado técnicas de codificación de origen, como la codificación de longitud variable reversible (por ejemplo, en MPEG-4), para recuperación de errores descodificando el paquete en orden inverso cuando en realidad se han recibido paquetes alterados. Se adopta una solución de compromiso en la eficiencia de codificación con las técnicas de codificación de origen, que se traduce en una calidad de vídeo descodificado para una velocidad de bits determinada.
[0009] Las normas de codificación híbridas, como MPEG-1, MPEG-2, MPEG-4 (denominadas colectivamente MPEG-x), H.261, H.262, H.263 y H.264 (denominadas colectivamente H.26x), usan puntos de resincronización en el flujo de bits como procedimiento principal para tratar los errores en el descodificador.
[0010] Otra razón que puede causar pérdida de datos más allá de la alteración inicial se debe a la emulación incorrecta de palabras de código. La identificación de la posición de error de bit inicial no es una tarea trivial y típicamente no es posible sin un diseño especial que admita la identificación de posiciones de error de bit en una capa MAC o componente de capa física. En consecuencia, al detectar una alteración de flujo de bits, el descodificador puede tener que dejar de descodificar y avanzar en el flujo de bits hasta encontrar el siguiente punto de resincronización, y al mismo tiempo omitir necesariamente una cantidad considerable de datos potencialmente intactos. Aunque la emulación de una palabra de código diferente, que tiene la misma longitud que la palabra de código original, es decir, auténtica, puede parecer un problema menor con respecto a la secuencia de eventos descritos anteriormente, en realidad no es así. Hay muchas maneras en que este tipo de error puede provocar fallos en la interpretación correcta del flujo de bits por el descodificador. Por ejemplo, en la mayoría de los códecs actuales hay objetos en el flujo de bits (parámetros relacionados con la compresión) cuyos valores influyen en la sintaxis de la siguiente parte del flujo de bits. En consecuencia, un valor incorrecto para dicho objeto puede provocar una interpretación incorrecta del flujo de bits.
[0011] Debido a las longitudes de paquete variables comúnmente usadas en las normas de codificación híbridas, debe transmitirse información necesaria para descodificar los paquetes de longitudes variables (por ejemplo, longitudes de paquetes y/o información de sincronización) al aparato de descodificación a fin de descodificar correctamente el flujo de bits. Debido a que los protocolos de transporte comunes se basan en diversas capas de información de cabecera (por ejemplo, cabeceras de capa de transporte y/o cabeceras de capa de sincronización) para suministrar esta longitud de paquete variable y/o información de sincronización necesarias, el descodificador de origen tiene una capacidad limitada para tratar un flujo de bits erróneo, siendo la exclusión de paquetes y la resincronización la solución más común. Se necesita un procedimiento mejorado de tratamiento de errores de bit que provocan una multiplicación de errores y una pérdida de datos debido a problemas como la pérdida de sincronización y la emulación incorrecta de palabras de código.
[0012] La solicitud de patente internacional WO 03/075577 se refiere a la mejora de una calidad de una transmisión de capa de mejora de plano de objeto de vídeo escalable a través de una red propensa a errores. La transmisión de la capa de mejora incluye al menos un marcador de resincronización seguido de una cabecera de paquete de vídeo y extensiones de cabecera. Un identificador de VOP de referencia (por ejemplo, «código de selección de referencia») se replica desde la cabecera de plano de objeto de vídeo en un número de extensiones de cabecera de capa de mejora.
[0013] El artículo «Syntax friendly and syntax amendment approaches to error resiliency in the MPEG-4 Simple Scalable Profile [Planteamientos compatibles con la sintaxis y de enmienda sintáctica para la resistencia a errores en el perfil escalable simple de MPEG-4]»] por Shanableh et al., Image Communication 20 (2005) 389-411 analiza unos planteamientos para incorporar resistencia a errores en el SSP de la norma ISO/IEC MPEG-4 14496-2.
[0014] La publicación de solicitud de patente US 2004/0199565 A1 se refiere a unos formatos de codificación avanzada en archivos de medios.
SUMARIO DE LA INVENCIÓN
[0015] La presente invención se define mediante las reivindicaciones independientes. Se proporciona un procedimiento de procesamiento de datos multimedia. El procedimiento incluye recibir los datos multimedia y generar un directorio que comprende al menos una parte de información de cabecera asociada con los datos multimedia. En algunos aspectos, el procedimiento incluye además transmitir los datos multimedia y transmitir el directorio.
[0016] Se proporciona un procesador para procesar datos multimedia. El procesador está configurado para recibir los datos multimedia, y generar un directorio que comprende al menos una parte de información de cabecera asociada con los datos multimedia. En algunos aspectos, el procesador también está configurado para transmitir los datos multimedia y para transmitir el directorio.
[0017] Se proporciona un aparato para procesar datos multimedia. El aparato incluye un receptor para recibir los datos multimedia y un generador para generar un directorio que comprende al menos una parte de información de cabecera asociada con los datos multimedia. En algunos aspectos, el aparato también incluye un transmisor para transmitir los datos multimedia y el directorio.
[0018] Se proporciona un aparato para procesar datos multimedia. El aparato incluye medios para recibir los datos multimedia y medios para generar un directorio que comprende al menos una parte de información de cabecera asociada con los datos multimedia. En algunos aspectos, el aparato también incluye medios para transmitir los datos multimedia y el directorio.
[0019] Se proporciona un medio legible por ordenador que incorpora un procedimiento de procesamiento de datos multimedia. El procedimiento incluye recibir los datos multimedia y generar un directorio que comprende al menos una parte de información de cabecera asociada con los datos multimedia. En algunos aspectos, el procedimiento también incluye transmitir los datos multimedia y transmitir el directorio.
[0020] Se proporciona un procedimiento de procesamiento de datos multimedia. El procedimiento incluye recibir un flujo de datos multimedia y recibir un directorio que comprende al menos una parte de información de cabecera asociada con el flujo de datos multimedia. En algunos aspectos, el procedimiento también incluye descodificar parte del flujo de datos multimedia usando el directorio.
[0021] Se proporciona un procesador para procesar datos multimedia. El procesador está configurado para recibir un flujo de datos multimedia y recibir un directorio que comprende al menos una parte de información de cabecera asociada con el flujo de datos multimedia. En algunos aspectos, el procesador también está configurado para descodificar parte del flujo de datos multimedia usando el directorio.
[0022] Se proporciona un aparato para procesar datos multimedia. El aparato incluye un receptor para recibir un flujo de datos multimedia y para recibir un directorio que comprende al menos una parte de información de cabecera asociada con el flujo de datos multimedia, y una memoria para almacenar al menos una parte del directorio recibido. En algunos aspectos, el aparato también incluye un descodificador para descodificar al menos una parte del flujo de datos multimedia usando el directorio.
[0023] Se proporciona un aparato para procesar datos multimedia. El aparato incluye medios para recibir un flujo de datos multimedia, y para recibir un directorio que comprende al menos una parte de información de cabecera asociada con el flujo de datos multimedia, y medios para almacenar al menos una parte del directorio. En algunos aspectos, el aparato también incluye medios para descodificar al menos una parte del flujo de datos multimedia usando el directorio.
[0024] Se proporciona un medio legible por ordenador que incorpora un procedimiento de procesamiento de datos multimedia. El procedimiento incluye recibir un flujo de datos multimedia y recibir un directorio que comprende al menos una parte de información de cabecera asociada con el flujo de datos multimedia. En algunos aspectos, el procedimiento también incluye descodificar parte del flujo de datos multimedia usando el directorio.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0025]
La figura 1 es una ilustración de un ejemplo de sistema de comunicación para el suministro de vídeo en continuo.
La figura 2 es un diagrama de bloques de un ejemplo de pila de protocolos multicapa usada para dividir tareas en el dispositivo codificador 105 y el dispositivo descodificador 110 de la figura 1.
La figura 3 es un diagrama de flujo que ilustra un ejemplo de procedimiento para procesar datos multimedia de transmisión en continuo.
La figura 4 es una ilustración de un ejemplo de sistema de paquetización de capas múltiples.
La figura 5 es un diagrama de flujo que ilustra un ejemplo de procedimiento para procesar datos multimedia de transmisión en continuo.
La figura 6 muestra un diagrama de bloques que ilustra un ejemplo de aparato para procesar datos multimedia.
La figura 7 muestra un diagrama de bloques que ilustra otro ejemplo de aparato para procesar datos multimedia.
DESCRIPCIÓN DETALLADA DEL MODO DE REALIZACIÓN PREFERIDO
[0026] Se describe un procedimiento y un aparato para mejorar la resistencia a errores en paquetes en la descodificación de un flujo de datos multimedia. Un dispositivo codificador puede identificar información de cabecera asociada con diversos paquetes contenidos en una o más capas (por ejemplo, una capa de transporte y/o una capa de sincronización) del flujo de datos multimedia. La información de cabecera puede incluir un tamaño de paquete, un número de paquete, una ubicación de otra cabecera dentro de un paquete, un tiempo de secuencia de datos, una duración de secuencia de datos, un tiempo de trama, un número de trama, una marca de punto de acceso aleatorio, una velocidad de trama o un número de paquetes asociados en un grupo de paquetes. Se genera un directorio de la información de cabecera y se transmite a un descodificador para que el descodificador lo utilice en caso de que parte de la información de cabecera original del flujo de datos se pierda en la transmisión o se reciba con errores. En algunos aspectos, el directorio que contiene la información de cabecera se transmite a través de un enlace de comunicación tal como un canal distinto al enlace de comunicación a través del cual se transmiten los paquetes de datos que contienen las cabeceras originales. Por lo tanto, un descodificador que recibe el directorio puede usar la información de cabecera para localizar un paquete de datos en un flujo de datos multimedia recibido. En caso de que el descodificador reciba paquetes erróneos, el descodificador puede usar la información de cabecera del directorio para facilitar la recuperación de datos que se hubieran perdido. En la siguiente descripción se proporcionan detalles específicos para permitir una plena comprensión de los modos de realización. Sin embargo, un experto en la materia entenderá que los modos de realización pueden llevarse a la práctica sin estos detalles específicos. Por ejemplo, los componentes eléctricos pueden mostrarse en diagramas de bloques a fin de no oscurecer los modos de realización con detalles innecesarios. En otros casos, dichos componentes y otras estructuras y técnicas se pueden mostrar en detalle para explicar en mayor detalle los modos de realización. Los expertos en la materia también entenderán que los componentes eléctricos, que se muestran como bloques separados, se pueden reorganizar y/o combinar como un componente.
[0027] Debe observarse también que algunos modos de realización pueden describirse como un proceso, que se representa como un organigrama, un diagrama de flujo, un diagrama de estructura o un diagrama de bloques. Aunque un diagrama de flujo puede describir las operaciones como un proceso secuencial, muchas de las operaciones pueden realizarse en paralelo o simultáneamente y el proceso puede repetirse. Además, el orden de las operaciones puede reorganizarse. Un proceso termina cuando se acaban sus operaciones. Un proceso puede corresponder a un procedimiento, una función, un procedimiento, una subrutina, un subprograma, etc. Cuando un proceso corresponde a una función, su terminación corresponde con un retorno de la función a la función de llamada o a la función principal.
[0028] La figura 1 es una ilustración de un ejemplo de sistema de comunicación para el suministro de vídeo en continuo. El sistema 100 incluye un dispositivo codificador 105 y un dispositivo descodificador 110. Los dispositivos de comunicación como el dispositivo codificador 105 y el dispositivo descodificador 110 pueden usar una pila de protocolos multicapa usada para distribuir tareas. Los componentes de capa superior en el dispositivo codificador 105 y el dispositivo descodificador 110 pueden incluir múltiples aplicaciones como, por ejemplo, codificadores y/o descodificadores de vídeo o audio. Algunos modos de realización pueden incluir múltiples flujos de información que están destinados a ser descodificados simultáneamente. En estos casos, las tareas de sincronización de los múltiples flujos también pueden realizarse en componentes de capa superior. En el dispositivo codificador 105, un componente de capa superior puede proporcionar información de temporización codificada en el flujo de bits que se transmite a través de una red inalámbrica y/o una red alámbrica 150. En el dispositivo descodificador 110, un componente de capa superior puede analizar los múltiples flujos de información de manera que las aplicaciones asociadas los descodifican aproximadamente al mismo tiempo.
[0029] Los componentes de capa inferior del dispositivo codificador 110 pueden incluir diversos sistemas para proporcionar resistencia a errores. Los canales propensos a errores, como la red alámbrica y/o inalámbrica 150, pueden introducir errores en el flujo de bits recibido por el dispositivo descodificador 110. Dichos sistemas de resistencia a errores proporcionados en componentes de capa inferior pueden incluir uno o más sistemas de codificación de control de errores, sistemas de intercalado y otros sistemas conocidos por los expertos en la materia. Los componentes de capa inferior del dispositivo descodificador 110 pueden incluir los correspondientes componentes de descodificación de errores que permiten la detección y corrección de errores. Algunos errores que se introducen a través de la red alámbrica y/o inalámbrica 150 pueden no ser corregibles por los componentes de capa inferior del dispositivo descodificador 110. Para los errores que no son corregibles, soluciones como solicitar la retransmisión de componentes alterados por componentes de capa inferior del dispositivo codificador 105 pueden no ser factibles para algunas situaciones.
[0030] La figura 2 es un diagrama de bloques de un ejemplo de pila de protocolos multicapa usada para dividir tareas en el dispositivo codificador 105 y el dispositivo descodificador 110. Los componentes de capa superior del dispositivo codificador 105 se distribuyen en una o más de una capa de aplicación 206 y una capa de sincronización 207. Los componentes de capa inferior del dispositivo codificador 105 se distribuyen en una o más de una capa de transporte 216, una capa de flujo y/o de control de acceso al medio (MAC) 217 y una capa física de 218. De modo parecido, los componentes de capa superior del dispositivo descodificador 110 se distribuyen en una o más de una capa de aplicación 211 y una capa de sincronización 212. Los componentes de capa inferior del dispositivo descodificador 110 se distribuyen en una o más de una capa de transporte 221, una capa de flujo y/o de control de acceso al medio (MAC) 222 y una capa física 223. Los expertos en la materia reconocerán estas capas y estarán familiarizados con la asignación de diversas tareas entre ellas.
[0031] Con referencia a las figuras 1 y 2, el dispositivo codificador 105 incluye además un identificador de información de cabecera 115, un generador de directorio de cabecera 120, un codificador multimedia 125, un componente de memoria 130, un procesador 135 y un receptor/transmisor 140. El procesador 135 en general controla el funcionamiento global del dispositivo codificador a modo de ejemplo 105.
[0032] El componente de identificador de información de cabecera 115 identifica información, por ejemplo, en cabeceras relacionadas con diversas capas de comunicación, con respecto a la paquetización de datos multimedia. En algunos ejemplos, la paquetización se realiza en diversos niveles para permitir que múltiples flujos de datos se dividan (analicen) en el proceso de codificación y se reensamblen durante la descodificación usando, al menos en parte, información de cabecera que han añadido las diversas capas del codificador. Por ejemplo, la capa de sincronización 207 puede añadir información de cabecera que identifica múltiples tipos de paquetes que están vinculados con múltiples componentes de descodificador que pueden descodificar los múltiples tipos de paquetes simultáneamente. La información de cabecera de capa de sincronización puede incluir campos que identifican un tiempo de secuencia de datos, una duración de secuencia de datos, el componente de descodificador de destino (por ejemplo, audio, vídeo y subtítulos), un número de trama, un número de paquete y otra información. Los paquetes de capa de sincronización pueden ser de longitud variable en algunos ejemplos. Esto puede deberse a los diversos sistemas de codificación como, por ejemplo, sistemas de compresión digital que incluyen sistemas de codificación de longitud variable.
[0033] Otros tipos de paquetes que se pueden identificar mediante el identificador de información de cabecera 115 pueden incluir paquetes de longitud fija, como los que se pueden utilizar en la capa de transporte 216. Los paquetes de capa de transporte pueden tener una longitud fija a fin de admitir diversos sistemas de codificación de errores, sistemas de modulación y otros sistemas que usan paquetes de longitud fija. Las cabeceras de transporte pueden contener información que identifica el número de paquetes de capa de transporte que se han analizado a partir de un solo paquete de capa de sincronización. Si el paquete de capa de sincronización es de longitud variable, el número de paquetes de capa de transporte necesarios para contener los datos también puede ser variable.
[0034] El identificador de información de cabecera 115 también puede identificar información para su uso por un descodificador para identificar la longitud, por ejemplo, en bits o bytes, de los diversos paquetes. Dado que algunos paquetes son de longitud variable, y que incluso los paquetes de longitud fija de diferentes fuentes pueden tener una longitud diferente, la longitud del paquete puede ser necesaria para reconstruir los paquetes. Dependiendo de la naturaleza de la información de longitud del paquete, las posiciones de los paquetes dentro de otro paquete (por ejemplo, ubicaciones de varios paquetes de capa de transporte con un paquete de capa de sincronización más grande) también se pueden determinar indirectamente (usando, por ejemplo, información de tamaño de paquete acumulada) o directamente. Los detalles de cómo un descodificador puede usar las diversas formas de información de cabecera identificadas por el componente de información de cabecera 115 se analizarán a continuación.
[0035] El generador de directorio de cabecera 120 toma al menos parte de la información identificada por el identificador de información de cabecera 115 y genera un directorio. El directorio puede incluir información de cabecera relacionada con diversas capas, como la capa de aplicación 206, la capa de sincronización 207, la capa de transporte 217 y otras. Un dispositivo descodificador puede usar la información para recuperarse de diversos errores, lo que incluye identificar el tamaño de paquetes erróneos recibidos erróneamente, identificar el siguiente paquete disponible a fin de resincronizar y otras tareas. La información de cabecera del directorio de cabecera se puede usar para reemplazar la información de cabecera original perdida o errónea en el flujo de datos.
[0036] El codificador multimedia 125 puede incluir subcomponentes que incluyen un componente transformador/cuantificador que transforma y/o cuantifica datos de vídeo (o audio o texto de subtítulos) del dominio espacial en otro dominio, como el dominio de la frecuencia en el caso de la DCT (transformada discreta del coseno). El codificador multimedia también puede incluir un componente de codificador de entropía. El componente de codificador de entropía puede usar una codificación de longitud variable adaptativa según el contexto (CAVLC). Los datos codificados pueden incluir datos cuantificados, datos transformados, datos comprimidos o cualquier combinación de los mismos. El componente de memoria 130 se usa para almacenar información como datos de vídeo sin procesar que se van a codificar, datos de vídeo codificados que se van a transmitir, información de cabecera, el directorio de cabecera o datos intermedios con los que operan los diversos componentes de codificador.
[0037] En este ejemplo, el componente de receptor/transmisor 140 contiene circuitos y/o lógica usada para recibir datos que se van a codificar desde una fuente externa 145. La fuente externa 145 podría ser, por ejemplo, una memoria externa, Internet, una transmisión de vídeo y/o audio en directo, y recibir los datos puede incluir comunicaciones alámbricas y/o inalámbricas. El transmisor 140 también contiene circuitos y/o lógica, por ejemplo, un transmisor, para transmitir (Tx) datos codificados a través de la red 150. La red 150 puede formar parte de un sistema alámbrico como un teléfono, cable y fibra óptica, o un sistema inalámbrico. En el caso de los sistemas de comunicación inalámbrica, la red 150 puede comprender, por ejemplo, parte de un sistema de comunicación de acceso múltiple por división de código (CDMA o CDMA2000) o, de forma alternativa, el sistema puede ser un sistema de acceso múltiple por división de frecuencia (FDMA), un sistema de acceso múltiple por división ortogonal de frecuencia (OFDMA), un sistema de acceso múltiple por división de tiempo (TDMA) como una tecnología de telefonía móvil para la industria de servicios GSM/GPRS (servicio general de radio por paquetes)/EDGE (entorno GSM de datos mejorado) o TETRA (radio troncal terrestre), un sistema de acceso múltiple por división de código de banda ancha (WCDMA), un sistema de alta velocidad de transferencia de datos (1xEV-DO o 1xEV-DO Gold Multicast) o, en general, cualquier sistema de comunicación inalámbrica que emplea una combinación de técnicas.
[0038] Los datos transmitidos pueden incluir múltiples flujos de bits, como vídeo, audio y/o subtítulos. En algunos ejemplos, los datos transmitidos también incluyen al menos una parte del directorio de cabecera. En algunos ejemplos, el directorio de cabecera se transmite en un canal diferente (virtual o real) distinto del canal a través del cual se transmiten los múltiples flujos de bits.
[0039] Cabe señalar que el dispositivo codificador 105 es un ejemplo simplificado para propósitos de explicación. En consecuencia, es posible omitir, reorganizar y/o combinar uno o más elementos del dispositivo codificador 105 mostrados en la figura 1 y/o 2. Por ejemplo, el componente de procesador 135 puede ser externo al dispositivo codificador 105.
[0040] El dispositivo descodificador 110 contiene componentes similares al dispositivo codificador 105, que incluyen un identificador de información de cabecera 155, un localizador de paquetes 160, un descodificador multimedia 165, un componente de memoria 170, un marcador 172, un receptor 175, un procesador 180 y un analizador 182. El dispositivo descodificador 110 recibe datos multimedia codificados que se han transmitido a través de la red 150 o desde un almacén externo 185. El receptor 175 contiene unos circuitos y/o una lógica usada para recibir (Rx) datos codificados en conjunción con la red 150, así como una lógica para recibir datos codificados desde un almacén externo 185. El almacén externo 185 podría ser, por ejemplo, una memoria RAM o ROM externa, o un servidor remoto. Además de recibir flujos de bits multimedia, el receptor 175 puede recibir el directorio de cabecera que se ha generado en el generador de directorio de cabecera 120.
[0041] El descodificador multimedia 165 contiene unos circuitos y/o una lógica usados en la descodificación de los flujos de bits multimedia codificados recibidos. Los subcomponentes del descodificador multimedia 165 pueden incluir un componente de descuantificación, un componente de transformada inversa y diversos componentes de recuperación de errores. Los componentes correspondientes de la capa de aplicación 211 pueden descodificar los paquetes recibidos correctamente. Los componentes de recuperación de errores pueden incluir componentes de detección y corrección de errores de nivel inferior (como la codificación Reed-Solomon y/o la codificación Turbo), así como la recuperación de errores y/o el ocultamiento de errores de capa superior usados para reemplazar y/u ocultar datos no corregibles mediante los procedimientos de capa inferior. Los diversos componentes de recuperación de errores pueden aprovechar la información contenida en el directorio de cabecera que ha generado el generador de directorio de cabecera 120 del dispositivo codificador 105. Los subcomponentes del descodificador multimedia 165 pueden residir en la capa de aplicación 211, la capa de sincronización 212, la capa de transporte 221, la capa de flujo/MAC 222, la capa física 223 o combinaciones de las mismas.
[0042] El identificador de información de cabecera 155 contiene unos circuitos y/o una lógica usada en la identificación de información (por ejemplo, información de cabecera) contenida en el directorio de cabecera recibido. Cuando el dispositivo descodificador 110 recibe un paquete erróneo, el identificador de información de cabecera 155 identifica información en el directorio de cabecera que se puede usar para identificar la ubicación de un paquete subsiguiente en el flujo de bits. La información de cabecera del directorio de cabecera también se puede usar para reemplazar la información de cabecera recibida erróneamente en el paquete erróneo o para localizar y eliminar una cabecera adicional recibida erróneamente en el paquete. El localizador de paquetes 160 contiene unos circuitos y/o una lógica usados para localizar el paquete usando la información del directorio de cabecera identificada. En algunos ejemplos, los paquetes de capa superior (por ejemplo, paquetes de capa de aplicación) que se encuentran dentro de un paquete de nivel inferior erróneo (por ejemplo, un paquete de capa de transporte y/o capa de sincronización) pueden marcarse como erróneos. El marcador 172 contiene unos circuitos y/o una lógica usada en el marcado de paquetes erróneos. Al marcar los paquetes que pueden ser erróneos debido a su ubicación en otro paquete erróneo, los componentes de capa superior (por ejemplo, los componentes de capa de aplicación) pueden tomar decisiones de recuperación de errores. Los componentes de capa de aplicación 211 pueden usar la información de directorio de cabecera y el localizador de paquetes 160 para localizar los paquetes de capa de aplicación erróneos a fin de realizar diversas acciones de recuperación de errores.
[0043] Dado que el dispositivo descodificador 110 puede recibir múltiples flujos de bits, los paquetes erróneos pueden localizarse en los múltiples flujos de bits. El analizador 182 se puede usar en las capas inferiores así como en la capa de sincronización 212 para analizar los paquetes recibidos correctamente y los erróneos y enviarlos a los componentes de capa de aplicación 211 apropiados del descodificador multimedia 165. Además, la información de directorio de cabecera necesaria también se puede enviar desde la capa de transporte 221 hasta las capas superiores (por ejemplo, la capa de sincronización 212 y/o la capa de aplicación 211) para permitir la identificación de paquetes erróneos para propósitos de recuperación de errores y/o resincronización del flujo de bits. La capa de transporte 221 habitualmente elimina la información de cabecera de capa de transporte de los paquetes que se envían a las capas superiores.
[0044] Los datos multimedia descodificados se pueden visualizar con el componente de visualización 190, almacenar en el almacén externo 185 o almacenar en el componente de memoria interna 170. El componente de visualización 190 puede ser una parte integrada del dispositivo descodificador 110. El componente de visualización 190 contiene partes como hardware y lógica de visualización de vídeo y/o audio, incluida una pantalla de visualización y/o unos altavoces. El componente de visualización 190 también puede ser un dispositivo periférico externo. En este ejemplo, el receptor 175 también contiene una lógica usada para comunicar los datos multimedia descodificados al componente de almacén externo 185 o al componente de visualización 190.
[0045] Cabe señalar también que el dispositivo descodificador 110 es un ejemplo simplificado para propósitos de explicación. Por lo tanto, es posible omitir, reorganizar y/o combinar uno o más elementos del dispositivo descodificador 110 mostrado en las figuras 1 y/o 2. Por ejemplo, el procesador 180 puede ser externo al dispositivo descodificador 110.
[0046] La figura 3 es un diagrama de flujo que ilustra un ejemplo de procedimiento para procesar datos multimedia de transmisión en continuo. El procedimiento 300 es un procedimiento para generar un directorio que comprende información de cabecera para su uso en un descodificador para mejorar la resistencia a errores. El procedimiento 300 comienza recibiendo, en el estado 305, un flujo de bits de datos multimedia. En un solo flujo de bits pueden estar incluidos múltiples flujos de bits, por ejemplo, vídeo, audio y/o texto de subtítulos. Los medios de recepción, tales como el receptor/transmisor 140 de la figura 1, pueden recibir el flujo de bits multimedia en el estado 305.
[0047] Después de recibir el flujo de bits en el estado 305, el procedimiento identifica información de cabecera, en el estado opcional 310, asociada con los datos multimedia en el flujo de bits. Como se ha analizado anteriormente, la información de cabecera puede incluir información de múltiples capas. La figura 4 muestra una ilustración de un ejemplo de sistema de paquetización de múltiples capas. En este ejemplo, los paquetes de capa de aplicación 405A y 405B pueden ser paquetes de longitud fija y/o variable. Una capa de sincronización agrega un cabecera de capa de sincronización (cabecera de sincronización) 410 a cada paquete de capa de aplicación 405A y 405B, lo cual da lugar a unos paquetes de capa de sincronización 406A y 406B (los paquetes de capa de sincronización 406A y 406B de la figura 4 incluyen una cabecera de capa de sincronización 410 y los paquetes de capa de aplicación 405A y 405B, respectivamente). Los paquetes de capa de sincronización 406A y 406B se introducen a continuación en la capa de transporte. En este ejemplo, los paquetes de capa de transporte son de longitud fija. La capa de transporte descompone los paquetes de capa de sincronización en partes correspondientes al tamaño del paquete de capa de transporte y agrega cabeceras de capa de transporte 415 a los paquetes de capa de transporte resultantes. En este ejemplo, el paquete de capa de sincronización 406A que comprende el paquete de capa de aplicación 405A se divide en dos paquetes de capa de transporte 420A y 420B, donde el paquete 420B incluye la parte restante 425B del paquete de capa de sincronización 406A y una primera parte 425C del paquete de capa de sincronización 406B. En este ejemplo, una cabecera de capa de transporte adicional 415 se agrega a la parte 425C del paquete de capa de transporte 420B, que precede al principio del siguiente paquete de capa de sincronización 406B. Un tercer paquete de capa de transporte 420D contiene la siguiente parte 425D del paquete de capa de sincronización 406B.
[0048] Las cabeceras de capa de sincronización 410 y las cabeceras de capa de transporte 415 pueden contener información similar dirigida a permitir que un descodificador reensamble los paquetes de capa de sincronización y los paquetes de capa de aplicación. Una cabecera puede incluir información tal como un tamaño de paquete, un número de paquete, una ubicación de una cabecera en un paquete, un tiempo de secuencia de datos, una duración de secuencia de datos, un tiempo de trama, un número de trama, una marca de punto de acceso aleatorio, una velocidad de trama y/o un número de paquetes asociados en un grupo. Además, la información de cabecera puede incluir información de identificación de flujo que indica que el paquete asociado pertenece a un flujo de bits de vídeo, un flujo de bits de audio y/o un flujo de bits de subtítulos.
[0049] Los medios de identificación, como el identificador de información de cabecera 115 de la figura 1, pueden identificar la información de cabecera en el flujo de bits multimedia en el estado opcional 310.
[0050] A continuación, en el estado 315, el procedimiento 300 genera un directorio de información de cabecera basándose en al menos una parte de la información de cabecera identificada, en el estado 310, en el flujo de bits multimedia. El directorio puede contener información relativa a cabeceras de múltiples capas, por ejemplo, la capa de aplicación, la capa de sincronización y/o la capa de transporte, así como otros tipos de cabeceras. Un descodificador puede usar la información contenida en el directorio para localizar límites de paquetes en un flujo de bits que contiene datos erróneos, para reemplazar información de cabecera perdida y/o para eliminar información de cabecera errónea.
[0051] En algunos ejemplos, el directorio de información de cabecera contiene información que identifica los límites de cada uno de los paquetes, donde los paquetes pueden ser de cualquier capa (por ejemplo, transporte, sincronización, aplicación o una combinación de las mismas). La información de cabecera para un paquete puede identificar la capa a la que corresponde la cabecera, el tamaño del paquete y cualquier otro paquete localizado dentro del paquete, así como otra información como se ha analizado anteriormente. En otros ejemplos, un directorio separado, o una parte diferenciada del directorio, puede dirigirse a capas separadas (por ejemplo, un directorio de capa de transporte, un directorio de capa de sincronización, etc.).
[0052] A continuación, se analizará un ejemplo de directorio de capa de transporte como el generado en el estado 315. Este ejemplo representa la relación de la capa de sincronización y la capa de transporte representada en la figura 4. En algunos ejemplos, como el mostrado en la figura 4 (por ejemplo, sistemas que tienen paquetes de capa de transporte de longitud fija, es decir, 122 bytes/paquete), cada cabecera de capa de transporte tiene una longitud fija (por ejemplo, un solo byte de longitud) y aparece al menos al principio de cada paquete de capa de transporte. El formato de la cabecera puede incluir un campo END FLAG, donde el campo END f La G puede ser una marca de 1 bit que se puede establecer en 1 si el paquete actual es el último segmento del paquete de capa de sincronización, y en 0 en caso contrario. La cabecera de capa de transporte también puede incluir un campo BYTE_OFFSET que puede indicar el número de bytes usados por el último segmento del paquete de capa de sincronización (esto también indica dónde se puede encontrar la siguiente cabecera de capa de transporte, como se muestra en la figura 4, donde una segunda cabecera de capa de transporte 415 del paquete de capa de transporte 420B está localizada entre las partes de paquete 425B y 425C). Si un paquete de capa de transporte es inferior a 128 bytes, entonces puede ser suficiente un campo BYTE_OFFSET de 7 bits. Si no hay ninguna cabecera de transporte adicional en el paquete de capa de transporte actual, entonces el campo BYTE_OFFSET puede estar establecido en la longitud del paquete de capa de transporte.
[0053] El directorio generado con esta información de cabecera de transporte puede incluir los campos enumerados en la tabla 1.
Tabla 1
Figure imgf000009_0001
[0054] El campo NUMBER_OF_PACKETS representa el número de paquetes que se envían en el flujo de bits que están cubiertos por el mensaje de directorio de cabecera, es decir, los registros subsiguientes de PACKET_OFFSET y BYTE_OFFSET. Las entradas del campo PACKET_OFFSET apuntan hacia el siguiente paquete del grupo de paquetes. PACKET_OFFSET puede ser un número de bytes o bits u otro número de unidades de datos hasta el límite final del paquete. El campo BYTE_OFFSET se usa para localizar una cabecera de capa de transporte adicional dentro de un paquete como la cabecera de capa de transporte 415 entre las partes de paquete de capa de transporte 425B y 425C en la figura 4. En este ejemplo, el intervalo válido de BYTE_OFFSET es de 1 a 121. Si puede aparecer más de una cabecera de capa de transporte adicional dentro de un solo paquete de capa de transporte, entonces se puede usar otro campo que define el número de entradas BYTE_OFFSET dentro de un solo paquete. En algunos ejemplos, los valores de PACKET_OFFSET y/o BYTE_OFFSET son acumulativos y representan la distancia que se va a avanzar en el flujo de bits desde la última posición de cabecera de paquete localizada que incluye todos los avances anteriores.
[0055] El tamaño de los campos puede ser predeterminado o variable. Por ejemplo, el campo NUMBER_OF_PACKETS puede estar limitado a un solo byte, en cuyo caso se podría representar un grupo de hasta 255 paquetes numerados secuencialmente antes de que se repita el campo. Por lo tanto, si se requieren más de 255 paquetes de capa de transporte para acomodar los datos de un solo paquete de capa de sincronización (usando el ejemplo de análisis mostrado en la figura 4), entonces pueden requerirse más bits. El directorio puede contener uno de los conjuntos de entradas mostrados en la tabla 1 para grupos predeterminados de paquetes relacionados. Por ejemplo, cada paquete representado por la información de la tabla 1 puede estar contenido en un solo grupo de datos de vídeo, como una trama o un sector. Asimismo, un flujo de bits de audio o subtítulos puede tener un directorio separado que contiene campos similares.
[0056] En ejemplos como este, con cabeceras de capa de transporte fijas, unos componentes de capa superior (por ejemplo, de capa de sincronización y/o capa de aplicación) pueden usar este tamaño de cabecera fijo conocido para eliminar las cabeceras al suministrarlas y ajustar las entradas PACKET_OFFSET y BYTE_OFFSET en el directorio de cabecera como corresponda.
[0057] A continuación, se analizará un ejemplo de directorio de cabecera de capa de sincronización generado en el estado 315. En este ejemplo, un solo paquete de capa de sincronización (por ejemplo, la cabecera de capa de sincronización 410 y el paquete de capa de aplicación 405A) contiene el vídeo, el audio y/o los datos de subtítulos de una trama de datos. Otros grupos de datos divididos (por ejemplo, una parte de una trama) también podrían estar contenidos en un paquete de capa de sincronización. El directorio de cabecera de capa de sincronización puede incluir campos similares a los enumerados en la tabla 1 anterior. En este ejemplo, sin embargo, los paquetes y las cabeceras asociadas representan paquetes y cabeceras de capa de sincronización. Los paquetes de capa de sincronización se compondrían de un número de paquetes de capa de transporte (en los que las cabeceras de transporte se han eliminado) también denominados bloques. En la tabla 2 se facilita un ejemplo de los campos de directorio de cabecera de capa de sincronización
Tabla 2
Figure imgf000009_0002
Figure imgf000010_0001
[0058] El campo NUMBER_OF_PACKETS representa el número de paquetes de capa de transporte que están cubiertos por los registros subsiguientes de BLOCK_OFFSET y BYTE_OFFSET. Además, el campo NUMBER_OF_PACKETS también representa el número de paquetes de capa de transporte de una trama de vídeo, audio y/o datos de subtítulos que se van a visualizar simultáneamente. En los ejemplos donde el tamaño de los paquetes de capa de transporte es fijo, el número de bits que se va a avanzar se conoce especificando el número de paquetes, como en este ejemplo. El campo BLOCK_OFFSET apunta hacia el siguiente paquete de capa de sincronización (y la siguiente trama multimedia en este ejemplo) del grupo de paquetes de capa de sincronización que se cubren. El grupo de paquetes de capa de sincronización puede ser un número predeterminado de tramas. BLOCK_OFFSET también puede ser un número de bytes o bits u otro número de unidades de datos. El campo BYTE_OFFSET se usa para localizar el principio del siguiente paquete de capa de sincronización cuando aparece dentro de un paquete de capa de transporte como la parte 425C que comprende el principio del segundo paquete de capa de sincronización 406B (que incluye la cabecera de sincronización 410 y el paquete de capa de aplicación 405B) contenido en el paquete de capa de transporte 420B mostrado en la figura 4. En algunos ejemplos, los valores BLOCK_OFFSET son acumulativos y representan el número de paquetes de capa de transporte que se van a avanzar en el flujo de bits desde la última posición del bloque localizada que incluye todos los avances anteriores.
[0059] El tamaño de los campos puede ser predeterminado o variable. Por ejemplo, el campo NUMBER_OF_PACKETS puede estar limitado a un solo byte, en cuyo caso se podría representar un grupo de hasta 255 paquetes de capa de transporte numerados secuencialmente antes de que se repita el campo. Por lo tanto, si se requieren más de 255 paquetes de capa de transporte para acomodar los datos de un solo paquete de capa de sincronización (usando el ejemplo de análisis mostrado en la figura 4), entonces pueden requerirse más bits. El directorio puede contener uno de los conjuntos de entradas mostrados en la tabla 1 para grupos predeterminados de paquetes relacionados. Por ejemplo, cada paquete representado por la información de la tabla uno puede estar contenido en un solo grupo de datos de vídeo, como una trama o un sector. Asimismo, un flujo de bits de audio o subtítulos puede tener un directorio separado que contiene campos similares.
[0060] Además de los datos contenidos en la tabla 2, el directorio de cabecera de capa de sincronización, o un mensaje que contiene la información de directorio de cabecera de la tabla 2, también puede incluir uno o más de los campos del directorio de cabecera de capa de sincronización enumerados en la tabla 3.
Tabla 3
Figure imgf000010_0002
Figure imgf000011_0001
[0061] Los medios generadores, como el generador de directorio de cabecera mostrado en la figura 1, pueden generar el directorio de información de cabecera en el estado 315.
[0062] El procedimiento 300 continúa hacia el estado opcional 320, donde se transmite el flujo de datos multimedia. Como se ha analizado anteriormente en relación con la figura 1, los datos multimedia pueden transmitirse a través de la red alámbrica y/o inalámbrica 150. En este ejemplo, el directorio de cabecera se transmite en el estado opcional 325. En algunos ejemplos, la transmisión de los datos multimedia en el estado 320 y la transmisión del directorio de cabecera en el estado 325 se realizan a través de canales separados. Esto se puede hacer para proporcionar diferentes niveles de protección contra errores o proporcionar diversidad de canal, lo que puede mejorar la resistencia a errores en un receptor. En algunos ejemplos, el uno o ambos del flujo de datos multimedia o el directorio de cabecera pueden transmitirse (estados 320 o 325 respectivamente) a través de un canal virtual. Un canal virtual puede proporcionar un grado de libertad para proporcionar protección contra errores que se puede ajustar por separado para los datos multimedia y el directorio de cabecera. Los medios de transmisión, como el receptor/transmisor 140 mostrado en la figura 1, pueden transmitir el flujo de datos multimedia en el estado opcional 320, así como transmitir el directorio de cabecera en el estado opcional 325.
[0063] Cabe señalar que cualquiera de los bloques ilustrados en el diagrama de flujo mostrado en la figura 3 se puede omitir, reordenar o combinar con uno o más bloques.
[0064] La figura 5 es un diagrama de flujo que ilustra un ejemplo de procedimiento para procesar datos multimedia de transmisión en continuo. El dispositivo descodificador 110 mostrado en la figura 1 puede realizar el procedimiento 500. El procedimiento 500 ilustra un uso del directorio de información de cabecera, generado usando el procedimiento 300 analizado anteriormente, para mejorar la resistencia a errores en el dispositivo descodificador 110. El dispositivo descodificador 110 recibe, en el estado 505, un flujo de datos multimedia que comprende datos de vídeo, audio y/o subtítulos. Los datos se pueden codificar como se ha analizado anteriormente, donde los datos codificados incluyen datos cuantificados, datos transformados, datos comprimidos y combinaciones de los mismos. Los datos multimedia pueden incluir datos en paquetes donde la paquetización se puede realizar en múltiples niveles. Unos medios de recepción, como el receptor 175 mostrado en la figura 1, pueden recibir los datos multimedia en el estado 505.
[0065] El dispositivo descodificador 110 también recibe, en el estado 510, el directorio de información de cabecera. El directorio de información de cabecera puede estar contenido en un mensaje que incluye uno o más de los campos mostrados y descritos en las tablas 1, 2 y 3 anteriores. El directorio puede recibirse en partes separadas, como un directorio de cabecera de capa de transporte como el mostrado en la tabla 1 y un directorio de cabecera de capa de sincronización como el mostrado en las tablas 2 y 3. El directorio de información de cabecera puede recibirse a través del mismo canal en el que se reciben los datos multimedia 505. El directorio de información de cabecera se puede recibir a través de un canal diferente al canal a través del cual se han recibido los datos multimedia. En algunos ejemplos, uno o ambos de los datos multimedia y el directorio de información de cabecera pueden recibirse (en los estados 505 y 510, respectivamente) a través de un canal virtual. Después de recibir el directorio de información de cabecera, parte o la totalidad del directorio de información de cabecera puede almacenarse en la memoria en el estado 510. Los medios de almacenamiento de memoria, como el módulo de memoria 180 o el módulo de almacén externo 185 mostrado en la figura 1, se pueden usar para almacenar el directorio de información de cabecera en el estado 510.
[0066] En el estado opcional 515, después de recibir los datos multimedia, el dispositivo descodificador 110 puede detectar y corregir errores que se han introducido en el flujo de bits durante la transmisión a través de la red 150. Se pueden usar diversos sistemas de detección y corrección de errores conocidos por los expertos en la materia para detectar y corregir los errores. Algunos errores pueden ser incorregibles y pueden dar como resultado paquetes erróneos. Los paquetes erróneos pueden marcarse (por ejemplo, estableciendo un campo en un valor que indica que un paquete es erróneo) mediante medios de marcado, como el marcador 172 mostrado en la figura 1. Marcar paquetes erróneos como erróneos permite a los componentes de capa superior identificar más fácilmente los paquetes erróneos e iniciar sistemas de recuperación de errores. Los paquetes erróneos también pueden identificarse en las capas superiores como erróneos sin ninguna información de marcado.
[0067] En el estado opcional 520, los paquetes correctos y los paquetes erróneos se envían a las capas superiores (por ejemplo, la capa de sincronización y la capa de aplicación). Además de enviarse los paquetes de los datos multimedia, el directorio de información de cabecera también se envía o, al menos, se pone a disposición de las capas superiores, si es necesario. En los paquetes multimedia enviados a las capas superiores se puede eliminar una o más cabeceras de capa inferior, y la información de directorio de cabecera que se refiere al tamaño del paquete puede modificarse para reflejar la eliminación de las cabeceras de capa inferior.
[0068] El dispositivo descodificador 110 descodifica correctamente los paquetes de datos multimedia recibidos en el estado 525. Descodificar puede incluir descuantificar, aplicar una transformada inversa, descomprimir y combinaciones de estas acciones. Los paquetes de datos multimedia pueden estar en múltiples flujos de bits (por ejemplo, vídeo, audio y/o subtítulos) que se pueden descodificar y reproducir simultáneamente. Dado que los paquetes erróneos se han enviado en el estado 520, la descodificación se puede retrasar hasta que tenga lugar la recuperación de errores y/o la resincronización de la descodificación.
[0069] Cuando se encuentran datos erróneos, la información de directorio de cabecera puede usarse para identificar paquetes individuales subsiguientes (identificando las ubicaciones de los límites de los paquetes), y posiblemente identificar los componentes de capa de aplicación a los que están destinados, a fin de recuperarse mejor de los datos erróneos. El dispositivo descodificador 110 identifica, en el estado opcional 530, información de cabecera contenida en el directorio de información de cabecera que está asociada con los paquetes erróneos del flujo de bits. El dispositivo descodificador 110 localiza a continuación, en el estado opcional 535, el paquete identificado, por ejemplo, usando la información PACKET_OFFSET contenida en el directorio de cabecera, para avanzar hasta el paquete subsiguiente del flujo de bits. La identificación en el estado 530 se puede realizar en cualquier capa cuando se encuentra un error que incluye la capa de transporte, la capa de sincronización y la capa de aplicación.
[0070] Con referencia a la figura 4, se va a suponer que el segundo paquete de capa de transporte 420B (que incluye unas partes de paquete de capa de transporte parcial 425B y 425C) es erróneo. Como es erróneo, un descodificador puede desconocer que hay una cabecera de capa de transporte adicional 415 localizada en el centro del paquete de capa de transporte 420B. Como se ha analizado anteriormente, la cabecera de capa de transporte adicional 415 es el principio del segundo paquete de capa de sincronización 406B, que incluye una cabecera de sincronización 410 y el paquete de capa de aplicación 405B. Con el uso del directorio de información de cabecera, la ubicación de la cabecera de capa de transporte adicional 415 se puede identificar consultando el campo BYTE_OFFSET (mostrado en la tabla 1) del registro de información de cabecera asociada con el paquete de capa de transporte erróneo 420B. La capa de transporte localiza a continuación, en el estado 535, la cabecera de paquete de capa de transporte adicional y analiza el paquete de capa de transporte erróneo, elimina las cabeceras de capa de transporte y envía los dos paquetes de capa de sincronización, ambos marcados como erróneos, a la capa de sincronización. La capa de sincronización puede identificar a continuación los componentes de capa de aplicación, usando la información mostrada en la tabla 2 y 3, para enviar los paquetes de capa de aplicación erróneos 405A y 405B a su componente de capa de aplicación apropiado. Los medios de análisis, como el analizador 182 mostrado en la figura 1, pueden realizar el análisis descrito anteriormente.
[0071] Como en este ejemplo, la identificación en el estado 530 puede tener lugar, al menos en parte, en la capa de sincronización, cuando información como STREAM_ID mostrada en la tabla 3 está incluida en el directorio de información de cabecera. Los paquetes de capa de aplicación individuales pueden marcarse y enviarse a los componentes de la aplicación donde estaban destinados a ser descodificados. En otros ejemplos, la información de cabecera del directorio puede enviarse (y posiblemente ajustarse para reflejar la eliminación de cualquier dato de cabecera de capa inferior) a los componentes de capa de aplicación, donde puede tener lugar la identificación de información de cabecera y la localización de paquetes en el estado 535. Los medios de identificación, como el identificador de información de cabecera 155 mostrado en la figura 1, pueden identificar 530 la información de cabecera de directorio asociada con un paquete (o varios paquetes) localizado subsiguientemente a los datos erróneos. Los medios de localización, como el localizador de paquetes 160 mostrado en la figura 1, pueden localizar el (los) paquete(s) subsiguiente(s) en el estado 535.
[0072] Después de identificar la información de cabecera de directorio y localizar uno o más paquetes subsiguientes, el procedimiento 500 puede realizar una recuperación de errores para recuperar paquetes erróneos y/o reanudar la descodificación en el paquete subsiguiente en el estado opcional 540. Los componentes de capa de aplicación pueden utilizar los paquetes identificados y localizados para mejorar sus sistemas de recuperación de errores. En algunos ejemplos, los paquetes identificados y localizados pueden no ser erróneos y el descodificador puede continuar la descodificación con los paquetes obtenidos usando la información de directorio de cabecera. El simple hecho de poder identificar la ubicación de los paquetes que de otra forma no estarían disponibles (en el caso de paquetes de longitud variable) se puede usar para identificar las áreas del flujo de bits que son erróneas. Al identificar estas áreas, los procedimientos de recuperación de errores pueden ser capaces de guardar y/o reemplazar algunos de los datos localizados subsiguientemente a los datos erróneos en el flujo de bits, que de lo contrario podrían descartarse.
[0073] Cabe señalar que cualquiera de los bloques ilustrados en el diagrama de flujo mostrado en la figura 5 se puede omitir, reordenar o combinar con uno o más bloques.
[0074] Un ejemplo proporciona un aparato para procesar datos multimedia. El ejemplo de aparato incluye medios para recibir los datos multimedia y medios para generar un directorio, donde el directorio incluye al menos una parte de información de cabecera asociada con los datos multimedia. Los medios para recibir los datos multimedia pueden comprender el receptor/transmisor 140 de la figura 1. Los medios para generar el directorio pueden comprender el generador de directorio de cabecera 120 de la figura 1.
[0075] Un ejemplo proporciona un aparato para procesar datos multimedia. El ejemplo de aparato incluye medios para recibir un flujo de datos multimedia, y para recibir un directorio que comprende al menos una parte de información de cabecera asociada con el flujo de datos multimedia. El ejemplo de aparato también incluye medios para almacenar al menos una parte del directorio. Los medios para recibir pueden comprender el receptor 175 de la figura 1. Los medios para almacenar el directorio pueden comprender el módulo de memoria 170 de la figura 1.
[0076] La figura 6 muestra un diagrama de bloques que ilustra un ejemplo de aparato para procesar datos multimedia. El ejemplo de aparato 600 de la figura 6 incluye medios para recibir los datos multimedia, y medios para generar un directorio, donde el directorio incluye al menos una parte de información de cabecera asociada con los datos multimedia. Los medios para recibir los datos multimedia pueden comprender un receptor 605 de la figura 6. Los medios para generar el directorio pueden comprender un generador de directorio de cabecera 610 de la figura 6.
[0077] La figura 7 muestra un diagrama de bloques que ilustra un ejemplo de aparato para procesar datos multimedia. El ejemplo de aparato incluye medios para recibir un flujo de datos multimedia, y para recibir un directorio que comprende al menos una parte de información de cabecera asociada con el flujo de datos multimedia. El ejemplo de aparato también incluye medios para almacenar al menos una parte del directorio. Los medios para recibir pueden comprender el receptor 705 de la figura 7. Los medios para almacenar el directorio pueden comprender el módulo de almacén de memoria 710 de la figura 7.
[0078] Los ejemplos dados anteriormente se han representado con cabeceras e información de cabecera, donde la cabecera se ha representado en la parte delantera de un paquete. Cabe señalar que la información de cabecera podría estar localizada en otra posición de un paquete o en un flujo de bits separado del paquete.
[0079] Los expertos en la materia entenderán que la información y las señales pueden representarse usando cualquiera entre una diversidad de tecnologías y técnicas diferentes. Por ejemplo, los datos, las instrucciones, los mandatos, la información, las señales, los bits, los símbolos y los chips que se puedan haber mencionado a lo largo de la descripción anterior se pueden representar mediante tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos o cualquier combinación de los mismos.
[0080] Los expertos en la materia apreciarán además que los diversos bloques lógicos, módulos, y etapas de algoritmo ilustrativos descritos en relación con los ejemplos divulgados en el presente documento pueden implementarse como hardware electrónico, firmware, software informático, microcódigo o combinaciones de los mismos. Para ilustrar claramente esta intercambiabilidad de hardware y software, anteriormente se han descrito en general diversos componentes, bloques, módulos, circuitos y pasos ilustrativos en términos de su funcionalidad. Que dicha funcionalidad se implemente como hardware o software depende de la aplicación particular y de las restricciones de diseño impuestas en el sistema en su conjunto. Los expertos en la materia pueden implementar la funcionalidad descrita de distintas maneras para cada aplicación particular, pero no se debería interpretar que dichas decisiones de implementación suponen apartarse del alcance de los procedimientos divulgados.
[0081] Los diversos bloques, componentes, módulos y circuitos lógicos ilustrativos descritos en relación con los ejemplos divulgados en el presente documento pueden implementarse o realizarse con un procesador de uso general, un procesador de señales digitales (DSP), un circuito integrado específico de la aplicación (ASIC), una matriz de puertas programables in situ (FPGA) u otro dispositivo de lógica programable, lógica de puertas discretas o de transistores, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de propósito general puede ser un microprocesador pero, como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo.
[0082] Las etapas de un procedimiento o algoritmo descrito en relación con los ejemplos divulgados en el presente documento se pueden incorporar directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de los dos. Un módulo de software puede residir en una memoria RAM, en una memoria flash, en una memoria ROM, en una memoria EPROM, en una memoria EEPROM, en registros, en un disco duro, en un disco extraíble, en un CD-ROM o en cualquier otra forma de medio de almacenamiento conocido en la técnica. Un medio de almacenamiento a modo de ejemplo está acoplado al procesador de modo que el procesador puede leer información de, y escribir información en, el medio de almacenamiento. De forma alternativa, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un circuito integrado específico de la aplicación (ASIC). El ASIC puede residir en un módem inalámbrico. De forma alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en el módem inalámbrico.
[0083] La descripción anterior de los ejemplos divulgados se proporciona para permitir que un experto en la materia elabore o use los procedimientos y aparatos divulgados. Diversas modificaciones de estos ejemplos resultarán inmediatamente evidentes a los expertos en la materia, y los principios definidos en el presente documento se pueden aplicar a otros ejemplos, y se pueden añadir elementos adicionales.
[0084] Por lo tanto, se han descrito procedimientos y aparatos para generar un directorio de información de cabecera que comprende información de cabecera asociada con un flujo de bits multimedia, y procedimientos y aparatos para recibir y usar el directorio de información de cabecera para proporcionar gestión de errores del flujo de bits multimedia.

Claims (23)

REIVINDICACIONES
1. Un procedimiento de procesamiento de datos multimedia, que comprende:
recibir (305) los datos multimedia, en el que los datos multimedia comprenden paquetes de datos y en el que los paquetes de datos comprenden información de cabecera;
generar (315) un directorio contenido en un mensaje y que comprende al menos una parte de la información de cabecera asociada con los datos multimedia, en el que el directorio comprende además una pluralidad de registros, en el que un registro comprende información relativa a una ubicación de un paquete en los datos multimedia, en el que la información de cabecera comprende al menos una de una marca de punto de acceso aleatorio y una velocidad de trama;
transmitir (320) los datos multimedia que comprenden los paquetes de datos y la información de cabecera; transmitir (325) el directorio;
en el que transmitir los datos multimedia comprende transmitir a través de un primer enlace de comunicación y en el que transmitir el directorio comprende transmitir a través de un segundo enlace de comunicación.
2. El procedimiento de la reivindicación 1, en el que la información de cabecera comprende además uno o más de un tamaño de paquete, un número de paquete, una ubicación de una cabecera dentro de un paquete, un tiempo de secuencia de datos, una duración de secuencia de datos, un tiempo de trama, un número de trama, y un número de paquetes asociados en un grupo.
3. El procedimiento de la reivindicación 1, en el que el primer o segundo enlace de comunicación comprende un canal virtual.
4. El procedimiento de la reivindicación 1, en el que el directorio comprende además información de identificación de flujo que identifica un paquete de los datos multimedia como al menos uno de un paquete de audio, un paquete de vídeo y un paquete de subtítulos.
5. El procedimiento de la reivindicación 1, que comprende además transmitir información que identifica el mensaje que contiene la información de directorio.
6. Un aparato para procesar datos multimedia, que comprende:
medios para recibir los datos multimedia, en el que los datos multimedia comprenden paquetes de datos y en el que los paquetes de datos comprenden información de cabecera;
medios para generar (610) un directorio contenido en un mensaje y que comprenden al menos una parte de la información de cabecera asociada con los datos multimedia, en el que el directorio comprende además una pluralidad de registros, en el que un registro comprende información relativa a una ubicación de un paquete en los datos multimedia, en el que la información de cabecera comprende al menos una de una marca de punto de acceso aleatorio y una velocidad de trama;
medios para transmitir los datos multimedia, que comprenden los paquetes de datos y la información de cabecera, y el directorio, en el que transmitir los datos multimedia comprende transmitir a través de un primer enlace de comunicación y en el que transmitir el directorio comprende transmitir a través de un segundo enlace de comunicación.
7. El aparato de la reivindicación 6, en el que la información de cabecera comprende además uno o más de un tamaño de paquete, un número de paquete, una ubicación de una cabecera dentro de un paquete, un tiempo de secuencia de datos, una duración de secuencia de datos, un tiempo de trama, un número de trama, y un número de paquetes asociados en un grupo.
8. El aparato de la reivindicación 6, en el que el directorio comprende además información de identificación de flujo que identifica un paquete de los datos multimedia como al menos uno de un paquete de audio, un paquete de vídeo y un paquete de subtítulos.
9. El aparato de la reivindicación 6, en el que los medios de transmisión comprenden además medios para transmitir información que identifica el mensaje que contiene la información de directorio.
10. Un procedimiento de procesamiento de datos multimedia, que comprende:
recibir un flujo de datos multimedia que incluye una pluralidad de paquetes e información de cabecera en el flujo de datos multimedia;
recibir un directorio contenido en un mensaje y que comprende al menos una parte de la información de cabecera asociada con el flujo de datos multimedia, en el que el directorio comprende además una pluralidad de registros, en el que un registro comprende información relativa a una ubicación de un paquete en el flujo de datos multimedia, en el que la información de cabecera comprende al menos una de una marca de punto de acceso aleatorio y una velocidad de trama;
en el que recibir el flujo de datos multimedia comprende recibir a través de un primer enlace de comunicación y en el que recibir el directorio comprende recibir a través de un segundo enlace de comunicación; y
descodificar al menos una parte del flujo de datos multimedia usando el directorio.
11. El procedimiento de la reivindicación 10, que comprende además localizar un paquete en el flujo de datos multimedia basándose en uno o más de la pluralidad de registros recibidos.
12. El procedimiento de la reivindicación 10, en el que la información de cabecera comprende además uno o más de un tamaño de paquete, un número de paquete, una ubicación de una cabecera dentro de un paquete, un tiempo de secuencia de datos, una duración de secuencia de datos, un tiempo de trama, un número de trama y un número de paquetes asociados en un grupo.
13. El procedimiento de la reivindicación 10, en el que el primer o segundo enlace de comunicación comprende un canal virtual.
14. El procedimiento de la reivindicación 10, en el que el directorio comprende además información de identificación de flujo que identifica un paquete del flujo de datos multimedia como al menos uno de un paquete de audio, un paquete de vídeo y un paquete de subtítulos.
15. El procedimiento de la reivindicación 10, en el que el flujo de datos multimedia comprende múltiples paquetes y al menos uno de los paquetes es erróneo, comprendiendo además el procedimiento: identificar una parte de la información de directorio asociada con un paquete situado subsiguientemente al paquete erróneo en el flujo de datos multimedia; y usar la parte identificada de información de directorio en la localización del paquete subsiguiente en el flujo de datos multimedia.
16. El procedimiento de la reivindicación 15, en el que el paquete subsiguiente está localizado dentro del paquete erróneo, comprendiendo además el procedimiento:
analizar el paquete subsiguiente del paquete erróneo; y
marcar el paquete analizado como erróneo.
17. Un aparato para procesar datos multimedia, que comprende:
medios para recibir un flujo de datos multimedia que incluye una pluralidad de paquetes e información de cabecera en el flujo de datos multimedia, y para recibir un directorio contenido en un mensaje y que comprende al menos una parte de la información de cabecera asociada con el flujo de datos multimedia, en el que la información de cabecera comprende al menos una de una marca de punto de acceso aleatorio y una velocidad de trama, y en el que recibir el flujo de datos multimedia comprende recibir a través de un primer enlace de comunicación y en el que recibir el directorio comprende recibir a través de un segundo enlace de comunicación, en el que el directorio comprende además una pluralidad de registros, en el que un registro comprende información relativa a una ubicación de un paquete en el flujo de datos multimedia;
medios para almacenar al menos una parte del directorio;
medios para descodificar al menos una parte del flujo de datos multimedia usando el directorio.
18. El aparato de la reivindicación 17, que comprende además:
medios para localizar un paquete en el flujo de datos multimedia basándose en uno o más de la pluralidad de registros recibidos.
19. El aparato de la reivindicación 17, en el que la información de cabecera comprende además uno o más de un tamaño de paquete, un número de paquete, una ubicación de una cabecera dentro de un paquete, un tiempo de secuencia de datos, una duración de secuencia de datos, un tiempo de trama, un número de trama, y un número de paquetes asociados en un grupo.
20. El aparato de la reivindicación 17, en el que el directorio comprende además información de identificación de flujo que identifica un paquete en el flujo de datos multimedia como al menos uno de un paquete de audio, un paquete de vídeo y un paquete de subtítulos.
21. El aparato de la reivindicación 17, en el que el flujo de datos multimedia comprende múltiples paquetes y al menos uno de los paquetes es erróneo, comprendiendo además el aparato:
medios para identificar una parte de la información de directorio asociada con un paquete localizado subsiguientemente al paquete erróneo en el flujo de datos multimedia; y
medios para localizar el paquete subsiguiente en el flujo de datos multimedia usando la parte identificada de información de directorio.
22. El aparato de la reivindicación 21, en el que el paquete subsiguiente está localizado dentro del paquete erróneo, comprendiendo además el aparato:
medios para analizar el paquete subsiguiente del paquete erróneo; y medios para marcar el paquete analizado como erróneo.
23. Un programa informático que comprende instrucciones para realizar un procedimiento de acuerdo con cualquiera de las reivindicaciones 1 a 5 o 10 a 16.
ES06770411T 2005-05-13 2006-05-15 Mejora de la resistencia a errores usando información de directorio fuera de banda Active ES2739006T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US68080905P 2005-05-13 2005-05-13
US78945406P 2006-04-04 2006-04-04
PCT/US2006/018853 WO2006124854A2 (en) 2005-05-13 2006-05-15 Improving error resilience using out of band directory information

Publications (1)

Publication Number Publication Date
ES2739006T3 true ES2739006T3 (es) 2020-01-28

Family

ID=37432019

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06770411T Active ES2739006T3 (es) 2005-05-13 2006-05-15 Mejora de la resistencia a errores usando información de directorio fuera de banda

Country Status (8)

Country Link
US (1) US8976858B2 (es)
EP (1) EP1882343B1 (es)
JP (2) JP2008546231A (es)
KR (1) KR100926017B1 (es)
DK (1) DK1882343T3 (es)
ES (1) ES2739006T3 (es)
HU (1) HUE045392T2 (es)
WO (1) WO2006124854A2 (es)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US7724658B1 (en) 2005-08-31 2010-05-25 Chelsio Communications, Inc. Protocol offload transmit traffic management
US7706328B2 (en) * 2006-01-04 2010-04-27 Qualcomm Incorporated Methods and apparatus for position location in a wireless network
JP4912075B2 (ja) * 2006-08-11 2012-04-04 パナソニック株式会社 復号装置
US8935406B1 (en) 2007-04-16 2015-01-13 Chelsio Communications, Inc. Network adaptor configured for connection establishment offload
US8060644B1 (en) 2007-05-11 2011-11-15 Chelsio Communications, Inc. Intelligent network adaptor with end-to-end flow control
US8589587B1 (en) * 2007-05-11 2013-11-19 Chelsio Communications, Inc. Protocol offload in intelligent network adaptor, including application level signalling
US20090028100A1 (en) * 2007-07-25 2009-01-29 Qualcomm Incorporated Methods and apparatus for transmitter identification in a wireless network
US8230125B2 (en) * 2007-10-30 2012-07-24 Mediatek Inc. Methods for reserving index memory space in AVI recording apparatus
US20090274099A1 (en) * 2008-05-02 2009-11-05 Qualcomm Incorporated Methods and apparatus for communicating transmitter information in a communication network
US8406245B2 (en) 2009-07-09 2013-03-26 Qualcomm Incorporated System and method of transmitting content from a mobile device to a wireless display
US9357275B2 (en) 2011-09-06 2016-05-31 Qualcomm Incorporated Network streaming of coded video data
KR102147475B1 (ko) * 2012-07-11 2020-08-26 한국전자통신연구원 Mpeg 데이터를 처리하는 방법 및 시스템
US9807421B2 (en) * 2013-04-05 2017-10-31 Sharp Kabushiki Kaisha NAL unit type restrictions
CA2911498C (en) * 2013-05-22 2018-05-01 Woosuk Kwon Method and apparatus for processing signaling data between layers in ip-based digital broadcasting system
US10547834B2 (en) * 2014-01-08 2020-01-28 Qualcomm Incorporated Support of non-HEVC base layer in HEVC multi-layer extensions
EP2961176B1 (en) * 2014-06-23 2017-01-11 Harman Becker Automotive Systems GmbH Correcting errors in a digital media transport stream
KR102191878B1 (ko) * 2014-07-04 2020-12-16 삼성전자주식회사 멀티미디어 시스템에서 미디어 패킷을 수신하는 방법 및 장치
US9645878B2 (en) * 2014-07-09 2017-05-09 Qualcomm Incorporated Error handling for files exchanged over a network
US10560866B2 (en) 2015-02-11 2020-02-11 Expway Method of handling packet losses in transmissions based on DASH standard and FLUTE protocol
US11115343B2 (en) * 2017-10-05 2021-09-07 Cisco Technology, Inc. Transport layer providing deterministic transport across multiple deterministic data links
CN108600773B (zh) * 2018-04-25 2021-08-10 腾讯科技(深圳)有限公司 字幕数据推送方法、字幕展示方法、装置、设备及介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685082B2 (ja) 1991-03-12 1997-12-03 沖電気工業株式会社 Stm信号とatm信号の変換/逆変換方式
JPH08191284A (ja) 1995-01-10 1996-07-23 Hitachi Ltd Atm/stm変換方法及び装置
US6029200A (en) * 1998-03-09 2000-02-22 Microsoft Corporation Automatic protocol rollover in streaming multimedia data delivery system
FI105962B (fi) * 1998-06-30 2000-10-31 Nokia Mobile Phones Ltd Virheiden ilmaisu multipleksattuja signaaleja vastaanotettaessa
WO2000055854A1 (fr) * 1999-03-17 2000-09-21 Kabushiki Kaisha Toshiba Procede d'enregistrement de donnees en fluxet de leur structure
GB9930788D0 (en) * 1999-12-30 2000-02-16 Koninkl Philips Electronics Nv Method and apparatus for converting data streams
US20050203927A1 (en) * 2000-07-24 2005-09-15 Vivcom, Inc. Fast metadata generation and delivery
US20020174434A1 (en) * 2001-05-18 2002-11-21 Tsu-Chang Lee Virtual broadband communication through bundling of a group of circuit switching and packet switching channels
US7631242B2 (en) * 2001-06-22 2009-12-08 Broadcom Corporation System, method and computer program product for mitigating burst noise in a communications system
JP3654230B2 (ja) 2001-10-18 2005-06-02 日本電気株式会社 通信システム
US20040167925A1 (en) * 2003-02-21 2004-08-26 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files
GB2386275B (en) 2002-03-05 2004-03-17 Motorola Inc Scalable video transmissions
DE10312030A1 (de) * 2003-03-18 2004-09-30 Robert Bosch Gmbh Verfahren zur Übertragung von Multimedia-Objekten und digitaler Empfänger für Multimedia-Objekte
US7292692B2 (en) 2003-03-25 2007-11-06 Sony Corporation Content scrambling with minimal impact on legacy devices
GB2406488A (en) * 2003-09-29 2005-03-30 Nokia Corp Sigalling in a communications network
US7222285B2 (en) * 2004-03-17 2007-05-22 Microsoft Corporation Layered multiple description coding

Also Published As

Publication number Publication date
JP2008546231A (ja) 2008-12-18
DK1882343T3 (da) 2019-07-29
EP1882343A2 (en) 2008-01-30
US8976858B2 (en) 2015-03-10
WO2006124854A3 (en) 2007-11-15
US20060268841A1 (en) 2006-11-30
EP1882343B1 (en) 2019-05-01
KR100926017B1 (ko) 2009-11-11
WO2006124854A2 (en) 2006-11-23
EP1882343A4 (en) 2016-11-30
JP5296123B2 (ja) 2013-09-25
JP2011135609A (ja) 2011-07-07
HUE045392T2 (hu) 2019-12-30
KR20080025370A (ko) 2008-03-20

Similar Documents

Publication Publication Date Title
ES2739006T3 (es) Mejora de la resistencia a errores usando información de directorio fuera de banda
JP5738929B2 (ja) ストリーミングマルチメディアにおける最適エラー管理のためのデコーダアーキテクチャ
KR100998454B1 (ko) 인 밴드 에러 패턴을 사용한 에러 복원
CN101057501B (zh) 具有高效数据恢复的视频解多路复用器和解码器
AU2013260417B2 (en) Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
JP2020502832A (ja) データストリーミングの前方誤り訂正
CN101176353B (zh) 用于流式多媒体中优化错误管理的解码器架构