ES2354246T3 - Método para extraer vectores de movimiento de modo directo. - Google Patents
Método para extraer vectores de movimiento de modo directo. Download PDFInfo
- Publication number
- ES2354246T3 ES2354246T3 ES08016893T ES08016893T ES2354246T3 ES 2354246 T3 ES2354246 T3 ES 2354246T3 ES 08016893 T ES08016893 T ES 08016893T ES 08016893 T ES08016893 T ES 08016893T ES 2354246 T3 ES2354246 T3 ES 2354246T3
- 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
Método para extraer vectores de movimiento de modo directo de un macrobloque actual en una imagen B en un procesado de imágenes en movimiento, que comprende: determinar un bloque de ubicación conjunta para el macrobloque actual en una imagen de referencia de la lista 1; seleccionar un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1; y obtener los vectores de movimiento del macrobloque actual en la imagen B a partir del vector de movimiento seleccionado; en donde la etapa de obtener los vectores de movimiento del macrobloque actual en la imagen B a partir del vector de movimiento seleccionado comprende aplicar un desplazamiento aritmético a la derecha en 8 bits al vector de movimiento del macrobloque actual; y en donde dicha lista 0 y dicha lista 1 respectivamente están en concordancia con la norma H.264 / MPEG-4 parte 10; caracterizado porque la etapa de seleccionar el vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 se realiza seleccionando el vector de movimiento 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 de la lista 1; y el 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 se selecciona como vector de movimiento para la obtención de dichos vectores de movimiento de modo directo si el bloque de ubicación conjunta en la imagen de referencia de la lista 1 tiene solamente el vector de movimiento de la lista 1.
Description
ANTECEDENTES DE LA INVENCIÓN
Campo de la invención
La presente invención se refiere a un método de codificación de imágenes en 5 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.
Descripción de la técnica relacionada
El documento “Text of Final Committee Draft of Joint Video Specification (ITU-T 10 REC. H-264 ISO/IEC 14496-10 AVC” de julio de 2000 proporciona una visión general sobre la tecnología antes de la fecha de prioridad de la presente solicitud. El documento da a conocer las características del preámbulo de la reivindicación independiente 1 en la subcláusula 10.3.3.2.
Una imagen B convencional presenta cinco tipos de modos de predicción, tales 15 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 20 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. 25
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 30 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 35 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 después de la imagen B, o pudiendo estar situadas ambas temporalmente antes y 40
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 temporal. 5
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 codificado. La técnica de modo directo temporal está destinada a obtener un vector de 10 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 imagen en la que un índice para la predicción de la lista 1 es 0, y una imagen de 15 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, índices por defecto para la predicción de la lista 1 e imágenes de referencia de la lista 1 20 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 de un orden de salida, o valor POC, de una imagen de referencia decodificada 25 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, índices por defecto para la predicción de la lista 1 e imágenes de referencia de la lista 1 30 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 lista 1 para modo directo de la B7 que ha de ser decodificada posteriormente es la B8 35 temporalmente sucesiva. Por último, tal como se muestra en la Fig. 2c, una imagen de referencia de la lista 1 para 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 referencia de la lista 1 para modo directo puede ser una imagen P o B que sucede 40
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 referencia de la lista 1 sucede temporalmente a una imagen B. En este caso, debido a que 5 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 o MPEG-4 parte 10, permite la reordenación de índices de imágenes de referencia a un nivel de franjas (slice), de modo que a una imagen justo después de una imagen B se 10 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.
Las Figs. 4a a 4h muestran los modos que puede tener un bloque de ubicación 15 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 haber presentes otras imágenes de referencia, de modo que un vector de movimiento del 20 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 resultado una necesidad de explorar un método para calcular vectores de movimiento de 25 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 vectores de movimiento de modo directo de una imagen B (de predicción bidireccional) 30 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 codificación de una imagen B. 35
El objetivo anterior se logra con la combinación de características de la reivindicación independiente 1.
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, 40
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 seleccionado. 5
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 el vector de movimiento de la lista 0 como vector de movimiento para la obtención de los 10 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 etapa anterior puede incluir la etapa de seleccionar incondicionalmente el vector de 15 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 directo de la imagen B. 20
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 etapa de seleccionar uno cualquiera de los vectores de movimiento de un bloque de 25 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 referencia apuntada por el vector de movimiento seleccionado como imagen de referencia 30 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 bloque de ubicación conjunta en una imagen de referencia de la lista 1 tiene sólo un vector 35 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 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 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 bloque de ubicación conjunta tiene un movimiento cero, determinar una imagen 5 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 método para calcular vectores de movimiento de modo directo de una imagen B (de 10 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 movimiento de la lista 1 del bloque de ubicación conjunta como vector de movimiento para 15 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.
De acuerdo con un aspecto adicional de la presente invención, se proporciona un 20 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 25 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 de movimiento de modo directo de la imagen B. 30
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 fijar una imagen decodificada en último lugar como imagen de referencia de la 35 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. En un método convencional, una imagen que tiene un índice 0 para la predicción de la lista 1 se 40
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 adicional. Sin embargo, el presente método puede ahorrar el uso de memoria adicional. 5
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 una imagen de referencia de la lista 1 para modo directo precede 10 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.
Preferentemente, la etapa anterior puede incluir la etapa de, si tanto un 15 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 siguiente manera: 20
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 25
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 modo directo. 30
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 de movimiento de modo directo MVF y MVB de la imagen B de la siguiente manera: 35
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 40
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 modo directo. 5
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 vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B 10 de la siguiente manera:
MVF,i=TDB,i x MVi/TDD,i
MVB,i=(TDB,i-TDD,i)xMVi/TDD,i
ó
Z=TDB,i x 256/TDD,i MVF,i=(Z x MVi+128) >> 8 15
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 movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 20 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 directo sucede temporalmente a la imagen de referencia de la lista 1, calcular los vectores 25 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
ó 30
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 35 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 de referencia de la lista 1 está en un modo de cuadro y una imagen de referencia de la 40
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
MVB,i=(TDB,i-TDD) x MV /TDD 5
ó
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 10 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 imagen B está en un modo de campo, un macrobloque de ubicación conjunta de la imagen 15 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:
MVF,i=-TDB,i x MV/TDD 20
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
donde TDB,i representa una distancia temporal entre un campo B actual y un campo 25 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 30 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 de la siguiente ecuación donde, para el cálculo de los vectores de movimiento de modo 35 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
ó 40
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 cuadro de referencia de la lista 1 y un campo de referencia de la lista 0, y MV1 representa 5 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 imagen de referencia de la lista 1 está en un modo de campo y una imagen de referencia 10 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 campo 1 de un cuadro de referencia de la lista 1: 15
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
W=Z-256 MVB=(W x MV1+ 128) >> 8 20
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 referencia de la lista 1 para modo directo. 25
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 etapa de, si tanto una imagen de referencia de la lista 0 como la imagen de referencia de 30 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 directo de la imagen B. 35
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 los vectores de movimiento de modo directo MVF y MVB de la imagen B de la siguiente 40
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 cuadro 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 15 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
ó 20
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 25 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 campo y la 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 tanto un macrobloque de la imagen B como un macrobloque de ubicación conjunta de la imagen de referencia de la 5 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:
MVF,i=-TDB,i x MVi/TDD,i 10
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 15 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 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 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: 25
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 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 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, calcular los vectores de movimiento de modo directo MVF,i y MVB,i para cada campo i de un 40
cuadro 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 5
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 10 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 0 para modo directo sucede temporalmente a la imagen de referencia de la lista 1, 15 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:
MVF=TDB x MV0 /TDD,0 20
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
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro 25 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 de, si un macrobloque de la imagen B está en un modo de cuadro, un macrobloque de 30 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 movimiento de modo directo, se usa información de movimiento de un bloque de ubicación 35 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
ó
Z=-TDB x 256/TDD,0 MVF=(Z x MV0+ 128) >> 8 40
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 un vector de movimiento de un bloque de ubicación conjunta en el campo 0 del cuadro de 5 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 10 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 un vector de movimiento de la lista 0, MVF, y un vector de movimiento de la lista 1, MVB, y 15 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 de modo directo MVF y MVB de la imagen B de la siguiente manera: 20
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 25
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 30 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 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, 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
ó 40
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 campo B y un signo negativo (-) si se mide desde el campo de referencia de la lista 0, 5 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 ubicación conjunta en un campo de referencia de la lista 1 para modo directo. 10
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 siguiente manera: 15
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 20
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 referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el cuadro 25 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 imagen B está en un modo de cuadro, un macrobloque de ubicación conjunta de la 30 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 de un bloque de ubicación conjunta en un campo 0 de un cuadro de referencia de la lista 35 1:
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 40
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, TDD,0 representa una distancia temporal entre un campo 0 del cuadro de referencia de la 5 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 la lista 1 para modo directo. 10
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 modo directo MVF y MVB de un cuadro B a partir de la siguiente ecuación donde, para el 15 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) x MV1 /TDD,1 20
ó
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, a la que se asigna un signo positivo (+) si se mide desde el 25 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 mide desde el campo de referencia de la lista 0, y MV1 representa un vector de 30 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 predicción bidireccional) en un sistema de codificación de imágenes en movimiento con el 35 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 macrobloque de la imagen B a codificar, sobre la base de una redundancia espacial, y 40
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 imagen de referencia para cada lista. 5
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.
Además, la etapa anterior puede incluir la etapa de, fijar a 0 sus vectores de 10 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 cada lista a través de una operación de mediana, o seleccionar sólo uno de los dos 15 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 índice efectivo de imagen de referencia para cada modo de lista, fijar a 0 los índices de 20 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 invención se comprenderán más claramente a partir de la siguiente descripción detallada 25 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 modo directo en un patrón IBBB general; 30
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 lista 1 para modo directo precede temporalmente a una imagen B (L0 MV: vector de 35 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;
las Figs. 6a a 6c son vistas que ilustran casos donde tanto un macrobloque de una 40
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 imagen B como un macrobloque de ubicación conjunta en una imagen de referencia de la 5 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 de referencia de la lista 1 para modo directo está en un modo de cuadro, y la imagen de 10 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 referencia de la lista 1 sucede temporalmente a la imagen B; 15
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;
las Figs. 11a a 11d son vistas que ilustran casos donde tanto un macrobloque de 20 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 imagen B está en un modo de campo, un macrobloque de ubicación conjunta en una imagen 25 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 de referencia de la lista 1 para un modo directo general está en un modo de campo, y la 30 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 la lista 1 para modo directo está en un modo intra, y un método para adquirir los vectores de 35 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 movimiento de modo directo independientemente de las ubicaciones de las imágenes de 40
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 imagen, de manera que la imagen B y la imagen de referencia de la lista 1 se pueden 5 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 IMAGEN DE REFERENCIA DE LA LISTA 1 ESTÁ EN MODO INTRA. 10
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 simplemente fija a 0 vectores de movimiento de modo directo y define una imagen de 15 referencia de la lista 0 para que sea 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 que ha de ser codificada, sobre la base de una redundancia espacial. 20
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.
-- si los bloques vecinos A, B y C tienen diferentes índices de imágenes de referencia, 25 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.
-- si todos los bloques vecinos tienen el mismo índice de imagen de referencia, se 30 determina que este índice sea un índice de imagen de referencia para el modo directo.
Además, un vector de movimiento para cada modo de lista se adquiere 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 lista 1 se fijan a 0. 35
-- 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.
-- si un bloque vecino tiene dos vectores de movimiento con las mismas direcciones, 40
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 vector de movimiento para cada modo de lista se fija a 0. 5
[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 LISTA 1 ESTÁN EN MODO DE CUADRO 10
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 obtienen vectores de movimiento de modo directo a partir del vector de movimiento 15 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.
Si la imagen de referencia de la lista 0 y la imagen de referencia de la lista 1 para 20 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), los vectores de movimiento de modo directo MVF y MVB se calculan de la siguiente manera: 25
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 referencia de la lista 1 y el cuadro de referencia de la lista 0. 30
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
W=Z-256 MVB=(W x MV+ 128) >> 8 35
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:
MVF= - TDB x MV/TDD 40
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
CASO 2: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL 5 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 modo de campo. Cada vector de movimiento del macrobloque de la imagen B se obtiene a 10 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 imágenes de referencia tanto de la lista 0 como de la lista 1 para el modo directo están 15 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 siguiente manera: 20
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 temporal entre un campo B actual y un campo de referencia de la lista 0, y TDD,i 25 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
W=Z-256 MVB,i=(W x MVi+ 128) >> 8 30
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 imagen B y la imagen de referencia de la lista 0 precede temporalmente a la imagen de 35 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
La ecuación anterior puede expresarse de la siguiente manera: 40
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 LA LISTA 1 ESTÁ EN MODO DE CUADRO 5
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 ubicación conjunta de la imagen de referencia de la lista 1 es yubicación conjunta, entre las dos 10 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 ubicadas temporalmente antes y después de la imagen B, respectivamente (Fig. 8a), o si 15 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 cuadro B se calculan de la siguiente manera: 20
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 25
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 de la lista 0 precede temporalmente a la imagen de referencia de la lista 1 (Fig. 8c), los 30 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
La ecuación anterior puede expresarse de la siguiente manera 35
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 referencia de la lista 1 y el cuadro de referencia de la lista 0, y MV representa un vector de 40
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 LA LISTA 1 ESTÁ EN MODO DE CAMPO 5
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 ubicación conjunta de la imagen de referencia de la lista 1 es yubicación conjunta, entre las dos 10 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 directo. 15
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 sucede temporalmente a la imagen de referencia de la lista 1 (Fig. 9b), los vectores de 20 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
La ecuación anterior puede expresarse de la siguiente manera: 25
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 que sucede temporalmente a la imagen B, las imágenes de referencia tanto de la lista 0 30 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:
MVF= -TDB x MV0/TDD,0 35
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
donde TDB representa una distancia temporal entre el cuadro B actual y el cuadro 40
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.
[3] CASO EN EL QUE LA IMAGEN DE REFERENCIA DE LA LISTA 1 PARA 5 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 MACROBLOQUE DE UBICACIÓN CONJUNTA DE LA IMAGEN DE REFERENCIA DE LA 10 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 de movimiento, se selecciona uno (L0 MV ó L1 MV) de los dos vectores de movimiento y se 15 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 como la Fig. 10a, y las Figs. 4b y 4d como la Fig. 10b, respectivamente. 20
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
MVB=(TDB-TDD) x MV/TDD 25
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 modo directo. 30
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 referencia de la lista 1, los vectores de movimiento de modo directo MVF y MVB se calculan 35 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:
Z= - TDB x 256/TDD MVF=(Z x MV+ 128) >> 8 40
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 del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para modo directo. 5
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 imagen de referencia de la lista 1 para modo directo, los vectores de movimiento de modo 10 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
La ecuación anterior puede expresarse de la siguiente manera: 15
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 20 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 sucesivo temporalmente, la imagen de referencia de la lista 0 precede temporalmente a la 25 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
La ecuación anterior puede expresarse de la siguiente manera: 30
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 referencia de la lista 1 y el campo de referencia de la lista 0, y MVi representa un vector de 35 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 LA LISTA 1 ESTÁ EN MODO DE CUADRO 40
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):
MVF,i=TDB,i x MV/TDD 5
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
donde TDB,i representa una distancia temporal entre el campo B actual y el campo 10 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.
Si, debido a que el bloque de ubicación conjunta en el cuadro de referencia de la 15 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):
MVF,i= - TDB,i x MV/TDD 20
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
donde TDB,i representa una distancia temporal entre el campo B actual y el campo 25 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.
CASO 4: EL MACROBLOQUE DE LA IMAGEN B ESTÁ EN MODO DE CUADRO Y 30 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 movimiento de un bloque de ubicación conjunta del campo 1 f1 se usa para el cálculo de 35 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 calculan de la siguiente manera (Fig. 13a): 40
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
W=Z-256 MVB=(W x MV1+128) >> 8 5
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 referencia de la lista 1 para modo directo. 10
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 y la lista 1, MVF y MVB, se calculan de la siguiente manera (Fig. 13b): 15
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
W=Z-256 MVB=(W x MV1+128) >> 8 20
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 referencia de la lista 1 para modo directo. 25
[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é ubicada temporalmente antes o después de la imagen B, en cada caso se dan dos tipos 30 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 LISTA 1 ESTÁN EN MODO DE CUADRO 35
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:
MVF=TDB x MV / TDD 40
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
donde TDB representa una distancia temporal entre un cuadro B actual y un cuadro 5 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 cuadro de referencia de la lista 1 y un signo negativo (-) si se mide desde el cuadro de 10 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 LISTA 1 ESTÁN EN MODO DE CAMPO 15
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:
MVF,i=TDB,i x MVi/TDD,i 20
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 25 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 el campo de referencia de la lista 1 y un signo negativo (-) si se mide desde el campo de 30 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 LA LISTA 1 ESTÁ EN MODO DE CUADRO 35
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:
MVF,i=TDB,i x MV/TDD 40
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 el campo B actual y el campo 5 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 de referencia de la lista 1 y un signo negativo (-) si se mide desde el cuadro de referencia 10 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 LA LISTA 1 ESTÁ EN MODO DE CAMPO 15
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 campo 1 del mismo, de manera que, para el cálculo de los vectores de movimiento de 20 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 lista 1 se usa para el cálculo de los vectores de movimiento de modo directo: 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 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 lista 1 y el campo de referencia de la lista 0, a la que se asigna un signo positivo (+) si se 35 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.
Si la imagen de referencia de la lista 1 precede temporalmente a la imagen B, el 40
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 MVB del cuadro B pueden obtenerse a partir de la siguiente ecuación, donde la 5 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
MVB=(TDB-TDD,1) x MV1 /TDD,1 10
ó
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 de referencia de la lista 0, a la que se asigna un signo positivo (+) si se mide desde el 15 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 mide desde el campo de referencia de la lista 0, y MV1 representa un vector de 20 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 de una imagen B (de predicción bidireccional) definida en una técnica de compresión de 25 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.
Claims (2)
- REIVINDICACIONES1. Método para extraer vectores de movimiento de modo directo de un macrobloque actual en una imagen B en un procesado de imágenes en movimiento, que comprende: 5determinar un bloque de ubicación conjunta para el macrobloque actual en una imagen de referencia de la lista 1;seleccionar un vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1; yobtener los vectores de movimiento del macrobloque actual en la imagen B a 10 partir del vector de movimiento seleccionado;en donde la etapa de obtener los vectores de movimiento del macrobloque actual en la imagen B a partir del vector de movimiento seleccionado comprende aplicar un desplazamiento aritmético a la derecha en 8 bits al vector de movimiento del macrobloque actual; y 15en donde dicha lista 0 y dicha lista 1 respectivamente están en concordancia con la norma H.264 / MPEG-4 parte 10;caracterizado porquela etapa de seleccionar el vector de movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 se realiza seleccionando el vector de 20 movimiento 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 de la lista 1; yel 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 se selecciona como vector 25 de movimiento para la obtención de dichos vectores de movimiento de modo directo si el bloque de ubicación conjunta en la imagen de referencia de la lista 1 tiene solamente el vector de movimiento de la lista 1.
- 2. Método según la reivindicación 1, que comprende además la etapa de determinar una imagen de referencia a la que apunta un vector de movimiento del bloque de 30 ubicación conjunta en la imagen de referencia de la lista 1 como imagen de referencia de la lista 0 para modo directo.
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 |
---|---|
ES2354246T3 true ES2354246T3 (es) | 2011-03-11 |
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 Before (6)
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. |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
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 |
ES2353423T3 (es) | 2011-03-02 |
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. | |
ES2354246T3 (es) | Método para extraer vectores de movimiento de modo directo. |