ES2336824T3 - Arquitectura de decodificador para gestion de errores optimizada en flujo continuo multimedia. - Google Patents

Arquitectura de decodificador para gestion de errores optimizada en flujo continuo multimedia. Download PDF

Info

Publication number
ES2336824T3
ES2336824T3 ES06737894T ES06737894T ES2336824T3 ES 2336824 T3 ES2336824 T3 ES 2336824T3 ES 06737894 T ES06737894 T ES 06737894T ES 06737894 T ES06737894 T ES 06737894T ES 2336824 T3 ES2336824 T3 ES 2336824T3
Authority
ES
Spain
Prior art keywords
layer
error
data
bits
protocol
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
ES06737894T
Other languages
English (en)
Inventor
Vijayalakshmi R. Raveendran
Fang Shi
Seyfullah Halit Oguz
Sumeet Singh Sethi
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 ES2336824T3 publication Critical patent/ES2336824T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2966Turbo codes concatenated with another code, e.g. an outer block code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440227Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4425Monitoring of client processing errors or hardware failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Abstract

Un procedimiento (700) para la integración multicapa para su uso en la recuperación de errores en una pila (24) de protocolos multicapa que comprende una capa (220) de comunicación por debajo de una capa (38) de sincronización, que está por debajo de una capa (211) de aplicación, comprendiendo el procedimiento: recibir (705) como datos codificados una pluralidad de flujos (70, 72, 74) de bits de datos multimedia; detectar (64, 710) un error en dichos datos codificados basándose en un protocolo de capa de comunicación; analizar sintácticamente (68) dichos datos codificados en dicha pluralidad de flujos (70, 72, 74) de bits basándose en un protocolo (38) de capa de sincronización; determinar (720) tanto una distribución (37) de errores del error detectado como información (41) de estrategia de control basándose en dicho protocolo (38) de capa de sincronización, en el que dicha distribución de errores identifica qué partes de cuáles de dicha pluralidad de flujos (70, 72, 74) de bits están corruptas; y ocultar (725) dichas partes corruptas en dicha pluralidad de flujos (70, 72, 74) de bits identificadas en dicha distribución de errores dependiendo de la información de estrategia de control basándose en un protocolo de capa de aplicación.

Description

