ES2353423T3 - Sistema de cálculo de vectores de movimiento de modo directo para imágenes b. - Google Patents
Sistema de cálculo de vectores de movimiento de modo directo para imágenes b. Download PDFInfo
- Publication number
- ES2353423T3 ES2353423T3 ES07003014T ES07003014T ES2353423T3 ES 2353423 T3 ES2353423 T3 ES 2353423T3 ES 07003014 T ES07003014 T ES 07003014T ES 07003014 T ES07003014 T ES 07003014T ES 2353423 T3 ES2353423 T3 ES 2353423T3
- Authority
- ES
- Spain
- Prior art keywords
- list
- image
- tdd
- direct mode
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Sistema de codificación de imágenes en movimiento para extraer vectores de movimiento de modo directo de un bloque actual en una imagen B en un procesado de imágenes en movimiento, siendo capaz el sistema de: determinar un vector de movimiento de un bloque de ubicación conjunta en una imagen de referencia para modo directo; y calcular dichos vectores de movimiento de modo directo de dicho bloque actual en dicha imagen B usando el vector de movimiento del bloque de ubicación conjunta; caracterizado porque el sistema es además capaz de: seleccionar el vector de movimiento del bloque de ubicación conjunta a partir de un vector de movimiento de la lista 0 y un vector de movimiento de la lista 1 del bloque de ubicación conjunta en la imagen de referencia, en donde dicha lista 0 y dicha lista 1 están respectivamente en concordancia con la norma H.264 / MPEG-4 parte 10; usar el vector de movimiento seleccionado para calcular dichos vectores de movimiento de modo directo de dicho bloque actual en dicha imagen B.
Description
ANTECEDENTES DE LA INVENCIÓN
Campo de la invención 5
La presente invención se refiere a un sistema de codificación de imágenes en movimiento, y más particularmente a una técnica para obtener vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) definida en una técnica de compresión de imágenes en movimiento de nueva generación.
El documento “Text of Final Committee Draft of Joint Video Specification (ITU-T 10 Recommendation H-264 / ISO/IEC 14496-10AVC” da a conocer las características del preámbulo de la reivindicación independiente 1. Dicho documento da a conocer el cálculo de vectores de movimiento en modo directo para cada subbloque como versiones modificadas a escala de un componente vectorial correspondiente de un macrobloque de ubicación conjunta en una imagen temporalmente subsiguiente. Dichos vectores de 15 movimiento se calculan diferentes únicamente dependiendo de si una estructura de imagen (PSTRUCT) y una referencia son campos o cuadros. Si una imagen de referencia subsiguiente es un cuadro intracodificado o el macrobloque de referencia es un bloque intracodificado, los vectores de movimiento se fijan a cero.
Una imagen B convencional presenta cinco tipos de modos de predicción, tales 20 como modo hacia delante, modo hacia atrás, modo bidireccional, modo directo y modo intra. En el modo hacia delante, el modo hacia atrás y el modo bidireccional, las direcciones de los vectores de movimiento se pueden reconocer a partir de los nombres de modo ya que la información de dirección está implícita en los nombres de modo. En el modo directo, se obtienen dos vectores de movimiento de ambas direcciones a partir de 25 un movimiento de un bloque de ubicación conjunta en una imagen vecina sobre la base de una característica de redundancia temporal según la cual la continuidad del movimiento se mantiene constantemente entre dos imágenes adyacentes. Este modo directo presenta una ventaja en términos de eficacia de la codificación ya que la información del movimiento no se envía a un decodificador. 30
Por otra parte, una imagen B propuesta en una técnica de compresión de imágenes en movimiento de nueva generación, tal como la H.264 ó MPEG-4 parte 10, está caracterizada porque se permite que la imagen B sea usada como imagen de referencia ya que se puede almacenar en una memoria intermedia de imágenes de referencia. Esta imagen B está caracterizada además porque presenta cinco tipos de 35 modos de predicción, tales como el modo de lista 0, el modo de lista 1, el modo de predicción bidireccional, el modo directo y el modo intra.
El modo de lista 0 es similar al modo hacia delante convencional, y la información de movimiento tal como un índice de imagen de referencia y la diferencia de vectores de
movimiento se indican respectivamente con ref_idx_l0 y mvd_l0. El modo de lista 1 también es similar al modo hacia atrás convencional, y la información de movimiento tal como un índice de imagen de referencia y la diferencia de vectores de movimiento se indican respectivamente con ref_idx_l1 y mvd_l1. El modo de predicción bidireccional tiene dos imágenes de referencia, pudiendo estar situadas ambas temporalmente antes o 5 después de la imagen B, o pudiendo estar situadas ambas temporalmente antes y después de la imagen B, respectivamente. En este caso, dos índices de imágenes de referencia y dos diferencias de vectores de movimiento se indican respectivamente con ref_idx_l0, ref_idx_l1, mvd_l0, y mvd_l1, y cada imagen de referencia tiene datos de un contador de orden de las imágenes (POC), que constituyen información de ubicación 10 temporal.
En el modo directo, los vectores de movimiento se obtienen seleccionando una cualquiera de una técnica espacial y una técnica temporal. La técnica de modo directo espacial está destinada a obtener índices de imágenes de referencia de la lista 0 y la lista 1 y vectores de movimiento a partir de bloques vecinos de un macrobloque que ha de ser 15 codificado. La técnica de modo directo temporal está destinada a obtener un vector de movimiento de la lista 0, MVF, y un vector de movimiento de la lista 1, MVB, cambiando la escala de un vector de movimiento de la lista 0 de un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo, que es similar a la imagen B convencional. En este caso, la imagen de referencia de la lista 1 para modo directo es una 20 imagen en la que un índice para la predicción de la lista 1 es 0, y una imagen de referencia de la lista 0 para modo directo es una imagen de referencia de la lista 0 apuntada por un vector de movimiento de un bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo.
Las Figs. 1a a 1c muestran índices por defecto para la predicción de la lista 0, 25 índices por defecto para la predicción de la lista 1 e imágenes de referencia de la lista 1 para modo directo de imágenes B respectivas en un patrón IBBBP cuando el número de imágenes de referencia disponibles de la lista 0 y la lista 1 (o el tamaño de una memoria intermedia a corto plazo) es 6, respectivamente. En este caso, los índices por defecto para la predicción de la lista 0 y los índices por defecto para la predicción de la lista 1 dependen 30 de un orden de salida, o valor POC, de una imagen de referencia decodificada previamente, con independencia de un orden de decodificación. En la Fig. 1, todas las imágenes B usan una imagen P temporalmente sucesiva como imagen de referencia de la lista 1 para el modo directo.
Las Figs. 2a a 2c muestran índices por defecto para la predicción de la lista 0, 35 índices por defecto para la predicción de la lista 1 e imágenes de referencia de la lista 1 para modo directo de imágenes B respectivas en un patrón IBBB que usa sólo las imágenes B, respectivamente. En la Fig. 2a, cuando una imagen B a codificar es B8, una B5 precedente temporalmente con un índice 0 de la lista 1 es una imagen de referencia de la lista 1 para modo directo. Tal como muestra la Fig. 2b, una imagen de referencia de la 40 lista 1 para el modo directo de la B7 que ha de ser decodificada posteriormente es la B8 temporalmente sucesiva. Por último, tal como se muestra en la Fig. 2c, una imagen de referencia de la lista 1 para el modo directo de la B9 que ha de ser decodificada posteriormente es la B7 temporalmente precedente.
En conclusión, tal como se observa a partir de las Figs. 1a a 2c, una imagen de 5 referencia de la lista 1 para modo directo puede ser una imagen P o B que sucede temporalmente a una imagen B que ha de ser codificada, o una imagen B que la precede temporalmente.
Las Figs. 3a a 3h muestran los modos que puede tener un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo cuando la imagen de 10 referencia de la lista 1 sucede temporalmente a una imagen B. En este caso, debido a que la imagen de referencia de la lista 1 puede ser una imagen P o una imagen B, el bloque de ubicación conjunta de la misma tiene uno o dos vectores de movimiento, o el modo intra. La técnica de compresión de imágenes en movimiento de nueva generación, tal como H.264 ó MPEG-4 parte 10, permite la reordenación de índices de imágenes de referencia 15 a un nivel de franjas (slice), de modo que a una imagen justo después de una imagen B se le puede asignar un índice 0 para predicción de la lista 1. Es decir, como la imagen de referencia de la lista 1 puede existir justo después de una imagen B, un vector de movimiento del bloque de ubicación conjunta puede estar dirigido hacia delante o hacia atrás. 20
Las Figs. 4a a 4h muestran los modos que puede tener un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo cuando la imagen de referencia de la lista 1 precede temporalmente a una imagen B. En este caso, el bloque de ubicación conjunta tiene uno o dos vectores de movimiento, o el modo intra, tal como se ha descrito anteriormente. Entre la imagen de referencia de la lista 1 y la imagen B puede 25 haber presentes otras imágenes de referencia, de modo que un vector de movimiento del bloque de ubicación conjunta puede apuntar a la dirección temporal hacia delante o hacia atrás.
Tal como se observa a partir de las Figs. 3a a 4h, la imagen de referencia de la lista 1 para modo directo puede presentar varios modos de predicción, lo cual da como 30 resultado una necesidad de explorar un método para calcular vectores de movimiento de modo directo teniendo en cuenta dichos diversos casos.
RESUMEN DE LA INVENCIÓN
Por lo tanto, la presente invención se ha realizado en vista de los problemas anteriores, y es un objetivo de la presente invención proporcionar un método para calcular 35 vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) definida en una técnica de compresión de imágenes en movimiento de nueva generación, en la que se propone una técnica para obtener los vectores de movimiento de modo directo de la imagen B con el fin de aumentar la probabilidad de que se seleccione un modo directo como modo de predicción de un macrobloque, para mejorar la eficacia de 40 codificación de una imagen B.
Según un aspecto de la presente invención, los anteriores y otros objetivos se pueden lograr proporcionando un método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo 5 de la imagen B, que comprende la etapa de, si un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo tiene dos vectores de movimiento, seleccionar uno cualquiera (un vector de movimiento de la lista 0 o un vector de movimiento de la lista 1) de los dos vectores de movimiento, y obtener los vectores de movimiento de modo directo de la imagen B a partir del vector de movimiento 10 seleccionado.
Preferentemente, la etapa anterior puede incluir la etapa de seleccionar uno de los vectores de movimiento de la lista 0 y la lista 1, que apunta a una imagen más cercana temporalmente a la imagen de referencia de la lista 1 para modo directo, como vector de movimiento para la obtención de los vectores de movimiento de modo directo, seleccionar 15 el vector de movimiento de la lista 0 como vector de movimiento para la obtención de los vectores de movimiento de modo directo si los dos vectores de movimiento apuntan a la misma imagen de referencia, determinar una imagen de referencia apuntada por el vector de movimiento seleccionado como imagen de referencia de la lista 0 para modo directo, y obtener los vectores de movimiento de modo directo de la imagen B. Alternativamente, la 20 etapa anterior puede incluir la etapa de seleccionar incondicionalmente el vector de movimiento de la lista 0 como vector de movimiento para la obtención de los vectores de movimiento de modo directo con independencia de una distancia temporal, determinar una imagen de referencia apuntada por el vector de movimiento de la lista 0 como imagen de referencia de la lista 0 para modo directo, y obtener los vectores de movimiento de modo 25 directo de la imagen B.
De acuerdo con otro aspecto de la presente invención, se proporciona un método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende la 30 etapa de seleccionar uno cualquiera de los vectores de movimiento de un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo como vector de movimiento para la obtención de los vectores de movimiento de modo directo con independencia de los modos (un modo de lista 0 y/o un modo de lista 1) de los vectores de movimiento del bloque de ubicación conjunta, determinar una imagen de 35 referencia apuntada por el vector de movimiento seleccionado como imagen de referencia de la lista 0 para modo directo, y calcular los vectores de movimiento de modo directo de la imagen B. Se ha propuesto un método convencional para obtener vectores de movimiento de modo directo a partir de un vector de movimiento de la lista 0 de un bloque de ubicación conjunta. Si este método convencional se aplica a un caso en el que un 40 bloque de ubicación conjunta en una imagen de referencia de la lista 1 tiene sólo un vector de movimiento de la lista 1, todos los vectores de movimiento de modo directo se hacen 0 puesto que el vector de movimiento de la lista 0 es 0. Sin embargo, el presente método puede superar este problema.
De acuerdo con un aspecto adicional de la presente invención, se proporciona un 5 método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende la etapa de, si un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo tiene sólo un vector de movimiento de la lista 1, considerar que el 10 bloque de ubicación conjunta tiene un movimiento cero, determinar una imagen decodificada situada temporalmente justo antes de la imagen B como imagen de referencia de la lista 0 para modo directo, y obtener los vectores de movimiento de modo directo de la imagen B.
De acuerdo con un aspecto adicional de la presente invención, se proporciona un 15 método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende la etapa de, si un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo tiene sólo un vector de movimiento de la lista 1, usar el vector de 20 movimiento de la lista 1 del bloque de ubicación conjunta como vector de movimiento para la obtención de los vectores de movimiento de modo directo, determinar una imagen decodificada situada temporalmente justo antes de la imagen B como imagen de referencia de la lista 0 para modo directo, y obtener los vectores de movimiento de modo directo de la imagen B. 25
De acuerdo con un aspecto adicional de la presente invención, se proporciona un método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende la etapa de, si un bloque de ubicación conjunta en una imagen de referencia de la lista 1 30 para modo directo tiene sólo un vector de movimiento de la lista 1, usar el vector de movimiento de la lista 1 del bloque de ubicación conjunta como vector de movimiento para la obtención de los vectores de movimiento de modo directo, determinar una imagen de referencia apuntada por el vector de movimiento de la lista 1 del bloque de ubicación conjunta como imagen de referencia de la lista 0 para modo directo, y obtener los vectores 35 de movimiento de modo directo de la imagen B.
De acuerdo con un aspecto adicional de la presente invención, se proporciona un método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende 40 la etapa de fijar una imagen decodificada en último lugar como una imagen de referencia de la lista 1 para modo directo, cambiar la escala de un vector de movimiento de un bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo con el fin de obtener un vector de movimiento de la lista 0, MVF, y un vector de movimiento de la lista 1, MVB, y calcular los vectores de movimiento de modo directo de la imagen B. 5 En un método convencional, una imagen que tiene un índice 0 para la predicción de la lista 1 se define de manera que sea una imagen de referencia de la lista 1 para modo directo. Cuando se decodifica una imagen diferente entre la imagen B y la imagen con el índice 0, debe mantenerse la información de movimiento y la información de imagen de referencia de la imagen con el índice 0, lo cual da como resultado un uso de memoria 10 adicional. Sin embargo, el presente método puede ahorrar el uso de memoria adicional.
De acuerdo con un aspecto adicional de la presente invención, se proporciona un método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende 15 la etapa de, si una imagen de referencia de la lista 1 para modo directo precede temporalmente a la imagen B, cambiar la escala de un vector de movimiento de un bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo para obtener un vector de movimiento de la lista 0, MVF, y un vector de movimiento de la lista 1, MVB, y calcular los vectores de movimiento de modo directo de la imagen B. 20
Preferentemente, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de cuadro y una imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF y MVB de la imagen B de la 25 siguiente manera:
MVF = TDB x MV/TDD
MVB = (TDB - TDD) x MV/TDD
ó
Z = TDB x 256/TDD MVF = (Z x MV + 128) >> 8 30
W = Z - 256 MVB = (W x MV + 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para 35 modo directo.
Además, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de cuadro y una imagen de referencia de la lista 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores 40 de movimiento de modo directo MVF y MVB de la imagen B de la siguiente manera:
MVF =-TDB x MV/TDD
MVB = - (TDB + TDD) x MV/TDD
ó
Z = - TDB x 256/TDD MVF = (Z x MV + 128) >> 8 5
W = Z-256 MVB = (W x MV + 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para 10 modo directo.
Además, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de campo y una imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1, calcular los 15 vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera:
MVF,i=TDB,i x MVi/TDD,i
MVB,i=(TDB,i-TDD,i)xMVi/TDD,i
ó 20
Z=TDB,i x 256/TDD,i MVF,i=(Z x MVi+128) >> 8
W=Z-256 MVB,i=(W x MVi+128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, TDD,i representa una distancia temporal entre un campo de referencia de la lista 1 y el campo de referencia de la lista 0, y MVi representa un vector de 25 movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de campo y una imagen de referencia de la lista 0 para modo 30 directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera:
MVF,i=-TDB,i x MVi/TDD,i
MVB,i=-(TDB,i+TDD,i) x MVi/TDD,i 35
ó
Z=-TDB,i x 256/TDD,i MVF,i=(Z x MVi+128) >> 8
W=Z-256 MVB,i=(W x MVi+128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, TDD,i representa una distancia temporal entre un campo de 40 referencia de la lista 1 y el campo de referencia de la lista 0, y MVi representa un vector de movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de campo, un macrobloque de ubicación conjunta de la imagen 5 de referencia de la lista 1 está en un modo de cuadro y una imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera:
MVF,i=TDB,i x MV /TDD 10
MVB,i=(TDB,i-TDD) x MV /TDD
ó
Z=TDB,i x 256/TDD MVF,i=(Z x MV+128) >> 8
W=Z-256 MVB,i=(W x MV+128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo 15 de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y un cuadro de referencia de la lista 0, y MV representa un vector de movimiento de un bloque de ubicación conjunta en un cuadro de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la 20 imagen B está en un modo de campo, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de cuadro y una imagen de referencia de la lista 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera: 25
MVF,i=-TDB,i x MV/TDD
MVB,i = - (TDB,i+TDD)xMV/TDD
ó
Z = - TDB,i x 256/TDD MVF,i = (Z x MV + 128) >> 8
W = Z-256 MVB,i=(W x MV + 128) >> 8 30
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y un cuadro de referencia de la lista 0, y MV representa un vector de movimiento de un bloque de ubicación conjunta en un cuadro de referencia de la lista 1 para modo directo. 35
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de campo y una imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF y MVB de un cuadro B a partir 40 de la siguiente ecuación donde, para el cálculo de los vectores de movimiento de modo directo, se usa información de movimiento de un bloque de ubicación conjunta en un campo 1 de un cuadro de referencia de la lista 1:
MVF=TDB x MV1 /TDD,1
MVB=(TDB-TDD,1)xMV1 /TDD,1 5
ó
Z=TDB x 256/TDD,1 MVF=(Z x MV1+ 128) >> 8
W=Z-256 MVB=(W x MV1+ 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD,1 representa una distancia temporal entre un campo 1 del 10 cuadro de referencia de la lista 1 y un campo de referencia de la lista 0, y MV1 representa un vector de movimiento de un bloque de ubicación conjunta en el campo 1 del cuadro de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta de la 15 imagen de referencia de la lista 1 está en un modo de campo y una imagen de referencia de la lista 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF y MVB de un cuadro B a partir de la siguiente ecuación donde, para el cálculo de los vectores de movimiento de modo directo, se usa información de movimiento de un bloque de ubicación conjunta en un 20 campo 1 de un cuadro de referencia de la lista 1:
MVF=-TDB x MV1/TDD,1
MVB=-(TDB+TDD,1)xMV1/TDD,1
ó
Z=-TDB x 256/TDD,1 MVF=(Z x MV1+ 128) >> 8 25
W=Z-256 MVB=(W x MV1+ 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD,1 representa una distancia temporal entre un campo 1 del cuadro de referencia de la lista 1 y un campo de referencia de la lista 0, y MV1 representa un vector de movimiento de un bloque de ubicación conjunta en el campo 1 del cuadro de 30 referencia de la lista 1 para modo directo.
De acuerdo con otro aspecto de la presente invención, se proporciona un método para calcular vectores de movimiento de modo directo de una imagen B(de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende la 35 etapa de, si tanto una imagen de referencia de la lista 0 como la imagen de referencia de la lista 1 para modo directo suceden temporalmente a la imagen B, cambiar de escala un vector de movimiento de un bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo para obtener un vector de movimiento de la lista 0, MVF, y un vector de movimiento de la lista 1, MVB, y calcular los vectores de movimiento de modo 40 directo de la imagen B.
Preferentemente, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de cuadro y la imagen de referencia de la lista 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, calcular 5 los vectores de movimiento de modo directo MVF y MVB de la imagen B de la siguiente manera:
MVF=TDB x MV/TDD
MVB=(TDB-TDD) x MV/TDD
ó 10
Z=TDB x 256/TDD MVF=(Z x MV+ 128) >> 8
W=Z-256 MVB=(W x MV+ 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de 15 movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de cuadro y la imagen de referencia de la lista 0 para modo 20 directo precede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF y MVB de la imagen B de la siguiente manera:
MVF=-TDB x MV/TDD
MVB=-(TDB+TDD) x MV/TDD 25
ó
Z=-TDB x 256/TDD MVF=(Z x MV+ 128) >> 8
W=Z-256 MVB=(W x MV+ 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de 30 referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la 35 lista 1 están en un modo de campo y la imagen de referencia de la lista 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera:
MVF,i=TDB,i x MVi/TDD,i 40
MVB,i=(TDB,i-TDD,i) x MVi/TDD,i
ó
Z=TDB,i x 256/TDD,i MVF,i=(Z x MVi+ 128) >> 8
W=Z-256 MVB,i=(W x MVi+ 128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo 5 de referencia de la lista 0, TDD,i representa una distancia temporal entre un campo de referencia de la lista 1 y el campo de referencia de la lista 0, y MVi representa un vector de movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la 10 imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de campo y la imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera: 15
MVF,i=-TDB,i x MVi/TDD,i
MVB,i=-(TDB,i+TDD,i) x MVi/TDD,i
ó
Z=-TDB,i x 256/TDD,i MVF,i=(Z x MVi+ 128) >> 8
W=Z-256 MVB,i=(W x MVi+ 128) >> 8 20
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, TDD,i representa una distancia temporal entre un campo de referencia de la lista 1 y el campo de referencia de la lista 0, y MVi representa un vector de movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 para modo directo. 25
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de campo, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de cuadro y la imagen de referencia de la lista 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro 30 B de la siguiente manera:
MVF,i=TDB,i x MV /TDD
MVB,i=(TDB,i-TDD) x MV /TDD
ó
Z=TDB,i x 256/TDD MVF,i=(Z x MV+ 128) >> 8 35
W=Z-256 MVB,i=(W x MV+ 128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y un cuadro de referencia de la lista 0, y MV representa un vector de movimiento de un bloque de ubicación conjunta en un cuadro de referencia de la lista 1 40 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de campo, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de cuadro y la imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1, 5 calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera:
MVF,i=-TDB,i x MV/TDD
MVB,i=-(TDB,i+TDD) x MV/TDD
ó 10
Z=-TDB,i x 256/TDD MVF,i=(Z x MV+ 128) >> 8
W=Z-256 MVB,i=(W x MV+ 128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y un cuadro de referencia de la lista 0, y MV representa un vector 15 de movimiento de un bloque de ubicación conjunta en un cuadro de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de campo y la imagen de referencia de 20 la lista 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF y MVB de un cuadro B a partir de la siguiente ecuación donde, para el cálculo de los vectores de movimiento de modo directo, se usa información de movimiento de un bloque de ubicación conjunta en un campo 0 de un cuadro de referencia de la lista 1: 25
MVF=TDB x MV0 /TDD,0
MVB=(TDB-TDD,0) x MV0 /TDD,0
ó
Z=TDB x 256/TDD,0 MVF=(Z x MV0+ 128) >> 8
W=Z-256 MVB=(W x MV0+ 128) >> 8 30
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD,0 representa una distancia temporal entre un campo 0 del cuadro de referencia de la lista 1 y un campo de referencia de la lista 0, y MV0 representa un vector de movimiento de un bloque de ubicación conjunta en el campo 0 del cuadro de referencia de la lista 1 para modo directo. Además, la etapa anterior puede incluir la etapa 35 de, si un macrobloque de la imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de campo y la imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1, calcular los vectores de movimiento de modo directo MVF y MVB de un cuadro B a partir de la siguiente ecuación, donde, para el cálculo de los vectores de 40 movimiento de modo directo, se usa información de movimiento de un bloque de ubicación conjunta en un campo 0 de un cuadro de referencia de la lista 1:
MVF=-TDB x MV0/TDD,0
MVB=-(TDB+TDD,0) x MV0/TDD,0
ó 5
Z=-TDB x 256/TDD,0 MVF=(Z x MV0+ 128) >> 8
W=Z-256 MVB=(W x MV0+ 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD,0 representa una distancia temporal entre un campo 0 del cuadro de referencia de la lista 1 y un campo de referencia de la lista 0, y MV0 representa 10 un vector de movimiento de un bloque de ubicación conjunta en el campo 0 del cuadro de referencia de la lista 1 para modo directo.
De acuerdo con otro aspecto de la presente invención, se proporciona un método para calcular vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de 15 extraer los vectores de movimiento de modo directo de la imagen B, que comprende la etapa de asignar un signo a un valor de distancia temporal entre imágenes, cambiar de escala un vector de movimiento de un bloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo con independencia de las ubicaciones de las imágenes de referencia de la lista 0 y de la lista 1 para modo directo con el fin de obtener 20 un vector de movimiento de la lista 0, MVF, y un vector de movimiento de la lista 1, MVB, y calcular los vectores de movimiento de modo directo de la imagen B.
Preferentemente, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de cuadro, calcular los vectores de movimiento 25 de modo directo MVF y MVB de la imagen B de la siguiente manera:
MVF = TDB x MV/TDD
MVB = (TDB - TDD) x MV/TDD
ó
Z = TDB x 256/TDD MVF = (Z x MV + 128) >> 8 30
W = Z - 256 MVB = (W x MV + 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro B y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y el cuadro 35 de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro de referencia de la lista 1 y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la 40 imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en un modo de campo, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera:
MVF,i = TDB,i x MVi/TDD,i
MVB,i = (TDB,i - TDD,i) x MVi/TDD,i 5
ó
Z = TDB,i x 256/TDD,i MVF,i = (Z x MVi + 128) >> 8
W = Z - 256 MVB,i = (W x MVi + 128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el 10 campo B y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, TDD,i representa una distancia temporal entre un campo de referencia de la lista 1 y el campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo de referencia de la lista 1 y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, y MVi representa un vector de movimiento de un bloque de 15 ubicación conjunta en un campo de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de campo y un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de cuadro, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la 20 siguiente manera:
MVF,i = TDB,i x MV /TDD
MVB,i = (TDB,i - TDD) x MV/TDD
ó
Z = TDB,i x 256/TDD MVF,i = (Z x MV + 128) >> 8 25
W = Z - 256 MVB,i = (W x MV + 128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo B y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, TDD representa una distancia temporal entre el cuadro de referencia de la lista 1 y el cuadro de 30 referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro de referencia de la lista 1 y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, y MV representa un vector de movimiento de un bloque de ubicación conjunta en un cuadro de referencia de la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la 35 imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de campo y la imagen de referencia de la lista 1 sucede temporalmente a la imagen B, calcular los vectores de movimiento de modo directo MVF y MVB de un cuadro B a partir de la siguiente ecuación donde, para el cálculo de los vectores de movimiento de modo directo, se usa información de movimiento 40 de un bloque de ubicación conjunta en un campo 0 de un cuadro de referencia de la lista 1:
MVF = TDB x MV0 /TDD,0
MVB = (TDB - TDD,0) x MV0/TDD,0
ó 5
Z = TDB x 256/TDD,0 MVF = (Z x MV0+ 128) >> 8
W = Z - 256 MVB = (W x MV0+ 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro B y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, 10 TDD,0 representa una distancia temporal entre un campo 0 del cuadro de referencia de la lista 1 y un campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo 0 del cuadro de referencia de la lista 1 y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, y MV0 representa un vector de movimiento de un bloque de ubicación conjunta en el campo 0 del cuadro de referencia de 15 la lista 1 para modo directo.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en un modo de campo y la imagen de referencia de la lista 1 precede temporalmente a la imagen B, calcular los vectores de movimiento de 20 modo directo MVF y MVB de un cuadro B a partir de la siguiente ecuación donde, para el cálculo de los vectores de movimiento de modo directo, se usa información de movimiento de un bloque de ubicación conjunta en un campo 1 de un cuadro de referencia de la lista 1:
MVF = TDB x MV1/TDD,1 25
MVB = (TDB - TDD,1) x MV1 /TDD,1
ó
Z = TDB x 256/TDD,1 MVF = (Z x MV1 + 128) >> 8
W = Z - 256 MVB = (W x MV1 + 128) >> 8
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro 30 de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro B y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, TDD,1 representa una distancia temporal entre un campo 1 del cuadro de referencia de la lista 1 y un campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo 1 del cuadro de referencia de la lista 1 y un signo negativo (-) si se 35 mide desde el campo de referencia de la lista 0, y MV1 representa un vector de movimiento de un bloque de ubicación conjunta en el campo 1 del cuadro de referencia de la lista 1 para modo directo.
De acuerdo con todavía otro aspecto de la presente invención, se proporciona un método para calcular vectores de movimiento de modo directo de una imagen B (de 40 predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el fin de extraer los vectores de movimiento de modo directo de la imagen B, que comprende la etapa de, si un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo está en un modo intra, predecir y calcular imágenes de referencia de la lista 0 y la lista 1 y vectores de movimiento a partir de bloques vecinos de un 5 macrobloque de la imagen B a codificar, sobre la base de una redundancia espacial, y calcular los vectores de movimiento de modo directo de la imagen B.
Preferentemente, la etapa anterior puede incluir la etapa de, si bloques vecinos A, B y C del macrobloque que ha de ser codificado se refieren a diferentes imágenes de referencia, seleccionar una imagen de referencia con un índice más pequeño como 10 imagen de referencia para cada lista.
Además, la etapa anterior puede incluir la etapa de, si dos o más de los bloques vecinos del macrobloque que ha de ser codificado se refieren a una imagen de referencia con el mismo índice, seleccionar esa imagen de referencia como imagen de referencia para cada lista. 15
Además, la etapa anterior puede incluir la etapa de, fijar a 0 sus vectores de movimiento de la lista 0 y la lista 1 si uno cualquiera de los bloques vecinos A, B y C del macrobloque que ha de ser codificado está en el modo intra, seleccionar un vector de movimiento que tiene la misma dirección que la de una ubicación temporal de la imagen de referencia para cada lista de un bloque vecino, y adquirir el vector de movimiento para 20 cada lista a través de una operación de mediana, o seleccionar sólo uno de los dos vectores de movimiento de ese bloque si un bloque vecino tiene dos vectores de movimiento con las mismas direcciones y adquirir el vector de movimiento para cada lista a través de la operación de mediana incluyendo el vector de movimiento seleccionado.
Además, la etapa anterior puede incluir la etapa de, si no puede obtenerse ningún 25 índice efectivo de imagen de referencia para cada modo de lista, fijar a 0 los índices de imágenes de referencia de la lista 0 y la lista 1 y fijar a 0 el vector de movimiento para cada modo de lista.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Los anteriores y otros objetivos, características y otras ventajas de la presente 30 invención se comprenderán más claramente a partir de la siguiente descripción detallada considerada conjuntamente con los dibujos adjuntos, en los que:
las Figs. 1a a 1c son vistas que ilustran imágenes de referencia de la lista 1 para modo directo en un patrón IBBBP general;
las Figs. 2a a 2c son vistas que ilustran imágenes de referencia de la lista 1 para 35 modo directo en un patrón IBBB general;
las Figs. 3a a 3h son vistas que ilustran casos donde una imagen de referencia de la lista 1 para modo directo sucede temporalmente a una imagen B (L0 MV: vector de movimiento de la lista 0 y L1 MV: vector de movimiento de la lista 1);
las Figs. 4a a 4h son vistas que ilustran casos donde una imagen de referencia de la 40 lista 1 para modo directo precede temporalmente a una imagen B (L0 MV: vector de movimiento de la lista 0 y L1 MV: vector de movimiento de la lista 1);
la Fig. 5 es una vista que ilustra la predicción de vectores de movimiento de un bloque E usando vectores de movimiento de bloques vecinos A, B y C teniendo en cuenta una redundancia espacial general; 5
las Figs. 6a a 6c son vistas que ilustran casos donde tanto un macrobloque de una imagen B como un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo están en un modo de cuadro y la imagen de referencia de la lista 1 sucede temporalmente a la imagen B;
las Figs. 7a a 7d son vistas que ilustran casos donde tanto un macrobloque de una 10 imagen B como un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo están en un modo de campo y la imagen de referencia de la lista 1 sucede temporalmente a la imagen B;
las Figs. 8a a 8c son vistas que ilustran casos donde un macrobloque de una imagen B está en un modo de campo, un macrobloque de ubicación conjunta en una imagen 15 de referencia de la lista 1 para modo directo está en un modo de cuadro, y la imagen de referencia de la lista 1 sucede temporalmente a la imagen B;
las Figs. 9a a 9c son vistas que ilustran casos donde un macrobloque de una imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo está en un modo de campo, y la imagen de 20 referencia de la lista 1 sucede temporalmente a la imagen B;
las Figs. 10a y 10b son vistas que ilustran casos donde tanto un macrobloque de una imagen B como un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo están en un modo de cuadro y la imagen de referencia de la lista 1 precede temporalmente a la imagen B; 25
las Figs. 11a a 11d son vistas que ilustran casos donde tanto un macrobloque de una imagen B como un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo están en un modo de campo y la imagen de referencia de la lista 1 precede temporalmente a la imagen B;
las Figs. 12a y 12b son vistas que ilustran casos donde un macrobloque de una 30 imagen B está en un modo de campo, un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para un modo directo general está en un modo de cuadro, y la imagen de referencia de la lista 1 precede temporalmente a la imagen B; y
las Figs. 13a y 13b son vistas que ilustran casos donde un macrobloque de una imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta en una imagen 35 de referencia de la lista 1 para un modo directo general está en un modo de campo, y la imagen de referencia de la lista 1 precede temporalmente a la imagen B.
DESCRIPCIÓN DE LAS REALIZACIONES PREFERIDAS
La presente invención propone un método para obtener vectores de movimiento de modo directo cuando un macrobloque de ubicación conjunta en una imagen de referencia de 40 la lista 1 para modo directo está en un modo intra, y un método para adquirir los vectores de movimiento de modo directo en un caso donde la imagen de referencia de la lista 1 sucede temporalmente a una imagen B y en un caso donde la imagen de referencia de la lista 1 precede temporalmente a la imagen B.
La presente invención propone además un método para calcular los vectores de 5 movimiento de modo directo independientemente de las ubicaciones de las imágenes de referencia de la lista 0 y la lista 1 para modo directo asignando un signo a un valor de distancia temporal entre imágenes para simplificar algoritmos usados para el cálculo de los vectores de movimiento de modo directo.
Por otra parte, un modo de cuadro y un modo de campo se conmutan a un nivel de 10 imagen, de manera que la imagen B y la imagen de referencia de la lista 1 se pueden codificar en modo de cuadro o modo de campo. Como resultado, un macrobloque de la imagen B y un macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 tienen cuatro tipos de combinaciones codificadas por cuadros/campos.
[1] CASO EN EL QUE EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA 15 IMAGEN DE REFERENCIA DE LA LISTA 1 ESTÁ EN MODO INTRA.
Tal como se muestra en las Figs. 3f y 4f, un macrobloque de ubicación conjunta en una imagen de referencia de la lista 1 para modo directo puede estar en el modo intra independientemente de una ubicación temporal de la imagen de referencia. Debido a que el macrobloque en este modo no tiene información de movimiento, un método convencional 20 simplemente fija a 0 vectores de movimiento de modo directo y define una imagen de referencia de la lista 0 de manera que es la imagen decodificada en último lugar. Sin embargo, el método convencional no puede garantizar una alta eficacia de codificación. Por lo tanto, la presente invención predice y calcula imágenes de referencia de la lista 0 y la lista 1 y vectores de movimiento a partir de bloques vecinos de un macrobloque de una imagen B 25 que ha de ser codificada, sobre la base de una redundancia espacial.
Un índice de imagen de referencia para cada modo de lista se adquiere de la siguiente manera. La Fig. 5 es una vista que ilustra la predicción de vectores de movimiento de un bloque E usando vectores de movimiento de bloques vecinos A, B y C teniendo en cuenta una redundancia espacial general. 30
-- si los bloques vecinos A, B y C tienen diferentes índices de imágenes de referencia, se determina que uno más pequeño de los índices de imágenes de referencia sea un índice de imagen de referencia para el modo directo.
-- si dos de los bloques vecinos tienen el mismo índice de imagen de referencia, se determina que este índice sea un índice de imagen de referencia para el modo directo. 35
-- si todos los bloques vecinos tienen el mismo índice de imagen de referencia, se determina que este índice sea un índice de imagen de referencia para el modo directo.
Además, se adquiere un vector de movimiento para cada modo de lista a través de la siguiente predicción de vectores de movimiento. En este momento, si uno cualquiera de los bloques vecinos A, B y C está en el modo intra, sus vectores de movimiento de la lista 0 y la 40 lista 1 se fijan a 0.
-- se selecciona de un bloque vecino un vector de movimiento que tiene la misma dirección que la de una ubicación temporal de la imagen de referencia adquirida anteriormente para cada modo de lista, y, a través de una operación de mediana, se adquiere un vector de movimiento para cada modo de lista. 5
-- si un bloque vecino tiene dos vectores de movimiento con las mismas direcciones, en ese bloque se selecciona sólo uno de los dos vectores de movimiento y el mismo se incluye en la operación de mediana.
Por otra parte, si de un bloque vecino no puede obtenerse ninguno de los índices efectivos de imágenes de referencia de la lista 0 y la lista 1, los mismos se fijan a 0 y un 10 vector de movimiento para modo de lista se fija a 0.
[2] CASO EN EL QUE LA IMAGEN DE REFERENCIA DE LA LISTA 1 PARA MODO DIRECTO SUCEDE TEMPORALMENTE A LA IMAGEN B
CASO 1: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA 15 LISTA 1 ESTÁN EN MODO DE CUADRO
Tal como se observa a partir de las Figs. 3a a 3h, el bloque de ubicación conjunta en la imagen de referencia de la lista 1 puede tener un vector de movimiento o dos vectores de movimiento. En la presente invención, si el bloque de ubicación conjunta tiene dos vectores de movimiento, se selecciona uno (L0 MV ó L1 MV) de los dos vectores de movimiento y se 20 obtienen vectores de movimiento de modo directo a partir del vector de movimiento seleccionado (esto se describirá en lo sucesivo sobre la base del caso en el que se selecciona L0 MV (vector de movimiento de la lista 0)).
Por consiguiente, las Figs. 3a y 3c pueden representarse simplemente como la Fig. 6a, las Figs. 3b, 3d y 3e como la Fig. 6c, y las Figs. 3g y 3h como la Fig. 6b, respectivamente. 25
Si la imagen de referencia de la lista 0 y la imagen de referencia de la lista 1 para modo directo están ubicadas temporalmente antes y después de la imagen B, respectivamente (Fig. 6a), o si las imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la imagen B y la imagen de referencia de la lista 0 sucede temporalmente a la imagen de referencia de la lista 1 (Fig. 6b), 30 los vectores de movimiento de modo directo MVF y MVB se calculan de la siguiente manera:
MVF=TDB x MV/TDD
MVB=(TDB-TDD) x MV/TDD
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, y TDD representa una distancia temporal entre un cuadro de 35 referencia de la lista 1 y el cuadro de referencia de la lista 0.
Aplicando una operación a nivel de bits al cálculo de los vectores de movimiento de modo directo MVF y MVB en su beneficio, la ecuación anterior puede expresarse de la siguiente manera:
Z=TDB x 256/TDD MVF=(Z x MV+ 128) >> 8 40
W=Z-256 MVB=(W x MV+ 128) >> 8
Si las imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la imagen B y la imagen de referencia de la lista 0 precede temporalmente a la imagen de referencia de la lista 1 (Fig. 6c), los vectores de movimiento de modo directo MVF y MVB se calculan de la siguiente manera: 5
MVF= - TDB x MV/TDD
MVB= - (TDB+TDD) x MV/TDD
Esta ecuación puede expresarse de la siguiente manera:
Z = - TDB x 256/TDD MVF = (Z x MV + 128) >> 8
W =Z-256 MVB = (W x MV + 128) >> 8 10
CASO 2: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA LISTA 1 ESTÁN EN MODO DE CAMPO
Las Figs. 7a a 7d muestran casos donde tanto el macrobloque de la imagen B como el macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en el 15 modo de campo. Cada vector de movimiento del macrobloque de la imagen B se obtiene a partir de un vector de movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 de la misma paridad.
Si las imágenes de referencia de la lista 0 y la lista 1 para el modo directo están ubicadas temporalmente antes y después de la imagen B, respectivamente (Fig. 7a), o si las 20 imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la imagen B y la imagen de referencia de la lista 0 sucede temporalmente a la imagen de referencia de la lista 1 (Fig. 7b), los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, para cada campo i de un cuadro B (i=0 significa un primer campo e i=1 significa un segundo campo) se calculan de la 25 siguiente manera:
MVF,i=TDB,i x MVi/TDD,i
MVB,i=(TDB,i-TDD,i) x MVi/TDD,i
donde MVi representa un vector de movimiento de un bloque de ubicación conjunta de un campo i en un cuadro de referencia de la lista 1, TDB,i representa una distancia 30 temporal entre un campo B actual y un campo de referencia de la lista 0, y TDD,i representa una distancia temporal entre un campo de referencia de la lista 1 y el campo de referencia de la lista 0.
La ecuación anterior puede expresarse de la siguiente manera:
Z=TDB,i x 256/TDD,i MVF,i=(Z x MVi+ 128) >> 8 35
W=Z-256 MVB,i=(W x MVi+ 128) >> 8
Si, debido a que el bloque de ubicación conjunta del campo i en el cuadro de referencia de la lista 1 tiene un vector de movimiento que apunta a un campo en un cuadro que sucede temporalmente a la imagen B, las imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la 40 imagen B y la imagen de referencia de la lista 0 precede temporalmente a la imagen de referencia de la lista 1 (Figs. 7c y 7d), los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, se calculan de la siguiente manera:
MVF,i= - TDB,i x MVi/TDD,i
MVB,i= - (TDB,i+TDD,i) x MVi/TDD,i 5
La ecuación anterior puede expresarse de la siguiente manera:
Z= -TDB,i x 256/TDD,i MVF,i=(Z x MVi+ 128) >> 8
W=Z-256 MVB,i=(W x MVi+ 128) >> 8
CASO 3: EL MACROBLOQUE DE LA IMAGEN B ESTÁ EN MODO DE CAMPO Y EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE 10 LA LISTA 1 ESTÁ EN MODO DE CUADRO
Las Figs. 8a a 8c muestran casos en los que el macrobloque de la imagen B está en el modo de campo y el macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en el modo de cuadro. En este caso, suponiendo que la coordenada vertical del macrobloque actual es yactual, y la coordenada vertical del macrobloque de 15 ubicación conjunta de la imagen de referencia de la lista 1 es yubicación conjunta, entre las dos coordenadas se establece la relación de yubicación conjunta = 2 x yactual. Además, los campos de referencia de la lista 0 y la lista 1 están presentes en las mismas paridades de los cuadros de referencia de la lista 0 y la lista 1, respectivamente.
Si las imágenes de referencia de la lista 0 y la lista 1 para el modo directo están 20 ubicadas temporalmente antes y después de la imagen B, respectivamente (Fig. 8a), o si las imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la imagen B y la imagen de referencia de la lista 0 sucede temporalmente a la imagen de referencia de la lista 1 (Fig. 8b), los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, para cada campo i del 25 cuadro B se calculan de la siguiente manera:
MVF,i=TDB,i x MV/TDD
MVB,i=(TDB,i-TDD) x MV/TDD
La ecuación anterior puede expresarse de la siguiente manera:
Z=TDB,i x 256/TDD MVF,i=(Z x MV+ 128) >> 8 30
W=Z-256 MVB,i=(W x MV+ 128) >> 8
Si, debido a que el bloque de ubicación conjunta en el cuadro de referencia de la lista 1 tiene un vector de movimiento que apunta a un cuadro que sucede temporalmente a la imagen B, las imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la imagen B y la imagen de referencia 35 de la lista 0 precede temporalmente a la imagen de referencia de la lista 1 (Fig. 8c), los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, para cada campo i del cuadro B se calculan de la siguiente manera:
MVF,i= -TDB,i x MV/TDD
MVB,i= - (TDB,i+TDD,i) x MV/TDD 40
La ecuación anterior puede expresarse de la siguiente manera
Z= - TDB,i x 256/TDD MVF,i=(Z x MV+ 128) >> 8
W=Z-256 MVB,i=(W x MV+ 128) >> 8
donde TDB,i representa una distancia temporal entre el campo B actual y el campo de referencia de la lista 0, TDD representa una distancia temporal entre el cuadro de 5 referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en el cuadro de referencia de la lista 1 para modo directo.
CASO 4: EL MACROBLOQUE DE LA IMAGEN B ESTÁ EN MODO DE CUADRO Y EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE 10 LA LISTA 1 ESTÁ EN MODO DE CAMPO
Las Figs. 9a a 9c muestran casos en los que el macrobloque de la imagen B está en el modo de cuadro y el macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en el modo de campo. En este caso, suponiendo que la coordenada vertical del macrobloque actual es yactual, y la coordenada vertical del macrobloque de 15 ubicación conjunta de la imagen de referencia de la lista 1 es yubicación conjunta, entre las dos coordenadas se establece la relación de yubicación conjunta = yactual/2. Además, debido a que el campo 0 del cuadro de referencia de la lista 1 está temporalmente más cerca de la imagen B que el campo 1 del mismo, la información de movimiento de un bloque de ubicación conjunta del campo 0 se usa para el cálculo de los vectores de movimiento de modo 20 directo.
Si las imágenes de referencia de la lista 0 y la lista 1 para el modo directo están ubicadas temporalmente antes y después de la imagen B, respectivamente (Fig. 9a), o si las imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la imagen B y la imagen de referencia de la lista 0 25 sucede temporalmente a la imagen de referencia de la lista 1 (Fig. 9b), los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF y MVB, del cuadro B se calculan de la siguiente manera:
MVF=TDB x MV0 /TDD,0
MVB=(TDB-TDD,0) x MV0/TDD,0 30
La ecuación anterior puede expresarse de la siguiente manera:
Z=TDB x 256/TDD,0 MVF=(Z x MV0+ 128) >> 8
W=Z-256 MVB=(W x MV0+ 128) >> 8
Si, debido a que el bloque de ubicación conjunta del campo 0 del cuadro de referencia de la lista 1 tiene un vector de movimiento que apunta a un campo de un cuadro 35 que sucede temporalmente a la imagen B, las imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están ubicadas temporalmente después de la imagen B y la imagen de referencia de la lista 0 precede temporalmente a la imagen de referencia de la lista 1 (Fig. 9c), los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF y MVB, se calculan de la siguiente manera: 40
MVF= -TDB x MV0/TDD,0
MVB= - (TDB+TDD,0) x MV0/TDD,0
La ecuación anterior puede expresarse de la siguiente manera:
Z= - TDB x 256/TDD,0 MVF=(Z x MV0+ 128) >> 8
W=Z-256 MVB=(W x MV0+ 128) >> 8 5
donde TDB representa una distancia temporal entre el cuadro B actual y el cuadro de referencia de la lista 0, TDD,0 representa una distancia temporal entre un campo 0 del cuadro de referencia de la lista 1 y el campo de referencia de la lista 0, y MV0 representa un vector de movimiento del bloque de ubicación conjunta en el campo 0 del cuadro de referencia de la lista 1 para modo directo. 10
[3] CASO EN EL QUE LA IMAGEN DE REFERENCIA DE LA LISTA 1 PARA MODO DIRECTO PRECEDE TEMPORALMENTE A LA IMAGEN B
En este caso, las imágenes de referencia tanto de la lista 0 como de la lista 1 están siempre ubicadas temporalmente antes de la imagen B.
CASO 1: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL 15 MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA LISTA 1 ESTÁN EN MODO DE CUADRO
Tal como se observa a partir de las Figs. 4a a 4h, el bloque de ubicación conjunta en la imagen de referencia de la lista 1 puede tener un vector de movimiento o dos vectores de movimiento. En la presente invención, si el bloque de ubicación conjunta tiene dos vectores 20 de movimiento, se selecciona uno (L0 MV ó L1 MV) de los dos vectores de movimiento y se obtienen vectores de movimiento de modo directo a partir del vector de movimiento seleccionado (esto se describirá en lo sucesivo sobre la base del caso donde se selecciona L0 MV (vector de movimiento de la lista 0)).
Por consiguiente, las Figs. 4a, 4c, 4e, 4g y 4h pueden representarse simplemente 25 como la Fig. 10a, y las Figs. 4b y 4d como la Fig. 10b, respectivamente.
Si la imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1 para modo directo, los vectores de movimiento de modo directo MVF y MVB se calculan de la siguiente manera (Fig. 10a):
MVF=TDB x MV/TDD 30
MVB=(TDB-TDD) x MV/TDD
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para 35 modo directo.
La ecuación anterior puede expresarse de la siguiente manera:
Z=TDB x 256/TDD MVF=(Z x MV+ 128) >> 8
W=Z-256 MVB=(W x MV+ 128) >> 8
Si la imagen de referencia de la lista 0 sucede temporalmente a la imagen de 40 referencia de la lista 1, los vectores de movimiento de modo directo MVF y MVB se calculan de la siguiente manera (Fig. 10b):
MVF= - TDB x MV/TDD
MVB= - (TDB+TDD) x MV/TDD
Esta ecuación puede expresarse de la siguiente manera: 5
Z= - TDB x 256/TDD MVF=(Z x MV + 128) >> 8
W=Z-256 MVB=(W x MV + 128) >> 8
donde TDB representa una distancia temporal entre el cuadro B actual y el cuadro de referencia de la lista 0, TDD representa una distancia temporal entre el cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento 10 del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo.
CASO 2: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA LISTA 1 ESTÁN EN MODO DE CAMPO
Si la imagen de referencia de la lista 0 para modo directo precede temporalmente a la 15 imagen de referencia de la lista 1 para modo directo, los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, para cada campo i de un cuadro B se calculan de la siguiente manera (Figs. 11a y 11b):
MVF,i=TDB,i x MVi/TDD,i
MVB,i=(TDB,i-TDD,i) x MVi/TDD,i 20
La ecuación anterior puede expresarse de la siguiente manera:
Z=TDB,i x 256/TDD,i MVF,i=(Z x MVi+128) >> 8
W=Z-256 MVB,i=(W x MVi+128) >> 8
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, TDD,i representa una distancia temporal entre un campo de 25 referencia de la lista 1 y el campo de referencia de la lista 0, y MVi representa un vector de movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 para modo directo.
Si, debido a que el bloque de ubicación conjunta del campo i en el cuadro de referencia de la lista 1 tiene un vector de movimiento que apunta a un campo en un cuadro 30 sucesivo temporalmente, la imagen de referencia de la lista 0 precede temporalmente a la imagen de referencia de la lista 1, los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, se calculan de la siguiente manera (Figs. 11c y 11d):
MVF,i= - TDB,i x MVi/TDD,i
MVB,i= - (TDB,i+TDD,i) x MVi/TDD,i 35
La ecuación anterior puede expresarse de la siguiente manera:
Z= -TDB,i x 256/TDD,i MVF,i=(Z x MVi+128) >> 8
W=Z-256 MVB,i=(W x MVi+128) >> 8
donde TDB,i representa una distancia temporal entre el campo B actual y el campo de referencia de la lista 0, TDD,i representa una distancia temporal entre el campo de 40 referencia de la lista 1 y el campo de referencia de la lista 0, y MVi representa un vector de movimiento del bloque de ubicación conjunta en el campo de referencia de la lista 1 para modo directo.
CASO 3: EL MACROBLOQUE DE LA IMAGEN B ESTÁ EN MODO DE CAMPO Y EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE 5 LA LISTA 1 ESTÁ EN MODO DE CUADRO
Si la imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1 para modo directo, los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, para cada campo i del cuadro B se calculan de la siguiente manera (Fig. 12a): 10
MVF,i=TDB,i x MV/TDD
MVB,i=(TDB,i-TDD) x MV/TDD
La ecuación anterior puede expresarse de la siguiente manera:
Z=TDB,i x 256/TDD MVF,i=(Z x MV+128) >> 8
W=Z-256 MVB,i=(W x MV+128) >> 8 15
donde TDB,i representa una distancia temporal entre el campo B actual y el campo de referencia de la lista 0, TDD representa una distancia temporal entre el cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en el cuadro de referencia de la lista 1 para modo directo. 20
Si, debido a que el bloque de ubicación conjunta en el cuadro de referencia de la lista 1 tiene un vector de movimiento que apunta a un cuadro sucesivo temporalmente, la imagen de referencia de la lista 0 sucede temporalmente a la imagen de referencia de la lista 1, los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF,i y MVB,i, para cada campo i del cuadro B se calculan de la siguiente manera (Fig. 12b): 25
MVF,i= -TDB,i x MV/TDD
MVB,i= - (TDB,i+TDD) x MV/TDD
La ecuación anterior puede expresarse de la siguiente manera:
Z= - TDB,i x 256/TDD MVF,i=(Z x MV+128) >> 8
W=Z-256 MVB,i=(W x MV+128) >> 8 30
donde TDB,i representa una distancia temporal entre el campo B actual y el campo de referencia de la lista 0, TDD representa una distancia temporal entre el cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en el cuadro de referencia de la lista 1 para modo directo. 35
CASO 4: EL MACROBLOQUE DE LA IMAGEN B ESTÁ EN MODO DE CUADRO Y EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA LISTA 1 ESTÁ EN MODO DE CAMPO
Debido a que el campo 1 f1 del cuadro de referencia de la lista 1 está temporalmente más cerca de la imagen B que el campo 0 f0 del mismo, la información de 40 movimiento de un bloque de ubicación conjunta del campo 1 f1 se usa para el cálculo de los vectores de movimiento de modo directo.
Si la imagen de referencia de la lista 0 para modo directo precede temporalmente a la imagen de referencia de la lista 1 para modo directo, los vectores de movimiento de modo directo de la lista 0 y la lista 1, MVF y MVB, para cada campo i del cuadro B se 5 calculan de la siguiente manera (Fig. 13a):
MVF=TDB x MV1/TDD,1
MVB=(TDB-TDD,1) x MV1/TDD,1
La ecuación anterior puede expresarse de la siguiente manera:
Z=TDB x 256/TDD,1 MVF=(Z x MV1+128) >> 8 10
W=Z-256 MVB=(W x MV1+128) >> 8
donde TDB representa una distancia temporal entre el cuadro B actual y el cuadro de referencia de la lista 0, TDD,1 representa una distancia temporal entre un campo 1 del cuadro de referencia de la lista 1 y el campo de referencia de la lista 0, y MV1 representa un vector de movimiento del bloque de ubicación conjunta en el campo 1 del cuadro de 15 referencia de la lista 1 para modo directo.
Si, debido a que el bloque de ubicación conjunta del campo 1 f1 del cuadro de referencia de la lista 1 tiene un vector de movimiento que apunta a un campo de un cuadro sucesivo temporalmente, la imagen de referencia de la lista 0 sucede temporalmente a la imagen de referencia de la lista 1, los vectores de movimiento de modo directo de la lista 0 20 y la lista 1, MVF y MVB, se calculan de la siguiente manera (Fig. 13b):
MVF= -TDB x MV1/TDD,1
MVB= - (TDB+TDD,1) x MV1/TDD,1
La ecuación anterior puede expresarse de la siguiente manera:
Z= - TDB x 256/TDD,1 MVF=(Z x MV1+128) >> 8 25
W=Z-256 MVB=(W x MV1+128) >> 8
donde TDB representa una distancia temporal entre el cuadro B actual y el cuadro de referencia de la lista 0, TDD,1 representa una distancia temporal entre un campo 1 del cuadro de referencia de la lista 1 y el campo de referencia de la lista 0, y MV1 representa un vector de movimiento del bloque de ubicación conjunta en el campo 1 del cuadro de 30 referencia de la lista 1 para modo directo.
[4] CASO EN EL QUE LOS VECTORES DE MOVIMIENTO DE MODO DIRECTO SE CALCULAN ASIGNANDO UN SIGNO AL VALOR DE DISTANCIA TEMPORAL ENTRE IMÁGENES
En caso de que la imagen de referencia de la lista 1 para modo directo esté 35 ubicada temporalmente antes o después de la imagen B, en cada caso se dan dos tipos de algoritmos. Dichos algoritmos pueden expresarse simplemente asignando un signo a un valor de distancia temporal entre imágenes, de la siguiente manera.
CASO 1: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA 40 LISTA 1 ESTÁN EN MODO DE CUADRO
Si tanto el macrobloque de la imagen B como el macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en el modo de cuadro, los vectores de movimiento de modo directo MVF y MVB de la imagen B pueden calcularse de la siguiente manera: 5
MVF=TDB x MV / TDD
MVB=(TDB-TDD) x MV/TDD
ó
Z=TDB x 256/TDD MVF=(Z x MV+128) >> 8
W=Z-256 MVB=(W x MV+128) >> 8 10
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro B y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, TDD representa una distancia temporal entre un cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el 15 cuadro de referencia de la lista 1 y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo.
CASO 2: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA 20 LISTA 1 ESTÁN EN MODO DE CAMPO
Si tanto el macrobloque de la imagen B como el macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 están en el modo de campo, los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i del cuadro B pueden calcularse de la siguiente manera: 25
MVF,i=TDB,i x MVi/TDD,i
MVB,i=(TDB,i-TDD,i) x MVi/TDD,i
ó
Z=TDB,i x 256/TDD,i MVF,i=(Z x MVi+128) >> 8
W=Z-256 MVB,i=(W x MVi+128) >> 8 30
donde TDB,i representa una distancia temporal entre un campo B actual y un campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo B y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, TDD,i representa una distancia temporal entre un campo de referencia de la lista 1 y el campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde 35 el campo de referencia de la lista 1 y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, y MVi representa un vector de movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 para modo directo.
CASO 3: EL MACROBLOQUE DE LA IMAGEN B ESTÁ EN MODO DE CAMPO Y EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE 40 LA LISTA 1 ESTÁ EN MODO DE CUADRO
Si el macrobloque de la imagen B está en el modo de campo y el macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en el modo de cuadro, los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i del cuadro B pueden calcularse de la siguiente manera: 5
MVF,i=TDB,i x MV/TDD
MVB,i=(TDB,i-TDD) x MV /TDD
ó
Z=TDB,i x 256/TDD MVF,i=(Z x MV+128) >> 8
W=Z-256 MVB,i=(W x MV+128) >> 8 10
donde TDB,i representa una distancia temporal entre el campo B actual y el campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo B y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, TDD representa una distancia temporal entre el cuadro de referencia de la lista 1 y el cuadro de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro 15 de referencia de la lista 1 y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, y MV representa un vector de movimiento del bloque de ubicación conjunta en el cuadro de referencia de la lista 1 para modo directo.
CASO 4: EL MACROBLOQUE DE LA IMAGEN B ESTÁ EN MODO DE CUADRO Y EL MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE 20 LA LISTA 1 ESTÁ EN MODO DE CAMPO
Si el macrobloque de la imagen B está en el modo de cuadro, el macrobloque de ubicación conjunta de la imagen de referencia de la lista 1 está en el modo de campo y la imagen de referencia de la lista 1 sucede temporalmente a la imagen B, el campo 0 del cuadro de referencia de la lista 1 está temporalmente más cerca de la imagen B que el 25 campo 1 del mismo, de manera que, para el cálculo de los vectores de movimiento de modo directo, se usa información de movimiento de un bloque de ubicación conjunta del campo 0. Como resultado, los vectores de movimiento de modo directo MVF y MVB del cuadro B pueden obtenerse a partir de la siguiente ecuación, donde la información de movimiento del bloque de ubicación conjunta en el campo 0 del cuadro de referencia de la 30 lista 1 se usa para el cálculo de los vectores de movimiento de modo directo:
MVF=TDB x MV0/TDD,0
MVB=(TDB-TDD,0) x MV0/TDD,0
ó
Z=TDB x 256/TDD,0 MVF=(Z x MV0+128) >> 8 35
W=Z-256 MVB=(W x MV0+128) >> 8
donde TDB representa una distancia temporal entre el cuadro B actual y el cuadro de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro B y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, TDD,0 representa una distancia temporal entre un campo 0 del cuadro de referencia de la 40 lista 1 y el campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo 0 del cuadro de referencia de la lista 1 y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, y MV0 representa un vector de movimiento del bloque de ubicación conjunta en el campo 0 del cuadro de referencia de la lista 1 para modo directo. 5
Si la imagen de referencia de la lista 1 precede temporalmente a la imagen B, el campo 1 del cuadro de referencia de la lista 1 está temporalmente más cerca de la imagen B que el campo 0 del mismo, de manera que, para el cálculo de los vectores de movimiento de modo directo, se usa información de movimiento de un bloque de ubicación conjunta del campo 1. Como resultado, los vectores de movimiento de modo directo MVF y 10 MVB del cuadro B pueden obtenerse a partir de la siguiente ecuación, donde la información de movimiento del bloque de ubicación conjunta en el campo 1 del cuadro de referencia de la lista 1 se usa para el cálculo de los vectores de movimiento de modo directo:
MVF=TDB x MV1 /TDD,1 15
MVB=(TDB-TDD,1) x MV1 /TDD,1
ó
Z=TDB x 256/TDD,1 MVF=(Z x MV1+128) >> 8
W=Z-256 MVB=(W x MV1+128) >> 8
donde TDB representa una distancia temporal entre el cuadro B actual y el cuadro 20 de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro B y un signo negativo (-) si se mide desde el cuadro de referencia de la lista 0, TDD,1 representa una distancia temporal entre un campo 1 del cuadro de referencia de la lista 1 y el campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el campo 1 del cuadro de referencia de la lista 1 y un signo negativo (-) si se 25 mide desde el campo de referencia de la lista 0, y MV1 representa un vector de movimiento del bloque de ubicación conjunta en el campo 1 del cuadro de referencia de la lista 1 para modo directo.
Tal como se pone de manifiesto a partir de la descripción anterior, la presente invención proporciona un método para calcular vectores de movimiento de modo directo 30 de una imagen B (de predicción bidireccional) definida en una técnica de compresión de imágenes en movimiento de nueva generación. Se propone una técnica para extraer los vectores de movimiento de modo directo de la imagen B con el fin de aumentar la probabilidad de que se seleccione un modo directo como modo de predicción de un macrobloque, mejorando así la eficacia de codificación de una imagen B. 35
Aunque las realizaciones preferidas de la presente invención se han dado a conocer con fines ilustrativos, los expertos en la materia apreciarán que son posibles varias modificaciones, adiciones y sustituciones, sin desviarse con respecto al alcance de protección tal como se da a conocer en las reivindicaciones adjuntas.
40
Claims (4)
- REIVINDICACIONES1. Sistema de codificación de imágenes en movimiento para extraer vectores de movimiento de modo directo de un bloque actual en una imagen B en un 5 procesado de imágenes en movimiento, siendo capaz el sistema de:determinar un vector de movimiento de un bloque de ubicación conjunta en una imagen de referencia para modo directo; ycalcular dichos vectores de movimiento de modo directo de dicho bloque actual en dicha imagen B usando el vector de movimiento del bloque de ubicación 10 conjunta;caracterizado porque el sistema es además capaz de:seleccionar el vector de movimiento del bloque de ubicación conjunta a partir de un vector de movimiento de la lista 0 y un vector de movimiento de la lista 1 del bloque de ubicación conjunta en la imagen de referencia, en donde dicha lista 0 y 15 dicha lista 1 están respectivamente en concordancia con la norma H.264 / MPEG-4 parte 10;usar el vector de movimiento seleccionado para calcular dichos vectores de movimiento de modo directo de dicho bloque actual en dicha imagen B.
- 2. Sistema según la reivindicación 1, en el que el sistema es capaz de seleccionar el 20 vector de movimiento de la lista 1 del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo como vector de movimiento para la obtención de dichos vectores de movimiento de modo directo de dicho bloque actual en dicha imagen B.
- 3. Sistema según la reivindicación 1, en el que el sistema es capaz de seleccionar 25 el vector de movimiento de la lista 0 del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo como vector de movimiento para la obtención de dichos vectores de movimiento de modo directo de dicho bloque actual en dicha imagen B.
- 4. Sistema según una de las reivindicaciones 1 a 3, en el que el sistema es capaz 30 de modificar la escala del vector de movimiento seleccionado del bloque de ubicación conjunta para obtener un vector de movimiento de la lista 0, MVF, y un vector de movimiento de la lista 1, MVB, de dicho bloque actual en dicha imagen B.35- - -
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20020060742 | 2002-10-04 | ||
KR20020060742 | 2002-10-04 | ||
KR20020061243 | 2002-10-08 | ||
KR20020071226 | 2002-11-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2353423T3 true ES2353423T3 (es) | 2011-03-02 |
Family
ID=36083199
Family Applications (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES07003014T Expired - Lifetime ES2353423T3 (es) | 2002-10-04 | 2003-01-07 | Sistema de cálculo de vectores de movimiento de modo directo para imágenes b. |
ES08016895T Expired - Lifetime ES2354253T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES08016891T Expired - Lifetime ES2354251T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES07003016T Expired - Lifetime ES2356566T3 (es) | 2002-10-04 | 2003-01-07 | Método de cálculo de vectores de movimiento de modo directo para imágenes b. |
ES08016890T Expired - Lifetime ES2354248T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES07003015T Expired - Lifetime ES2356085T3 (es) | 2002-10-04 | 2003-01-07 | Método de cálculo de vectores de movimiento de modo directo para imágenes b. |
ES08016893T Expired - Lifetime ES2354246T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES08016888T Expired - Lifetime ES2354252T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES05018606T Expired - Lifetime ES2356551T3 (es) | 2002-10-04 | 2003-01-07 | Método de cálculo de vectores de movimiento de modo directo para imágenes b. |
Family Applications After (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES08016895T Expired - Lifetime ES2354253T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES08016891T Expired - Lifetime ES2354251T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES07003016T Expired - Lifetime ES2356566T3 (es) | 2002-10-04 | 2003-01-07 | Método de cálculo de vectores de movimiento de modo directo para imágenes b. |
ES08016890T Expired - Lifetime ES2354248T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES07003015T Expired - Lifetime ES2356085T3 (es) | 2002-10-04 | 2003-01-07 | Método de cálculo de vectores de movimiento de modo directo para imágenes b. |
ES08016893T Expired - Lifetime ES2354246T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES08016888T Expired - Lifetime ES2354252T3 (es) | 2002-10-04 | 2003-01-07 | Método para extraer vectores de movimiento de modo directo. |
ES05018606T Expired - Lifetime ES2356551T3 (es) | 2002-10-04 | 2003-01-07 | Método de cálculo de vectores de movimiento de modo directo para imágenes b. |
Country Status (3)
Country | Link |
---|---|
ES (9) | ES2353423T3 (es) |
RU (2) | RU2319317C1 (es) |
TW (1) | TWI229825B (es) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014005280A1 (en) * | 2012-07-03 | 2014-01-09 | Mediatek Singapore Pte. Ltd. | Method and apparatus to improve and simplify inter-view motion vector prediction and disparity vector prediction |
CN117528116A (zh) | 2018-03-29 | 2024-02-06 | 华为技术有限公司 | 一种双向帧间预测方法及装置 |
-
2003
- 2003-01-07 ES ES07003014T patent/ES2353423T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES08016895T patent/ES2354253T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES08016891T patent/ES2354251T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES07003016T patent/ES2356566T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES08016890T patent/ES2354248T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES07003015T patent/ES2356085T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES08016893T patent/ES2354246T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES08016888T patent/ES2354252T3/es not_active Expired - Lifetime
- 2003-01-07 ES ES05018606T patent/ES2356551T3/es not_active Expired - Lifetime
- 2003-01-10 TW TW92100444A patent/TWI229825B/zh not_active IP Right Cessation
-
2006
- 2006-05-02 RU RU2006114758/09A patent/RU2319317C1/ru active
- 2006-05-02 RU RU2006114761/09A patent/RU2319318C1/ru active
Also Published As
Publication number | Publication date |
---|---|
ES2354252T3 (es) | 2011-03-11 |
ES2354248T3 (es) | 2011-03-11 |
RU2319318C1 (ru) | 2008-03-10 |
ES2354246T3 (es) | 2011-03-11 |
ES2354253T3 (es) | 2011-03-11 |
ES2356551T3 (es) | 2011-04-11 |
ES2356566T3 (es) | 2011-04-11 |
RU2319317C1 (ru) | 2008-03-10 |
ES2356085T3 (es) | 2011-04-04 |
ES2354251T3 (es) | 2011-03-11 |
TWI229825B (en) | 2005-03-21 |
TW200405987A (en) | 2004-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2281573T3 (es) | Procedimiento de calculo de vector de movimiento de modo directo para imagen b. | |
ES2353423T3 (es) | Sistema de cálculo de vectores de movimiento de modo directo para imágenes b. |