ES2356085T3 - Método de cálculo de vectores de movimiento de modo directo para imágenes b. - Google Patents

Método de cálculo de vectores de movimiento de modo directo para imágenes b. Download PDF

Info

Publication number
ES2356085T3
ES2356085T3 ES07003015T ES07003015T ES2356085T3 ES 2356085 T3 ES2356085 T3 ES 2356085T3 ES 07003015 T ES07003015 T ES 07003015T ES 07003015 T ES07003015 T ES 07003015T ES 2356085 T3 ES2356085 T3 ES 2356085T3
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
Application number
ES07003015T
Other languages
English (en)
Inventor
Byeong Moon Jeon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Application granted granted Critical
Publication of ES2356085T3 publication Critical patent/ES2356085T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Método para extraer vectores de movimiento de modo directo de una imagen B en un procesado de imágenes en movimiento, que comprende: 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 dicha imagen B usando el vector de movimiento del bloque de ubicación conjunta; caracterizado por la etapa 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; en donde el vector de movimiento seleccionado se usa para calcular dichos vectores de movimiento de modo directo de dicha imagen B.

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 movimiento, y más particularmente a una técnica para obtener vectores de movimiento de modo directo de una imagen B (de predicción 5 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 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 10 modificadas a escala de un componente vectorial correspondiente de un macrobloque de ubicación conjunta en una imagen temporalmente subsiguiente. Dichos vectores de 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. 15
Una imagen B convencional presenta cinco tipos de modos de predicción, tales 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 un movimiento de un bloque de ubicación conjunta en una 20 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.
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 25 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 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 30 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 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 35 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.
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 40 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 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 45 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, í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 50 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 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 modo directo. 55
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 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 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 5 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 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 10 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 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 15 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.
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 20 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 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 25 presentar varios modos de predicción, lo cual da como 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 vectores de movimiento de modo directo de una imagen B (de 30 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 codificación de una imagen B.
El objetivo anterior se logra con la combinación de características de la reivindicación independiente 1. 35
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, 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 40 vectores de movimiento de modo directo de la imagen B a partir del vector de movimiento 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 el vector de movimiento de la lista 0 como vector de movimiento para la obtención de los vectores de movimiento de 45 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 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 50 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.
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 55 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 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 bloque de ubicación conjunta en una imagen de referencia de la 5 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 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 10 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 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 15 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 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 20 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 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 25 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 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 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 35 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 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, 40 lo cual da como resultado un uso de memoria 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 45 comprende 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.
Preferentemente, la etapa anterior puede incluir la etapa de, si tanto un macrobloque de la imagen B como un 50 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:
MVF = TDB x MV/TDD
MVB = (TDB - TDD) x MV/TDD 55
ó
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 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 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:
MVF =-TDB x MV/TDD 10
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 de referencia de la lista 0, 15 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.
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 20 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
MVB,i=(TDB,i-TDD,i)xMVi/TDD,i
ó 25
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 movimiento de un bloque de ubicación conjunta en un campo de referencia de la lista 1 30 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 de movimiento de modo directo MVF,i y MVB,i para cada campo i de un cuadro B de la siguiente manera: 35
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 40
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.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de 45 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 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 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 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 15 manera:
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 20
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 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 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 directo, se usa información de movimiento de un bloque de 30 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
ó
Z=TDB x 256/TDD,1 MVF=(Z x MV1+ 128) >> 8 35
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 referencia de la lista 1 para modo directo. 40
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 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 45 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
ó
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, 5 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.
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 10 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 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. 15
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 manera:
MVF=TDB x MV/TDD 20
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 de referencia de la lista 0, 25 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.
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 30 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:
MVF=-TDB x MV/TDD
MVB=-(TDB+TDD) x MV/TDD
ó 35
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 movimiento del bloque de ubicación conjunta en la imagen de referencia de la lista 1 para 40 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 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: 45
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
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, 5 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 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 10 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
ó
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 para modo directo. 20
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 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.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de 35 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 cuadro B 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 un campo B actual y un campo de referencia de la lista 0, 45 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 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, 5 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
MVB=(TDB-TDD,0) x MV0 /TDD,0 10
ó
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 15 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 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 20 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
MVB=-(TDB+TDD,0) x MV0/TDD,0 25
ó
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 30 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.
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 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 calcular los vectores de movimiento de modo directo de la imagen B. 40
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:
MVF = TDB x MV/TDD
MVB = (TDB - TDD) x MV/TDD 45
ó
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, 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 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, 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 10
ó
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 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, 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.
Además, la etapa anterior puede incluir la etapa de, si un macrobloque de la imagen B está en un modo de 20 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:
MVF,i = TDB,i x MV /TDD
MVB,i = (TDB,i - TDD) x MV/TDD 25
ó
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, 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 30 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 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 35 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 de un bloque de ubicación conjunta en un campo 0 de un cuadro de referencia de la lista 1: 40
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 45
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 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.
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 5 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 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 10
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 de referencia de la lista 0, a 15 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 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 20 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 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 25 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 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 30 índice más pequeño como 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.
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 35 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 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 40 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 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 45
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 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; 50
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;
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 movimiento de la lista 0 y L1 MV: vector de movimiento de la lista 5 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 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 10 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 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 15 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 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; 20
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 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 25 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 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 30 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 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 35 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 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 40 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 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 45 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.
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 50 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 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.
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 5 A, B y C teniendo en cuenta una redundancia espacial general.
-- si los bloques vecinos A, B y C tienen índices diferentes 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. 10
-- 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, 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. 15
-- 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, 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. 20
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.
[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 25 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. 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 seleccionado (esto se describirá en 30 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 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 35 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:
MVF=TDB x MV/TDD
MVB=(TDB-TDD) x MV/TDD 40
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.
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 45
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:
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 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
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 partir de un vector de movimiento de un bloque de ubicación conjunta en un campo de 10 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 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 15 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:
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 20 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 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 25
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 imagen B y la imagen de referencia de la lista 0 precede temporalmente a la imagen de referencia de la lista 1 (Figs. 7c 30 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: 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
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
Las Figs. 8a a 8c muestran casos en los que el macrobloque de la imagen B está en el modo de campo y el 40 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 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. 45
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 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:
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: 5
Z=TDB,i x 256/TDD MVF,i=(Z x MV+ 128) >> 8
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 10 referencia 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 15
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 referencia de la lista 1 y el cuadro de referencia de la lista 0, y 20 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
Las Figs. 9a a 9c muestran casos en los que el macrobloque de la imagen B está en el modo de cuadro y el 25 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 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 30 ubicación conjunta del campo 0 se usa para el cálculo de los vectores de movimiento de modo 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 sucede temporalmente a la imagen de referencia de la lista 1 (Fig. 9b), los vectores de movimiento de modo directo de 35 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:
Z=TDB x 256/TDD,0 MVF=(Z x MV0+ 128) >> 8 40
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 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), 45 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
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 de referencia de la lista 0, 5 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 MODO DIRECTO PRECEDE TEMPORALMENTE A LA IMAGEN B 10
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 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 15 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 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 20 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 25
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 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 de la siguiente manera (Fig. 10b): 35
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 40
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.
CASO 2: TANTO EL MACROBLOQUE DE LA IMAGEN B COMO EL MACROBLOQUE DE UBICACIÓN 45 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 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 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
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, 10 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 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 15 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:
Z= - TDB,i x 256/TDD,i MVF,i=(Z x MVi+128) >> 8 20
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 movimiento del bloque de ubicación conjunta en el campo de referencia de la lista 1 para modo directo. 25
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
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): 30
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 35
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.
Si, debido a que el bloque de ubicación conjunta en el cuadro de referencia de la lista 1 tiene un vector de 40 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
MVB,i= - (TDB,i+TDD) x MV/TDD 45
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 referencia de la lista 1 y el cuadro de referencia de la lista 0, y 5 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
Debido a que el campo 1 f1 del cuadro de referencia de la lista 1 está temporalmente más cerca de la imagen B 10 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 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): 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.
Si, debido a que el bloque de ubicación conjunta del campo 1 f1 del cuadro de referencia de la lista 1 tiene un 25 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):
MVF= -TDB x MV1/TDD,1
MVB= - (TDB+TDD,1) x MV1/TDD,1 30
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
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 35 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.
[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 40 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 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 45 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
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 5
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 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 10 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 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 15 del cuadro B pueden calcularse de la siguiente manera:
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 20
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, 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 25 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 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 30 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
MVB,i=(TDB,i-TDD) x MV /TDD
ó 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, 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 40 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 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 45
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 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 5 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 10
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 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 15 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 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 20 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 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 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 el cuadro B actual y el cuadro de referencia de la lista 0, a 30 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 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 35 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 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 40 modo directo como modo de predicción de un macrobloque, mejorando así la eficacia de codificación de una imagen B.

Claims (3)

  1. REIVINDICACIONES
    1. Método para extraer vectores de movimiento de modo directo de una imagen B en un procesado de imágenes en movimiento, que comprende:
    determinar un vector de movimiento de un bloque de ubicación conjunta en una imagen de referencia para modo directo; y 5
    calcular dichos vectores de movimiento de modo directo de dicha imagen B usando el vector de movimiento del bloque de ubicación conjunta;
    caracterizado por la etapa 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, 10 en donde dicha lista 0 y dicha lista 1 están respectivamente en concordancia con la norma H.264 / MPEG-4 parte 10;
    en donde el vector de movimiento seleccionado se usa para calcular dichos vectores de movimiento de modo directo de dicha imagen B.
  2. 2. Método según la reivindicación 1, en el que el vector de movimiento de la lista 1 del bloque de ubicación 15 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.
  3. 3. Método según la reivindicación 1, en el que 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 se selecciona como vector de movimiento para la obtención de dichos vectores de movimiento de modo directo. 20
ES07003015T 2002-10-04 2003-01-07 Método de cálculo de vectores de movimiento de modo directo para imágenes b. Expired - Lifetime ES2356085T3 (es)

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
ES2356085T3 true ES2356085T3 (es) 2011-04-04

Family

ID=36083199

Family Applications (9)

Application Number Title Priority Date Filing Date
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.
ES08016888T Expired - Lifetime ES2354252T3 (es) 2002-10-04 2003-01-07 Método para extraer vectores de movimiento de modo directo.
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.
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.
ES08016893T Expired - Lifetime ES2354246T3 (es) 2002-10-04 2003-01-07 Método para extraer vectores de movimiento de modo directo.
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.
ES08016890T Expired - Lifetime ES2354248T3 (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.

Family Applications After (8)

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.
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.
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.
ES08016893T Expired - Lifetime ES2354246T3 (es) 2002-10-04 2003-01-07 Método para extraer vectores de movimiento de modo directo.
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.
ES08016890T Expired - Lifetime ES2354248T3 (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.

Country Status (3)

Country Link
ES (9) ES2356085T3 (es)
RU (2) RU2319318C1 (es)
TW (1) TWI229825B (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
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
CN110324637B (zh) 2018-03-29 2023-11-17 华为技术有限公司 一种双向帧间预测方法及装置

Also Published As

Publication number Publication date
ES2353423T3 (es) 2011-03-02
ES2354246T3 (es) 2011-03-11
ES2354251T3 (es) 2011-03-11
RU2319317C1 (ru) 2008-03-10
ES2354248T3 (es) 2011-03-11
ES2356551T3 (es) 2011-04-11
TWI229825B (en) 2005-03-21
TW200405987A (en) 2004-04-16
ES2356566T3 (es) 2011-04-11
RU2319318C1 (ru) 2008-03-10
ES2354253T3 (es) 2011-03-11
ES2354252T3 (es) 2011-03-11

Similar Documents

Publication Publication Date Title
ES2281573T3 (es) Procedimiento de calculo de vector de movimiento de modo directo para imagen b.
ES2552024T3 (es) Método de selección de una imagen de referencia
RU2287908C1 (ru) Способ определения векторов движения в режиме прямого предсказания для в-кадра
ES2356085T3 (es) Método de cálculo de vectores de movimiento de modo directo para imágenes b.
RU2264049C2 (ru) Способ определения векторов движения в режиме прямого предсказания для в-кадра