ES2216028T3 - Un metodo y un aparato para comprimir informacion de video utilizando prediccion dependiente del movimiento. - Google Patents

Un metodo y un aparato para comprimir informacion de video utilizando prediccion dependiente del movimiento.

Info

Publication number
ES2216028T3
ES2216028T3 ES96113147T ES96113147T ES2216028T3 ES 2216028 T3 ES2216028 T3 ES 2216028T3 ES 96113147 T ES96113147 T ES 96113147T ES 96113147 T ES96113147 T ES 96113147T ES 2216028 T3 ES2216028 T3 ES 2216028T3
Authority
ES
Spain
Prior art keywords
blocks
block
prediction
macroblock
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES96113147T
Other languages
English (en)
Inventor
Wai-Man Lam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technicolor USA Inc
Original Assignee
Thomson Consumer Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Consumer Electronics Inc filed Critical Thomson Consumer Electronics Inc
Application granted granted Critical
Publication of ES2216028T3 publication Critical patent/ES2216028T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

UN METODO Y APARATO DESCUBIERTOS REDUCEN EL NUMERO DE CALCULOS Y SIMPLIFICA LOS EQUIPOS REQUERIDOS PARA PROPORCIONAR DATOS DE SALIDA DE VIDEO COMPRIMIDOS. LOS DATOS DE SALIDA DE VIEDO SON CONVERTIDOS (57) EN BLOQUES DE PUNTOS DE ENTRADA. LOS MEJORES BLOQUES PRONOSTICADOS Y LOS VECTORES DE MOVIMIENTO SON ASOCIADOS (91,93,97) PARA BLOQUES DE PUNTOS DE ENTRADA LOCALIZADA EN UNA AREA PREDETERMINADA DE LA IMAGEN. ADEMAS, LOS BLOQUES PRONOSTICADOS CANDIDATOS SON DETERMINADOS PARA OTROS BLOQUES DE PUNTOS DE ENTRADA. ESTO SE HACE (65,75,80,85,90,95) POR VECTORES DE MOVIMIENTO QUE EXTRAPOLAN DESDE LOS VECTORES DE MOVIMIENTO ASOCIADOS DETERMINADOS PREVIAMENTE Y QUE IDENTIFICAN LOS BLOQUES PRONOSTICADOS CANDIDATOS QUE USAN LOS VECTORES DE MOVIMIENTO EXTRAPOLADOS. LOS BLOQUES PRONOSTICADOS CANDIDATOS SON MUTUAMENTE COMPARADOS (65), Y UNO DE LOS BLOQUES ESTA CONSISTENTEMENTE SELECCIONADO CON LOS REQUERIMIENTOS DE LA TASA DE DATOS DE COMPRESION. ESTE BLOQUE SELECCIONADO ESTA COMPRIMIDO (70) PARA PROPORCIONAR UN BLOQUE DE SALIDA QUE ESTA FORMATEADO (100) DENTRO DE UN PAQUETE DE DATOS DE SALIDA. UN DETECTOR DE UN COMPARATIVO BLOQUE SE USA (85,95) PARA IDENTIFICAR LOS BLOQUES PRONOSTICADOS DE CAMPO CANDIDATOS Y VECTORES DE MOVIMIENTO ASOCIADOS DONDE LOS QUE OTROS VECTORES DE MOVIMIENTO SON EXTRAPOLADOS Y USADOS PARA IDENTIFICAR BLOQUE PRONOSTICADO ADICIONALES.

Description

Un método y un aparato para comprimir información de vídeo utilizando predicción dependiente del movimiento.
Este invento se refiere al campo del tratamiento de señal digital de imagen, y más en particular a un método y un aparato para comprimir información de vídeo seleccionada de una pluralidad de predicciones dependientes del movimiento.
Los sistemas de transmisión de información de vídeo utilizan compresión de vídeo para reducir la cantidad de datos de vídeo que se transmiten. Esto permite la utilización de menos ancho de banda de transmisión, menos tiempo de transmisión y menor capacidad de almacenamiento. Una técnica utilizada usualmente para comprimir información de vídeo, tal como la contenida en una señal de televisión, reduce la información de imagen temporal redundante que aparece en imágenes sucesivas de una secuencia de imágenes. La información de imagen temporal redundante es información asociada con segmentos de imagen estáticos o con segmentos de imagen que simplemente experimentan un desplazamiento entre imágenes sucesivas. Estos segmentos de imagen son identificados y codificados de modo que se elimina en alto grado la información de imagen temporal redundante de los datos de vídeo transmitidos. Los datos de vídeo transmitidos están codificados adecuadamente para permitir la reconstrucción de una imagen a partir de otras imágenes transmitidas y la inserción de estos segmentos de imagen codificados en el receptor. Esta técnica de compresión de información temporal requiere la realización de estimaciones del grado de movimiento que se produce en bloques constituyentes de una imagen con relación a otras imágenes anteriores o subsiguientes. Estas estimaciones de movimiento, denominadas vectores de movimiento, son utilizadas para codificar los datos de vídeo de modo que una imagen pueda ser predicha a partir de imágenes anteriores o futuras. Este proceso se denomina predicción compensada en movimiento, como es bien conocido.
Una norma de compresión de vídeo utilizada usualmente, que hace uso de la técnica de predicción compensada en movimiento, es la norma de codificación de imagen MPEG (Moving Pictures Expert Group) (ISO/IEC 13818-2, 10 de mayo de 1994). Los datos de vídeo codificados en este formato consisten en una secuencia cíclica de imágenes sucesivas, o cuadros, de datos codificados. Ciertas imágenes (imágenes I) están intracodificadas, es decir codificadas solamente a partir de información contenida en la propia imagen. Otras imágenes (imágenes P) están codificadas predictivamente en avance, es decir codificadas utilizando predicción compensada en movimiento a partir de imágenes I o imágenes P. las imágenes restantes (imágenes B) están codificadas predictivamente tanto anticipativamente como retrospectivamente, es decir están codificadas utilizando predicción compensada en movimiento a partir de imágenes I o imágenes P anteriores o futuras. Por consiguiente, las imágenes P y B están codificadas predictivamente, de modo que la reproducción de imágenes P o B requiere información deducida de imágenes I o P decodificadas anteriormente. En contraste, las imágenes I no están codificadas predictivamente y pueden ser reproducidas a partir de imágenes I o cuadros individualmente.
Deben calcularse muchos vectores de movimiento con el fin de formar las imágenes comprimidas P y B codificadas predictivamente según la norma MPEG. Esto representa un problema porque el cálculo de vectores de movimiento es una tarea de cálculo intensiva y que consume tiempo. El resultado es que se requieren circuitos complejos y costosos para realizar los cálculos de vectores de movimiento para generar los datos de vídeo comprimidos transmitidos.
Es conocida por el documento US 5,412,435 la técnica de estimación de movimiento en campos diferentes, incluyendo la estimación de movimiento de campo próximo y campo lejano. Se conoce también por esta referencia la reducción del número de cálculos de vectores de movimiento realizando primero una estimación de movimiento de un tipo y utilizando a continuación el resultado para obtener la desviación de la posición de partida para las otras estimaciones de movimiento. Sin embargo, el número de cálculos de vectores de movimiento es aun relativamente grande.
Un sistema de compresión de señal de vídeo descrito de acuerdo con los principios del presente invento realiza predicciones basadas en vectores de movimiento utilizando un número reducido de cálculos. El sistema de compresión de señal de vídeo descrito calcula uno o más vectores de movimiento y extrapola los valores restantes de vectores de movimiento requeridos a partir de estos valores iniciales calculados. Los vectores de movimiento extrapolados se calculan por escalado temporal de los valores de vector de movimiento calculados inicialmente.
Los datos de entrada de vídeo compatibles con la norma MPEG, representativos de imagen, son convertidos en bloques de elementos de imagen de entrada. Para un primer bloque de elementos de imagen de entrada, se determina los vectores de predicción candidatos en un primer campo y los vectores de movimiento mediante una búsqueda de coincidencia de bloques. Se extrapolan otros vectores de movimiento a partir de los vectores de movimiento asociados y se utilizan para identificar otros bloques de predicción candidatos en un segundo campo. El método de cálculo de estos vectores de movimiento depende de la paridad del vector de movimiento de bloques de elementos de imagen predichos anteriormente próximos al primer bloque de elementos de imagen de entrada. Los bloques candidato son comparados mutuamente y se selecciona uno de los bloques de predicción. El bloque seleccionado es comprimido para obtener un bloque de salida que es formateado en un paquete de datos para proporcionar los datos de salida de vídeo comprimidos.
De acuerdo con otra característica específica del invento, se describe un aparato para proporcionar bloques de salida de vídeo comprimidos en un terminal de salida utilizando extrapolación de vectores de movimiento.
Breve descripción de los dibujos
En los dibujos:
La figura 1 ilustra las relaciones de campo implicadas en vectores de movimiento de la misma paridad de campo (SFP) y de paridad de campo opuesta (OFP).
La figura 2 ilustra los macrobloques de borde izquierdo y superior de una imagen que ha de ser codificada y para la cual se calculan todos los vectores de movimiento necesarios.
La figura 3 ilustra una situación en la que el bloque situado por encima (TB) de un macrobloque en curso (CM) y un bloque situado a la izquierda de (LB) de un macrobloque en curso en una imagen a codificar tienen la misma paridad de campo.
La figura 4 ilustra una situación en la que el bloque situado por encima (TB) de un macrobloque en curso (CM), y un bloque situado a la izquierda (LB) de un macrobloque en curso en una imagen a codificar tienen paridades de campo mezcladas.
Las figuras 5-6 muestran un diagrama de flujo de acuerdo con el presente invento, que detalla un método para determinar los mejores macrobloques predicción para compresión utilizando un número reducido de cálculos de vectores de movimiento.
La figura 7 ilustra la técnica de escalado de vectores de movimiento utilizada en el diagrama de flujo de las figuras 5-6.
La figura 8 ilustra un proceso de búsqueda de perturbaciones utilizado para refinar los valores de vector de movimiento estimados en el diagrama de flujo de las figuras 5-6.
La figura 9 muestra un diagrama de flujo, de acuerdo con el invento, para determinar el mejor macrobloque de predicción de cuadro y el vector MV1 de movimiento asociado.
La figura 10 muestra un aparato codificador compatible con la norma MPEG de acuerdo con los principios del presente invento.
La norma MPEG permite la utilización de diferentes métodos para codificar las imágenes P y B. Cada uno de estos métodos requiere el cálculo de vectores de movimiento. La imagen a codificar predictivamente es dividida en bloques (bloques en curso) y los bloques se predicen bloque por bloque utilizando los vectores de movimiento calculados. En la norma MPEG los bloques se denominan macrobloques y tienen un tamaño establecido en 16 x 16 elementos de imagen (pixels). Pueden formarse varios macrobloques de predicción candidatos para cada macrobloque que se está sometiendo al proceso de predicción en un momento determinado utilizando, por ejemplo, codificación basada en cuadros, codificación basada en campos y "promediado de dos predicciones anticipativas". La mejor predicción para un macrobloque en curso (CM) particulares se selecciona de estos macrobloques de predicción candidatos a ser comprimidos y transmitidos.
La sección 7.6.3.3 y las tablas 7-9, 7-10 de la norma MPEG definen cinco vectores de movimiento diferentes que pueden ser calculados para formar las predicciones de macrobloque de imagen P candidato, y diez vectores de movimiento diferentes para las predicciones de macrobloque de predicción de imagen B candidato (norma de codificación de imagen MPEG, ISO/IEC 13818-2, 10 de Mayo de 1994). En la predicción de imágenes B, los cinco vectores de movimiento de predicción de imagen P no se aplican solamente en la dirección de predicción de avance, sino también en la dirección de predicción de retroceso. Los principios del invento, como se describirá, son aplicables a los diez vectores de movimiento de predicción de imagen B y, por simplicidad, solamente se describe la predicción de imágenes P.
Los cinco vectores de movimiento de imagen P se identifican a continuación. Las relaciones de campo de los vectores MV''-MV5 de movimiento de campo se ilustran en la figura 1. Los vectores MV2 y MV3 de movimiento tienen la misma paridad de campo (SFP), ya que se trata de vectores comprendidos en el mismo campo de diferentes cuadros de imagen, y cada vector se denomina Vector de Movimiento de la Misma Paridad de Campo (SFPMV). Los vectores MV4 y MV5 de movimiento tiene paridades de campo opuestas (OFP), ya que son vectores definidos entre campos diferentes de cuadros de imagen diferentes, como se ilustra en la figura 1, y cada vector se denomina Vector de Movimiento de Paridad de Campo Opuesta (OFPMV).
MV1
\;
-
Vector de movimiento de cuadro de la imagen que está siendo codificada en curso para almacenamiento.
MV2
\;
-
Vector de movimiento del campo 1 (f1) de la imagen que está siendo codificada en curso para el campo 1 (f1) de la imagen almacenada (un Vector de Movimiento de la Misma Paridad de Campo).
MV3
\;
-
Vector de movimiento del campo 2 (f2) de la imagen que está siendo codificada en curso para el campo 2 (f2) de la imagen almacenada (un Vector de Movimiento de la Misma Paridad de Campo).
MV4
\;
-
Vector de movimiento del campo 2 (f2) de la imagen que está siendo codificada en curso para el campo 1 (f1) de la imagen almacenada (un Vector de Movimiento de Paridad de Campo Opuesta).
MV5
\;
-
Vector de movimiento del campo 1 (f1) de la imagen que está siendo codificada en curso para el campo 2 (f2) de la imagen almacenada (un Vector de Movimiento de Paridad de Campo Opuesta).
Las figuras 5-6 describen un método de acuerdo con el invento para generar un macrobloque con el mejor grado de predicción para cada macrobloque en curso de un cuadro. Esto se realiza utilizando un número reducido de cálculos para obtener los vectores de movimiento requeridos y permite utilizar, en consecuencia, implementaciones de circuito más simples y menos costosas. La ventaja aportada es particularmente valiosa en aplicaciones de codificación de vídeo con limitaciones de coste y tamaño, tales como, por ejemplo, en cámaras de vídeo. Específicamente, el método de las figuras 5-6 implica la reducción del número de cálculos realizados en la identificación de los macrobloques predichos como candidatos y en la obtención de sus vectores MV1-MV5 de movimiento y valores de error cuadrático medio (MSE) asociados. Un valor de error cuadrático medio de bloque de predicción candidato es el error cuadrático medio calculado entre los valores de los elementos de imagen del bloque de predicción candidato y los correspondientes valores de los elementos de imagen del macrobloque en curso al que se refiere la predicción. Aunque el método de las figuras 5 y 6 se describe en el contexto de un sistema de codificación MPEG, los principios del invento son también aplicables a otros sistemas de compresión de vídeo.
En un análisis general, en la operación 15 de la figura 1, después del arranque de la secuencia en la operación 10, se determinan los mejores bloques de predicción y los vectores MV1-MV5 de movimiento asociados para los macrobloques de imagen correspondientes a los bordes superior e izquierdo. A continuación, en las operaciones 23-70 se determinan los dos mejores bloques de predicción y los vectores de movimiento de campo asociados para los macrobloques en curso restantes para el campo 1 y el campo 2 del cuadro que se está codificando. Esta se hace con un número reducido de cálculos utilizando un método de acuerdo con el invento. En la operación 80, los macrobloques de predicción de cuadro y el vector MV1 de movimiento de cuadro asociado se determinan también para los macrobloques de imagen en curso restantes. Esto se realiza utilizando un método de acuerdo con el invento que implica un número de cálculos reducido. Finalmente, en la operación 85 se comparan mutuamente los macrobloques de predicción de cuadro y campo y se selecciona el mejor bloque de predicción para cada uno de los macrobloques de imagen restantes, en base al error cuadrático medio, en consonancia con las limitaciones de velocidad de transferencia de datos del sistema de transmisión. Los mejores macrobloques de predicción seleccionados, que pueden ser indistintamente macrobloques de predicción de campo o de cuadro, son los macrobloques de predicción que se comprimen y transmiten finalmente.
Considerando con detalle las figuras 5-6, los macrobloques en curso del cuadro que se está prediciendo se introducen en la operación 15 de la figura 5, a continuación del arranque de la secuencia en la operación 10. En la operación 15 se determina el mejor macrobloque de predicción para cada macrobloque en curso en una "zona de referencia" predeterminada del cuadro. En una realización preferida, se determinan los macrobloques en curso en la zona de referencia consistente en los bordes superior e izquierdo del cuadro, como se ilustra en la figura 2. Cada uno de los mejores macrobloques de predicción se obtiene realizando una "búsqueda de coincidencia de bloques" completa. Tal "búsqueda de coincidencia de bloques" completa corresponde a un método conocido de identificación de un macrobloque de búsqueda en una imagen almacenada, que es el que mejor concuerda con un macrobloque en curso. El macrobloque de búsqueda de "mejor coincidencia" es seleccionado como macrobloque de predicción para el correspondiente macrobloque en curso.
En la realización de la búsqueda de coincidencia de bloques, el macrobloque en curso es comparado con todos los macrobloques de búsqueda en una región de una imagen predicha. Los macrobloques son comparados calculando el error medio cuadrático (MSE) entre cada macrobloque de búsqueda y el macrobloque en curso, como indicación de la correlación entre los dos macrobloques. Se selecciona como macrobloque de predicción el "bloque de mejor coincidencia" que tiene el valor más bajo del error medio cuadrático. Como alternativa al error medio cuadrático, pueden utilizarse también otros criterios de comparación, tales como el error medio absoluto (MAE) en una búsqueda de coincidencia de bloques, u otro tipo de proceso de selección como medida de la correlación.
En la operación 15, se determinan los vectores MV1-MV5 de movimiento de los macrobloques en curso correspondientes al borde superior y borde izquierdo, utilizando el proceso de búsqueda de coincidencia de bloques. Los vectores MV1-MV5 de movimiento para cada macrobloque en curso están dados por los desplazamientos vectoriales entre el macrobloque en curso y los correspondientes macrobloques de predicción identificados por el proceso de búsqueda. El proceso de búsqueda de coincidencia de bloques descrito es conocido y puede ser implementado utilizando circuitos integrados de estimación de movimiento disponibles comercialmente, tales como, por ejemplo, el dispositivo SGS-Thomson STI3220.
Se determinan a continuación los mejores macrobloques de predicción y los vectores de movimiento asociados para cada uno de los macrobloques en curso de imagen restantes. La operación 15 establece que los macrobloques en curso se toman por orden, progresando desde el extremo superior izquierdo hasta el extremo inferior derecho del campo 1 del cuadro que está siendo predicho, seguido por el campo 2 de este cuadro. Esto asegura que han sido ya determinadas las mejores predicciones para el bloque que está por encima (TB) y el bloque situado a la izquierda (LB) del macrobloque en curso. Los macrobloques en curso pueden tomarse alternativamente en cualquier orden que cumpla este requerimiento.
Las determinación de los macrobloques de predicción de campo utilizando un número reducido de cálculos de acuerdo con el invento se inicia en la operación 20. La operación 20 establece que se realiza una búsqueda de coincidencia de bloques y se calculan los vectores MV2-MV5 de movimiento ejecutando la vía adecuada del diagrama de flujo establecida entre las operaciones 23 y 70. La ejecución de la operación 23, seguida por la ejecución de las operaciones de la vía adecuada del diagrama de flujo, se realiza primero para el campo 1 y a continuación para el campo 2 del macrobloque en curso.
En la operación 23 de la figura 5, se examinan las paridades de campo de vector de movimiento de ambos bloques TB y LB de mejor predicción del macrobloque en curso en el campo en curso (CF). Si, por ejemplo, el bloque TB y el mejor macrobloque de predicción de dicho bloque están ambos en el campo 1 (f1) o en el campo 2 (f2) de sus imágenes respectivas, el bloque TB es un macrobloque de la misma paridad de campo (SFP) con un vector de movimiento de la misma paridad de campo (SFPMV). Similarmente, si el bloque LB y el mejor macrobloque de predicción del bloque LB están en campos diferentes de sus respectivas imágenes, el bloque LB es de paridad de campo opuesta (OFP) con un vector de movimiento de paridad de campo opuesta. La figura 3 ilustra la situación en la cual ambos bloque LB y TB son de la misma paridad de campo (SFP), es decir ambos tienen la misma paridad de campo que el macrobloque en curso. La figura 4 ilustra la situación en la cual el bloque TB es un macrobloque SFP y el bloque LB es un macrobloque OFP, es decir TB y LB tienen paridades de campo mezcladas y tienen vectores de movimiento con paridad de campo mezclada (MFPMV). Por consiguiente, dependiendo de la determinación de paridad realizada en la operación 23, los bloques TB y LB tendrán indistintamente ambos un vector de movimiento de la misma paridad de campo, vectores de movimiento de paridades de campo opuestas, o vectores de movimiento con paridades de campo mezcladas. Si los bloques TB y LB son del tipo que tienen vectores de movimiento de la misma paridad de campo, se realizan las operaciones 25, 30, 32, 35 y 37. Similarmente, si TB y LB son del tipo que tienen vectores de movimiento de paridad de campo opuesta, se realizan las operaciones 45, 50, 52, 55 y 57. Si TB y LB son del tipo que tienen vectores de movimiento con paridad de campo mezclada, se realizan las operaciones 65 y 70. En la operación 70, dependiendo de la paridad de campo del vector de movimiento de los macrobloques TB y LB que tiene el valor más bajo del error medio cuadrático (MSE), se realizan los procesos definidos a través de las vías SFPMV (operaciones 25-37) o OFPMV (operaciones 45-57).
El diagrama de flujo de las figuras 5-6 se divide en tres vías para las operaciones 25-70, a continuación de la operación 23. La primera vía (operaciones 25-37) se ejecuta si los mejores macrobloques de predicción TB y LB son ambos del tipo de vectores de movimiento de la misma paridad de campo. A continuación, se satisface la condición de la operación 25 y la ejecución del diagrama de flujo continúa con la operación 30. En la operación 30 se realiza una búsqueda de coincidencia de bloques, como es conocida y como se ha descrito anteriormente, para identificar un macrobloque de mejor coincidencia en una imagen almacenada para el macrobloque en curso en el campo en curso en base al error medio cuadrático (MSE). Esta búsqueda se realiza en el mismo campo relativo (f1 o f2) de la imagen almacenada que el del macrobloque en curso en el cuadro que se está prediciendo. A continuación se calcula el vector de movimiento de la misma paridad de campo (SFPMV) a partir del desplazamiento vectorial entre el macrobloque en curso y el mejor macrobloque de coincidencia en la imagen almacenada.
El factor K de escala se selecciona en la operación 32 para optimizar la estimación de un vector de movimiento realizada en la operación 35. En la operación 32 se selecciona un factor K de escala que aplica una escala lineal al vector de movimiento de la misma paridad de campo (SFPMV) calculado de la operación 30 para proporcionar una estimación del vector de movimiento de paridad de campo opuesta (OFPMV). El vector de movimiento de la misma paridad de campo es escalado linealmente en base a la diferencia del tiempo transcurrido entre los macrobloques en curso y de predicción asociados con el vector de movimiento de la misma paridad de campo, y en base a la diferencia del tiempo transcurrido entre los macrobloques en curso y de predicción asociados con el vector de movimiento de paridad de campo opuesta estimado. Por ejemplo, la figura 7 ilustra la determinación de valores K para la estimación del vector de movimiento de paridad de campo opuesta en dos casos. En el caso 1, para un vector SFPMV1 calculado entre puntos centrales A (campo 2, campo 1) y B (campo 1, campo 1), se calcula un valor K de 0,5, y el vector OFPMV1 entre los puntos centrales A y B1 (campo 1, campo 2) del macrobloque se estima como 0,5 * SFPMV1. Esto es así porque, en primera aproximación, el tiempo entre A y B1 (T) es la mitad del tiempo entre A y B (2T). Similarmente, en el caso 2, para un vector SFPMV2 calculado entre puntos centrales C (campo 2, campo 2) y D (campo 1, campo 2), se calcula un valor K de 1,5, y el vector OFPMV2 entre los puntos centrales C y D1 del macrobloque (campo 1, campo 2) se estima como 1,5 * SFPMV2. Esto es así porque, en primera aproximación, el tiempo entre C y D1 (3T) es 1,5 veces el tiempo entre C y D (2T). T es el periodo de tiempo entre campos sucesivos en estos ejemplos. Se aplica una estimación de vector de movimiento de escalado temporal similar en la predicción del tipo "promediado de dos predicciones anticipativas" (sección 7.6.3.6 de la norma MPEG de codificación de imagen, ISO/IEC 13818-2, 10 de mayo de 1994).
Aunque en la realización preferida se utiliza un escalado lineal de primer orden, pueden utilizarse métodos de escalado alternativos. El método de escalado comentado anteriormente puede ampliarse para cubrir la estimación de vectores de movimiento entre imágenes no sucesivas o imágenes separadas en periodos de tiempo variables, por ejemplo. El escalado puede compensar también un desplazamiento vertical entre las líneas de campos de paridad diferente, como se utiliza en la técnica de compensación MPEG del tipo de "promediado de dos predicciones anticipativas". Aunque el invento se describe en el contexto de imágenes compuestas por dos campos entrelazados, los principios del invento y el proceso de estimación de vectores de movimiento pueden aplicarse a secuencias de imágenes compuestas por secuencias de imagen no entrelazadas (del tipo de exploración progresiva). En tales secuencias, cada imagen de la secuencia puede considerarse como un cuadro.
En la operación 35 (figuras 5-6), el valor K determinado en la operación 32 es multiplicado por el vector de movimiento de la misma paridad de campo obtenido en la operación 30 para proporcionar un vector de movimiento de paridad de campo opuesta, como se ilustra a modo de ejemplo en los casos 1 y 2 comentados anteriormente. Un macrobloque de predicción de campo es identificado en la imagen almacenada utilizando este vector de movimiento de paridad de campo opuesta inicial estimado. El vector de movimiento de paridad de campo opuesta inicial estimado es optimizado adicionalmente en la operación 35 perturbando el vector de movimiento (OFPMV) en una región en torno al centro del macrobloque identificado para encontrar macrobloques de predicción locales adicionales. El mejor macrobloque de predicción de campo y el vector de movimiento de paridad de campo opuesta óptimo estimado pueden ser identificados a continuación calculando los valores del error medio cuadrático asociado de estos bloques de predicción locales. El macrobloque local que tiene el error medio cuadrático más bajo es seleccionado como macrobloque local óptimo y se selecciona su vector de movimiento de paridad de campo opuesta asociado como valor óptimo del vector de movimiento de paridad de campo opuesta (OFPMV).
La figura 8 ilustra la perturbación del vector de movimiento de paridad de campo opuesta estimado inicial alrededor del elemento (W) de imagen central del macrobloque inicial identificado asociado. La búsqueda del vector de movimiento de paridad de campo opuesta perturbado se realiza para los ocho macrobloques que tienen los ocho elementos de imagen marcados con "Z" como puntos centrales. La región de búsqueda alrededor del elemento W puede ampliarse o reducirse para ajustarse a las restricciones de cálculo del sistema según sea adecuado. La decisión de realizar una búsqueda de perturbación puede tomarse dependiendo de un criterio de calidad de estimación, tal como la magnitud del valor del error medio cuadrático del vector de movimiento de paridad de campo opuesta, por ejemplo. El tamaño de la región de búsqueda de perturbación puede variarse similarmente dependiendo de dicho criterio de calidad. El mejor macrobloque de predicción correspondiente al macrobloque en curso en el campo en curso se selecciona como macrobloque identificado para el vector de movimiento de la misma paridad de campo u vector de movimiento de paridad de campo opuesta con el valor más bajo del error medio cuadrático en la operación 37 del diagrama de flujo (figura 6).
La segunda vía del diagrama de flujo de las figuras 5-6 a continuación de la operación 23, que incluye las operaciones 45 a 57, se ejecuta si los mejores macrobloques de predicción relativos a los bloques TB y LB son ambos del tipo de vector de movimiento de paridad de campo opuesta. Si se satisface la condición correspondiente a la operación 45, se ejecutan las operaciones 50 a 57. Las operaciones 45 a 57 son equivalentes a las operaciones 25 a 37, con la excepción de que en la operación 50 se calcula el vector de movimiento de paridad de campo opuesta. Esto se hace realizando una búsqueda de coincidencia de bloques para identificar un mejor macrobloque de coincidencia en el campo de la imagen almacenada opuesto al campo en el cual reside el macrobloque en curso. A continuación, se determina un factor K de escala en la operación 52 para optimizar la estimación del vector de movimiento de la misma paridad de campo a partir del vector de movimiento de paridad de campo opuesta, cuya determinación se realiza en la operación 55. El factor K de escala se determina aplicando el método descrito en la operación 32 como escalado lineal basado en la diferencia de tiempo transcurrido entre el vector de movimiento de paridad de campo opuesta y el vector de movimiento de la misma paridad de campo correspondientes a los macrobloques en curso y de predicción. En la operación 55 se determinan un macrobloque de predicción de campo optimizado en la imagen almacenada y una estimación optimizada del vector de movimiento de la misma paridad de campo asociado y se determina el valor del error medio cuadrático utilizando el método de búsqueda de perturbación explicado en relación con la operación 35. En la operación 57 se selecciona el mejor macrobloque de predicción para el macrobloque en curso en el campo en curso como macrobloque identificado para el vector de movimiento de la misma paridad de campo o para el vector de movimiento de paridad de campo opuesta con el valor más bajo del error medio cuadrático.
La tercera vía del diagrama de flujo de las figuras 5-6 a continuación de la operación 23, que comprende las operaciones 65 y 70, se ejecuta si los mejores macrobloques de predicción correspondientes a los bloques TB y LB son del tipo MFPMV (vectores de movimiento con paridad de campo mezclada). Si se satisface la condición de predicción de la operación 65, se ejecuta la operación 70. En la operación 70, se comparan los valores del error medio cuadrático correspondientes a los mejores macrobloques de predicción correspondientes a los bloques TB y LB. Se determina a continuación el tipo de paridad de campo (misma paridad o paridad opuesta de los vectores de movimiento) del mejor macrobloque de predicción de los bloques TB o LB con el valor más bajo del error medio cuadrático. Si el macrobloque TB o LB que tiene el valor más bajo del error medio cuadrático es del tipo de vector de movimiento de la misma paridad de campo, se ejecuta la vía SFPMV (operaciones 30 a 37). Si el macrobloque TB o LB que tiene el valor más bajo del error medio cuadrático es del tipo de vector de movimiento de paridad de campo opuesta, se ejecuta la vía OFPMV (operaciones 50 a 57). Por ejemplo, si en la comparación de los valores del error medio cuadrático de los mejores bloques de predicción TB y LB el macrobloque de predicción del bloque LB tiene el valor más bajo del error medio cuadrático y es de un tipo de vector de movimiento de paridad de campo opuesta, se ejecuta la vía OFPMV.
El proceso de predicción de campo detallado en las operaciones 23 a 70 se repite para el siguiente campo del cuadro que se está prediciendo en cada momento. Mediante este procedimiento se genera un mejor macrobloque de predicción y un vector de movimiento asociado para cada macrobloque tanto del campo 1 como del campo 2 del cuadro que se está prediciendo.
En la operación 80 se determinan el macrobloque de predicción de cuadro y el vector MV1 de movimiento de cuadro asociado para los macrobloques en curso restantes. Esto se realiza utilizando un método detallado en el diagrama de flujo de la figura 9, que implica un número reducido de cálculos de acuerdo con el invento.
En la operación 105 de la figura 9, a continuación del arranque de la secuencia en la operación 100, el vector de movimiento de la misma paridad de campo del campo 1 del cuadro que está siendo codificado en ese momento (SFPMV-f1), determinado en las operaciones 37 ó 57 (figura 6), se utiliza para la predicción de cuadro. En la operación 105, este vector SFPMV-f1 de movimiento se utiliza como vector MV1 de movimiento de cuadro para identificar macrobloques de predicción de cuadro en la imagen almacenada para el macrobloque en curso que se está prediciendo. En la operación 110, se realiza una búsqueda local en el campo 1 de la imagen almacenada alrededor del macrobloque de predicción de cuadro identificado por el vector SFPMV-f1. Esto se hace con el fin de optimizar la predicción inicial del vector SFPMV-f1. La búsqueda local se realiza del mismo modo descrito anteriormente para la búsqueda de perturbación de las operaciones 35 y 55 (figura 5). Es decir, se calculan los valores del error medio cuadrático de los ocho macrobloques con elementos de imagen centrales que rodean al elemento de imagen central del macrobloque identificado como vector SFPMV-f1 (operación 110, figura 9). En la operación 115, se comparan los valores del error medio cuadrático de los ocho macrobloques y se selecciona el macrobloque que tiene el error medio cuadrático más bajo como primer macrobloque de predicción de cuadro. Similarmente, en la operación 120, se calculan los valores del error medio cuadrático de los ocho macrobloques con elementos de imagen centrales que rodean al elemento de imagen central del macrobloque identificado para el vector SFPMV-f1 en el campo 2 de la imagen almacenada. En la operación 125, se comparan estos ocho valores de error medio cuadrático de los macrobloques y se selecciona el macrobloque que tiene el valor más bajo del error medio cuadrático como segundo macrobloque de predicción de cuadro. El primer o segundo macrobloque de predicción de cuadro que tiene el valor más bajo del error medio cuadrático se selecciona como macrobloque de predicción de cuadro (MV1-f1) y se selecciona su vector de movimiento asociado como vector MV1-f1 de movimiento (operación 125).
Las operaciones 105 a 125 se repiten esencialmente en las operaciones 130 a 150 para determinar un macrobloque de predicción (MV1-f2) de cuadro del campo 2 y un vector (MV1-f2) de movimiento asociado. En la operación 130, se utiliza el vector SFPMV-f2 de movimiento determinado anteriormente (operaciones 37 ó 57 de la figura 6) como vector MV1 de movimiento de cuadro para identificar macrobloques de predicción de cuadro para la imagen almacenada correspondiente al macrobloque en curso que se está prediciendo. En la operación 135, se realiza una búsqueda local en el campo 1 de la imagen almacenada alrededor del macrobloque de predicción de cuadro identificado por el vector SFPMV-f2. Los valores del error medio cuadrático de los ocho macrobloques con elementos de imagen centrales que rodean al elemento de imagen central del macrobloque identificado para el vector SFPMV-f2 se calculan en la operación 135. Los ocho valores del error medio cuadrático de macrobloque se comparan y se selecciona el macrobloque que tiene el error medio cuadrático más bajo como tercer macrobloque de predicción de cuadro en la operación 140. Los valores del error medio cuadrático de los ocho macrobloques con elementos de imagen centrales que rodean al elemento de imagen central del macrobloque identificado para el vector SFPMV-f2 en el campo 2 de la imagen almacenada se calculan también en la operación 145. Estos ocho valores de error medio cuadrático se comparan y se selecciona el macrobloque que tiene el error medio cuadrático más bajo como cuarto macrobloque de predicción de cuadro en la operación 150. Adicionalmente, se selecciona el tercer o cuarto macrobloque de predicción de cuadro con el error medio cuadrático más bajo como macrobloque de predicción de cuadro (MV1-f2) y se selecciona su vector de movimiento asociado como vector MV1-f2 de movimiento (operación 150). A continuación, en la operación 155, se selecciona indistintamente el macrobloque MV1-f1 o el macrobloque MV1-f2 que tiene el valor más bajo del error medio cuadrático combinado para el campo 1 y el campo 2 como mejor macrobloque de predicción de cuadro. El vector MV1-f1 o MV1-f2 asociado es el vector de movimiento de predicción de cuadro asociado (vector MV1). El diagrama de flujo de predicción de cuadro de la figura 9 se completa ahora y finaliza en la operación 160.
Al completarse el diagrama de flujo de la figura 9 (operación 80 de la figura 6), la ejecución de la secuencia se reanuda con la operación 85 de la figura 6. En la operación 85, el mejor macrobloque de predicción de cuadro y el mejor macrobloque de predicción de campo para el macrobloque en curso se comparan en base al error medio cuadrático. Si la decisión de selección no está restringida por requerimientos de control de tasa de transferencia de datos, entonces se selecciona para transmisión indistintamente el mejor macrobloque de predicción de cuadro o el mejor macrobloque de predicción de campo con el valor de error medio cuadrático más bajo combinado para el campo 1 y el campo 2. Sin embargo, si los requerimientos de control de tasa de transferencia de datos indican que es necesaria una compresión de datos adicional, se selecciona para transmisión el mejor macrobloque de predicción coherente con el límite de velocidad de transmisión de datos permitida. Por ejemplo, pueden transmitirse macrobloques de predicción de cuadro con un grado de compresión más alto en vez de macrobloques de predicción de campo para los que se exige un mayor grado de compresión. Al seleccionarse el macrobloque para transmisión en la operación 85, se completa la determinación de los mejores macrobloques de predicción para compresión y la secuencia finaliza (operación 95).
Aunque las figuras 5 a 6 describen un método para seleccionar el mejor macrobloque de predicción de los macrobloques de predicción candidatos de campo o cuadro, pueden utilizarse otros tipos de métodos de predicción para p roporcionar bloques candidatos adicionales. Por ejemplo, puede utilizarse una técnica de "promediado de doble predicción anticipativa" para proporcionar macrobloques candidato adicionales justamente antes o después de la predicción de cuadro realizada en la operación 80 (figura 6). A continuación, en la operación 85, se selecciona el mejor bloque de predicción de los candidatos de cuadro, campo y doble promediado de predicción anticipativa, en vez de los candidatos de campo y cuadro de la descripción anterior. Adicionalmente, el invento no está limitado al orden de ejecución de operaciones ilustrado en las figuras 5 a 6. Puede utilizarse cualquier orden que produzca un mejor macrobloque de predicción para cada macrobloque en curso.
La figura 10 representa un aparato compresor compatible con la norma MPEG adecuado para utilizar los principios del presente invento. El método de las figuras 5-6 es implementado por el estimador 85 de movimiento en combinación con la unidad 95 de predicción. Brevemente, una señal de vídeo digital, en la forma de valores de luminancia de elementos de imagen, es convertida en macrobloques en curso a codificar por el convertidor 57, como es conocido. Los macrobloques en curso se aplican al compresor 60 de datos. El sistema de la figura 10 funciona en un ambiente conocido en el cual el suministro de los macrobloques en curso desde la unidad 57 es controlado, por ejemplo, por una memoria intermedia de control en la unidad 57. Esto se hace para permitir que se complete un ciclo de producción de macrobloques y la generación de un bloque de salida comprimido para cada macrobloque en curso. El compresor 60 de datos realiza predicciones de macrobloques de campo y cuadro sobre cada macrobloque en curso y almacena las predicciones de macrobloque resultantes en forma descomprimida en la memoria 91 de la unidad 95 de predicción. Estas predicciones son las predicciones "candidatas" de las cuales puede seleccionarse una mejor predicción de macrobloque para el macrobloque en curso. El selector 97 en la unidad 95 de predicción selecciona el mejor macrobloque de predicción para transmisión a partir de las predicciones candidatas de campo y cuadro almacenadas en la memoria 91. El mejor macrobloque de predicción es restado a continuación por el substractor 65 del correspondiente macrobloque en curso que corresponde a la predicción. El residuo resultante del substractor 65 es comprimido por la unidad 70 para proporcionar datos de salida para posterior tratamiento para transmisión. Este proceso se repite para cada macrobloque en curso.
En la descripción del funcionamiento del aparato codificador de la figura 10 con más detalle, se considera el funcionamiento del compresor 60 solamente para macrobloques de imagen de los tipos I y P. Los principios de funcionamiento del aparato de la figura 10 se adaptan fácilmente al funcionamiento sobre macrobloques de imagen de tipo B. Inicialmente, suponiendo que la predicción de imagen I es una predicción basada en cuadros, es transmitido un macrobloque de cuadro de imagen I inalterado a la unidad 70 de codificación por el substractor 65. La unidad 70 realiza una transformada de coseno discreta (DCT) sobre bloques de 8 x 8 elementos de imagen para generar coeficientes de transformada de coseno discreta, como es conocido. Los coeficientes son entonces cuantificados en la unidad 70. La combinación de transformada de coseno discreta y cuantificación en la unidad 70 hace que se anulen muchos de los coeficientes de frecuencia de transformada de coseno discreta. La unidad 70 simplifica tramos repetitivos y codifica estadísticamente los coeficientes para generar cadenas largas de ceros para minimizar los datos de salida producidos. En consecuencia, la unidad 70 comprime el macrobloque de cuadro de imagen I eliminando la redundancia espacial en los datos del macrobloque de entrada. El proceso se repite para cada macrobloque en curso. La serie resultante de macrobloques de cuadro de imagen I comprimidos es tratada por el formateador 100 que organiza los macrobloques comprimidos generados por la unidad 70 en paquetes de datos que incluyen cabeceras que contienen códigos de identificación y otra información.
El macrobloque de cuadro de imagen I comprimido generado en la unidad 70 es también transferido al descompresor 75 que realiza la inversa de las funciones de transformada de coseno discreta y cuantificación realizadas por la unidad 70. La salida de la unidad 75 es una reproducción de la entrada de macrobloque de cuadro de imagen I al compresor 60. El macrobloque de cuadro de imagen I descomprimido es transferido sin modificación por el sumador 80 y almacenado en la memoria 90 para compresión predictiva de macrobloques de cuadro P subsiguientes. El proceso de compresión de macrobloque de cuadro de imagen I descrito anteriormente se repite hasta que se almacena en la memoria 90 un cuadro de imagen I completo de macrobloques.
Para la predicción de cuadros P, el macrobloque en curso de cuadro P de entrada que se está prediciendo se aplica a un estimador 85 de movimiento. La unidad 85 determina los vectores de movimiento de campo y cuadro para el macrobloque en curso utilizando el método de las figuras 5-6. Para este fin, la paridad de campo de los macrobloques TB y LB, bien sean del tipo SFPMV u OFPMV, junto con los valores del error medio cuadrático de los macrobloques TB y LB, se almacenan en una memoria (no representada, para mayor claridad) dentro de la unidad 85 de la figura 10. La misma información se almacena también para los macrobloques de los bordes izquierdo y superior del cuadro que se está codificando. Se requiere una memoria adicional mínima porque el valor del error medio cuadrático y la paridad de campo pueden almacenarse holgadamente en cuatro octetos de ocho bits (o menos) por macrobloque. La memoria requerida puede minimizarse optimizando el orden en el cual se predicen los macrobloques en curso.
El diagrama de flujo de las figuras 5-6 hasta la operación 80 es ejecutado por la unidad 85 (figura 10) para proporcionar vectores de movimiento para un macrobloque de predicción de dos campos y una predicción de un cuadro para el macrobloque en curso. Con el fin de ejecutar el diagrama de flujo de las figuras 5-6, la unidad 85 utiliza la información almacenada relativa a los bloques TB y LB. Adicionalmente, la unidad 85 accede a los macrobloques del cuadro almacenado en la memoria 90 para realizar las búsquedas de coincidencia de bloques requeridas. La unidad 85 determina los valores K (operaciones 32 y 52 de la figura 5) a partir de la relación temporal conocida entre el macrobloque en curso y los macrobloques almacenados en la memoria 90 de la figura 10. Los valores K calculados son utilizados entonces por la unidad 85 para realizar la estimación de movimiento requerida de las operaciones 35 y 55 de la figura 5, como se ha descrito anteriormente. Las operaciones restantes del diagrama de flujo se ejecutan como se ha descrito anteriormente en relación con las figuras 5-6 utilizando estas técnicas para generar los vectores de movimiento para macrobloques de predicción de dos campos y un cuadro.
Los vectores de movimiento de los dos macrobloques de predicción de campo y del macrobloque de predicción de cuadro generados por la unidad 85 (figura 10) al completarse la ejecución de la operación 80 del diagrama de flujo (figuras 5-6), son utilizados por el extractor 93 en la unidad 95 de predicción. El extractor 93 utiliza estos vectores de movimiento para extraer los dos macrobloques de campo y el macrobloque de cuadro del cuadro almacenado en la memoria 90. Estos macrobloques de predicción de campo y cuadro son los que tienen mayor identidad con el macrobloque en curso y son almacenados en la memoria 91 por el extractor 93 como macrobloques de predicción candidatos. Esta realización puede ampliarse fácilmente para incluir otras predicciones, tales como la de "promediado de dos predicciones anticipativas", como se ha descrito anteriormente. En tal caso, la memoria 91 contendría adicionalmente macrobloques candidatos de predicción de acuerdo con esta técnica.
El selector 97 (figura 10) ejecuta la operación 85 del diagrama de flujo de las figuras 5-6 y selecciona una de las predicciones candidatas como mejor predicción de macrobloque. El selector 97 selecciona el mejor macrobloque de predicción de campo o cuadro para compresión en base al valor del error medio cuadrático, coherentemente con el límite permitido en la velocidad de transmisión de datos. El substractor 65 resta, elemento de imagen por elemento de imagen, la salida del mejor macrobloque de predicción, generada por el selector 97, del macrobloque de cuadro P en curso de entrada que ha de ser comprimido. Las diferencias o residuos que aparecen en la salida del substractor 65 son comprimidos a continuación por la unidad 70 y procesados similarmente a los datos de macrobloque de cuadro de imagen I. El macrobloque de cuadro P comprimido resultante es tratado por el formateador 100 que organiza la serie de macrobloques comprimidos generados por la unidad 70 en paquetes de datos que incluyen cabeceras de identificación.
Los residuos de macrobloques de cuadro P comprimidos generados por la unidad 70 son descomprimidos por la unidad 75, como en el caso de los macrobloques de cuadro I, antes de ser aplicados al sumador 80. Concurrentemente, el mejor macrobloque de predicción, que fue restando por el substractor 65 del macrobloque en predicción, se suma a los residuos de macrobloques descomprimidos. Esto es realizado por el selector 97 aplicando los mejores valores de macrobloque de predicción a una segunda entrada del sumador 80, que suma los datos elemento de imagen por elemento de imagen para restaurar el macrobloque. Este macrobloque de cuadro P restaurado forma parte de la imagen reconstruida y se almacena en la memoria 90 para la compresión predictiva de macrobloques subsiguientes de cuadro P. El proceso se repite para cada macrobloque en curso.
El aparato de la figura 10 puede implementarse de otros modos. Por ejemplo, el método de las figuras 5-6 para determinar los mejores macrobloques de predicción para compresión puede ser implementado en una sola unidad de control de decisión, tal como un microprocesador con una interfaz para el compresor 60, en vez de distribuirse entre las unidades funcionales 85 y 95, como se muestra en la realización preferida. Adicionalmente, son conocidas otras configuraciones del compresor 60 y otros modos de implementación de dicho compresor. Por ejemplo, puede conseguirse una predicción para un macrobloque en curso utilizando un método de predicción múltiple en paralelo como alternativa a un método de predicción en serie.

Claims (9)

1. Un método para proporcionar datos comprimidos de vídeo representativos de imagen, para ser utilizado en un sistema de tratamiento de señal de acuerdo con la norma MPEG, que comprende las operaciones de: (a) proporcionar datos de entrada de vídeo consistentes en una secuencia de imágenes que comprenden campos de imagen; (b) convertir dichos datos de entrada de vídeo en bloques de elementos de imagen de entrada; (c) determinar una pluralidad de bloques de predicción candidatos para un primer bloque de elementos de imagen de entrada, incluyendo dicha operación de determinación las operaciones de: (1) realizar una búsqueda de coincidencia de bloques en un primer campo para determinar un primer bloque de predicción de campo MPEG candidato para dicho primer bloque de elementos de imagen de entrada; (2) deducir un primer vector de movimiento asociado para dicho primer bloque de predicción de campo MPEG candidato; (3) extrapolar un segundo vector de movimiento por escalado temporal de dicho primer vector de movimiento; y (4) identificar un segundo bloque de predicción de campo MPEG candidato en un segundo campo utilizando dicho vector de movimiento extrapolado; (d) comparar mutuamente dichos bloques de predicción candidatos; (e) seleccionar uno de dichos bloques de predicción candidatos en base a dicha comparación mutua; (f) comprimir el bloque de elementos de imagen de entrada en base a dicho bloque de predicción seleccionado para proporcionar un bloque de salida; y (g) formatear dicho bloque de salida para generar un paquete de datos; caracterizado porque comprende adicionalmente la operación de comparar paridades de vector de movimiento de bloques de elementos de imagen predichos anteriormente que están próximos a dicho bloque de elementos de imagen de entrada, determinando el resultado de esta operación de comparación el método de cálculo de dichos primer y segundo vectores de movimiento a determinar para dicho bloque de elementos de imagen de entrada.
2. Un método de acuerdo con la reivindicación 1ª, caracterizado porque la operación (c) incluye la operación de identificar un bloque de predicción de cuadro MPEG como tercer bloque de predicción candidato utilizando dicho vector de movimiento extrapolado.
3. Un método de acuerdo con la reivindicación 1ª, caracterizado porque la operación (c) incluye la operación de identificar un bloque de predicción MPEG de promediado de doble predicción anticipativa como tercer bloque de predicción candidato utilizando dicho vector de movimiento extrapolado.
4. Un método de acuerdo con la reivindicación 1ª, caracterizado porque la operación (c4) incluye adicionalmente la operación de identificar otros bloques de dicha pluralidad de bloques de predicción candidatos en una región definida alrededor del centro de dicho bloque de predicción de campo MPEG identificado.
5. Un método de acuerdo con la reivindicación 1ª, caracterizado porque dichos bloques de elementos de imagen de entrada y dichos bloques de predicción son macrobloques.
6. Un aparato para comprimir datos de vídeo digital de entrada representativos de imagen en la forma de bloques de elementos de imagen de entrada, y para generar bloques de salida comprimidos en un terminal de salida, que comprende: una red (70) de compresión para proporcionar bloques de elementos de imagen de salida comprimidos que representan dichos bloques de elementos de imagen de entrada; una red (75) de descompresión para descomprimir dichos bloques de elementos de imagen comprimidos para proporcionar bloques de elementos de imagen descomprimidos; un estimador (85) de movimiento para generar vectores de movimiento asociados con bloques de predicción candidatos de dichos bloques de elementos de imagen de entrada, en el que (a) para un bloque de elementos de imagen de entrada situado en una primera zona de dicha imagen dicho estimador (85) de movimiento utiliza búsquedas de coincidencia de bloques para obtener vectores de movimiento, y (b) para un bloque de elementos de imagen de entrada situado en una segunda zona de dicha imagen dicho estimador (85) de movimiento utiliza una búsqueda de coincidencia de bloques para obtener un primer vector de movimiento y extrapola un segundo vector de movimiento a partir de dicho primer vector de movimiento; y una red (95) de predicción para identificar dichos bloques de predicción candidatos de entre dichos bloques descomprimidos utilizando dichos vectores de movimiento, y para seleccionar un mejor bloque de predicción de dichos bloques de elementos de imagen de predicción candidatos, donde dicha red (70) de compresión comprime dicho bloque de elementos de imagen de entrada en base a dicho bloque de predicción seleccionado para generar un bloque comprimido de salida en dicho terminal de salida; caracterizado porque dicho estimador (85) de movimiento compara las paridades de vector de movimiento de bloques de elementos de imagen predichos anteriormente que están próximos a dicho bloque de elementos de imagen de entrada, determinando el resultado de esta comparación el método de cálculo de dichos primer y segundo vectores de movimiento que han de ser determinados para dicho bloque de elementos de imagen de entrada.
7. Un aparato de acuerdo con la reivindicación 6ª, caracterizado porque dicha primera zona de imagen es exclusiva con respecto a dicha segunda zona de imagen.
8. Un aparato de acuerdo con la reivindicación 6ª, caracterizado porque dicho estimador (85) de movimiento proporciona vectores de movimiento asociados con bloques de predicción de campo MPEG candidatos.
9. Un aparato de acuerdo con la reivindicación 6ª, caracterizado porque dicho estimador (85) de movimiento proporciona vectores de movimiento asociados con bloques de predicción de cuadro MPEG candidatos.
ES96113147T 1995-08-25 1996-08-16 Un metodo y un aparato para comprimir informacion de video utilizando prediccion dependiente del movimiento. Expired - Lifetime ES2216028T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US519438 1995-08-25
US08/519,438 US5745183A (en) 1995-08-25 1995-08-25 Image motion estimation system which derives candidate block from interpolated motion vectors

