MXPA04008889A - Metodo para la codificacion de movimiento en una secuencia de video. - Google Patents

Metodo para la codificacion de movimiento en una secuencia de video.

Info

Publication number
MXPA04008889A
MXPA04008889A MXPA04008889A MXPA04008889A MXPA04008889A MX PA04008889 A MXPA04008889 A MX PA04008889A MX PA04008889 A MXPA04008889 A MX PA04008889A MX PA04008889 A MXPA04008889 A MX PA04008889A MX PA04008889 A MXPA04008889 A MX PA04008889A
Authority
MX
Mexico
Prior art keywords
segment
movement
frame
motion
prediction
Prior art date
Application number
MXPA04008889A
Other languages
English (en)
Inventor
Lainema Jani
Original Assignee
Nokia Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=28042010&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=MXPA04008889(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Corp filed Critical Nokia Corp
Publication of MXPA04008889A publication Critical patent/MXPA04008889A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

Un metodo de codificacion de video compensado por movimiento, que permite una secuencia de video con un componente de movimiento global a ser codificado en una manera eficiente. Se configura un codificador de video (600) para asignar macrobloques a ser codificados a modos de codificacion especificos incluyendo un modo de omision, que se usa para indicar uno de dos tipos posibles de movimiento de macrobloque: (a) movimiento cero, o (b) movimiento global o regional. Cuando se codifica cada macrobloque, una region previamente codificada que rodea al macrobloque se examina y se determinan las caracteristicas de movimiento en esa region. Con el modo de omision, el macrobloque a codificarse y un vector de movimiento que describe el movimiento global o movimiento regional se asocia con el macrobloque si el movimiento en la region es caracteristico del movimiento global o movimiento regional. Si la region muestra un nivel insignificante de movimiento, un vector de movimiento con valor de cero se asocia con el macrobloque.

Description

METODO PARA LA CODIFICACION DE MOVIMIENTO EN UNA SECUENCIA DE VIDEO Campo de la Invención La invención se refiere generalmente a sistemas de comunicación y más particularmente a la compensación de movimiento en una codificación de video. Antecedentes de la Invención Una secuencia de video digital como una película de movimiento ordinaria grabada en película, comprende una secuencia de imágenes fijas, la ilusión de movimiento se crea al desplegar imágenes consecutivas de la secuencia, una después de la otra, a una velocidad relativamente rápida, típicamente de 15 a 30 cuadros por segundo. Debido a la velocidad relativamente rápida del despliegue de cuadro, las imágenes en cuadros consecutivos tienden a ser bastante similares y contienen así una cantidad considerable de información redundante. Por ejemplo, una escena típica puede comprender algunos elementos estacionarios tales como un escenario de fondo, y algunas áreas en movimiento que pueden tomar muchas formas diferentes por ejemplo, el rostro de un lector de noticias, tráfico en movimiento y así sucesivamente. Alternativamente o adicionalmente el denominado movimiento global pueden estar presente en la secuencia de video por ejemplo, debido a la traducción, toma Ref . : 158494 panorámica o acercamiento de la cámara que graba la escena. Sin embargo en muchos casos, el cambio global entre un cuadro de video y el siguiente es bastante pequeño. Cada cuadro de una secuencia de video digital sin comprimir comprende una configuración de imágenes. Por ejemplo, en un forma de video digital comúnmente usado conocido como el Formato de Intercambio Común en Cuadrante (QCIF por sus siglas en inglés) , un cuadro comprende una configuración de 176 X 144 píxeles, en cuyo paso cada cuadro tiene 25,344 píxeles. A su vez, cada píxel se representa por un cierto número de bits que lleva información acerca de la luminancia y/o contenido de color de la región de la imagen que corresponde al píxel . Comúnmente un modelo de color denominado YUV se usa para representar la luminancia y el contenido del crominancia de la imagen. El componente de luminancia o Y, representa la intensidad (brillo de la imagen) mientras que el contenido de color de la imagen está representado por dos componentes de diferencia de color crominancia, etiquetados como U y V. Los modelos de color basados en la representación de luminancia/crominancia del contenido de imagen proporcionan ciertas ventajas comparadas con los modelos de color que se basan en una representación que involucra los colores primarios (esto es, rojo, verde y azul, RGB). El sistema visual humano es más sensible a las variaciones de intensidad que a las variaciones de color y los modelos de color YUV explotan esta propiedad por el uso de una resolución espacial inferior para los componentes de crominancia (U, V) que para el componente de luminancia (Y) . De esta manera la cantidad de información necesaria para codificar la información de color en una imagen se puede reducir con una reducción aceptable en la calidad de la imagen. La resolución espacial inferior de los componentes de crominancia se alcanza usualmente por un submuestreo espacial. Típicamente cada estructura de una secuencia de video se divide en los denominados macrobloques que comprenden información de luminancia Y e información de crominancia asociada (espacialmente submuestreado) (U,V). La figura 3 ilustra una forma en la cual se pueden formar los macrobloques. La figura 3a muestra una estructura de una secuencia de video representada usando un modelo del color YUV, cada componente tiene la misma resolución espacial. Se forman macrobloques al representar una región de 16 X 16 píxeles de imagen en la imagen original (figura 3b) como cuatro bloques de información de luminancia, cada bloque de luminancia comprende una configuración 8 X 8 de valores de luminancia (Y) y dos componentes de crominancia espacialmente correspondiente (U y V) que se submuestrean por un factor de dos en las direcciones horizontal y vertical para producir las configuraciones correspondientes de valores de crominancia de 8 X 8 (U,V) (ver figura 3c) .
Una imagen QCIF comprende 11 X 9 macrobloques , si los bloques de luminancia y bloques de crominancia se representan con una resolución de 8 bits (esto es por los números en el rango de 0 a 255) el número total de bits requerido por macrobloques es ( 16x16x8 ) +2x ( 8x8x8 ) =3072 bits. El número de bits necesario para representar una estructura de video en un formato QCIF es entonces 99 x 3072= 304,128 bits. Esto significa que la cantidad de datos requerida para transmitir/grabar/desplegar una secuencia de video sin comprimir en un formato QCIF, representado usando un modelo de color YUV a una velocidad de 30 cuadros por segundo es más de 9Mbps (millones de bits por segundo) . Esta es una relación de datos extremadamente grande y no es práctica para su uso en grabación de video, aplicaciones de transmisión y despliegue debido a la capacidad de almacenamiento muy grande, capacidad del canal de transmisión y desempeño requerido del hardware. Si se van a transmitir datos de video en tiempo real sobre una red de línea fija tal como una ISDN (Red Digital de Servicios Integrados) o una PSTN convencional (Red de Teléfonos de Conmutación Publica) , el ancho de banda de la transmisión de datos disponible está típicamente en el orden de 64Kbits/s. En la videotelefonía móvil, en donde la transmisión tiene lugar al menos en parte sobre una unión de radiocomunicaciones, el ancho de banda disponible puede ser tan bajo como 20kbits/s. Esto significa que una reducción importante en la cantidad de información usada para representar datos de video se debe alcanzar con objeto de permitir la transmisión de secuencias de video digitales sobre un red de comunicación de banda ancha baja. Por esta razón se han desarrollado técnicas de compresión de video que reducen la cantidad de información transmitida mientras se conserva una calidad aceptable de imagen. Los métodos de compresión de video se basan en la reducción de partes redundante y perceptualmente irrelevantes de secuencias de video. La redundancia en las secuencias de video se puede categorizar en una redundancia espacial, temporal y espectral. La redundancia espacial es el término usado para describir la correlación (similitud) en píxeles vecinos dentro de un cuadro. El término "redundancia temporal", expresa el hecho de que los objetos que aparecen en un cuadro de una secuencia es probable que aparezcan en los cuadros subsecuentes, mientras que las redundancia espectral se refiere a la correlación entre diferentes componentes de color de la misma imagen. Una compresión suficientemente eficiente no se puede lograr usualmente al reducir simplemente las diversas formas de redundancia en una secuencia dada de imágenes. Así, la mayoría de los codificadores actuales de video también reducen la calidad de aquellas partes de la secuencia de video que son subjetivamente las menos importantes. Además, la redundancia de la corriente de bits de video comprimida misma se redujo por medio de una codificación de menos pérdida eficiente. Generalmente esto se logra al usar una técnica conocida como codificación de entropía. Existe a menudo una cantidad importante de redundancia espacial entre los pixeles que construyen cada cuadro de una secuencia de video digital. En otras palabras, el valor de cualquier píxel dentro de un cuadro de la secuencia es substancialmente igual que el valor de otros pixeles en su vecindad inmediata. Típicamente los sistemas de codificación de video reducen la redundancia espacial usando una técnica conocida como codificación de transformación basada en bloques, en la cual una transformada matemática tal como una transformada de cosenos de dos dimensiones discretas (DCT) se aplica a los bloques de los pixeles de imágenes. Esto transforma los datos de imágenes de una representación que comprende valores de píxel hasta una forma que comprende un conjunto de valores de coeficiente representativo de los componentes de frecuencia espaciales, con lo que se reduce significativamente la redundancia espacial y se produce con ello una representación más compacta de los datos de imagen.
Las estructuras de una secuencia de video que se comprime usando una codificación de transformada basada en bloques, sin referencia a ningún otro cuadro dentro de la secuencia se refiere como cuadros "I" o codificados INTRA. Adicionalmente y donde es posible los bloques del cuadro codificados INTRA se predicen de bloques previamente codificados dentro del mismo cuadro. Esta técnica conocida como predicción INTRA tiene el efecto de reducir además la cantidad de datos requeridos para representar un cuadro codificado INTRA. Generalmente los sistemas de codificación de video no solamente reducen la redundancia espacial dentro de cuadros individuales de una secuencia de video, sino también hacen uso de una técnica conocida como predicción compensada de movimiento, para reducir la redundancia temporal en la secuencia. Al usar una predicción compensada de movimiento, el contenido de imagen de algunos (a menudo muchos) cuadros en una secuencia de video digital se predice de una o más de otros cuadros en la secuencia, conocidos como cuadros de referencia. La predicción del contenido de imagen se logra al rastrear el movimiento de los objetos o regiones de una imagen entre un cuadro hacer codificado (comprimido) y, los cuadros de referencia usando vectores en movimiento. En general los cuadros de referencia pueden anteceder al cuadro a ser codificado o pueden seguirlo en la secuencia de video. Como en el caso de la codificación INTRA, la predicción compensada en movimiento de un cuadro de video se efectúa típicamente de macrobloque por macrobloque.
Los cuadros de una secuencia de video que se comprimen usando una predicción comprimida en video se refieren generalmente como cuadros P o codificados INTER. La predicción compensada de movimientos sola raramente proporciona una representación suficientemente precisa del contenido de imagen de un cuadro de video y por lo tanto es típicamente necesaria para proporcionar un denominado cuadro de "error de predicción" (PE) con cada cuadro codificado INTER. El cuadro de error de predicción representa la diferencia entre una versión descodificada del cuadro codificado INTER y el contenido el cuadro a ser codificado, más específicamente, el cuadro de error de predicción comprende valores que representan la diferencia entre los valores de píxel en el cuadro a ser codificado y/o valores de píxel reconstruidos correspondiente formados sobre la base de una versión predicha del cuadro en cuestión. Consecuentemente el cuadro de error de predicción tiene características similares a una imagen estática y una codificación de transformada basada en bloque se pueden aplicar con objeto de reducir la redundancia espacial y así la cantidad de datos (números de bits) requerido para representar. Con objeto de ilustrar la operación de un sistema de codificación de video genérico en mayor detalle, se hará referencia ahora a un codificador de video ejemplar y un descodificador de video ilustrado en las figuras 1 y 2 de los dibujos anexos. El codificador de video 100 de la figura 1 emplea una combinación de codificación INTRA e INTER para producir una corriente de bits de video comprimida (codificada) y un descodificador 200 de la figura 2 se configura para recibir y descodificar la corriente de bits de video producida por el codificador 100 con objeto de producir una secuencia de nivel reconstruida. A lo largo de la siguiente descripción, se asumirá que el componente de luminancia de un macrobloque comprende 16 X 16 píxeles configurados como una configuración de 4 , 8 X 8 bloques y que los componentes asociados de crominancia se submuestrean especialmente por un factor de dos en las direcciones horizontal y vertical para formar bloques de 8 X 8 como se detalla en la figura 3. La extensión de la descripción a otros tamaños de bloque y otros esquemas de submuestreo será evidente para aquellos de experiencia ordinaria en la técnica . El codificador de video 100 comprende una entrada 101 para recibir una señal de video digital de una cámara u otra fuente de video (no se muestra) . También comprende una unidad de transformación 104 que se configura para efectuar una transformada de coseno discreto basada en bloque (DCT) , un cuantificador inverso 106 una unidad de transformación inversa 108 configurada para efectuar una transformada 110 de coseno discreto basada en bloques inversa (IDCT) , los combinadores 112 y 116 y una almacenamiento de cuadros 120. El codificador comprende además un estimador de movimiento 130, un codificador de campo de movimiento 140 y un predictor compensado de movimiento 150. Los interruptores 102 y 114 se operan cooperativamente por un administrador de control 160 para interrumpir el codificador entre un modo de INTRA de video que codifica y un modo INTER de codificación de video. El codificador 100 también comprende un codificador múltiple de video 170 que forma una corriente sencilla de bit a partir de los diversos tipos de formación producido por el codificador 100 para una transmisión adicional a una terminal remota efectora o por ejemplo, para almacenar en un medio de almacenamiento de masa tal como un disco duro de computadora (no se muestra) . El codificador 100 opera como sigue. Cada cuadro de video sin comprimir suministrado de la fuente del video a la entrada 101 se recibe y se procesa macrobloques por macrobloques , preferiblemente en un orden de recorrido de ráster. Cuando la codificación de una nueva secuencia de video comienza, el primer cuadro a codificarse se codifica como un cuadro codificado INTRA. Posteriormente se programa el codificador para codificar cada cuadro en un formato codificado INTER, a menos que se cubra una de las siguientes condiciones: 1) se juzga que el macrobloque actual del cuadro que se codifica es tan diferente de los de los valores de píxel en el cuadro de preferencia usado en su predicción, que se produce una información con un error de producción excesivo, en cuyo caso el macrobloque actual se codifica en un formato codificado INTRA 2) ha expirado un intervalo de repetición de cuadro INTRA predecible o 3) se recibe la retroalimentación de la terminal receptora donde se indica que una petición de un cuadro se suministre en un forma codificado INTRA. La presencia de la condición 1) se detecta al observar la calidad del combinador 116. El combinador 116 forma una diferencia entre el macrobloque actual del cuadro al codificarse y su predicción producida en un bloque de predicción condensado en movimiento 150. Si una medida de esta diferencia (por ejemplo, una suma de las diferencias absolutas de los valores de píxel) supera un umbral predeterminado, el combinador 116 informa al administrador de control 160 por medio de una línea de control 119 y el gerente de control 160 opera los interruptores 102 y 114 por medio de la línea de control 113 de manera que se conmute en codificador 100 dentro de modo codificador INTRA. De esta manera, un cuadro que se codifica de otra manera en un formato codificado con INTER, puede comprender macrobloques codificados con INTRA. La presencia de una condición 2) se observa por medio de un contador de cronometro o de cuadro implantado en el administrador de control 160, en una forma tal que si expira el cronómetro, o el contador de cuadro alcanza un número predeterminado de cuadros, el administrador de control 160 opera los interruptores 102 y 114 por medio de la línea de control 113 para conmutar el codificador a un modo codificador INTRA. La condición 3) se dispara si el administrador de control 160 recibe una señal de retroalimentación de por ejemplo, una terminal receptora por medio de la línea de control 121 lo que indican que una renovación del cuadro INTRA se requiere por la terminal receptora. Tal condición puede resultar por ejemplo, si un cuadro previamente transmitido se afecta equivocadamente por la interferencia durante su transmisión, asiendo imposible descodificar en el receptor. En esta situación el descodificador receptor emite una solicitud para el siguiente cuadro a ser codificado en el formato codificado INTRA, reinicializando así la secuencia codificadora. La operación del codificador 100 en el modo codificador INTRA se describirá ahora en el modo codificador INTRA en administrador de control 160 opera el interruptor 102 para aceptar la entrada de video la línea de entrada 118. La entrada de la señal de video se recibe un macrobloque por macrobloque desde la entrada 101 por medio de la línea de entrada 118. Cuando se reciben los bloques de los valores de luminancia y crominancia que constituyen el macrobloque se pasan al bloque de transformación DCT 104 que efectúa una transformada de coseno discreto dimensional en cada bloque de valores, producción una configuración bidimensional de coeficientes de DCT para cada bloque. El bloque de transformación de DCT 104 produce una configuración de valores de coeficiente para cada bloque, el número de valores de coeficiente corresponde a las dimensiones de los bloques que constituyen en macrobloque (en este caso 8 X 8) . Los coeficientes DCT para cada bloque se pasan al cuantificador 106 en donde se cuantifican usando un parámetro de cuantificación QP. La selección del parámetro de cuantificación QP se controla por el administrador de control 160 por medio de la línea del control 115. La configuración de los coeficientes DCT cuantificados para cada bloque luego se pasa desde el cuantificador 106 al codificador múltiplex de video 170 como se indica por la línea 125 en la figura 1. El codificador múltiplex de video 170 ordena los coeficientes de transformadas cuantificados para cada bloque usando un procedimiento de barrido en zigzag con lo cual se convierte la configuración bidimensional de los coeficientes de transformada cuantificados en una configuración unidimensional. Cada coeficiente cuantizado de valor que no es cero en la configuración bidimensional, luego se representa como un par de valores referidos como nivel y corrida, en donde el nivel es el valor del coeficiente cuantizado y corrida en el número de coeficientes consecutivo con valor de cero que anteceden al coeficiente en cuestión. Los valores de nivel de corrida se comprimen además en el codificador múltiplex de video 170 usando una codificación de intropia por ejemplo, una codificación de longitud variable (VLC) o codificación aritmética. Una vez que los valores de corrida y de nivel se han codificado con entropía usando un método adecuado, el codificador múltiplex de video 170 combina además con la información de control, también la entropía se codifica usando un método adecuado para el tipo de información en cuestión, para formar una corriente de bits sencilla comprimida de información de imagen codificada 135. Se debe observar aunque se ha descrito la codificación de entropía en conjunto con las operaciones efectuadas por el codificador múltiplex de video 170, en implementaciones activadas se pueden suministrar una unidad de codificación de entropía por separado . Una versión localmente descodificada del macrobloque también se forma en el codificador 100. Esto se hace al pasar los coeficientes de transformada cuantizado para cada bloque, la salida del cuantizador 106 a través del cuantizador inverso 108 y aplicar una transformada inversa DCT en un bloque de transformación inverso 110. De esta manera una configuración reconstruida de valores de píxel se construye para cada bloque del macrobloque. Los datos de imagen descodificada resultantes son entrada al combinador 112. En el modo de codificación INTRA, el interruptor 114 se fija de manera que la entrada al combinador 112 por medio del interruptor 114 es cero. De esta manera la operación efectuada por el combinador 112 es equivalente a pasar los datos de la imagen descodificada sin alterar. A medida de que se reciben los macrobloques posteriores del cuadro actual y se someten a etapas de codificación y descodificación locales previamente descritas en los bloques 104, 106, 108,110 y 112, una versión descodificada del cuadro codificado con INTRA se acumula en el almacén de cuadros 120. Cuando el último macrobloque del cuadro actual a sido codificado en INTRA y posteriormente descodificado, el almacén de cuadros 120 contiene un cuadro completamente descodificado disponible para su uso como un cuadro de referencia de predicción de movimiento al codificar un cuadro de video posteriormente recibido en el formato codificado con INTER . La operación del codificador 100 en el modo de codificación INTER se describirá ahora. En el modo de codificación INTER, el administrador de control 160 opera el interruptor 102 para recibir su entrada desde la línea 117 que comprende la salida del combinador 116. El combinador 116 recibe en macrobloque de la señal de entrada de video por el macrobloque desde la entrada 116. Cuando el combinador 116 recibe los bloque de los valores de luminancia y crominancia que constituyen el macrobloque forma los bloques correspondientes de la información de error de predicción 101. La información de error de predicción representa la diferencia entre el bloque en cuestión y su predicción producida en un bloque de predicción compensada en movimiento 150. Más específicamente la información de error de predicción para cada bloque del macrobloque comprende una configuración bidimensional de valores, cada uno de los cuales representa la diferencia entre un valor de pixel en el bloque de la información del luminancia o crominancia que se codifica y un valor de pixel descodificado obtenido al formar una predicción compensada en movimiento para el bloque de acuerdo con el procedimiento que se describe a continuación. Así en el sistema de codificación de video ejemplar considerado aquí en donde cada macrobloque comprende por ejemplo, un ensamble de bloques de 8 X 8 que comprende valores de luminancia y crominancia, la información de error de predicción para cada bloque del macrobloque comprende similarmente una configuración 8 X 8 del valor del error de predicción . La información de error de predicción para cada bloque del macrobloque se pasa al bloque de información DCT 104 que efectúa una transformada de coseno discreto bidimensional sobre cada bloque de valores de errores de predicción para producir una configuración bidimensional para producir una configuración bidimensional de coeficiente de transformada de DCT para cada bloque. El bloque de transformación DCT 104 produce una configuración de valores de coeficiente para cada bloque de error de predicción, el número de valores de coeficientes corresponde a las dimensiones de los bloques que preparan los macrobloques (en este caso 8 X 8) . Los coeficientes de transformada derivados de cada bloque de error de predicción se pasan al cuantizador 106 en donde se cuantizan usando un parámetro de cuantización QP en una forma análoga a aquella descrita arriba junto con la operación del codificador en el modo de codificación INTRA. Como anteriormente, la selección del parámetro de cuantización QP se controla por el administrador de control 160 por medio de la línea de control 115. Los coeficientes cuantizados DCT que representan la información de error de predicción para cada bloque de un macrobloque se pasan desde el cuantizador 170 al codificador múltiplex de video 170 como se indica por la línea 125 en la figura 1. Como en el modo de codificación INTRA, el codificador múltiplex de video 170 ordena los coeficientes de transformada para cada bloque de error de predicción usando un cierto procedimiento de barrido en zigzag y luego representa cada coeficiente cuantizado con un valor que no es cero como un parte de corrida - nivel comprende además los niveles de corrida del nivel usando una codificación de entropía en una forma análoga a aquella antes descrita junto con el modo de codificación INTRA. El codificador múltiplex de video 170 también recibe información del vector de movimiento (descritos en los siguientes) desde el campo de movimiento que codifica el bloque 140 por medio de la línea 126 y la información de control del administrador de control 160. Codifican la entropía de la información del vector de movimiento y la información de control informa una corriente sencilla de litios de información de imagen codificada 135 que comprende el vector de movimiento codificado en la entropía, el error de predicción y la información de control.
Los coeficientes cuantizados DCT que representan la información del error de predicción para cada bloque del macrobloque también pasan desde el cuantizador 106 para invertir el cuantizador 108. Aquí cuantizan a la inversa y los bloques resultantes de los coeficientes DCT cuantizados inversos se aplican al bloque de transformada DCT inversa 110 en donde se someten a una transformación DCT inversa para producir bloques localmente descodificados de valores de error de predicción. Los bloques localmente descodificados de los valores de error de predicción luego se introducen al combinador 112. En el modo de codificación INTER, se fija un interruptor 114 de manera que el combinador 112 también reciba los valores predichos de píxel para cada bloque del macrobloque , generado por el bloque de predicción compensado de movimiento 150. El combinador 112 combina cada uno de los bloques localmente descodificados de valores de error de predicción con un bloque correspondiente de los valores de píxel predichos para producir bloques de imágenes reconstruidas y las almacena en el almacén de cuadro 120. Cuando los macrobloques subsecuentes de la señal de video se reciben de la fuente de video, y se someten a etapas de codificación y descodificación previamente descritas en los bloques 104, 106, 108, 110, 112, se acumula una versión descodificada del cuadro en el almacén de cuadro 120. Cuando el último macrobloque del cuadro se ha procesado el almacén de cuadro 120 contiene un cuadro completamente descodificado disponible para su uso para un cuadro de referencia de predicción de movimiento al codificar un cuadro de video subsecuentemente recibido en el formato de codificación INTER. Los detalles de la predicción compensada por movimiento efectuada por el codificador de video 100 se considerarán ahora . Cualquier cuadro codificado el formato codificado INTER requiere de un cuadro de referencia para una producción compensada por movimiento. Esto significa necesariamente que cuando se codifica una secuencia de video, el primer cuadro a codificarse ya se ha que es el primer cuadro en la secuencia o algún otro cuadro se debe codificar en un formato codificado INTRA. Esto a su vez significa que cuando el codificador de video 100 se conmuta al modo de codificación INTER por el administrador de control 160, un cuadro de referencia completo formado por una descodificación local de un cuadro previamente codificado, ya esta disponible en el almacén de cuadro 120 del codificador. En general, el cuadro de referencia se forma al descodificar localmente un cuadro codificado INTRA, o un cuadro codificado INTER. En la siguiente descripción, se asumirá que el codificador efectúa una predicción compensada de movimiento en una base de macrobloque esto es, un macrobloque es el elemento más pequeño de un cuadro de video que se puede asociar con información en movimiento. Se supondrá además que en una predicción para un macrobloque dado se forma al identificar una región en valores 16*16 en el componente de luminancia del cuadro de referencia que muestra la mejor correspondencia con los valores de luminancia 16*16 del macrobloque en cuestión. La predicción compensada de movimiento en un sistema de codificación de video en donde se puede asociar información de movimiento con elementos más pequeños que un macrobloque se considerará después en el texto . La primera etapa en la formación de una predicción para un macrobloque del cuadro actual se efectúa por el bloque de estimación del movimiento 130. El bloque de estimación de movimiento 130 recibe los bloques de los valores de iluminancia y crominancia que contribuyen a que el macrobloque actual el cuadro acorde a ser codificado por medio de la línea 128. Luego efectúa una operación de coincidencia del bloque, con objeto de identificar una región en el cuadro de referencia que corresponda mejor al con el macrobloque actual. Con objeto de efectuar la operación de coincidencia de bloque, el bloque de estimación del movimiento 130 tiene acceso a los datos del cuadro de referencia almacenados en el almacén de cuadro 120 por medio del línea 127. Más específicamente el bloque de estimación de movimiento 130 efectúa una coincidencia de bloque al calcular los valores de diferencia (por ejemplo: la suma de la diferencias absolutas) que representan la diferencia en los valores en píxel entre el macrobloque bajo examen y las regiones candidato del mejor coincidencia de pixeles a partir de un cuadro de referencia almacenado en el cuadro en el almacén de cuadros 120. Un valor de diferencia se produce para las regiones candidato en todas las composiciones posibles dentro de una región de búsqueda predefinida del cuadro de referencia y el bloque de estimación de movimiento 130 determina el valor de diferencia más pequeño calculado. La región candidato que produce el valor de diferencia más pequeño se selecciona como la región de mejor coincidencia. La compensación entre el macrobloque actual y la región de mejor coincidencia identificada en el cuadro de referencia define un vector en movimiento para el macrobloque en cuestión. El vector de movimiento comprende típicamente un par de números una describe la horizontal (??) entre el macrobloque que hay y la región de mejor coincidencia del cuadro de referencia, el otro representa el desplazamiento vertical (Ay) . Una vez que el bloque de estimación de movimiento 130 ha producido un vector de movimiento para el macrobloque, produce el vector de movimiento al bloque codificador del campo del movimiento 140. El bloque codificador del campo de movimiento 140 se aproxima al vector de movimiento recibido del bloque de estimación de movimiento 130 usando un modelo de movimiento que comprende un conjunto de funciones base y coeficientes del movimiento. Más específicamente, un bloque codificador de velocidad 140 representa un vector de movimiento como un conjunto de valores del coeficiente del movimiento los cuales cuando se multiplican por las funciones base forman una aproximación del vector de movimiento. Típicamente, un modelo de movimiento transicional básico se usa, pero también se pueden usar los modelos de movimiento de mayor complejidad. Los coeficientes de movimiento pasan desde el bloque codificador del campo de movimiento 140 al bloque de predicción compensado en movimiento 150. El bloque de predicción compensado de movimiento 150 también recibe la región de mejor coincidencia de los valores de píxel identificados por el bloque de estimación del movimiento 130 desde el almacén de cuadros 120. Al usar una representación aproximada del vector en movimiento generado por el bloque codificador del campo movimiento 140 y los valores de píxel de la región de mejor coincidencia de pixeles desde el cuadro de referencia, el bloque de predicción compensado de movimiento 150 genera una configuración de valores de píxel predicho para cada bloque del macrobloque actual . Cada bloque de valores de píxel predichos se pasa al combinador 116 en donde los valores en píxel predichos que restan los valores de píxel actual (entrada) en el bloque correspondiente del macrobloque actual. En esta forma se obtiene un conjunto de bloques de error de predicción para el macrobloque. La operación desde el descodificador de video 200 que se muestra en la figura 2 se describirá ahora. El descodificador 200 comprende un descodificador múltiplex de video 270 que recibe una corriente de video codificada 135 desde el codificador 100 y la desmultiplexa dentro de sus partes constituyentes, un cuantizador inverso 210, un transformador de DCT inverso 220, un bloque de predicción compensado en un movimiento 240, un almacén de cuadro 250, un combinador 230, un administrador de control 260 y una salida 280. El administrador de control 260 controla la operación del descodificador 200. en respuesta a si se descodifica un cuadro INTRA o INTER codificado. Una señal de control de disparo INTRA/INTER que provoca que el descodificador conmute entre los modos descodificadores se deriva por ejemplo, a partir de la información del tipo de imagen asociada con cada cuadro de video comprimido recibido desde el codificador. La señal de control de disparo INTRA/ INTER se extrae de la corriente de bits de video codificada por el descodificador múltiplex de video 270 y pasa al administrador de control 260 por medio de la línea control 215. La descodificación de un cuadro codificado INTRA se efectúa en una base de macrobloque por macrobloque, cada macrobloque que se descodifica sustancialmente tan pronto como la información codificada que se refiere a él se recibe en la corriente de bits en video 135. El descodificador múltiplex de video 270 separa la información codificada para los bloques del macrobloque a partir de información de control posible que se refiere al macrobloque en cuestión. La información codificada para cada bloque de un macrobloque codificado INTRA comprende palabras código de longitud variable que representan los valores del nivel y corrida codificado de un propio para coeficiente DCT cuantizados que no son cero del bloque. El descodificador múltiplex de video 270 descodifica las palabras código de la longitud variable usando un método descodificador de longitud variable que corresponde a un método descodificante usado en el codificador 100 y con ello se recuperan los valores del nivel y corrida. Luego reconstruye la configuración de los valores del coeficiente de transformada cuantizados para cada bloque del macrobloque y los pasa al cuantizador inverso 210. Cualquier información de control relativa al macrobloque también se descodifica en el descodificador múltiple del video 270 usando un método de descodificación adecuado y se pasa al administrador de control 260. En particular, se extrae la información, que se refiere al nivel de cuantización aplicado a los coeficientes de transformada a partir de una corriente de bits codificada por el descodificador múltiplex de video 270 y que se suministra al administrador de control 260 por medio de la línea de control 217. El administrador de control a su vez, transporta esta información al cuantizador inverso 210 por medio de la línea de control 218. El cuantizador inverso 210 invierte los cuantizados a coeficientes cuantizados DCT para cada bloque del macrobloque de acuerdo con la información de control y proporciona los coeficientes cuantizados DCT ahora inversos al transformador DCT inverso 220. El transformador inverso DCT 220 efectúa una transformada inversa DCT en los coeficientes DCT cuantizados inversos para cada bloque del macrobloque para formar un bloque descodificado de información de imagen que comprende valores de píxel reconstruidos. Los valores de píxel reconstruidos para cada bloque del macrobloque se pasan por medio del combinador 230 a la salida de video 280 del descodificador en donde por ejemplo se les puede suministrar a otra persona un dispositivo de pantalla (como se muestra) . Los valores de píxel reconstruidos para cada bloque también se almacenan en el almacenamiento de cuadro 250. Debido a que no se usa la predicción compensada en movimiento en la codificación/descodificación de los macrobloques codificados INTRA, el administrador de control 260 controla al combinador 230 para pasar cada bloque de valores de píxel como tales a la salida de video 280 y el almacenamiento de cuadro 250. Cuando se descodifican y almacenan los macrobloques subsiguientes del cuadro codificado INTRA, se ensambla progresivamente un cuadro descodificado en el almacén de cuadros 250 y así está disponible para su uso como un cuadro de referencia para una predicción compensada de un movimiento en conjunto con la descodificación de cuadros codificados INTER recibidos subsiguientemente. Los cuadros codificados INTER también son descodificados en macrobloque por macrobloque, cada macrobloque codificado INTER se descodifica sustancialmente tan pronto como la información codificada relacionada con él se recibe con una corriente de bits 135. El descodificador múltiplex del video 270 separa la información del error de predicción codificada para cada bloque del macrobloque codificado INTER a partir de la información del vector de movimiento codificado y la información de control posible que se refiere al macrobloque en cuestión. Como se explicó en lo anterior, la información de predicción codificada para cada bloque del macrobloque comprende palabras código de longitud variable que representan los valores del nivel y de corrida codificados en la entropía para coeficientes de transformada cuantizados que no son cero del bloque de error de predicción en cuestión. El descodificador múltiplex de video 270 descodifica las palabras código de longitud variable usando un método de descodificación de longitud variable que corresponde al método de descodificación usado en el codificador 100 y con ello recupera los valores de nivel y de corrida. Luego reconstruye una configuración de valores de coeficiente de transformada cuantizados para cada bloque de error de predicción y los pasa al cuantizador inverso 210. La información de control relacionada con el macrobloque codificado INTER también se descodifica en el codificador de video múltiplex 270 usando un método de descodificación adecuado y se pasa al administrador de control 260. La información relativa al nivel de cuantización aplicado a los coeficientes es transformada de los bloques de error de predicción se extraen de la corriente de bits codificada y se suministran al administrador de control 260 por medio de la línea de control 217. El administrador de control a su vez envía esta información al cuantizador inverso 210 por medio de la línea de control 218. El cuantizador inverso 210 cuantiza de forma inversa los coeficientes DCT cuantizados que representan la información de error de predicción para cada bloque de macrobloque de acuerdo con la información de control y proporciona los coeficientes DCT cuantizados ahora inversos para invertir el transformador DCT 220. Los coeficientes DCT cuantizados inversos representan la información de error de predicción para cada bloque, luego se transforman inversos en el transformador DCT inverso 220 para producir una configuración de valores de error de predicción reconstruidos para cada bloque del macrobloque . La información del vector de movimiento codificada asociada con el macrobloque se extrae de la corriente de bits de video codificada 135 por un descodificador múltiplex de video 270 y se descodifica. La información del vector de movimiento descodificada así obtenida se pasa por medio de una línea de control 225 al bloque de predicción compensado del movimiento 240 el cual reconstruye un vector de movimiento para el macrobloque usando el mismo modelo de movimiento como aquel que se usa para codificar el macrobloque codificado INTER en un codificador 100. El vector de movimiento reconstruido aproxima al vector de movimiento determinado originalmente por el bloque de estimación 130 del codificador. El bloque de predicción compensado del movimiento 240 del descodificador, utiliza el vector en movimiento reconstruido para identificar la ubicación de una región de píxel reconstruido en un cuadro de referencia de predicción almacenado en un cuadro de almacén 250. El cuadro de referencia puede ser por ejemplo: un cuadro codificado INTRA previamente descodificado, o un cuadro codificado INTER previamente descodificado. En cada caso, la región de píxeles indicada por el vector de movimiento reconstruido se usa para formar una predicción para el macrobloque en cuestión. Más específicamente, el bloque de predicción compensada en movimiento 240 forma una configuración de valores pixel para cada bloque del macrobloque al copiar los valores correspondientes de pixel a partir de las regiones de píxeles identificadas por el vector en movimiento. La predicción, esto es los bloques de valores de pixel derivado del cuadro de referencia, pasan desde el bloque de predicción compensado en movimiento 240 al combinador 230 en donde se combinan con la información de error de predicción descodificada. En la práctica, los valores de pixel de cada bloque predicho se agregan a los valores del error de predicción reconstruido correspondiente en su salida por el transformador DCT inverso 220. De esta manera una configuración de valores de pixel reconstruidos para cada bloque del macrobloque se obtiene. Los valores de pixel reconstruido se pasan a la salida del video 280 del descodificador y también se almacenan en el almacén de cuadro 250. Cuándo se descodifican y almacenan los macrobloques exteriores del cuadro codificado INTER, se ensambla progresivamente un cuadro descodificado en el 33 necesario que un descodificador de video correspondiente este consiente de ese modo de codificación, con objeto de que descodifique correctamente la información recibida con relación al macrobloque en cuestión. Por lo tanto, una indicación del modo de codificación asignado a cada macrobloque se suministra en la corriente de bits de video transmitida desde el codificador de video al descodificador de video. Como se puede minimizar la cantidad de datos requerida para indicar los modos de codificación, el modo de codificación para cada macrobloque se indica usando una codificación de longitud variable. Las palabras código que indican que los modos de codificación se asignan un forma tal que la palabra código más corta se usa para representar el modo de codificación que más probable que suceda estadísticamente. El JM1 del codee JVT utiliza un conjunto sencillo de los denominados códigos de longitud variable universal (UVLC) para representar todos los elementos de sintaxis (datos) en la corriente de bits de video y por lo tanto también se usa este conjunto de palabras código para representar la información del modo de codificación para los macrobloques codificados INTER. Las palabras código UVLC usadas en JM1 se pueden escribir en la siguiente forma comprimida que se muestra en la Tabla 1 a continuación en donde los términos xn toman el valor de 0 ó 1 : 34 O Xo 1 O Xi O x0 1 O x2 O Xi O x0 x3 O x2 O i O TABLA I Esquema para la generación de palabras código UVLC de acuerdo con JM1 del JVT códec . La tabla 2 representa las primeras 16 palabras de código de UVLC generadas según en el esquema presentado en la tabla 1.
Tabla 2 : 35 Los primeros 16 palabras código UVLC de JMl Generadas en el esquema presentado en la tabla 1. JMl del JVT codee supone que el modo de omisión es estadísticamente más probable como modo de codificación para un macrobloque. El número de macrobloques del modo de omisión antes de que se indique el siguiente macrobloque con el modo que no es SKIP por una palabra código sencilla UVLC usando la tabla 2 anterior. Los modos de codificación restantes se representan por las palabras código UVLC como se muestran en la tabla 3 a continuación.
Tabla 3: Modos de codificación de macrobloque de JMl.
Como se describió previamente, los modos NxM en la tabla anterior indican el tamaño de los bloques en movimiento . Un problema con el método adoptado en JM1 de JVT códec es que no es válida la suposición de que el modo de omisión siempre es el más probable. Si la secuencia de video contiene movimiento global (toma panorámica, acercamiento, etc.), nunca se usa realmente el modo de omisión. En estos casos se degrada seriamente la eficiencia de compresión especialmente a velocidades de bit inferiores ya que el códec está forzado a usar modos de codificación de Mmacrobloque de alto excedente. Dos soluciones del arte previo para mejorar la eficiencia de codificación de la predicción compensada con movimiento en presencia de movimiento global se conocen. La primera de estas se conoce como compensación de movimiento global y se usa por ejemplo, en los estándares de codificación de video ISO MPEG-4 y ITU-TH.263+ el segundo método se describe en el método titulado "Global Motion Vector Coding" por Shijun Sun and Shawmin Leí, Doc . VCEG-020, ITU-T Video Coding Experts Group (VCEG) Meeting, Pattaya, Tailandia 4-7 de Diciembre de 2001, incluido en la presente como referencia. Se describirán ahora brevemente los conceptos básicos de estos dos métodos. 37 Como se describe en el anexo P "nuevo muestreo de una imagen de referencia" de la recomendación de la Unión Internacional de Telecomunicaciones ITU-T H263 "Video Coding for Low Bit-Rate Communicatión" . Febrero de 1998, la idea detrás de la compensación global de movimiento es generar un cuadro de referencia para una compensación de movimiento que cancele los efectos de movimiento global. Con objeto de hacer esto se necesitan alteraciones complejas en el descodificador para apartarse del cuadro de referencia en una forma más útil. Adicionalmente , la información adicional tiene que enviarse al descodi icador para guiar la construcción de nuevos cuadros de referencia para una compensación global del movimiento. Más específicamente el esquema de compensación global de movimiento empleado en el estándar de codificación de video H.263 utiliza un proceso de nuevo muestreo para generar una versión apartada del cuadro de referencia para su uso de predicción compensada de movimiento de la imagen actual. Esta versión apartada del cuadro de referencia puede incluir alteraciones en la forma, tamaño y ubicación con respecto a la imagen actual. El proceso de nuevo muestreo se define en términos de un mapeo entre las cuatro esquinas de la imagen actual y las correspondientes cuatro esquinas del marco de referencia. Suponiendo que un componente de luminancia de la imagen actual tiene un tamaño horizontal H y tamaño vertical V, el mapeo se efectúa al definir los 38 vectores conceptuales en movimiento y00, y"0, vov, y v1™, cada vector de movimiento conceptual describe como mover una de las cuatro esquinas de la imagen actual en una forma tal que se mapean sobre la esquina correspondiente del cuadro de referencia. Esta operación se ilustra en la figura 5. La predicción compensada por movimiento para un macrobloque de la imagen actual luego se efectúa usando un acoplamiento de bloques con respecto al cuadro de referencia dado. Esto complica el proceso de acoplamiento de bloque, ya que el valor de cada píxel del cuadro de referencia apartado usado en el proceso de coincidencia de bloque se debe generar al mapear valores de píxel en el cuadro de referencia original (no apartado) dentro de las coordenadas del cuadro de referencia apartado. Esto se hace usando una interpolación bilineal que es una operación computacionalmente intensiva. Se refiere al lector al anexo P del estándar de codificación de video H.263 para mayores detalles del proceso de interpolación bilineal usado para generar los valores de píxel del cuadro de referencia apartado. La codificación de un vector de movimiento global como se describe en el documento VCEG-O20, referido arriba es una versión simplificada de una compensación de movimiento global. El cuadro de referencia se usa como es pero se transmite información adicional para describir el movimiento global y se usan modos adicionales de macrobloques para 39 indicar cuando se usan los vectores de movimiento global . Este método es menos complejo que la técnica de compensación de movimiento global antes descrita, pero hay una complejidad adicional del codificador asociada con ello. Nominalmente el codificador debe efectuar operaciones adicionales de estimación de movimiento para encontrar los parámetros de movimiento global y también necesita evaluar más modos de macrobloque para encontrar el óptimo. Además, la cantidad de información de movimiento global adicional que necesita transmitirse se vuelve grande para un video de pequeña resolución . En vista de la discusión anterior, se apreciará que existe un problema técnico importante no resuelto que se refiere a la codificación de una secuencia digital de video en presencia de movimiento global tal como una traslación, toma panorámica o acercamiento de la cámara. En particular cada una de las tres soluciones de codificación de video del arte previo previamente descrita, tienen alguna forma de inconveniente técnico. JM1 del JVT códec por ejemplo, no tiene una disposición espacial para tomar en cuenta el movimiento global en la secuencia de videos. Por lo tanto, cuando está presente tal movimiento provoca que el codificador de videos seleccione modos de codificación de macrobloques que modelen explícitamente el movimiento. Esto conduce a una degradación importante en la eficiencia de 40 codificación, ya que el componente de movimiento global se codifica en cada macrobloque codificado de INTER (o sub-bloque) . La técnica de compensación de movimiento global (como se suministra por Anexo P del estándar de codificación de video H.263) toma en cuenta el movimiento global por cuadros de referencia apartados usados en la predicción compensada con movimiento y suministra por lo tanto una eficiencia de codificación mejorada en comparación con un sistema en cual no se toman medidas especiales para codificar en movimiento global. Sin embargo el proceso de apartado es cottputacionalmente conplejo y se debe transmitir información adicional en la corriente de bits de video codificada para permitir una descodificación correcta de la secuencia de video. Aunque la técnica relacionada de codificación de un vector de movimiento global es computacionalmente menos demandante que la compensación global, involucra un cierto incremento en la complicidad del codificador y se debe todavía transmitir información adicional en la corriente de bits de video para permitir una descodificación correcta de los datos de video. Es por lo tanto un propósito de la presente invención, combinar la simplicidad de la compensación de movimiento local con la eficiencia de codificación de la composición de movimiento global para producir un sistema de codificación de video con un desempeño de compresión significativamente mejorado y un incremento despreciable en complejidad. 41 Breve Descripción de la Invención Con objeto de superar o al menos mitigar hasta un amplio grado los problemas asociados con la codificación del movimiento global en los sistemas de codificación de video del arte previo, la presente invención se basa en una redefinición de concepto de modo de omisión usado de JM1 y JVT códec. El método de conformidad con la invención no solamente proporciona una mejora en la eficiencia de codificación en presencia del movimiento global (esto es, el movimiento que afecta el área completa de un cuadro de video) , sino también permite que el movimiento regional esté representado en una forma eficiente. De conformidad con la invención el concepto del modo de omisión se redefine en una forma tal que un macrobloque que se asigna al modo de omisión se asocia con un vector de movimiento cero (no activo) , en cuyo caso se trata de la misma forma que un macrobloque de modo de omisión convencional y se copia directamente desde el cuadro de referencia o se asocia con un vector de movimiento que no es de cero (activo) . La decisión en cuanto a cual macrobloque se debe asociar con un vector de movimiento cero que no es cero se hace al analizar el movimiento de otros macrobloques o sub-bloques en una región que rodea al macrobloque a ser codificado. Si se encuentra que la región circundante muestra un cierto tipo de movimiento, un vector de movimiento que no 42 es cero representativo de este movimiento se genera y se asocia con le macrobloque actual. En particular la continuidad, velocidad o desviación de movimiento en los macrobloques circundantes o sub-bloques se puede analizar. Por ejemplo, si el movimiento en la región circundante muestra un cierto nivel de continuidad, una cierta velocidad común o una forma particular de divergencia, se puede asignar un vector de movimiento representativo de ese movimiento al macrobloque actual a ser codificado. Por otro lado si la región circundante al macrobloque actual no muestra tal continuidad, velocidad común o divergencia tiene un nivel insignificante de movimiento, el macrobloque a ser codificado se asigna a un vector de movimiento cero provocando que se copie directamente desde el cuadro de referencia justo como si fuera un macrobloque de un modo SKIP convencional. De esta manera, de conformidad con la invención los macrobloques del modo SKIP pueden adaptarse al movimiento en la región que los rodea, permitiendo un movimiento global o regional que se tome en cuenta en una forma eficiente. En una modalidad ventajosa de la invención, los macrobloques circundantes o sub-bloques cuyo movimiento se analiza son macrobloques previamente codificados vecinos del macrobloque a ser codificado. Esto asegura que la información de movimiento relacionado con la región que rodea un macrobloque esté disponible en el codificador 43 (descodificador) cuando un macrobloque actual se codifique (descodifique) y se puede usa directamente para determinar el vector de movimiento a ser designado al macrobloque actual . Este método permite que el análisis del movimiento de la región circundante efectuada en el codificador se duplique exactamente del descodificador . Así a su vez significa que de acuerdo con la invención no se debe enviar ninguna información adicional al descodificador con objeto de modelar un movimiento global o regional . Como se volverá evidente de la descripción detallada de la invención presentada a continuación, la redefinición del concepto del modo de omisión como se propone de la presente invención tiene ventajas técnicas importantes en comparación con los métodos de codificación de video del arte previo previamente descrito. En particular el método de conformidad con la invención permite un movimiento global y regional dentro de una secuencia de video a tomarse en cuenta en una forma eficiente sin necesidad de un apartado complejo del cuadro de referencia o cualesquiera otras operaciones demandantes computacionalmente . Adicionalmente en contraste con la compensación de movimiento global y los métodos de codificación del vector de movimiento global previamente descritos, no se debe transmitir ninguna información adicional en la corriente de bits de video para permitir una descodificación correcta de los datos de video. 44 Adicionalmente se requiere una cantidad mínima de modificación para comparar el método de conformidad con la invención en sistemas de codificación de videos existentes que empleen el concepto de macrobloques de modo de omisión. Estas y otras características y aspectos y ventajas de las modalidades de la invención se volverán evidentes con referencia a la siguiente descripción detallada en conjunto con las figuras anexas. Se entenderá sin embargo que las figuras se diseñan únicamente para los propósitos de ilustración y no como una definición de los límites de la invención. Breve Descripción de las Figuras La figura 1 es un diagrama de bloques esquemático de un codificador de video genérico de conformidad con el arte previo..
La figura 2 es un diagrama de bloques esquemático de un descodificador de video genérico de acuerdo con el arte previo y corresponde a codificador mostrado en la figura 1. La figura 3 ilustra la formación de un macrobloque de acuerdo con el arte previo. La figura 4 muestra las 7 posibles divisiones del macrobloque en bloques de acuerdo con el JMl del códec de video JVT. La figura 5 ilustra la generación de vectores de movimiento conceptuales para le mapeo de la esquina de una imagen actual con aquellas de la imagen de referencia en el esquema de compensación de movimiento global de acuerdo con el H.263 anexo P. 45 La figura 6 es un diagrama de bloques esquemático de un codificador de video de conformidad con una modalidad de la invención. La figura 7 es un diagrama de bloques esquemático de un descodificador de video de acuerdo con una modalidad de la invención y corresponde al codificador mostrado en la figura 6. La figura 8 ilustra bloques de codificación y descodificación para macrobloques del modo de omisión en un codificador o descodificador de acuerdo con una modalidad de la invención. La figura 9 muestra un ejemplo de una división de macrobloques, movimiento en macrobloques que rodean a un macrobloques a ser codificado o descodificado, si el vector de movimiento de modo de omisión generado para el macrobloque (el macro obscurecido en la figura) de acuerdo con una modalidad de la invención. La figura 10 es un diagrama de bloques esquemático de una terminal de comunicaciones multimedia en la cual en método de conformidad con la invención se puede implantar. Descripción Detallada de la Invención Se describirán ahora las modalidades ejemplares de la invención en detalle con referencia particular a la figuras 6 a la 10. De acuerdo con la invención, los macrobloques del modo de omisión (o SKIP) en un sistema de codificación de video se 46 adaptan al movimiento de los segmentos de imagen circundante. Si se detecta el movimiento activo alrededor de un macrobloque a ser codificado/descodificado, los parámetros de movimiento conforman el movimiento se genera y el macrobloque se compensa por movimientos. De esta manera no necesita información adicional a transmitirse del codificador al descodificador . La figura 6 es un diagrama de bloques esquemático de un codificador de video 600 implantado de acuerdo con una modalidad de la invención. Cuando se codifican los cuadros de una secuencia de video digital el codificador 600 opera de un forma similar a aquella previamente descrita en conjunto con el codificador de video del arte previo de la figura 1 para generar cuadros de video comprimidos codificados a generar cuadros de video comprimidos codificados INTER y codificados INTRA. La estructura del codificador de video que se muestra en la figura 6 es substancialmente idéntica a aquella del codificador del video del arte previo que se muestra en la figura 1 con modificaciones apropiadas a la estimación de movimiento necesaria para implementar el método de codificación del video de conformidad con la invención. Todas las partes del codificador del video que implementan funciones y operan en una forma idéntica al codificador de video previamente descrito del arte previo se identifican con números de referencia idénticos. 47 Ya que la presente invención se refiere a la codificación de cuadros de video en un formato codificado INTER y más particularmente al detalle de la predicción compensada en movimiento efectuada como parte del proceso de codificación INTER, la descripción del codificador 600 en el modo de codificación INTRA se omitirá y las secciones se concentraran en las operaciones efectuadas por el codificador en el modo de codificación INTER. En el modo de codificación INTER, el administrador de control del codificador de video 160 opera el interruptor 102 para recibir entradas desde la línea 117 que comprende la salida del combinador 116. El combinador 116 recibe el macrobloque de la señal de entrada de video por el macrobloque de la entrada 101. Cuando el combinador 116 recibe los bloques de los valores de luminancia o crominancia que constituyen el macrobloque, forma bloques correspondientes de información de error de predicción que representan la diferencia entre el bloque en cuestión y la predicción producida en un bloque de predicción compensado de movimiento 650. La información de error de predicción de cada bloque para macrobloques se pasa al bloque de transformación DCT 104 que efectúa una transformada de coseno discreta de dos dimensiones en cada bloque de los valores del error de predicción para producir una configuración bidimensional de 48 los coeficientes transformada DCT para cada bloque. Esto se pasan al cuantizador 106 en donde se cuantizan usando un parámetro de cuantización QP. La selección del parámetro de cuantización QP se controla por el administrador de control 160 por la línea de control 115. Los coeficientes DCT cuantizados que representan la información del error de predicción para cada bloque de macrobloques luego se pasan desde el cuantizador 106 al codificador múltiplex de video 170, por medio de la línea 125. El codificador múltiplex de video 170 ordena los coeficientes de transformada para bloque de error de predicción usando un procedimiento de barrido en zigzag que representa cada coeficiente cuantizado con un valor que no es cero como un par de corrida de nivel y comprime los pares de corrida nivel usando una codificación de entropía. El codificador múltiplex de video 170 también recibe una información del vector de movimiento desde un campo de movimiento que codifica el bloque 640 por medio de la línea 126 y controla la información desde la administrador de control 160. Codifica por entropía la información del vector de movimiento y la información de control y forma de corriente de forma de bits sencilla de información de imagen codificada 135 que comprende en vector de movimiento codificado por entropía error de predicción e información de control . 49 Los coeficientes DCT cuantizados que representan la información de error de predicción para cada bloque de macrobloque también se pasan desde el cuantizador 106 la cuantizador inverso 108. Aquí se cuantizan de forma inversa y los bloques resultantes de los coeficientes DCT cuantizado inverso se aplican al bloque de transformada DCT inversa en donde se someten a la transformación inversa para producir bloques localmente descodificados de valores de error de predicción. Los bloques localmente descodificados de los valores de error de predicción luego se introducen al combinador 112. En el modo de codificación INTER, el interruptor 114 se fija de manera que el combinador 112 también reciba los valores de píxel predichos para cada bloque del macrobloque generado del bloque de predicción compensado por movimiento 650. El combinador 112 combina cada uno de los bloques localmente descodificados de los valores de error de predicción con un bloque correspondiente de valores de píxel predichos, para producir los bloques de imágenes reconstruidas y los almacena en un almacén de cuadros 120. Cuando se reciben los macrobloques posteriores de la señal de video de la fuente de video y se someten a la etapas previamente descritas de codificación y descodificación en los bloques 104, 106, 108, 110, 112, una versión descodificada de cuadro de se acumula en el almacén de 50 cuadros 120. Cuando se ha procesado el último macrobloque del cuadro, el almacén de cuadro 120 contiene un cuadro completamente descodificado disponible para su uso como un cuadro de referencia de predicción de movimiento en la codificación de un cuadro de video posteriormente recibido en un formato de codificación INTER. Los detalles de la predicción compensada con movimiento efectuada por el codificador de video 600 se describirán ahora en detalle. El codificador 600 efectúa una predicción compensada por movimiento en una forma similar al JVT códec previamente descrito. En otras palabras de adapta para preparar un modo de codificación a cada macrobloque descodificado en INTER dependiendo de las características del macrobloque y el movimiento en la secuencia de video a codificarse. Cuando se examina cual modo de codificación se asigna a un macrobloque particular, el bloque de estimación de movimiento 630 efectúa una operación de estimación de movimiento para cada modo descodificación en turno. El bloque de estimación de movimiento 630 recibe los bloques de los valores de luminancia y crominancia que constituye en el macro a ser codificado para su uso en la estimación de movimiento por medio de la línea 128 (ver figura 6) . Luego selecciona cada uno de los modos de codificación posible uno después del otro en turno y efectúa una estimación de movimiento con objeto de 51 identificar una mejor coincidencia para el macrobloque en el cuadro de referencia, sobre la base de un modo de codificación seleccionado y los valores de píxel del macrobloque a ser codificado (la mejor coincidencia comprenderá uno o más de las regiones de mejor coincidencia de los valores de píxel, dependiendo del modo de codificación). Cada mejor coincidencia se asocia con un valor de costo global por ejemplo, una combinación lineal de la suma de la diferencias absolutas entre los valores de píxel entre el macrobloque bajo examen y la mejor coincidencia en el cuadro de referencia, y un número estimado de bits requerido para codificar el modo y representar los vectores en movimiento. Una vez que se ha obtenido una mejor coincidencia para cada modo de codificación, el bloque se estimación de movimientos 630 selecciona que el modo de codificación que produce el valor de costo global más pequeño como el modo de codificación para usar el macrobloque actual .
De conformidad con la invención, los modos de codificación usados por el codificador 600 corresponden a aquellos suministrados por J 1 del JVT códec (que se muestra en la tabla 3) , con la excepción de que el modo SKIP se redefine para permitir la representación del movimiento global y regional . Más específicamente el modo SKIP se modifica en una forma tal que un vector de movimiento cero (no activo) o un vector de movimiento que no es cero (activo) se asocia con cada macrobloque del modo de omisión dependiendo de las características del movimiento en segmento del imagen que rodean al macrobloque en cuestión. En lo siguiente, este tipo de vector en movimiento se referirá como un "vector de movimiento de modo de omisión" . Cuando se examina el modo de omisión como parte del proceso de estimación de movimiento previamente descrito efectuado a su vez por cada modo de codificación, el codificador determina primero si un vector en movimiento de modo de omisión cero o que no es cero se debe usar. Para hacer eso el codificador se configura para analizar el movimiento de los segmentos de imagen (por ejemplo, macrobloques y/o sub-bloques) que rodean el macrobloque a ser codificado. Si se determina que la región circundante muestra un cierto tipo de movimiento por ejemplo, tiene características indicativas de un movimiento global o regional, genera un vector de movimiento de modo de omisión valuado en no cero representativo de movimiento. Por otro lado si el codificador determina que la región que rodea al macrobloque actual no muestra un movimiento global o regional, sino que en su lugar tiene un nivel insignificante de movimiento, genera un vector de movimiento de modo de omisión valuado como cero. En otras palabras si el codificador determina que el movimiento en la región que rodea el macrobloque actual tiene una característica global, 53 la codificación del modo de omisión se adapta para tomar en cuenta esto (al generar un vector en movimiento de modo de omisión que está valuado con cero asociado representativo del movimiento) . Alternativamente si no está presente tal movimiento un vector de movimiento valuado en cero se genera provocando que el modo de omisión como se modifica por la invención opere en una forma convencional esto es, un vector de movimiento de modo de omisión valuado con cero provoca que se copie directamente un macrobloque desde el cuadro de referencia. Al haber efectuado las operaciones de estimación de movimiento para cada uno de los modos de codificación disponible, incluyendo el modo de omisión como se modifica de conformidad con la invención, el codificador 600 determina cual modo de codificación produce el valor de costo global más pequeño y selecciona ese modo como el modo de codificación para el macrobloque en cuestión. Una indicación del modo de codificación finalmente seleccionado, por ejemplo, una palabra código de longitud variable seleccionada del conjunto de palabras código presentadas en la tabla 3, se asocia con el macrobloque y se incluye en la corriente de bits de video 635. Esto permite que un descodificador correspondiente identifique el modo descodificación para el macrobloque y reconstruya correctamente el macrobloque usando la forma correcta de la predicción compensada con movimiento.
El análisis del movimiento en una región que rodea un macrobloque a ser codificado para determinar si se debe usar un vector de movimiento de modo de omisión valuado como no cero o valuado con cero se considerará ahora en mayor detalle con referencia a la figura 8 de los dibujos anexos. La figura 8 ilustra los elementos funcionales del bloque de estimación de movimiento 630 asociado con la generación de vectores en movimiento del modo de omisión. Estos incluyen la memoria de información de movimientos 801 el bloque de análisis de movimiento circundante 802, el bloque de generación en un parámetro de movimiento activo 803 y el bloque de generación de parámetro de movimiento cero 804. La decisión si se genera un vector de movimiento de modo de omisión con valor de cero o un vector de movimiento de modo de omisión que no tiene un valor de cero, se hace por el bloque de análisis de movimiento circundante 802. Se hace la decisión al analizar y clasificar el movimiento de los macrobloques o sub-bloques en una región predefinida que rodea al macrobloque a ser codificado usando un esquema de análisis predeterminado. Con objeto de evaluar el análisis, el bloque de análisis de movimiento circundante 802 recupera la información de movimiento relativa a los macrobloques y/o sub-bloques en la región circundante de la memoria de información de movimiento 801. Dependiendo de los detalles específicos de la implementación, el bloque de análisis de 55 movimiento circundante se pueden configurar para analizar la continuidad, velocidad o desviación de movimiento en los macrobloques o sub-bloques circundantes. Por ejemplo, si el movimiento en la región circundante muestra un cierto nivel de continuidad, una cierta velocidad común (como se detalla en la figura 9 por ejemplo,) o una forma particular de divergencia esto puede sugerir que alguna forma de movimiento global o regional esté presente. Como consecuencia, el bloque de análisis de movimiento circundante concluye que el movimiento activo esta presente en la región circundante y se debe usar un vector de movimiento de modo de omisión no evaluado con cero. Por otro lado, si la región circundante al macrobloque actual no muestra tal continuidad, velocidad común o divergencia y tiene un nivel generalmente insignificante de movimiento, el bloque de análisis de movimiento circundante concluye que está presente el movimiento no activo en la región circundante y consecuentemente se debe usar un vector de movimiento de modo de omisión con un valor de cero. Como se muestra en la figura 8, si el bloque de análisis de movimiento circundante determina que está presente el movimiento activo en la región circundante, envía una indicación a ese efecto para el bloque de generación de parámetros de movimiento activo 803 que forma un vector de movimiento de modo de omisión con un valor que no es cero del representativo del movimiento en la región circundante. Para 56 hacer esto el bloque de generación de parámetro de movimiento activo 803 recupera la información de movimiento relativa a los macrobloques circundantes y/o sub-bloques de la memoria e información de movimiento 801. Alternativamente, esta información puede pasarse al bloque de generación del parámetro de movimiento activo por el bloque de análisis de movimiento circundante 802. Si el bloque de análisis de movimiento circundante determina que esta presente el movimiento no activo en la región circundante, envía una indicación correspondiente al bloque de generación del parámetro de movimiento cero 804 que forma un vector de movimiento con un modo de omisión con un valor de cero. En una modalidad particularmente ventajosa de la invención, la región circundante de macrobloques o sub-bloques analizada por el bloque de análisis de movimiento circundante comprende los bloques previamente codificados vecinos al macrobloque a codificarse (figura 9) . En este caso el análisis y clasificación de movimiento en la región circundante efectuado en el codificador pueden duplicarse exactamente en el descodificador . Esto a su vez significa que de acuerdo con la invención ninguna información adicional se debe enviar al descodificador con objeto de modelar el movimiento global o regional. En una modalidad alternativa de la invención, los modos de codificación de los macrobloques ya codificados se toman 57 en cuenta cuando se decide usar un vector de movimiento con modo de omisión con valor de cero o que no tiene un valor de cero. Por ejemplo, si el bloque de análisis de movimiento circundante determina que hay uno o más macrobloques vecinos estacionarios, se usa un vector de movimiento con un modo de omisión con valor de cero. En una primera modalidad preferida de la invención el análisis de movimiento circundante en el bloque 802 clasifica el movimiento en la región que rodea el macrobloque de acuerdo al siguiente procedimiento de tres etapas. En primer lugar, el bloque de análisis de movimiento circundante recupera la información de movimiento para los macrobloques o sub-bloques que rodean el macrobloque a ser codificado (esto es los macrobloques previamente codificados de vecinos del macrobloque a ser codificados como se muestra en la figura 9) y generan una predicción de un vector de movimiento mediado para el macrobloque. Se forma la predicción del vector de movimiento mediana por ejemplo, en una forma análoga a aquella usada en la predicción del vector de movimiento de acuerdo con el JM1 del JVT códec (ver T. Weigland; "Joint Model Number 1", Doc . JVT-A003, Joint Video Team of ISO/IEC MPEG and ITU-T VCEG, Jan. 2002) . A continuación el bloque de análisis del movimiento circundante determina si alguno de los componentes del vector en movimiento resultante tienen un valor absoluto mayor que un cierto valor umbral (por ejemplo, 58 la mitad de un píxel) . Si se cubre esta condición, el movimiento se clasifica como movimiento activo, de otra manera se clasifica como movimiento no activo. Finalmente dependiendo del resultado de la clasificación el bloque de análisis de movimiento circundante 802 envía una indicación al bloque de generación del parámetro de movimiento activo 803 o al bloque de generación del parámetro de movimiento cero 804 con objeto de generar los parámetros del movimiento del modo de omisión adecuado. La implementación del bloque de análisis de movimiento circundante de acuerdo con la primera modalidad preferida de la invención es particularmente ventajoso por dos razones. En primer lugar en un códec de video típico tal como el códec JVT, se usan predictor mediano para predecir los vectores de movimiento de bloques de imágenes cuadradas. De acuerdo con la primera modalidad preferida, este mismo predictor se usa en el bloque de análisis de movimiento circundante y un bloque de generación de un parámetro de movimiento activo para analizar el movimiento en la región circundante a un macro a ser codificado y para generar los parámetros de movimiento para los macrobloques del modo SKIP. De esta manera se puede implementar la invención por un efecto mínimo en la complejidad total de implementación del códec de video. En segundo lugar debido a que el bloque de análisis de movimiento circundante 802 clasifica el movimiento en la 59 región circundante al generar y analizar un vector de movimiento mediano, el bloque de generación del parámetro de movimiento activo 803 puede simplemente pasar los parámetros de movimiento mediano, ya generados en el bloque de análisis de movimiento circundante, al bloque de compensación de movimiento. Este también minimiza la complejidad de la implementación ya que no necesidad de generara parámetros de movimiento adicionales. En una segunda modalidad preferida de la invención el análisis de movimiento circundante en el bloque analiza el movimiento en la vecindad del macrobloque a ser codificado y lo clasifica como movimiento activo o movimiento no activo. En el caso del movimiento activo, el bloque de generación del parámetro de movimiento activo se activa y en el caso del movimiento no activo el bloque de generación del parámetro de movimiento cero se activa. En esta modalidad la clasificación a la categoría de movimiento no activo tiene lugar si alguna o ambas de las dos condiciones a continuación son verdaderas, y de otra manera el movimiento se clasifica como movimiento activo. Condición 1 : el macrobloque inmediatamente arriba o el macrobloque inmediatamente a la izquierda del macrobloque bajo consideración no está disponible (esto es, esta fuera de la imagen o pertenece a un corte diferente) . Condición 2 : Condición 1 : el macrobloque o bloque inmediatamente arriba o el macrobloque o bloque inmediatamente a la izquierda que se usa en la predicción del 60 vector de movimiento para el modo INTER 16X16 tiene un vector de movimiento cero y utiliza la última imagen como referencia en compensación de movimiento. La operación de un descodificador de video 700 de acuerdo con una modalidad de la invención se describirá ahora con referencia a la figura 7. La estructura del descodificador del video ilustrado en la figura 7 es substancialmente idéntica a aquella del descodificador de video del arte previo mostrado en la figura 2, con modificaciones adecuadas para aquellas partes del descodificador que efectúan operaciones de estimación de movimiento. Todas las partes del descodificador de video que implementan funciones y/o operan en una forma idéntica al descodificador de video del arte previo previamente descrito, se identifican con números de referencia idéntico. Se asume además que el descodificador de video de la figura 7 corresponde al codificador descrito en conjunto con la figura 6 y por lo tanto pueden recibir y descodificar la corriente de bits 635 transmitida por el codificador 600. Adicionalmente , ya que la presente invención afecta la descodificación de los cuadros de video en el formato codificado como INTER, la descripción de las operaciones efectuadas por el descodificador 700 en conjunto de la descodificación de los cuadros codificados como INTRA se omitirá. 61 Los cuadros codificados como INTER se descodifican macrobloques por macrobloques , cada raacrobloque codificado como INTER se descodifica substancialmente tan pronto como la información codificada con el se recibe en la corriente de bits 635. Dependiendo del modo de codificación, los datos de video comprimidos incluidos en la corriente de bits para un macrobloque codificado como INTER pueden comprender una combinación de información de error de predicción codificada como VLC para cada bloque, la información del vector de movimiento para el macrobloque o (sub-bloque) y la información de control codificada incluye una indicación el modo de codificación usado para codificar el macrobloque en cuestión. Si se codifica un macrobloque en el modo de omisión, no se incluye ninguna información del vector del movimiento o de error de predicción con relación al macrobloque en la corriente de bits. El descodificador múltiplex de video 270 recibe la corriente de bits de video 635 y separa la información de control, incluyendo una indicación del modo de codificación del macrobloque desde cualquier información de error de predicción codificado y/o vector en movimiento que pueda estar presente. Como se explicó previamente, la información de error de predicción se codifica como palabras código de longitud variable representativas de los valores de nivel y corrida 62 codificados con entropía. Si la información de error de predicción se suministra para el macrobloque actual, el descodificador múltiplex de video 270 recupera los valores de nivel y de corrida al descodificar las palabras código de longitud variable usando un método de descodificación de longitud variable que corresponde al método de descodificación usado en un codificador 600. Luego reconstruye una configuración de los valores de coeficiente transformada DCT cuantizada para cada bloque de error de predicción y los pasa al cuantizador inverso 210 en donde se cuantiza de forma inversa. Los coeficientes DCT cuantizados inversos luego se transforman de forma inversa en el transformador inverso DCT 220 para producir una configuración de valores de error de predicción reconstruido para cada bloque del macrobloque. La indicación del modo del codificación y la información del vector de movimiento codificado (si lo hay) asociado con el macrobloque se descodifican en el descodificador múltiplex de video y se pasan por medio de la línea de control 225 al bloque de predicción compensado de movimiento 740. El bloque de predicción compensado de movimiento 740 utiliza la indicación del modo del codificación y la información del vector de movimiento (si lo hay) para formar una predicción para el macrobloque en cuestión, más específicamente, el bloque de predicción compensado del movimiento 740 forma una 63 configuración de valores de píxel para cada bloque del macrobloque a los valores de píxel correspondiente a partir de una región (o regiones de píxeles en cuadro de referencia) . La predicción esto es los bloques de los valores de píxel derivados del cuadro de referencia, se pasan desde el bloque de predicción compensado de movimiento 740 al combinador 230 en donde se combinan con la información de error de predicción descodificada (si la hay) des esta manera se obtiene una configuración de valores de píxel reconstruidos para cada bloque del macrobloque. Los valores de píxel reconstruidos pasan a la salida de video 280 del descodificador y también se almacenan en el almacén de cuadro 250. Consecuentemente cuándo se descodifican y almacenan los macrobloques subsiguientes del cuadro codificado INTER, se ensambla progresivamente un cuado descodificado en el almacén de cuadros 250 y así esta disponible para su uso como un cuadro de referencia para una predicción compensada de movimiento de otros cuadros codificados INTER. De acuerdo con la invención, el bloque de predicción compensada de movimiento 740 del descodificador 700 comprende un bloque de memoria de información de movimiento 801, un bloque de análisis de movimiento circundante 802, un bloque de generación de un parámetro de movimiento activo 803 y un bloque de generación de parámetros de movimiento cero 804 64 análogo a aquellos suministrados del codificador 600. Estos bloques funcionales se usan para determinar si un macrobloque codificado en un modo omisión se debe asociar con un vector de movimiento de modo de omisión que tiene un valor de cero o que no tiene un valor de cero. Más específicamente cuando se determina que se codificó un macrobloque hacer codificado en el modo de omisión, el bloque de análisis de movimiento circundante 802 analiza y clasifica el movimiento de los macrobloques previamente descodificados y los sub-bloques en una región predefinida que rodea al macrobloque hacer codificado en una forma exactamente correspondiente a aquella usada en el codificador 600. Como resultado del análisis, el macrobloque en cuestión se asocia con el vector de movimiento de modo de omisión con un valor que no es cero o un vector de movimiento del modo de omisión con un valor de cero. Este vector de movimiento luego se utiliza para formar una predicción del macrobloque. Si el macrobloque se asocia con un vector de movimiento del modo de omisión con un valor de cero, se reconstruye al copiar simplemente los valores de píxel de una ubicación correspondiente en el cuadro de referencia. Si por otro lado, se asocia con un vector de movimiento que no tiene un valor de cero, una región de los valores de píxel indicada por el vector de movimiento que no es cero se usa para generar los valores de píxel para macrobloque. 65 Se apreciará que al modificar el concepto del modo de omisión en la forma propuesta por la invención y al efectuar un análisis de movimiento circundante del descodificador, es posible tomar en cuenta un movimiento global o de región en una secuencia de video sin requerir de información explícita acerca de tal movimiento al suministrase en la corriente de bits de video.
Un dispositivo terminal que comprende equipo de descodificación y codificación de video que se puede para adaptar operar con la presente invención se describirá ahora. La figura 10 de los dibujos anexos ilustra una terminal multimedia 80 implementada de acuerdo con la recomendación ITU-T H.324. La terminal se puede referir como un dispositivo transductor multimedia. Incluye elementos que capturan, codifican y multiplexan corrientes de datos multimedia para transmisión por mail de una red de comunicaciones, así como elementos que reciben, desmultiplexan, descodifican y despliegan el contenido multimedia recibidos. La recomendación ITU-T H.324 define la operación global de la terminal y se refiere a otras recomendaciones que gobiernan las operaciones de sus diversas partes constituyentes. Este tipo de terminal multimedia se puede usar en aplicaciones de tiempo real tales como video telefonía, conversacional, o en aplicaciones que no son de tiempo real tal como la recuperación y/o progresión de archivos de video por ejemplo a partir de un servidor de contenidos multimedia en Internet. 66 En el contexto de la presente invención, se apreciará que la terminal H.324 que se muestra en la figura 10 es solamente una de diversas implementaciones de terminales multimedia alternativas adecuada para su aplicación al método de la invención. También se debe observar que existen diversas alternativas que se refieren a la ubicación e implementación del equipo de terminal. Como se ilustra en la figura 10, la terminal multimedia se puede localizar en un equipo de comunicaciones conectado a una red telefónica de línea fija tal como una PSTN análoga (Red de Teléfono Conmutada Pública) . En este caso la terminal multimedia se equipa con un MODEM 91 que cumple con las recomendaciones ITU-T V.8, V.34 y opcionalmente V.8 bits. Alternativamente se puede conectar la terminal multimedia a un MODEM externo. El MODEM permite la conversión de los datos digitales multiplexados y controla las señales producidas por la terminal multimedia de una forma análoga adecuada para la transmisión PSTN. Permite además que la terminal multimedia reciba datos y señales de control en una forma análoga de PSTN y los convierte un una corriente de datos digital que se puede desmultiplexar y procesar de una forma adecuada por la terminal . Una terminal multimedia H.324 también se puede implementar en una forma tal que se pueda conectar directamente a una red de línea fija digital tal como ISDN (Red Digital de Servicios Integrados) En este caso el MODEM 67 91 se reemplaza con una interfaz de red de usuarios ISDN. En la figura 10, esta interfaz de red de usuario ISDN se representa por un bloque alternativo 92. Las terminales multimedia H.324 también se pueden adaptar para su uso en aplicaciones de comunicación móviles. Si se usan con un enlace de comunicaciones inalámbrico, el MODEM 91 se puede reemplazar con cualquier interfaz inalámbrica adecuada como se representa por el bloque alternativo 93 en la figura 10. Por ejemplo, una terminal multimedia H.324/M puede incluir un transmisor de radio que permite la conexión a una red de teléfono móvil GSM actual de segunda generación, o las UMTS propuestas de tercera generación (Sistema de Teléfono Móvil Universal) . Se debe observar que en las terminales multimedia diseñadas para comunicación de dos vías, que es para la transmisión y recepción de datos de video es ventajoso proporcionar un codificador de video y un descodificador de video implementado de acuerdo con la presente invención. Tal codificador y descodificador se implementa a menudo como una unidad funcional sencilla combinada referida como "codee" . Un terminal multimedia típica H.324 se describirá ahora con mayor detalle con referencia a la figura 10. La terminal multimedia 80 incluye diversidad de elementos referidos como equipo terminal. Este incluye video, dispositivos de audio y telemáticos denotados genéricamente 68 por los números de referencia 81,82 y 83 respectivamente. El equipo de video 81 puede incluir por ejemplo una cámara de video para capturar imágenes de video, un monitor para desplegar el contenido de video recibido y equipo de procesamiento de video opcional. El equipo de audio 82 incluye típicamente un micrófono, por ejemplo para capturar mensajes hablados y un altavoz para reproducir el contenido de audio recibido. El equipo de audio también puede incluir unidades de procesamiento adicionales de audio. El equipo telemático 83 puede incluir una terminal de datos, tablero, pantalla blanca electrónica o un transmisor de imágenes fijas tales como una unidad de fax. El equipo de video 81 se acopla al códec de video 85. El codee de video 85 comprende un codificador de video y un descodificador de video correspondiente, ambos implementados de acuerdo con la invención. Tal codificador y descodificador se describirán en los siguientes. El códec de video 85 es responsable de codificar los datos de video capturados en una forma adecuada para una transmisión adicional sobre un enlace de comunicaciones y descodificar el contenido de video comprimidos recibido de la red de comunicaciones. En el ejemplo ilustrado en la figura 10, el códec de video se implementa de acuerdo con J 1 del códec JVT con modificaciones adecuadas para implementar el concepto del modo SKIP modificado de acuerdo con la invención en el codificador y descodificador del códec de video. 69 El equipo de audio de la terminal se acopla a un audio codee denotado por la figura 10 con el número de referencia 86. Como el codee de video el códec de audio comprende un par codificador descodificador . Convierte los datos de audio capturados por el equipo de audio de la terminal en una forma adecuada para transmisión sobre el enlace de comunicaciones y transforma los datos de audio codificados recibidos de la red de nuevo en una forma adecuada para reproducción, pro ejemplo en el altavoz de la terminal. La salida del códec de audio pasa a un bloque de retraso 87. Esto compensa los retrasos introducidos por el proceso de codificación de video y asegura así la sincronización del contenido de audio y de video . El bloque de sistema de control 84 de la terminal multimedia controla la señalización del final a la red utilizando un control de protocolo adecuado (bloque de señalización 88) para establecer un modo común de operación entre una terminal de transmisión y una terminal de recepción. El bloque de señalización 88n intercambia información a cerca de las capacidades de codificación y descodificación de las terminales de transmisión y recepción y se puede usar para permitir los diversos modos de codificación del codificador de video. El bloque del control de sistema 84 controla el uso del encriptado de datos. La información referente al tipo de encriptado va hacer usado en 70 la transmisión de datos se pasa desde el bloque de encriptado 89 al multiplexor/desmultiplexor (unidad MUX/DMUX) 90. Durante la transmisión de datos de la terminal multimedia, la unidad MUX/DMUX 90 combina corrientes de video y de audio codificadas y sincronizadas con la entrada de datos del tipo telemático 83 y los datos de control posibles para formar una corriente de bits sencilla. La información referente al tipo de encriptado de datos (si lo hay) a ser aplicada a la corriente de bits suministrado por el bloque de encriptado 89 se usa para seleccionar un modo de encriptado. De manera correspondiente cuando una corriente de bits multimedios, multiplexada y posiblemente encriptados se recibe, la unidad 90 es responsable de desencriptar la corriente de bits, dividiéndolo en sus componentes multimedios constituyentes y pasando aquellos componentes a los códec apropiados y/o al equipo terminal para descodificación y reproducción. Si la terminal multimedia 80 es una terminal móvil esto es, si está equipada con un transmisor de radio 92 se entenderá por aquellos expertos en la técnica que también puede comprender elementos adicionales. En una modalidad comprende una interfaz de usuario que tiene una pantalla y un tablero lo cual permite la operación de la terminal multimedia 80 por un usuario, una unidad de procesamiento central como un microprocesador que controla los bloques 71 responsables para diferentes funciones de la terminal multimedia, una memoria de acceso aleatoria RAM y una memoria de solo lectura ROM y una cámara digital . Las instrucciones de operación del microprocesador, esto es el código de programa que corresponde a las funciones básicas de la terminal multimedia 80 se almacena en la memoria de solo lectura ROM y se puede ejecutar como se requiera por el microprocesador por ejemplo bajo el control del usuario. De acuerdo con el código de programa el microprocesador utiliza el transmisor de radio 93 para formar una conexión de red de comunicación móvil lo cual permite que la terminal multimedia 80 transmita información y reciba información desde la red de comunicación móvil en una trayectoria de radio. El microprocesador observa el estado de interfaz del usuario y controla la cámara digital. En respuesta de un comando de usuario, el microprocesador instruye la cámara para grabar imágenes digitales en el RAM. Una vez que se captura una secuencia de video digital de imagen o alternativamente durante el proceso de captura, el microprocesador segmenta la imagen en segmentos de imágenes (por ejemplo el macrobloque) y utiliza el codificador para efectuar codificación compensada por movimiento de los segmentos con objeto de generar una secuencia de imagen comprimida como se explica en la descripción anterior. Un usuario puede manejar la terminal multimedia 80 para 72 desplegar las imágenes capturadas en su pantalla o enviar la secuencia de video comprimida usando el transmisor de radio 93 a otra terminal multimedia, un video teléfono conectado a una red de línea fija (o algún otro dispositivo de telecomunicaciones) . En una modalidad preferida, la transmisión de datos de imágenes comienza tan pronto como se codifica el primer segmento de manera que el receptor pueda comenzar un proceso de descodificación correspondiente con un retraso mínimo. Aunque se describe en el contexto de las modalidades particulares será evidente para aquellos expertos en la técnica que pueden suceder diversas modificaciones y varios cambios a estas enseñanzas. Así, aunque la invención se ha mostrado particularmente y descrito con respecto a una o más modalidades preferidas de la misma, se entenderá por aquellos expertos en la técnica que se pueden hacer ciertas modificaciones o cambios a ella sin alejarse del alcance y espíritu de la invención como se establece arriba. En particular de acuerdo con una modalidad alternativa de la invención, el bloque de análisis de movimiento circundante 802 se adapta para clasificar el movimiento de una región circundante en más de 2 clases de movimiento. Por ejemplo una clasificación significativa involucra tres clases de movimiento seria movimiento continuo, movimiento activo y movimiento no activo. De esta manera se pueden generar 73 parámetros de movimiento especiales para el caso típico de movimiento continuo. En otra modalidad alternativa de la invención, el bloque de análisis de movimiento circundante se retira y se activa el bloque generación del parámetro del movimiento activo para todos los macrobloques del modo de omisión. De acuerdo con una modalidad adicional alternativa, en lugar de usar el bloque de análisis de movimiento circundante para indicar la información de clasificación, se suministra la indicación por otros medios (por ejemplo como información lateral en macrobloque, corte y de los niveles de secuencia o imagen) . Todavía en otra modalidad alternativa el bloque de análisis de movimiento circundante que se puede desactivar o activar temporalmente con tales medios. En otra implementación alternativa, la tabla de modo de macrobloque se vuelve a presentar dependiendo de la salida del bloque de análisis de movimiento circundante para dar una mayor prioridad a los modos más probables. En una modalidad relativa la tabla de modo de macrobloque se regenera completamente dependiendo de la salida de un bloque de análisis de movimiento circundante por ejemplo al retirar la omisión. También se debe apreciar que el bloque de generación de parámetros de movimiento activo 803 se puede implementar de 74 diversas maneras. En modalidades particulares de la invención se adaptan para generar los parámetros en movimiento por ejemplo con base en la continuidad, velocidad o desviación en movimiento circundante también se puede enviar información lateral adicional para aliar la generación de parámetros de movimiento. En una modalidad alternativa el bloque de generación del parámetro de movimiento activo se adapta a vectores de movimientos múltiples de salida a usarse en diferentes partes del macrobloque . También se puede usar la invención para generar una predicción compensada de movimiento para otros modos de macrobloque además de o en lugar de modo de omisión. Tampoco se limita por la estructura del macrobloque pero se puede usar en cualquier sistema de codificación de video basado en segmentación . Se hace constar que con relación a esta fecha, el mejor método conocido por la solicitante para llevar a la práctica la citada invención, es el que resulta claro de la presente descripción de la invención.

