ES2330142T3 - Procedimiento y aparato de encubrimiento de errores temporales para trama p. - Google Patents

Procedimiento y aparato de encubrimiento de errores temporales para trama p. Download PDF

Info

Publication number
ES2330142T3
ES2330142T3 ES06737648T ES06737648T ES2330142T3 ES 2330142 T3 ES2330142 T3 ES 2330142T3 ES 06737648 T ES06737648 T ES 06737648T ES 06737648 T ES06737648 T ES 06737648T ES 2330142 T3 ES2330142 T3 ES 2330142T3
Authority
ES
Spain
Prior art keywords
motion vectors
frame
section
vectors
movement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06737648T
Other languages
English (en)
Inventor
Vijayalakshmi R. Raveendran
Fang Shi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2330142T3 publication Critical patent/ES2330142T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Looms (AREA)

Abstract

Un procedimiento para procesar una trama multimedia que comprende una primera sección recibida con error, que comprende: obtener (802) datos de predicción temporal que corresponden a una primera trama de referencia, comprendiendo los datos de predicción temporal vectores de movimiento que corresponden a secciones de la primera trama de referencia; determinar si cada par de vectores de movimiento, que comprende un vector de movimiento de la trama multimedia y un vector de movimiento colocalizado en la primera trama de referencia, es similar, si el par está disponible; y determinar (804) que la primera trama de referencia es fiable si la relación entre el número de pares similares y el número de pares disponibles es superior a un valor de umbral, en el cual un par de vectores de movimiento está disponible si los dos vectores de movimientos se reciben correctamente; y estimar (806) la primera sección recibida con error en base a una o más secciones diferentes de la primera sección de la trama multimedia y de la primera trama de referencia, si se determina que la primera trama de referencia es fiable.

Description