Arquitectura de decodificador para gestión de errores optimizada en flujo continuo multimedia.
I. Antecedentes Campo
La presente invención se refiere a procedimientos y aparatos para decodificar medios en flujo continuo en tiempo real en dispositivos portátiles.
Antecedentes
Debido al enorme crecimiento y gran éxito de la comunicación por Internet e inalámbrica, así como la creciente demanda de servicios multimedia, los medios en flujo continuo en los canales de Internet y móviles/inalámbricos ha atraído una enorme atención. En redes heterogéneas de protocolo de Internet (IP), se proporciona vídeo por un servidor y puede emitirse como flujo continuo por uno o más clientes. Las conexiones por cable incluyen acceso telefónico, red digital de servicios integrados (ISDN), cable, protocolos de línea de abonado digital (denominados en conjunto xDSL), fibra, redes de área local (LAN), redes de área extensa (WAN) y otros. El modo de transmisión puede ser o bien de unidifusión o bien de multidifusión.
La comunicación móvil/inalámbrica es similar a la red heterogénea de IP. El transporte de contenido multimedia sobre canales móviles/inalámbricos presenta muchos desafíos porque estos canales a menudo se ven gravemente afectados debido a desvanecimiento por trayectos múltiples, sombreado, interferencia entre símbolos y alteraciones por ruido. Algunos otros motivos tales como movilidad y tráfico competitivo también provocan pérdidas y variaciones de ancho de banda. El ruido del canal y el número de usuarios a los que se está proporcionando servicio determinan la propiedad variante con el tiempo de los entornos del canal.
Las demandas de tasas de transmisión de datos superiores y calidad de servicio superior tanto en redes heterogéneas de IP como en sistemas de comunicación móvil están creciendo rápidamente. Sin embargo, factores tales como tiempos de retardo limitados, potencia de transmisión limitada, ancho de banda limitado y desvanecimiento por trayectos múltiples siguen limitando las tasas de transmisión de datos gestionadas por sistemas prácticos. En las comunicaciones multimedia, particularmente en entornos propensos a error, la resistencia a los errores de los medios transmitidos es crítica para proporcionar la calidad de servicio deseada porque los errores incluso en un único valor decodificado pueden conducir a decodificar artefactos que se propagan espacial y temporalmente. Se han usado diversas medidas de codificación para minimizar errores al tiempo que se mantiene una tasa de transmisión de datos necesaria, sin embargo todas estas técnicas presentan problemas con errores que llegan en el lado del decodificador.
Mediante el uso de un codificador fuente, se comprimen datos, transportando la máxima información gastando el mínimo número de bits, seguido por un codificador de canal que tiende a maximizar la capacidad del canal de transmisión para una probabilidad de error dada en la recepción de esos bits.
La codificación de canal, por ejemplo, codificación de Reed-Solomon, se usa para mejorar la robustez de los datos codificados en la fuente. Se han usado metodologías de codificación conjunta de fuente-canal para proporcionar niveles variables de protección frente a errores a datos codificados en la fuente con niveles variables de importancia o para permitir la adaptación de la tasa de transmisión de datos de vídeo codificados al ancho de banda de red disponible mediante la división y eliminación de paquetes. Esto se debe a que los protocolos de transporte comunes no suministran datos corruptos al decodificador fuente.
Se han usado técnicas de codificación fuente tales como codificación de longitud variable reversible (por ejemplo en MPEG-4) para la recuperación de errores decodificando el paquete en el orden inverso cuando de hecho se reciben paquetes corruptos. Hay un compromiso en la eficacia de codificación con las técnicas de codificación fuente, que se traduce en la calidad de vídeo decodificado para una tasa de transmisión de bits dada.
Las normas de codificación híbridas, tales como MPEG-1, MPEG-2, MPEG-4 (denominadas en conjunto MPEG-x), H.261, H. 262, H.263 y H.264 (denominadas en conjunto H.26x), usan puntos de resincronización en el flujo de bits como el principal procedimiento para gestionar errores en el decodificador.
Otro motivo que puede provocar pérdida de datos además de la corrupción inicial se debe a emulación incorrecta de la palabra de código. La identificación de la posición de error de bit inicial no es una tarea trivial y normalmente no es posible sin un diseño especial que soporte la identificación de posiciones de error de bit en un componente de capa MAC o capa física. Por tanto, tras detectar una corrupción de flujo de bits, el decodificador puede tener que detener la decodificación y avanzar en el flujo de bits para encontrar el siguiente punto de resincronización, y en el proceso saltarse necesariamente una cantidad considerable de datos potencialmente correctos. Aunque la emulación de una palabra de código diferente, que tiene la misma longitud que la original, es decir la palabra de código auténtica, podría parecer ser un problema menor con respecto a la secuencia de eventos descrita anteriormente, en realidad éste no es el caso. Hay muchas maneras en las que esta clase de error puede conducir a fallos en la interpretación correcta de flujo de bits de un decodificador. 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. Por tanto, un valor incorrecto para un objeto de este tipo puede conducir a una interpretación incorrecta del flujo de bits.
Dado que los protocolos de transporte comunes no suministran datos corruptos al decodificador (por ejemplo, una aplicación de decodificador de vídeo o audio), el decodificador tiene una capacidad limitada para gestionar errores de bits, siendo la eliminación de paquetes y la resincronización la solución más común. Se necesita un procedimiento mejorado de gestión de errores de bits que conducen a la propagación de errores y la pérdida de datos debido a problemas tales como pérdida de sincronización y emulación incorrecta de palabra de código.
II. Sumario
El procedimiento y aparato de la presente invención se definen por las reivindicaciones 1 y 5.
Debe observarse que el procedimiento y aparato anteriores pueden implementarse mediante un medio legible por ordenador y/o un procesador configurado para llevar a cabo el procedimiento o la operación del aparato.
III. Breve descripción de los dibujos
La figura 1A es un diagrama de bloques de un ejemplo de un sistema de comunicaciones para suministrar flujo continuo multimedia.
La figura 1B es un diagrama de bloques de un ejemplo de un sistema de comunicaciones multicapa para suministrar flujo continuo multimedia.
La figura 1C es un diagrama de bloques de otro ejemplo de un sistema de comunicaciones multicapa para suministrar flujo continuo multimedia.
La figura 2A es un diagrama de bloques de un ejemplo de una arquitectura de dispositivo decodificador para decodificar flujo continuo multimedia.
La figura 2B es un diagrama de pila de protocolos de un sistema de manejo integrado multicapa que incluye un transmisor y otra vista de la arquitectura de dispositivo decodificador de la figura 2A.
La figura 3 representa un ejemplo de símbolos multimedia organizados para la codificación turbo y el borrado de Reed Solomon concatenado.
La figura 4 es un diagrama de flujo de un ejemplo de un procedimiento para decodificar flujo continuo multimedia.
La figura 5 representa una estructura de paquetes de información turbo para datos de vídeo.
La figura 6 muestra un diagrama de bloques de un ejemplo de sistema de componentes que puede formar parte de un receptor 24 multimedia tal como se muestra en la figura 1.
La figura 7 muestra un organigrama de un proceso para la recuperación de errores.
IV. Descripción detallada
Se describe un procedimiento y aparato para proporcionar capacidades mejoradas de recuperación de errores en un decodificador multimedia. Se proporcionan capacidades integradas de recuperación de errores, tales como, por ejemplo, detectar un error en un flujo de datos multimedia en una capa inferior (por ejemplo, una capa de comunicación) y realizar la recuperación de errores en el error detectado en una capa de aplicación (por ejemplo, un decodificador de vídeo o audio). En un ejemplo, se presenta una arquitectura de decodificador que proporciona información de etiquetado de bits corruptos a componentes de aplicación para su uso en la toma de decisiones informadas al realizar diversos tipos de técnicas de recuperación de errores. Las técnicas de recuperación de errores se usan para sustituir símbolos corruptos por símbolos estimados que se obtienen a partir de información disponible para el componente de aplicación, tales como información de vídeo, audio, texto y gráficos previamente decodificada. En la siguiente descripción, se facilitan detalles específicos para proporcionar un entendimiento completo de las realizaciones. Sin embargo, un experto habitual en la técnica entenderá que las realizaciones pueden ponerse en práctica sin estos detalles específicos. Por ejemplo, pueden mostrarse componentes eléctricos en diagramas de bloques con el fin de no hacer confusas las realizaciones con detalles innecesarios. En otros casos, tales componentes, otras estructuras y técnicas pueden mostrarse en detalle para explicar adicionalmente las realizaciones. Los expertos en la técnica también entienden que los componentes eléctricos, que se muestran como bloques separados, pueden reordenarse y/o combinarse en un componente.
También se observa que algunas realizaciones 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 organigrama puede describir las operaciones como un proceso secuencial, muchas de las operaciones pueden realizarse en paralelo o simultáneamente y puede repetirse el proceso. Además, puede reordenarse el orden de las operaciones. Un proceso se termina cuando se completan sus operaciones. Un proceso puede corresponder a un procedimiento, una función, una subrutina, un subprograma, etc. Cuando un proceso corresponde a una función, su terminación corresponde a una vuelta de la función a la función de llamada o la función principal.
La figura 1A es un diagrama de bloques de un ejemplo de un sistema de comunicaciones para suministrar flujo continuo multimedia. El sistema 20 incluye un transmisor 22 y un decodificador 24 multimedia receptor. El transmisor 22 contiene datos multimedia comprimidos en diversas formas incluyendo, pero sin limitarse a, vídeo, audio, gráficos, texto y fotografías. Los datos pueden ser vídeo y audio comprimido como en las normas MPEG-x y H.26x, audio comprimido como en las normas de compresión de audio o voz MPEG-4 AAC, MP3, AMR y G.723, o cualquier otro tipo de datos digitales.
El transmisor 22 adquiere datos de diversas fuentes incluyendo memoria externa, Internet y una alimentación en directo de vídeo y/o audio. El transmisor 22 también transmite (Tx) datos adquiridos en una red. La red puede ser una red 28 por cable tal como teléfono, cable o fibra óptica, o una red 26 inalámbrica. En el caso de sistemas de comunicación inalámbricos, la red 26 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 como 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 de frecuencia ortogonal (OFDMA), un sistema de acceso múltiple por división de tiempo (TDMA) tal como tecnología de teléfono móvil GSM/GPRS (servicio general de paquetes por radio)/EDGE (entorno mejorado de datos GSM) o TETRA (radio de enlace terrestre) para la industria de servicios, un acceso múltiple por división de código de banda ancha (WCDMA), un sistema de alta tasa de transmisión de datos (1xEV-DO o 1xEV- DO Gold Multicast) o en general cualquier sistema de comunicación inalámbrico que emplea una combinación de técnicas.
El decodificador 24 contiene medios, tales como una antena de radiofrecuencia o una conexión de red, para recibir datos por la red 26 inalámbrica y/o la red 28 por cable. El decodificador 24 puede incluir múltiples procesadores incluyendo cualquier combinación de un preprocesador (por ejemplo, cualquier tipo de unidad de procesador central CPU tal como un ARM), un procesador de señal digital (DSP), software, firmware y hardware tales como un núcleo de vídeo, para distribuir las tareas de demodulación y decodificación asociadas con los datos recibidos. El decodificador 24 también contiene componentes de memoria para almacenar los datos recibidos y datos intermedios en diversas fases del proceso de demodulación/decodificación. En algunas realizaciones, un preprocesador ARM realiza tareas menos complejas incluyendo desempaquetar (eliminar información secundaria tal como cabeceras y mensajes de señalización) y demultiplexar una pluralidad de flujos de bits incluyendo audio, vídeo y otros. El preprocesador ARM también realiza el análisis sintáctico del flujo de bits, la detección y ocultación de errores y la decodificación de entropía de longitud variable. En algunas de tales realizaciones, el DSP realiza la expansión de palabras de código de VLC (código de longitud variable), el barrido en zig-zag inverso de datos de vídeo para localizar espacialmente coeficientes de píxel, la predicción AC/DC inversa de coeficientes de píxel para vídeo MPEG-4 (no una característica de H.264 debido a la codificación de entropía adaptativa del contexto) y la decodificación de audio (por ejemplo MPEG-4 AAC, MP3, AMR o G.723). El núcleo de vídeo puede realizar las tareas más complejas desde el punto de vista del cálculo de decodificación de vídeo comprendiendo la descuantificación, transformación inversa, predicción compensada de movimiento y desbloqueo (una forma de filtrado para reducir los artefactos de borde entre bordes de bloques de píxel). Pueden añadirse, reordenarse o combinarse uno o más elementos en el sistema 20 de comunicaciones. En el caso de sistemas de comunicaciones por cable, la red 26 puede comprender, por ejemplo, parte de un sistema de comunicaciones basado en protocolo de Internet (IP) con protocolos de transporte tales como protocolo de transporte en tiempo real (RTP) o protocolo de datagrama universal (UDP).
La figura 1B es un diagrama de bloques de una pila de protocolos multicapa usada para dividir tareas en un transmisor 22 y un decodificador 24. Los componentes 205 y 210 de capa superior en el transmisor 22 y el decodificador 24, respectivamente, pueden incluir múltiples aplicaciones tales como, por ejemplo, codificadores y/o decodificadores de vídeo o audio. Algunas realizaciones pueden incluir múltiples flujos de información que se pretende que se decodifiquen simultáneamente. En estos casos, también pueden realizarse tareas de sincronización de los múltiples flujos en los componentes 205 y 210 de capa superior. El componente 205 de capa superior puede proporcionar información de sincronismo codificada en el flujo de bits que se transmite por una red 26 inalámbrica y/o una red 28 por cable. El componente 210 de capa superior puede analizar sintácticamente los múltiples flujos de información de manera que las aplicaciones asociadas los decodifican aproximadamente al mismo tiempo.
Los componentes 215 de capa inferior en el transmisor 22 pueden incluir diversos esquemas para proporcionar resistencia a los errores. Los canales propensos a errores tales como la red 26 inalámbrica y/o red 28 por cable pueden introducir errores en el flujo de bits recibido por el decodificador 24. Tales esquemas de resistencia a los errores proporcionados en los componentes 215 de capa inferior pueden incluir uno o más esquemas de codificación de control de errores, esquemas de entrelazado y otros esquemas que conocen los expertos en la técnica. Los componentes 220 de capa inferior en el decodificador 22 pueden incluir los componentes de decodificación de errores correspondientes que permiten la detección y corrección de errores. Algunos errores que se introducen por la red 26 inalámbrica y/o la red 28 por cable pueden no ser corregibles por los componentes 220 de capa inferior. Para los errores que no pueden corregirse, soluciones tales como los componentes 220 de capa inferior que solicitan la nueva transmisión de componentes corruptos por componentes 215 de capa inferior del transmisor 22 pueden no ser viables para algunas situaciones, por ejemplo, en comunicaciones multimedia en tiempo real tales como aplicaciones de flujo continuo. En algunas realizaciones, los componentes 215 y 220 de capa inferior comprenden componentes de capa de comunicaciones. Pueden añadirse, reordenarse o combinarse uno o más elementos en el transmisor 22 o el decodificador 24 mostrados en la figura 1B.
La figura 1C es un diagrama de bloques de un ejemplo más detallado de una pila de protocolos multicapa usada para dividir tareas en un transmisor 22 y un decodificador 24. Los componentes 205 de capa superior, del transmisor 22, están distribuidos en una o más de una capa 206 de aplicación y una capa 207 de sincronización. Los componentes 215 de capa inferior, del transmisor 22, están distribuidos en una o más de una capa 216 de transporte, una capa 217 de control de acceso al medio o flujo (MAC) y una capa 218 física. De manera similar, los componentes 210 de capa superior, del decodificador 24, están distribuidos en una o más de una capa 211 de aplicación y una capa 207 de sincronización. Los componentes 220 de capa inferior, del decodificador 24, están distribuidos en una o más de una capa 221 de transporte, una capa 222 de control de acceso al medio o flujo (MAC) y una capa 223 física. Los expertos en la técnica reconocerán estas capas y estarán familiarizados con la asignación de diversas tareas entre ellas. Ahora se tratará un ejemplo de una arquitectura que integra diversas capas del dispositivo 24 decodificador, tal como se trató anteriormente, para aprovechar la resistencia a los errores proporcionada en el transmisor 22. Pueden añadirse, reordenarse o combinarse uno o más elementos en el transmisor 22 o el decodificador 24 mostrados en la figura 1C.
La figura 2A es un diagrama de bloques de un ejemplo de arquitectura de dispositivo decodificador para decodificar un flujo continuo multimedia. La figura 2B es un diagrama de pila de protocolos de un ejemplo de un sistema de gestión integrado multicapa que incluye un transmisor 22 y una vista de pila de protocolos de la arquitectura de dispositivo decodificador de la figura 2A. Con referencia a las figuras 2A y 2B, el decodificador 30 multimedia incluye un componente 32 de capa física, un componente 34 de capa MAC, un analizador 39 sintáctico de transporte y sinc. (TSP) y un componente 50 de capa de aplicación. El decodificador 30 multimedia recibe un flujo de bits de entrada (ENTRADA) que incluye un esquema de corrección de errores concatenado tal como un esquema concatenado turbo/Reed-Solomon. El componente 32 de capa física puede realizar tareas de demodulación incluyendo, pero sin limitarse a, recibir, decodificar el control de errores, por ejemplo, decodificación de código turbo e interconexión con una capa MAC (control de acceso al medio). El componente 34 de capa MAC puede realizar una decodificación de control de errores, por ejemplo, detección de errores de Reed-Solomon, corrección de errores y etiquetado de datos corruptos incorregibles, por ejemplo, grupos de uno o más bits. El componente 34 de capa MAC se interconecta con el componente 39 de analizador sintáctico de transporte y sinc. (TSP).
El componente 39 de TSP puede incluir además un componente 36 De-Mux de capa de transporte y un componente 38 de análisis sintáctico de capa de sinc. (sincronización). El componente 36 De-Mux de capa de transporte puede recibir el flujo de bits que pasa del componente 34 de capa MAC, incluyendo tanto bits correctos y corruptos como información que etiqueta los grupos corruptos de bits. Los grupos corruptos de bits y la correspondiente información de etiquetado comprenden información correspondiente a fallos 33 de CRC de descodificador turbo, y fallos 35 de Reed-Solomon. (En ciertas pilas de protocolos, el componente 36 De-Mux de capa de transporte también se conoce como subcapa de flujo, en la que tanto la subcapa MAC como la subcapa de flujo son ambas subcapas de la capa de transporte). El componente 36 De-Mux de capa de transporte puede demultiplexar (De-Mux) o analizar sintácticamente el flujo de bits que recibe en una pluralidad de flujos de bits. Los flujos de bits analizados sintácticamente pueden incluir flujos de bits que se dirigen a diferentes aplicaciones tales como un decodificador de vídeo, un decodificador de audio y diversas combinaciones de aplicaciones de texto, gráficos e imágenes. El componente De-Mux de capa de transporte también puede analizar sintácticamente un flujo de bits dirigido a una única aplicación, tal como el flujo de bits de vídeo por ejemplo, en dos o más capas separadas (por ejemplo, usando codificación escalable) tal como una capa base y una capa de mejora. Entonces pueden usarse estas capas para proporcionar escalabilidad, por ejemplo, escalabilidad temporal y/o SNR. Un ejemplo de codificación escalable divide fotografías con codificación interna (tales como tramas I) y las diferentes fotografías intercodificadas (tales como tramas P o tramas B obtenidas usando, por ejemplo, predicción compensada de movimiento) en diferentes capas en el flujo de bits. Pueden codificarse tramas I en una capa base y codificarse tramas P y/o B en una capa de mejora. La codificación escalable es útil en canales dinámicos, en los que pueden adaptarse flujos de bits escalables para corresponder con fluctuaciones en el ancho de banda de la red. En canales propensos a error, la codificación escalable puede añadir robustez mediante protección frente a errores desigual de la capa base y la capa de mejora. Puede aplicarse una mejor protección frente a errores a la capa más importante.
El componente 38 de analizador sintáctico de la capa de sinc. (sincronización) realiza un análisis sintáctico adicional del flujo de bits con respecto a subflujos de bits que están relacionados entre sí de manera sincronizada en el tiempo. Puede analizarse sintácticamente un flujo de bits de vídeo multimedia en un flujo de bits de vídeo, un flujo de bits de audio y un flujo de bits con texto asociado para subtítulos ocultos. El componente 38 de analizador sintáctico de capa de sinc. retransmite los flujos de bits analizados sintácticamente a la aplicación de decodificador asociada junto con la información de sincronización en el tiempo. Esto permite visualizar y reproducir el audio, vídeo y texto relacionados en el momento apropiado.
Además del análisis sintáctico tratado anteriormente, el componente 36 De-Mux de capa de transporte puede analizar sintácticamente y retransmitir la información de etiquetado de corrupción (por ejemplo, información 33 de fallo CRC e información 35 de fallo Reed- Solomon), que recibió del componente 34 de capa MAC y la capa 32 física, al componente 38 de analizador sintáctico de capa de sinc. y/o al proceso de capa de aplicación apropiado (por ejemplo, un decodificador de vídeo o un decodificador de audio). El componente 38 de analizador sintáctico de capa de sinc. puede retransmitir la información de etiquetado de corrupción en forma de información 37 de distribución de errores. El componente 38 de analizador sintáctico de capa de sinc. también puede retransmitir información 41 de estrategia de control de errores recomendada. Entonces el proceso de capa de aplicación puede usar la información 37 de etiquetado de corrupción y la información 41 de estrategia de control para la gestión de errores.
El componente 50 de capa de aplicación puede contener uno o más componentes tales como, por ejemplo, un componente 40 de recuperación de errores, componente 42 de escalabilidad, componente 44 de conversión ascendente de tasa de transmisión de tramas (FRUC), componente 46 de decodificación de aplicación núcleo y componente 48 de procesamiento posterior. El componente 50 de capa de aplicación usa la información 37 de etiquetado de corrupción retransmitida y la información 41 de estrategia de control para tomar decisiones sobre cómo usar los componentes de recuperación de errores, escalabilidad y FRUC para manipular los datos corruptos ofreciendo así una decodificación de calidad superior con el componente 46 de decodificación de aplicación núcleo. Por ejemplo, en el caso de escalabilidad temporal en el que algunos medios se reciben en una capa que contiene información importante y el resto de los medios en la otra capa, puede usarse FRUC para reconstruir los medios que faltan si no se recibió la segunda capa o se perdió o estaba corrupta. Tras la decodificación, el componente 48 de procesamiento posterior realiza cualquier modificación específica de hardware necesaria para permitir visualizar o reproducir o convertir la salida de vídeo y audio (SALIDA) en un visualizador de vídeo o altavoces respectivamente. El componente 48 de procesamiento posterior también puede realizar las funciones de mejora o restauración antes de convertir o presentar los medios.
El componente 46 de decodificación de aplicación núcleo puede incluir un decodificador(es) de vídeo, un decodificador(es) de audio así como aplicaciones de texto y gráficos. Realizando la recuperación de errores, la escalabilidad y el procesamiento FRUC de los diversos flujos de bits de aplicación antes o durante la decodificación con el componente 46 de aplicación núcleo, pueden realizarse mejoras para mejorar la calidad de un flujo de bits de baja calidad (uno codificado con baja calidad o uno recibido con baja calidad debido a errores). Por ejemplo, los componentes 40, 42 y 44 pueden ofrecer mejoras con respecto a un flujo de bits de vídeo que cumple con la norma de referencia H.264 (el perfil de referencia es un perfil muy sencillo que se diseñó para dispositivos de baja potencia) y proporcionar determinadas características de los demás perfiles de H.264 tales como tramas B y división de datos en segmentos que se requiere que cumplan con requisitos de escalabilidad, adquisición y resistencia a los errores para un vídeo de flujo continuo. A continuación se presentan detalles de procesos que usan los componentes de decodificador 30 multimedia. Pueden añadirse, reordenarse o combinarse uno o más elementos al transmisor 22 o al decodificador 30 mostrados en las figuras 2A y 2B.
Ahora se presentará una breve discusión de detección de errores y corrección de errores. Un ejemplo de un esquema de detección y corrección de errores usa un código concatenado incluyendo tanto un código (canal) interno como un código (canal) externo. Los códigos de canal concatenados consisten en un código turbo (interno) en la capa física y un código de corrección de borrado Reed-Solomon (externo) situado en la capa de transporte/MAC. La figura 3 representa un ejemplo de símbolos multimedia organizados para la codificación turbo y el borrado de Reed Solomon concatenado. Con respecto al lado de codificación, la salida de símbolos a partir de la fuente de información, la salida de palabras de código binarias a partir de un codificador, se dividen en bloques de bytes 102. Cada byte 102 se considera un símbolo en un campo finito conocido como "campo (256) de Galois" para los fines de un código de Reed-Solomon (RS) externo (N, K) en GF (256). N y K representan respectivamente los tamaños de la palabra 104 de código RS entera y sus datos 106 fuente que tienen una parte sistemática en el número de símbolos. Por tanto, N menos K da el número de símbolos 108 de paridad incluidos en cada palabra 104 de código. Un código RS (N, K) puede corregir N menos K borrados.
Las K primeras filas 106 tienen esencialmente la salida de símbolos de la fuente de información y puede realizarse un barrido de estos símbolos en las K filas o bien primero las filas o bien primero las columnas. El entrelazado logrado por el barrido de primero columnas da como resultado grupos significativamente más cortos de bits corruptos cuando una fila 112 de paquetes de información turbo dada está corrupta. Los grupos de bits corruptos, debido al borrado del paquete de información turbo, pueden tener 1 byte cada uno de longitud para los barridos de primero columnas al contrario que (L-1) bytes cada uno para los barridos de primero filas. En el decodificador, el etiquetado de estos grupos corruptos de bits, tal como se trata a continuación, puede necesitar identificar el tamaño y la posición (en el flujo de bits) de estos grupos de bits. Tras esta etapa inicial de localización de datos fuente, se codifica por RS cada una de las L columnas 104 (de K bytes) en N bytes, añadiendo N-K bytes de paridad, y por tanto se generan las filas K+1, ..., N 108 en la figura 3. Las K primeras filas, constituidas por datos 106 fuente, se denominan bloque de información RS, y el conjunto entero de N filas se denomina bloque codificado RS, o sencillamente bloque 110 de código.
A cada fila 112 se le añaden una suma de comprobación CRC (comprobación de redundancia cíclica) y algunos bits de cola requeridos para la correcta operación de un codificador turbo. Añadiendo una suma de comprobación a cada fila 112, las filas que no logren satisfacer sus respectivas sumas de comprobación tras la decodificación turbo pueden declararse borradas. A cada bloque 110 de código se le introduce una fila 112 cada vez en un codificador turbo, y, por tanto, a cada fila se denomina paquete de información turbo.
El proceso de decodificación turbo presenta datos de decisión por hardware al proceso de decodificación Reed-Solomon, lo que reduce adicionalmente la tasa de transmisión de errores residuales. La capacidad de corregir satisfactoriamente el borrado depende del número total de borrados dentro de un bloque de código y el número (N menos K) de símbolos de paridad usados por palabra de código RS.
En el diseño de codificación de canal objetivo para el decodificador 30 multimedia de la figura 2, si el bloque de código Reed-Solomon (RS) ha borrado más allá de la capacidad de corrección, el bloque de información RS correspondiente (figura 3) puede pasarse a componentes en la capa de transporte, la capa de sinc. y finalmente la capa de aplicación con una notificación conjunta que etiqueta cuál de los K paquetes 112 de información turbo (figura 3) están corruptos. La estructura sistemática del código RS exterior (N, K) sobre GF (256) permite el uso directo de los paquetes de información turbo que se reciben correctamente (no corruptos).
La figura 4 es un diagrama de flujo de un ejemplo de un procedimiento para decodificar flujo continuo multimedia. Se reciben datos modulados con ruido (ENTRADA) y se introducen en el proceso 60 de decodificación y se demodulan 62. Los datos pueden recibirse a través de redes por cable o inalámbricas tales como la red 26 inalámbrica y la red 28 por cable en la figura 1. El componente 32 de capa física de la figura 2 realiza la acción de demodular en la etapa 62 los datos con ruido recibidos. Entonces se pasan los datos demodulados cuando pueden detectarse y corregirse 64 errores. El componente 32 de capa física de la figura 2 puede realizar la acción de decodificación turbo de 64, mientras que el componente 34 de capa MAC de la figura 2 puede realizar la acción de corrección de errores Reed Solomon de 64.
Después de que la decodificación turbo y Reed Solomon haya detectado y corregido 64 todos los errores que pueden corregirse, se identifican 66 paquetes de información turbo y/o bytes corruptos, por ejemplo, mediante etiquetado. Antes de pasar el flujo de bits para su análisis sintáctico 68, se descartan las sumas de comprobación CRC y los bits de cola en cada paquete de información turbo, así como las filas 108 de paridad (figura 3). Los datos recibidos correctamente, los recibidos incorrectamente pero corregidos y los corruptos etiquetados, junto con la información de etiquetado que identifica los datos corruptos, se pasan todos ellos para el análisis sintáctico 68 del flujo de bits. El componente 32 de capa física y/o el componente 34 de capa MAC de la figura 2 puede realizar la acción de identificación 66 (por ejemplo, mediante etiquetado) de datos corruptos.
Tal como se trató anteriormente, el componente 36 De-Mux de transporte y el componente 38 de analizador sintáctico de capa de sinc. analizan sintácticamente 68 el flujo de bits, en una pluralidad de flujos de bits objetivo para múltiples procesos de capa de aplicación. En el ejemplo mostrado en la figura 4, el flujo de bits se analiza sintácticamente 68 en flujo 70 de bits de vídeo, flujo 72 de bits de audio y flujo 74 de bits de texto y/o gráficos. Cada flujo 70, 72 y 74 de bits puede contener datos que identifican grupos corruptos de bits dentro de los flujos de bits individuales. Además, cuando los flujos de bits individuales tienen que estar sincronizados en el tiempo, los flujos de bits pueden contener información de sincronismo.
Después de analizar sintácticamente los flujos de bits individuales, tiene lugar la gestión de errores en la capa de aplicación en la que se sustituyen 78, 82 y 86 bits corruptos, usando una de varias técnicas de recuperación u ocultación de errores. El componente 40 de recuperación de errores, el componente 42 de escalabilidad y el componente 44 FRUC del componente 50 de capa de aplicación en la figura 2 pueden realizar las acciones de sustitución 78, 82 y 86. Después de sustituir los símbolos corruptos, pueden decodificarse, 80, 84 y 88 los flujos de bits individuales de vídeo, audio y texto/gráficos, respectivamente. El componente 46 de aplicación núcleo del componente 50 de capa de aplicación en la figura 2 puede realizar la decodificación 80, 84 y 88. El componente 46 de aplicación núcleo del componente 50 de capa de aplicación en la figura 2 también puede sustituir 78, 82 y/o 86 bits corruptos que pueden haberse etiquetado por componentes de capa inferior. Puede añadirse, reordenarse o combinarse uno o más elementos al proceso 60 mostrado en la figura 4.
Ahora se tratará con más detalle un ejemplo de identificación 66 de bits corruptos mediante etiquetado de datos corruptos, tal como se muestra en la figura 4. La figura 5 representa una estructura de paquetes de información turbo para datos de vídeo. El bloque 140 representa un conjunto de paquetes de información turbo tal como las K filas de paquetes 106 de información turbo que constituyen el bloque de información RS representado en la figura 3. Una trama de vídeo puede requerir que se codifique más de un paquete de datos de información turbo. Por ejemplo, se inicia una primera trama, F1, en la fila 142A en el bloque 148A de información. El resto de los datos en la trama F1 están situados en las filas 142B, 142C, 142D y la primera parte de la fila 142E. La fila 142A también contiene la cabecera 146A de sinc. (SH) que contiene información tal como identificación de flujo, tiempo de sincronización, identificación de trama (número de trama y posiblemente número de capa en el caso de una capa base y una capa de mejora) y otra información. La cabecera 146A de sinc. sirve para identificar al analizador sintáctico de capa de sinc. (véase 38 en la figura 2) dónde (a qué aplicación) enviar los datos contenidos en los bloques de información siguientes que representan la trama F1. Al final de cada fila hay una suma de comprobación CRC, como se trató anteriormente, que se usa junto con la decodificación Reed-Solomon para identificar paquetes borrados (corruptos).
Al comienzo de cada fila de paquetes de información turbo está la cabecera 144 de capa de transporte (TH). Cada TH 144 contiene Última_Etiqueta y un Puntero_Desviación. El etiquetado de un paquete de información turbo corrupto, llevado a cabo en la etapa 66 de la figura 4, puede realizarse mediante el propio valor de Puntero_Desviación. El ajuste del Puntero_Desviación a un valor inválido puede significar que el paquete está corrupto. Como alternativa, puede usare un campo Etiqueta_Error en la TH. El etiquetado puede lograrse ajustando (Etiqueta_Error = 1) en la TH correspondiente. Por ejemplo, si la fila 142C está corrupta, entonces la TH de la fila 142C puede ajustarse igual a uno. Se usa Última_Etiqueta para indicar que la fila actual es la última fila de una trama (ajustándola igual a uno, por ejemplo) y si es la última fila, entonces se usa el Puntero_Desviación para indicar dónde en la fila de paquetes de información turbo comienza la siguiente trama (en número de bytes). En la fila 142E, por ejemplo, la TH 144B puede tener (Última_Etiqueta = 1) y el Puntero_Desviación puede ser igual al número de bytes contenidos en la fila antes del comienzo de la TH 144C (el comienzo de la trama F3). La cabecera 146B de sinc. puede contener datos que indican ID_Trama y flujo de bits tal como se trató anteriormente. El bloque 148C de información contiene datos de vídeo que representan la trama F3. Si se determina que la fila 142E está corrupta, entonces puede que el decodificador no pueda determinar dónde termina la trama F1 y dónde comienza la trama F3.
Además (o en vez) de incluir una Etiqueta_Error en la cabecera de transporte tal como se trató anteriormente, puede construirse una tabla de datos y reenviarse a la capa de aplicación con la información indicada en la tabla 1 para cada trama de vídeo.
\vskip1.000000\baselineskip
TABLA 1 Información de muestra contenida en una tabla de errores de flujo de bits de vídeo
1
\vskip1.000000\baselineskip
Pueden construirse otras tablas de errores de flujos de bits, similares a la tabla 1. La información de etiquetado de errores contenida en las cabeceras de transporte y/o tablas de errores tales como la tabla 1 puede utilizarse por los componentes de capa de aplicación, tales como los componentes 40, 42 y 44 de la figura 2, para identificar símbolos corruptos en los flujos 70, 72 y 74 de bits analizados sintácticamente y sustituirlos en las etapas 78, 82 y 86, respectivamente, en la figura 4. Tal como se trató anteriormente, no se descartan los paquetes de borrado de la codificación RS sino que se suben a la capa de aplicación, tal como el decodificador de vídeo. Esto impide que se pierdan paquetes completos, potencialmente de una longitud de 122 bytes o más para paquetes de vídeo.
La acción de sustituir símbolos corruptos, etapas 78, 82 y 86 en la figura 4, puede adoptar dos formas principales, la corrección de errores y la ocultación de errores. Las operaciones de ocultación y corrección de errores a nivel de flujo de bits se llevan a cabo en borrados y errores en ráfaga. Los errores de decodificación (debidos a errores de bytes) se corrigen usando un criterio MAP (probabilidad máxima a posteriori) en la medida de lo posible. Los errores que no pueden corregirse se ocultan usando información espacial y/o temporal a partir de macrobloques vecinos (un macrobloque es una zona de 16x16 píxeles que se opera comúnmente en normas de compresión de vídeo, aunque también podrían usarse macrobloques secundarios más pequeños tales como de 8x8, 8x16 y otros). La ocultación temporal puede usarse, por ejemplo, cuando una imagen es estática por más de una trama. Si el macrobloque corrupto que está ocultándose está en una zona que ha permanecido relativamente constante en tramas previas, probablemente estará presente en la trama corrupta y las zonas de trama anteriores pueden usarse como estimación para la zona corrupta. La ocultación espacial puede aprovechar bordes u objetos que persisten en macrobloques vecinos en la misma trama.
Tal como se trató anteriormente, pueden recibirse múltiples capas de datos codificados que representan el mismo flujo de bits. Las capas pueden incluir una capa base y una o más capas de mejora en las que la(s) capa(s) de mejora pueden proporcionar tramas adicionales que no están disponibles en la capa base (tales como tramas B previstas bidireccionales) o pueden proporcionar perfeccionamientos diferenciales de calidad superior de los coeficientes de píxel de capa base. En caso de perfeccionamientos diferenciales de los coeficientes de capa base, si la capa base está corrupta, entonces la capa de mejora puede carecer de utilidad puesto que se obtuvo basándose en los valores de píxel de capa base. Por tanto, puede omitirse la capa de mejora en la decodificación si los datos de capa base están corruptos. Este proceso se denomina decodificación selectiva y también puede usarse en situaciones de baja potencia. Por ejemplo, cuando el dispositivo que alberga el decodificador está funcionando en modo de baja potencia o funcionando con batería baja, sólo puede decodificarse la capa base omitiendo la capa de mejora ahorrando así ciclos de cálculo y a su vez el consumo de potencia. Pueden usarse técnicas de ocultación espacial y/o temporal para sustituir los datos combinados de la capa base y la de mejora.
Una capa de mejora (tratada a veces como capa de baja prioridad) puede transmitirse a una potencia inferior que la capa base (o capa de alta prioridad). Esto aumenta la probabilidad de error en la capa de mejora respecto a la capa base. Por tanto, cuando la capa base recibida contiene un elevado porcentaje de errores, puede eliminarse potencialmente la capa de mejora.
Las tramas previstas bidireccionales (tramas B) se prevén a partir tanto de una trama previa como de una trama posterior usando predicción compensada de movimiento. Las tramas B ofrecen proporciones de compresión muy altas y son muy deseables para conservar el ancho de banda. Las tramas B también son deseables por sus características de escalabilidad temporal. Las tramas B que cumplen con las normas no se usan para la predicción de cualquier otra trama, y por este motivo, pueden eliminarse sin afectar negativamente a otras tramas. Las tramas B también son más propensas a una propagación de errores debido a los errores en las tramas de las que dependen. Por estos motivos, es muy probable que las tramas B se lleven en una capa de mejora (o de baja prioridad). Si la capa de mejora se transmite a una potencia inferior, entonces las tramas B son incluso más propensos a errores.
Si una trama B (o cualquier otro tipo de trama) está completamente corrupta, o tiene un porcentaje de errores por encima de un umbral que hace que la ocultación de errores temporal o espacial sea inviable, entonces puede utilizarse la conversión ascendente de tasa de transmisión de trama (véase componente 44 FRUC de la figura 2). Se usa FRUC para volver a generar la trama perdida. También puede usarse FRUC para volver a generar una trama que se eliminó de la decodificación por motivos tales como ahorro de potencia. Las técnicas FRUC utilizan información de píxel y vector de movimiento de una trama previa y una trama posterior para interpolar valores para píxeles y vectores de movimiento. Las técnicas FRUC exactas están más allá del alcance de esta explicación. Las técnicas FRUC incluyen formas de sólo decodificador y asistidas por codificador. La FRUC de sólo decodificador realiza la pseudointerpolación de datos de trama sin ninguna otra información. La FRUC asistida por codificador utiliza información secundaria transmitida en mensajes de información de mejora complementaria (SEI) de H. 264 o el mensaje de datos_usuario de MPEG-2.
La figura 6 muestra un diagrama de bloques de un ejemplo de sistema de componentes que puede formar parte de un receptor multimedia, por ejemplo, el receptor 24 mostrado en la figura 1. El sistema 600 es un sistema de integración multicapa para su uso en la recuperación de errores. La figura 7 muestra un organigrama de un proceso para la recuperación de errores que puede usarse por el sistema 600. Con referencia a las figuras 6 y 7, el proceso 700 recibe 705 uno o más flujos de datos multimedia. Los flujos de datos pueden incluir vídeo, audio y/o texto de subtítulos ocultos y otros. El uno o más flujos recibidos pueden ser de datos codificados. Los datos codificados pueden ser datos transformados, datos cuantificados, datos comprimidos o combinaciones de los mismos. Medios de recepción tales como el receptor 24 en la figura 1A pueden recibir 705 el uno o más flujos. Además de recibir múltiples flujos de multimedia, cada flujo recibido puede comprender múltiples capas, por ejemplo, una capa base y una capa de mejora. El receptor 24 puede ser un receptor inalámbrico o por cables o una combinación.
Los errores que permanecen en el flujo de bits se detectan 710. Los errores detectados pueden comprender aquellos errores que permanecen después de una corrección de errores de capa inferior y después de que los protocolos de detección hayan corregido algunos de los errores que se introdujeron por la transmisión sobre un canal, por ejemplo el canal 26 inalámbrico o el canal 28 por cables de la figura 1A. Tal como se trató anteriormente, no todos los errores pueden corregirse y cualquiera de los protocolos de capa inferior puede marcar datos corruptos y/o grupos de datos que contienen errores. Los protocolos de capa inferior usados para detectar 710 errores pueden implementarse en una capa de comunicación tal como se trató anteriormente. Las capas de comunicación pueden ser una o una combinación de una capa física, a capa MAC (o capa de flujo) o una capa de transporte, o una combinación de las mismas. Medios de detector tales como un detector 605 de errores en la figura 6 pueden realizar una detección 710 de errores. El detector 605 de errores puede usar cualquiera de diversos esquemas de detección conocidos por los expertos en la técnica, por ejemplo, esquemas de código turbo y/o de Reed-Solomon tal como se trató anteriormente. La detección de errores puede deberse a un fallo de CRC en un decodificador turbo. La detección de errores puede deberse a un fallo de un decodificador Reed-Solomon.
Los errores detectados pueden controlarse 715 mediante diversos procedimientos. El control 715 puede comprender el marcado (o etiquetado) de datos corruptos tal como se trató anteriormente. El control 715 puede comprender localizar errores identificando grupos de datos, por ejemplo, paquetes, bloques, segmentos, tramas, macrobloques, macrobloques secundarios, que contienen los errores detectados. El control 715 puede basarse en un protocolo de capa de transporte. Un protocolo de este tipo puede marcar errores que permanecen mediante la codificación de uno o más bits en una cabecera de capa de transporte para su uso por capas superiores (véanse las figuras 1B y 1C). Las capas superiores pueden usar los indicadores de error de cabecera de capa de transporte para identificar y/o localizar adicionalmente paquetes de capa superior que están constituidos por uno o más paquetes de capa de transporte corruptos, localizando así adicionalmente los errores en flujos de bits de capa superior. Medios de control tales como el controlador 610 de errores de la figura 6 pueden realizar las tareas de control de errores.
Se determina 720 una distribución de errores. En un aspecto, la distribución de errores se determina basándose en un protocolo de capa de sincronización. El uno o más flujos de bits que se recibieron 705, puede analizarse sintácticamente en la capa de sincronización. Si la capa de sincronización recibe información desde una de las capas inferiores, por ejemplo de comunicación, marcando datos corruptos, puede que pueda identificar qué partes de qué flujos de bits están corruptas. El tener esta información puede permitir a un protocolo de capa de sincronización planificar la ocultación de errores de capa superior (por ejemplo, de una capa de aplicación) y/o estrategias de recuperación de errores. Pueden aplicarse diferentes estrategias dependiendo del tamaño de los datos corruptos. Los paquetes de capa de transporte, que pueden marcarse como erróneos, pueden combinarse en paquetes de capa de sincronización para su retransmisión a los diversos componentes de capa de aplicación dependiendo de de qué flujo de bits forman parte. Los paquetes de capa de transporte pueden tener una longitud fija y los paquetes de capa de sincronización pueden tener una longitud variable. La capa de sincronización puede identificar la distribución de errores insertando datos para identificar qué parte de un paquete de sincronización de longitud variable contiene un paquete de capa de transporte corrupto. Además de usar la información del control 715 de errores, un protocolo de capa de sincronización puede incluir procedimientos de detección de errores adicionales. Estos procedimientos de detección de errores pueden incluir comprobar las CRC de los paquetes de capa de sincronización. La distribución de errores determinada puede comunicarse adicionalmente a los componentes de componentes de capa de aplicación insertando marcas de error en los paquetes de datos analizados sintácticamente. Medios de determinación tales como el determinador 615 de distribución de errores pueden determinar 720 la distribución de errores.
La recuperación de errores puede realizarse 725 en partes del uno o más flujos de datos multimedia codificados. La recuperación de errores puede basarse en protocolos de capa de aplicación. Los componentes de capa de aplicación pueden realizar la recuperación de errores. Los componentes de capa de aplicación pueden determinar qué tipo de recuperación de errores usar basándose en información recibida desde una capa de sincronización, tal como se trató anteriormente. La recuperación de errores puede comprender una o una combinación de ocultación de errores temporal, ocultación de errores espacial y conversión ascendente de tasa de transmisión de trama (FRUC) tal como se trató anteriormente, así como otros procedimientos. La ocultación de errores detectados en el uno o más flujos de datos multimedia puede basarse en un protocolo de capa de aplicación. La recuperación de errores también puede soportar la escalabilidad del uno o más flujos de datos. La escalabilidad puede incluir uno o ambos de escalabilidad espacial o temporal tal como se trató anteriormente. Medios de recuperación de errores tales como el componente 40 de recuperación de errores de la figura 2A pueden realizar una recuperación 725 de errores. Medios de ocultación de errores tales como el ocultador 620 de errores pueden realizar una ocultación de errores. Medios de escalabilidad tales como los componentes 42 de escalabilidad de la figura 2A y 620 de la figura 6 pueden soportar la escalabilidad al realizar una recuperación 725 de errores.
El proceso 700 puede incluir la reconstrucción 730 del uno o más flujos de bits. La reconstrucción 730 puede comprender combinar datos recibidos correctamente con datos ocultados. La reconstrucción puede incluir reducir una tasa de transmisión de tramas (una forma de escalabilidad temporal) si la cantidad de errores en una trama supera un umbral. La reconstrucción puede comprender elegir no decodificar u ocultar o corregir una capa de mejora (una forma de escalabilidad SNR). Los protocolos de capa de aplicación pueden ser la base para la reconstrucción 730. Medios de reconstrucción tales como el elemento 630 de reconstrucción de flujo de datos pueden realizar una reconstrucción 725. Pueden añadirse, reordenarse o combinarse uno o más elementos en el sistema 600. Pueden añadirse, reordenarse o combinarse uno o más elementos en el proceso 700.
Ejemplos de los procedimientos y aparatos descritos anteriormente incluyen lo siguiente.
Un procedimiento para decodificar datos multimedia que incluye recibir un flujo de bits, realizar una decodificación de control de errores del flujo de bits recibido, en el que la decodificación de control de errores comprende identificar bits corruptos que no están corregidos, pasar el flujo de bits decodificado de control de errores incluyendo los bits corruptos identificados a un decodificador, sustituir al menos uno de los bits identificados y decodificar el flujo de bits decodificado de control de errores, incluyendo los bits sustituidos. En un aspecto, el procedimiento incluye además analizar sintácticamente el flujo de bits decodificado de control de errores en uno o más símbolos, y analizar sintácticamente información que identifica los bits corruptos de modo que cualquier símbolo que contenga bits corruptos se identifique como corrupto. En otro aspecto el procedimiento incluye además construir una tabla de errores que contiene la información analizada sintácticamente que identifica los bits corruptos, en el que la tabla de errores contiene información que correlaciona los bits identificados con posiciones en una secuencia de tramas de vídeo. En otro aspecto más, el procedimiento incluye además analizar sintácticamente el flujo de bits codificado de control de errores en un primer flujo de bits analizado sintácticamente y un segundo flujo de bits analizado sintácticamente, en el que el primer flujo de bits analizado sintácticamente es un flujo de bits de capa base y el segundo flujo de bits analizado sintácticamente es un flujo de bits de capa de mejora.
Un procedimiento para decodificar datos multimedia que incluye recibir un flujo de bits, realizar decodificación de control de errores del flujo de bits recibido, en el que la decodificación de control de errores comprende identificar bits corruptos que no están corregidos, pasar el flujo de bits decodificado de control de errores incluyendo los bits corruptos identificados a un decodificador, sustituir al menos uno de los bits identificados realizando conversión ascendente de tasa de transmisión de tramas entre una primera trama y una segunda trama, y decodificar el flujo de bits decodificado de control de errores.
Los expertos en la técnica entenderán que la información y las señales pueden representarse usando cualquiera de una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, instrucciones, órdenes, información, señales, bits, símbolos y elementos de código a los que puede hacerse referencia a lo largo de la descripción anterior pueden representarse mediante tensiones, corrientes, ondas electromagnéticas, partículas o campos magnéticos, partículas o campos ópticos, o cualquier combinación de los mismos.
Los expertos habituales apreciarán además que los diversos bloques lógicos, módulos y etapas algorítmicas ilustrativos descritos en conexión con los ejemplos dados a conocer en el presente documento pueden implementarse como hardware electrónico, firmware, software informático, programa intermedio, microcódigo o combinaciones de los mismos. Para ilustrar con claridad esta intercambiabilidad de hardware y software, se han descrito anteriormente diversos componentes, bloques, módulos, circuitos y etapas ilustrativos en general en cuanto a su funcionalidad. El que tal funcionalidad se implemente como hardware o software depende de las limitaciones particulares de aplicación y diseño impuestas al sistema global. Los expertos en la técnica pueden implementar la funcionalidad descrita de diversas maneras para cada aplicación particular, pero no debe interpretarse que tales decisiones de implementación provocan un alejamiento del alcance de los procedimientos dados a conocer.
Los diversos bloques lógicos, componentes, módulos y circuitos ilustrativos descritos en conexión con los ejemplos dados a conocer en el presente documento pueden implementarse o realizarse con un procesador de propósito general, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), una disposición de puertas programables en campo (FPGA) u otro dispositivo lógico programable, puerta discreta o lógica de transistor, 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. También puede implementarse un procesador como una combinación de dispositivos de cálculo, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en conjunción con un núcleo de DSP, o cualquier otra configuración de este tipo.
Las etapas de un procedimiento o algoritmo descritas en conexión con los ejemplos dados a conocer en el presente documento pueden realizarse directamente en hardware, en un módulo de software ejecutado por un procesador, o en una combinación de ambos. Un módulo de software puede residir en memoria RAM, memoria flash, memoria ROM, memoria EPROM, memoria EEPROM, registros, disco duro, un disco extraíble, un CD-ROM, o cualquier otra forma de medio de almacenamiento conocida en la técnica. Un medio de almacenamiento ejemplar se acopla al procesador de modo que el procesador pueda leer información del, y escribir información en, el medio de almacenamiento. Como alternativa, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un circuito integrado de aplicación específica (ASIC). El (ASIC) puede residir en un módem inalámbrico. Como alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en el módem inalámbrico.
La descripción anterior de los ejemplos dados a conocer se proporciona para permitir a cualquier persona experta en la técnica realizar o usar los procedimientos y aparatos dados a conocer. Diversas modificaciones de estos ejemplos resultarán fácilmente evidentes para los expertos en la técnica y los principios definidos en el presente documento pueden aplicarse a otros ejemplos y pueden añadirse elementos adicionales.
Por tanto, se han descrito procedimientos y aparatos para decodificar flujo continuo multimedia en tiempo real, utilizando información de etiquetado de corrupción de bits y datos corruptos, en una aplicación de decodificador, para realizar una corrección de errores y ocultación de errores inteligente de los datos corruptos.

