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
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 168
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000001419 dependent effect Effects 0.000 title description 4
- 239000013598 vector Substances 0.000 claims abstract description 165
- 238000007906 compression Methods 0.000 claims abstract description 18
- 230000006835 compression Effects 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000002123 temporal effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 2
- 230000003466 anti-cipated effect Effects 0.000 claims 1
- 230000006837 decompression Effects 0.000 claims 1
- 230000000052 comparative effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 11
- 230000000454 anti-cipatory effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/112—Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion 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.
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.
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)
| 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)
| 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 |
-
1995
- 1995-08-25 US US08/519,438 patent/US5745183A/en not_active Expired - Lifetime
-
1996
- 1996-08-16 ES ES96113147T patent/ES2216028T3/es not_active Expired - Lifetime
- 1996-08-16 EP EP96113147A patent/EP0762776B1/en not_active Expired - Lifetime
- 1996-08-16 DE DE69632232T patent/DE69632232T2/de not_active Expired - Lifetime
- 1996-08-23 KR KR1019960034955A patent/KR100464995B1/ko not_active Expired - Fee Related
- 1996-08-23 CN CNB961114932A patent/CN1227911C/zh not_active Expired - Fee Related
- 1996-08-26 JP JP22358496A patent/JP4198206B2/ja not_active Expired - Fee Related
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) | 映像符号化装置及びプログラム |