Publications (1)

Publication Number Publication Date
ES2216028T3 true ES2216028T3 (es) 2004-10-16

Family

ID=24068306

Family Applications (1)

Application Number Title Priority Date Filing Date
ES96113147T Expired - Lifetime ES2216028T3 (es) 1995-08-25 1996-08-16 Un metodo y un aparato para comprimir informacion de video utilizando prediccion dependiente del movimiento.

Country Status (7)

Country Link
US (1) US5745183A (es)
EP (1) EP0762776B1 (es)
JP (1) JP4198206B2 (es)
KR (1) KR100464995B1 (es)
CN (1) CN1227911C (es)
DE (1) DE69632232T2 (es)
ES (1) ES2216028T3 (es)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905542A (en) * 1996-12-04 1999-05-18 C-Cube Microsystems, Inc. Simplified dual prime video motion estimation
US6359929B1 (en) * 1997-07-04 2002-03-19 Matsushita Electric Industrial Co., Ltd. Image predictive decoding method, image predictive decoding apparatus, image predictive coding apparatus, and data storage medium
US6018368A (en) * 1997-07-11 2000-01-25 Samsung Electro-Mechanics Co., Ltd. Scalable encoding apparatus and method with improved function of scaling motion vector
DE69828950T2 (de) * 1997-11-07 2006-01-12 Koninklijke Philips Electronics N.V. Kodierung einer bildfolge
US6339656B1 (en) * 1997-12-25 2002-01-15 Matsushita Electric Industrial Co., Ltd. Moving picture encoding decoding processing apparatus
US6317460B1 (en) * 1998-05-12 2001-11-13 Sarnoff Corporation Motion vector generation by temporal interpolation
GB2340362B (en) * 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
KR20010072186A (ko) * 1998-08-03 2001-07-31 벤자민 에프 커틀러 비디오 스트림 내의 오리지날 픽셀로부터 필러 픽셀을발생시키는 회로 및 방법
US6483876B1 (en) 1999-12-28 2002-11-19 Sony Corporation Methods and apparatus for reduction of prediction modes in motion estimation
US6532264B1 (en) * 2000-03-27 2003-03-11 Teranex, Inc. Processing sequential video images to detect image motion among interlaced video fields or progressive video images
EP1511311B1 (en) * 2003-08-26 2007-04-04 STMicroelectronics S.r.l. Method and system for de-interlacing digital images, and computer program product therefor
EP1152621A1 (en) * 2000-05-05 2001-11-07 STMicroelectronics S.r.l. Motion estimation process and system.
US7663695B2 (en) * 2000-05-05 2010-02-16 Stmicroelectronics S.R.L. Method and system for de-interlacing digital images, and computer program product therefor
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
AU2002337850A1 (en) * 2001-11-15 2003-06-10 Exxonmobil Chemical Patents Inc. Polymerization monitoring and control using leading indicators
US7321626B2 (en) * 2002-03-08 2008-01-22 Sharp Laboratories Of America, Inc. System and method for predictive motion estimation using a global motion predictor
US7088776B2 (en) 2002-07-15 2006-08-08 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US8254461B2 (en) * 2002-07-24 2012-08-28 Apple Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
KR100508975B1 (ko) * 2003-05-20 2005-08-17 주식회사 팬택 다층 레벨 연속 제거 알고리즘을 이용한 동영상 움직임추정 방법
JP4415978B2 (ja) * 2006-08-02 2010-02-17 ソニー株式会社 画像信号処理装置、画像信号処理方法
US7756348B2 (en) * 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
JP4303745B2 (ja) * 2006-11-07 2009-07-29 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
EP1924098A1 (en) * 2006-11-14 2008-05-21 Sony Deutschland GmbH Motion estimation and scene change detection using two matching criteria
JP4987124B2 (ja) * 2007-07-18 2012-07-25 ナンヤン テクノロジカル ユニヴァーシティー グラフィックデータ提供方法及びグラフィックデータ表示方法
TWI475890B (zh) * 2008-10-14 2015-03-01 Univ Nat Taiwan 用於需要善用電量之多媒體裝置的高效率區塊比對的大型積體電路架構及方法
KR101279573B1 (ko) * 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN101819625B (zh) * 2009-02-27 2014-11-12 富士通株式会社 识别设备和识别方法
US9082278B2 (en) * 2010-03-19 2015-07-14 University-Industry Cooperation Group Of Kyung Hee University Surveillance system
GB201007351D0 (en) * 2010-04-30 2010-06-16 Imagination Tech Ltd Varying temporal interpolation in a motion compensated frame interpolation system
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
KR101532665B1 (ko) 2011-03-14 2015-07-09 미디어텍 인크. 시간적 움직임 백터 예측을 도출하기 위한 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
US5210605A (en) * 1991-06-11 1993-05-11 Trustees Of Princeton University Method and apparatus for determining motion vectors for image sequences
US5418617A (en) * 1991-08-08 1995-05-23 Matsushita Electric Corporation Of America Motion compensation using minimum bits per motion block as criterion for block matching
EP0535746B1 (en) * 1991-09-30 1997-01-29 Philips Electronics Uk Limited Motion vector estimation, motion picture encoding and storage
US5412435A (en) * 1992-07-03 1995-05-02 Kokusai Denshin Denwa Kabushiki Kaisha Interlaced video signal motion compensation prediction system
US5398068A (en) * 1993-09-02 1995-03-14 Trustees Of Princeton University Method and apparatus for determining motion vectors for image sequences

