MX2008009312A - Metodo y aparato para algoritmos de resiliencia de error en comunicacion inalambrica de video - Google Patents

Metodo y aparato para algoritmos de resiliencia de error en comunicacion inalambrica de video

Info

Publication number
MX2008009312A
MX2008009312A MXMX/A/2008/009312A MX2008009312A MX2008009312A MX 2008009312 A MX2008009312 A MX 2008009312A MX 2008009312 A MX2008009312 A MX 2008009312A MX 2008009312 A MX2008009312 A MX 2008009312A
Authority
MX
Mexico
Prior art keywords
current frame
macroblock
frame
prediction
pixel level
Prior art date
Application number
MXMX/A/2008/009312A
Other languages
English (en)
Inventor
Kent Walker Gordon
R Raveendran Vijayalakshmi
Ganapathy Subramania Sitaraman
Original Assignee
Qualcomm Incorporated
R Raveendran Vijayalakshmi
Ganapathy Subramania Sitaraman
Kent Walker Gordon
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 Incorporated, R Raveendran Vijayalakshmi, Ganapathy Subramania Sitaraman, Kent Walker Gordon filed Critical Qualcomm Incorporated
Publication of MX2008009312A publication Critical patent/MX2008009312A/es

Links

Abstract

Se describen métodos y aparatos para codificar datos multimedia permitiendo, entre otras cosas, por ejemplo, una calidad mejorada de video decodificado, capacidades mejoradas de recuperación de error y/o eficiencia de decodificación mejorada;un método de acuerdo con la solicitud incluye uno o más de los siguientes:inicializar un contador de referencia a nivel de píxel para un cuadro actual;ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual;incrementar el contador de referencia a nivel de píxel para cada píxel del cuadro actual que es referenciado durante la predicción del siguiente cuadro, reajustar un mapa de ancho de banda de macrobloque del cuadro actual, repetir los pasos de inicialización, ejecución y reajuste para cada siguiente cuadro en una pluralidad de siguientes cuadros haciendo referencia al cuadro actual, y codificar el cuadro actual con base, por lo menos en parte, en el mapa de ancho de banda del macrobloque reajustado del cuadro actual.

Description

