Procedimiento de codificación de vectores de movimiento.
Un procedimiento de codificación de vectores de movimiento para generar un vector de movimientopredicho para un bloque actual (A) que va a codificarse y para codificar un diferencial entre un vector de movimiento deun bloque actual (A) y un vector de movimiento predicho,
comprendiendo el procedimiento de codificación de vectores demovimiento:
una etapa de asignación para, cuando al menos un bloque entre una pluralidad de bloques codificados (B, C, D) en lavecindad del bloque actual (A) tiene dos vectores de movimiento que hacen referencia a imágenes de referencia en lamisma dirección en orden de visualización, asignar un identificador a los vectores de movimiento respectivos de lapluralidad de bloques codificados (B, C, D); y
una etapa de generación (S117) para generar el vector de movimiento predicho para cada uno de los vectores demovimiento para el bloque actual (A) en base a los vectores de movimiento con el mismo identificador que el identificadorasignado a cada vector de movimiento para el bloque actual (A), entre los vectores de movimiento para la pluralidad debloques codificados (B, C, D),
caracterizado porque
en la etapa de asignación, el identificador se asigna, bloque a bloque, al vector de movimiento respectivo de los bloquesvecinos (B, C, D) según un orden en el que los vectores de movimiento de los bloques vecinos (B, C, D) aparecen comovectores de movimiento codificados en un tren binario.
Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E10160084.
Solicitante: PANASONIC CORPORATION.
Nacionalidad solicitante: Japón.
Dirección: 1006, OAZA KADOMA KADOMA-SHI, OSAKA 571-8501 JAPON.
Inventor/es: KADONO, SHINYA, HAGAI, MAKOTO, ABE, KIYOFUMI, KONDO, SATOSHI.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- H04N7/26
- H04N7/36
- H04N7/50
PDF original: ES-2399675_T3.pdf
Fragmento de la descripción:
Procedimiento de codificación de vectores de movimiento
Campo técnico
La presente invención se refiere a procedimientos para codificar y descodificar información de vectores de movimiento en codificación y descodificación de imágenes en movimiento usando codificación por predicción inter-imágenes.
Estado actual de la técnica Por regla general, en la codificación de imágenes en movimiento, se comprime una cantidad de información suprimiendo las redundancias espacial y temporal que existen en el seno de las imágenes en movimiento. Como procedimiento de supresión de las redundancias temporales, se usa la codificación por predicción inter-imágenes. En la codificación por predicción inter-imágenes, para codificar una imagen actual, se usan como imágenes de referencia imágenes que preceden o siguen en el tiempo a la imagen actual. Se detecta el movimiento de la imagen actual respecto a las imágenes de referencia y se calcula la diferencia entre la imagen obtenida por compensación de movimiento y la imagen actual. Luego se eliminan de esta diferencia las redundancias espaciales, de manera que se comprime la cantidad de información de las imágenes en movimiento.
En el procedimiento convencional de codificación de imágenes en movimiento según el estándar MPEG-4 (ISO/CEI 14496-2: 1999 Information technology, Coding of audio-visual objects - Parte 2: Visual, pp. 146-148) (denominado en lo sucesivo MPEG-4) y similares, existen tres tipos de imágenes: las imágenes I (imágenes intracodificadas) no se codifican usando predicción inter-imágenes, sino que se intracodifican. Las imágenes P (imágenes con codificación predictiva) se codifican usando predicción inter-imágenes con referencia a una imagen precedente. Las imágenes B (imágenes con codificación predictiva bidireccional) se codifican usando predicción inter-imágenes con referencia a una imagen precedente (imagen I o imagen P) y una imagen siguiente (imagen I o imagen P) . La Fig. 15 muestra relaciones predictivas entre imágenes respectivas en el procedimiento de codificación de imágenes en movimiento anteriormente mencionado. En la Fig. 15, las líneas verticales muestran imágenes, y los tipos de imagen (I, P y B) se indican en la parte inferior derecha de las imágenes respectivas. Las imágenes en las puntas de las flechas se codifican usando predicción inter-imágenes con referencia a las imágenes de los otros extremos de las flechas. Por ejemplo, la segunda imagen B se codifica usando como imágenes de referencia la primera imagen I y la cuarta imagen P.
De acuerdo con el estándar MPEG-4, para codificar vectores de movimiento, se codifica una diferencia entre un vector de movimiento de un bloque actual y un vector predicho obtenido de los vectores de movimiento para los bloques vecinos. Puesto que los vectores de movimiento de los bloques vecinos normalmente tienen una magnitud y dirección del movimiento sobre la coordenada espacial similares a los vectores de movimiento para el bloque actual, el grado de codificación de los vectores de movimiento puede reducirse calculando la diferencia con respecto al vector predicho obtenido de los vectores de movimiento de los bloques vecinos. Con referencia a las Figs. 16A a 16D se explicará el modo de codificar vectores de movimiento según MPEG-4. En estas figuras, los bloques indicados en negrita son macrobloques de 16x16 píxeles, y en cada macrobloque hay 4 bloques de 8x8 píxeles. En las Figs. 16A a 16D, el vector de movimiento (MV) de cada bloque está codificado sobre la base de la diferencia con respecto al vector predicho obtenido de los vectores de movimiento (MV1, MV2 y MV3) de los tres bloques vecinos. En calidad de este valor predicho, se usan las medianas calculadas respectivamente a partir de las componentes horizontal y vertical de estos tres vectores de movimiento MV1, MV2 y MV3. Sin embargo, en ocasiones un bloque vecino no tiene vector de movimiento, por ejemplo cuando está intracodificado o está codificado como imagen B de modo directo. Si uno de los bloques vecinos es un bloque de este tipo, el vector de movimiento para el bloque se considera igual a 0. Si dos de los bloques vecinos son bloques de este tipo, el vector de movimiento del bloque restante se usa como vector predicho. Y cuando de todos los bloques vecinos ninguno tiene vector de movimiento, el vector de movimiento del bloque actual se codifica partiendo del supuesto de que el vector predicho es 0.
Mientras tanto, el procedimiento H.26L, que se ha desarrollado con fines de normalización, propone un nuevo procedimiento de codificación de imágenes B. Las imágenes B tradicionalmente se codifican usando como imágenes de referencia una imagen precedente previamente codificada y una imagen siguiente previamente codificada, pero, en el nuevo procedimiento de codificación, las imágenes B se codifican usando dos imágenes precedentes previamente codificadas, dos imágenes siguientes previamente codificadas, o una imagen precedente previamente codificada y una imagen siguiente previamente codificada.
El borrador “Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG: Working Draft Number 2 Revision 2” es una descripción de un procedimiento de codificación de referencia para ser utilizado en el desarrollo de un procedimiento de compresión de vídeo denominado Codificación JVT según la recomendación de ITU-T (H.26L) y la normativa JTC1 de la ISO/IEC (MPEG-4, Parte 10) .En el procedimiento convencional de codificación de vectores de movimiento, incluso si los bloques vecinos en una imagen B tienen respectivamente dos vectores de movimiento hacia las imágenes de referencia precedentes o dos vectores de movimiento hacia las imágenes de referencia siguientes, no existe ningún procedimiento definitivo y unificado de determinación de cuál de esos dos vectores debería usarse como vector predicho y, por esto, no existe ningún procedimiento de codificación eficaz del vector de movimiento determinado.
Takahiro Fukuhara y col. desvelan, en el documento “Ver y Low Bit-Rate Video Coding with Block Partitioning and Adaptive Selection of Two Time-Differential Frame Memories” (en IEEE Transactions on Circuits and Systems for Video Technology, IEEE Service Center, Piscataway, NJ, Estados Unidos, Vol. 7. nº 1, febrero de 1997) , esquemas MC para codificación de vídeo de tasa de bits muy baja. Las características principales del MC propuesto son la predicción con división en bloques y la utilización de dos cuadros de referencia diferenciales en el tiempo. Este esquema de codificación pretende mejorar la calidad de la imagen alrededor de los contornos de los objetos y, consecuentemente, reducir los errores de predicción. También pretende funcionar correctamente en el caso de oclusiones de objetos.
La presente invención se ha concebido a fin de solucionar el problema anteriormente mencionado y la presente invención tiene por objeto proporcionar un procedimiento de codificación de vectores de movimiento y un procedimiento de descodificación de vectores de movimiento aptos para unificar el procedimiento de determinación de un vector predicho para codificar un vector de movimiento, y mejorar la predictibilidad.
Descripción de la invención A fin de lograr el objeto anteriormente mencionado, el procedimiento de codificación de vectores de movimiento de la presente invención es un procedimiento de codificación de vectores de movimiento, un aparato de codificación de vectores de movimiento, y un medio de almacenamiento de datos, según las reivindicaciones 1 a 3.
Breve descripción de los dibujos La Fig. 1A es un diagrama de bloques que muestra la estructura de un aparato de codificación de imágenes según una primera forma de realización de la presente invención.
La Fig. 2A es un diagrama que muestra el orden de imágenes introducidas en una memoria de cuadros.
La Fig. 2B es un diagrama que muestra el orden de codificación de las imágenes.
La Fig. 3A es un diagrama que muestra un bloque actual que va a codificarse (en la parte superior izquierda en un macrobloque) y los bloques vecinos previamente codificados.
La Fig. 3B es un diagrama que muestra un bloque actual que va a codificarse (en la parte superior derecha en un macrobloque) y los bloques vecinos previamente codificados.
La Fig. 3C es un diagrama que muestra un bloque actual que va a codificarse (en la parte inferior izquierda en un macrobloque) y los bloques vecinos previamente codificados.
La Fig. 3D es un diagrama que muestra un bloque actual que va a codificarse (en la parte inferior derecha en un macrobloque) y los bloques vecinos previamente codificados.
La Fig. 4A es un diagrama que muestra imágenes de referencia a las que hacen referencia respectivamente... [Seguir leyendo]
Reivindicaciones:
1. Un procedimiento de codificación de vectores de movimiento para generar un vector de movimiento predicho para un bloque actual (A) que va a codificarse y para codificar un diferencial entre un vector de movimiento de un bloque actual (A) y un vector de movimiento predicho, comprendiendo el procedimiento de codificación de vectores de movimiento:
una etapa de asignación para, cuando al menos un bloque entre una pluralidad de bloques codificados (B, C, D) en la vecindad del bloque actual (A) tiene dos vectores de movimiento que hacen referencia a imágenes de referencia en la misma dirección en orden de visualización, asignar un identificador a los vectores de movimiento respectivos de la pluralidad de bloques codificados (B, C, D) ; y
una etapa de generación (S117) para generar el vector de movimiento predicho para cada uno de los vectores de movimiento para el bloque actual (A) en base a los vectores de movimiento con el mismo identificador que el identificador asignado a cada vector de movimiento para el bloque actual (A) , entre los vectores de movimiento para la pluralidad de bloques codificados (B, C, D) , caracterizado porque en la etapa de asignación, el identificador se asigna, bloque a bloque, al vector de movimiento respectivo de los bloques vecinos (B, C, D) según un orden en el que los vectores de movimiento de los bloques vecinos (B, C, D) aparecen como vectores de movimiento codificados en un tren binario.
2. Un aparato de codificación de vectores de movimiento para generar un vector de movimiento predicho para un bloque actual (A) que va a codificarse y para codificar un vector de movimiento del bloque actual (A) usando el vector de movimiento predicho, comprendiendo el aparato de codificación de vectores de movimiento:
una unidad de especificación para especificar bloques vecinos (B, C, D) , ubicados en la vecindad del bloque actual (A) y que ya han sido codificados;
una unidad de asignación para, cuando al menos un bloque entre los bloques vecinos (B, C, D) tiene dos vectores de movimiento que hacen referencia a imágenes de referencia en la misma dirección en orden de visualización, asignar un identificador a los vectores de movimiento respectivos de los bloques vecinos (B, C, D) ;
una unidad de derivación para derivar el vector de movimiento predicho para cada vector de movimiento del bloque actual (A) usando los vectores de movimiento con el mismo identificador que el identificador asignado a cada vector de movimiento del bloque actual (A) entre los vectores de movimiento de los bloques vecinos (B, C, D) ; y
una unidad de codificación (117) para codificar un vector de movimiento diferencial entre el vector de movimiento del bloque actual (A) y el vector de movimiento predicho,
caracterizado porque en la unidad de asignación, el identificador se asigna, bloque a bloque, al vector de movimiento respectivo de los bloques vecinos (B, C, D) siguiendo un orden en el que los vectores de movimiento de los bloques vecinos (B, C, D) aparecen como vectores de movimiento codificados en un tren binario.
3. Un medio de almacenamiento de datos (FD) en el que se encuentra almacenado un programa, usándose el programa para codificar un vector de movimiento de un bloque incluido en una imagen,
en el que el programa hace que un ordenador ejecute la codificación mediante el procedimiento de codificación de vectores de movimiento según la Reivindicación 1.
Patentes similares o relacionadas:
Sistema y método para codificación y decodificación aritmética, del 29 de Abril de 2020, de NTT DOCOMO, INC.: Método de decodificación aritmética para convertir una secuencia de información compuesta por una secuencia de bits en una secuencia de eventos binarios compuesta […]
Filtro de desbloqueo condicionado por el brillo de los píxeles, del 25 de Marzo de 2020, de DOLBY INTERNATIONAL AB: Método para desbloquear datos de píxeles procesados con compresión de vídeo digital basado en bloque, incluyendo los pasos:
- recibir […]
Método para codificar y descodificar imágenes B en modo directo, del 19 de Febrero de 2020, de Godo Kaisha IP Bridge 1: Un método para generar y descodificar una secuencia de bits de una imagen B objetivo, en donde generar la secuencia de bits de la imagen B objetivo incluye las siguientes […]
Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método de compresión de imágenes de video que comprende: proporcionar una secuencia de cuadros referenciables (I, P) y predichos bidireccionales […]
Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método para compresión de imágenes de video usando predicción en modo directo, que incluye: proporcionar una secuencia de cuadros predichos […]
Capa de sectores en códec de vídeo, del 27 de Noviembre de 2019, de Microsoft Technology Licensing, LLC: Un procedimiento de decodificación de vídeo e imágenes, que comprende: decodificar una imagen de un flujo de bits codificado que tiene una jerarquía […]
Transformación solapada condicional, del 20 de Noviembre de 2019, de Microsoft Technology Licensing, LLC: Un método para codificar un flujo de bits de vídeo utilizando una transformación solapada condicional, en donde el método comprende: la señalización de un modo de filtro […]
Técnica para una simulación del grano de película exacta de bits, del 4 de Septiembre de 2019, de InterDigital VC Holdings, Inc: Un procedimiento para simular un grano de película en un bloque de imagen que comprende: calcular el promedio de los valores de luminancia de píxeles dentro del bloque de […]