Claims (10)

1. Un procedimiento (700) para la integración multicapa para su uso en la recuperación de errores en una pila (24) de protocolos multicapa que comprende una capa (220) de comunicación por debajo de una capa (38) de sincronización, que está por debajo de una capa (211) de aplicación, comprendiendo el procedimiento:
recibir (705) como datos codificados una pluralidad de flujos (70, 72, 74) de bits de datos multimedia;
detectar (64, 710) un error en dichos datos codificados basándose en un protocolo de capa de comunicación;
analizar sintácticamente (68) dichos datos codificados en dicha pluralidad de flujos (70, 72, 74) de bits basándose en un protocolo (38) de capa de sincronización;
determinar (720) tanto una distribución (37) de errores del error detectado como información (41) de estrategia de control basándose en dicho protocolo (38) de capa de sincronización, en el que dicha distribución de errores identifica qué partes de cuáles de dicha pluralidad de flujos (70, 72, 74) de bits están corruptas; y
ocultar (725) dichas partes corruptas en dicha pluralidad de flujos (70, 72, 74) de bits identificadas en dicha distribución de errores dependiendo de la información de estrategia de control basándose en un protocolo de capa de aplicación.
\vskip1.000000\baselineskip
2. El procedimiento según la reivindicación 1, en el que la capa de comunicación comprende o bien una o bien una combinación de una capa (223) física, una capa (222) MAC y una capa (221) de transporte.
3. El procedimiento según la reivindicación 1, que comprende además:
controlar (715) el error detectado basándose en un protocolo (221) de capa de transporte.
\vskip1.000000\baselineskip
4. El procedimiento según la reivindicación 3, en el que controlar el error detectado comprende:
localizar el error detectado.
\vskip1.000000\baselineskip
5. Un aparato para la integración multicapa para su uso en la recuperación de errores, en una pila (24) de protocolos multicapa que comprende una capa (220) de comunicación por debajo de una capa (38) de sincronización, que está por debajo de una capa (211) de aplicación, comprendiendo el aparato:
medios para recibir como datos codificados una pluralidad de flujos (70, 72, 74) de bits de datos multimedia;
medios para detectar un error en dichos datos codificados basándose en un protocolo de capa de comunicación;
medios para analizar sintácticamente dichos datos codificados en dicha pluralidad de flujos (70, 72, 74) de bits basándose en un protocolo (38) de capa de sincronización;
medios para determinar tanto una distribución (37) de errores del error detectado como información (41) de estrategia de control basándose en dicho protocolo (38) de capa de sincronización, en el que dicha distribución de errores identifica qué partes de cuáles de dicha pluralidad de flujos (70, 72, 74) de bits están corruptas; y
medios para ocultar dichas partes corruptas en dicha pluralidad de flujos (70, 72, 74) de bits identificadas en dicha distribución de errores dependiendo de la información de estrategia de control basándose en una capa de protocolo de aplicación.
\vskip1.000000\baselineskip
6. El aparato según la reivindicación 5, en el que la capa de comunicación comprende o bien una o bien una combinación de una capa física, una capa MAC y una capa de transporte.
7. El aparato según la reivindicación 5, que comprende además:
medios para controlar el error detectado basándose en un protocolo de capa de transporte.
\newpage
8. El aparato según la reivindicación 7, en el que los medios de control comprenden:
medios para localizar el error detectado.
\vskip1.000000\baselineskip
9. Un procesador para la integración multicapa para su uso en la recuperación de errores, estando configurado el procesador para llevar a cabo las etapas según las reivindicaciones 1 a 5.
10. Un medio legible por ordenador que pone en práctica el procedimiento para la integración multicapa para su uso en la recuperación de errores según las reivindicaciones 1 a 5.
ES06737894T 2005-03-10 2006-03-10 Arquitectura de decodificador para gestion de errores optimizada en flujo continuo multimedia. Active ES2336824T3 (es)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US66092305P 2005-03-10 2005-03-10
US66086705P 2005-03-10 2005-03-10
US66068105P 2005-03-10 2005-03-10
US660867P 2005-03-10
US660923P 2005-03-10
US660681P 2005-03-10