METODO Y APARATO PARA ALGORITMOS DE RESILIENCIA DE ERROR EN COMUNICACION INALAMBRICA DE VIDEO CAMPO DE LA INVENCION Esta solicitud se refiere al procesamiento de señales multimedia y, de manera más particular, a comunicación inalámbrica de video.
ANTECEDENTES DE LA INVENCION Los sistemas de procesamiento multimedia, tales como codificadores de video, pueden codificar datos multimedia utilizando métodos de codificación basados en normas internacionales tales como las normas del Grupo de Expertos de Imágenes en Movimiento (MPEG)-l, -2 y -4, la norma de la Unión de Telecomunicación Internacional (ITÜ)-T H.263, y la norma ITU-T 264 y su contraparte ISO/IEC MPEG-4, Parte 10, es decir, Codificación de Video Avanzada (AVC) . Dichos métodos de codificación generalmente están enfocados en comprimir los datos multimedia para transmisión y/o almacenamiento. De manera amplia, la compresión es el proceso de remover la redundancia de los datos. Una señal de video se puede describir en términos de una secuencia de imágenes, las cuales incluyen cuadros (una imagen completa), o campos (por ejemplo, una corriente de video intercalada comprende campos de alternación de lineas pares o impares de una imagen) . Tal como aquí se utiliza, el término "cuadro" se refiere a una imagen, un cuadro o un campo. Los métodos de codificación de video comprimen las señales de video utilizando algoritmos de compresión sueltos o no sueltos para comprimir cada cuadro. La codificación intra-cuadro (aquí denominada como intra-codificación) se refiere a la codificación de un cuadro utilizando únicamente ese cuadro. La codificación inter-cuadro (aquí denominada como inter-codificación) se refiere a la codificación de un cuadro con base en otros cuadros de "referencia". Por ejemplo, las señales de video con frecuencia muestran redundancia temporal, en donde los cuadros cercanos entre si en la secuencia temporal de cuadros tienen por lo menos porciones que coinciden o por lo menos parcialmente coinciden entre si. Los procesadores multimedia, tales como los codificadores de video, pueden codificar un cuadro dividiéndolo en bloques o "macrobloques" por ejemplo de 16x16 pixeles. El codificador además puede dividir cada macrobloque en sub-bloques. Cada sub-bloque además puede comprender sub-bloques adicionales. Por ejemplo, los sub-bloques de un macrobloque pueden incluir sub-bloques de 16x8 y 8x16. Los sub-bloques de los sub-bloques de 8x16 pueden incluir sub-bloques de 8x8 y asi sucesivamente. Tal como aquí se utiliza, el término "bloque" se refiere ya sea a un macrobloque o a un sub-bloque. Los codificadores toman ventaja de esta redundancia temporal utilizando algoritmos basados en compensación de movimiento de inter-codificación . Los algoritmos de compensación de movimiento identifican porciones de un cuadro de referencia que por lo menos parcialmente coinciden con un bloque. El bloque puede ser cambiado en el cuadro con relación a la porción de comparación del cuadro de referencia. Este cambio se caracteriza por un vector de movimiento. Cualesquiera diferencias entre el bloque y la porción parcialmente en comparación del cuadro de referencia se pueden caracterizar en términos de un residual. El codificador puede codificar un cuadro como datos que comprenden uno o más de los vectores de movimiento y residuales para una división particular del cuadro. Se puede seleccionar una división particular de bloques para codificar un cuadro aproximadamente reduciendo al mínimo una función de costo que, por ejemplo, equilibra el tamaño de la codificación con la distorsión del contenido resultante de una codificación.
La inter-codificación permite más eficiencia de compresión que la intra-codificación . Sin embargo, la inter-codificación puede crear problemas cuando se pierden datos de referencia (por ejemplo, cuadros de referencia o campos de referencia) debido a errores de canal. Etc. En estos casos, la decodificación de datos inter-codificados puede no ser posible o puede resultar en errores indeseables y propagación de error. Los decodificadores pueden emplear esquemas de ocultamiento los cuales intentan ocultar o cubrir datos erróneos con datos derivados de bloques vecinos o de datos en otros cuadros. La mejora de los algoritmos de ocultamiento puede proveer cierta mejora en la calidad de las porciones ocultadas de datos de video erróneos. Sin embargo, existe un limite en cuanto a qué tan alta se mostrará la calidad de la imagen ocultada debido a la pesada dependencia de los algoritmos de ocultamiento en la información espacio-temporal. Los datos ocultados pueden no ser de alta calidad y la experiencia de visualización se puede degradar. Además, la decodificación de la señal se puede volver imposible y se pudiera requerir la re-sincronización. Se puede limitar la propagación de error, y se puede habilitar la resincronización (o adquisición inicial), a través de métodos de codificación que renuevan el video. Una señal de video renovada puede ser decodificada sin referencia a, o conocimiento de otros cuadros. Un cuadro intra-codificado independientemente decodificable es la forma más común de cuadro que permite la renovación de la señal de video. Las normas PEG-X y H.26x utilizan lo que se conoce como el grupo de imágenes (GOP) que comprende un cuadro intra-codificado (también denominado un I-cuadro) y P-cuadros temporalmente pronosticados o B cuadros bidireccionalmente pronosticados que hacen referencia al I-cuadro y/u otros P y/o B cuadros dentro del GOP. Son deseables GOP más largos para la compresión incrementada, pero GOP más cortos permiten una adquisición y re-sincronización más rápidas. El incremento del número de I-cuadros renovará la señal de video con mayor frecuencia, limitando aún más la propagación de error y proporcionando una más rápida adquisición y re-sincronización, pero a costas de una menor compresión. Lo que se necesita es una forma para codificar datos de video que limite la propagación de error de la corriente de video en el decodificador mientras se conserva la eficiencia de la compresión.
SUMARIO DE LA INVENCION El sistema, método y dispositivos de la solicitud tienen varios aspectos, ninguno de los cuales es el responsable único de sus atributos deseables. Sin limitar el alcance de esta solicitud, tal como se expresa en siguientes las reivindicaciones, ahora se analizarán brevemente sus características más sobresalientes. Después de considerar este análisis, y particularmente después de leer la sección titulada "Descripción Detallada de Algunas Modalidades", se podrá entender la manera en que características muestra de esta solicitud pueden proporcionar algunas mejoras que incluyen, entre otras, por ejemplo, calidad mejorada de video decodificado, recuperación de error mejorada, resiliencia de error mejorada y/o eficiencia de comunicación inalámbrica mejorada. Un método para procesar datos multimedia que incluye múltiples cuadros de video, en donde el método incluye inicializar un contador de referencia a nivel de píxel para un cuadro actual, ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual y reajustar un mapa de ancho de banda del macrobloque del cuadro actual. Se describe un procesador para procesar datos multimedia incluyendo múltiples cuadros de video, donde el procesador está configurado para inicializar un contador de referencia a nivel de píxel para un cuadro actual, ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual, y reajustar un mapa de ancho de banda del macrobloque de cuadro actual. Se presenta un aparato para procesar datos multimedia que incluyen múltiples cuadros de video, en donde el aparato incluye un inicializador para inicializar un contador de referencia a nivel de pixel para un cuadro actual, un realizador para realizar una predicción de un siguiente cuadro haciendo referencia al cuadro actual, y un reajustador para reajustar un mapa de ancho de banda del macrobloque de cuadro actual. Se presenta un aparato para procesar datos multimedia que incluyen múltiples cuadros de video, donde el aparato incluye medios para inicializar un contador de referencia a nivel de pixel para un cuadro actual, medios para ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual, y medios para reajustar un mapa de ancho de banda del macrobloque de cuadro actual. Se describe un medio legible por máquina para procesar datos multimedia que incluyen una pluralidad de cuadros de video, donde el medio legible por máquina incluye instrucciones que, al momento de su ejecución, ocasionan que una máquina inicialice un contador de referencia a nivel de pixel para un cuadro actual, ejecute una predicción de un siguiente cuadro haciendo referencia al cuadro actual, y reajuste un mapa de ancho de banda del macrobloque de cuadro actual.
BREVE DESCRIPCION DE LAS FIGURAS La figura 1 es un diagrama en bloques que ilustra un sistema de comunicaciones multimedia de acuerdo con un aspecto. La figura 2 es un diagrama en bloques que ilustra una modalidad de un dispositivo codificador que se puede utilizar en un sistema tal como se ilustra en la figura 1. La figura 3 es un diagrama en bloques que ilustra una modalidad de un dispositivo decodificador que se puede utilizar en un sistema tal como se ilustra en la figura 1. La figura 4A es un diagrama de flujo que ilustra un ejemplo de un método para codificar una porción de una corriente de video en un sistema tal como se ilustra en la figura 1. La figura 4B es un diagrama de flujo que ilustra con mayor detalle un ejemplo de un método para codificar una porción de una corriente de video en un sistema tal como se ilustra en la figura 1. La figura 5 ilustra de manera gráfica un mapa de distorsión que puede ser generado por los métodos de las figuras 4A y 4B. La figura 6 ilustra de manera gráfica regiones de predicción utilizadas para calcular una porción de video tal como se utiliza en métodos de predicción de movimiento compensado. La figura 7 es un diagrama en bloques funcional que ilustra una modalidad de un dispositivo codificador que se puede utilizar en un sistema tal como se ilustra en la figura 1. La figura 8 es un diagrama en bloques funcional que ilustra una modalidad de un dispositivo decodificador que se puede utilizar en un sistema tal como se ilustra en la figura 1. La figura 9 ilustra un sistema de comunicación inalámbrica 900 de acuerdo con algunas modalidades. La figura 10 muestra una organización de los datos de video codificados o corriente de bits de video en rodajas y AU . La figura 11 muestra la organización de las corrientes de bits de video en rodajas y AU y su mapeo a cuadros FLO. La figura 12 muestra una jerarquía de predicción para codificación de cuadro pronosticada de acuerdo con algunas modalidades.
La figura 13 muestra un algoritmo de dos pasadas para determinar la cadena predicción y poner más importancia a los macrobloques de frecuente referencia de acuerdo con algunas modalidades.
DESCRIPCION DETALLADA DE ALGUNAS MODALIDADES La siguiente descripción detallada se enfoca en algunas modalidades muestra de la solicitud. Sin embargo, la solicitud se puede ejemplificar en una multitud de diferentes formas tal como se define y queda cubierto por las reivindicaciones. En esta descripción, se hace referencia a las figuras, en donde partes similares son designadas con números similares en el documento. Las señales de video se pueden caracterizar en términos de una serie de imágenes, cuadros, campos o rodajas. Tal como aquí se utiliza, el término "cuadro" es un término amplio que puede abarcar ya sea cuadros de una señal de video progresiva, campos de una señal de video intercalado, o rodajas de cualquiera de los dos. Las modalidades incluyen sistemas y métodos para mejorar el procesamiento en un codificador en un sistema de transmisión multimedia. Los datos multimedia pueden incluir uno o más de video en movimiento, audio, imágenes estáticas, o cualquier otro tipo conveniente de datos audio-visuales. Las modalidades incluyen un aparato y método de comunicación de datos (por ejemplo, video) . La figura 1 es un diagrama en bloques que ilustra un sistema de comunicaciones multimedia 100 de acuerdo con 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, la cual puede ser, por ejemplo, una red propensa al error tal como una red inalámbrica. En un ejemplo, el dispositivo codificador recibe una señal multimedia desde una fuente externa 102 y codifica esa señal para transmisión en la red 140. En este ejemplo, el dispositivo codificador 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 de señal digital. La memoria 114 puede incluir uno o más de estado sólido y/o almacenamiento basado en disco. El procesador 112 codifica los datos provenientes de la fuente de datos multimedia y los proporciona al transceptor 116 para comunicación sobre 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 de señal digital. La memoria 154 puede incluir uno o más de estado sólido y/o almacenamiento basado en disco. El transceptor 156 está configurado para recibir datos multimedia sobre la red 140 y los proporciona al procesador 152 para 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 inalámbrica o cableada, incluyendo uno o más de Ethernet, teléfono (por ejemplo, POTS) , cable, linea de energía, y sistemas de fibra óptica, y/o un sistema inalámbrico que comprende uno o más de un sistema 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), sistema de acceso múltiple por división de frecuencia ortogonal (OFDM) , un sistema de acceso múltiple por división de tiempo (TDMA) tal como GSM/GPRS (Servicio de Radio en Paquete General ) /EDGE (ambiente GSM de datos mejorado), un sistema de telefonía móvil TETRA (Radio Truncado Terrestre) , un sistema de acceso múltiple por división de código de banda ancha ( CDMA) , un sistema de alta tasa de transferencia de datos (lxEV-DO o Multidifusión lxEV-DO Gold) , un sistema IEEE 802.11, un sistema MediaFLO, un sistema DMB, o un sistema DVB-H. La figura 2 es un diagrama en bloques que ilustra una modalidad de un dispositivo codificador 110 que se puede utilizar en un sistema tal como el sistema 100 que se ilustra en la figura 1. En esta modalidad, el codificador 110 comprende un elemento estimador de valor de distorsión 202, un determinador de método de codificación 204, y un elemento codificador de multimedia 206. El estimador de valor de distorsión 202 calcula un valor de distorsión de porciones de datos multimedia que están siendo codificados. El valor de distorsión está basado, en parte, en la propagación de error proveniente de otras porciones de video a partir de las cuales se pronostica la porción actual y la probabilidad de que las otras porciones sean recibidas en error. El valor de distorsión también incluye un componente de distorsión debido a errores introducidos en el decodificador mientras se oculta la porción de datos de video en caso de haber sido recibidos en error. El estimador de valor de distorsión puede considerar múltiples métodos de codificación y calcular valores de distorsión para cada uno de los métodos de codificación. El determinador del método de codificación 204 determina un método de codificación que será utilizado para codificar la porción de datos de video con base en el valor de distorsión calculado. El determinador del método de codificación 204 y el estimador del valor de distorsión 202 pueden funcionar juntos para calcular múltiples valores de distorsión para múltiples métodos de codificación (por ejemplo, múltiples métodos de inter-codificación) y elegir el método de codificación que resulte en la menor distorsión. El determinador del método de codificación puede comparar el valor de distorsión con un umbral y, con base en la comparación, determinar que se necesita otro método de codificación. El otro método de codificación puede ser un método de codificación relacionado con la renovación de la corriente de video, tal como intra-codificación . El otro método de codificación también puede ser otra forma de inter-codificación que resulte en un valor de distorsión inferior conforme a lo determinado por el estimador del valor de distorsión 202. El determinador del método de codificación también puede considerar la complejidad computacional junto con el valor de distorsión al determinar un método de codificación que provea distorsión aceptable y no exceda un nivel de complejidad computacional. El codificador multimedia 206 ejecuta el método de codificación que fue determinado con base en el valor de distorsión. Los métodos de codificación ejecutados por el codificador multimedia 206 incluyen la inter-codificación en donde porciones de video son pronosticadas temporalmente (por ejemplo, utilizando predicción de movimiento compensado) en referencia a otras porciones de los datos de video localizados en otros cuadros temporales. Otros métodos de codificación incluyen intra-codificación, donde porciones de video son codificadas de manera que pueden ser decodificadas de forma independiente sin referencia a otros datos de video temporalmente localizados. En algunas modalidades, la intra-codificación puede utilizar predicción espacial para tomar ventaja de la redundancia en los otros datos de video ubicados en el mismo cuadro temporal. En algunas modalidades, uno o más de los elementos del codificador 110 de la figura 2 se pueden reacomodar y/o combinar. Los elementos pueden ser ejecutados mediante hardware, software, microprogramación cableada, soporte intermedio, microondas o cualquier combinación de los mismos. Detalles de las acciones ejecutadas por los elementos en el codificador 110 se analizarán con referencia a los métodos que se ilustran en la figura 4 a continuación. La figura 3 es un diagrama en bloques que ilustra una modalidad del dispositivo decodificador 150 que se puede utilizar en un sistema tal como el sistema 100 que se ilustra en la figura 1. En esta modalidad, el dispositivo decodificador 150 incluye un elemento decodificador multimedia 302 y un elemento de ocultamiento de error 304. El decodificador multimedia 302 decodifica una corriente de bits multimedia codificada tal como fue codificada utilizando el dispositivo codificador 110 de la figura 2. El decodificador multimedia realiza la operación inversa correspondiente a las operaciones de codificación utilizadas para codificar los datos. Los datos codificados pueden ser datos inter-codificados (por ejemplo, datos temporalmente pronosticados) y/o intra-codificados . El elemento de ocultamiento de error 304 ejecuta varias formas de ocultamiento de error que son utilizadas para ocultar o cubrir porciones de video que son recibidas en error o que, de otra forma, no son decodificables (por ejemplo, debido a la pérdida de sincronización) . Los métodos de ocultamiento pueden incluir ocultamiento de error espacial, ocultamiento de error temporal y otros métodos. Los métodos de ocultamiento utilizados pueden ser los mismos o similares a los métodos de ocultamiento de error modelados cuando se calculan valores de distorsión en el estimador de valor de distorsión 202 del dispositivo codificador 110 de la figura 2. Aunque el aspecto presente no requiere los mismos métodos de ocultamiento o similares, el uso de dichos mismos métodos de ocultamiento o similares en el dispositivo decodificador 150, tal como fueron modelados en el dispositivo codificador puede producir como resultado una calidad mejorada de video decodificado . Además de realizar el ocultamiento de error, el elemento de ocultamiento de error 304 puede realizar funciones de recuperación de error. La recuperación de error se puede ejecutar en secciones de datos que se determinan como erróneas en un intento por analizar porciones utilizables (por ejemplo, libres de errores). Estas porciones analizadas también pueden ser utilizadas en el ocultamiento de error por el elemento de ocultamiento de error 304. En algunas modalidades, uno o más de los elementos del decodificador 150 de la figura 3 se pueden acomodar y/o combinar. Los elementos pueden ser ejecutados mediante hardware, software, microprogramacion cableada, soporte intermedio, microcódigo o cualquier combinación de los mismos. Detalles de las acciones emprendidas por los elementos del decodificador 150 están más allá del alcance de esta descripción. La figura 4A es un diagrama de flujo que ilustra un ejemplo de un método para codificar una porción de una corriente de video en un sistema, tal como se ilustra en la figura 1. En este ejemplo, el método calcula un valor de distorsión para una porción del video que se está codificando. El valor de distorsión se basa en una probabilidad de la porción codificada que está siendo recibida en error en un decodificador y el error ocasionado por un método de ocultamiento que es utilizado para ocultar la porción errónea. Al basar el valor de distorsión en un método de ocultamiento de decodificador , la corriente de bits del video codificado puede ser más robusta para los efectos de la propagación de error en el decodificador , lo cual puede mejorar la calidad del video decodificado . El método en este ejemplo también puede determinar un método de codificación basado en el valor de distorsión calculado. El método de codificación se puede determinar para reducir al mínimo el valor de distorsión entre una pluralidad de métodos de codificación. El método de codificación se puede determinar con base en la mejora de la recuperación de la porción de video en el decodificador . El método de codificación se puede determinar para renovar la porción de video a fin de limitar la propagación de error en el decodificador . Haciendo referencia a la figura 4A, el método 400 comienza en el bloque 402 donde un dispositivo de codificación calcula un valor de distorsión para una porción de datos multimedia. La porción de datos multimedia pueden ser un pixel (por ejemplo, luma y croma, o rojo, verde y azul, etc.), un bloque de pixeles o región de cualquier forma y tamaño de uno o más pixeles. El valor de distorsión está basado, por lo menos en parte, en un componente de distorsión relacionado con un método de ocultamiento de error que se puede utilizar para ocultar la porción de video en caso de ser recibida en error. El valor de distorsión puede incluir componentes de múltiples métodos de ocultamiento. Por ejemplo, un componente puede representar la distorsión introducida por un primer método de ocultamiento utilizado si únicamente la porción que está siendo codificada es recibida en error. En otras palabras, todos los otros datos de video que un dispositivo decodificador podría utilizar para pronosticar una porción ocultada (denominada como datos de predicción) se asumen como recibidos libre de error. Otros componentes del valor de distorsión pueden incluir la distorsión introducida por un segundo o tercer método de ocultamiento, en donde estos métodos de ocultamiento pueden ser utilizados por un decodificador si una o más porciones de predicción son recibidas en error. Los métodos de ocultamiento pueden incluir ocultamiento espacial, ocultamiento temporal y otras formas de ocultamiento. A continuación se analizarán detalles de un método para calcular un valor de distorsión incluyendo el ocultamiento temporal. El estimador de valor de distorsión 202 del dispositivo codificador 110 en la figura 2 puede ejecutar las acciones en el bloque 402. En algunos ejemplos, un valor de distorsión es calculado en el bloque 402 para cada bloque en un cuadro de datos. Los bloques pueden ser macrobloques (por ejemplo, macrobloques de 16x16 pixeles) , o sub-macrobloques de cualquier tamaño. Los valores de distorsión para cada bloque en un cuadro se pueden almacenar en un mapa de distorsión. La figura 5 ilustra de manera gráfica un mapa de distorsión que puede ser generado en el bloque 402. El mapa de distorsión 500 contiene múltiples variables de valor de distorsión 505 (etiquetadas dv 1 - dv 16), una para cada bloque en un cuadro. El mapa de distorsión 500 de un cuadro previo se puede utilizar en el cálculo de los valores de distorsión en un nuevo cuadro. De esta forma, la distorsión acumulativa se puede calcular fácilmente. Si se determina que cualquiera de los bloques va a ser renovado, por ejemplo, intra-codificado, el valor de distorsión de ese bloque se puede establecer 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 método de codificación que va a ser utilizado para la porción de datos multimedia con base en el valor de distorsión calculado. En algunos ejemplos, los valores de distorsión son calculados en el bloque 402 para múltiples métodos de codificación como parte de un cálculo de distorsión de velocidad que se utiliza para elegir cuál método de codificación de los múltiples métodos va a ser utilizado. Por ejemplo, se puede determinar (en el bloque 404) que el método de codificación que resulta en el valor de distorsión mínimo sea utilizado para codificar la porción de datos multimedia. En otros ejemplo, los valores de distorsión se calculan con base en un primer método de codificación (ya sea inter-codificado o intra-codificado) , y los valores de distorsión se utilizan para determinar bloques que deberían ser intra-codificados , tal como se realiza en la Intra-Renovación Adaptiva (AIR) . Por ejemplo, el valor de distorsión correspondiente a una porción puede ser calculado después que una decisión basada en la distorsión de velocidad ha resultado en el hallazgo de los vectores de movimiento óptimos y modo para codificar la porción. Si el valor de distorsión así obtenido es mayor que un umbral, entonces se puede determinar para intra-codificar la porción utilizando uno de los modos de intra-codificación , por ejemplo, intra-codificación de 4x4 pixeles o intra-codificación de 16x16 pixeles. De esta forma se renueva la porción de multimedia. Además de los modos de intra-codificación, algunos modos de inter-codificación (P8x8, P16xl6, P16x8, P8xl6, etc.) también se pueden determinar con base en el valor de distorsión en algunos casos, aunque éstos pueden no resultar en video renovado. Se debería apreciar que algunos de los bloques del método 400 se pueden combinar, omitir, reacomodar o cualquier combinación de los mismos. Detalles de algunas modalidades para determinar el método de codificación en el bloque 404 se analizan a continuación con referencia a la figura 4B. Ahora se analizarán detalles de un algoritmo ejemplar para calcular el valor de distorsión en el bloque 402. El valor de distorsión en este ejemplo está relacionado con un método de ocultamiento temporal que oculta una porción errónea de multimedia utilizando porciones de otros dos cuadros, por ejemplo, un cuadro previo y un cuadro posterior. Sin embargo, otros métodos de ocultamiento pueden ser representados utilizando métodos similares. El algoritmo ejemplar calcula un valor de distorsión recursivo del valor de distorsión esperado (es decir, expectativa estadística) de porciones unidireccionalmente pronosticadas (tal como en P Cuadros) de video. Otras porciones tales como porciones intra-codificadas y porciones bidireccionalmente pronosticadas también se pueden representar mediante algoritmos similares. El algoritmo está basado, en parte, en una probabilidad asumida de que el MB actual está perdido (definido como una probabilidad "P") y una probabilidad de que los predoctores utilizados por un método de ocultamiento están perdidos (definido como una probabilidad "Q") . Debido a que por lo menos una de las probabilidades P y Q asumidas es incrementada, el algoritmo tiende más a producir buena resiliencia/ocultamiento de error mientras compensa la eficiencia de compresión. Lo contrario sucede cuando se reduce por lo menos una de las probabilidades P y Q. El algoritmo calcula un valor de distorsión esperado para una porción de los datos multimedia. La porción de datos multimedia puede tener cualquier número de pixeles y cualquier forma. El ejemplo se analizará con referencia a la porción que es un macrobloque (MB) de 16x16 pixeles, pero se debería apreciar que otras porciones también pueden ser representadas. En una modalidad, el algoritmo es utilizado para calcular un valor de distorsión esperado para cada MB de un cuadro a fin de formar un mapa de distorsión tal como se analizó anteriormente en referencia a la figura 5. El valor de distorsión esperado en este ejemplo es calculado en una forma recursiva y de movimiento adaptivo. Aunque este mapa de distorsión esperado no es exactamente el MSE o la medición de distorsión de norma Li, se espera que se correlacione razonablemente bien con estas mediciones. La siguiente anotación se utiliza para el análisis del algoritmo de valor de distorsión: D¡ Valor de distorsión acumulativo del (i,j)avo macrobloque en el "t" avo cuadro P Probabilidad de que el MV actual esté perdido Q = Probabilidad de que un predictor utilizado por el método de ocultamiento relacionado esté perdido. Conforme a estas suposiciones, el MB actual es recibido sin error alguno a una probabilidad igual a (1-P) . En la predicción unidireccional, el MB actual es codificado en referencia a una porción dimensionada de MB de otro cuadro, el cuadro previo en este ejemplo. Un vector de movimiento MV proporciona las posiciones relativas, o ubicaciones, del MB actual y la porción de referencia dimensionada de MB . La porción de referencia generalmente no estará alineada con los limites de un MB, sino que traslapará hasta cuatro regiones de cuatro MB. La figura 6 ilustra gráficamente las regiones de predicción utilizadas para calcular una porción de video utilizando métodos de predicción de movimiento compensado. Un vector de movimiento 605 indica una región de predicción dimensionada de MB 610 hecha hasta de cuatro porciones de área etiquetadas al, a2, a3 y a4. Las porciones de área al - a4, yacen dentro de cuatro MB 615, 620, 625 y 630, respectivamente. Los valores de distorsión de los MB 615-630 se pueden obtener a partir de una versión almacenada del mapa de distorsión del cuadro previo. En este ejemplo, los valores de distorsión acumulativos de las cuatro porciones de área al-a4 en la región de predicción 610 son promediadas en peso (por ejemplo, con base en el número de pixeles en cada porción de área) para calcular el valor de distorsión del MB actual. Por lo tanto, el valor de distorsión esperado estimado del macrobloque actual debido a la propagación de error acumulativo es proporcionado por: Donde ai, a2, a3, a4 son las cuatro porciones de área tal como se ilustra en la figura 6. Se puede apreciar que el valor de distorsión proporcionado por la fórmula (1) es normalizado dividiendo el promedio ponderado de la región de pixel 16x16 entre 256. Además de la distorsión acumulativa de las regiones de predicción del cuadro previo, el algoritmo calcula los componentes del valor de distorsión debido al ocultamiento del MB actual, si el B actual es recibido en error. Tal como se analizó anteriormente, se asume que el MB actual es recibido en error con una probabilidad de P. La distorsión incurrida por el macrobloque actual debido a un método de ocultamiento puede ser aproximada para que sea la suma del error de ocultamiento (el error introducido por el método de ocultamiento e indicado por el término Ocultar_Error ) y los efectos debido a la propagación de error de las regiones de predicción utilizadas por el método de ocultamiento. Tal como se analizó anteriormente, se asume que los predoctores (por ejemplo, de los cuadros actuales y/o pasados) están disponibles con una probabilidad I-Q. En este ejemplo, se asume que el método de ocultamiento depende de la disponibilidad de datos en el cuadro actual y un cuadro previo. Se asume que la región de predicción está en el cuadro previo, tal como lo indican los términos de distorsión acumulativa Z),': . Sin embargo, esto es únicamente un ejemplo y las regiones de predicción pueden estar en el cuadro actual o cualquier otro cuadro que esté disponible. Por lo tanto, la distorsión incurrida debido a un método de ocultamiento de error temporal utilizando regiones de predicción del cuadro previo, en donde la porción ocultada es errónea a una probabilidad de P, y que depende de la disponibilidad de los datos de predicción en el cuadro actual y el cuadro previo (ambos disponibles a una probabilidad de 1-Q) se pueden calcular como: Los cálculos de error de ocultamiento pueden ser computacionalmente complejos. Sin embargo, bajo algunas suposiciones razonables, éstos se pueden aproximar como una diferencia en los siguientes valores SAD (suma de diferencias acumuladas en valores de pixel) : SADopt : SAD obtenido entre la imagen original y la imagen comprimida cuando se utiliza el MV óptimo y el modo de codificación óptimo.
SADest : SAD obtenido entre la imagen original y la imagen ocultada cuando se utiliza el MV calculado (calculado por el algoritmo de ocultamiento temporal) Esta aproximación se puede escribir de la siguiente forma: n+\j\+\ ( )(l - 0(1- SAD -SAD' + + «2 A-, + 3A 256 (3) Donde ai' , a2' , 83' , a4' son cuatro porciones de área en el cuadro previo (tal como se ilustró en la figura 6) que se utilizaron como la predicción de la porción de ocultamiento y se utilizan para promediar el peso de la distorsión acumulativa. Se puede apreciar que el valor de distorsión proporcionado por la fórmula (3) también es normalizado dividiendo el promedio ponderado de la región de pixel 16x16 entre 256. Apreciar que, cuando se utiliza la fórmula (3), se puede descubrir que SADest es menor que SADopt en algunos casos (debido a las imprecisiones de la compensación de movimiento, por ejemplo), pero la diferencia puede ser significativamente pequeña y en esos casos el componente Ocultar_Error puede ser aproximado como cero. La fórmula (3) representa un componente de valor de distorsión que corresponde al método de ocultamiento utilizado cuando el cuadro actual y el cuadro previo están disponibles (donde cada uno ocurre a una probabilidad de 1-Q) . Sin embargo, pueden existir diferentes errores de ocultamiento si algunos o todos del cuadro actual y/o el cuadro pasado son recibidos erróneamente, en donde cada uno ocurre a una probabilidad de Q. Se pueden considerar los componentes del valor de distorsión correspondientes a cuatro cálculos de ocultamiento diferentes, donde los cuatro cálculos de ocultamiento corresponden a cuatro escenarios 1) cuadro actual disponible y cuadro previo disponible, 2) cuadro actual disponible pero cuadro previo erróneo, 3) cuadro actual erróneo pero cuadro previo disponible y 4) ambos, el cuadro actual y el cuadro previo son erróneos. Detalles referentes al cálculo de los cuatro cálculos de ocultamiento no son cruciales para el entendimiento del cálculo del valor de distorsión, y no se analizarán aquí. La distorsión acumulativa, incluyendo los cuatro componentes de valor de distorsión se pueden calcular como : D'-y = Donde el primer cálculo de ocultamiento resulta en la distorsión de | , y el segundo cálculo de ocultamiento resulta en la distorsión de SAD -SAD2 , y asi sucesivamente. Además, las distorsiones acumulativas son promediadas en peso con base en las áreas ( , a , a y a ) de las regiones de predicción utilizadas en cada uno de los cuatro cálculos de ocultamiento. Los cálculos de ocultamiento se pueden basar en diferentes tipos de métodos de ocultamiento tales como ocultamiento espacial, ocultamiento bidireccional , etc. Por ejemplo, un algoritmo de ocultamiento se puede ocultar temporalmente algunas veces y espacialmente otras veces, dependiendo de los criterios deterministicos/probabilisticos . El dispositivo codificador que realiza el cálculo del valor de distorsión y que determina cuál método de codificación utilizar con base en el valor de distorsión puede modelar los mismos métodos de ocultamiento o similares que son utilizados en un decodificador a fin de mejorar la recuperación de error y/o el rendimiento del ocultamiento de error cuando el decodificador recibe datos erróneos. Se puede observar que otros cálculos de ocultamiento se pueden considerar e incluir en la Ecuación (4) con base en las probabilidades de que otras regiones de predicción no estén disponibles. La ecuación (4) se puede utilizar para cada MB en un cuadro a fin de formar el mapa de distorsión como se ilustra en la figura 5. Por lo tanto, los valores de distorsión calculados utilizando la Ecuación (4) comprenden una suma ponderada de distorsiones incurridas mediante la elección de múltiples opciones de ocultamiento, en donde el peso es la probabilidad de cada opción de ocultamiento de ser elegida . La figura 4B es un diagrama de flujo que ilustra con mayor detalle un ejemplo de un método para codificar una porción de una corriente de video en un sistema tal como se ilustra en la figura 1. El método 420 incluye los bloques 402 y 404 tal como se analizó anteriormente en referencia a la figura 4a incluyendo varios métodos de ocultamiento que se pueden considerar cuando se calcula el valor de distorsión en el bloque 402 y varios métodos para determinar el método de codificación en el bloque 404. En el bloque 402, el valor de distorsión se puede calcular utilizando algoritmos similares a aquellos analizados anteriormente en referencia a la Ecuación (4). Las ecuaciones del valor de distorsión exacto utilizadas dependen del tipo de método de ocultamiento que se esté representando. Los métodos de ocultamiento que se están representando pueden incluir métodos de ocultamiento espacial, donde porciones de predicción ubicadas en el mismo cuadro se utilizan para ocultar una porción recibida en error. En el caso del ocultamiento espacial dentro de un cuadro, los valores de distorsión acumulativos de B en el cuadro actual se utilizan en lugar de los valores de distorsión del cuadro previo. Los métodos de ocultamiento temporal pueden incluir predicción unidireccional tal como se analizó anteriormente y se representó mediante la Ecuación (4), y también pueden incluir predicción bidireccional en donde también se puede considerar la disponibilidad de un cuadro posterior. Un ejemplo de un método de ocultamiento temporal es la escalación del vector de movimiento. La escalación del vector de movimiento es un método que interpola y/o extrapola vectores de movimiento de otros cuadros para derivar un vector de movimiento para una porción de datos multimedia erróneos en un cuadro actual. Otro ejemplo de un método de ocultamiento temporal es la conversión de la velocidad de cuadro. La conversión de la velocidad de cuadro puede ser similar a la escalación del vector de movimiento, pero involucra la construcción de un cuadro completo con base en, típicamente, dos cuadros circundantes. Otros ejemplos de métodos de ocultamiento de error temporal se pueden basar en métodos de flujo óptico. Otras formas de ocultamiento que pueden ser representadas por el valor de distorsión calculado en el bloque 402 incluyen interpolación de dominio de frecuencia y espacial, recuperación máxima suave, y proyección en conjuntos convexos. Tecnologías expertas reconocerán otras formas de ocultamiento de error que se pueden representar cuando se calcula el valor de distorsión en el bloque 402 del método 400. Tal como se analizó anteriormente, el dispositivo codificador determina, en el bloque 404, un método de codificación basado en el valor de distorsión que se calculó en el bloque 402. En algunas modalidades, el valor de distorsión calculado se compara con un umbral y el método de codificación se determina con base en la comparación. El umbral puede ser un valor sencillo para todas las porciones de datos multimedia. Sin embargo, el umbral también puede variar de acuerdo con métodos tales como aquellos enlistados en el bloque 404 del método 420. Estos métodos se analizarán en relación con la determinación de un método de codificación basado en el exceso de un umbral, donde el método de codificación elegido, si el umbral es excedido, generalmente servirá para renovar la porción (o por lo menos disminuir el valor de distorsión calculado de la porción) . Sin embargo, se debería apreciar que los métodos de codificación también se pueden determinar con base en que el valor de distorsión sea menor que un umbral.
En algunos ejemplos, el umbral es modificado como una función de una textura de un área en la cual se encuentra ubicada la porción multimedia que se está codificando. El área con una textura que varia ampliamente (por ejemplo, variaciones grandes de pixel a pixel) no puede mostrar errores tanto como las áreas con una textura menos variada y, por lo tanto, se puede soportar un umbral más elevado sobre el cual se puede determinar el método de codificación para renovar la porción (por ejemplo, utilizando intra-codificación) . Sin embargo, áreas con textura ligeramente variada o suave pueden mostrar más errores y, por lo tanto, se les puede asignar un umbral más bajo. En algunos ejemplos, el umbral puede ser variado como una función de la posición, o ubicación, de la porción que está siendo codificada dentro de un cuadro. Por ejemplo, a las porciones en los bordes se les puede asignar un umbral más elevado que las porciones en la parte media. De esta forma, las áreas donde un observador mira con mayor frecuencia (por ejemplo, el centro del cuadro) puede ser renovado con mayor frecuencia que las áreas en el borde donde un observador puede no mirar con mucha frecuencia. En algunos ejemplos, el umbral puede ser una función de la posición del cuadro actual que se está codificando dentro de un GOP (Grupo de Imágenes) o un súpercuadro de múltiples cuadros. Un GOP por lo general comienza con un cuadro intra-codificado o un conjunto de cuadros que incluye sustancialmente todos los MB dentro de un cuadro que está siendo intra-codificado por lo menos una vez (conocido como intra-renovación adaptiva o AIR) , y en donde los otros cuadros en el GOP (o súpercuadro) no hacen referencia a los cuadros fuera del GOP. A fin de asegurar que los MB tienen una oportunidad más grande de ser intra-codificados al inicio de un GOP, el umbral en el cuadro cerca del inicio del GOP puede tener un umbral más bajo que el MB cerca del fin 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 un cuadro. Por ejemplo, el umbral se puede establecer de manera adaptiva para asegurar que un porcentaje de MB dentro del cuadro está intra-codificado con base en la distribución de valores de distorsión. Esto se puede utilizar para limitar el número de MB intra-codificados para limitar la tasa de transferencia de datos necesaria para la transmisión. Aún cuando la calidad puede ser degradada para algunos cuadros (debido a una alta distribución de valores de distorsión) , la tasa de transferencia de datos se puede mantener a un nivel deseado . En algunos ejemplos, el umbral puede ser una función de la actividad de movimiento en un área del cuadro que contiene la porción que se está codificando. Errores que ocurren en áreas de video que se caracterizan por actividad de movimiento superior tienden a ser menos perceptibles que errores que ocurren en áreas caracterizadas por poco movimiento. El umbral se puede establecer a valores más altos en áreas que experimentan una actividad de movimiento más alta que en áreas que experimentan una actividad de movimiento más baja. La actividad de movimiento puede ser medida en muchas formas. Por ejemplo, la amplitud del vector de movimiento se puede utilizar como un indicador de la actividad de movimiento, donde vectores de movimiento de amplitud superior indican actividad de movimiento superior. La variación de la dirección del vector de movimiento también se puede utilizar como un indicador de actividad de movimiento. Si la mayoría de los vectores de movimiento en el área están señalando sustancialmente en la misma dirección, esto puede ser una indicación de actividad de movimiento baja. Si los vectores de movimiento en bloques vecinos de un área están señalando en diferentes direcciones, esto puede ser una indicación de actividad de movimiento elevada. Mediciones de actividad de movimiento similares se pueden obtener utilizando otras técnicas, de compensación de movimiento, tales como flujo óptico. En algunos ejemplos, el umbral puede ser una función del modo de codificación de la porción de video que se está codificando. Por ejemplo, algunas porciones de video por lo regular no se utilizan como una referencia para otras porciones de video pronosticadas. Los B cuadros, por ejemplo, no son utilizados para cuadros de referencia en muchos sistemas. Por lo tanto, en este tipo de sistema se permitiría que el valor de distorsión de los B cuadros fuese superior debido a que ningún otro video hará referencia a éste. Debido a que ningún otro video hará referencia al B cuadro, los errores persistirán únicamente para una duración de cuadro (por ejemplo, l/30avo de segundo en una secuencia de video de cuadro 30 por segundo) . Por lo tanto, el umbral podría ser superior para porciones de video no referenciadas que para porciones de video que pueden ser referenciadas por otras porciones pronosticadas. Después que se determina el método de codificación, en el bloque 404, con base en el valor de distorsión calculado en el bloque 402, el proceso 420 continúa en el bloque 406, en donde la porción de datos multimedia que se están codificando es codificada con el método de codificación determinado. Los métodos de codificación en el bloque 406 pueden incluir la intra-codificación con o sin predicción espacial de vecinos. Se puede elegir la intra-codificación sin predicción espacial de pixeles vecinos a fin de reducir el valor de distorsión calculado en el bloque 402. Los métodos de codificación en el bloque 406 pueden incluir predicción unidireccional o bidireccional utilizando predicción de movimiento compensado. Diferentes formas de predicción de movimiento compensado se pueden elegir entre otras a fin de reducir el valor de distorsión calculado en el bloque 402. La predicción de movimiento compensado puede incluir comparación de bloque, flujo óptico y otros métodos para calcular vectores de movimiento tal como se analizó anteriormente. Se debería apreciar que algunos de los bloques del método 420 se pueden combinar, omitir, reacomodar o cualquier combinación de los mismos. La figura 7 es un diagrama en bloques funcional que ilustra un ejemplo de un dispositivo codificador 110 que se puede utilizar en un sistema tal como se ilustró en la figura 1. Este aspecto incluye medios para calcular un valor de distorsión para una primera porción de datos multimedia con base, por lo menos en parte, en uno o más métodos de ocultamiento relacionados con el ocultamiento de la primera porción, en caso que la primera porción fuese recibida en error, y medios para determinar un método de codificación para la primera porción con base, por lo menos en parte, en el valor de distorsión calculado. Algunos ejemplos de este aspecto incluyen situaciones donde los medios de cálculo comprenden un estimador de valor de distorsión 702, y situaciones donde los medios de determinación comprenden un determinador de método de codificación 704. La figura 8 es un diagrama en bloques funcional que ilustra un ejemplo de un dispositivo codificador 110 que se puede utilizar en un sistema tal como se ilustra en la figura 1. Este aspecto incluye medios para calcular un valor de distorsión para una primera porción de datos multimedia con base, por lo menos en parte, en uno o más métodos de ocultamiento relacionados con el ocultamiento de la primera porción, en caso que la primera porción fuese recibida en error, y medios para determinar un método de codificación para la primera porción con base, por lo menos en parte, en el valor de distorsión calculado. En algunos ejemplos de este aspecto, los medios de cálculo comprenden un módulo para calcular el valor de distorsión 802 y los medios de determinación comprenden un módulo para determinar el método de codificación 804. Se analizan las estrategias de resiliencia de error y algoritmos que aplican a las transmisiones de video sobre ambientes propensos al error. Estos conceptos aplican a cualquier tecnología individual o combinación de tecnologías de aplicación, transporte y capa física u otras tecnologías. El aspecto fundamental es de algoritmos de robustez de error efectivos mediante la integración de un entendimiento de propiedades de susceptibilidad al error y capacidades de protección de error entre las capas OSI en conjunto con las propiedades deseables del sistema de comunicación tal como baja latencia y alto rendimiento. Una de las principales ventajas es la capacidad de recuperación por desvanecimiento y errores de canal de trayectoria múltiple. Aunque se describe el ejemplo de un sistema de comunicación de video, los aspectos de resiliencia de error descritos se pueden extender a comunicación de datos en ambientes propensos al error. La figura 9 ilustra un sistema de comunicación inalámbrica 900 de acuerdo con algunas modalidades. Dicho sistema de comunicación de video ejemplar generalmente incluye un sistema de compresión de video (que no se muestra) que consiste de un codificador de video 910 y un decodificador de video 920 conectado por una red de comunicación 930. La red 930 además puede incluir un modulador RF 940, un canal de red 950 y un desmodulador RF 960. Las redes inalámbricas son una clase de redes propensas al error, donde el canal puede mostrar desvanecimiento de registro normal o sombreado y desvanecimiento de trayectoria múltiple en escenarios móviles además de la pérdida de trayectoria general. Para combatir los errores de canal y proveer comunicaciones confiables para los datos de capa de aplicación, el modulador RF 940 puede incluir Corrección de Error de Avance (FEC), la cual puede incluir intercalación y codificación de canal, tal como codificación convolucional o turbo. Generalmente, la compresión de video puede reducir la redundancia en el video fuente e incrementar la cantidad de información portada en cada bit de los datos de video codificados. Esto puede incrementar el impacto en la calidad cuando incluso una porción pequeña del video codificado se pierde. La predicción espacial y temporal inherente en los sistemas de compresión de video puede agravar la pérdida y puede ocasionar que los errores se propaguen, resultando en artefactos visibles en el video reconstruido. Los algoritmos de resiliencia de error en el codificador de video y los algoritmos de recuperación de error en el decodificador de video pueden mejorar la robustez del error del sistema de compresión de video.
Generalmente, el sistema de compresión de video es agnóstico a la red subyacente. Sin embargo, en redes propensas al error, la integración o alineación de los algoritmos de protección de error en la capa de aplicación con FEC y codificación de canal en las capas físicas/enlace es altamente deseable y puede facilitar la eficiencia en la mejora del rendimiento de error del sistema global. ediaFLO™ es un ejemplo de un sistema de comunicación de video inalámbrico donde es posible este tipo de integración o alineación. Por lo tanto, algunas modalidades de esta descripción se pueden ejecutar, por ejemplo, utilizando codificación de video MediaFLO™ para proporcionar servicios de video en tiempo real en sistemas TM3 utilizando la Especificación de Interfaz Aérea FLO "Especificación de Interfaz Aérea Unicamente de Enlace de Avance (FLO) para Mutidifusión Multimedia Móvil Terrestre", publicada como la Norma Técnica TIA-1099, Agosto de 2006, la cual se incorpora en su totalidad en la presente invención por referencia para todos los propósitos. Los aspectos, modalidades y/o ejemplos a continuación descritos se refieren a los algoritmos y el inter-trabaj o entre éstos para proveer rendimiento de error mejorado en una red FLO. Sin embargo, estos aspectos, modalidades y/o ejemplos están destinados a ser aplicables generalmente a todas las redes propensas al error . Rodajas, tal como aquí se utiliza, son trozos de datos de video codificados que se pueden decodificar de manera independiente (por ejemplo, utilizando decodificación de entropía) . Las rodajas en un ambiente FLO pueden ser alineadas a límites de cuadro FLO. Las unidades de acceso (AU) , tal como aquí se utilizan, son cuadros FLO de video codificado. Los cuadros FLO son bloques multiplexados por división de tiempo (TDM) de paquetes de capa física (por ejemplo, denominado una cápsula TDM) que ofrece una diversidad de tiempo relativamente alta. Un súpercuadro FLO puede corresponder a una unidad de tiempo (por ejemplo, 1 segundo) y por lo tanto contiene un número de cuadros FLO (por ejemplo, 4 cuadros FLO por súpercuadro FLO de 1 segundo) . Cada una de estas definiciones puede cambiar, y probablemente cambiará para otros tipos de redes propensas al error, e incluso dentro de las configuraciones de red FLO futuras (por ejemplo, un súpercuadro FLO podría incorporar un número fijo de cuadros FLO sin considerar la duración de tiempo) . Dentro del ambiente FLO actual, por ejemplo, la alineación de la rodaja y límites AU con los límites de cuadro FLO en el dominio de tiempo puede resultar en la separación más eficiente y localización de datos corrompidos. Por ejemplo, durante un desvanecimiento profundo, la mayoría de los datos de desvanecimiento contiguos en una cápsula TDM por lo generar son afectados por errores. Pero debido a la diversidad de tiempo, las cápsulas TDM restantes tienen una alta probabilidad de estar intactas. Por lo tanto, los datos no corrompidos pueden ser utilizados para recuperar y ocultar los datos perdidos de la cápsula TDM afectada. Una lógica similar aplica a la multiplexion de dominio de frecuencia (FDM), en donde la diversidad de frecuencia se alcanza a través de la separación de las sub-portadoras de frecuencia que los símbolos de datos modulan. Una lógica similar también se puede aplicar a la diversidad espacial (por ejemplo, a través de la separación en antenas transmisoras y receptoras), así como otras formas de diversidad con frecuencia aplicadas en redes inalámbricas (y otras redes propensas al error) . A fin de alinear las rodajas y AU con los cuadros FLO, la creación del bloque de código del código exterior (FEC) y la encapsulación de capa MAC también se deberían alinear. La figura 10 muestra una organización de los datos de video codificados o corriente de bits de video en rodajas y AU . El video codificado puede estar constituido en una o más corrientes de bits (por ejemplo, corriente de bits de capa base y/o corriente de bits de capa de mejoramiento) , donde la codificación de video en capas se aplica en este ejemplo. La figura 11 muestra la organización de corrientes de bits de video en rodajas y AU y su mapeo a cuadros FLO, donde (a) muestra alineación de limites de rodajas con los cuadros FLO, y (b) muestra alineación de limites de AU (Fl, F2...) con cuadros FLO y rodajas (por ejemplo, con los AU alineados a los paquetes de capa física) . De acuerdo con algunas modalidades, las corrientes de bits de video incluyen AU, y los AU incluyen rodajas de datos. Cada inicio de una rodaja es identificado por un código de inicio y provee adaptación de red. En general, el I-cuadro o AU intra-codificados son grandes seguidos por P-cuadros, o cuadros pronosticados de avance, seguidos por B-cuadros, o cuadros bidireccionalmente pronosticados. La codificación de un AU en múltiples rodajas puede incurrir en un costo de sobrecarga en términos de la tasa de transferencia de bits codificados, debido a que la predicción espacial a través de las rodajas es restringida a rodajas similarmente ubicadas de otros cuadros, y múltiples encabezados de rodajas contribuyen a la sobrecarga también. Debido a que los límites de rodaja por lo regular son puntos de resincronización, la restricción de paquetes de capa física contiguos (PLP) a rodajas puede ayudar a controlar errores debido a que, cuando un PLP está corrompido, el error es confinado a la rodaja en el PLP mientras que si el PLP contenía múltiples rodajas o partes de múltiples rodajas, el error podría impactar todas las rodajas o porciones de rodajas en el PLP. Debido a que los I-cuadros generalmente son más grande que los P- o B-cuadros, por lo regular en el orden de décimas de kilobits, la sobrecarga a causa de las múltiples rodajas no es una proporción grande de tamaño total del I-cuadro o tasa de transferencia de bits tota. También, al tener más rodajas en un I-AU se permite una mejor y más frecuente resincronización y más eficiente ocultamiento de error espacial. También, los I-cuadros por lo regular portan la información más importante en la corriente de bits de video debido a que los P o B cuadros son finalmente pronosticados fuera de los I-cuadros. Los I-cuadros también pueden servir como puntos de acceso aleatorios para la adquisición de canal. Por lo tanto, en algunas modalidades, la alineación cuidadosa de los I-cuadros a los límites de cuadro FLO, y las rodajas con un I-AU a los límites de cuadro FLO también, puede permitir un control de error eficiente, protección de error (debido a que si una rodaja que perteneció al Cuadro 1 FLO se perdió, las rodajas que pertenecen al cuadro 2 FLO están intactas con una alta probabilidad debido a que el cuadro 2 FLO tiene una separación de tiempo importante del cuadro 1 FLO) y recuperación de error, a través, por ejemplo, de resicronización y ocultamiento de error. En el caso de los P-cuadros, los cuales por lo general son del orden de unos pocos kilobits, la alineación de las rodajas de P-cuadro y un número entero de P-cuadros a los limites de cuadro FLO es deseable por motivos similares a aquellos antes analizados para I-cuadros. Aquí, por lo regular se emplea el ocultamiento de error temporal. Alternativamente, la dispersión de P-cuadros consecutivos, de manera que llegan en diferentes cuadros FLO, también puede proveer diversidad de tiempo entre los P-cuadros, debido a que el ocultamiento temporal está basado en vectores de movimiento y datos de I- y/o P-cuadros reconstruidos previamente. En el caso de B-cuadros, los cuales pueden ser extremadamente pequeños (por ejemplo, centésimas o incluso décimas de bits) a moderadamente grandes (por ejemplo, hacia arriba de unos pocos kilobits), la alineación del número entero de B-cuadros a los limites de cuadro FLO es deseable por motivos similares a aquellos analizados previamente para P-cuadros. En algunas modalidades, la resiliencia de error en corrientes de bits de video codificado puede incorporar la jerarquía de predicción y propiedades de persistencia. Considerar el siguiente sistema de compresión híbrido basado en predicción. Los intra-cuadros son codificados de manera independiente sin alguna predicción temporal. Sin embargo, la predicción espacial es posible dentro de una rodaja (es decir, la predicción espacial normalmente es restringida a través de los límites de rodaja). Los inter-cuadros son temporalmente predicción fuera de pasado y en ocasiones futuro (en caso de B-cuadros) . En este sistema, el mejor predictor podría ser identificado a través de un proceso de búsqueda en el cuadro de referencia (o más de un cuadro de referencia) y una medición de distorsión tal como SAD (es decir, suma de diferencias absolutas entre pixeles del bloque que se va a codificar y aquellos del bloque predictor) se puede utilizar para identificar la mejor comparación. Por supuesto, se pueden utilizar otras mediciones de distorsiones y se pretende incorporarlas dentro del alcance de esta solicitud. La región codificada predictiva del cuadro actual puede ser un bloque de pixeles de diverso tamaño y forma (por ejemplo, 16x16, 32x32, 8x4, 2x2, etc.) o un grupo de pixeles identificados como un objeto a través, por ejemplo, de segmentación. La predicción temporal por lo regular se extiende sobre muchos cuadros (por ejemplo 10 a 100 cuadros) y finaliza cuando un cuadro es codificado como I-cuadro. En este ejemplo, la frecuencia de I-cuadro define un grupo de imágenes (GOP) . Para máxima eficiencia de codificación, un GOP es una escena (es decir, limites GOP están alineados con limites de escena y cuadros de cambio de escena están codificados como I-cuadros) . En secuencias de bajo movimiento donde el fondo es relativamente estático y el movimiento queda restringido al objetivo de primer plano (por ejemplo, programas de noticias, pronósticos del clima, etc., donde más de aproximadamente 30% de la mayoría del video visto es de esta naturaleza), la mayoría de las regiones pronosticadas (es decir, inter-codificadas ) de cuadros pronosticados se refieren nuevamente al I-cuadro a través de cuadros pronosticados intermedios (es decir, otros P-cuadros). Esta jerarquía de predicción 1200 se muestra en la figura 12. Como se muestra en la figura 12, un I-cuadro 1210 puede incluir un bloque intra-codificado 1215 sobre el cual finalmente se pueden basar múltiples bloques inter-codificados 1225 de cuadros pronosticados 1220. El bloque intra-codificado 1215 en el I-cuadro 1210 es el predictor para los bloques inter-codificados 1225 en cuadros codificados predictivos (o AU) Pl-Px 1220. En este ejemplo, la región de estos bloques es una parte estacionaria del fondo. Por lo tanto, a través de la predicción temporal consecutiva, aumenta la sensibilidad del bloque intra-codificado 1215 a los errores debido a que es un BUEN predictor lo que también implica que su "importancia" es mayor. De manera adicional, el bloque intra-codificado 1215, en virtud de esta cadena de predicciones temporales denominadas su cadena de predicción, persiste un tiempo más prolongado en la pantalla (es decir, potencialmente por la duración de una escena completa) . En algunas modalidades, la jerarquía de predicción es definida como el árbol de bloques creado con base en este nivel de "importancia" o medición de persistencia con el padre en la parte superior (por ejemplo, bloque 1215 en la figura 12) y los hijos en la parte inferior. Se puede apreciar que el bloque inter-codificado en el cuadro Pl está en el 2do nivel de la jerarquía y así sucesivamente. Las hojas del árbol son aquellos bloques que finalizan una cadena de predicción (por ejemplo, cuadro Px en la figura 12) . En algunas modalidades, la jerarquía de predicción puede ser creada para secuencias de video sin considerar el tipo de contenido (por ejemplo, tal como música y deportes también, y no solo noticias) y se puede aplicar a compresión de video basado en predicción (y audio y datos, etc.) en general (es decir, esto puede aplicar a todos los aspectos descritos en esta solicitud) . Una vez que se establece la jerarquía de predicción, los algoritmos de resiliencia de error tales como la intra renovación adaptiva (AIR), por ejemplo, se pueden aplicar de manera más efectiva. De acuerdo con un aspecto, los algoritmos pueden calcular la medición de importancia con base en el número de veces que un bloque es utilizado como un predictor, lo cual se puede referir como la métrica de persistencia. Esta métrica de persistencia también se utiliza para mejorar la eficiencia de codificación frenando la propagación del error de predicción. La métrica también puede incrementar la asignación de bits para los bloques con mayor importancia. Por lo general, el objetivo de un códec de video es lograr una calidad lo más alta posible en un ancho de banda determinado. La calidad con frecuencia es evaluada con relación pico señal a ruido (PSNR). Debido a que el modo de codificación (por ejemplo, todos los intra e ínter esquemas posibles) y el parámetro de cuantificación (QP) de cada macrobloque de cada cuadro afecta la calidad así como el ancho de banda, un esquema de optimización global involucra la decisión conjunta del modo y QP de todos estos macrobloques . Sin embargo, debido a las capacidades de procesamiento prácticas actuales, resulta matemáticamente imposible realizar esta optimización global. Más bien, un esquema de codificación práctico intenta lograr una buena decisión de velocidad-distorsión (R-D) para el cuadro actual con base en los cuadros reconstruidos previamente codificados. Por lo tanto, el problema de la optimización conjunta se reduce a un problema de optimización casual de acuerdo con algunas modalidades. En un cuadro de referencia, algunos macrobloques son más importantes que otros macrobloques en la cadena de predicción. Por ejemplo, un objeto de primer plano se podría duplicar en algunos cuadros futuros (es decir, aún dentro del rango de múltiples cuadros de referencia) . Si este objeto es representado de manera precisa, todos sus clones simplemente pueden ser codificados como un vector de movimiento, ahorrando así bits. En contraste, un objeto que desaparece o un fondo recuperado ya no será referenciado por cuadros futuros, por lo tanto su calidad no afectará cuadros futuros. En algunas modalidades, aquí se describe un algoritmo de dos pasadas para determinar la cadena de predicción y poner más importancia a los macrobloques frecuentemente referenciados . Un valor de mapa de ancho de banda para un MB se puede definir como la complejidad calculada para el mapa, el cual después se utiliza para determinar el número o proporción de bits para asignar durante el control de velocidad para calidad óptima en términos R-D. Este proceso se podría ilustrar como (ver figura 13 ) : 1.- Pasada uno. Inicializar un contador de referencia a nivel de pixel 1310 R(i, j) = 0, donde 0 = i < W, 0 = j < H, N es el ancho de un cuadro, y H es la altura de un cuadro. 2. - Realizar un cálculo de movimiento 16x16 del siguiente cuadro 1320 refiriéndose al cuadro actual.
Siempre que se haga referencia a un pixel en la ubicación (i, j) en el cuadro actual, incrementar R(i, j) por uno. 3. - Pasada dos. Reajustar el mapa de ancho de banda del macrobloque del cuadro actual 1330. Para un macrobloque ubicado en (x, y) , se escala hacia arriba su valor de mapa de ancho de banda por donde C es una constante que va a ser determinada mediante experimento. El incremento del valor de mapa de ancho de banda ocasiona que más bits sean asignados a macrobloques que son buenos predoctores (es decir, muchos más MB futuros en cuadros futuros son pronosticados fuera de estos macrobloques). 4.- Codificar el cuadro actual 1340 con el mapa de ancho de banda del macrobloque actualizado. Se debería apreciar que el algoritmo hace a la corriente de bits más robusta a los errores de canal enfatizando los macrobloques a los que se hace referencia con frecuencia. Cualquier ganancia en PSNR se debe al hecho de que la terminación anticipada de una cadena predictiva detiene la propagación del error de predicción (debido a la codificación residual). De manera adicional, los predoctores buenos son renovados mediante intra codificación más temprano que tarde evitando así la propagación de error si un buen predictor es impactado por error. De acuerdo con algunas modalidades, un cuadro de canal conmutado (CSF) es definido como un cuadro de acceso aleatorio insertado en varias ubicaciones (por ejemplo, apropiadas) en una corriente de transmisión con el propósito de facilitar una adquisición de canal más rápida y, por lo tanto, cambio de canal rápido entre corrientes en una multiplexión de transmisión. Puntos específicos ejemplares referentes a un CSF se pueden encontrar en la Solicitud de Patente EUA comúnmente cedida número 11/527,306 presentada el 25 de septiembre de 2006, y 11/528, 303, presentada el 26 de septiembre de 2006, ambas completamente incorporadas en la presente invención por referencia para todos los propósitos. Un I-cuadro o un I-cuadro progresivo, tal como el cuadro de renovación de decodificador progresivo en H.264, por lo regular sirven como un punto de acceso aleatorio para la conmutación de canal. Sin embargo, los I-cuadros frecuentes (por ejemplo, GOP cortos, por lo menos, más cortos que las duraciones de escena) pueden resultar en una reducción significativa en eficiencia de compresión. Debido a que se pueden requerir bloques de intra-codificación para resiliencia de error, el acceso aleatorio y la resiliencia de error se pueden combinar de manera efectiva a través de la jerarquía de predicción para mejorar la eficiencia de la codificación mientras se incrementa la robustez a los errores. Esta combinación se puede lograr con base, por lo menos en parte, en las siguientes observaciones. A. para secuencias de bajo movimiento, las cadenas de predicción son largas y una porción significativa de la información requerida para reconstruir un súpercuadro o escena está contenida en el I-cuadro que ocurrió al inicio de la escena. B. Los errores de canal tienden a ser en ráfagas y cuando un desvanecimiento golpea y FEC y codificación de canal fallan, existe un error residual pesado que hace fallar el ocultamiento . C. Esto es particularmente severo para secuencias de bajo movimiento (y por lo tanto baja velocidad de bits) debido a que la cantidad de datos codificados no es lo suficientemente significativa para proveer buena diversidad en tiempo dentro de la corriente de bits de video y debido a que éstas son secuencias altamente compresibles que hacen que cada bit sea más importante para la reconstrucción. D. Las secuencias de alto movimiento son más robustas a los errores debido a la naturaleza del contenido - más información nueva en cada cuadro incrementa el número de intrabloques codificados, los cuales se pueden decodificar de manera independiente y más resilientes a error de manera inherente. E. La intra-renovación adaptiva (AIR) basada en la jerarquía logra un alto rendimiento para secuencias de alto movimiento y la mejora del rendimiento no es significativa para secuencias de bajo movimiento. F. Por lo tanto, un cuadro de canal conmutado que contiene la mayoría del I-cuadro es una buena fuente de diversidad para secuencias de bajo movimiento. Cuando un error golpea un súpercuadro, la decodificación en el cuadro consecutivo inicia a partir del CSF, el cual recupera la información perdida debido a la predicción. Por lo tanto se logra la resiliencia de error. G. En el caso de secuencias de alto movimiento, el CSF consta de bloques que persisten en el súpercuadro, es decir, aquellos que son buenos predictores. Todas las regiones del CSF no tienen que ser codificadas debido a que son bloques que tienen cadenas de predicción cortas, lo cual implica que son terminadas con intra-bloques . Por lo tanto, el CSF aún sirve para la recuperación a partir de la información perdida debido a la predicción cuando golpea un error. H. Con base en (f) y (g) anteriores: H.l Los CSF para secuencias de bajo movimiento están en par con el tamaño de los I-cuadros - éstos se pueden codificar a una tasa de transferencia de bits inferior a través de una cuantificación más pesada, y H.2 Los CSF para secuencias de alto movimiento son mucho más pequeños que los I-cuadros correspondientes. I . La escalabilidad para soportar la modulación jerárquica en tecnologías de capa física requiere la división de datos de la corriente de bits de video con relaciones de ancho de banda específicas. Estas no siempre son las relaciones ideales para la escalabilidad óptima (menos sobrecarga) .
J. FLO, por ejemplo únicamente, requiere escalabilidad de 2 capas con una relación de ancho de banda 1:1. Por lo tanto, la división de la corriente de bits de video a 2 capas de igual tamaño no es eficiente para secuencias de bajo movimiento (tasa de transferencia de bits) . La capa base que contiene toda la información de encabezado y metadatos es más grande que la capa de mejoramiento. Sin embargo, debido a que los CSF para secuencias de bajo movimiento son más. grandes, éstos se ajustan bien en el ancho de banda restante en la capa de mejoramiento. Por lo tanto, la resiliencia de error basada en la jerarquía de predicción funciona bien con la escalabilidad y se logra una codificación en capas altamente eficiente. K. Para secuencias de alto movimiento, existe suficiente información residual de manera que la división de datos a 1:1 se puede lograr con la menor sobrecarga. Además, los CSF par dichas secuencias pueden ser mucho más pequeños. Por lo tanto, la resiliencia de error basada en la jerarquía de predicción puede funcionar bien con la escalabilidad para este caso también. L. La extensión de los conceptos analizados en (a) a (k) para secuencias de movimiento moderado es posible con base en las descripciones de estos algoritmos, lo cual hace fácil observar que los conceptos propuestos aplican para codificación de video en general. El sistema anterior es simplemente ilustrativo de un ejemplo de un sistema de corriente multimedia, en donde la entrada al sistema es una corriente continua (eventos de tiempo discreto estáticos, pero que nunca finalizan) de datos y la salida al sistema es una corriente continua de datos. Aquellos expertos en la técnica entenderán que la información y señales se pueden representar utilizando cualquiera de una variedad de diferentes tecnologías y técnicas. Por ejemplo, datos, instrucciones, comandos, información, señales, bits, símbolos, y chips a los que se puede hacer referencia en la descripción anterior se pueden representar a través de voltajes, corrientes, ondas electromagnéticas, campos o partículas magnéticas, campos o partículas ópticas, o cualquier combinación de los mismos. Aquellos expertos en la técnica apreciarán que los diversos bloques lógicos ilustrativos, módulos, circuitos, métodos y algoritmos descritos en relación con los ejemplos aquí mostrados se pueden ejecutar como hardware electrónico, microprogramacion cableada, software de cómputo, soporte intermedio, microondas o combinaciones de los mismos. Para ilustrar con claridad esta capacidad de intercambio de hardware y software, varios componentes ilustrativos, bloques, módulos, circuitos, métodos y algoritmos se han descrito anteriormente de manera general en términos de su funcionalidad. Si dicha funcionalidad es ejecutada como hardware o software, depende de la aplicación particular y de las restricciones de diseño impuestas en el sistema en general. Los expertos en la técnica pueden ejecutar la funcionalidad descrita en varias formas para cada aplicación particular, pero esas decisiones de ejecución no se deberían interpretar como un motivo para apartarse del alcance de la presente invención. Los diversos bloques lógicos ilustrativos, módulos, y circuitos descritos en relación con los ejemplos aquí descritos se pueden ejecutar o realizar con un procesador de propósito general, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC) , un arreglo de compuerta programable en campo (FPGA) u otro dispositivo lógico programable, compuerta discreta o lógica de transistor, componentes de hardware discretos, o cualquier combinación de los mismos diseñada para realizar las funciones aquí descritas. Un procesador de propósito general puede ser un microprocesador, pero en la alternativa, el procesador puede ser cualquier procesador convencional, controlador, microcontrolador , o máquina de estado. Un procesador también se puede ejecutar como una combinación de dispositivos de cómputo, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en conjunto con un DSP núcleo, o cualquier otra configuración. Los pasos de un método o algoritmo descritos en relación con los ejemplos aquí analizados se pueden incorporar directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de los dos. Un módulo de software puede residir en memoria RAM, memoria instantánea, memoria ROM, memoria EPROM, memoria EEPROM, registros, disco duro, un disco removible, un CD-ROM, o cualquier otra forma de medio de almacenamiento conocida en la técnica. Un medio de almacenamiento ejemplar está acoplado al procesador de manera que el procesador pueda leer información de, y escribir información en el medio de almacenamiento. En la alternativa, el medio de almacenamiento puede ser parte integral del procesador. El procesador y el medio de almacenamiento pueden residir en un Circuito Integrado de Aplicación Especifica (ASIC) . El ASIC puede residir en un módem inalámbrico. En la alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en el módem inalámbrico.
La descripción previa de los ejemplos descritos se provee para permitir a cualquier experto en la técnica hacer o utilizar los métodos y aparato descritos. Varias modificaciones a estos ejemplos serán fácilmente aparentes para aquellos expertos en la técnica, y los principios genéricos aquí definidos se pueden aplicar a otros ejemplos y se pueden agregar elementos adicionales. Por lo tanto, se han descrito métodos y aparatos para ejecutar una codificación altamente eficiente de datos multimedia que proveen una calidad de decodificación y ocultamiento de error eficientes.

Claims (34)

NOVEDAD DE LA INVENCION Habiendo descrito el presente invento, se considera como una novedad y, por lo tanto, se reclama como prioridad lo contenido en las siguientes: REIVINDICACIONES
1. - Un método para procesar datos multimedia, incluyendo una pluralidad de cuadros de video, el método comprende : inicializar un contador de referencia a nivel de pixel para un cuadro actual; ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual; y reajustar un mapa de ancho de banda de macrobioque del cuadro actual.
2. - El método de conformidad con la reivindicación 1, caracterizado porque el contador de referencia a nivel de pixel es indexado a un ancho y un alto del cuadro actual.
3. - El método de conformidad con la reivindicación 2, caracterizado porque el contador de referencia a nivel de pixel es provisto por una primera ecuación R{i, j) = 0, donde 0 < i < W, 0 < j < H, W es el ancho del cuadro actual, y H es la altura del cuadro actual .
4. - El método de conformidad con la reivindicación 3, caracterizado porque la predicción del siguiente cuadro incluye ejecutar el cálculo de movimiento para bloques del siguiente cuadro.
5. - El método de conformidad con la reivindicación 1, que además comprende: incrementar el contador de referencia a nivel de pixel para cada pixel del cuadro actual que es referenciado durante la predicción del siguiente cuadro.
6. - El método de conformidad con la reivindicación 5, caracterizado porque el mapa de ancho de banda del macrobloque para el cuadro actual es reajustado con base, por lo menos en parte, en el contador de referencia a nivel de pixel incrementado.
7. - El método de conformidad con la reivindicación 6, caracterizado porque para el macrobloque 16x16 (x,y), el reajuste del mapa de ancho de banda del macrobloque del cuadro actual incluye escalar los valores del mapa de ancho de banda de escalación del mapa de ancho de banda del macrobloque de acuerdo con una segunda ecuación, C + ?t+'5?^5 ?(, ) , en donde C es una constante determinada por experimento, y R(i,j) es el contador de referencia a nivel de pixel para el macrobloque 16x16 (x,y).
8. - El método de conformidad con la reivindicación 1, que además comprende repetir los pasos de inicialización, ejecución y reajuste para cada siguiente cuadro en una pluralidad de siguientes cuadros haciendo referencia al cuadro actual.
9. - El método de conformidad con la reivindicación 8, que además comprende codificar el cuadro actual con base, por lo menos en parte, en el mapa de ancho de banda de macrobloque reajustado del cuadro actual .
10. - Un procesador para procesar datos multimedia incluyendo una pluralidad de cuadros de video, está configurado para: inicializar un contador de referencia a nivel de pixel para un cuadro actual; ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual; y reajustar un mapa de ancho de banda de macrobloque del cuadro actual.
11. - El procesador de conformidad con la reivindicación 10, caracterizado porque el contador de referencia a nivel de pixel es indexado a un ancho y un alto del cuadro actual.
12.- El procesador de conformidad con la reivindicación 11, caracterizado porque el contador de referencia a nivel de pixel es provisto por una primera ecuación R{i, j) = 0, donde 0 < i < W, 0 < j < E, fí es el ancho del cuadro actual, y H es la altura del cuadro actual.
13.- El procesador de conformidad con la reivindicación 12, caracterizado porque la predicción del siguiente cuadro incluye una predicción del cálculo de movimiento para bloques del siguiente cuadro.
14.- El procesador de conformidad con la reivindicación 10, que además comprende: incrementar el contador de referencia a nivel de pixel para cada pixel del cuadro actual que es referenciado durante la predicción del siguiente cuadro.
15.- El procesador de conformidad con la reivindicación 14, caracterizado porque además está configurado para reajustar el mapa de ancho de banda del macrobloque para el cuadro actual con base, por lo menos en parte, en el contador de referencia a nivel de pixel incrementado.
16.- El procesador de conformidad con la reivindicación 15, caracterizado porque además está configurado para que el macrobloque 16x16 (x,y) escale valores de mapa del ancho de banda del mapa de ancho de banda del macrobloque a una segunda ecuación + ^^5^^5^(,j), en donde C es una constante determinada por experimento, y R(i,j) es el contador de referencia a nivel de pixel para el macrobloque 16x16 (x,y).
17.- El procesador de conformidad con la reivindicación 10, caracterizado porque además está configurado para repetir las funciones de inicialización, ejecución y reajuste para cada siguiente cuadro en una pluralidad de siguientes cuadros haciendo referencia al cuadro actual.
18.- El procesador de conformidad con la reivindicación 17, caracterizado porque además está configurado para codificar el cuadro actual con base, por lo menos en parte, en el mapa de ancho de banda de macrobloque reajustado del cuadro actual.
19.- Un aparato para procesar datos multimedia incluyendo una pluralidad de cuadros de video, el aparato comprende : un iniciali zador para inicializar un contador de referencia a nivel de pixel para un cuadro actual; un realizador para ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual; y un reajustador para reajustar un mapa de ancho de banda de macrobloque del cuadro actual.
20.- El aparato de conformidad con la reivindicación 19, caracterizado porque el contador de referencia a nivel de pixel es indexado a un ancho y un alto del cuadro actual.
21.- El aparato de conformidad con la reivindicación 20, caracterizado porque el contador de referencia a nivel de pixel es provisto por una primera ecuación R{i, j) = 0, donde 0 < i < W, 0 < j < H, W es el ancho del cuadro actual, y H es la altura del cuadro actual.
22.- El aparato de conformidad con la reivindicación 21, caracterizado porque la predicción del realizador del siguiente cuadro incluye una predicción del cálculo de movimiento para bloques del siguiente cuadro .
23.- El aparato de conformidad con la reivindicación 19, que además comprende: un incrementador para incrementar el contador de referencia a nivel de pixel para cada pixel del cuadro actual que es referenciado durante la predicción del siguiente cuadro.
24.- El aparato de conformidad con la reivindicación 23, caracterizado porque el reajustador además reajusta el mapa de ancho de banda del macrobloque para el cuadro actual con base, por lo menos en parte, en el contador de referencia a nivel de pixel incrementado.
25. - El aparato de conformidad con la reivindicación 24, que además comprende, para un macrobloque 16x16 (x,y), un escalador para escalar valores de mapa del ancho de banda del mapa de ancho de banda del macrobloque a una segunda ecuación en donde C es una constante determinada por experimento, y R(i,j) es el contador de referencia a nivel de pixel para el macrobloque 16x16 (x,y). 26. - El aparato de conformidad con la reivindicación 19, que además comprende un repetidor para coordinar las funciones de repetición del inicializador , realizador y reajustador para cada siguiente cuadro en una pluralidad de siguientes cuadros haciendo referencia al cuadro actual. 27.- El aparato de conformidad con la reivindicación 26, que además comprende un codificador para codificar el cuadro actual con base, por lo menos en parte, en el mapa de ancho de banda de macrobloque reajustado del cuadro actual. 28.- Un aparato para procesar datos multimedia, incluyendo una pluralidad de cuadros de video, el aparato comprende : medios para inicializar un contador de referencia a nivel de pixel para un cuadro actual; medios para ejecutar una predicción de un siguiente cuadro haciendo referencia al cuadro actual; y medios para reajustar un mapa de ancho de banda de macrobloque del cuadro actual. 29. - El aparato de conformidad con la reivindicación 28, caracterizado porque el contador de referencia a nivel de pixel es indexado a un ancho y un alto del cuadro actual. 30. - El aparato de conformidad con la reivindicación 29, caracterizado porque el contador de referencia a nivel de pixel es provisto por una primera ecuación R(i, j) = 0, donde 0 < i < W, 0 < j < H, W es el ancho del cuadro actual, y H es la altura del cuadro actual . 31. - El aparato de conformidad con la reivindicación 30, caracterizado porque los medios de predicción del siguiente cuadro incluyen medios para ejecutar el cálculo de movimiento para bloques del siguiente cuadro. 32. - El aparato de conformidad con la reivindicación 28, que además comprende: medios para incrementar el contador de referencia a nivel de pixel para cada pixel del cuadro actual que es referenciado durante la predicción del siguiente cuadro. 33. - El aparato de conformidad con la reivindicación 32, caracterizado porque el mapa de ancho de banda del macrobloque para el cuadro actual es reajustado con base, por lo menos en parte, en el contador de referencia a nivel de pixel incrementado. 34.- El aparato de conformidad con la reivindicación 33, caracterizado porque para el macrobloque 16x16 (x,y), los medios para reajustar el mapa de ancho de banda del macrobloque del cuadro actual incluyen medios para escalar el mapa de ancho de banda de escalación del mapa de ancho de banda del macrobloque de acuerdo con una segunda ecuación, en donde C es una constante determinada por experimento, y R(i,j) es el contador de referencia a nivel de pixel para el macrobloque 16x16 (x,y). 35.- El aparato de conformidad con la reivindicación 28, que además comprende medios para repetir los medios de inicialización, ejecución y reajuste para cada siguiente cuadro en una pluralidad de siguientes cuadros haciendo referencia al cuadro actual. 36.- El aparato de conformidad con la reivindicación 35, que además comprende medios para codificar el cuadro actual con base, por lo menos en parte, en el mapa de ancho de banda de macrobloque reajustado del cuadro actual. 37.- Un medio legible por máquina para procesar datos multimedia, incluyendo una pluralidad de cuadros de video, que comprende instrucciones que, al momento de su ejecución, ocasionan que una máquina: inicialice un contador de referencia a nivel de pixel para un cuadro actual; ejecute una predicción de un siguiente cuadro haciendo referencia al cuadro actual; y reajuste un mapa de ancho de banda de macrobloque del cuadro actual. 38.- El medio legible por máquina de conformidad con la reivindicación 37, caracterizado porque el contador de referencia a nivel de pixel es indexado a un ancho y un alto del cuadro actual. 39.- El medio legible por máquina de conformidad con la reivindicación 38, caracterizado porque el contador de referencia a nivel de pixel es provisto por una primera ecuación R(i, j) = 0, donde 0 < i < W, 0 = j < H, N es el ancho del cuadro actual, y H es la altura del cuadro actual. 40.- El medio legible por máquina de conformidad con la reivindicación 39, que además comprende instrucciones que, al momento de su ejecución ocasionan que la máquina realice una predicción de cálculo de movimiento para bloques del siguiente cuadro. 41.- El medio legible por máquina de conformidad con la reivindicación 37, que además comprende instrucciones que, al momento de su ejecución, ocasionan que la máquina: incremente el contador de referencia a nivel de pixel para cada pixel del cuadro actual que es referenciado durante la predicción del siguiente cuadro. 42. - El medio legible por máquina de conformidad con la reivindicación 41, que además comprende instrucciones que, al momento de su ejecución, ocasionan que la máquina reajuste el mapa de ancho de banda del macrobloque para el cuadro actual con base, por lo menos en parte, en el contador de referencia a nivel de pixel incrementado. 43. - El medio legible por máquina de conformidad con la reivindicación 42, caracterizado porque además está configurado para, para el macrobloque 16x16 (x,y), escalar los valores del mapa de ancho de banda del mapa de ancho de banda del macrobloque de acuerdo con una segunda ecuación, C + ?_+^5?^'5./?(/,y), en donde C es una constante determinada por experimento, y R(i,j) es el contador de referencia a nivel de pixel para el macrobloque 16x16 (x,y) . 44. - El medio legible por máquina de conformidad con la reivindicación 37, que además comprende instrucciones que, al momento de su ejecución, ocasionan que la máquina repita las funciones de inicializar, ejecutar y reajustar cada siguiente cuadro en una pluralidad de siguientes cuadros haciendo referencia al cuadro actual. 45.- El medio legible por máquina de conformidad con la reivindicación 44, que además comprende instrucciones que, al momento de su ejecución, ocasionan que la máquina codifique el cuadro actual con base, por lo menos en parte, en el mapa de ancho de banda de macrobloque reajustado del cuadro actual.
MXMX/A/2008/009312A 2006-01-20 2008-07-18 Metodo y aparato para algoritmos de resiliencia de error en comunicacion inalambrica de video MX2008009312A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60/760,755 2006-01-20
US60/760,678 2006-01-20

Publications (1)

Publication Number Publication Date
MX2008009312A true MX2008009312A (es) 2008-10-03

Family

ID=

Similar Documents

Publication Publication Date Title
AU2007205840C1 (en) Method and apparatus for error resilience algorithms in wireless video communication
EP1980115B1 (en) Method and apparatus for determining an encoding method based on a distortion value related to error concealment
US8170124B2 (en) MPEG-4 streaming system with adaptive error concealment
US7606313B2 (en) System, method, and apparatus for error concealment in coded video signals
US20070153898A1 (en) Hybrid error concealment method
Tsai et al. Joint temporal and spatial error concealment for multiple description video coding
KR20000050599A (ko) 오류 은폐방법
Hrušovský et al. Temporal-spatial error concealment algorithm for intra-frames in H. 264/AVC coded video
Katsaggelos et al. Error concealment for MPEG-2 video
Hsu et al. MPEG-2 spatial scalable coding and transport stream error concealment for satellite TV broadcasting using Ka-band
MX2008009312A (es) Metodo y aparato para algoritmos de resiliencia de error en comunicacion inalambrica de video
KR100801155B1 (ko) H.264에서의 저복잡도를 가지는 공간적 에러 은닉방법
Kolkeri et al. Error concealment techniques in h. 264/avc for wireless video transmission in mobile networks
Kim et al. Hybrid error concealment method for H. 264/AVC
Parameswaran et al. Adapting quantization offset in multiple description coding for error resilient video transmission
Xu et al. A perceptual sensitivity based redundant slices coding scheme for error-resilient transmission H. 264/AVC video
Suh et al. Motion vector recovery for error concealment based on distortion modeling
Rhaiem et al. New robust decoding scheme-aware channel condition for video streaming transmission
FMO OF H. 264/AVC
Apostolopoulos Error-resilient video compression
Shin et al. An improved error concealment for mobile IPTV
Choi et al. Temporal error concealment with block boundary smoothing
Garg et al. Variable complexity motion compensated error concealment in video coding
Tian A Review of Error Resilience Technique for Video Coding Using Concealment
Wang Research on error resilient schemes for video transmission