Procedimiento y aparato de encubrimiento de errores temporales para trama P.
Antecedentes Campo
La invención se refiere a procedimientos y aparato para codificar y descodificar datos digitales con gestión de errores.
Antecedentes
El uso generalizado de Internet y la comunicación inalámbrica han incrementado la demanda de servicios multimedia que transmiten continuamente en Internet y canales móviles/inalámbricos. En las redes de protocolo Internet (IP), se puede proporcionar vídeo mediante un servidor y se puede transmitir de manera continua por uno o más clientes de cable o inalámbricos. Las conexiones por cable incluyen, conexión por línea conmutada, redes digitales de servicios integrados de banda ancha, cable, protocolos de línea de abonado digital (colectivamente denominada xDSL), fibra, redes de área local (LAN), redes de área ancha (WAN) y otras. Los dispositivos electrónicos que usan comunicaciones inalámbricas incluyen los teléfonos (por ejemplo teléfonos celulares), agendas de datos personales (PDA), miniordenadores y ordenadores portátiles y otros. En la mayoría de los casos, si no en todos, estas aplicaciones, requisitos de ancho de banda y/o otras restricciones necesitan que el procesamiento de vídeo utilice un codificador de fuente que incorpora algoritmos de compresión de vídeo para analizar, cuantificar y representar datos de vídeo para transportar la máxima información expandiendo un número "mínimo" de bits. Las características de tales algoritmos varían notablemente, lo cual conduce a grandes variaciones de escala en su rendimiento (tal como eficiencia de compresión y velocidad binaria). Las características de procesamiento de vídeo que usan algoritmos pueden variar basándose en el contenido, lo cual puede conducir a grandes variaciones de escala en su rendimiento (tal como eficiencia de compresión y velocidad binaria).
Los canales inalámbricos son propensos a errores. Una parte de los datos transmitidos es "errónea" cuando esta parte de datos se pierde o corrompe. Debido a que la compresión de vídeo elimina inherentemente la redundancia, los datos comprimidos se vuelven críticos. Cualquier parte errónea de estos datos durante la transmisión tiene un impacto sobre la calidad de vídeo reconstruido en el descodificador. El impacto se agrava si los datos erróneos son parte de la trama de referencia para la predicción compensada de movimiento, causando una propagación de error temporal.
Para paliar el impacto sobre la calidad de vídeo reconstruido debido a los datos de flujo de bits recibidos, el descodificador de vídeo procesa los datos de vídeo recibidos para mejorar la calidad de vídeo. Esto se denomina encubrimiento de errores. Los esquemas de encubrimiento de errores hacen uso de la correlación espacial y temporal que existe en la señal de vídeo. Por consiguiente, estos esquemas se denominan encubrimiento de errores espacial y temporal.
Dependiendo de la naturaleza de los errores de canal (errores de bits y/o pérdida de paquetes) y el tipo de paquetización, todos o parte de los datos pertenecientes a uno o más macrobloques o rodajas pueden ser erróneos durante la transmisión. Para un macrobloque, diversos datos de macrobloque codificados podrían ser erróneos incluyen uno o más de lo que sigue: modo de codificación (inter o intra), vectores de movimiento (si inter), y coeficientes de trans-
formada.
Cuando un macrobloque es erróneo, se asume típicamente que toda la información anterior es errónea. Para un macrobloque intercodificado, sus vectores de movimiento y coeficientes residuales son erróneos. Puesto que las señales residuales son altamente descorrelacionadas, son difíciles de estimar a partir de macrobloques vecinos. Sin embargo, los estudios han demostrado que la calidad de vídeo reconstruida se puede mejorar en gran medida si los vectores de movimiento se pueden recuperar. Con lo cual, el principal objetivo de la encubrimiento de errores temporal es estimar los vectores de movimiento erróneos a partir de sus vecinos espaciales y temporales. Una vez construido el vector de movimiento, la compensación de movimiento se puede entonces llevar a cabo usando el vector de movimiento construido con coeficiente residuales cero.
Aunque hay diversos esquemas de encubrimiento de errores temporal existentes, no ofrecen de buenos resultados. Además, no son compatibles con un flujo de datos multimedia que soporta múltiples tramas de referencia y diversas dimensiones de bloque de compensación de movimiento. Por lo tanto, se necesita un nuevo esquema de encubrimiento de errores temporal para conseguir buenos resultados y proporcionar mayores compatibilidades.
Sumario
Se dan a conocer un procedimiento y aparato de procesamiento de una trama multimedia que comprende una primera sección recibida con error. El procedimiento comprende obtener datos de predicción temporal que corresponden a una primera trama de referencia. El procedimiento comprende, además, determinar si la primera trama de referencia es fiable para estimar la primera sección. El procedimiento comprende, además, estimar la primera sección recibida con error en base a una o más secciones distintas de la primera sección de la trama multimedia y la primera trama de referencia, si se determina que la primera trama de referencia es fiable. La invención se define mediante las reivindicaciones 1 y 22.
Breve descripción de los dibujos
La figura 1 muestra un diagrama de bloques que ilustra un ejemplo de un descodificador configurado para descodificar un flujo de datos multimedia entrantes (no mostrado).
La figura 2 es un diagrama de flujo que ilustra un ejemplo de un procedimiento de encubrimiento de errores temporal para un macrobloque erróneo de trama P.
La figura 3 es un diagrama de flujo que ilustra un ejemplo del procedimiento para generar vectores de movimiento de la actual trama P en el bloque 204 de la figura 2.
La figura 4 es un diagrama de flujo, que ilustra un ejemplo del procedimiento para formar una ventana de vectores de movimiento sobre la base dela actual trama P y una trama de referencia en el bloque 206 de la figura 2;
Las figuras 5A y 5B ilustran el procedimiento de área más cubierta para determinar el macrobloque de anclaje en el bloque 2066 de la figura 4;
La figura 6 ilustra la construcción de la ventana de vectores de movimiento del bloque 2067 de la figura 4;
Las figuras 7A y 7B ilustran el beneficio de la realización de la clasificación de movimiento local en el bloque 2068 de la figura 4;
La figura 8 es un diagrama de flujo que ilustra otro ejemplo de un procedimiento de procesamiento de una trama multimedia que comprende una primera sección recibida con error.
La figura 9 muestra un diagrama de bloques que ilustra otro ejemplo de un descodificador configurado para descodificar un flujo de datos multimedia entrantes.
Descripción detallada
En la siguiente descripción, se ofrecen detalles específicos para una comprensión completa de los procedimientos y aparatos dados a conocer. Sin embargo, el experto en la técnica entenderá que los procedimientos y los aparatos pueden ponerse en práctica sin estos detalles específicos. Por ejemplo, se pueden mostrar componentes eléctricos en los diagramas de bloque para ocultar algunos aspectos en detalles innecesarios. En otros casos, se pueden mostrar tales componentes, otras estructuras y técnicas en detalle para explicar, además, algunos aspectos.
Hay que resaltar que algunos aspectos se pueden describir como un procedimiento, que se describe como un gráfico de flujo, un diagrama de flujo, un diagrama de estructura o un diagrama de bloques. Aunque un diagrama de flujo puede describir las operaciones como un procedimiento secuencial, muchas de las operaciones se pueden llevar a cabo en paralelo o concurrentemente y el procedimiento se puede repetir. Además, se puede redisponer el orden de las operaciones. Un procedimiento se termina cuando se completan sus operaciones. Un procedimiento puede corresponder a un método, una función, un proceso, una subrutina, un subprograma, etc. cuando un procedimiento corresponde a una función, su terminación corresponde a un retorno de la función a la función de llamada o la función principal.
La figura 1 muestra un diagrama de bloques que ilustra un ejemplo de un descodificador configurado para descodificar un flujo de datos multimedia entrantes (no mostrado). Los datos multimedia pueden ser de diversas formas incluyendo, pero no limitándose a, vídeo, audio, gráficos, texto e imágenes. Los datos pueden ser vídeo y audio comprimidos como en los estándares MPEG y H.26x, audio comprimido como en los estándares de compresión de audio o voz MPEG-4, MP3, AMR y G.723, o cualquier otro tipo de datos digitales. El flujo de datos se puede recibir por una red de cable tal como de teléfono, cable y fibra óptica o una red inalámbrica. en el caso de la red inalámbrica, la red puede comprende, por ejemplo, parte de un sistema de comunicación de acceso múltiple por división de código (CDMA o CDMA2000) o alternativamente, el sistema puede ser un sistema de acceso múltiple por división de frecuencia (FDMA), un sistema de multiplexación por división de frecuencia ortogonales (OFDM), un sistema de acceso múltiple por división de tiempo tal como una tecnología de telefonía móvil GSM/GPRS (Servicio general de paquetes de radio) (entorno GSM de datos mejorado) o TETRA (Radio troncal terrestre) para la industria de los servicios, un acceso múltiple por división de banda ancha (WCD-MA), un sistema de velocidad de datos elevada (1xEV-DO o 1xEV-DO Gold multicast), o en general cualquier sistema de comunicación inalámbrica que emplea una combinación de técnicas.
El descodificador 100 está configurado para llevar a cabo una encubrimiento de errores temporal para datos intercodificados erróneos. La intercodificación o codificación predictiva se refiere a la codificación de una imagen (un campo o una trama) con referencia a otra imagen. Los ejemplos de imágenes intercodificadas usada a lo largo de toda esta aplicación son tramas predichas (bien hacia delante bien hacia atrás, denominadas "tramas P") Otros términos para la intercodificación incluyen la codificación de paso alto, codificación residual, interpolación compensada de movimiento y otros que son bien conocidos por el experto en la técnica. Las trama P (o cualesquiera secciones intercodificadas) pueden utilizar la redundancia temporal entre una región en una trama actual y una mejor región de predicción de coincidencia en una trama de referencia. La diferencia entre la región actual y la mejor región de predicción de referencia de coincidencia se conoce como error residual (error de predicción). La localización de la mejor región de predicción de coincidencia se puede codificar en un vector de movimiento.
El descodificador 100 puede estar configurado también para llevar a cabo el procedimiento de encubrimiento temporal dado a conocer en la presente memoria para algunas tramas I, si la trama I no es la primera trama en una secuencia y si no hay cambio de escena. La trama I se refiere a una trama intracodificada, que el experto en la técnica entiende como codificada sin referencia a ninguna otra trama. Debido al hecho de que una trama I no contiene información, de movimiento, la información de movimiento procedente de la trama P precedente se usa para ocultar los datos de trama I erróneos.
El descodificador 100 comprende un generador 103 de datos de predicción temporal, un detector 104 de cambio de movimiento de trama, un evaluador de vector de movimiento 106, una memoria 108 y un procesador 112. El generador 102 de datos de predicción temporal se configura para obtener datos de predicción temporal que corresponden a una trama de referencia a partir del cual se puede predecir la trama P. El detector 104 de cambio de movimiento de trama se configura para determinar si la trama de referencia es fiable para estimar un macrobloque erróneo detectando si hay un cambio significante en el movimiento desde la trama P a la trama de referencia. Un macro bloque es un grupo de píxeles asociados, y en este ejemplo está constituido por 16 x 16 píxeles. Los píxeles se pueden definir por un valor de luminancia de 8 bits (Y) y dos valores de crominancia de 8 bits (Cr y Cb). En MPEG, los componentes Y, Cr y Cb se pueden almacenar en un formato 4:20, donde los componentes se submuestrean por 2 en las direcciones X e Y. De este modo, cada macrobloque consistiría en 256 componentes Y, 64 componentes Cr y 64 componentes Cb.
El evaluador de vector de movimiento 105 está configurado para estimar el vector de movimiento para el macrobloque erróneo de una manera de una pluralidad de maneras basadas en parte en si la trama de referencia es fiable. El procesador 112 puede ser cualquier microprocesador uni- o multichip de uso generalizado apropiado, o cualquier microprocesador con un fin especial apropiado tal como un procesador de señales digitales, microcontrolador o una red de puertas programables. El procesador 112 se configura para ejecutar una o más aplicaciones de software para controlar la operación del generador de datos de predicción temporal 102, el detector 104 de cambio de movimiento de trama y el evaluador 106 de vector de movimiento. El procesador 112 se configura también para acceder a la memoria 108 para leer y salvaguardar datos.
Se han de subrayar que cualquiera de los bloques funcionales ilustrados en la figura 1 se puede redisponer o combinar con uno o u otros bloques sin cambiar la función del descodificador.
La figura 2 es un diagrama de flujo que ilustra un ejemplo de un procedimiento de encubrimiento de errores temporal para un macrobloque erróneo de una trama P. El procedimiento de encubrimiento de errores temporal se deriva de una estimación de un vector de movimiento para el macrobloque erróneo en la trama P sobre la base delos macrobloques vecinos en la trama P y los macrobloques en la trama o tramas de referencia.
El procedimiento se puede aplicar bien en un proceso de descodificación causal o un proceso de descodificación no-causal, en un proceso de descodificación causal, cada macrobloque se descodifica en un orden de tiempo determinado. La descodificación de un macrobloque se completa antes de que el proceso de descodificación se desplace al siguiente macrobloque. En un proceso de descodificación no-causal, la descodificación de un macrobloque actual se puede diferir después de que se descodifiquen los macrobloques que siguen al actual macrobloque.
El procedimiento 200 empieza en un bloque opcional 202 en el cual un descodificador determina que un macrobloque de una trama P tiene error. Al moverse a un bloque opcional 204, el descodificador genera vectores de movimiento para los macrobloques correctamente recibidos de la trama P. A continuación en el bloque 206, el descodificador forma una ventana de vectores de movimiento usando los vectores de movimiento recibidos correctamente de la trama P actual y los vectores de movimiento correctamente descodificados de las tramas de referencia que corresponden al macrobloque erróneo de la actual trama P. En este ejemplo, la ventana de vectores de movimiento contiene macrobloques 3 x 3, pero se entiende que la ventana de vectores de movimiento puede variar en dimensión desde un macrobloque a varios. Los bloques 204 y 206 se describirán en lo sucesivo en mayor detalle.
Avanzando hacia un bloque 208, el descodificador lleva a cabo la atenuación de vectores de movimiento a vectores de movimiento disponible de la ventana de vectores de movimiento 3 x 3 y genera un vector de evaluado para el macrobloque erróneo. En algunos ejemplos, el vector de movimiento evaluado es una mediana de los vectores de movimiento disponibles en la ventana 3 x 3 obtenido por filtrado de mediana.
El filtrado de mediana se usa ampliamente en el procesamiento de señal e imagen para retirar ruidos impulsivos mientras al mismo tiempo se preservan los bordes. Para obtener la mediana para un sistema de N (escalares), X = (x_{1}, x_{2}, ... x_{N}) con x_{i} \in\Re, para i = 1, 2 ... N, normalmente el sistema se selecciona en primer lugar en (\hat{x}_{1},\hat{x}_{2}, ...\hat{x}_{N}). A continuación se toma el elemento en el \hat{x}_{N/2} medio como la mediana X_{M} del sistema. La mediana X_{M} satisface la siguiente propiedad:
1
Igualmente, para un sistema de N vectores bidimensionales m, v = (\vec{v}_{1}, \vec{v}_{2}, ...\vec{v}_{N}), con \vec{v}_{i}\in \Re, para i = 1,2 ...N el vector de mediana \vec{v}_{VM} es el vector que cumple la siguiente condición:
2
en la que p denota la métrica de norma p entre los vectores. En un ejemplo se usa p=1. Para el vector \vec{v} bidimensional (v(x), (v(y)), la distancia de norma 1 entre \vec{v}_{0} y \vec{v}_{1} es
3
El filtrado de mediana de vector de movimiento se aplica a todos los vectores de movimiento disponibles. Si un vector de movimiento es de un macrobloque erróneo, o de un intramacrobloque, o cualquiera de su índice de referencia de subpartición no es igual a cero. el vector de movimiento se marca como no disponible; de otro modo se etiqueta como disponible.
Se ha de subrayar que cualquiera de los bloques ilustrado en este diagrama de flujo se puede omitir, redisponer en orden o combinar con uno o más bloques.
La figura 3 es un diagrama de flujo que ilustra un ejemplo del procedimiento para generar vectores de movimiento de la trama P actual en el bloque 204 de la figura 2. Algunos ejemplos de un sistema de comunicación de vídeo requieren que el descodificador soporte una trama P predicha a partir de múltiples tramas de referencia y dimensiones variables de bloque de compensación de movimiento. en tales ejemplos, una de las entradas al descodificador es el vector de movimiento de cada bloque descodificado de dimensiones variable. La otra entrada es un índice de trama de referencia (ref_idx) para cada vector de movimiento transmitido a partir de la trama descodificada actual. La información de índice de trama de referencia es llevada por el flujo de bits para cada vector de movimiento, indicando la distancia entre las dimensiones de bloque para cada macrobloque. Estas dimensiones de bloque son 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4. El proceso para generar vectores de movimiento de la trama P actual proporciona el soporte requerido para tramas de referencia y la dimensión variable de bloque de compensación de movimiento convirtiendo los vectores de movimiento de entrada en vectores de movimiento basándose en una única trama de referencia inmediata y una dimensión uniforme de bloque de compensación.
El procedimiento 204 empieza en un bloque 2042 en el cual se lleva a cabo la puesta a escala del vector de movimiento. La etapa de puesta a escala de vector de movimiento lleva a cabo la puesta a escala del vector de movimiento de entrada sobre la base dela distancia entre la trama actual y la trama de referencia a la cual apunta el vector de movimiento. Después de la puesta a escala de vector de movimiento, todos los vectores son apuntados desde la trama actual a su trama de referencia inmediata, es decir, la trama adyacente a la trama actual (el valor ref_idx es igual a cero). Por lo tanto, se ponen a escala múltiples tramas de referencia en una única trama de referencia inmediata. El nuevo vector de movimiento apunta a su trama de referencia inmediata se puede caracterizar como sigue:
4
donde MV_f_x y MV_f_y son los componentes x e y del nuevo vector de movimiento, MV_x y MV_y son los componentes x e y del vector de movimiento transmitido, N es la distancia de la trama actual a su trama de referencia inmediata, y M es la distancia desde la trama actual a la trama de referencia a la cual apunta el vector de movi-
miento.
A continuación en un bloque 2044, se lleva a cabo la fusión de vector de movimiento. La fusión de vector de movimiento proporciona soporte necesario a vectores de movimiento de dimensión de bloque variable. Durante este hecho, los vectores de movimiento de entrada de diferentes dimensiones se convierten en un vector de movimiento que representa una dimensión de bloque uniforme denominada unidad base. La dimensión de la unidad base es configurable. En algunos ejemplos, se usa unidad base 16x16.
Si la unidad base comprende diversos vectores de movimiento puestos a escala de dimensión o dimensiones menores, se aplica una operación de fusión para fusionar los vectores de movimiento en el interior de la unidad base en un único vector de movimiento y asignar lo a la unidad base. Sin embargo, si un vector de movimiento puesto a escala es mayor que una unidad base, el vector de movimiento de entrada se separa en diversos vectores de movimiento, representado cada uno una unidad base y teniendo cada uno el mismo vector de movimiento que el vector de movimiento puesto a escala. Diversos ejemplos están disponibles para llevar a cabo la operación de fusión. En un ejemplo, el nuevo vector de movimiento es la media de los diversos vectores de movimiento puestos a escala de dimensiones menores comprendidos en la unidad base. En otro ejemplo, el nuevo vector de movimiento es la media de los diversos vectores de movimiento puestos a escala comprendidos en la unidad base. Después del bloque 2044, todos los vectores de movimiento descodificados correctamente se convierten en una unidad base de dimensión única.
Yendo al un bloque 2046, el filtrado de mediana de vector de movimiento se lleva a cabo sobre los vectores de movimiento desde el bloque 2044. Los bloques anteriores 2042 y 2044 modifican el campo de vector de movimiento recibido en una dimensión uniformizada (dimensión de unidad base), campo de movimiento de referencia única (todos los vectores de movimiento se ponen a escala para apuntar a la trama de referencia inmediata desde la trama actual) El filtrado de mediana de vector de movimiento se lleva a cabo para atenuar la singularidad en el vector de movimiento introducido por las operaciones de puesta a escala y fusión, y por lo tanto, produce mejores resultados de encubrimiento de error. El filtrado de mediana de vector de movimiento es el mismo que se ha mencionado anteriormente en la figura 2. En un ejemplo, se aplica un filtrado de mediana de vector de movimiento 3x3 (VMF) a cada vector de movimiento disponible Cada vector de movimiento disponible se sustituye por la mediana de los vectores de movimiento en un centrado de bloque 3x3 sobre ese vector de movimiento. En otros ejemplos se puede usar un bloque de dimensión diferente para llevar a cabo el filtrado de mediana de vector de movimiento.
En breve, el presente ejemplo del proceso para generar vectores de movimiento de la trama P convierte los vectores de movimiento de entrada de dimensiones de bloque variables en vectores de movimiento de unidad base y convierte las múltiples tramas de referencia de cada trama de descodificación en una única y menor trama de referencia de índice en la lista de tramas de referencia.
Se debería subrayar que ninguno de los bloques ilustrados en este diagrama de flujo se puede omitir, redisponer en orden o combinar con uno o más bloques.
La figura 4 es un diagrama de flujo que ilustra un ejemplo del proceso para formar una ventana de vectores de movimiento sobre la base dela trama P actual y una trama de referencia en el bloque 206 de la figura 2. Como se menciona respecto de la figura 2, la ventana de vectores de movimiento generado en este proceso se puede usar entonces para construir una estimación del vector de movimiento del macrobloque erróneo. En el ejemplo, la ventaja de vector de movimiento es una ventana 3x3 de macrobloques, aunque se pueden usar también otras dimensiones. En el ejemplo, la trama de referencia es la trama de referencia inmediata a la trama P actual, es decir, la trama adyacente a la trama P actual. En otros ejemplos, la trama de referencia se podría alejar de la trama P actual. El procedimiento se puede aplicar bien en un proceso de descodificación causal o un proceso de descodificación no causal.
El procedimiento 206 empieza en un bloque 2062, en el cual se determina si el movimiento en una trama P actual y la trama de referencia es continuo. El movimiento es continuo si el movimiento en la trama actual no cambia notablemente respecto del movimiento de la trama de referencia.
Un proceso similar al procedimiento 204 descrito anteriormente en la figura 3 se aplica para generar vectores de movimiento de la trama de referencia. Una vez que los vectores de movimiento de la trama de referencia se generan, cada par de vectores de movimiento colocalizados en las tramas actual y de referencia se comparan entonces para determinar si el movimiento en la trama actual y la trama de referencia es continuo, si el par está disponible. Una par de vectores de movimiento está disponible si ambos vectores de movimiento se reciben correctamente. Se mantiene una cantidad de pares de vectores de movimiento similares. Si la cantidad de vectores de movimiento similares supera un porcentaje de umbral de los pares de vectores de movimiento disponibles, los movimientos en las dos tramas no cambian significativamente. Por el contrario, se detecta el cambio de movimiento trama a trama. En el ejemplo, el porcentaje de umbral es del 50%, aunque se puede usar otro número.
A cada vector de movimiento recibido se le da una etiqueta de magnitud y una etiqueta de dirección. En el ejemplo, la etiqueta de magnitud tiene el valor bien de 0 (magnitud pequeña) o 1 (magnitud grande). A un vector de movimiento se le da una etiqueta de magnitud de 1 si la magnitud del vector de movimiento es superior a un valor de umbral. En el ejemplo, el umbral para decidir la etiqueta de magnitud es 2 píxeles, pero se pueden usar otros valores. En el ejemplo, la etiqueta de dirección tiene el valor de 0, 1, 2 o 3, representado una de las cuatro direcciones principales.
Cada par de vectores de movimiento colocalizados en las dos tramas se compara con base en sus etiquetas de magnitud y etiquetas de dirección. Por ejemplo, los vectores de movimiento de cada par se declaran similares a menos que sus magnitudes sean ambas grandes y sus direcciones sean opuestas. Este enfoque pasa por alto la información direccional de vectores de movimiento de pequeña magnitud porque los pequeños vectores de movimiento tienden a ser distribuidos direccionalmente de modo aleatorio.
Si se determina que el movimiento no es continuo, los vectores de movimiento de la trama de referencia no son fiables y no se pueden usar para estimar el vector de movimiento del macrobloque erróneo. Si los vectores de movimiento de la trama de referencia no son fiables, el proceso pasa a un bloque 2064 que ocupa la ventana de vectores de movimiento 2066 y 2067 en la cual la ventana de vectores de movimiento se genera con base tanto en la trama de referencia como la trama actual.
Yendo al bloque 2066, se selecciona un macrobloque de anclaje en la trama de referencia. Un ejemplo aplica un procedimiento colocalizado, en el cual el macrobloque de anclaje es el macrobloque colocalizado en la trama de referencia. El ejemplo es apropiado para el caso de movimiento global donde todos los vectores de movimiento siguen el mismo modelo afín, o la situación donde los vectores de movimiento en la ventana de vectores de movimiento de trama actual y la ventana de vectores de movimiento colocalizado en la trama de referencia están ambas en la región de fondo. Para el movimiento irregular con un objeto móvil, esta técnica puede no capturar efectivamente los vectores de movimiento esperados para el propósito de encubrimiento de errores. Por ejemplo, si la ventana 3x3 anterior reside en una región de fondo estática, y la ventana 3x3 de trama actual cubre total o parcialmente un objeto móvil, los vectores de movimiento capturados a partir de la trama de referencia anterior por los procedimientos colocalizado son irrelevantes para la trayectoria de movimiento del objeto móvil de interés. La utilización de tales vectores de movimiento de la trama anterior para encubrimiento de errores temporal puede terminar con resultados inferiores.
Otro ejemplo resuelve el problema anterior seleccionando el macrobloque de anclaje según la trayectoria de movimiento. En este ejemplo, se determina en primer lugar un vector de movimiento de anclaje de la trama P actual. A continuación se decide el macrobloque de anclaje de la trama de referencia sobre la base del vector de movimiento de anclaje.
El vector de movimiento de anclaje se calcula sobre la base dela disponibilidad de sus tres sectores de movimiento vecinos, el vector de movimiento de su macrobloque circundante izquierdo, el vector de movimiento de su macrobloque circundante superior y el vector de movimiento de su macrobloque circundante superior derecho. Si un vector de movimiento es de un macrobloque erróneo, o de un macrobloque intracodificado, o cualquiera de su índice de referencia de subparticiones no es igual a cero, el vector de movimiento se marca como no disponible; de otro modo se marca como disponible. Si solamente uno de estos tres macrobloques vecinos está disponible, el vector de movimiento de anclaje se asigna como el macrobloque disponible circundante. De otro modo, el vector de movimiento de anclaje se asigna como la mediana de todos los vectores de movimiento disponibles de sus tres vectores de movimiento vecinos.
Una vez que se ha determinado el vector de movimiento de anclaje, se aplica un procedimiento de área más cubierto para obtener el macrobloque de anclaje en la trama de referencia, como se mencionará más en detalle respecto de las figuras 5A y 5B.
Una vez que se ha determinado el macrobloque de anclaje, se ocupa selectivamente una ventana de vectores de movimiento sobre la base dela trama de referencia y la trama P actual en un bloque 2067, como se mencionará más en detalle respecto de la figura 6. En el ejemplo, la ventana de vectores de movimiento es 3x3, pero se pueden usar otras dimensiones.
Desplazándose a un bloque 2068, se lleva a cabo la clasificación de movimiento local para eliminar algunos vectores de movimiento dentro de la ventana de vectores de movimiento generada en el bloque 2067. Cada vector de movimiento disponible dentro de la ventana de vectores de movimiento se compara con el vector de movimiento del macrobloque de anclaje en la trama de referencia para determinar si estos vectores de movimiento son similares, siguiendo los mismos criterios de comparación que los mencionado anteriormente en la figura 4. Un vector de movimiento dentro de la ventana de vectores de movimiento se marca como no disponible si el vector de movimiento no es similar al macrobloque de anclaje en la trama de referencia. Por lo tanto, el vector de movimiento no afecta a la estimación del vector de movimiento para el macrobloque erróneo de interés.
Se debería subrayar que ninguno de los bloques ilustrados en este diagrama de flujo se puede omitir, redisponer en orden o combinar con uno o más bloques.
Las figuras 5A y 5B ilustran el procedimiento de área más cubierta para determinar el macrobloque de anclaje en el bloque 2066 de la figura 4. Un vector de movimiento de anclaje 22 en la trama P actual apunta a un área 24 de la trama de referencia. El área 24 cubre total o parcialmente a lo sumo cuatro macrobloques 26, 28, 32 y 34. A cada macrobloque cubierto se le asigna un valor que representa su área cubierta por el área 24 a la cual apuntan los vectores de movimiento de anclaje. Por ejemplo, el macrobloque de anclaje se selecciona como el macrobloque en la trama de referencia cubierta mayoritariamente por el área 24. En el caso de que más de un macrobloque estén cubiertos en su mayoría por el área 24, cualquiera de estos macrobloques cubiertos en su mayor parte se puede seleccionar como el macrobloque de anclaje. En la figura 5B, el macrobloque 34 se selecciona como el macrobloques de anclaje.
La figura 6 ilustra la construcción de la ventana de vectores de movimiento del bloque 2067 de la figura 4. La ventana de vectores de movimiento 70 se construye sobre la base de una ventana 50 de vector de movimiento 3x3 centrada sobre el macrobloque erróneo 52 en la trama actual y una ventana 40 de vector de movimiento 3x3 centrada en el macrobloque de anclaje 42 en la trama de referencia. Una vector de movimiento en la trama actual y de referencia se marca como no disponible si el vector de movimiento no se recibe correctamente. En la figura 6, por ejemplo, los macrobloques 52, 54, 56, 58 y 62 de la trama actual no están disponibles. En un ejemplo de una descodificación no causal, cualquiera de los macrobloques 52, 54, 56, 58 y 62 puede estar disponible. Para ocupar cada bloque de la ventana de vectores de movimiento, se usa un vector de movimiento de la trama actual en la localización correspondiente si un vector de movimiento está disponible. De otro modo, se usa un vector de movimiento de la trama de referencia en la localziación correspondiente si tal vector de movimiento está disponible. en el caso en que el vector de movimiento de la trama de referencia y el vector de movimiento de la trama actual son ambos no disponibles en la localización correspondiente, el bloque se marca como no disponible.
Las figuras 7A y 7B ilustran porqué puede ser deseable llevar a cabo la clasificación de movimiento según el hecho en el bloque 2068 de la figura 4. Como se ilustra en la figura 7A, el límite de movimiento 76 puede existir en la ventana 72 de vector de movimiento 3x3 dentro de la trama de referencia. En este caso, solamente los vectores de movimiento que están del mismo lado del límite de movimiento como el vector de movimiento 74 del macrobloque de anclaje se deberían usar para estimar el vector de movimiento del macrobloque erróneo. En la figura 7A, se genera una ventana 82 de vector de movimiento en el bloque 2067 de la figura 4 como se ha mencionado anteriormente. Sin clasificación de movimiento local, la ventana 82 de vector de movimiento se usa entonces para generar el vector 86 de movimiento evaluada del macrobloque erróneo. En un ejemplo, un proceso similar al acto en el bloque 204 d la figura 2 se aplica para generar el vector de movimiento estimada. Como se ilustra, el vector 86 de movimiento estimada no se puede precisar a lo largo de los bordes de movimiento. En la figura 7B, la ventana 82 de vector de movimiento se procesa, además, por la clasificación de movimiento local según el bloque 2068 de la figura 4. Por lo tanto, los vectores de movimiento localizados en el otro lado del límite de movimiento se eliminan en la nueva ventana de vectores de movimiento 90. Por consiguiente, el vector 82 de movimiento estimado generado sobre la base de la nueva ventana 90 es más preciso. Esta comparación ilustra que la determinación y la clasificación del movimiento de los macrobloques vecinos locales reducen las discontinuidades de objeto causadas evaluando los vectores de movimiento incorrectos a lo largo de los bordes de movimiento.
La figura 8 es un diagrama de flujo que ilustra otro ejemplo de un procedimiento de procesamiento de una trama multimedia que comprende una primera sección recibida con error. El procedimiento empieza en un bloque 802, en el cual se obtienen datos de predicción temporal que corresponden a una primera trama de referencia. A continuación en un bloque 804, se determina si la primera trama de referencia es fiable para estimar la primera sección. Yendo a un bloque 806 se realiza una estimación de la primera sección recibida con error sobre la base de una o más secciones distintas de la primera sección de la trama multimedia y la primera trama de referencia, si se determina que la primera trama de referencia es fiable. Los hechos de estos bloques son similares a la mencionado anteriormente en las figuras 1-7.
La figura 9 muestra un diagrama de bloques que ilustra otro ejemplo de un descodificador configurado para descodificar un flujo de datos multimedia entrantes. El flujo de datos comprende una trama multimedia, que comprende, además, una primera sección recibida con error. El descodificador comprende un módulo de obtención 902, un módulo de determinación 904, un módulo de estimación 906, y un procesador 908. El módulo de obtención 904 se configura para determinar si la primera trama de referencia es fiable para estimar la primera sección. El módulo de estimación 906 se configura para estimar la primera sección recibida con error sobre la base de una o más secciones distintas de la primera sección de la trama multimedia y la primera trama de referencia, si se determina que la primera trama de referencia es fiable. El procesador 908 se configura para ejecutar uno o más aplicaciones de software para controlar la operación
de otras unidades, como se ha mencionado anteriormente. En otros ejemplos se puede eliminar el procesador 908
Los expertos en la técnica entenderán que la información y las señales se pueden representar usando cualquiera de las diversas tecnologías y técnicas. Por ejemplo, los datos, instrucciones, ordenes, información, señales, bits, símbolos y chips a los que se hace referencia a lo largo de toda la descripción anterior se pueden representar por voltajes, corrientes, ondas electromagnéticas, campos magnéticos o partículas magnéticas, o cualquier combinación de los mismos.
Los expertos en la técnica apreciarán, además, que los diversos bloques lógicos ilustrativos módulo y etapas de algoritmo descrito en conexión con los ejemplos dados a conocer en la presente memoria se pueden llevar a cabo como equipo electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de equipo y software, se han descrito diversos componentes ilustrativos, bloques, módulos circuitos y etapas anteriormente generalmente en relativo a su funcionalidad. La aplicación de tal funcionalidad como equipo o software depende de las condiciones particulares de aplicación y diseño impuestas en el sistema global. Los expertos en la técnica pueden aplicar la funcionalidad descrita de diversas maneras para cada aplicación particular, pero tales decisiones de aplicación no se deberían interpretarse como que se salen del alcance de los procedimientos dados a conocer.
Los diversos bloque lógicos, módulo y circuitos ilustrativos en conexión con los ejemplos dados a conocer en la presente memoria se puede ejecutar o llevar a la práctica con un procesador de uso general, un procesador de señales digitales (DSP), un circuito integrado específico de aplicación (ASIC), una red de puertas programables de campo (FPGA) u otro dispositivo lógico programable, componentes de equipo discreto de puertas discretas o lógica de transistor, o cualquier combinación de los mismos destinada a realizar las funciones descritas en la presente memoria. Un procesador de uso generar puede ser un microprocesador, pero en la alternativa, el procesador puede ser cualquier procesador convencional, controlador, microcontrolador o máquina de estado. Se puede aplicar también un procesador como una combinación de dispositivos de computación, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en combinación con un núcleo de DSP, o cualquier otra configuración de este tipo.
Las etapas de un procesamiento o algoritmo descritos en conexión con los ejemplos dados a conocer en la presente memoria se pueden materializar directamente en equipo, en un módulo de software ejecutado por un procesador, o en una combinación de los dos. Un módulo de software puede residir en una memoria RAM, una memoria flash, memoria ROM, memoria EPROM, memoria EEPROM, registradores, disco duro, disco removible, un CDROM, o cualquier otra forma de soporte de almacenamiento conocido en la técnica. Un soporte de almacenamiento se acopla al procesador de manera que el procesador pueda leer información a partir de, y escribir información en, el soporte de almacenamiento. En la alternativa, el soporte de almacenamiento puede ser solidario al procesador. El procesador y el soporte de almacenamiento pueden residir en un Circuito integrado específico de aplicación (ASIC). El ASIC puede residir en un módem inalámbrico. En la alternativa, el procesador y el soporte de almacenamiento puede residir como componentes discretos en el módem inalámbrico.
La descripción anterior de los ejemplos revelados se proporciona para permitir que cualquier experto en la técnica realice o utilice los procedimientos y aparatos dados a conocer. Las diversas modificaciones en estos ejemplos serán muy evidentes para los expertos en la técnica, y los principios definidos en la presente memoria se pueden aplicar a otros ejemplos.

Claims (43)

1. Un procedimiento para procesar una trama multimedia que comprende una primera sección recibida con error, que comprende:
\quad
obtener (802) datos de predicción temporal que corresponden a una primera trama de referencia, comprendiendo los datos de predicción temporal vectores de movimiento que corresponden a secciones de la primera trama de referencia;
\quad
determinar si cada par de vectores de movimiento, que comprende un vector de movimiento de la trama multimedia y un vector de movimiento colocalizado en la primera trama de referencia, es similar, si el par está disponible; y
\quad
determinar (804) que la primera trama de referencia es fiable si la relación entre el número de pares similares y el número de pares disponibles es superior a un valor de umbral,
\quad
en el cual un par de vectores de movimiento está disponible si los dos vectores de movimientos se reciben correctamente; y
\quad
estimar (806) la primera sección recibida con error en base a una o más secciones diferentes de la primera sección de la trama multimedia y de la primera trama de referencia, si se determina que la primera trama de referencia es fiable.
\vskip1.000000\baselineskip
2. Procedimiento según la reivindicación 1, en el cual una o más secciones comprenden una o más secciones vecinas de la primera sección.
3. Procedimiento según la reivindicación 1, en el cual se determina si cada par es similar en base a al menos uno de los siguientes elementos: las magnitudes de los dos vectores de movimiento y las direcciones de los dos vectores de movimiento.
4. Procedimiento según la reivindicación 3, en el cual se determina si cada par no es similar solamente si las magnitudes de los dos vectores de movimientos son grandes y las direcciones de los vectores de movimiento son opuestas.
5. Procedimiento según la reivindicación 1, en el cual cada sección es un macrobloque.
6. Procedimiento según la reivindicación 1, que comprende, además, una puesta a escala (2042) de los vectores de movimiento que corresponden a partes de una o diversas tramas de referencia a partir de las cuales la trama multimedia debe ser predicha, en vectores de movimiento que corresponden a partes de la primera trama de referencia, de manera que la primera trama sea adyacente a la trama multimedia.
7. Procedimiento según la reivindicación 6, que comprende, además, una atenuación de al menos uno de los vectores de movimiento puesto a escala.
8. Procedimiento según la reivindicación 7, en el cual la atenuación comprende un filtrado de mediana.
9. Procedimiento según la reivindicación 1, en el cual cada trama comprende una pluralidad de secciones y cada sección comprende una o más unidades de base de la misma dimensión, comprendiendo el procedimiento, además:
\quad
convertir (2044) vectores de movimiento que corresponden a partes de dimensiones variables de cada unidad base para formar un vector de movimiento base que corresponde a la unidad base,
\quad
en el cual cada unidad base está constituida de N por M bloques de píxeles, y además en el cual N y M son números enteros.
\vskip1.000000\baselineskip
10. Procedimiento según la reivindicación 9, en el cual la fusión de vectores de movimiento comprende al menos uno: cálculo de media simple, cálculo de media ponderada y filtrado de mediana (2046).
11. Procedimiento según la reivindicación 9, que comprende, además, una atenuación de al menos uno de los vectores de movimiento fusionados.
12. Procedimiento según la reivindicación 11, en el cual la atenuación comprende un filtrado de mediana.
13. Procedimiento según la reivindicación 1, en el cual la estimación comprende, además:
determinar una sección de anclaje (42) en la primera trama de referencia;
determinar (206) una primera ventana de vectores de movimiento (70) en base de vectores de movimiento disponibles a partir de una segunda ventana de vectores de movimiento (50) de la trama multimedia centrada sobre la primera sección y a partir de una tercer ventana de vectores de movimiento (40) de la primera trama de referencia centrada sobre la sección de anclaje, siendo cada ventana de vectores de movimiento una ventana que comprende un número de secciones de la trama respectiva; y atenuar (208) los vectores de movimiento disponibles en la primera ventana de vectores de movimiento.
14. Procedimiento según la reivindicación 13, que comprende, además, una puesta al día de la primera ventana de vectores de movimiento, de tal manera que cada vector de movimiento se marque como no disponible si el vector de movimiento no es similar al vector de movimiento de la sección de anclaje.
15. Procedimiento según la reivindicación 14, en el cual se determina si dos vectores de movimiento no son similares en base de al menos uno de los siguientes elementos: las magnitudes de los dos vectores de movimiento y las direcciones de los dos vectores de movimiento.
16. Procedimiento según la reivindicación 15, en el cual se determina que dos vectores de movimiento no son similares solamente si las magnitudes de los dos vectores de movimientos son grandes y las direcciones de los dos vectores de movimiento son opuestas.
17. Procedimiento según la reivindicación 13, en el cual la sección de anclaje (42) se selecciona para que sea la sección situada en la localización que corresponde a la primera sección errónea de la trama multimedia.
18. Procedimiento según la reivindicación 13;
en el cual la sección de anclaje (42) se selecciona de tal manera que la sección de anclaje corresponde a una sección de la primera trama de referencia que tiene la mayor superposición con una zona de la primera trama de referencia,
en el cual la zona es apuntada por un vector de movimiento de anclaje de la trama predicha, y
en el cual el vector de movimiento de anclaje se calcula en base a vectores de movimiento de secciones vecinas disponibles en la trama multimedia.
19. Procedimiento según la reivindicación 1, que comprende, además, una estimación de la primera sección en base a uno o más secciones distintas de la primera sección de la trama multimedia y sin basarse en la primera trama de referencia, si se determina que la primera trama de referencia no es fiable.
20. Procedimiento según la reivindicación 1, en la cual el procedimiento se puede aplicar en un proceso de descodificación causal y en un proceso de descodificación no causal.
21. Un procesador (112) configurado para realizar el procedimiento según cualquiera de las reivindicaciones 1 a 20.
22. Un aparato (100, 900) para procesar una trama multimedia que comprende una primera sección recibida con error, que comprende:
\quad
medios (102, 902) para obtener datos de predicción temporal que corresponden a una primera trama de referencia, comprendiendo los datos de predicción temporal vectores de movimiento que corresponden a secciones de la primera trama de referencia;
\quad
medios (104, 904) para determinar si cada par de vectores de movimiento que comprenden un vector de movimiento de la trama multimedia y un vector de movimiento colocalizado en la primera trama de referencia, es similar, si el par está disponible; y
\quad
medios (104, 904) para determinar que la primera trama de referencia es fiable si la relación entre el número de pares similares y el número de pares disponibles es superior a un valor de umbral, estando un par de vectores de movimiento disponible si los dos vectores de movimientos se reciben correctamente; y medios (106, 906) para estimar la primera sección recibida con error en base a una o más secciones diferentes de la primera sección de la trama multimedia y de la primera trama de referencia, si se determina que la primera trama de referencia es fiable.
23. Aparato según la reivindicación 22, en el cual una o más secciones comprenden una o más secciones vecinas de la primera sección.
24. Aparato según la reivindicación 22, en el cual se determina si cada par es similar en base a al menos uno de los siguientes elementos: las magnitudes de los dos vectores de movimiento y las direcciones de los dos vectores de movimiento.
25. Aparato según la reivindicación 24, en el cual se determina si cada par no es similar solamente si las magnitudes de los dos vectores de movimientos son grandes y las direcciones de los vectores de movimiento son opuestas.
26. Aparato según la reivindicación 22, en el cual cada sección es un macrobloque.
27. Aparato según la reivindicación 22, que comprende, además medios para una puesta a escala de los vectores de movimiento que corresponden a partes de una o diversas tramas de referencia a partir de las cuales la trama multimedia debe ser predicha, en vectores de movimiento que corresponden a partes de la primera trama de referencia, de manera que la primera trama de referencia sea adyacente a la trama multimedia.
28. Aparato según la reivindicación 27, que comprende, además, medios de atenuación de al menos uno de los vectores de movimiento puesto a escala.
29. Aparato según la reivindicación 28, en el cual los medios de atenuación comprende un filtrado de mediana.
30. Aparato según la reivindicación 22, en el cual cada trama comprende una pluralidad de secciones y cada sección comprende uno o más unidades de base de la misma dimensión, comprendiendo, además:
\quad
medios para convertir vectores de movimiento que corresponden a partes de dimensiones variables de cada unidad base para formar un vector que corresponde a la unidad base,
\quad
en el cual cada unidad base está constituida de N por M bloques de píxeles, y además en el cual N y M son números enteros.
\vskip1.000000\baselineskip
31. Aparato según la reivindicación 30, en el cual los medios de fusión de vectores de movimiento comprenden medios para al menos una de cálculo de media simple, cálculo de media ponderada y filtrado de mediana.
32. Aparato según la reivindicación 30, que comprende, además, medios de atenuación de al menos uno de los vectores de movimiento fusionados.
33. Aparato según la reivindicación 32, en el cual la los medios de atenuación comprenden un filtrado de mediana.
34. Aparato según la reivindicación 22, en el cual los medios de estimación comprenden, además:
\quad
medios (904) para determinar una sección de anclaje en la primera trama de referencia;
\quad
medios para determinar una primera ventana de vectores de movimiento en base a vectores de movimiento disponibles a partir de una segunda ventana de vectores de movimiento de la trama multimedia centrada sobre la primera sección y a partir de una tercera ventana de vectores de movimiento (40) de la primera trama de referencia centrada sobre la sección de anclaje, siendo cada ventana de vectores de movimiento una ventana que comprende un número de secciones de la trama respectiva; y
\quad
medios para atenuar los vectores de movimiento disponibles en la primera ventana de vectores de movimiento.
\vskip1.000000\baselineskip
35. Aparato según la reivindicación 34, que comprende, además, medios de puesta al día de la primera ventana de vectores de movimiento, de tal manera que cada vector de movimiento se marque como no disponible si el vector de movimiento no es similar al vector de movimiento de la sección de anclaje.
36. Aparato según la reivindicación 35, en el cual se determina si dos vectores de movimiento no son similares en base a al menos uno de los siguientes: las magnitudes de los dos vectores de movimiento y las direcciones de los dos vectores de movimiento.
37. Aparato según la reivindicación 36, en el cual se determina que dos vectores de movimiento no son similares solamente si las magnitudes de los dos vectores de movimientos son grandes y las direcciones de los dos vectores de movimiento son opuestas.
38. Aparato según la reivindicación 34, en el cual la sección de anclaje se selecciona para que sea la sección situada en la localización que corresponde a la primera sección errónea de la trama multimedia.
39. Aparato según la reivindicación 34;
en el cual la sección de anclaje se selecciona de tal manera que la sección de anclaje corresponde a una sección de la primera trama de referencia que tiene la mayor superposición con una zona de la primera trama de referencia,
en el cual la zona es apuntada por un vector de movimiento de anclaje de la trama predicha, y en el cual el vector de movimiento de anclaje se calcula en base a vectores de movimiento de secciones vecinas disponibles en la trama multimedia.
\newpage
40. Aparato según la reivindicación 22, que comprende, además, medios para la estimación de la primera sección en base a uno o más secciones distintas de la primera sección de la trama multimedia y sin basarse en la primera trama de referencia, si se determina que la primera trama de referencia no es fiable.
41. Aparato según la reivindicación 22, en la cual el aparato se puede aplicar en un proceso de descodificación causal y en un proceso de descodificación no causal.
42. Un soporte legible por ordenador que materializa medios para hacer que un ordenador ejecute el procedimiento según cualquiera de las reivindicaciones 1 a 20.
43. Un aparato para procesar una trama multimedia que comprende una primera sección recibida en error según la reivindicación 22 o 23, en el cual los medios de obtención son un generador de datos de predicción temporal, los medios de determinación son un detector de cambio de movimiento de trama y los medios de estimación son un estimador de vector de movimiento.
ES06737648T 2005-03-10 2006-03-10 Procedimiento y aparato de encubrimiento de errores temporales para trama p. Active ES2330142T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US66086705P 2005-03-10 2005-03-10
US660867P 2005-03-10
US68027705P 2005-05-11 2005-05-11
US680277P 2005-05-11

Publications (1)

Publication Number Publication Date
ES2330142T3 true ES2330142T3 (es) 2009-12-04

Family

ID=36588932

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06737648T Active ES2330142T3 (es) 2005-03-10 2006-03-10 Procedimiento y aparato de encubrimiento de errores temporales para trama p.

Country Status (10)

Country Link
US (1) US8693540B2 (es)
EP (1) EP1856918B1 (es)
JP (1) JP2008533845A (es)
KR (1) KR100926205B1 (es)
CN (1) CN101189884B (es)
AT (1) ATE439742T1 (es)
DE (1) DE602006008436D1 (es)
ES (1) ES2330142T3 (es)
TW (1) TW200706011A (es)
WO (1) WO2006099087A1 (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2362533A (en) * 2000-05-15 2001-11-21 Nokia Mobile Phones Ltd Encoding a video signal with an indicator of the type of error concealment used
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
US8780957B2 (en) 2005-01-14 2014-07-15 Qualcomm Incorporated Optimal weights for MMSE space-time equalizer of multicode CDMA system
WO2006099082A2 (en) * 2005-03-10 2006-09-21 Qualcomm Incorporated Content adaptive multimedia processing
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
ATE456256T1 (de) * 2005-03-10 2010-02-15 Qualcomm Inc Decoder-architektur für optimiertes fehlermanagement in multimedia-strömen
US7660354B2 (en) * 2005-05-11 2010-02-09 Fang Shi Temporal error concealment for bi-directionally predicted frames
US8018998B2 (en) * 2005-05-20 2011-09-13 Microsoft Corporation Low complexity motion compensated frame interpolation method
US8879857B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
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
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
US8509313B2 (en) * 2006-10-10 2013-08-13 Texas Instruments Incorporated Video error concealment
JP4427086B2 (ja) * 2006-12-27 2010-03-03 パナソニック株式会社 動画像復号化装置
KR100855976B1 (ko) * 2007-02-02 2008-09-02 삼성전자주식회사 배경과 이동 객체를 분리하여 움직임을 추정하는 프레임보간 장치 및 프레임 보간 방법
KR101366244B1 (ko) * 2007-04-24 2014-02-21 삼성전자주식회사 레지듀얼 데이터를 이용한 영상의 에러 은닉 방법 및 장치
US8605786B2 (en) * 2007-09-04 2013-12-10 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
US8848793B2 (en) * 2007-10-31 2014-09-30 Broadcom Corporation Method and system for video compression with integrated picture rate up-conversion
US8917769B2 (en) * 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
JP5248632B2 (ja) * 2010-01-14 2013-07-31 インテル コーポレイション 動き推定のための技術
US20110249127A1 (en) * 2010-04-07 2011-10-13 Cisco Technology, Inc. Estimating Video Quality Corruption in Lossy Networks
JP5721851B2 (ja) 2010-12-21 2015-05-20 インテル・コーポレーション Dmvd処理のシステムおよび方法の改善
GB2488816A (en) * 2011-03-09 2012-09-12 Canon Kk Mapping motion vectors from a plurality of reference frames to a single reference frame
ES2960089T3 (es) 2012-06-08 2024-02-29 Samsung Electronics Co Ltd Procedimiento y aparato para la ocultación de errores de trama y procedimiento y aparato para la decodificación de audio
JP6434411B2 (ja) 2012-09-24 2018-12-05 サムスン エレクトロニクス カンパニー リミテッド フレームエラー隠匿方法及びその装置、並びにオーディオ復号化方法及びその装置
EP2998934B1 (en) * 2013-05-16 2020-08-05 Sony Corporation Image processing device, image processing method, and program
US9407923B2 (en) * 2013-05-20 2016-08-02 Gamefly Israel Ltd. Overconing lost IP packets in streaming video in IP networks
CN108600749B (zh) * 2015-08-29 2021-12-28 华为技术有限公司 图像预测的方法及设备
US10291936B2 (en) 2017-08-15 2019-05-14 Electronic Arts Inc. Overcoming lost or corrupted slices in video streaming
US11272198B2 (en) * 2019-01-30 2022-03-08 Tencent America LLC Method and apparatus for improved sub-block partitioning intra sub-partitions coding mode

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4301466A (en) 1980-02-01 1981-11-17 Ampex Corporation Fast acting phase shifting apparatus for use in digital sampling systems
JPS622747A (ja) 1985-06-28 1987-01-08 Toshiba Corp 受信制御方式
US5504732A (en) 1990-08-15 1996-04-02 Del Mar Avionics Null inflection detection and pulse expand latch in an optical recording system
US5241546A (en) 1991-02-01 1993-08-31 Quantum Corporation On-the-fly error correction with embedded digital controller
JP3213389B2 (ja) 1992-07-24 2001-10-02 ローム株式会社 時分割多重通信装置
US6546441B1 (en) * 1993-01-26 2003-04-08 Logic Controls, Inc. Point-of-sale system
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
KR100299132B1 (ko) 1998-03-31 2001-10-29 윤종용 서비스 품질에 따른 프레임 데이터 처리를 위한 터보 부호화/복호화 장치 및 그 방법
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
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 ソニー株式会社 受信装置および方法
IL141800A0 (en) 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US6530009B1 (en) 2000-03-13 2003-03-04 Roxio, Inc. Methods for increasing file storage capacity of optical discs
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
DE60135036D1 (de) 2001-10-05 2008-09-04 Mitsubishi Electric Corp Verfahren und Vorrichtung zur Kompensation von fehlerhaften Bewegungsvektoren in Bilddaten
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
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
EP1395061A1 (en) 2002-08-27 2004-03-03 Mitsubishi Electric Information Technology Centre Europe B.V. Method and apparatus for compensation of erroneous motion vectors in video data
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
US7221680B2 (en) 2003-09-02 2007-05-22 Qualcomm Incorporated Multiplexing and transmission of multiple data streams in a wireless multi-carrier communication system
US8599764B2 (en) 2003-09-02 2013-12-03 Qualcomm Incorporated Transmission of overhead information for reception of multiple data streams
AU2004307449C1 (en) 2003-10-24 2009-04-30 Qualcomm Incorporated Frequency division multiplexing 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
KR20060096450A (ko) 2003-10-24 2006-09-11 콸콤 인코포레이티드 다수의 데이터 스트림들의 수신을 위한 오버헤드 정보의전송
US8582640B2 (en) 2003-12-16 2013-11-12 Sony Corporation Adaptive joint source channel coding
KR100770902B1 (ko) 2004-01-20 2007-10-26 삼성전자주식회사 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법
US7323455B2 (en) * 2004-03-24 2008-01-29 Wyeth 7-aryl 1,5-dihydro-4,1-benzoxazepin-2(3H)-one derivatives and their use as progesterone receptor modulators
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 삼성전자주식회사 멀티미디어 방송 시스템에서의 전송 에러 처리방법 및장치
US20060013320A1 (en) 2004-07-15 2006-01-19 Oguz Seyfullah H Methods and apparatus for spatial error concealment
US7929776B2 (en) 2005-03-10 2011-04-19 Qualcomm, Incorporated Method and apparatus for error recovery using intra-slice resynchronization points
ATE456256T1 (de) 2005-03-10 2010-02-15 Qualcomm Inc Decoder-architektur für optimiertes fehlermanagement in multimedia-strömen
WO2006099082A2 (en) 2005-03-10 2006-09-21 Qualcomm Incorporated Content adaptive multimedia processing
US7653860B2 (en) 2005-03-10 2010-01-26 Qualcomm Incorporated Transmit driver data communication
US8165167B2 (en) 2005-03-10 2012-04-24 Qualcomm Incorporated Time tracking for a communication system
US7925955B2 (en) 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
US7995656B2 (en) 2005-03-10 2011-08-09 Qualcomm Incorporated Scalable video coding with two layer encoding and single layer decoding
US20070078021A1 (en) * 2005-10-05 2007-04-05 Larson Darren V Golf game system and method

Also Published As

Publication number Publication date
KR20070110549A (ko) 2007-11-19
US20060215761A1 (en) 2006-09-28
TW200706011A (en) 2007-02-01
US8693540B2 (en) 2014-04-08
WO2006099087A1 (en) 2006-09-21
DE602006008436D1 (de) 2009-09-24
KR100926205B1 (ko) 2009-11-09
EP1856918A1 (en) 2007-11-21
EP1856918B1 (en) 2009-08-12
CN101189884A (zh) 2008-05-28
JP2008533845A (ja) 2008-08-21
CN101189884B (zh) 2012-01-11
ATE439742T1 (de) 2009-08-15

Similar Documents

Publication Publication Date Title
ES2330142T3 (es) Procedimiento y aparato de encubrimiento de errores temporales para trama p.
ES2336039T3 (es) Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores.
RU2697927C9 (ru) Устройство декодирования движущегося изображения и способ декодирования движущегося изображения
US7660354B2 (en) Temporal error concealment for bi-directionally predicted frames
KR101012624B1 (ko) 통합 에러 은폐 프레임워크를 위한 방법 및 장치
RU2697806C9 (ru) Устройство декодирования движущегося изображения и способ декодирования движущегося изображения
KR102014332B1 (ko) 비디오 코딩 방법 및 장치
US10911773B2 (en) Motion vector difference coding and decoding
JP2010081465A (ja) 動画像符号化方法および動画像復号化方法
US10375402B2 (en) Image encoding apparatus and method, and image encoding program
JP2015181225A (ja) 動画像符号化装置および動画像符号化方法
JP2017118459A (ja) 映像符号化装置、映像符号化方法及び映像符号化プログラム
CN105992012B (zh) 一种错误隐藏的方法和装置
JP2014204208A (ja) 予測モード決定方法、動画像符号化装置、及び予測モード決定プログラム
JP2018093374A (ja) 予測画像生成方法、予測画像生成装置及びコンピュータプログラム
KR20060085150A (ko) 베이스 레이어의 내부모드 블록의 예측정보를 이용하여영상신호를 엔코딩/디코딩하는 방법 및 장치
KR100828378B1 (ko) 통신 시스템에서의 비디오 프레임 전송 방법 및 장치
Psannis Efficient redundant frames encoding algorithm for streaming video over error prone wireless channels
KR101378434B1 (ko) 고속 화면내 예측 모드 결정 방법
JP2007325206A (ja) 動画像復号装置及び動画像復号方法
JP5788952B2 (ja) 動画像復号化方法
KR100774453B1 (ko) 인터넷의 실시간 영상 전송을 위한 에러 은닉 방법
Dhamande et al. Overview of Motion Estimation in Video Compression
JP2013123218A (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
WO2013069269A1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム