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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2966—Turbo codes concatenated with another code, e.g. an outer block code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods 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/895—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/4402—Processing 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/440227—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring 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/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring 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/4425—Monitoring of client processing errors or hardware failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/647—Control 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/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-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.
La presente invención se refiere a
procedimientos y aparatos para decodificar medios en flujo continuo
en tiempo real en dispositivos portátiles.
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.
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.
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.
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
\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.
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)
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)
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 |
-
2006
- 2006-03-10 US US11/373,548 patent/US7886201B2/en active Active
- 2006-03-10 DE DE602006011865T patent/DE602006011865D1/de active Active
- 2006-03-10 WO PCT/US2006/008763 patent/WO2006099223A2/en active Application Filing
- 2006-03-10 EP EP08018818A patent/EP2019554A3/en not_active Withdrawn
- 2006-03-10 AT AT06737894T patent/ATE456256T1/de not_active IP Right Cessation
- 2006-03-10 KR KR1020077023199A patent/KR100941336B1/ko not_active IP Right Cessation
- 2006-03-10 EP EP06737894A patent/EP1869896B1/en not_active Not-in-force
- 2006-03-10 MX MX2007011093A patent/MX2007011093A/es active IP Right Grant
- 2006-03-10 CN CN201010146123.8A patent/CN101790098B/zh not_active Expired - Fee Related
- 2006-03-10 AU AU2006223287A patent/AU2006223287C1/en not_active Ceased
- 2006-03-10 JP JP2008500999A patent/JP4741649B2/ja not_active Expired - Fee Related
- 2006-03-10 ES ES06737894T patent/ES2336824T3/es active Active
- 2006-03-10 CA CA2600776A patent/CA2600776C/en not_active Expired - Fee Related
- 2006-03-10 EP EP10009639.5A patent/EP2268042B1/en not_active Not-in-force
- 2006-03-10 BR BRPI0607627-0A patent/BRPI0607627A2/pt not_active Application Discontinuation
- 2006-03-10 TW TW095108340A patent/TWI424750B/zh not_active IP Right Cessation
-
2007
- 2007-09-09 IL IL185824A patent/IL185824A0/en unknown
- 2007-10-09 NO NO20075128A patent/NO20075128L/no not_active Application Discontinuation
-
2010
- 2010-08-02 JP JP2010173711A patent/JP2011019246A/ja not_active Withdrawn
-
2013
- 2013-06-26 JP JP2013133733A patent/JP5738929B2/ja not_active Expired - Fee Related
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 |