ES2336039T3 - Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. - Google Patents

Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. Download PDF

Info

Publication number
ES2336039T3
ES2336039T3 ES07710232T ES07710232T ES2336039T3 ES 2336039 T3 ES2336039 T3 ES 2336039T3 ES 07710232 T ES07710232 T ES 07710232T ES 07710232 T ES07710232 T ES 07710232T ES 2336039 T3 ES2336039 T3 ES 2336039T3
Authority
ES
Spain
Prior art keywords
coding
quad
distortion
concealment
procedure
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
ES07710232T
Other languages
English (en)
Inventor
Sitaraman Ganapathy Subramania
Gordon Kent Walker
Vijayalakshmi R. Raveendran
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2336039T3 publication Critical patent/ES2336039T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • 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
    • 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
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Procedimiento de codificación de datos multimedia que comprende: la estimación de un valor de distorsión para una primera parte de datos multimedia en base, en parte, a por lo menos uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente (402); y la determinación de un procedimiento de codificación para la primera parte en base, en parte, a por lo menos una comparación del valor de distorsión estimado y un umbral; caracterizado porque: el umbral varía en función de uno o más factores seleccionados de una lista de factores (404), la lista de factores incluyendo: una ubicación de la primera parte en una trama que contiene la primera parte, una textura de un área de la trama que contiene la primera parte, una posición de la trama que contiene la primera parte dentro de un grupo de imágenes que contienen la trama, una distribución de valores de distorsión en la trama que contiene la primera parte, y una actividad de movimiento del área de la trama que contiene la primera parte.

Description