Also Published As

Publication number Publication date
EP0762776A3 (en) 1999-09-08
DE69632232T2 (de) 2004-08-19
KR100464995B1 (ko) 2005-05-19
CN1149233A (zh) 1997-05-07
DE69632232D1 (de) 2004-05-27
CN1227911C (zh) 2005-11-16
KR970014361A (ko) 1997-03-29
JPH09154137A (ja) 1997-06-10
JP4198206B2 (ja) 2008-12-17
EP0762776A2 (en) 1997-03-12
US5745183A (en) 1998-04-28
EP0762776B1 (en) 2004-04-21

Similar Documents

Publication Publication Date Title
ES2216028T3 (es) Un metodo y un aparato para comprimir informacion de video utilizando prediccion dependiente del movimiento.
KR101366242B1 (ko) 움직임 모델 파라메터의 부호화, 복호화 방법 및 움직임모델 파라메터를 이용한 영상의 부호화, 복호화 방법 및장치
CN102752593B (zh) 估计运动矢量的方法和设备,编码器/解码器和解码方法
US6542642B2 (en) Image coding process and motion detecting process using bidirectional prediction
CN100459658C (zh) 视频编码/解码方法和设备
RU2607261C1 (ru) Устройство кодирования видео с предсказанием, способ кодирования видео с предсказанием, программа кодирования видео с предсказанием, устройство декодирования видео с предсказанием, способ декодирования видео с предсказанием и программа декодирования видео с предсказанием
KR100739281B1 (ko) 움직임 추정 방법 및 장치
JP5310614B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
EP1345448A2 (en) Image coding apparatus and image decoding apparatus
JP2671820B2 (ja) 両方向予測方法及び両方向予測装置
TW201904284A (zh) 用於視訊編解碼的子預測單元時間運動向量預測
JP2004336369A (ja) 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
JP2001204033A (ja) 動きベクトルの符号化及び復号化方法並びにその装置
KR100246167B1 (ko) 듀얼프라임 움직임 추정시스템 및 방법
JP2005318576A (ja) 適応空間最新ベクトルを用いた動き検出
US20150071354A1 (en) Image coding apparatus and image coding method
EP1819173B1 (en) Motion vector predictive encoding apparatus and decoding apparatus
JPH09121359A (ja) 画像符号化方法および画像復号化方法
KR100602148B1 (ko) 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법
JP4154772B2 (ja) 画像情報変換装置および変換方法
JP3188081B2 (ja) 画像符号化方法および画像符号化装置
JP2011166207A (ja) 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
JP2002232892A (ja) 画像符号化装置
JPH10191347A (ja) 動き検出装置、動き検出方法、及び、記憶媒体
JP6872412B2 (ja) 映像符号化装置及びプログラム