Claims (20)

    75
  1. REIVINDICACIONES Habiéndose descrito la invención como antecede, se reclama como propiedad lo contenido en las siguientes reivindicaciones . 1. Un método de predicción compensada de movimiento para uso en codificación de una secuencia de video digital, la secuencia de video digital comprende una cantidad de cuadros, el método caracterizado porque comprende las etapas de: asignar un modo de codificación a un segmento de un primer cuadro de la secuencia a ser codificada al usar predicción compensada de movimiento con respecto a un segundo cuadro de la secuencia, el modo de codificación es uno de un conjunto de modos posibles de codificación que incluye un modo de omisión, caracterizado porque el modo de omisión, cuando se asigna al segmento del primer cuadro, indica ya sea (i) que el segmento tiene un nivel de movimiento insignificante, en cuyo caso, se forma una predicción para el segmento al copiar directamente desde una región correspondiente del segundo cuadro, o (ii) que el segmento tiene una característica de movimiento de movimiento global o regional en la secuencia de video, en cuyo caso, se forma una predicción para el segmento por predicción compensada de movimiento con respecto al segundo cuadro al usar información de movimiento representativa del movimiento global o regional. 76
  2. 2. El método de conformidad con la reivindicación 1, caracterizado porque comprende además la etapa de efectuar un análisis de movimiento en una región del primer cuadro circundante al segmento a ser codificado, con objeto de determinar una característica del movimiento en la región.
  3. 3. El método de conformidad con la reivindicación 3, caracterizado porque la región del primer cuadro circundante al segmento a ser codificado comprende segmentos previamente codificados del primer cuadro.
  4. 4. El método de conformidad con la reivindicación 2, caracterizado porque si se determina que el movimiento en la región del primer cuadro circundante al segmento a ser codificado tiene un nivel insignificante, se asigna el modo de omisión como el modo de codificación del segmento e información de movimiento indicativa de movimiento cero se asocia con el segmento.
  5. 5. El método de conformidad con la reivindicación 2, caracterizado porque si se determina que el movimiento en la región del primer cuadro circundante al segmento a ser codificado es característico de movimiento global o regional, el modo de omisión se asigna como el modo de codificación del segmento e información de movimiento indicativa del movimiento global o regional en la región circundante se asocia con el segmento.
  6. 6. El método de conformidad con la reivindicación 2 caracterizado porque el análisis comprende examinar la región 77 del primer cuadro circundante al segmento a ser codificado con obj eto de identificar al menos uno de los siguientes tipos de movimiento: movimiento continuo, movimiento que tiene una velocidad común, y movimiento que tiene una cierta desviación.
  7. 7. El método de conformidad con la reivindicación 2, caracterizado porque si un segmento del primer cuadro en la región del primer cuadro circundante al segmento a ser codificado no tiene movimiento, se asigna el modo de omisión como el modo de codificación del segmento e información de movimiento indicativa de movimiento cero se asocia con el segmento .
  8. 8. Un método de predicción compensada de movimiento para uso en descodificación de una secuencia codificada de video digital, la secuencia de video digital comprende una cantidad de cuadros, el método comprende las etapas de: recibir una indicación de un modo de codificación asignado a un segmento de un primer cuadro de la secuencia descodificada al usar predicción compensada de movimiento con respecto a un segundo cuadro de la secuencia, el modo de codificación es uno de un conjunto de posibles modos de codificación que incluye a modo de omisión; y determinar, cuando se indica el modo de omisión como el modo de codificación asignado al segmento del primer cuadro, (i) si el modo de omisión indica que el segmento tiene un nivel de movimiento insignificante, en cuyo caso, la 78 predicción compensada de movimiento para el segmento se efectúa al copiar directamente desde una región correspondiente del segundo cuadro, o (ii) si el modo de omisión indica que el segmento tiene movimiento característico de movimiento global o regional en la secuencia de video, en cuyo caso la predicción compensada de movimiento para el segmento se efectúa con respecto al segundo cuadro al usar información de movimiento representativa del movimiento global o regional.
  9. 9. El método de conformidad con la reivindicación 8, caracterizado porque la etapa de determinación comprende: efectuar un análisis de movimiento en una región previamente descodificada del primer cuadro circundante al segmento a ser descodificado con objeto de determinar una característica del movimiento en la región.
  10. 10. El método de conformidad con la reivindicación 9, caracterizado porque el análisis comprende examinar la región previamente descodificada del primer cuadro circundante al segmento a ser descodificado, con objeto de identificar al menos uno de los siguientes tipos de movimiento: movimiento continuo, movimiento que tiene una velocidad común, y movimiento que tiene una cierta desviación, en donde si al menos un tipo de movimiento se identifica en la región circundante, se determina que el modo de omisión indica que el segmento a ser descodificado tiene movimiento 79 característico de movimiento global o regional en la secuencia de video.
  11. 11. El método de conformidad con la reivindicación 9, caracterizado porque si un segmento del primer cuadro en la región previamente descodificada del primer cuadro circundante al segmento a ser codificado no tiene movimiento, se determina que el modo de omisión indica que el segmento a ser descodificado tiene un nivel de movimiento insignificante.
  12. 12. Un codificador de video configurado para codificar una secuencia de video digital al usar predicción compensada de movimiento, la secuencia de video digital comprende una cantidad de cuadros, el codificador caracterizado porque comprende: medios para asignar un modo de codificación a un segmento de un primer cuadro de la secuencia a ser codificada al usar predicción compensada de movimiento con respecto al segundo cuadro de la secuencia, en donde el modo de codificación es uno de un conjunto de posibles modos que incluye un modo de omisión; y medios para formar una predicción para el segmento, en donde el modo de omisión, cuando se asigna al segmento del primer cuadro indica ya sea, (i) que el segmento tiene un nivel de movimiento insignificante, en cuyo caso, los medios de formación forman una predicción para el segmento al copiar directamente desde una región correspondiente del segundo cuadro, o 80 (ii) que el segmento tiene movimiento característico de movimiento global o regional en la secuencia de video, en cuyo caso, los medios de formación forman una predicción para el segmento con respecto al segundo cuadro, al usar información de movimiento representativa del movimiento global o regional .
  13. 13. El codificador de conformidad con la reivindicación 12, caracterizado porque además comprende medios para analizar movimiento en una región del primer cuadro circundante al segmento a ser codificado con objeto de determinar una característica del movimiento en la región.
  14. 14. El codificador de conformidad con la reivindicación 13, caracterizado porque el medio de análisis se configura para analizar movimiento en segmentos previamente codificados del primer cuadro.
  15. 15. El codificador de conformidad con la reivindicación 13, caracterizado porque si el medio de análisis determina que el movimiento en la región tiene un nivel insignificante, el codificador se configura para asignar el modo de omisión como el modo de codificación del segmento y para asociar la información de movimiento indicativa de movimiento cero con el segmento a ser codificado.
  16. 16. El codificador de conformidad con la reivindicación 13, caracterizado porque el medio de análisis determina que el movimiento en la región del primer cuadro circundante al 81 segmento a ser codificado es característico de movimiento global o regional, el codificador se configura para asignar el modo de omisión como el modo de codificación del segmento, y para asociar información de movimiento indicativa del movimiento global o regional en la región circundante con el segmento a ser codificado.
  17. 17. El codificador de conformidad con la reivindicación 13, caracterizado porque el medio de análisis comprende medios para identificar al menos uno de los siguientes tipos de movimiento: movimiento continuo, movimiento que tiene una velocidad común, y movimiento que tiene una cierta desviación.
  18. 18. El codificador de conformidad con la reivindicación 13, caracterizado porque si el medio de análisis determina que un segmento del primer cuadro en la región del primer cuadro circundante al segmento a ser codificado no tiene movimiento, el codificador se configura para asignar el modo de omisión como el modo de codificación del segmento y para asociar información de movimiento indicativa de movimiento cero con el segmento a ser codificado.
  19. 19. Un descodificador de video configurado para descodificar una secuencia codificada de video digital al usar predicción compensada de movimiento, la secuencia de video digital comprende una cantidad de cuadros, el descodificador caracterizado porque comprende: 82 medios para recibir una indicación de un modo de codificación asignado a un segmento de un primer cuadro de la secuencia codificada al usar predicción compensada de movimiento con respecto a un segundo cuadro de la secuencia, el modo de codificación es uno de un conjunto de posibles modos de codificación que incluye un modo de omisión y medios para formar una predicción para el segmento, en donde cuando el modo de omisión se indica como el modo de codificación asignado al segmento del primer cuadro, el descodificador se configura para determinar (i) si el modo de omisión indica que el segmento tiene un nivel de movimiento insignificante, en cuyo caso el medio de formación forma la predicción para el segmento al copiar directamente desde una región correspondiente del segundo cuadro, o (ii) si el modo de omisión indica que el segmento tiene movimiento característico de movimiento global o regional en la secuencia de video, en cuyo caso el medio de formación forma la predicción para el segmento por predicción compensada de movimiento con respecto al segundo cuadro al usar información de movimiento representativa del movimiento global o regional.
  20. 20. Un descodificador de conformidad con la reivindicación 19, caracterizado porque comprende además medios para analizar movimiento en una región previamente 84 del primer cuadro en la región no tiene movimiento, el descodificador se configura para asociar información de movimiento indicativa de movimiento cero con el segmento a ser descodificado. 25. Una terminal multimedia, caracterizada porque comprende medios para obtener una secuencia de video digital; y un codificador de video configurado para codificar la secuencia de video digital al usar predicción compensada de movimiento, la secuencia de video digital comprende una cantidad de cuadros, en donde el codificador de video comprende: medios para asignar un modo de codificación a un segmento de un primer cuadro de la secuencia a ser codificada al usar predicción compensada de movimiento con respecto a un segundo cuadro de la secuencia, en donde el modo de codificación es uno de un conjunto de posibles modos que incluye un modo de omisión; y medios para formar una predicción para el segmento, en donde el modo de omisión, cuando se asigna al segmento del primer cuadro, indica ya sea (i) que el segmento tiene un nivel de movimiento insignificante, en cuyo caso, el codificador de video se configura de manera tal que los medios de formación forman una predicción para el segmento al copiar directamente desde una región correspondiente del segundo cuadro, o 85 (ii) que el segmento tiene movimiento característico de movimiento global o regional en la secuencia de video, en cuyo caso, el codificador de video se configura de manera que los medios de formación forman una predicción para el segmento con respecto al segundo cuadro al usar información de movimiento representativa del movimiento global o regional . 26. Una terminal multimedia caracterizada porque comprende : medios para adquirir una secuencia codificada de video digital; y un descodificador de video configurado para descodificar la secuencia de video digital codificada al usar predicción compensada de movimiento, la secuencia de video digital comprende una cantidad de cuadros, el descodificador comprende: medios para recibir una indicación de un modo de codificación asignado a un segmento de un primer cuadro de la secuencia codificada al usar predicción compensada de movimiento con respecto a un segundo cuadro de la secuencia, el modo de codificación es uno de un conjunto de posibles modos de codificación que incluye un modo de omisión; y medios para formar una predicción para el segmento, en donde cuando el modo de omisión se indica como el modo de codificación asignado al segmento del primer cuadro, el descodificador se configura para determinar 86 (i) si el modo de omisión indica que el segmento tiene un nivel de movimiento insignificante, en cuyo caso el medio de formación forma la predicción para el segmento al copiar directamente desde una región correspondiente del segundo cuadro, o (ii) si el modo de omisión indica que el segmento tiene movimiento característico de movimiento global o regional en la secuencia de video, en cuyo caso el medio de formación forma la predicción para el segmento por predicción compensada de movimiento con respecto al segundo cuadro al usar información de movimiento representativa del movimiento global o regional . 27. Un códec de video caracterizado porque comprende: un codificador de video configurado para codificar una. secuencia de video digital al usar predicción compensada de movimiento, la secuencia de video digital comprende una cantidad de cuadros, el codificador comprende: medios para asignar un modo de codificación a un segmento de un primer cuadro de la secuencia a ser codificada al usar predicción compensada de movimiento con respecto a un segundo cuadro de la secuencia, en donde el modo de codificación es uno de un conjunto de posibles modos que incluye un modo de omisión; y medios para formar una predicción para el segmento, en donde el modo de omisión, cuando se asigna al segmento del primer cuadro, indica ya sea 87 (i) que el segmento tiene un nivel de movimiento insignificante, en cuyo caso, el codificador de video se configura de forma tal que los medios de formación forman una predicción para el segmento al copiar directamente desde una región correspondiente del segundo cuadro, o (ii) que el segmento tiene movimiento característico de movimiento global o regional en la secuencia de video, en cuyo caso, el codificador de video se configura de manera tal que los medios de formación forman una predicción para el segmento con respecto al segundo cuadro al usar información de movimiento representativa del movimiento global o regional ; y un descodificador de video configurado para descodificar una secuencia codificada de video digital al usar predicción compensada de movimiento, la secuencia de video digital comprende una cantidad de cuadros, el descodificador comprende : medios para recibir una indicación de un modo de codificación asignado a un segmento de un primer cuadro de la secuencia codificada al usar predicción compensada de movimiento con respecto a un segundo cuadro de la secuencia, el modo de codificación es uno de un conjunto de posibles modos de codificación que incluye un modo de omisión; y medios para formar una predicción para el segmento, en donde cuando el modo de omisión se indica como el modo de 88 codificación asignado al segmento del primer cuadro, el descodificador se configura para determinar (i) si el modo de omisión indica que el segmento tiene un nivel de movimiento insignificante, en cuyo caso el medio de formación forma la predicción para el segmento al copiar directamente desde una región correspondiente del segundo cuadro, o (ii) si el modo de omisión indica que el segmento tiene movimiento característico de movimiento global o regional en la secuencia de video, en cuyo caso el medio de formación forma la predicción para el segmento por predicción compensada de movimiento con respecto al segundo cuadro al usar información de movimiento representativa del movimiento global o regional .