Publications (1)

Publication Number Publication Date
ES2336824T3 true ES2336824T3 (es) 2010-04-16

Family

ID=36910929

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06737894T Active ES2336824T3 (es) 2005-03-10 2006-03-10 Arquitectura de decodificador para gestion de errores optimizada en flujo continuo multimedia.

Country Status (16)

Country Link
US (1) US7886201B2 (es)
EP (3) EP2019554A3 (es)
JP (3) JP4741649B2 (es)
KR (1) KR100941336B1 (es)
CN (1) CN101790098B (es)
AT (1) ATE456256T1 (es)
AU (1) AU2006223287C1 (es)
BR (1) BRPI0607627A2 (es)
CA (1) CA2600776C (es)
DE (1) DE602006011865D1 (es)
ES (1) ES2336824T3 (es)
IL (1) IL185824A0 (es)
MX (1) MX2007011093A (es)
NO (1) NO20075128L (es)
TW (1) TWI424750B (es)
WO (1) WO2006099223A2 (es)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1675868B (zh) * 2002-08-02 2010-09-29 西门子公司 通过错误隐蔽检测分析接收到的有用信息的方法和设备
US7610190B2 (en) * 2003-10-15 2009-10-27 Fuji Xerox Co., Ltd. Systems and methods for hybrid text summarization
US8780957B2 (en) 2005-01-14 2014-07-15 Qualcomm Incorporated Optimal weights for MMSE space-time equalizer of multicode CDMA system
GB2437219B (en) * 2005-01-19 2009-11-11 Intel Corp Data communications methods and apparatus
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
KR20070117660A (ko) 2005-03-10 2007-12-12 콸콤 인코포레이티드 컨텐트 적응적 멀티미디어 처리
EP1884028A2 (en) * 2005-05-11 2008-02-06 QUALCOMM Incorporated A method and apparatus for unified error concealment framework
US8948309B2 (en) * 2005-07-26 2015-02-03 Broadcom Corporation Method and system for redundancy-based decoding of video content in a wireless system
US9113147B2 (en) 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
KR20070038396A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
US8948260B2 (en) 2005-10-17 2015-02-03 Qualcomm Incorporated Adaptive GOP structure in video streaming
US8654848B2 (en) 2005-10-17 2014-02-18 Qualcomm Incorporated Method and apparatus for shot detection in video streaming
CN104125464A (zh) 2005-12-08 2014-10-29 维德约股份有限公司 用于视频通信系统中的差错弹性和随机接入的系统和方法
EP1827023A1 (en) * 2006-02-27 2007-08-29 THOMSON Licensing Method and apparatus for packet loss detection and virtual packet generation at SVC decoders
US20070209057A1 (en) * 2006-03-01 2007-09-06 Broadband Wizard Inc. Wireless delivery of broadband cable signals
US8693538B2 (en) 2006-03-03 2014-04-08 Vidyo, Inc. System and method for providing error resilience, random access and rate control in scalable video communications
US8189686B2 (en) * 2006-03-03 2012-05-29 David John Boyes Systems and methods for visualizing errors in video signals
FR2898459B1 (fr) * 2006-03-08 2008-09-05 Canon Kk Procede et dispositif de reception d'images ayant subi des pertes en cours de transmission
US9131164B2 (en) 2006-04-04 2015-09-08 Qualcomm Incorporated Preprocessor method and apparatus
CN101611551A (zh) * 2007-01-09 2009-12-23 维德约股份有限公司 用于视频通信系统中的差错弹性的改进系统和方法
JP2008187694A (ja) * 2007-01-31 2008-08-14 Matsushita Electric Ind Co Ltd 画像符号化装置およびその方法
US8239731B1 (en) 2007-07-06 2012-08-07 Marvell International Ltd. Methods and apparatus for providing multilevel coset coding and probabilistic error correction
WO2009023789A1 (en) * 2007-08-15 2009-02-19 Maxlinear, Inc. Method and apparatus for preserving deinterleaving erasure information of block interleaved coded signal
US8332736B2 (en) * 2007-11-29 2012-12-11 Texas Instruments Incorporated Decoder with resiliency to handle errors in a received data stream
ATE526787T1 (de) * 2007-12-11 2011-10-15 Alcatel Lucent Verfahren zum zustellen eines videostroms über einen drahtlosen kanal
EP2071852A1 (en) 2007-12-11 2009-06-17 Alcatel Lucent Process for delivering a video stream over a wireless bidirectional channel between a video encoder and a video decoder
US9078024B2 (en) * 2007-12-18 2015-07-07 Broadcom Corporation Video processing system with user customized graphics for use with layered video coding and methods for use therewith
US8130823B2 (en) 2007-12-19 2012-03-06 Broadcom Corporation Channel adaptive video transmission system for use with layered video coding and methods for use therewith
US9143731B2 (en) * 2008-01-02 2015-09-22 Broadcom Corporation Mobile video device for use with layered video coding and methods for use therewith
US8594191B2 (en) 2008-01-03 2013-11-26 Broadcom Corporation Video processing system and transcoder for use with layered video coding and methods for use therewith
US8144781B2 (en) 2008-01-04 2012-03-27 Broadcom Corporation Video processing system for scrambling layered video streams and methods for use therewith
US8179983B2 (en) * 2008-05-20 2012-05-15 Broadcom Corporation Video processing system with layered video coding for fast channel change and methods for use therewith
US8898448B2 (en) * 2008-06-19 2014-11-25 Qualcomm Incorporated Hardware acceleration for WWAN technologies
EP2150022A1 (en) * 2008-07-28 2010-02-03 THOMSON Licensing Data stream comprising RTP packets, and method and device for encoding/decoding such data stream
KR101003922B1 (ko) * 2008-08-04 2010-12-30 인하대학교 산학협력단 멀티미디어 서비스를 제공하기 위한 스케쥴링 방법
KR101479011B1 (ko) * 2008-12-17 2015-01-13 삼성전자주식회사 다중 대역 스케쥴링 방법 및 이를 이용한 방송 서비스 시스템
US9900150B2 (en) * 2009-10-30 2018-02-20 International Business Machines Corporation Dispersed storage camera device and method of operation
DE102010002777B4 (de) 2010-03-11 2016-01-21 Universität Kassel Halbzeug für einen Solarkollektor, Solarkollektor und Verfahren zur Herstellung
US8934530B2 (en) 2011-02-01 2015-01-13 Vidyo, Inc. Spatial scalability using redundant pictures and slice groups
US8953478B2 (en) * 2012-01-27 2015-02-10 Intel Corporation Evolved node B and method for coherent coordinated multipoint transmission with per CSI-RS feedback
US9232218B2 (en) * 2012-03-01 2016-01-05 Connesta System and method for data insertion in video stream
US9203757B2 (en) * 2012-03-22 2015-12-01 Texas Instruments Incorporated Network throughput using multiple reed-solomon blocks
US9241166B2 (en) * 2012-06-11 2016-01-19 Qualcomm Incorporated Technique for adapting device tasks based on the available device resources
US9363017B2 (en) * 2012-07-06 2016-06-07 Qualcomm Incorporated Methods and systems of specifying coaxial resource allocation across a MAC/PHY interface
CN105025303B (zh) 2012-09-28 2018-05-29 瑞典爱立信有限公司 视频序列图像的解码和编码
US9386326B2 (en) * 2012-10-05 2016-07-05 Nvidia Corporation Video decoding error concealment techniques
US10015486B2 (en) * 2012-10-26 2018-07-03 Intel Corporation Enhanced video decoding with application layer forward error correction
TWI486913B (zh) 2013-06-14 2015-06-01 Vivotek Inc 具網路與錄影功能之安全監控裝置及儲存裝置的偵錯及修復方法
US9756356B2 (en) * 2013-06-24 2017-09-05 Dialogic Corporation Application-assisted spatio-temporal error concealment for RTP video
US9648351B2 (en) * 2013-10-24 2017-05-09 Dolby Laboratories Licensing Corporation Error control in multi-stream EDR video codec
US10028002B2 (en) * 2013-12-16 2018-07-17 Samsung Electronics Co., Ltd. Server device for sharing contents, client device, and method for sharing contents
JP2015149564A (ja) * 2014-02-05 2015-08-20 トヨタ自動車株式会社 車載通信システム
WO2016002494A1 (ja) * 2014-06-30 2016-01-07 ソニー株式会社 情報処理装置および方法
US10313749B2 (en) * 2015-01-15 2019-06-04 Electronics And Telecommunications Research Institute Apparatus for broadcasting scalable video contents and method using the same
US9652350B2 (en) 2015-01-22 2017-05-16 International Business Machines Corporation Evaluation of complex SAN environments
EP3076594B1 (en) * 2015-03-31 2020-09-23 Alcatel Lucent Network analyser and method for remote diagnosis of network problems
KR102126511B1 (ko) * 2015-09-02 2020-07-08 삼성전자주식회사 보충 정보를 이용한 영상 프레임의 보간 방법 및 장치
US10841621B2 (en) * 2017-03-01 2020-11-17 Wyse Technology L.L.C. Fault recovery of video bitstream in remote sessions
US11917206B2 (en) 2021-12-17 2024-02-27 Lenovo (Singapore) Pte. Ltd. Video codec aware radio access network configuration and unequal error protection coding
US11824653B2 (en) * 2021-12-17 2023-11-21 Lenovo (Singapore) Pte. Ltd. Radio access network configuration for video approximate semantic communications
US11756502B2 (en) * 2022-02-11 2023-09-12 Dell Products, L.P. System and method for providing fast response time performance with low latency in liquid crystal displays

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4301466A (en) * 1980-02-01 1981-11-17 Ampex Corporation Fast acting phase shifting apparatus for use in digital sampling systems
JPS622747A (ja) 1985-06-28 1987-01-08 Toshiba Corp 受信制御方式
US5504732A (en) * 1990-08-15 1996-04-02 Del Mar Avionics Null inflection detection and pulse expand latch in an optical recording system
US5241546A (en) * 1991-02-01 1993-08-31 Quantum Corporation On-the-fly error correction with embedded digital controller
JP3213389B2 (ja) 1992-07-24 2001-10-02 ローム株式会社 時分割多重通信装置
US5878217A (en) * 1994-11-21 1999-03-02 Cirrus Logic, Inc. Network controller for switching into DMA mode based on anticipated memory overflow and out of DMA mode when the host processor is available
GB9509831D0 (en) * 1995-05-15 1995-07-05 Gerzon Michael A Lossless coding method for waveform data
US5633870A (en) 1995-07-07 1997-05-27 Sun Microsystems, Inc. Method and apparatus for controlling data flow through an ATM interface
JP3297293B2 (ja) * 1996-03-07 2002-07-02 三菱電機株式会社 動画像復号方法および動画像復号装置
US6026506A (en) * 1997-09-26 2000-02-15 International Business Machines Corporation Concealing errors in transport stream data
US6335985B1 (en) * 1998-01-07 2002-01-01 Kabushiki Kaisha Toshiba Object extraction apparatus
AU722598B2 (en) 1998-03-31 2000-08-10 Samsung Electronics Co., Ltd. Turbo encoding/decoding device and method for processing frame data according to QoS
KR100377939B1 (ko) * 1998-09-01 2003-06-12 삼성전자주식회사 이동통신시스템에서서브프레임전송을위한프레임구성장치및방법
US6490705B1 (en) * 1998-10-22 2002-12-03 Lucent Technologies Inc. Method and apparatus for receiving MPEG video over the internet
US6192080B1 (en) * 1998-12-04 2001-02-20 Mitsubishi Electric Research Laboratories, Inc. Motion compensated digital video signal processing
US6553540B1 (en) * 1998-12-07 2003-04-22 Telefonaktiebolaget Lm Ericsson Efficient system and method for forward error correction
US20020063807A1 (en) * 1999-04-19 2002-05-30 Neal Margulis Method for Performing Image Transforms in a Digital Display System
JP3411234B2 (ja) * 1999-04-26 2003-05-26 沖電気工業株式会社 符号化情報受信復号装置
JP4269409B2 (ja) * 1999-05-19 2009-05-27 ソニー株式会社 受信装置および方法
US6662329B1 (en) * 2000-03-23 2003-12-09 International Business Machines Corporation Processing errors in MPEG data as it is sent to a fixed storage device
KR100833222B1 (ko) 2000-03-29 2008-05-28 삼성전자주식회사 멀티미디어 송수신 장치 및 방법
FI120125B (fi) * 2000-08-21 2009-06-30 Nokia Corp Kuvankoodaus
US6804494B2 (en) * 2001-06-11 2004-10-12 Qualcomm Inc. System and method for the detection and compensation of radio signal time of arrival errors
EP1301044B1 (en) 2001-10-05 2006-05-24 Mitsubishi Electric Information Technology Centre Europe B.V. Method and apparatus for compensating for motion vector errors in image data
KR100418199B1 (ko) * 2001-12-31 2004-02-14 트라이콤텍 주식회사 단거리 전용 고속 무선 통신 기반의 차량 탑재 장치
JP2004007379A (ja) * 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
EP1337065A1 (en) 2002-02-13 2003-08-20 Telefonaktiebolaget L M Ericsson (Publ) Semi-reliable ARQ method and device thereof
GB2386275B (en) * 2002-03-05 2004-03-17 Motorola Inc Scalable video transmissions
ATE487327T1 (de) * 2002-03-08 2010-11-15 France Telecom Verfahren zum übertragen von abhängigen datenströmen
JP4185314B2 (ja) * 2002-06-07 2008-11-26 富士通株式会社 情報記録再生装置、光ディスク装置及び、データ再生方法
US20060093031A1 (en) * 2002-07-31 2006-05-04 Koninkijke Phillips Electronics N.V. Method and apparatus for performing multiple description motion compensation using hybrid predictive codes
JP3513148B1 (ja) * 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
US7499417B2 (en) 2003-01-07 2009-03-03 Samsung Electronics Co., Ltd. Apparatus and method for controlling an output buffer in a hybrid automatic repeat request (HARQ) mobile communication system
KR100952761B1 (ko) * 2003-02-25 2010-04-14 엘지전자 주식회사 시간적 확장성 영상 코딩 장치 및 방법
JP4186705B2 (ja) * 2003-05-21 2008-11-26 日本電気株式会社 デジタル放送の補完視聴サービスサーバ、携帯受信機、及びデジタル放送補完視聴サービス方式
KR100621093B1 (ko) 2003-06-03 2006-09-07 삼성전자주식회사 무선 pan상의 어플리케이션에 채널 시간을 할당하는장치 및 방법
US7450610B2 (en) * 2003-06-03 2008-11-11 Samsung Electronics Co., Ltd. Apparatus and method for allocating channel time to applications in wireless PAN
US8599764B2 (en) * 2003-09-02 2013-12-03 Qualcomm Incorporated Transmission of overhead information for reception of multiple data streams
US7221680B2 (en) 2003-09-02 2007-05-22 Qualcomm Incorporated Multiplexing and transmission of multiple data streams in a wireless multi-carrier communication system
US8526412B2 (en) * 2003-10-24 2013-09-03 Qualcomm Incorporated Frequency division multiplexing of multiple data streams in a wireless multi-carrier communication system
US8582640B2 (en) * 2003-12-16 2013-11-12 Sony Corporation Adaptive joint source channel coding
US7882421B2 (en) 2004-05-06 2011-02-01 Seyfullah Halit Oguz Method and apparatus for joint source-channel map decoding
US7197692B2 (en) * 2004-06-18 2007-03-27 Qualcomm Incorporated Robust erasure detection and erasure-rate-based closed loop power control
KR20050120491A (ko) * 2004-06-19 2005-12-22 삼성전자주식회사 멀티미디어 방송 시스템에서의 전송 에러 처리방법 및장치
KR100871646B1 (ko) * 2004-07-15 2008-12-02 콸콤 인코포레이티드 인트라-예측 방향에 기반한 h.264 공간 에러 은닉 방법 및장치
KR20070117660A (ko) * 2005-03-10 2007-12-12 콸콤 인코포레이티드 컨텐트 적응적 멀티미디어 처리
US7995656B2 (en) * 2005-03-10 2011-08-09 Qualcomm Incorporated Scalable video coding with two layer encoding and single layer decoding
US7929776B2 (en) * 2005-03-10 2011-04-19 Qualcomm, Incorporated Method and apparatus for error recovery using intra-slice resynchronization points
US8144824B2 (en) * 2005-03-10 2012-03-27 Qualcomm Incorporated Trend influenced time tracking
US7653860B2 (en) * 2005-03-10 2010-01-26 Qualcomm Incorporated Transmit driver data communication
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame

Also Published As

Publication number Publication date
BRPI0607627A2 (pt) 2009-09-22
WO2006099223A2 (en) 2006-09-21
AU2006223287C1 (en) 2010-10-21
KR20070119675A (ko) 2007-12-20
EP1869896B1 (en) 2010-01-20
JP5738929B2 (ja) 2015-06-24
CA2600776A1 (en) 2006-09-21
CA2600776C (en) 2012-07-17
JP2008537654A (ja) 2008-09-18
NO20075128L (no) 2007-10-09
MX2007011093A (es) 2007-12-04
DE602006011865D1 (de) 2010-03-11
ATE456256T1 (de) 2010-02-15
AU2006223287A1 (en) 2006-09-21
US7886201B2 (en) 2011-02-08
CN101790098B (zh) 2016-01-20
EP2268042A3 (en) 2011-08-10
KR100941336B1 (ko) 2010-02-11
AU2006223287B2 (en) 2010-05-20
EP2019554A3 (en) 2009-03-11
JP2011019246A (ja) 2011-01-27
US20060282737A1 (en) 2006-12-14
TW200704206A (en) 2007-01-16
JP4741649B2 (ja) 2011-08-03
JP2013243699A (ja) 2013-12-05
EP2019554A2 (en) 2009-01-28
IL185824A0 (en) 2008-01-06
EP1869896A2 (en) 2007-12-26
EP2268042A2 (en) 2010-12-29
WO2006099223A3 (en) 2007-05-31
TWI424750B (zh) 2014-01-21
CN101790098A (zh) 2010-07-28
EP2268042B1 (en) 2014-07-02

Similar Documents

Publication Publication Date Title
ES2336824T3 (es) Arquitectura de decodificador para gestion de errores optimizada en flujo continuo multimedia.
ES2739006T3 (es) Mejora de la resistencia a errores usando información de directorio fuera de banda
KR100939951B1 (ko) 인 밴드 에러 패턴을 사용한 에러 복원
US8358704B2 (en) Frame level multimedia decoding with frame information table
JP4659331B2 (ja) データストリームの符号化
ES2389388T3 (es) Método y dispositivo para transmitir y recibir paquetes de datos
ES2355205T3 (es) Señalización de información significativa de señal entre una capa de aplicación y un codificador de canal.
RU2374787C2 (ru) Структура декодера для оптимизированного управления обработкой ошибок в потоковой передаче мультимедийных данных
CN101176353B (zh) 用于流式多媒体中优化错误管理的解码器架构
Gringeri et al. Transmission of MPEG-4 video over the Internet
Cai et al. Video streaming: an FEC-based novel approach