Procedimiento y aparato para determinar un procedimiento de codificación en base a un valor de distorsión relacionado con el ocultamiento de errores.
Antecedentes Campo de la solicitud
Esta solicitud se refiere al procesamiento de señal multimedia y, más concretamente, a la codificación de vídeo.
Descripción de los antecedentes de la técnica
Los sistemas de procesamiento multimedia, como los codificadores de vídeo, pueden codificar datos multimedia utilizando procedimientos de codificación basados en estándares internacionales como los estándares Grupo de Expertos en Imágenes en Movimiento (MPEG)-1, -2 y -4, el estándar Unión Internacional de Telecomunicaciones (ITU)-T H.263, e ITU-T H.264 y su homólogo ISO/IEC MPEG-4, Parte 10, es decir, Codificación de vídeo Avanzada (AVC). Tales procedimientos de codificación por lo general se refieren a la compresión de datos multimedia para la transmisión y/o almacenamiento. La compresión es en términos generales el proceso de eliminación de la redundancia de los datos.
Una señal de vídeo puede describirse en términos de una secuencia de imágenes, que incluyen tramas (una imagen completa) o campos (p. ej., un flujo de vídeo entrelazado comprende campos de líneas pares e impares alternantes de una imagen). Tal y como se utiliza en la presente memoria, la expresión "trama" se refiere a una imagen, una trama o un campo. Los procedimientos de codificación de vídeo comprimen señales de vídeo utilizando algoritmos de compresión sin pérdida o con pérdida para comprimir cada trama. La codificación "intra-frame" (denominada intra-codificación en la presente memoria) se refiere a la codificación de una trama utilizando únicamente dicha trama. La codificación "inter-frame" (denominada inter-codificación en la presente memoria) se refiere a la codificación de una trama en base a otras, tramas de "referencia". Por ejemplo, las señales de vídeo muchas veces presentan una redundancia temporal en la que las tramas que son cercanas entre sí en la secuencia temporal de tramas tienen por lo menos partes que coinciden o por lo menos coinciden parcialmente entre sí.
Los procesadores multimedia, como los codificadores de vídeo, pueden codificar una trama partiéndola en bloques o "macrobloques" de, por ejemplo, 16x16 píxeles. El codificador puede partir adicionalmente cada macrobloque en subbloques. Cada subbloque puede comprender adicionalmente subbloques adicionales. Por ejemplo, los subbloques o un macrobloque pueden incluir subbloques de 16x8 y 8x16. Los subbloques de los subbloques de 8x16 pueden incluir subbloques de 8x8, y así sucesivamente. Tal y como se utiliza en la presente memoria, el término "bloque" se refiere a un macrobloque o a un subbloque.
Los codificadores toman ventaja de esta redundancia temporal utilizando algoritmos basados en la compensación de movimiento por inter-codificación. Los algoritmos de compensación de movimiento identifican partes de una trama de referencia que coinciden por lo menos parcialmente con un bloque. El bloque puede desplazarse en la trama con respecto a la parte coincidente de la trama de referencia. Este desplazamiento se caracteriza por un vector de movimiento. Cualquier diferencia entre el bloque y la parte parcialmente coincidente de la trama de referencia puede caracterizarse en términos de un residual. El codificador puede codificar una trama como datos que comprenden uno o más vectores de movimiento y residuales para una partición particular de una trama. Una partición particular de un bloque para la codificación de una trama puede seleccionarse minimizando aproximadamente una función de coste que, por ejemplo, equilibra el tamaño de la codificación con la distorsión del contenido resultante de la codificación.
La inter-codificación permite una compresión más eficaz que la intra-codificación. Sin embargo, la inter-codificación puede crear problemas cuando los datos de referencia (p. ej., las tramas de referencia o los campos de referencia) se pierden debido a errores en el canal, etc. En estos casos, puede no resultar posible la decodificación de los datos inter-codificados o puede resultar en errores no deseados y en la propagación de errores. Los decodificadores pueden emplear esquemas de ocultamiento que tratan de ocultar o tapar datos erróneos con datos derivados de los bloques vecinos o de datos en otras tramas. La mejoría de los algoritmos de ocultamiento puede proporcionar alguna mejoría en la calidad de las partes ocultas de los datos de vídeo erróneos. Sin embargo, hay un límite en la calidad que mostrará la imagen oculta debido a la fuerte dependencia de los algoritmos de ocultamiento de la información espacio-temporal. Los datos ocultos no pueden ser de alta calidad y la experiencia de visualización puede verse degradada. Además, la decodificación de la señal puede volverse imposible y puede requerirse la resincronización. La propagación de errores puede ser limitada, y puede permitirse la resincronización (o la adquisición inicial), mediante procedimientos de codificación que refrescan la señal de vídeo. Una señal de vídeo refrescada puede decodificarse sin referencia a o conocimiento de otras tramas.
Una trama intra-codificada independientemente decodificable es la forma más común de trama que permite el refresco de la señal de vídeo. Los estándares MPEG-x y H.26x utilizan lo que se conoce como grupo de imágenes (GOP) que comprende una trama intra-codificada (también denominada trama I) y tramas P temporalmente predichas o tramas B bidirecccionalmente predichas que hacen referencia a la trama I y/o a otras tramas P y/o B dentro del GOP. Son deseables GOP-s más largos para una mayor compresión, pero GOP-s más cortos permiten una adquisición y una resincronización más rápidas. Aumentar el número de tramas I refrescará la señal de vídeo con mayor frecuencia, limitando así adicionalmente la propagación de errores y proporcionando una adquisición y una resincronización más rápidas, pero a costa de una menor compresión. Lo que se necesita es una forma de codificar datos de vídeo que limite la propagación de errores del flujo de vídeo en el decodificador al tiempo que se preserva la eficacia de la compresión.
COTE G ET AL: "Optimal Mode Selection and Synchronization for Robust Video Communications over Error-Prone Networks" de la revista de la IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, EEUU, vol. 18, nº 6, junio de 2000 (2000-06), XP011055134 ISSN: 0733-8716, se refiere a una selección y sincronización de modo óptimo.
RUI ZHANG ET AL: "Video Coding with Optimal Inter/Intra-Mode Switching for Packet Loss Resilience" de la revista IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, EEUU, vol. 18, nº 6, junio 2000 (2000-06), páginas 966-976, XP011055155 ISSN: 0733-8716 se refiere a una codificación de vídeo con conmutación inter/intra-modo óptima.
US 6,574,277 se refiere a un aparato y a un procedimiento de codificación de imágenes en movimiento. Se calcula la distancia desde un pequeño bloque a un patrón de sincronización insertado en los datos codificados para cada bloque pequeño en una trama de imágenes. En base al conteo, una unidad de estimación de probabilidad de pérdida de datos estima la probabilidad de que los datos codificados de un bloque pequeño diana se pierdan durante la transmisión. En lo que respecta a un bloque pequeño en el que se ha realizado una codificación predictiva "inter-frame", una unidad de estimación de la degradación de la calidad de la imagen estima al grado de degradación de la calidad de la imagen que se producirá en este bloque pequeño en la imagen decodificada. La prioridad de refresco forzada de cada bloque pequeño se calcula comparando la probabilidad de pérdida de datos estimada y el grado de degradación de la calidad de la imagen estimada con valores umbrales, y los valores de prioridad son almacenados en forma de un mapa de refresco forzado.
Por último, COTE G ET AL: "Optimal intra coding of blocks for robust video communication over the Internet" SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, PAISES BAJOS, vol. 15, nº 1-2, septiembre 1999 (1999-09), páginas 25-34, XP004180636 ISSN: 0923-5965 se refiere a la intra-codificación óptima de bloques.
Resumen
La invención se define en las reivindicaciones independientes 1 y 9.
El sistema, procedimiento y dispositivos de la solicitud presentan cada uno varios aspectos, ninguno de los cuales es responsable único de sus atributos deseables. Sin limitar el alcance de esta solicitud según se expresa mediante las reivindicaciones que siguen, a continuación se analizarán brevemente sus características más prominentes. Tras considerar este análisis, y en particular tras leer la sección titulada "Descripción Detallada de Algunas Formas de Realización", uno entenderá cómo las características de muestra de esta solicitud pueden proporcionar algunas mejoras que incluyen, entre otros, por ejemplo, una mejor calidad de vídeo decodificado, una mejor recuperación de errores y/o una eficacia mejorada.
Se proporciona un procedimiento de codificación de datos multimedia. El procedimiento incluye la estimación de uno o más valores de distorsión para una o más partes de los datos multimedia basados por lo menos en parte en uno o más procedimientos de ocultamiento relacionados con el ocultamiento de una o más partes si la una o más partes fuesen recibidas erróneamente, y la determinación de por lo menos un procedimiento de codificación para la primera parte en base en parte a por lo menos el uno o más valores de distorsión estimados.
Se proporciona un procesador de datos multimedia. El procesador se configura para estimar uno o más valores de distorsión para una o más partes de los datos multimedia en base a por lo menos en parte uno o más procedimientos de ocultamiento relacionados con el ocultamiento de una o más partes si la una o más partes fuesen recibidas erróneamente, y determinar por lo menos un procedimiento de codificación para la una o más partes en base, en parte, a por lo menos uno o más valores de distorsión estimados.
Se proporciona un aparato para la codificación de datos multimedia. El aparato incluye un estimador para estimar uno o más valores de distorsión para una o más partes de datos multimedia en base a por lo menos en parte uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la una o más partes si la una o más partes fuesen recibidas erróneamente, y un determinador para determinar por lo menos un procedimiento de codificación para la una o más partes en base, en parte, a por lo menos el valor de distorsión estimado.
Se proporciona un medio legible por máquina que comprende instrucciones que al ejecutarlas hacen que una máquina codifique datos multimedia. Las instrucciones hacen que la máquina estime uno o más valores de distorsión para una o más partes de los datos multimedia en base a por lo menos uno o más procedimientos de ocultamiento relacionados con el ocultamiento de una o más partes si la una o más partes fuesen recibidas erróneamente, y determinar por lo menos un procedimiento de codificación para la primera parte en base a por lo menos en parte el valor de distorsión estimado.
Breve descripción de los dibujos
La Fig. 1 es un diagrama de bloques que ilustra un sistema de comunicación multimedia según un aspecto.
La Fig. 2 es un diagrama de bloques que ilustra una forma de realización de un dispositivo codificador que puede utilizarse en un sistema como el ilustrado en la Fig. 1.
La Fig. 3 es un diagrama de bloques que ilustra una forma de realización de un dispositivo decodificador que puede utilizarse en un sistema como el ilustrado en la Fig. 1.
La Fig. 4A es un diagrama de flujo que ilustra un ejemplo de un procedimiento de codificación de una parte de un flujo de vídeo en un sistema como el ilustrado en la Fig. 1.
La Fig. 4B es un diagrama de flujo que ilustra en mayor detalle un ejemplo de un procedimiento de codificación de una parte de un flujo de vídeo en un sistema como el ilustrado en la Fig. 1.
La Fig. 5 ilustra gráficamente un mapa de distorsión que puede generarse mediante los procedimientos de las FIGS. 4A y 4B.
La Fig. 6 ilustra gráficamente regiones de predicción utilizados para estimar una parte de vídeo como se utiliza en los procedimientos de predicción por compensación de movimiento.
La Fig. 7 es un diagrama de bloques funcional que ilustra una forma de realización de un dispositivo codificador que puede utilizarse en un sistema como el ilustrado en la Fig. 1.
La Fig. 8 es un diagrama de bloques funcional que ilustra una forma de realización de un dispositivo codificador que puede utilizarse en un sistema como el ilustrado en la Fig. 1.
Descripción detallada de algunas formas de realización
La siguiente descripción detallada se refiere a algunas formas de realización de muestra de la solicitud. Sin embargo, la solicitud puede realizase de múltiples maneras diferentes como definen y abarcan las reivindicaciones. En esta descripción, se hace referencia a los dibujos en los que partes similares se indican con números de referencia similares en todo el documento.
Las señales de vídeo pueden caracterizarse en términos de una serie de imágenes, tramas, campos o partes. Tal y como se utiliza en la presente memoria, el término "trama" es un término general que puede abarcar tramas de una señal de vídeo progresiva, campos de una señal de vídeo entrelazada, o partes de cualquiera de ellas.
Las formas de realización incluyen unos sistemas y procedimiento de mejora del procesamiento en un codificador en un sistema de transmisión multimedia. Los datos multimedia pueden incluir uno o más de vídeo en movimiento, audio, imágenes fijas, o cualquier otro tipo adecuado de datos audiovisuales. Las formas de realización incluyen un aparato y un procedimiento de codificación de datos de vídeo. Por ejemplo, un aspecto comprende un procedimiento de codificación de datos de vídeo que limita los efectos de la propagación de errores y mejora el rendimiento del ocultamiento de errores durante la decodificación. En particular, se ha descubierto que estimando un valor de distorsión para una parte de datos multimedia en base a uno o más procedimientos de ocultamiento que pueden utilizarse para ocultar la parte de datos multimedia si la parte fuese recibida erróneamente, y determinando un procedimiento de codificación para la parte de datos multimedia en base al valor de distorsión estimado, podrían mejorarse la calidad del vídeo decodificado, la capacidad de recuperación de errores y/o la eficacia de la decodificación.
Fig. 1 es un diagrama de bloques que ilustra un sistema de comunicación multimedia 100 según un aspecto. El sistema 100 incluye un dispositivo codificador 110 en comunicación con un dispositivo decodificador 150 a través de una red 140. En un ejemplo, el dispositivo codificador recibe una señal multimedia desde una fuente externa 102 y codifica esa señal para la transmisión en la red 140.
En este ejemplo, el dispositivo 110 comprende un procesador 112 acoplado a una memoria 114 y un transceptor 116. El procesador 112 puede incluir uno o más de un procesador de propósito general y/o un procesador digital de señal. La memoria 114 puede incluir uno o más de un almacenamiento basados en estado sólido y/o en disco. El procesador 112 codifica datos de una fuente de datos multimedia y proporciona los mismos al transceptor 116 para la comunicación a través de la red 140.
En este ejemplo, el dispositivo decodificador 150 comprende un procesador 152 acoplado a una memoria 154 y un transceptor 156. El procesador 152 puede incluir uno o más de un procesador de propósito general y/o un procesador digital de señal. La memoria 154 puede incluir uno o más de un almacenamiento basado en estado sólido y/o en disco. El transceptor 156 se configura para recibir datos multimedia en una red 140 y proporcionar los mismos al procesador 152 para la decodificación. En un ejemplo, el transceptor 156 incluye un transceptor inalámbrico. La red 140 puede comprender uno o más de un sistema de comunicación por cable o inalámbrico, incluyendo uno o más de sistemas Ethernet, teléfono (p. ej., POTS), cable, línea eléctrica, y fibra óptica, y/o un sistema inalámbrico que comprende uno o más sistemas de comunicación de acceso múltiple por división de código (CDMA o CDMA2000), un sistema de acceso múltiple por división de frecuencia (FDMA), un sistema de acceso múltiple por división de frecuencia ortogonal (OFDM), un sistema de acceso múltiple por división de tiempo (TDMA) como GSM/GPRS (Servicio General de Paquetes Vía Radio)/EDGE (entorno GSM para datos mejorados), un sistema de telefonía móvil TETRA (Radio Troncal Terrestre), un sistema de acceso múltiple por división de código de banda ancha (WCDMA), un sistema de alta tasa de datos (1xEV-DO o 1xEV-DO Gold Multicast), un sistema IEEE 802.11, un sistema MediaFLO, un sistema DMB, o un sistema DVB-H.
La Fig. 2 es un diagrama de bloques que ilustra una forma de realización del dispositivo codificador 110 que puede utilizarse en un sistema como el sistema 100 ilustrado en la Fig. 1. En esta forma de realización, el codificador 110 comprende un elemento estimador de valores de distorsión 202, un determinador del procedimiento de codificación 204, y un elemento codificador multimedia 206. El estimador de valores de distorsión 202 estima un valor de distorsión para partes de datos multimedia que están siendo codificados. El valor de distorsión se basa en parte en la propagación de errores de otras partes de vídeo de las que se predice la parte actual y la probabilidad de que las otras partes sean recibidas erróneamente. El valor de distorsión también incluye un componente de distorsión debido a errores introducidos en el decodificador al tiempo que oculta la parte de los datos de vídeo si fuesen recibidos erróneamente. El estimador de valores de distorsión puede considerar múltiples procedimientos de codificación y calcular valores de distorsión para cada uno de los procedimientos de codificación.
El determinador del procedimiento de codificación 204 determina un procedimiento de codificación que se utilizará para codificar la parte de los datos de vídeo en base al valor de distorsión estimado. El determinador del procedimiento de codificación 204 y el estimador del valor de distorsión 202 pueden trabajar conjuntamente para calcular los múltiples valores de distorsión para los múltiples procedimientos de codificación (por ejemplo múltiples procedimientos de inter-codificación) y tomar el procedimiento de codificación que resulte en la menor distorsión. El determinador del procedimiento de codificación puede comparar el valor de distorsión con un umbral y, en base a la comparación, determinar que se requiere otro procedimiento de codificación. El otro procedimiento de codificación puede ser un procedimiento de codificación relacionado con el refresco del flujo de vídeo, como la intra-codificación. El otro procedimiento de codificación también puede ser otra forma de inter-codificación que resulte en un menor valor de distorsión como se estima mediante el estimador de valores de distorsión 202. El determinador del procedimiento de codificación también puede considerar la complejidad computacional junto con el valor de distorsión al determinar un procedimiento de codificación que proporcione una distorsión aceptable y no exceda de un nivel de complejidad computacional.
El codificador multimedia 206 lleva a cabo el procedimiento de codificación que se determinó en base al valor de distorsión. Los procedimientos de codificación llevados a cabo por el codificador multimedia 206 incluyen la inter-codificación donde las partes del vídeo se predicen temporalmente (p. ej., utilizando una predicción por compensación de movimiento) en referencia a otras partes de los datos de vídeo situados en otras tramas temporales. Otros procedimientos de codificación incluyen la intra-codificación, donde las partes de vídeo se codifican de manera que puedan ser decodificadas independientemente sin referencia a otros datos de vídeo situados temporalmente. En algunas formas de realización, la intra-codificación puede utilizar una predicción espacial para aprovechar la redundancia en los demás datos de vídeo situados en la misma trama temporal.
En algunas formas de realización, uno o más de los elementos del codificador 110 de la Fig. 2 pueden reconfigurarse y/o combinarse. Los elementos pueden implementarse mediante hardware, software, firmware, middleware, microcódigo o cualquier combinación de los mismos. Los detalles de las acciones llevadas acabo por los elementos del codificador 110 se analizarán en referencia a los procedimientos ilustrados en la Fig. 4 más adelante.
La Fig. 3 es un diagrama de bloques que ilustra una forma de realización del dispositivo decodificador 150 que puede utilizarse en un sistema como el sistema 100 ilustrado en la Fig. 1. En esta forma de realización, el dispositivo decodificador 150 incluye un elemento decodificador multimedia 302 y un elemento de ocultamiento de errores 304. El decodificador multimedia 302 decodifica un flujo de bits multimedia codificado tal como fue codificado utilizando el dispositivo codificador 110 de la Fig. 2. El decodificador multimedia lleva a cabo una operación inversa correspondiente a las operaciones de codificación utilizadas para codificar los datos. Los datos codificados pueden ser datos inter-codificados (p. ej. datos predichos temporalmente) y/o datos intra-codificados.
El elemento de ocultamiento de errores 304 lleva a cabo diversas formas de ocultamiento de error que son utilizadas para ocultar o tapar partes de vídeo que se reciben erróneamente o bien no son decodificables (p. ej., debido a la pérdida de sincronización). Los procedimientos de ocultamiento pueden incluir el ocultamiento de errores espaciales, ocultamiento de errores temporales y otros procedimientos. Los procedimientos de ocultamiento utilizados pueden ser los mismos o similares a los procedimientos de ocultamiento de errores modelados al estimar los valores de distorsión en el estimador de valores de distorsión 202 del dispositivo codificador 110 de la Fig. 2. Mientras que el presente aspecto no requiere los mismos procedimientos de ocultamiento o procedimientos similares, el uso de tales mismos procedimientos de ocultamiento o procedimientos similares en el dispositivo decodificador 150 como fueron modelados en el dispositivo codificador puede resultar en la mejora de la calidad del vídeo decodificado. Además de llevar a cabo el ocultamiento de errores, el elemento de ocultamiento de errores 304 puede llevar a cabo funciones de recuperación de errores. La recuperación de errores puede llevarse a cabo en secciones de datos que son determinados como erróneos en un intento de extraer partes útiles (p. ej., libres de errores). Estas partes extraídas también pueden ser utilizadas en el ocultamiento de errores por el elemento de ocultamiento de errores 304.
En algunas formas de realización, uno o más de los elementos del decodificador 150 de la Fig. 3 pueden reconfigurarse y/o combinarse. Los elementos pueden implementarse mediante hardware, software, firmware, middleware, microcódigo o cualquier combinación de los mismos. Los detalles de las acciones llevadas a cabo por los elementos del decodificador 150 están más allá del alcance de este análisis.
La Fig. 4A es un diagrama de flujo que ilustra un ejemplo de un procedimiento de codificación de una parte de un flujo de vídeo en un sistema como el ilustrado en la Fig. 1. En este ejemplo, el procedimiento estima un valor de distorsión para una parte de vídeo que está siendo codificada. El valor de distorsión se basa en una probabilidad de que la parte codificada sea recibida erróneamente en un decodificador y el error causado por un procedimiento de ocultamiento que se utiliza para ocultar la parte errónea. Basando el valor de distorsión en un procedimiento de ocultamiento decodificador, el flujo de bits de vídeo codificados puede ser más robusto a efectos de propagación de errores en el decodificador, lo que puede mejorar la calidad del vídeo decodificado. El procedimiento en este ejemplo también puede determinar un procedimiento de codificación en base al valor de distorsión estimado. El procedimiento de codificación puede determinarse para minimizar el valor de distorsión entre una pluralidad de procedimientos de codificación. El procedimiento de codificación puede determinarse en base a mejorar la posibilidad de recuperación de la parte de vídeo en el decodificador. El procedimiento de codificación puede determinarse para refrescar la parte de vídeo para limitar la propagación de errores en el decodificador.
En referencia a la Fig. 4A, el procedimiento 400 comienza en el bloque 402 donde un dispositivo de codificación estima un valor de distorsión para una parte de los datos multimedia. La parte de datos multimedia puede ser un píxel (p. ej., luma y croma, o rojo, verde y azul, etc.), un bloque de píxeles o una región de cualquier forma y tamaño de uno o más píxeles. El valor de distorsión se basa por lo menos en parte en un componente de distorsión relacionado con un procedimiento de ocultamiento de errores que puede utilizarse para ocultar la parte de vídeo si se recibe erróneamente. El valor de distorsión puede incluir componentes de múltiples procedimientos de ocultamiento. Por ejemplo, un componente puede representar la distorsión introducida por un primer procedimiento de ocultamiento utilizado si sólo la parte que está siendo codificada es recibida erróneamente. En otras palabras, se supone que todos los demás datos de vídeo que podría utilizar un dispositivo decodificador para predecir una parte oculta (denominada datos de predicción) se reciben libres de errores. Otros componentes del valor de distorsión pueden incluir una distorsión introducida por un segundo o tercer procedimiento de ocultamiento, donde estos procedimientos de ocultamiento pueden ser utilizados por un decodificador si una o más partes de predicción son recibidas erróneamente. Los procedimientos de ocultamiento pueden incluir el ocultamiento espacial, el ocultamiento temporal y otras formas de ocultamiento. Más adelante se analizarán los detalles de un procedimiento para estimar un valor de distorsión que incluye un ocultamiento temporal. El estimador de valores de distorsión 202 del dispositivo codificador 110 en la Fig. 2 puede llevar a cabo las acciones en el bloque 402.
En algunos ejemplos, un valor de distorsión se calcula en el bloque 402 para cada bloque en una trama de datos. Los bloques pueden ser macrobloques (p. ej., macrobloques de 16x16 píxeles), o sub-macrobloques de cualquier tamaño. Los valores de distorsión para cada bloque en una trama pueden almacenarse en un mapa de distorsión. La Fig. 5 ilustra gráficamente un mapa de distorsión que puede generarse en el bloque 402. El mapa de distorsión 500 contiene múltiples variables de valores de distorsión 505 (indicadas como dv1-dv16), una para cada bloque en una trama. El mapa de distorsión 500 de una trama anterior puede utilizarse para calcular los valores de distorsión en una nueva trama. De esta manera, puede calcularse fácilmente la distorsión acumulativa. Si se determina que cualquier bloque debe ser refrescado, p. ej., intra-codificado, el valor de distorsión de ese bloque puede establecerse a cero, o al valor de distorsión debido a la cuantificación o algún otro factor.
En el bloque 404, el dispositivo codificador determina un procedimiento de codificación a ser utilizado por la parte de los datos multimedia en base al valor de distorsión estimado. En algunos ejemplos, los valores de distorsión se calculan en el bloque 402 para múltiples procedimientos de codificación como parte de un cálculo del grado de distorsión que se utiliza para elegir qué procedimiento de codificación de los múltiples procedimientos se va a utilizar. Por ejemplo, puede determinarse el procedimiento de codificación que resulta en el valor de distorsión mínimo (en el bloque 404) a utilizar para codificar la parte de los datos multimedia. En otros ejemplos, los valores de distorsión se calculan en base a un primer procedimiento de codificación (bien inter-codificado o intra-codificado), y se utilizan los valores de distorsión para determinar los bloques que deberían ser intra-codificados, como se ha realizado en el Intra-Refresco Adaptativo (AIR). Por ejemplo, el valor de distorsión que corresponde a una parte puede calcularse después de que una decisión basada en el grado de distorsión haya resultado en el descubrimiento del vector o vectores de movimiento y modo de codificar la parte óptimos. Si el valor de distorsión obtenido de esta manera es mayor que un umbral, entonces se puede determinar intra-codificar la parte utilizando uno de los modos de intra-codificación, p. ej., intra-codificación de 4x4 píxeles o intra-codificación de 16x16 píxeles. De esta manera, se refresca la parte de multimedia. Además de formar modos de intra-codificación, también se pueden determinar algunos modos de inter-codificación (P8x8, P16x16, P16x8, P8x16, etc.) en base al valor de distorsión en algunos casos, aunque estos puedan no resultar en un vídeo refrescado. Hay que reseñar que algunos de los bloques del procedimiento 400 pueden combinarse, omitirse, reconfigurarse o cualquier combinación de los mismos. Más adelante se analizan los detalles de algunas formas de realización de determinación del procedimiento de codificación en el bloque 404, en referencia a la Fig. 4B.
A continuación se analizarán los detalles de un algoritmo de ejemplo para estimar el valor de distorsión en el bloque 402. El valor de distorsión en este ejemplo se relaciona con un procedimiento de ocultamiento temporal que oculta una parte errónea de multimedia que utiliza partes de otras dos tramas, por ejemplo, una trama anterior y una trama posterior. Sin embargo, pueden representarse otros procedimientos de ocultamiento utilizando procedimientos similares.
El algoritmo de ejemplo calcula un valor de distorsión recursivo del valor de distorsión esperado (es decir, expectativa estadística) de las partes predichas unidireccionalmente (como en las Tramas P) de vídeo. Otras partes como las partes intra-codificadas y las partes predichas bidireccionalmente pueden también representarse mediante algoritmos similares. El algoritmo se basa en parte en una probabilidad asumida de que se pierda el MB actual (definido como una probabilidad "P") y una probabilidad de que se pierdan los indicadores utilizados por un procedimiento de ocultamiento (definido como una probabilidad "Q"). Puesto que por lo menos una de las probabilidades asumidas P y Q aumenta, el algoritmo tiende más hacia proporcionar un ocultamiento/resistencia a los errores buena mientras sacrifica la eficiencia de compresión. Ocurre lo contrario cuando uno disminuye por lo menos una de las probabilidades P y Q.
El algoritmo calcula un valor de distorsión esperado para una parte de los datos multimedia. La parte de los datos multimedia pude ser cualquier número de píxeles y cualquier forma. Se analizará el ejemplo en referencia a la parte que es un Macrobloque (MB) de 16x16 píxeles, pero hay que reseñar que también pueden representarse otras partes. En una forma de realización, el algoritmo se utiliza para estimar un valor de distorsión esperado para cada MB de una trama para formar un mapa de distorsión como se ha analizado anteriormente en referencia a la Fig. 5. El valor de distorsión esperado en este ejemplo se calcula de una manera recursiva y que se adapta al movimiento. Aunque este mapa de distorsión esperado no es exactamente la medida de distorsión MSE o L_{1}-norm, se espera que se correlacione razonablemente bien con estas medidas.
La siguiente notación se utiliza para el análisis del algoritmo de valores de distorsión:
D_{t}^{i,j} =
valor de distorsión acumulativo del macrobloque nº (ij) en la trama nº "t"
P =
Probabilidad de que se pierda el MB actual
Q =
Probabilidad de que se pierda un indicador utilizado por el procedimiento de ocultamiento relacionado.
\vskip1.000000\baselineskip
Dados estos supuestos, el MB actual se recibe sin ningún error a una probabilidad igual a (1-P). En la predicción unidireccional, el MB actual se codifica en referencia a una parte de tamaño de MB de otra trama, la trama anterior en este ejemplo. Un vector de movimiento MV da las posiciones relativas, o situaciones, del MB actual y la parte de referencia de tamaño de MB. La parte de referencia no estará generalmente alineada con las fronteras de un MB, pero se solapará hasta con cuatro regiones de cuatro MBs. La Fig. 6 ilustra gráficamente las regiones de predicción utilizadas para estimar una parte de vídeo utilizando los procedimientos de predicción por compensación de movimiento. Un vector de movimiento 605 apunta a una región de predicción de tamaño de MB 610 hecha de cuatro partes de área indicadas como a1, a2, a3 y a4. Las partes de área a1-a4, se encuentran dentro de cuatro MBs 615, 620, 625 y 630, respectivamente. Los valores de distorsión de los MBs 615-630 pueden obtenerse a partir de una versión almacenada del mapa de distorsión de la trama anterior. En este ejemplo, se calcula el peso medio de los valores de distorsión acumulativos de las cuatro partes de área a1-a4 en la región de predicción 610 (p. ej., en base al número de píxeles en cada parte de área) para calcular el valor de distorsión del MB actual. De esta manera, el valor de distorsión esperado estimado del macrobloque actual debido a la propagación de errores acumulativo viene dado por:
1
Donde a_{1}, a_{2}, a_{3}, a_{4} son las cuatro partes de área según se ilustra en la Fig. 6. Adviértase que el valor de distorsión dado por la fórmula (1) se normaliza dividiendo el peso medio de la región de 16x16 píxeles por 256.
Además de la distorsión acumulativa de las regiones de predicción de la trama anterior, el algoritmo estima los componentes del valor de distorsión debidos al ocultamiento del MB actual, si el MB actual es recibido erróneamente. Como se ha analizado anteriormente, se da por hecho que el MB actual es recibido erróneamente con una probabilidad de P. La distorsión en la que incurre el macrobloque actual debido a un procedimiento de ocultamiento puede ser aproximadamente la suma del error de ocultamiento (el error introducido por el procedimiento de ocultamiento e indicado por el término Conceal_Error) y los efectos debidos a la propagación de errores desde las regiones de predicción utilizadas por el procedimiento de ocultamiento. Como se ha indicado anteriormente, se da por hecho que los indicadores (p. ej., de las tramas actual y/o pasadas) están disponibles con una probabilidad de 1-Q. En este ejemplo, se da por hecho que el procedimiento o procedimientos de ocultamiento dependen de la disponibilidad de los datos en la trama actual y una trama anterior. Se da por hecho que la región de predicción se encuentra en la trama anterior, como indican los términos de distorsión acumulativa D_{t-1}^{i,j}. Sin embargo, esto es sólo un ejemplo y las regiones de predicción pueden encontrarse en la trama actual o en cualquier otra trama disponible. De esta manera, la distorsión en la que se ha incurrido debido a un procedimiento de ocultamiento de errores temporal que utiliza regiones de predicción de la trama anterior, donde la parte que está siendo ocultada es errónea con una probabilidad de P, y que depende de la disponibilidad de los datos de predicción en la trama actual y la trama anterior (ambas disponibles con una probabilidad de 1-Q) puede calcularse como:
2
Los cálculos de los errores por ocultamiento pueden ser computacionalmente complejos. Sin embargo, bajo algunos supuestos razonables, pueden aproximarse como una diferencia en los siguientes valores de SAD (suma de diferencias acumuladas en valores de píxeles):
SAD_{opt}:
SAD obtenida entre la imagen original y la imagen comprimida cuando se utilizan el MV óptimo y el modo de codificación óptimo.
SAD_{est}:
SAD obtenida entre la imagen original y la imagen oculta cuando se utiliza el MV estimado (estimado por el algoritmo de ocultamiento temporal).
\vskip1.000000\baselineskip
Esta aproximación puede escribirse como sigue:
3
Donde a_{1}', a_{2}', a_{3}', a_{4}' son cuatro partes de área en la trama anterior (como se ilustra en la Fig. 6) que se utilizaron como la predicción de la parte de ocultamiento y se utilizan para obtener el peso medio de la distorsión acumulativa. Adviértase que el valor de distorsión dado por la fórmula (3) también se normaliza dividiendo el peso medio de la región de 16x16 píxeles por 256.
Adviértase que, cuando se utiliza la fórmula (3), la SAD_{est} puede resultar menor que LA SAD_{opt} en algunos casos (debido a imprecisiones de compensación de movimiento, por ejemplo), pero la diferencia puede ser insignificantemente pequeña y en esos casos el componente Conceal_Error puede aproximarse a cero.
La fórmula (3) representa un componente del valor de distorsión que se corresponde con el procedimiento de ocultamiento utilizado cuando tanto la trama actual como la trama anterior están disponibles (donde cada una se da con una probabilidad de 1-Q). Sin embargo, pueden existir diferentes errores de ocultamiento si alguna de las tramas actual y/o pasada o todas ellas son recibidas erróneamente, donde cada una se da con una probabilidad de Q. Se pueden tener en cuenta los componentes del valor de distorsión correspondientes a cuatro estimaciones de ocultamiento diferentes, donde las cuatro estimaciones de ocultamiento se corresponden con cuatro escenarios 1) trama actual disponible y trama anterior disponible, 2) trama actual disponible pero trama anterior errónea, 3) trama actual errónea pero trama anterior disponible y 4) tanto la trama actual como la trama anterior son erróneas. Los detalles relacionados con el cálculo de las cuatro estimaciones de ocultamiento no son cruciales para la comprensión del cálculo del valor de distorsión, y no se analizarán en la presente memoria. La distorsión acumulativa que incluye los cuatro componentes de los valores de distorsión puede calcularse como:
\vskip1.000000\baselineskip
4
40
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
5
Donde la primera estimación del ocultamiento resulta en una distorsión de 50 y la segunda estimación de ocultamiento resulta en una distorsión de 51 etcétera. Además, se calculan los pesos medios de las distorsiones acumulativas en base a las áreas (a', a'', a''' y a'''') de las regiones de predicción utilizadas en cada una de las cuatro estimaciones de ocultamiento. Las estimaciones de ocultamiento pueden basarse en diferentes tipos de procedimientos de ocultamiento como el ocultamiento espacial, ocultamiento bidireccional, etc. Por ejemplo, un algoritmo de ocultamiento puede ocultar temporalmente unas veces y espacialmente otras veces, dependiendo de los criterios determinísticos/probabilísticos. El dispositivo codificador que lleva a cabo el cálculo del valor de distorsión y que determina qué procedimiento de codificación utilizar en base al valor de distorsión puede modelar el mismo procedimiento o procedimientos similares de ocultamiento que se utilizan en un decodificador para mejorar el rendimiento del ocultamiento de errores y/o recuperación de errores cuando el decodificador recibe datos erróneos.
Adviértase que se pueden considerar e incluir otras estimaciones de ocultamiento en la Ecuación (4) en base a las probabilidades de que otras regiones de predicción no estén disponibles. Se puede utilizar la Ecuación (4) para cada MB en una trama para formar el mapa de distorsión como se ilustra en la Fig. 5. De esta manera, los valores de distorsión calculados utilizando la Ecuación (4) comprenden una suma ponderada de las distorsiones en las que se incurre eligiendo múltiples opciones de ocultamiento, donde el peso es la probabilidad de cada opción de ocultamiento elegida.
La Fig. 4B es un diagrama de flujo que ilustra en mayor detalle un ejemplo de un procedimiento de codificación de una parte de un flujo de vídeo en un sistema como el ilustrado en la Fig. 1. El procedimiento 420 incluye los bloques 402 y 404 como se ha analizado anteriormente en referencia a la Fig. 4A incluyendo diversos procedimientos de ocultamiento que pueden considerarse cuando se estima el valor de distorsión en el bloque 402 y diversos procedimientos de determinación del procedimiento de codificación en el bloque 404.
En el bloque 402, el valor de distorsión puede estimares utilizando unos algoritmos similares a los analizados anteriormente en referencia a la Ecuación (4). Las ecuaciones exactas del valor de distorsión utilizadas dependen del tipo de procedimiento de ocultamiento que se está representando. Los procedimientos de ocultamiento representados pueden incluir procedimientos de ocultamiento espacial donde las partes de predicción situadas en la misma trama se utilizan para ocultar una parte recibida erróneamente. En el caso de un ocultamiento espacial dentro de una trama, los valores de distorsión acumulativos de los MBs en la trama actual se utilizan en lugar de los valores de distorsión de la trama anterior. Los procedimientos de ocultamiento temporal pueden incluir una predicción unidireccional como se ha analizado anteriormente y como se ha representado por la Ecuación (4), y también pueden incluir una predicción bidireccional donde también puede considerarse la disponibilidad de una trama posterior.
Un ejemplo de un procedimiento de ocultamiento temporal es el escalado del vector de movimiento. El escaldo del vector de movimiento es un procedimiento que interpola y/o extrapola los vectores de movimiento de otras tramas para deducir un vector de movimiento para una parte de los datos multimedia erróneos en una trama actual. Otro ejemplo de un procedimiento de ocultamiento temporal es la conversión de la velocidad de tramas. La conversión de la velocidad de tramas puede ser similar al escalado del vector de movimiento, pero implica la construcción de una trama completa en base a, por lo general, dos tramas circundantes. Otros ejemplos de procedimientos de ocultamiento temporal de errores pueden basarse en procedimientos de flujo óptico. Otras formas de ocultamiento que pueden representarse por el valor de distorsión estimado en el bloque 402 incluyen la interpolación en el dominio frecuencial y espacial, la recuperación máximamente y la proyección en conjuntos convexos. Los tecnólogos expertos reconocerán otras formas de ocultamiento de errores que pueden representarse cuando se estima el valor de distorsión en el bloque 402 del procedimiento 400.
Como se ha analizado anteriormente, el dispositivo codificador determina, en el bloque 404, un procedimiento de codificación basado en el valor de distorsión que se estimó en el bloque 402. En algunas formas de realización, el valor de distorsión estimado se compara con un umbral y se determina el procedimiento de codificación en base a la comparación. El umbral puede ser un valor único para todas las partes de los datos multimedia. Sin embargo, el umbral también puede variar según los procedimientos como los indicados en el bloque 404 del procedimiento 420. Estos procedimientos se analizarán en relación a la determinación de un procedimiento de codificación basado en exceder un umbral, donde el procedimiento de codificación elegido si se excede el umbral servirá generalmente para refrescar la parte (o por lo menos disminuir el valor de distorsión estimado de la parte). Sin embargo, hay que reseñar que los procedimientos de codificación también pueden determinarse en base a un valor de distorsión que esté por debajo de un umbral.
En algunos ejemplos, el umbral se varía como una función de una textura de un área en la que se sitúa la parte multimedia que está siendo codificada. Las áreas con una textura altamente variable (p. ej., grandes variaciones de píxel a píxel) pueden no mostrar tantos errores como las áreas con una textura menos variada, y por tanto se les puede asignar un umbral más alto sobre el que poder determinar el procedimiento de codificación para refrescar la parte (p. ej., utilizando la intra-codificación). Sin embargo, las áreas con una textura más lisa o poco variada pueden mostrar más errores y por tanto se les puede asignar un umbral más bajo.
En algunos ejemplos, el umbral puede variarse como una función de la posición, o situación, de la parte que está siendo codificada dentro de una trama. Por ejemplo, se puede asignar a las partes en los bordes un umbral más elevado que a las partes en medio. De esta manera, las áreas donde más frecuentemente mira un observador (p. ej., el centro de la trama) pueden refrescarse con mayor frecuencia que las áreas del borde donde no se mira tan frecuentemente.
En algunos ejemplos, el umbral puede ser una función de la posición de la trama que actualmente está siendo codificada dentro de un GOP (grupo de imágenes) o una supertrama de múltiples tramas. Un GOP generalmente empieza con una trama intra-codificada o un conjunto de tramas que incluyen prácticamente todos los MBs dentro de una trama que está siendo intra-codificada por lo menos una vez (conocido como intra-refresco adaptativo o AIR) y donde las demás tramas en el GOP (o supertrama) no hacen referencia a tramas fuera del GOP. Para asegurar que los MBs tienen una mayor oportunidad de ser intra-codificados al comienzo de un GOP, el umbral en las tramas cercanas al inicio del GOP pueden tener un umbral más bajo que los MBs cercanos al final del GOP.
En algunos ejemplos, el umbral puede ser una función de la distribución de los valores de distorsión, en el mapa de distorsión, por ejemplo, dentro de una trama. Por ejemplo, el umbral puede establecerse de manera adaptativa para garantizar que un porcentaje de MBs dentro de la trama está intra-codificado en base a la distribución de los valores de distorsión. Esto puede utilizarse para limitar el número de MBs intra-codificados para limitar la tasa de datos necesaria para la transmisión. A pesar de que pueda degradarse la calidad para algunas tramas (debido a una elevada distribución de los valores de distorsión), la tasa de datos puede mantenerse a un nivel deseado.
En algunos ejemplos, el umbral puede ser una función de la actividad de movimiento en un área de la trama que contiene la parte que está siendo codificada. Los errores que se producen en áreas de vídeo que se caracterizan por una mayor actividad de movimiento tienden a ser menos perceptibles que los errores que se producen en áreas caracterizadas por poco movimiento. El umbral puede establecerse a valores más elevados en áreas con mayor actividad de movimiento que en áreas con menor actividad de movimiento. La actividad de movimiento puede medirse de muchas maneras. Por ejemplo, puede utilizarse la amplitud del vector de movimiento como un indicador de la actividad de movimiento donde vectores de movimiento de mayor amplitud indican una mayor actividad de movimiento. También puede utilizarse la variación de la dirección del vector de movimiento como indicador de la actividad de movimiento. Si la mayoría de los vectores de movimiento en un área están apuntando prácticamente en la misma dirección, esto puede ser un indicativo de una baja actividad de movimiento. Si los vectores de movimiento en bloques vecinos de un área están apuntando en diferentes direcciones, esto puede ser indicativo de una elevada actividad de movimiento. Pueden obtenerse medidas de actividad de movimiento similares utilizando otras técnicas de compensación de movimiento como el flujo óptico.
En algunos ejemplos, el umbral puede ser una función del modo de codificación de la parte de vídeo que está siendo codificada. Por ejemplo, algunas partes de vídeo por lo general no se utilizan como una referencia para otras partes predichas del vídeo. Las tramas B, por ejemplo, no se utilizan para tramas de referencia en muchos sistemas. De esta manera, el valor de distorsión de las tramas B en este tipo de sistema podría permitirse que fuera más elevado dado que ningún otro vídeo las referenciará. Dado que ningún otro vídeo referenciará a las tramas B, los errores persistirán únicamente para una duración de una trama (p. ej., 1/30avo de segundo en una secuencia de vídeo de 30 tramas por segundo). De esta manera, el umbral podría ser superior para partes no referenciadas de vídeo que para partes de vídeo que puedan ser referenciadas por otras partes predichas.
Una vez que se ha determinado el procedimiento de codificación, en el bloque 404, en base al valor de distorsión estimado en el bloque 402, el proceso 420 continúa en el bloque 406, donde la parte de datos multimedia que están siendo codificados se codifica con el procedimiento de codificación determinado. Los procedimientos de codificación en el bloque 406 pueden incluir la intra-codificación con o sin la predicción espacial de bloques vecinos. Puede elegirse la intra-codificación sin predicción espacial de píxeles vecinos con el fin de reducir el valor de distorsión calculado en el bloque 402. Los procedimientos de codificación en el bloque 406 pueden incluir la predicción unidireccional o bidireccional utilizando la predicción por compensación de movimiento. Pueden elegirse diferentes formas de predicción por compensación de movimiento sobre otros con el fin de reducir el valor de distorsión estimado en el bloque 402. La predicción por compensación de movimiento puede incluir el ajuste de bloques o "block matching", flujo óptico y otros procedimientos para calcular los vectores de movimiento tal y como se ha analizado anteriormente. Hay que reseñar que algunos de los bloque del procedimiento 402 pueden ser combinados, omitidos, reconfigurados o cualquier combinación de los mismos.
La Fig. 7 es un diagrama de bloques funcionales que ilustra un ejemplo de un dispositivo codificador 110 que puede utilizarse en un sistema como el ilustrado en la Fig. 1. Este aspecto incluye unos medios para estimar un valor de distorsión para una primera parte de datos multimedia en base a por lo menos en parte uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente, y unos medios para determinar un procedimiento de codificación para la primera parte en base a por lo menos en parte el valor de distorsión estimado. Algunos ejemplos de este aspecto incluyen dónde comprenden los medios de estimación un estimador 702 de valores de distorsión, y dónde comprenden los medios de determinación un determinador 704 de procedimientos de codificación.
La Fig. 8 es un diagrama de bloques funcionales que ilustra un ejemplo de un dispositivo codificador 110 que puede utilizarse en un sistema como el ilustrado en la Fig. 1. Este aspecto incluye unos medios para la estimación de un valor de distorsión para una primera parte de los datos multimedia en base a por lo menos en parte uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente, y unos medios para la determinación de un procedimientos de codificación para la primera parte en base a por lo menos en parte el valor de distorsión estimado. En algunos ejemplos de este aspecto, los medios de estimación comprenden un módulo para la estimación del valor de distorsión 802 y los medios de determinación comprenden un módulo para la determinación del procedimiento de codificación 804.
Las personas capacitadas en la técnica entenderán que la información y las señales pueden representarse utilizando cualquiera de una diversidad de diferentes tecnologías y técnicas. Por ejemplo, los datos, las instrucciones, los comandos, la información, las señales, los bits, los símbolos y los chips que pueden referenciarse en la descripción anteriormente indicada pueden representarse mediante voltajes, corrientes, ondas electromagnéticas, partículas o campos magnéticos, partículas o campos ópticos, o cualquier combinación de los mismos.
Las personas capacitadas en la técnica apreciarán además que los diversos bloques lógicos, módulos y etapas de algoritmos ilustrativos descritos en conexión con los ejemplos descritos en la presente memoria pueden implementarse como hardware electrónico, firmware, software informático, middleware, microcódigo, o combinaciones de los mismos. Para ilustrar claramente esta intercambiabilidad de hardware y software, se han descrito anteriormente diversos componentes, bloques, módulos, circuitos y etapas ilustrativas generalmente en términos de su funcionalidad. El que dicha funcionalidad sea implementada como hardware o como software depende de las particulares restricciones de aplicación y diseño impuestas en el sistema completo. Los expertos en la materia pueden implementar la funcionalidad descrita de diversas maneras para cada aplicación particular, pero dichas decisiones de implementación no deberían interpretarse como causantes de alejamiento del alcance de los procedimientos descritos.
Los diversos bloques lógicos, componentes, módulos y circuitos ilustrativos descritos en conexión con los ejemplos descritos en la presente memoria pueden implementarse o llevarse a cabo con un procesador de propósito general, un procesador digital de señal (DSP), un circuito integrado para aplicaciones específicas (ASIC), una matriz de puertas programables (FPGA) u otro dispositivo lógico programable, puerta discreta o lógica de transistores, componentes hardware discretos, o cualquier combinación de los mismos diseñada para llevar a cabo las funciones descritas en la presente memoria. Un procesador de propósito general puede ser un microprocesador, pero alternativamente, el procesador puede ser cualquier procesador convencional, controlador, microcontrolador, o máquina de estados. Un procesador también puede implementarse como una combinación de dispositivos informáticos, p. ej., una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores conjuntamente con un núcleo DSP o un núcleo ASIC, o cualquier otra configuración.
Las etapas de un procedimiento o algoritmo descritas en conexión con los ejemplos descritos en la presente memoria pueden realizarse directamente en hardware, en un módulo software ejecutado por un procesador, o en una combinación de los dos. Un módulo software puede residir en memoria RAM, memoria flash, memoria ROM, memoria EPROM, memoria EEPROM, registros, disco duro, un disco extraíble, un CD-ROM, un medio de almacenamiento óptico, o cualquier otra forma de medio de almacenamiento conocida en la técnica. Un medio de almacenamiento de ejemplo se acopla al procesador de tal manera que el procesador puede leer información de, y escribir información a, el medio de almacenamiento. Alternativamente, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un Circuito Integrado Para Aplicaciones Específicas (ASIC). El ASIC puede residir en un modem inalámbrico. Alternativamente, el procesador y el medio de almacenamiento pueden residir como componentes discretos en el modem inalámbrico.
La anterior descripción de los ejemplos descritos se proporciona para permitir que cualquier persona capacitada en la técnica pueda hacer uso de los procedimientos y del aparato descritos. Se pondrán de manifiesto para los expertos en la materia diversas modificaciones a estos ejemplos, y los principios definidos en la presente memoria pueden aplicarse a otros ejemplos y pueden añadirse elementos adicionales.
De esta manera, se han descrito unos procedimientos y un aparato para llevar a cabo una codificación altamente efectiva de datos multimedia previendo una calidad de decodificación y ocultamiento de errores eficaces.

Claims (15)

1. Procedimiento de codificación de datos multimedia que comprende:
\quad
la estimación de un valor de distorsión para una primera parte de datos multimedia en base, en parte, a por lo menos uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente (402); y
\quad
la determinación de un procedimiento de codificación para la primera parte en base, en parte, a por lo menos una comparación del valor de distorsión estimado y un umbral;
\quad
caracterizado porque:
\quad
el umbral varía en función de uno o más factores seleccionados de una lista de factores (404), la lista de factores incluyendo:
\quad
una ubicación de la primera parte en una trama que contiene la primera parte,
\quad
una textura de un área de la trama que contiene la primera parte,
\quad
una posición de la trama que contiene la primera parte dentro de un grupo de imágenes que contienen la trama,
\quad
una distribución de valores de distorsión en la trama que contiene la primera parte, y
\quad
una actividad de movimiento del área de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
2. Procedimiento según la Reivindicación 1, que comprende adicionalmente la codificación de la primera parte utilizando el procedimiento de codificación (406) determinado.
3. Procedimiento según la Reivindicación 1, en el que la determinación del procedimiento de codificación comprende adicionalmente la determinación del procedimiento de codificación para refrescar la primera parte.
4. Procedimiento según la Reivindicación 3, en el que el umbral varía en función de uno o más factores seleccionados de una lista de factores, incluyendo adicionalmente la lista de factores:
\quad
un modo de codificación de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
5. Procedimiento según la Reivindicación 1, que comprende adicionalmente la intra-codificación de la primera parte para refrescar la primera parte en base a una comparación del valor de distorsión estimado y un umbral.
6. Procedimiento según la Reivindicación 1, que comprende adicionalmente la estimación del valor de distorsión de la primera parte en base, en parte, a por lo menos una probabilidad de error de los datos de predicción utilizados por el uno o más procedimientos de ocultamiento.
7. Procedimiento según la Reivindicación 1, que comprende adicionalmente la estimación del valor de distorsión para la primera parte en base, en parte, a por lo menos una diferencia en valores de píxeles entre una versión de la primera parte construida por el uno o más procedimientos de ocultamiento y una versión libre de errores de la primera parte.
8. Procedimiento según la Reivindicación 1, en el que la estimación del valor de distorsión de la primera parte comprende adicionalmente la estimación de los componentes de distorsión del valor de distorsión para cada uno de los uno o más procedimientos de ocultamiento.
9. Aparato de codificación de datos multimedia que comprende:
\quad
medios para estimar un valor de distorsión (802) para una primera parte de los datos multimedia en base, en parte, a por lo menos uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente; y
\quad
medios para determinar un procedimiento de codificación (804) para la primera parte en base, en parte, a por lo menos una comparación del valor de distorsión estimado y un umbral, caracterizado porque
\quad
el umbral varía en función de uno o más factores seleccionados de una lista de factores, incluyendo la lista de factores:
\quad
una ubicación de la primera parte en una trama que contiene la primera parte,
\quad
una textura de un área de la trama que contiene la primera parte,
\quad
una posición de la trama que contiene la primera parte dentro de un grupo de imágenes que contienen la trama,
\quad
una distribución de valores de distorsión en la trama que contiene la primera parte, y
\quad
una actividad de movimiento del área de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
10. Aparato según la Reivindicación 9, que comprende adicionalmente medios para codificar la primera parte utilizando el procedimiento de codificación determinado.
11. Aparato según la Reivindicación 9, en el que los medios de determinación determinan el procedimiento de codificación para refrescar la primera parte.
12. Aparato según la Reivindicación 11, en el que el umbral varía en función de uno o más factores seleccionados de la lista de factores, incluyendo adicionalmente la lista de factores:
\quad
un modo de codificación de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
13. Aparato según la Reivindicación 9, que comprende adicionalmente medios para la intra-codificación de la primera parte para refrescar la primera parte en base a una comparación del valor de distorsión estimado y un umbral.
14. Aparato según la Reivindicación 9, en el que el aparato es un procesador de datos multimedia.
15. Medio legible por máquina que comprende unas instrucciones que al ejecutarlas hacen que una máquina lleve a cabo un procedimiento según cualquiera de las reivindicaciones 1 a 8.
ES07710232T 2006-01-20 2007-01-19 Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. Active ES2336039T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76067806P 2006-01-20 2006-01-20
US760678P 2006-01-20

Publications (1)

Publication Number Publication Date
ES2336039T3 true ES2336039T3 (es) 2010-04-07

Family

ID=38169856

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07710232T Active ES2336039T3 (es) 2006-01-20 2007-01-19 Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores.

Country Status (11)

Country Link
US (1) US8325822B2 (es)
EP (1) EP1980115B1 (es)
JP (1) JP4908522B2 (es)
KR (1) KR20080098042A (es)
CN (1) CN101375602B (es)
AR (1) AR059105A1 (es)
AT (1) ATE450118T1 (es)
DE (1) DE602007003441D1 (es)
ES (1) ES2336039T3 (es)
TW (1) TW200737995A (es)
WO (1) WO2007084994A2 (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8325822B2 (en) 2006-01-20 2012-12-04 Qualcomm Incorporated Method and apparatus for determining an encoding method based on a distortion value related to error concealment
US8861585B2 (en) 2006-01-20 2014-10-14 Qualcomm Incorporated Method and apparatus for error resilience algorithms in wireless video communication
US8121189B2 (en) * 2007-09-20 2012-02-21 Microsoft Corporation Video decoding using created reference pictures
EP2051525A1 (en) * 2007-10-15 2009-04-22 Mitsubishi Electric Information Technology Centre Europe B.V. Bandwidth and content dependent transmission of scalable video layers
US9848209B2 (en) * 2008-04-02 2017-12-19 Microsoft Technology Licensing, Llc Adaptive error detection for MPEG-2 error concealment
US9788018B2 (en) * 2008-06-30 2017-10-10 Microsoft Technology Licensing, Llc Error concealment techniques in video decoding
US9924184B2 (en) * 2008-06-30 2018-03-20 Microsoft Technology Licensing, Llc Error detection, protection and recovery for video decoding
US9131241B2 (en) 2008-11-25 2015-09-08 Microsoft Technology Licensing, Llc Adjusting hardware acceleration for video playback based on error detection
JP5554831B2 (ja) * 2009-04-28 2014-07-23 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 歪みの重み付け
US8340510B2 (en) 2009-07-17 2012-12-25 Microsoft Corporation Implementing channel start and file seek for decoder
TWI412282B (zh) * 2009-11-17 2013-10-11 Univ Nat Cheng Kung 可隱藏傳輸錯誤之視訊解碼裝置與相關方法
EP2547106A4 (en) * 2010-01-14 2014-05-21 Sumitomo Electric Industries METHOD, DEVICE AND COMMUNICATION SYSTEM FOR DISPLAYING CODED VIDEO IMAGE DATA
US20110249127A1 (en) * 2010-04-07 2011-10-13 Cisco Technology, Inc. Estimating Video Quality Corruption in Lossy Networks
US9172979B2 (en) * 2010-08-12 2015-10-27 Net Power And Light, Inc. Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences
WO2012021173A2 (en) 2010-08-12 2012-02-16 Net Power And Light Inc. System architecture and methods for experiential computing
US9557817B2 (en) 2010-08-13 2017-01-31 Wickr Inc. Recognizing gesture inputs using distributed processing of sensor data from multiple sensors
US8429704B2 (en) 2010-10-21 2013-04-23 Net Power And Light, Inc. System architecture and method for composing and directing participant experiences
GB2487200A (en) 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
GB2491589B (en) 2011-06-06 2015-12-16 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of image
US9667942B2 (en) * 2012-11-20 2017-05-30 Qualcomm Incorporated Adaptive luminance compensation in three dimensional video coding
FR3000350A1 (fr) * 2012-12-21 2014-06-27 France Telecom Procede et dispositif de transmission d'une sequence d'images, procede et dispositif de reception, programme d'ordinateur et support d'enregistrement correspondants.
US9756356B2 (en) * 2013-06-24 2017-09-05 Dialogic Corporation Application-assisted spatio-temporal error concealment for RTP video
KR20240154105A (ko) * 2017-05-19 2024-10-24 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
CN117041563A (zh) * 2017-06-05 2023-11-10 松下电器(美国)知识产权公司 解码装置、编码装置、存储介质、解码方法和编码方法
CN109816615B (zh) * 2019-03-06 2022-12-16 腾讯科技(深圳)有限公司 图像修复方法、装置、设备以及存储介质
EP3829169B1 (en) * 2019-11-29 2021-10-13 Axis AB Method for intra refresh encoding of a plurality of image frames using convex and concave distribution functions
CN111935545B (zh) * 2020-08-03 2023-03-24 腾讯音乐娱乐科技(深圳)有限公司 转码视频数据的方法、装置、设备及存储介质
US11514641B2 (en) * 2021-03-03 2022-11-29 Qualcomm Incorporated Error concealment in split rendering using shading atlases
CN114630122B (zh) * 2021-03-19 2023-04-28 杭州海康威视数字技术股份有限公司 基于自适应帧内刷新机制的解码、编码方法及相关设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613015A (en) 1992-11-12 1997-03-18 Fuji Xerox Co., Ltd. Image signal analyzing system and coding system
US5627935A (en) 1994-11-11 1997-05-06 Samsung Electronics Co., Ltd. Error-correction-code coding & decoding procedures for the recording & reproduction of digital video data
US5793895A (en) 1996-08-28 1998-08-11 International Business Machines Corporation Intelligent error resilient video encoder
US6037985A (en) 1996-10-31 2000-03-14 Texas Instruments Incorporated Video compression
JP3223962B2 (ja) 1997-01-24 2001-10-29 松下電器産業株式会社 画像復号化方法
RU2217882C2 (ru) 1997-08-12 2003-11-27 Томсон Конзьюмер Электроникс, Инк. Устройство для сжатия блоков пикселов в системе обработки изображений
US6025888A (en) 1997-11-03 2000-02-15 Lucent Technologies Inc. Method and apparatus for improved error recovery in video transmission over wireless channels
JPH11331839A (ja) 1998-05-13 1999-11-30 Matsushita Electric Ind Co Ltd 映像伝送再送の装置及び方法
JP3748717B2 (ja) 1998-08-31 2006-02-22 シャープ株式会社 動画像符号化装置
US6466624B1 (en) 1998-10-28 2002-10-15 Pixonics, Llc Video decoder with bit stream based enhancements
JP3166736B2 (ja) 1998-11-25 2001-05-14 日本電気株式会社 動画像符号化装置および動画像符号化方法
GB2347038A (en) 1999-02-18 2000-08-23 Nokia Mobile Phones Ltd A video codec using re-transmission
JP2002016913A (ja) 2000-06-28 2002-01-18 Yamaha Corp トランスコーディング方法およびトランスコーディング装置
JP4644939B2 (ja) * 2001-01-17 2011-03-09 日本電気株式会社 動画像符号化装置および動画像符号化方法
EP1374430A4 (en) * 2001-03-05 2005-08-17 Intervideo Inc SYSTEMS AND METHODS FOR ROBUST ERROR CODING
US6795076B2 (en) 2001-06-28 2004-09-21 Sun Microsystems, Inc. Graphics system with real-time convolved pixel readback
JP2003032689A (ja) 2001-07-18 2003-01-31 Sharp Corp 画像符号化装置、画像復号化装置及び動画像伝送システム
US20030235249A1 (en) 2002-06-25 2003-12-25 Chengji Zhao Video encoder and method for encoding video frames
US7034888B2 (en) 2003-03-26 2006-04-25 Silicon Integrated Systems Corp. Method for motion pixel detection
GB0314161D0 (en) 2003-06-18 2003-07-23 British Telecomm Edge analysis in video quality assessment
US7835438B2 (en) 2003-12-22 2010-11-16 Nec Corporation Method and device for encoding moving picture using reference frequency of reference frame
US7738561B2 (en) * 2004-11-16 2010-06-15 Industrial Technology Research Institute MPEG-4 streaming system with adaptive error concealment
US20070030894A1 (en) * 2005-08-03 2007-02-08 Nokia Corporation Method, device, and module for improved encoding mode control in video encoding
US8229983B2 (en) 2005-09-27 2012-07-24 Qualcomm Incorporated Channel switch frame
US8670437B2 (en) 2005-09-27 2014-03-11 Qualcomm Incorporated Methods and apparatus for service acquisition
US20070086971A1 (en) * 2005-10-19 2007-04-19 Patrick Diet Acidic Cleaning Compositions
US8861585B2 (en) 2006-01-20 2014-10-14 Qualcomm Incorporated Method and apparatus for error resilience algorithms in wireless video communication
US8325822B2 (en) 2006-01-20 2012-12-04 Qualcomm Incorporated Method and apparatus for determining an encoding method based on a distortion value related to error concealment

Also Published As

Publication number Publication date
KR20080098042A (ko) 2008-11-06
JP2009524364A (ja) 2009-06-25
US8325822B2 (en) 2012-12-04
EP1980115B1 (en) 2009-11-25
EP1980115A2 (en) 2008-10-15
WO2007084994A2 (en) 2007-07-26
CN101375602B (zh) 2012-03-21
WO2007084994A3 (en) 2007-10-04
CN101375602A (zh) 2009-02-25
TW200737995A (en) 2007-10-01
JP4908522B2 (ja) 2012-04-04
US20070177678A1 (en) 2007-08-02
DE602007003441D1 (de) 2010-01-07
ATE450118T1 (de) 2009-12-15
AR059105A1 (es) 2008-03-12

Similar Documents

Publication Publication Date Title
ES2336039T3 (es) Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores.
CN101375603B (zh) 用于无线视频通信中的错误恢复算法的方法和设备
JP5261774B2 (ja) 動画像スケーラブル符号化方法及び復号方法、それらの装置、それらのプログラム並びにプログラムを記録した記録媒体
ES2715703T3 (es) Dispositivo de decodificación de vídeo, procedimiento de decodificación de vídeo y programa de decodificación de vídeo
CN101379816A (zh) 双向预测帧的时间错误隐藏
JP2009521839A (ja) フレキシブル・マクロブロック配列(fmo)ビデオ符号化のためにフレーム選択を最適化する方法及び装置
Tsai et al. Joint temporal and spatial error concealment for multiple description video coding
Huang et al. Optimization of hybridized error concealment for H. 264
US9794589B2 (en) Method and device for processing a video sequence
Chen et al. Dynamic multi-mode switching error concealment algorithm for H. 264/AVC video applications
Psannis Efficient redundant frames encoding algorithm for streaming video over error prone wireless channels
Chen et al. Multi-frame error concealment for H. 264/AVC frames with complexity adaptation
Patel et al. Hybrid spatio-temporal error concealment technique for image/video transmission
Kim et al. Hybrid error concealment method for H. 264/AVC
Xu et al. A perceptual sensitivity based redundant slices coding scheme for error-resilient transmission H. 264/AVC video
Shin et al. An improved error concealment for mobile IPTV
ES2348123T3 (es) Compensación de movimiento global para imágenes de video.
KR20080070242A (ko) 에러 은닉 장치 및 방법
MX2008009312A (es) Metodo y aparato para algoritmos de resiliencia de error en comunicacion inalambrica de video
Yang et al. A content-based layered multiple description coding scheme for robust video transmission over ad hoc networks
Lin et al. Coding-residual-based motion vector recovery algorithm
Kannepalli Smart Slice Prioritization in H. 264 AVC
Haroun et al. Robust multiple hypothesis motion compensated prediction within the H. 264/AVC standard
FMO OF H. 264/AVC