MXPA04008889A 2002-03-15 2003-03-14 Metodo para la codificacion de movimiento en una secuencia de video. MXPA04008889A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36507202P 2002-03-15 2002-03-15
PCT/IB2003/000944 WO2003079681A1 (en) 2002-03-15 2003-03-14 Method for coding motion in a video sequence

Publications (1)

Publication Number Publication Date
MXPA04008889A true MXPA04008889A (es) 2004-11-26

Family

ID=28042010

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04008889A MXPA04008889A (es) 2002-03-15 2003-03-14 Metodo para la codificacion de movimiento en una secuencia de video.

Country Status (16)

Country Link
US (1) US7532808B2 (es)
EP (2) EP3029938A1 (es)
JP (1) JP4611640B2 (es)
KR (2) KR101108501B1 (es)
CN (1) CN100581232C (es)
AU (1) AU2003209566A1 (es)
BR (2) BRPI0304565B1 (es)
CA (1) CA2478691C (es)
DK (1) DK1486065T3 (es)
ES (1) ES2562932T3 (es)
HK (1) HK1079645A1 (es)
HU (1) HUE026930T2 (es)
MX (1) MXPA04008889A (es)
PT (1) PT1486065E (es)
SI (1) SI1486065T1 (es)
WO (1) WO2003079681A1 (es)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030123738A1 (en) * 2001-11-30 2003-07-03 Per Frojdh Global motion compensation for video pictures
JP3923898B2 (ja) * 2002-01-18 2007-06-06 株式会社東芝 画像符号化方法及び装置
US7742525B1 (en) * 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
US7523482B2 (en) * 2002-08-13 2009-04-21 Microsoft Corporation Seamless digital channel changing
US8397269B2 (en) 2002-08-13 2013-03-12 Microsoft Corporation Fast digital channel changing
US7321623B2 (en) * 2002-10-01 2008-01-22 Avocent Corporation Video compression system
US20060126718A1 (en) * 2002-10-01 2006-06-15 Avocent Corporation Video compression encoder
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
US7603689B2 (en) * 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
NO318318B1 (no) * 2003-06-27 2005-02-28 Tandberg Telecom As Fremgangsmate for forbedret koding av video
US9560371B2 (en) 2003-07-30 2017-01-31 Avocent Corporation Video compression system
US7562375B2 (en) 2003-10-10 2009-07-14 Microsoft Corporation Fast channel change
US7444419B2 (en) * 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US20050105621A1 (en) * 2003-11-04 2005-05-19 Ju Chi-Cheng Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof
KR20050053297A (ko) * 2003-12-02 2005-06-08 학교법인 성균관대학 동영상 부호화 방법 및 장치
US7430222B2 (en) * 2004-02-27 2008-09-30 Microsoft Corporation Media stream splicer
US7720148B2 (en) * 2004-03-26 2010-05-18 The Hong Kong University Of Science And Technology Efficient multi-frame motion estimation for video compression
KR100713400B1 (ko) * 2004-04-30 2007-05-04 삼성전자주식회사 평균 히스토그램 오차 방식을 이용한 h.263/mpeg비디오 인코더 및 그 제어 방법
US7457461B2 (en) 2004-06-25 2008-11-25 Avocent Corporation Video compression noise immunity
US7792188B2 (en) 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
US8111752B2 (en) 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
DE102004038110B3 (de) * 2004-08-05 2005-12-29 Siemens Ag Verfahren zum Codieren und Decodieren, sowie Codier- und Decodiervorrichtung zur Videocodierung
US8861601B2 (en) 2004-08-18 2014-10-14 Qualcomm Incorporated Encoder-assisted adaptive video frame interpolation
US7640352B2 (en) * 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
DE102004049156B4 (de) * 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
FR2878383A1 (fr) * 2004-11-19 2006-05-26 France Telecom Procede de codage predictif d'une sequence d'images, dispositif de codage, procede et dispositif de decodage et programme correspondants
US7477653B2 (en) * 2004-12-10 2009-01-13 Microsoft Corporation Accelerated channel change in rate-limited environments
KR100681242B1 (ko) * 2004-12-16 2007-02-09 삼성전자주식회사 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템
US8548055B2 (en) * 2005-03-10 2013-10-01 Qualcomm Incorporated Encoding of multimedia data
CN103118254B (zh) * 2005-09-26 2016-01-20 三菱电机株式会社 运动图像编码装置以及运动图像译码装置
US20070110503A1 (en) * 2005-10-31 2007-05-17 Glover J S Dispensing brush with replaceable cartridge/handle part
US8135040B2 (en) * 2005-11-30 2012-03-13 Microsoft Corporation Accelerated channel change
US7555570B2 (en) 2006-02-17 2009-06-30 Avocent Huntsville Corporation Device and method for configuring a target device
US8718147B2 (en) * 2006-02-17 2014-05-06 Avocent Huntsville Corporation Video compression algorithm
EP1993292B1 (en) 2006-03-09 2013-05-15 NEC Corporation Dynamic image encoding method and device and program using the same
KR100966567B1 (ko) * 2006-03-30 2010-06-29 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
WO2007127452A2 (en) * 2006-04-28 2007-11-08 Avocent Corporation Dvc delta commands
NO325859B1 (no) 2006-05-31 2008-08-04 Tandberg Telecom As Kodek-preprosessering
WO2007148907A1 (en) * 2006-06-19 2007-12-27 Lg Electronics, Inc. Method and apparatus for processing a vedeo signal
WO2008023968A1 (en) * 2006-08-25 2008-02-28 Lg Electronics Inc A method and apparatus for decoding/encoding a video signal
JP4181592B2 (ja) * 2006-09-20 2008-11-19 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
US8804829B2 (en) * 2006-12-20 2014-08-12 Microsoft Corporation Offline motion description for video generation
KR101136771B1 (ko) * 2006-12-22 2012-04-20 퀄컴 인코포레이티드 다른 코딩 모드의 정보를 이용한 코딩 모드 선택
US8311120B2 (en) * 2006-12-22 2012-11-13 Qualcomm Incorporated Coding mode selection using information of other coding modes
KR101456305B1 (ko) * 2007-02-20 2014-11-03 소니 주식회사 화상 표시 장치, 영상 신호 처리 장치 및 영상 신호 처리 방법
JP5040393B2 (ja) * 2007-03-23 2012-10-03 ソニー株式会社 画像処理装置および画像処理方法、プログラム、並びに画像表示装置
KR101366241B1 (ko) * 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
WO2008122036A2 (en) * 2007-04-02 2008-10-09 Raytheon Company Methods and apparatus to selectively reduce streaming bandwidth consumption
JP4842899B2 (ja) * 2007-08-15 2011-12-21 Kddi株式会社 動画像符号化装置、動画像符号化方法およびプログラム
JP2009055519A (ja) * 2007-08-29 2009-03-12 Sony Corp 符号化処理装置、符号化処理方法、復号処理装置、及び、復号処理方法
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
WO2009095962A1 (ja) 2008-01-29 2009-08-06 Panasonic Corporation 画像符号化装置、画像符号化方法、画像符号化集積回路および画像符号化プログラム
US8325796B2 (en) * 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8385404B2 (en) * 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
JP2012504924A (ja) * 2008-10-06 2012-02-23 エルジー エレクトロニクス インコーポレイティド ビデオ信号の処理方法及び装置
US9078592B2 (en) * 2008-10-27 2015-07-14 Wisconsin Alumni Research Foundation Ultrasonic strain imaging device with selectable cost-function
KR101054644B1 (ko) * 2008-11-25 2011-08-08 에스케이 텔레콤주식회사 동작 추정 기반 영상 부호화/복호화 장치 및 방법
JP5325638B2 (ja) 2008-11-26 2013-10-23 日立コンシューマエレクトロニクス株式会社 画像復号化方法
US9124874B2 (en) * 2009-06-05 2015-09-01 Qualcomm Incorporated Encoding of three-dimensional conversion information with two-dimensional video sequence
US9635368B2 (en) * 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
CN102484705B (zh) * 2009-06-23 2015-01-07 法国电信公司 通过图像区域来编码和解码视频图像序列
US8526500B2 (en) * 2009-08-11 2013-09-03 Seiko Epson Corporation System and method for global inter-frame motion detection in video sequences
KR101624649B1 (ko) * 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101377530B1 (ko) 2009-08-21 2014-03-27 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
WO2011021914A2 (ko) 2009-08-21 2011-02-24 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
WO2011074919A2 (ko) * 2009-12-17 2011-06-23 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
US8885711B2 (en) 2009-12-17 2014-11-11 Sk Telecom Co., Ltd. Image encoding/decoding method and device
US8879632B2 (en) 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
JP5805991B2 (ja) * 2010-05-07 2015-11-10 トムソン ライセンシングThomson Licensing ピクチャ・シーケンスを符号化する方法、それに対応する再構築方法、および当該シーケンスを表す符号化データのストリーム
KR20110123651A (ko) * 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
JP2013533469A (ja) 2010-05-25 2013-08-22 アリックス インク 免疫診断における生物学的および化学的分析および用途における粒子の位置的自由度の検出のための方法および装置
US20120057629A1 (en) * 2010-09-02 2012-03-08 Fang Shi Rho-domain Metrics
CN102714729B (zh) * 2010-09-02 2016-06-08 英特赛尔美国股份有限公司 用于视频内容分析的系统和方法
US8503528B2 (en) 2010-09-15 2013-08-06 Google Inc. System and method for encoding video using temporal filter
CN102447895B (zh) 2010-09-30 2013-10-02 华为技术有限公司 扫描方法及装置、反扫描方法及装置
US9106916B1 (en) 2010-10-29 2015-08-11 Qualcomm Technologies, Inc. Saturation insensitive H.264 weighted prediction coefficients estimation
US9172963B2 (en) * 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
US8638854B1 (en) 2011-04-07 2014-01-28 Google Inc. Apparatus and method for creating an alternate reference frame for video compression using maximal differences
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US9509972B2 (en) * 2011-06-24 2016-11-29 Lg Electronics Inc. Encoding/decoding method and apparatus using a skip mode
US20130083840A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Advance encode processing based on raw video data
US20130117418A1 (en) * 2011-11-06 2013-05-09 Akamai Technologies Inc. Hybrid platform for content delivery and transcoding
US9262670B2 (en) 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
US9426459B2 (en) 2012-04-23 2016-08-23 Google Inc. Managing multi-reference picture buffers and identifiers to facilitate video data coding
US9609341B1 (en) 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
CN102740073B (zh) * 2012-05-30 2015-06-17 华为技术有限公司 一种编码方法及装置
US9014266B1 (en) 2012-06-05 2015-04-21 Google Inc. Decimated sliding windows for multi-reference prediction in video coding
US11317101B2 (en) * 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
CN104104964B (zh) * 2013-04-09 2019-03-12 乐金电子(中国)研究开发中心有限公司 一种深度图像帧间编码、解码方法、编码器及解码器
US9756331B1 (en) 2013-06-17 2017-09-05 Google Inc. Advance coded reference prediction
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
US9485456B2 (en) 2013-12-30 2016-11-01 Akamai Technologies, Inc. Frame-rate conversion in a distributed computing system
US9392272B1 (en) 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
US9578324B1 (en) 2014-06-27 2017-02-21 Google Inc. Video coding using statistical-based spatially differentiated partitioning
WO2017087751A1 (en) * 2015-11-20 2017-05-26 Mediatek Inc. Method and apparatus for global motion compensation in video coding system
US10503458B2 (en) * 2016-07-28 2019-12-10 Intelligent Waves Llc System, method and computer program product for generating remote views in a virtual mobile device platform using efficient macroblock comparison during display encoding, including efficient detection of unchanged macroblocks
CN112087626A (zh) * 2020-08-21 2020-12-15 西安万像电子科技有限公司 图像处理方法、装置及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2969782B2 (ja) * 1990-05-09 1999-11-02 ソニー株式会社 符号化データ編集方法及び符号化データ編集装置
US5148272A (en) * 1991-02-27 1992-09-15 Rca Thomson Licensing Corporation Apparatus for recombining prioritized video data
PT651574E (pt) * 1993-03-24 2002-02-28 Sony Corp Processo e aparelho para codiicar/descodificar um vector de movimento e processo para codificacao/descodificacao de um sinal de imagem
US5442400A (en) * 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
DE19541457C1 (de) * 1995-11-07 1997-07-03 Siemens Ag Verfahren zur Codierung eines Videodatenstroms einer aus Bildblöcken bestehenden Videosequenz
JP3344577B2 (ja) * 1996-09-09 2002-11-11 ソニー株式会社 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録方法
JP2000278692A (ja) * 1999-03-25 2000-10-06 Victor Co Of Japan Ltd 圧縮データ処理方法及び処理装置並びに記録再生システム
JP4610195B2 (ja) * 2001-12-17 2011-01-12 マイクロソフト コーポレーション スキップマクロブロックコード化

Also Published As

Publication number Publication date
AU2003209566A1 (en) 2003-09-29
BR0304565A (pt) 2004-12-07
CN1643912A (zh) 2005-07-20
HK1079645A1 (en) 2006-04-07
ES2562932T3 (es) 2016-03-09
SI1486065T1 (sl) 2016-05-31
PT1486065E (pt) 2016-03-30
EP1486065A1 (en) 2004-12-15
CA2478691C (en) 2012-11-27
CA2478691A1 (en) 2003-09-25
EP1486065A4 (en) 2006-01-04
WO2003079681A1 (en) 2003-09-25
EP1486065B1 (en) 2016-01-06
US7532808B2 (en) 2009-05-12
DK1486065T3 (en) 2016-02-29
JP2006500796A (ja) 2006-01-05
CN100581232C (zh) 2010-01-13
KR20040091746A (ko) 2004-10-28
US20030202594A1 (en) 2003-10-30
KR20080104385A (ko) 2008-12-02
HUE026930T2 (en) 2016-08-29
EP3029938A1 (en) 2016-06-08
BRPI0304565B1 (pt) 2018-07-24
JP4611640B2 (ja) 2011-01-12
KR101108661B1 (ko) 2012-01-25
KR101108501B1 (ko) 2012-03-13

Similar Documents

Publication Publication Date Title
CA2478691C (en) Method for coding motion in a video sequence
JP4510465B2 (ja) イメージ/ビデオ符号器及び/又は復号器における変換係数の符号化
US7263125B2 (en) Method and device for indicating quantizer parameters in a video coding system
JP4234607B2 (ja) 画像/ビデオエンコーダおよび/またはデコーダにおける符号化変換係数
US6690307B2 (en) Adaptive variable length coding of digital video

Legal Events

Date Code Title Description
FG Grant or registration