ES2399675T3 - Procedimiento de codificación de vectores de movimiento - Google Patents

Procedimiento de codificación de vectores de movimiento Download PDF

Info

Publication number
ES2399675T3
ES2399675T3 ES10160084T ES10160084T ES2399675T3 ES 2399675 T3 ES2399675 T3 ES 2399675T3 ES 10160084 T ES10160084 T ES 10160084T ES 10160084 T ES10160084 T ES 10160084T ES 2399675 T3 ES2399675 T3 ES 2399675T3
Authority
ES
Spain
Prior art keywords
motion vector
motion
block
vector
motion vectors
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
ES10160084T
Other languages
English (en)
Inventor
Satoshi Kondo
Shinya Kadono
Makoto Hagai
Kiyofumi Abe
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29272326&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2399675(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Panasonic Corp filed Critical Panasonic Corp
Application granted granted Critical
Publication of ES2399675T3 publication Critical patent/ES2399675T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

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.

Description

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 “Very 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 vectores de movimiento de un bloque actual que va a codificarse y bloques vecinos previamente codificados.
La Fig. 4B es un diagrama que muestra imágenes de referencia a las que hacen referencia respectivamente vectores de movimiento de un bloque actual que va a codificarse y bloques vecinos previamente codificados.
La Fig. 4C es un diagrama que muestra imágenes de referencia a las que hacen referencia respectivamente vectores de movimiento de un bloque actual que va a codificarse y bloques vecinos previamente codificados.
La Fig. 5 es un diagrama que explica la compensación de movimiento en el caso en el que dos imágenes de referencia están ambas ubicadas en un sentido hacia delante.
La Fig. 6 es un diagrama que explica el caso en el que se ajustan a escala los vectores de movimiento.
La Fig. 7 es un diagrama de flujo que muestra un procedimiento de generación del vector predicho en el caso en el que se usan en combinación los procedimientos primero y segundo de generación del vector predicho.
La Fig. 8 es un diagrama que muestra el orden de vectores de movimiento situados en un tren binario.
La Fig. 9 es un diagrama de bloques que muestra la estructura de un aparato de descodificación de imágenes según una segunda forma de realización de la presente invención.
La Fig. 10A es un diagrama que muestra un formato físico de un disco flexible.
La Fig. 10B es un diagrama que muestra un disco flexible, la vista en sección transversal del aspecto del disco flexible y la vista de frente del aspecto del disco flexible.
La Fig. 10C es un diagrama que muestra el aspecto de un aparato para escribir y extraer por lectura un programa en y desde el disco flexible.
La Fig. 11 es un diagrama de bloques que muestra la configuración de conjunto de un sistema de suministro de contenido.
La Fig. 12 es un diagrama que muestra un teléfono móvil que usa un procedimiento de codificación de imágenes en movimiento y un procedimiento de descodificación de imágenes en movimiento.
La Fig. 13 es un diagrama de bloques que muestra la estructura de un teléfono móvil.
La Fig. 14 es un diagrama que muestra un sistema de radiodifusión digital.
La Fig. 15 es un diagrama que muestra relaciones de referencia entre imágenes en la técnica convencional.
La Fig. 16 es un diagrama que muestra bloques vecinos usados para generar un vector predicho.
Mejor forma de llevar a cabo la invención
(Primera forma de realización)
A continuación se explicará la primera forma de realización de la presente invención con referencia a las figuras. La Fig. 1 es un diagrama de bloques del aparato de codificación de imágenes para codificar vectores de movimiento como parte de la codificación de imágenes, que incluye una memoria de cuadros 101, una unidad de cálculo de diferencia 102, una unidad codificadora de error residual 103, una unidad generadora de tren binario 104, una unidad descodificadora de error residual 105, una unidad de suma 106, una memoria de cuadros 107, una unidad detectora de vectores de movimiento 108, una unidad selectora de modo 109, una unidad de control de codificación 110, conmutadores 111 a 115, una unidad de almacenamiento de vectores de movimiento 116 y una unidad codificadora de vectores de movimiento 117.
Las imágenes se introducen en la memoria de cuadros 101 imagen a imagen en el orden de visualización. La Fig. 2A muestra el orden de introducción de imágenes en la memoria de cuadros 101. En la Fig. 2A, las líneas verticales muestran imágenes, y un alfabeto y un número en la parte inferior derecha de cada imagen indican respectivamente un tipo de imagen (P indica una imagen P y B indica una imagen B) y un número de imagen en orden de visualización. Las imágenes introducidas en la memoria de cuadros 101 se reordenan en orden de codificación. Las imágenes se reordenan en orden de codificación sobre la base de las relaciones de referencia en la codificación por predicción interimágenes, es decir, las imágenes se reordenan de modo que las imágenes usadas como imágenes de referencia se codifican anteriormente a las imágenes que hacen referencia a aquellas imágenes de referencia. Por ejemplo, las relaciones de referencia de las imágenes B8 y B9 se muestran mediante flechas en la Fig. 2A. En esta figura, las puntas de flecha indican las imágenes que hacen referencia a imágenes de referencia y los otros extremos de las flechas indican las imágenes de referencia. En este caso, las imágenes mostradas en la Fig. 2A se reordenan en aquéllas que se muestran en la Fig. 2B.
Las imágenes reordenadas en la memoria de cuadros 101 se extraen por lectura a cada macrobloque. En este caso, un macrobloque deberá tener un tamaño de 16 píxeles en horizontal x 16 en vertical y la compensación de movimiento deberá efectuarse a cada bloque (8x8 píxeles de tamaño). Se explicará paso a paso la codificación de la imagen B8.
La imagen B8 es una imagen B y se codifica a cada macrobloque o bloque usando un máximo de dos imágenes de referencia entre cinco imágenes codificadas, imágenes codificadas precedentes P1, P4 y P7 e imágenes codificadas siguientes P10 y P13. Estas imágenes de referencia ya se han codificado y las imágenes descodificadas locales se almacenan en la memoria de cuadros 107.
Para codificar una imagen B, la unidad de control de codificación 110 activa el conmutador 113. Si una imagen B se usa como imagen de referencia para otras imágenes, la unidad de control de codificación 110 controla los conmutadores 114 y 115 de modo que estén activados. Si la imagen B no se usa como imagen de referencia para otras imágenes, éste controla los conmutadores 114 y 115 de modo que estén desactivados. Por lo tanto, los macrobloques de la imagen B8 extraídos por lectura de la memoria de cuadros 101 se aplican en primer lugar a la entrada de la unidad detectora de vectores de movimiento 108, la unidad selectora de modo 109 y la unidad de cálculo de diferencia 102.
La unidad detectora de vectores de movimiento 108 detecta vectores de movimiento hacia delante y vectores de movimiento hacia atrás de cada bloque incluido en un macrobloque, usando los datos de imagen descodificados de las imágenes P1, P4 y P7 como imágenes de referencia hacia delante y los datos de imagen descodificados de las imágenes P10 y P13 como imágenes de referencia hacia atrás, que están almacenadas respectivamente en la memoria de cuadros 107.
La unidad selectora de modo 109 determina el modo de codificación de macrobloques usando los vectores de movimiento detectados por la unidad detectora de vectores de movimiento 108. En este punto, el modo de codificación de macrobloques en una imagen B puede seleccionarse, por ejemplo, de entre codificación intra-imagen, codificación por predicción inter-imágenes usando una imagen de referencia hacia delante, codificación por predicción inter-imágenes usando dos imágenes de referencia hacia delante, codificación por predicción inter-imágenes usando una imagen de referencia hacia atrás, codificación por predicción inter-imágenes usando dos imágenes de referencia hacia atrás y codificación por predicción inter-imágenes usando vectores de movimiento bidireccionales. Cuando se selecciona codificación por predicción inter-imágenes usando dos imágenes de referencia hacia delante, codificación por predicción inter-imágenes usando dos imágenes de referencia hacia atrás o codificación por predicción inter-imágenes usando vectores de movimiento bidireccionales (una referencia hacia delante y una referencia hacia atrás), se usa como bloque de compensación de movimiento el bloque obtenido promediando dos bloques de referencia. Se explicará un ejemplo de este caso con referencia a la Fig. 5. En esta figura, a efectos de compensación de movimiento de un bloque X en la imagen B8 usando como imágenes de referencia hacia delante un bloque Y en la imagen P7 y un bloque Z en la imagen P4, se usa como bloque de compensación de movimiento para el bloque X el bloque promedio de los bloques Y y Z.
El modo de codificación determinado por la unidad selectora de modo 109 se entrega en salida a la unidad generadora de tren binario 104. Los bloques de referencia basados en el modo de codificación determinado por la unidad selectora de modo 109 se entregan en salida a la unidad de cálculo de diferencia 102 y la unidad de suma 106. Si se selecciona la codificación intra-imagen, los bloques de referencia no se envían en salida. Si la unidad selectora de modo 109 selecciona la codificación intra-imagen, el conmutador 111 y el conmutador 112 se controlan de modo que queden respectivamente conectados con “a” y “c" y, si ésta selecciona la codificación por predicción inter-imágenes, el conmutador 111 y el conmutador 112 se controlan de modo que queden respectivamente conectados con “b” y “d”. A continuación se explicará el caso en el que la unidad selectora de modo 109 selecciona la codificación por predicción inter-imágenes.
La unidad de cálculo de diferencia 102 recibe los bloques de referencia desde la unidad selectora de modo 109. La unidad de cálculo de diferencia 102 calcula la diferencia entre el bloque de la imagen B8 y el bloque de referencia (el bloque de compensación de movimiento) y genera el error residual para entregarlo a su salida.
El error residual se aplica a la entrada de la unidad codificadora de error residual 103. La unidad codificadora de error residual 103 efectúa un procesamiento de codificación tal como conversión de frecuencia y cuantificación del error residual aplicado a su entrada y genera así los datos codificados de error residual para entregarlos a su salida. Los datos codificados enviados en salida desde la unidad codificadora de error residual 103 se aplican a la entrada de la unidad generadora de tren binario 104.
Los vectores de movimiento usados en el modo de codificación seleccionado por la unidad selectora de modo 109 se entregan en salida a la unidad de almacenamiento de vectores de movimiento 116 y la unidad codificadora de vectores de movimiento 117.
La unidad de almacenamiento de vectores de movimiento 116 almacena los vectores de movimiento aplicados a su entrada desde la unidad selectora de modo 109. En otras palabras, la unidad de almacenamiento de vectores de movimiento 116 almacena los vectores de movimiento que se han usado para los bloques previamente codificados.
La unidad codificadora de vectores de movimiento 117 codifica los vectores de movimiento aplicados a su entrada desde la unidad selectora de modo 109. Esta operación se explicará con referencia las Figs. 3A a 3D. En estas figuras, los bloques indicados en negrita son macrobloques de 16x16 píxeles y en cada macrobloque hay cuatro bloques de 8x8 píxeles. En las Figs. 3A a 3D, un bloque A es un bloque actual que va a codificarse y el vector de movimiento para el bloque A se codifica sobre la base de la diferencia con respecto al vector predicho obtenido de los vectores de movimiento de los tres bloques codificados vecinos B, C y D. Los vectores de movimiento para los bloques vecinos se obtienen de la unidad de almacenamiento de vectores de movimiento 116.
Con referencia a las Figs. 4A a 4C, se explicarán procedimientos de cálculo de un vector predicho. Estas figuras muestran los vectores de movimiento para los bloques A a D. MV1 y MV2 indican respectivamente el primer vector de movimiento y el segundo vector de movimiento. “Hacia delante” implica un vector de movimiento de referencia hacia delante. Los signos y números entre paréntesis muestran las imágenes de referencia.
Mediante el primer procedimiento, el vector predicho se genera seleccionando solamente, de los vectores de movimiento para los bloques vecinos, los vectores de movimiento que hacen referencia a la misma imagen de referencia que el vector de movimiento del bloque actual. En la Fig. 4A, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es la mediana de MV2 respectiva para los bloques B, C y D. En la Fig. 4B, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es el MV2 para el propio bloque C. En la Fig. 4C, el vector predicho para MV1 para el bloque A es la mediana de MV1 y MV2 para el bloque B, MV1 para el bloque C y MV1 y MV2 para el bloque D, y el vector predicho para MV2 para el bloque A es el MV2 para el propio bloque
C. En este caso, el vector predicho para MV1 para el bloque A puede ser la mediana de tres vectores: el promedio de MV1 y MV2 para el bloque B; MV1 para el bloque C; o el promedio de MV1 y MV2 para el bloque D. El promedio de MV1 y MV2 para el bloque B se redondea a la precisión de los vectores de movimiento (tal como precisión de 2/1 píxeles, precisión de 1/4 de píxel y precisión de 1/8 de píxel). Esta precisión de píxeles se determina a cada bloque, imagen o secuencia. En tal caso, si no existe ningún vector de movimiento para los bloques vecinos que haga referencia a la misma imagen de referencia, el vector predicho puede ser 0. Las medianas se calculan respectivamente para las componentes horizontal y vertical del vector de movimiento.
Mediante el segundo procedimiento, los vectores predichos se crean por separado para MV1 y MV2, con independencia de las imágenes de referencia. En este caso, el orden de MV1 y MV2 en cada bloque se puede determinar por un procedimiento especificado. Por ejemplo, MV1 y MV2 se pueden ordenar en orden decreciente o creciente de distancias temporales desde la imagen actual hasta las imágenes de referencia, vectores hacia delante en primer lugar o vectores hacia atrás en primer lugar, en orden de codificación (en el orden en un tren binario), o similares. Por ejemplo, el orden decreciente o creciente de distancias temporales desde la imagen actual hasta las imágenes de referencia incrementa la probabilidad de que la imagen de referencia para el vector de movimiento del bloque actual esté próxima en el tiempo a la imagen de referencia para el vector de movimiento seleccionado para un vector predicho y, de este modo, puede mejorarse la eficacia de la codificación de vectores de movimiento. Igualmente, el orden de vectores hacia delante en primer lugar y vectores hacia atrás en segundo lugar incrementa la probabilidad de que el vector de movimiento hacia delante del bloque actual se codifique usando el vector predicho generado a partir de los vectores de movimiento hacia delante de los bloques vecinos y el vector de movimiento hacia atrás del bloque actual se codifique usando el vector predicho generado a partir de los vectores de movimiento hacia atrás de los bloques vecinos y, de este modo, puede mejorarse la eficacia de la codificación de vectores de movimiento. Además, el orden de codificación puede simplificar el procedimiento de manejo de los bloques vecinos para generar un vector predicho. En la Fig. 4A, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es la mediana de MV2 respectiva para los bloques B, C y D. Igualmente, en las Figs. 4B y 4C, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es la mediana de MV2 respectiva para los bloques B, C y D. Si las imágenes de referencia de los vectores de movimiento para el bloque A son diferentes de las imágenes de referencia de los vectores de movimiento para los bloques B, C y D que se usan para el vector predicho para el bloque A, los vectores de movimiento para los bloques B, C y D se pueden ajustar a escala. Estos se pueden ajustar a escala basándose en un valor determinado mediante distancia temporal entre imágenes o un valor predeterminado.
Mediante el tercer procedimiento, el vector predicho para MV1 se genera sobre la base de los bloques vecinos utilizables. Si se usa MV1 como vector predicho para MV2, el propio MV1 se puede usar como el vector predicho, o se puede usar el MV1 ajustado a escala. Si se usa el ajustado a escala, es concebible hacer la distancia temporal entre la imagen B8 y la imagen de referencia de MV1 igual a la distancia temporal entre la imagen B8 y la imagen de referencia de MV2. Con referencia a la Fig. 6 se explicará un ejemplo del modo de hacerlas iguales. En la Fig. 6, se parte de la suposición de que el bloque A en la imagen B8 tiene los vectores de movimiento MV1 y MV2 y las imágenes de referencia de MV1 y MV2 son respectivamente las imágenes P7 y P4. En este caso, MV1’ obtenido ajustando MV1 a la escala de la imagen P4 (que es un vector obtenido cuadruplicando las componentes horizontal y vertical de MV1 respectivamente en este ejemplo) se usa como vector predicho para el vector de movimiento MV2. O puede ajustarse a escala usando un valor predeterminado para otro procedimiento. Asimismo, el orden de MV1 y MV2 para cada bloque se puede predeterminar mediante un procedimiento especificado. Por ejemplo, MV1 y MV2 se pueden ordenar en orden decreciente o creciente de distancias temporales desde la imagen actual hasta las imágenes de referencia, vectores hacia delante en primer lugar o vectores hacia atrás en primer lugar, en orden de codificación, o similares.
En los ejemplos anteriores, la totalidad de los bloques B a D tienen vectores de movimiento, pero, si estos bloques se codifican como bloques intra o de modo directo, se puede efectuar para los mismos un procesamiento excepcional. Por ejemplo, si uno de los bloques B a D es un bloque de este tipo, a efectos de codificación se considera que los vectores de movimiento para ese bloque son 0. Si dos de ellos son bloques de este tipo, los vectores de movimiento del bloque restante se usan como vectores predichos. Y si de todos los bloques ninguno tiene vector de movimiento, los vectores de movimiento se codifican partiendo del supuesto de que el vector predicho es 0. También se puede aplicar este tipo de procesamiento.
Al recibir los datos codificados, la unidad generadora de tren binario 104 efectúa una codificación de longitud variable de los datos codificados y añade además la información, tal como los vectores de movimiento codificados aplicados a su entrada desde la unidad de codificación de vectores de movimiento 117, el modo de codificación aplicado a su entrada desde la unidad selectora de modo 109 y la información de la cabecera, a los datos codificados, de manera que genera un tren binario para entregarlo a su salida.
Los macrobloques restantes en la imagen B8 se codifican según el mismo procesamiento.
Según se ha descrito anteriormente, de acuerdo con el procedimiento de codificación de vectores de movimiento de la presente invención, un vector de movimiento para cada bloque actual se codifica usando una diferencia entre el vector predicho, que se obtiene de vectores de movimiento para bloques vecinos previamente codificados, y el vector de movimiento para el bloque actual. Este vector predicho se genera mediante uno de los siguientes procesamientos: cuando el bloque actual y los bloques vecinos tienen respectivamente una pluralidad de vectores de movimiento apuntando a las imágenes de referencia en la misma dirección (hacia delante o hacia atrás), (A) los vectores de movimiento que hacen referencia a la misma imagen se seleccionan de entre los vectores de movimiento para los bloques vecinos, de manera que se genera el vector predicho (basado en los vectores de movimiento seleccionados); (B) los vectores de movimiento para los bloques vecinos respectivos se ordenan en el orden predeterminado y los vectores de movimiento del mismo rango de orden se seleccionan a partir de los vectores de movimiento ordenados, de manera que se genera el vector predicho (basado en los vectores de movimiento seleccionados); (C) el vector predicho para “el segundo vector de movimiento” del bloque actual deberá ser “el primer vector de movimiento” y, si “el segundo vector de movimiento” y “el primer vector de movimiento” hacen referencia a distintas imágenes, “el primer vector de movimiento” se ajusta a escala según la distancia temporal entre las imágenes, de manera que se genera el vector predicho.
Más específicamente, el procedimiento de codificación de vectores de movimiento según la presente invención es un procedimiento de codificación de vectores de movimiento para generar un vector de movimiento para un bloque actual que va a codificarse y un vector predicho para el vector de movimiento, y codificar una diferencia entre el vector de movimiento y el vector predicho, comprendiendo el procedimiento de codificación de vectores de movimiento: una etapa de asignación para, cuando por lo menos un bloque entre una pluralidad de bloques codificados en la vecindad del bloque actual tiene dos vectores de movimiento que hacen referencia a imágenes de referencia en la misma dirección en un orden de visualización, asignar IDs (identificadores) a dos vectores de movimiento para uno respectivo de la pluralidad de bloques codificados; y una etapa de generación para generar el vector predicho para cada uno de los vectores de movimiento para el bloque actual sobre la base de los vectores de movimiento con el mismo ID entre los vectores de movimiento para la pluralidad de bloques codificados. En este punto, en la etapa de asignación y la etapa de generación anteriormente mencionadas, puede ejecutarse lo siguiente (a) y (b):
(a)
en la etapa de asignación, los IDs se asignan además a los vectores de movimiento para el bloque actual y, en la etapa de generación, el vector predicho para cada uno de los vectores de movimiento para el bloque actual se genera sobre la base de los vectores de movimiento con el mismo ID que el ID asignado al vector de movimiento para el bloque actual entre los vectores de movimiento para la pluralidad de bloques codificados.
(b)
en la etapa de asignación, los IDs se asignan además a los vectores de movimiento para el bloque actual y la etapa de generación incluye: una sub-etapa de generación para generar un vector predicho candidato por cada ID sobre la base de los vectores de movimiento con el mismo ID entre los vectores de movimiento para la pluralidad de bloques codificados; y una sub-etapa de asociación para asociar el vector predicho candidato con cada dicho ID para el vector de movimiento para el bloque actual.
En consecuencia, incluso cuando un bloque vecino tiene una pluralidad de vectores de movimiento apuntando en la misma dirección (hacia delante o hacia atrás), el procedimiento para codificar los vectores de movimiento puede unificarse, y puede mejorarse la eficacia de codificación de los vectores de movimiento.
En la presente forma de realización, un macrobloque es de 16 píxeles en horizontal x 16 en vertical, la compensación de movimiento se efectúa a cada bloque de 8x8 píxeles y el error residual se codifica a cada 8 píxeles en horizontal por 8 en vertical, pero también se puede aplicar cualquier otro número de píxeles.
Además, en la presente forma de realización, un vector de movimiento de un bloque actual se codifica usando como vector predicho la mediana de los vectores de movimiento de los tres bloques vecinos previamente codificados, pero el número de bloques vecinos puede ser cualquier otro número y el vector predicho se puede determinar mediante cualesquiera otros procedimientos. Por ejemplo, se pueden usar para un vector predicho los vectores de movimiento para el bloque inmediatamente a la izquierda del bloque actual.
En la presente forma de realización, se ha explicado, con referencia a la Fig. 3, la ubicación del bloque vecino previamente codificado con fines de codificación de vectores de movimiento, pero se pueden aplicar cualesquiera otras ubicaciones.
Por ejemplo, si se mezclan los bloques de 8x8 píxeles de la presente forma de realización y bloques de cualesquiera otros tamaños, se pueden usar para el bloque actual A los siguientes bloques vecinos codificados B, C y D. Específicamente, se puede determinar que el bloque B sea un bloque que contiene un píxel a la izquierda del píxel superior izquierdo en el bloque A; el bloque C sea un bloque que contiene un píxel justo por encima del píxel superior izquierdo en el bloque A; y el bloque D sea un bloque que contiene un píxel por encima y a la derecha del píxel superior derecho en el bloque A.
En la presente forma de realización, el vector de movimiento se codifica calculando la diferencia entre el vector de movimiento de un bloque actual y el vector predicho obtenido de los vectores de movimiento para los bloques vecinos, pero puede codificarse por otros procedimientos que el cálculo de la diferencia.
Asimismo, en la presente forma de realización se han explicado respectivamente los procedimientos primero, segundo y tercero de generación del vector predicho para codificación de vectores de movimiento, pero estos procedimientos se pueden usar en combinación.
Con referencia a la Fig. 7, se explicará un ejemplo del procedimiento combinado. La Fig. 7 es un diagrama de flujo que muestra el caso en el que se combinan los procedimientos primero y segundo de generación del vector predicho y, más específicamente, el procesamiento de generación de un vector predicho en el caso en el que un bloque A en las Figs. 3A a 3D es un bloque actual y dos vectores de movimiento de cada bloque vecino B a D apuntan a los bloques de referencia en la misma dirección (hacia delante o hacia atrás). En esta figura, las Etapas S115 a S118 corresponden al primer procedimiento de generación del vector predicho anteriormente mencionado. Y las Etapas S111 a S114 corresponden a una parte de determinación del orden de los bloques vecinos para el segundo procedimiento.
Un orden predeterminado en S112 puede ser el orden decreciente o creciente de distancias temporales desde la imagen actual hasta la imagen de referencia, orden de codificación o similares. En este punto, el orden de codificación es el orden en un tren binario, según se muestra en la Fig. 8. La Fig. 8 muestra datos de imagen correspondientes a una imagen en un tren binario. Los datos de imagen incluyen una cabecera y datos codificados de bloques respectivos. Los vectores de movimiento van situados en los datos codificados de los bloques. En esta figura, los vectores de movimiento para los bloques B y C van situados en orden de codificación.
En S113, los vectores de movimiento en el orden predeterminado se clasifican MV1 y MV2 según sus rangos de orden. Esta clasificación de los vectores de movimiento para los bloques vecinos permite un procesamiento más simplificado. Si no se clasifican los vectores de movimiento, es necesario calcular la mediana de un máximo de 6 vectores de movimiento (2 vectores de movimiento x 3 bloques vecinos).
Más específicamente, en el procesamiento del Bucle 1, se ordenan en primer lugar dos vectores de movimiento para el bloque vecino B en el orden anteriormente predeterminado (S112) y se les asignan IDs (por ejemplo 0 y 1, 1 y 2, MV1 y MV2 o similares) en este orden (S113). Los IDs (por ejemplo 0 y 1, 1 y 2, MV1 y MV2 o similares) también se asignan respectivamente a los vectores de movimiento para los bloques vecinos C y D del mismo modo. En este momento, también se asignan los IDs a los dos vectores de movimiento para el bloque actual A del mismo modo.
A continuación, en el procesamiento del Bucle 2, los vectores de movimiento con el mismo ID (por ejemplo, 0 ó 1) se seleccionan en primer lugar de entre los vectores de movimiento para los bloques vecinos B a D (S116) y la mediana de los vectores de movimiento seleccionados se considera como un vector predicho para el bloque actual A (S117). El vector predicho para otro vector de movimiento también se obtiene del mismo modo.
Nótese que, en el Bucle 2, las dos medianas anteriormente mencionadas se pueden calcular como vectores predichos candidatos, con independencia de los IDs de los vectores de movimiento para el bloque A, de manera que se selecciona uno cualquiera de los vectores candidatos (o se asocia con él) para cada ID del vector de movimiento para el bloque A. Igualmente, en el Bucle 1, no es necesario asignar los IDs al generar los vectores predichos para el bloque A, sino que se pueden asignar al detectar los vectores de movimiento para los bloques vecinos B, C y D. Los IDs asignados así como los vectores de movimiento se almacenan en la unidad de almacenamiento de vectores de movimiento 116.
Para usar conjuntamente los procedimientos segundo y tercero de generación del vector predicho, puede ejecutarse el tercer procedimiento de generación del vector predicho en lugar de S115 a S118 en la Fig. 7.
En la presente forma de realización, se genera un vector predicho para codificar un vector de movimiento partiendo del supuesto de que un bloque actual solamente tiene vectores de movimiento de referencia hacia delante, pero el vector predicho puede generarse del mismo modo incluso si el bloque actual tiene un vector de movimiento de referencia hacia atrás.
Además, en la presente forma de realización, se genera un vector predicho para codificar un vector de movimiento partiendo del supuesto de que todos los bloques vecinos tienen respectivamente dos vectores de movimiento. Sin embargo, incluso si un bloque vecino tiene un solo vector de movimiento, el vector de movimiento puede tratarse como un primer o un segundo vector de movimiento.
Asimismo, en la presente forma de realización se ha explicado el caso en el que el número máximo de imágenes de referencia es 2, pero éste puede ser 3 o más.
Existen asimismo los siguientes procedimientos de almacenamiento y manejo de vectores de movimiento en la unidad de almacenamiento de vectores de movimiento 116 de la presente forma de realización: (1) los vectores de movimiento para bloques vecinos y el orden de los mismos (IDs que indican si son los primeros vectores de movimiento o los segundos vectores de movimiento) se almacenan de manera que se adquiere el primer o el segundo vector de movimiento para cada bloque vecino a partir de la unidad de almacenamiento de vectores de movimiento 116 usando los IDs; y (2) las ubicaciones para almacenar el primer vector de movimiento y el segundo vector de movimiento para cada bloque vecino están predeterminadas, de manera que se adquiere el primer o el segundo vector de movimiento para el bloque vecino a partir de la unidad de almacenamiento de vectores de movimiento 116 mediante acceso a las posiciones de almacenamiento de los mismos.
(Segunda forma de realización)
A continuación se describirá la segunda forma de realización de la presente invención con referencia a la Fig. 9. La Fig. 9 es un diagrama de bloques del aparato de descodificación de imágenes para descodificar vectores de movimiento como parte de la descodificación de imagen, que incluye una unidad analizadora de tren binario 701, una unidad descodificadora de error residual 702, una unidad descodificadora de modos 703, una unidad descodificadora de compensación de movimiento 705, una unidad de almacenamiento de vectores de movimiento 706, una memoria de cuadros 707, una unidad de suma 708, conmutadores 709 y 710 y una unidad descodificadora de vectores de movimiento 711.
El orden de entrada de imágenes en el tren binario es igual que el mostrado en la Fig. 2B. A continuación se explicará paso a paso el procesamiento de descodificación de la imagen B8. El tren binario de la imagen B8 se aplica a la entrada de la unidad analizadora de tren binario 701. La unidad analizadora de tren binario 701 extrae varios tipos de datos del tren binario aplicado a su entrada. En este punto, los varios tipos de datos incluyen información de selección del modo e información de vectores de movimiento. La información de selección del modo extraída se entrega en salida a la unidad descodificadora de modos 703. La información de vectores de movimiento extraída se entrega en salida a la unidad descodificadora de vectores de movimiento 711. Los datos codificados de error residual se entregan en salida a la unidad descodificadora de error residual 702.
La unidad descodificadora de modos 703 controla el conmutador 709 y el conmutador 710 basándose en la información de selección del modo extraída del tren binario. Si la selección del modo es codificación intra-imagen, ésta controla el conmutador 709 y el conmutador 710 de modo que estén respectivamente conectados con “a” y “c". Si la selección del modo es codificación por predicción inter-imágenes, ésta controla el conmutador 709 y el conmutador 710 de modo que estén respectivamente conectados con “b” y “d”.
La unidad descodificadora de modos 703 también entrega en salida la información de selección del modo a la unidad descodificadora de compensación de movimiento 705 y la unidad descodificadora de vectores de movimiento 711. A continuación se explicará el caso en el que la selección del modo es codificación por predicción inter-imágenes.
La unidad descodificadora de error residual 702 descodifica los datos codificados de error residual aplicados a su entrada para generar errores residuales. Los errores residuales generados se entregan en salida al conmutador 709. Puesto que en este punto el conmutador 709 está conectado con “b”, los errores residuales se entregan en salida a la unidad de suma 708.
La unidad descodificadora de vectores de movimiento 711 efectúa un procesamiento de descodificación de los vectores de movimiento codificados que se aplican a su entrada desde la unidad analizadora de tren binario 701. Los vectores de movimiento codificados se descodifican usando los vectores de movimiento de los bloques vecinos previamente descodificados. Esta operación se explicará con referencia las Figs. 3A a 3D. El vector de movimiento codificado (MV) para el bloque actual A que va a descodificarse se calcula sumando el vector predicho obtenido de los vectores de movimiento de los tres bloques vecinos previamente descodificados B, C y D y el vector de movimiento codificado. Los vectores de movimiento de los bloques vecinos se obtienen de la unidad de almacenamiento de vectores de movimiento
706.
Con referencia a las Figs. 4A a 4C, se explicarán procedimientos de cálculo de un vector predicho. Estas figuras muestran los vectores de movimiento para los bloques A a D. MV1 y MV2 indican respectivamente los primeros vectores de movimiento y los segundos vectores de movimiento. “Hacia delante” implica un vector de movimiento de referencia hacia delante. Los signos y números entre paréntesis muestran las imágenes de referencia.
Mediante el primer procedimiento, el vector predicho se genera seleccionando solamente, de los vectores de movimiento para los bloques vecinos, los vectores de movimiento que hacen referencia a la misma imagen de referencia que el vector de movimiento para el bloque actual. En la Fig. 4A, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es la mediana de MV2 respectiva para los bloques B, C y D. En la Fig. 4B, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es el MV2 para el propio bloque C. En la Fig. 4C, el vector predicho para MV1 para el bloque A es la mediana de MV1 y MV2 para el bloque B, MV1 para el bloque C y MV1 y MV2 para el bloque D, y el vector predicho para MV2 para el bloque A es el MV2 para el propio bloque
C. En este caso, el vector predicho para MV1 para el bloque A puede ser la mediana de tres vectores: el promedio de MV1 y MV2 para el bloque B; MV1 para el bloque C; o el promedio de MV1 y MV2 para el bloque D. El promedio de MV1 y MV2 para el bloque B se redondea a la precisión de los vectores de movimiento (tal como precisión de 2/1 píxeles, precisión de 1/4 de píxel y precisión de 1/8 de píxel). Esta precisión de píxeles se determina a cada bloque, imagen o secuencia. En tal caso, si no existe ningún vector de movimiento para los bloques vecinos que haga referencia a la misma imagen de referencia, el vector predicho puede ser 0. Las medianas se calculan respectivamente para las componentes horizontal y vertical del vector de movimiento.
Mediante el segundo procedimiento, los vectores predichos se crean por separado para MV1 y MV2, con independencia de las imágenes de referencia. En este caso, el orden de MV1 y MV2 en cada bloque se puede determinar por un procedimiento especificado. Por ejemplo, MV1 y MV2 se pueden ordenar en orden decreciente o creciente de distancias temporales desde la imagen actual hasta las imágenes de referencia, vectores hacia delante en primer lugar o vectores hacia atrás en primer lugar, en orden de descodificación (en el orden en un tren binario), o similares. En la Fig. 4A, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es la mediana de MV2 respectiva para los bloques B, C y D. Igualmente, en las Figs. 4B y 4C, el vector predicho para MV1 para el bloque A es la mediana de MV1 respectiva para los bloques B, C y D, y el vector predicho para MV2 para el bloque A es la mediana de MV2 respectiva para los bloques B, C y D. Si las imágenes de referencia de los vectores de movimiento para el bloque A son diferentes de las imágenes de referencia de los vectores de movimiento para los bloques B, C y D que se usan para el vector predicho para el bloque A, los vectores de movimiento para los bloques B, C y D se pueden ajustar a escala. Estos se pueden ajustar a escala basándose en un valor determinado mediante distancia temporal entre imágenes o un valor predeterminado.
Mediante el tercer procedimiento, el vector predicho para MV1 se genera sobre la base de los bloques vecinos utilizables. Si se usa MV1 como vector predicho para MV2, el propio MV1 se puede usar como el vector predicho, o se puede usar el MV1 ajustado a escala. Si se usa el ajustado a escala, es concebible hacer la distancia temporal entre la imagen B8 y la imagen de referencia de MV1 igual a la distancia temporal entre la imagen B8 y la imagen de referencia de MV2. Con referencia a la Fig. 6 se explicará un ejemplo del modo de hacerlas iguales. En la Fig. 6, se parte de la suposición de que el bloque A en la imagen B8 tiene los vectores de movimiento MV1 y MV2 y las imágenes de referencia de MV1 y MV2 son respectivamente las imágenes P7 y P4. En este caso, MV1’ obtenido ajustando MV1 a la escala de la imagen P4 (que es un vector obtenido cuadruplicando las componentes horizontal y vertical de MV1 respectivamente en este ejemplo) se usa como vector predicho para el vector de movimiento MV2. O puede ajustarse a escala usando un valor predeterminado para otro procedimiento. Asimismo, el orden de MV1 y MV2 para cada bloque se puede predeterminar mediante un procedimiento especificado. Por ejemplo, MV1 y MV2 se pueden ordenar en orden decreciente o creciente de distancias temporales desde la imagen actual hasta las imágenes de referencia, vectores hacia delante en primer lugar o vectores hacia atrás en primer lugar, en orden de descodificación, o similares.
En el ejemplo anterior, la totalidad de los bloques B a D tienen vectores de movimiento, pero, si estos bloques se codifican como bloques intra o de modo directo, se puede efectuar para los mismos un procesamiento excepcional. Por ejemplo, si uno de los bloques B a D es un bloque de este tipo, a efectos de descodificación se considera que los vectores de movimiento para ese bloque son 0. Si dos de ellos son bloques de este tipo, los vectores de movimiento del bloque restante se usan como vectores predichos. Y si de todos los bloques ninguno tiene vector de movimiento, los vectores de movimiento se descodifican partiendo del supuesto de que el vector predicho es 0. También se puede aplicar este tipo de procesamiento.
Los vectores de movimiento descodificados se entregan en salida a la unidad descodificadora de compensación de movimiento 705 y la unidad de almacenamiento de vectores de movimiento 706.
La unidad descodificadora de compensación de movimiento 705 adquiere los bloques de compensación de movimiento a partir de la memoria de cuadros 707 basándose en los vectores de movimiento aplicados a su entrada. Los bloques de compensación de movimiento generados según se ha mencionado anteriormente se entregan en salida a la unidad de suma 708.
La unidad de almacenamiento de vectores de movimiento 706 almacena los vectores de movimiento introducidos. Específicamente, la unidad de almacenamiento de vectores de movimiento 706 almacena los vectores de movimiento para los bloques descodificados.
La unidad de suma 708 suma los errores residuales aplicados a su entrada y los bloques de compensación de movimiento para generar bloques descodificados. Los bloques descodificados generados se entregan en salida a la memoria de cuadros 707 a través del conmutador 710.
Los macrobloques en la imagen B8 se descodifican en secuencia según la manera que se ha mencionado anteriormente.
Según se ha descrito anteriormente, de acuerdo con el procedimiento de descodificación de vectores de movimiento de la presente invención, un vector de movimiento para cada bloque actual se descodifica sumando un vector predicho, que se obtiene de vectores de movimiento para bloques vecinos previamente descodificados, y el vector de movimiento codificado para el bloque actual. Este vector predicho se genera mediante uno de los siguientes procesamientos: cuando el bloque actual y los bloques vecinos tienen respectivamente una pluralidad de vectores de movimiento apuntando a las imágenes de referencia en la misma dirección (hacia delante o hacia atrás), (A) los vectores de movimiento que hacen referencia a la misma imagen se seleccionan de entre los vectores de movimiento para los bloques vecinos, de manera que se genera el vector predicho (basado en los vectores de movimiento seleccionados); (B) los vectores de movimiento para los bloques vecinos respectivos se ordenan en el orden predeterminado y los vectores de movimiento del mismo rango de orden se seleccionan a partir de los vectores de movimiento ordenados, de manera que se genera el vector predicho (basado en los vectores de movimiento seleccionados); (C) el vector predicho para “el segundo vector de movimiento” del bloque actual deberá ser “el primer vector de movimiento” y, si “el segundo vector de movimiento” y “el primer vector de movimiento” hacen referencia a distintas imágenes, “el primer vector de movimiento” se ajusta a escala según la distancia temporal entre las imágenes, de manera que se genera el vector predicho.
Más específicamente, el procedimiento de descodificación de vectores de movimiento según la presente invención es un procedimiento de descodificación de vectores de movimiento para generar un vector predicho para un bloque actual que va a descodificarse y descodificar un vector de movimiento codificado, usando el vector predicho, comprendiendo el procedimiento de descodificación de vectores de movimiento: una etapa de asignación para, cuando por lo menos un bloque entre una pluralidad de bloques descodificados en la vecindad del bloque actual tiene vectores de movimiento que hacen referencia a imágenes de referencia en la misma dirección en un orden de visualización, asignar IDs a vectores de movimiento para uno respectivo de la pluralidad de bloques descodificados; y una etapa de generación para generar el vector predicho para cada uno de los vectores de movimiento para el bloque actual sobre la base de los vectores de movimiento con el mismo ID entre los vectores de movimiento para la pluralidad de bloques descodificados. En este punto, en la etapa de generación anteriormente mencionada, puede ejecutarse lo siguiente (a) y (b):
(a)
en la etapa de generación, el vector predicho se genera sobre la base de los vectores de movimiento para la pluralidad de bloques descodificados con el mismo ID que el ID asignado al vector de movimiento para el bloque actual.
(b)
en la etapa de generación, el vector predicho se genera asociando un vector predicho candidato generado por cada ID para los vectores de movimiento con el mismo ID entre los vectores de movimiento para la pluralidad de bloques descodificados con el ID para el vector de movimiento para el bloque actual. Los vectores de movimiento para el bloque descodificado se distinguen basándose en uno de los órdenes decreciente y creciente de distancias temporales en el orden de visualización desde una imagen que incluye el bloque actual hasta las imágenes de referencia a las que los vectores de movimiento hacen referencia.
En consecuencia, los vectores de movimiento que se codifican en el procedimiento según se muestra en la primera forma de realización pueden descodificarse correctamente.
En la presente forma de realización, un vector de movimiento de un bloque actual se descodifica usando como vector predicho la mediana de los vectores de movimiento de los tres bloques vecinos previamente descodificados, pero el número de bloques vecinos puede ser cualquier otro número y el vector predicho se puede determinar mediante cualesquiera otros procedimientos. Por ejemplo, se pueden usar para un vector predicho los vectores de movimiento para el bloque inmediatamente a la izquierda del bloque actual.
Por ejemplo, si se mezclan los bloques de 8x8 píxeles de la presente forma de realización y bloques de cualesquiera otros tamaños, se pueden usar para el bloque actual A los siguientes bloques vecinos descodificados B, C y D. Específicamente, se puede determinar que el bloque B sea un bloque que contiene un píxel a la izquierda del píxel superior izquierdo en el bloque A; el bloque C sea un bloque que contiene un píxel justo por encima del píxel superior izquierdo en el bloque A; y el bloque D sea un bloque que contiene un píxel por encima y a la derecha del píxel superior derecho en el bloque A.
En la presente forma de realización, se han explicado, con referencia a la Figs. 3A a 3D, las ubicaciones de los bloques vecinos previamente descodificados con fines de descodificación de vectores de movimiento, pero se pueden aplicar cualesquiera otras ubicaciones.
En la presente forma de realización, el vector de movimiento se descodifica sumando el vector de movimiento de un bloque actual y el vector predicho obtenido de los vectores de movimiento para los bloques vecinos, pero puede descodificarse por otros procedimientos que la suma.
Asimismo, en la presente forma de realización se han explicado respectivamente los procedimientos primero, segundo y tercero de generación del vector predicho para descodificación de vectores de movimiento, pero estos procedimientos se pueden usar en combinación.
Por ejemplo, si se combinan los procedimientos primero y segundo de generación del vector predicho, el vector predicho puede generarse según el flujo que se muestra en la Fig. 7. Si se combinan los procedimientos segundo y tercero de generación del vector predicho, el tercer procedimiento puede ejecutarse en lugar de S115 a S118 en la Fig. 7.
En la presente forma de realización, se genera un vector predicho para descodificar vectores de movimiento partiendo del supuesto de que un bloque actual solamente tiene vectores de movimiento de referencia hacia delante, pero el vector predicho puede generarse del mismo modo incluso si el bloque actual tiene un vector de movimiento de referencia hacia atrás.
En la presente forma de realización se ha explicado el caso en el que el número máximo de imágenes de referencia es 2, pero éste puede ser 3 o más.
Existen además los siguientes procedimientos de almacenamiento y manejo de vectores de movimiento en la unidad de almacenamiento de vectores de movimiento 706 de la presente forma de realización: (1) los vectores de movimiento para bloques vecinos y el orden de los mismos (IDs que indican si son los primeros vectores de movimiento o los segundos vectores de movimiento) se almacenan de manera que se adquiere el primer o el segundo vector de movimiento para cada bloque vecino a partir de la unidad de almacenamiento de vectores de movimiento 706 usando los IDs; y (2) las ubicaciones para almacenar el primer vector de movimiento y el segundo vector de movimiento para cada bloque vecino están predeterminadas, de manera que se adquiere el primer o el segundo vector de movimiento para el bloque vecino a partir de la unidad de almacenamiento de vectores de movimiento 706 mediante acceso a las posiciones de almacenamiento de los mismos.
Asimismo, si el programa para realizar la estructura del procedimiento de codificación de vectores de movimiento, el procedimiento de codificación de imágenes que incluye el procedimiento de codificación de vectores de movimiento, el procedimiento de descodificación de vectores de movimiento, o el procedimiento de descodificación de imágenes que incluye el procedimiento de descodificación de vectores de movimiento, según se muestra en las formas de realización primera y segunda, se graba en un soporte de almacenamiento tal como un disco flexible, resulta posible efectuar con facilidad el procesamiento según se muestra en estas formas de realización en un sistema informático independiente.
Las Figs. 10A, 10B y 10C son ilustraciones que muestran el caso en el que el procesamiento se efectúa en un sistema informático usando un disco flexible que almacena el programa anteriormente mencionado.
La Fig. 10B muestra un disco flexible y la vista de frente así como la vista en sección transversal del aspecto del disco flexible, y la Fig. 10A muestra un ejemplo de un formato físico de un disco flexible como soporte de almacenamiento en sí. Un disco flexible FD está contenido en una envoltura F, una pluralidad de pistas Tr van formadas concéntricamente sobre la superficie del disco en dirección al radio partiendo de la periferia, y cada pista se divide en 16 sectores Se en dirección angular. Por lo tanto, en cuanto al disco flexible que almacena el programa anteriormente mencionado, el procedimiento de codificación de imágenes en calidad de programa se graba en un área que se le asigna en el disco flexible FD.
La Fig. 10C muestra la estructura para escribir y leer el programa en el disco flexible FD. Cuando se graba el programa en el disco flexible FD, el sistema informático Cs escribe el procedimiento de codificación de imágenes o el procedimiento de descodificación de imágenes como programa en el disco flexible FD a través de una unidad de disco flexible. Para construir el procedimiento de codificación de imágenes en el sistema informático mediante el programa grabado en el disco flexible, el programa se extrae por lectura del disco flexible a través de la unidad de disco flexible y se transfiere al sistema informático.
La explicación anterior se formula partiendo del supuesto de que un soporte de almacenamiento es un disco flexible; sin embargo, puede efectuarse el mismo procesamiento usando un disco óptico. Asimismo, el soporte de almacenamiento no queda limitado a un disco flexible y un disco óptico, sino que pueden usarse cualesquiera soportes, tales como una tarjeta CI y una casete ROM, si puede grabarse en ellos un programa.
La Fig. 11 a la Fig. 14 son ilustraciones de los aparatos para efectuar el procesamiento de codificación o descodificación, según se muestra en las formas de realización primera y segunda, y el sistema que los usa.
La Fig. 11 es un diagrama de bloques que muestra la configuración de conjunto de un sistema de suministro de contenido ex100 para realizar un servicio de distribución de contenido. El área destinada a proporcionar un servicio de comunicaciones se divide en células del tamaño que se desee y en células respectivas están situadas unas estaciones móviles ex107 a ex110, que son estaciones inalámbricas fijas.
Este sistema de suministro de contenido ex100 está conectado con aparatos, tales como un ordenador ex111, un PDA (asistente digital personal) ex112, una cámara fotográfica ex113, un teléfono móvil ex114 y un teléfono móvil equipado con cámara fotográfica ex115, a través de Internet ex101, un proveedor de servicios Internet ex102, una red telefónica ex104 y estaciones móviles ex107 a ex110.
Sin embargo, el sistema de suministro de contenido ex100 no queda limitado a la configuración según se muestra en la Fig. 11, y se puede conectar con una combinación de cualesquiera de ellos. Igualmente, cada aparato se puede conectar directamente a la red telefónica ex104, sin ser a través de las estaciones móviles ex107 a ex110.
La cámara fotográfica ex113 es un aparato tal como una cámara de vídeo digital capaz de tomar fotografías de imágenes en movimiento. El teléfono móvil puede ser un teléfono móvil de un sistema PDC (comunicación digital personal), un sistema AMDC (acceso múltiple por división de código), un sistema AMDC-BA (acceso múltiple por división de código de banda ancha) o un sistema GSM (sistema global de comunicaciones móviles), un PHS (sistema de teléfonos portátiles personales) o similares.
Con la cámara fotográfica ex113 está conectado un servidor de flujo continuo ex103 a través de la red telefónica ex104 y la estación móvil ex109, que permite la distribución en directo o similares usando la cámara fotográfica ex113 basada en los datos codificados transmitidos por parte del usuario. Los datos tomados por la cámara fotográfica puede codificarlos bien la cámara fotográfica ex113, o bien el servidor, con objeto de transmitir los datos. Igualmente, los datos de imágenes en movimiento tomados por una cámara fotográfica ex116 se pueden transmitir al servidor de flujo continuo ex103 a través del ordenador ex111. La cámara fotográfica ex116 es un aparato tal como una cámara fotográfica digital capaz de tomar fotografías de imágenes fijas e imágenes en movimiento. Los datos de imágenes en movimiento puede codificarlos bien la cámara fotográfica ex116, o bien el ordenador ex111. Un LSI (circuito integrado en gran escala) ex117 incluido en el ordenador ex111 o la cámara fotográfica ex116 efectúa en realidad el procesamiento de codificación. Un soporte lógico para codificar y descodificar imágenes puede ir integrado en cualquier tipo de soporte de almacenamiento (tal como un CD-ROM, un disco flexible y un disco duro) que es legible por el ordenador ex111 o similares. Asimismo, el teléfono móvil equipado con cámara fotográfica ex115 puede transmitir los datos de imágenes en movimiento. Estos datos de imágenes en movimiento son los datos codificados por el LSI incluido en el teléfono móvil ex115.
En el sistema de suministro de contenido ex100, el contenido (tal como un vídeo musical en directo) tomado por usuarios usando la cámara fotográfica ex113, la cámara fotográfica ex116 o similares se codifica del mismo modo que en la primera forma de realización y se transmite al servidor de flujo continuo ex103, mientras que el servidor de flujo continuo ex103 realiza una distribución continua de los datos de contenido a los clientes, a petición de los mismos. Los clientes incluyen el ordenador ex111, el PDA ex112, la cámara fotográfica ex113, el teléfono móvil ex114 y así sucesivamente, capaces de descodificar los datos codificados anteriormente mencionados. De este modo, en el sistema de suministro de contenido ex100, los clientes pueden recibir y reproducir los datos codificados y además pueden recibir, descodificar y reproducir los datos en tiempo real, de manera que lleven a cabo una difusión personal.
Cuando cada aparato del sistema efectúa la codificación o descodificación, puede usarse el aparato de codificación de imágenes en movimiento o el aparato de descodificación de imágenes en movimiento, según se muestra en la primera o la segunda formas de realización anteriormente mencionadas.
Se explicará como ejemplo un teléfono móvil.
La Fig. 12 es un diagrama que muestra el teléfono móvil ex115 realizado usando el procedimiento de codificación de imágenes en movimiento y el procedimiento de descodificación de imágenes en movimiento explicados en las formas de realización primera y segunda. El teléfono móvil ex115 tiene una antena ex201 para enviar y recibir ondas radioeléctricas entre la estación móvil ex110, una unidad de cámara fotográfica ex203, tal como una cámara CCD capaz de tomar fotografías de imágenes en movimiento y fijas, una unidad de visualización ex202, tal como una pantalla de cristal líquido para visualizar los datos obtenidos mediante descodificación de imágenes y similares, tomadas por la unidad de cámara fotográfica ex203 o recibidas por la antena ex201, un cuerpo principal que incluye un conjunto de teclas de función ex204, una unidad de salida de voz ex208, tal como un altavoz para entregar voces a su salida, una unidad de entrada de voz 205, tal como un micrófono para aplicar voces a su entrada, un soporte de almacenamiento ex207 para almacenar datos codificados o descodificados, tales como datos de imágenes en movimiento o fijas tomadas por la cámara fotográfica y datos de imágenes en movimiento o fijas de correos electrónicos recibidos, y una unidad de ranura ex206 para acoplar el soporte de almacenamiento ex207 en el teléfono móvil ex115. El soporte de almacenamiento ex207 incluye un elemento de memoria flash, un tipo de EEPROM (memoria de sólo lectura programable y eléctricamente borrable), que es una memoria no volátil eléctricamente borrable y reescribible, en una envuelta de plástico, tal como una tarjeta SD (de memoria flash).
A continuación se explicará el teléfono móvil ex115 con referencia a la Fig. 13. En el teléfono móvil ex115, una unidad principal de control ex311 para controlar en conjunto cada unidad del cuerpo principal, incluyendo la unidad de visualización ex202 y las teclas de función ex204, está conectada mutuamente con una unidad de circuito de fuente de alimentación ex310, una unidad de control de entrada de operaciones ex304, una unidad de codificación de imágenes ex312, una unidad de interfaz de cámara fotográfica ex303, una unidad de control de LCD (visualizador de cristal líquido) ex302, una unidad de descodificación de imágenes ex309, una unidad de multiplexación-demultiplexación ex308, una unidad de lectura-escritura ex307, una unidad de circuito módem ex306 y una unidad de tratamiento de la voz ex305, a través de un bus síncrono ex313.
Cuando se activa una tecla de fin de llamada o una tecla de encendido mediante la operación de un usuario, la unidad de circuito de fuente de alimentación ex310 alimenta las unidades respectivas de energía procedente de un paquete de baterías, de manera que se activa el teléfono móvil digital equipado con cámara fotográfica ex115 para un estado listo.
En el teléfono móvil ex115, la unidad de tratamiento de la voz ex305 convierte las señales de voz, recibidas por la unidad de entrada de voz ex205 en modo de conversación, en datos digitales de voz bajo el control de la unidad principal de control ex311, que incluye una UCP, una ROM y una RAM; la unidad de circuito módem ex306 efectúa un procesamiento de ensanchamiento del espectro de los datos digitales de voz, y la unidad de circuito de emisiónrecepción ex301 efectúa una conversión de digital en analógico y una conversión de frecuencia de los datos, de manera que los transmite a través de la antena ex201. Igualmente, en el teléfono móvil ex115, la unidad de circuito de emisiónrecepción ex301 amplifica los datos recibidos por la antena ex201 en modo de conversación y efectúa una conversión de frecuencia y una conversión de analógico en digital de los datos; la unidad de circuito módem ex306 efectúa un procesamiento inverso de ensanchamiento del espectro de los datos y la unidad de tratamiento de la voz ex305 convierte a ésta en datos analógicos de voz, de manera que los envía en salida a través de la unidad de salida de voz ex208.
Asimismo, al transmitir un correo electrónico en modo de transmisión de datos, los datos textuales del correo electrónico, introducidos accionando las teclas de función ex204 sobre el cuerpo principal, se emiten a la unidad principal de control ex311 a través de la unidad de control de entrada de operaciones ex304. En la unidad principal de control ex311, después de efectuar la unidad de circuito módem ex306 un procesamiento de ensanchamiento del espectro de los datos textuales y de efectuar la unidad de circuito de emisión-recepción ex301 una conversión de digital en analógico y una conversión de frecuencia de estos, los datos se transmiten a la estación móvil ex110 a través de la antena ex201.
Cuando se transmiten datos de imagen en modo de transmisión de datos, los datos de imagen tomados por la unidad de cámara fotográfica ex203 se suministran a la unidad de codificación de imágenes ex312 a través de la unidad de interfaz de cámara fotográfica ex303. Cuando no se transmiten estos, los datos de imagen tomados por la unidad de cámara fotográfica ex203 también pueden visualizarse directamente en la unidad de visualización 202, a través de la unidad de interfaz de cámara fotográfica ex303 y la unidad de control de LCD ex302.
La unidad de codificación de imágenes ex312, que incluye el aparato de codificación de imágenes según se ha explicado en la presente invención, codifica los datos de imagen suministrados desde la unidad de cámara fotográfica ex203, mediante el procedimiento de codificación usado para el aparato de codificación de imágenes según se muestra en la primera forma de realización anteriormente mencionada, de manera que los transforma en datos de imagen codificados y los emite hasta la unidad de multiplexación-demultiplexación ex308. En este momento, el teléfono móvil ex115 emite las voces recibidas por la unidad de entrada de voz ex205, durante la toma de imágenes por la unidad de cámara fotográfica ex203, hasta la unidad de multiplexación-demultiplexación ex308 como datos digitales de voz, a través de la unidad de tratamiento de la voz ex305.
La unidad de multiplexación-demultiplexación ex308 multiplexa los datos de imagen codificados suministrados desde la unidad de codificación de imágenes ex312 y los datos de voz suministrados desde la unidad de tratamiento de la voz ex305 mediante un procedimiento predeterminado; la unidad de circuito módem ex306 efectúa un procesamiento de ensanchamiento del espectro de los datos multiplexados resultantes; y la unidad de circuito de emisión-recepción ex301 efectúa una conversión de digital en analógico y una conversión de frecuencia de los datos, con fines de transmisión a través de la antena ex201.
En cuanto a la recepción de datos de un archivo de imágenes en movimiento que está enlazado con una página Web o similares, en modo de transmisión de datos, la unidad de circuito módem ex306 efectúa un procesamiento inverso de ensanchamiento del espectro de los datos recibidos desde la estación móvil ex110, a través de la antena ex201, y emite los datos multiplexados resultantes hasta la unidad de multiplexación-demultiplexación ex308.
A fin de descodificar los datos multiplexados recibidos a través de la antena ex201, la unidad de multiplexacióndemultiplexación ex308 demultiplexa los datos multiplexados en un tren binario de datos de imagen y un tren binario de datos de voz y suministra los datos de imagen codificados a la unidad de descodificación de imágenes ex309 y los datos de voz a la unidad de tratamiento de la voz ex305, respectivamente, a través del bus síncrono ex313.
A continuación, la unidad de descodificación de imágenes ex309, que incluye el aparato de descodificación de imágenes según se ha explicado en la presente invención, descodifica el tren binario de datos de imagen mediante el procedimiento de descodificación aparejado con el procedimiento de descodificación, según se muestra en las formas de realización anteriormente mencionadas, de manera que genera datos reproducidos de imágenes en movimiento, y suministra estos datos a la unidad de visualización ex202 a través de la unidad de control de LCD ex302 y, de este modo, se visualizan datos de imagen incluidos en un archivo de imágenes en movimiento, enlazado, por ejemplo, con una página Web. Al mismo tiempo, la unidad de tratamiento de la voz ex305 convierte los datos de voz en datos analógicos de voz y suministra estos datos a la unidad de salida de voz ex208 y, de este modo, se reproducen datos de voz incluidos en un archivo de imágenes en movimiento, enlazado, por ejemplo, con una página Web.
La presente invención no queda limitada al sistema anteriormente mencionado y por lo menos cualquiera del aparato de codificación de imágenes o del aparato de descodificación de imágenes en las formas de realización anteriormente mencionadas puede incorporarse en un sistema de radiodifusión digital, según se muestra en la Fig. 14. Tal radiodifusión digital terrenal o por satélite ha sido de actualidad recientemente. Más específicamente, un tren binario de información de imagen se transmite desde una estación de radiodifusión ex409 hasta o se comunica con un satélite de radiodifusión ex410 a través de ondas de radio.
Una vez recibidas las mismas, el satélite de radiodifusión ex410 transmite ondas de radio con fines de difusión, una antena de vivienda ex406, con una función de recepción de radiodifusión por satélite, recibe las ondas de radio y un aparato tal como una televisión (receptor) ex401 o un descodificador externo (STB) ex407 descodifica el tren binario con fines de reproducción. El aparato de descodificación de imágenes según se muestra en la forma de realización anteriormente mencionada puede implementarse en el aparato de reproducción ex403 para leer el tren binario grabado en el soporte de almacenamiento ex402, tal como un CD y DVD, y descodificarlo. En este caso, las señales de imagen reproducidas se visualizan en un monitor ex404. También se concibe la implementación del aparato de descodificación de imágenes en el descodificador externo ex407, conectado a un cable ex405 para una televisión por cable o la antena ex406 para radiodifusión por satélite y/o terrenal, de manera que reproduce las señales de imagen en un monitor ex408 de la televisión ex401. El aparato de descodificación de imágenes se puede incorporar a la televisión y no al descodificador externo. O un automóvil ex412, que tiene una antena ex411, puede recibir señales procedentes del satélite ex410 o la estación móvil ex107 para reproducir imágenes en movimiento en un aparato de visualización, tal como un aparato de navegación para automóviles ex413 en el automóvil ex412.
Asimismo, el aparato de codificación de imágenes según se muestra en la forma de realización anteriormente mencionada puede codificar señales de imagen con fines de grabación en un soporte de almacenamiento. Como ejemplo concreto, existe una grabadora ex420, tal como una grabadora de DVD para grabar señales de imagen en un disco DVD ex421 y un grabador de disco para grabarlas en un disco duro. Estas también pueden grabarse en una tarjeta SD (tarjeta de memoria) ex422. Si la grabadora ex420 incluye el aparato de descodificación de imágenes según se muestra en la forma de realización anteriormente mencionada, las señales de imagen grabadas en el disco DVD ex421 o la tarjeta SD ex422 pueden reproducirse con fines de visualización en el monitor ex408.
Como estructura del aparato de navegación para automóviles ex413, es concebible la estructura sin la unidad de cámara fotográfica ex203, la unidad de interfaz de cámara fotográfica ex303 y la unidad de descodificación de imágenes ex312, de entre las unidades según se muestran en la Fig. 13. Lo mismo es aplicable al ordenador ex111, la televisión (receptor) ex401 y demás.
Asimismo, pueden concebirse tres tipos de implementación para un terminal tal como el teléfono móvil ex114 anteriormente mencionado: un terminal emisor-receptor equipado tanto con un codificador como con un descodificador; un terminal emisor equipado solamente con un codificador; y un terminal receptor equipado solamente con un descodificador.
Según se ha descrito anteriormente, es posible aplicar el procedimiento de codificación de imágenes en movimiento o el procedimiento de descodificación de imágenes en movimiento de las formas de realización anteriormente mencionadas a cualquiera de los aparatos y sistemas anteriores y, mediante la aplicación de este procedimiento, pueden obtenerse los efectos descritos en las formas de realización anteriores.
Partiendo de la invención así descrita, será evidente que las formas de realización de la invención se pueden variar en muchos aspectos. Tales variaciones no han de considerarse como un apartamiento de la esencia y el alcance de la invención y, como será evidente para un experto en la materia, está prevista la inclusión de tales modificaciones en el campo de aplicación de las siguientes reivindicaciones.
Aplicabilidad industrial
La presente invención se aplica a un aparato de codificación de vectores de movimiento y un aparato de codificación de imágenes en movimiento para generar un vector de movimiento para un bloque actual que va a codificarse y un vector predicho para el vector de movimiento, codificar la diferencia entre el vector de movimiento y el vector predicho y colocar la diferencia codificada en un tren binario que representa una imagen en movimiento, y a un aparato de descodificación de vectores de movimiento y un aparato de descodificación de imágenes en movimiento para descodificar el tren binario.

Claims (3)

  1. 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. 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. 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.
ES10160084T 2002-04-23 2003-04-10 Procedimiento de codificación de vectores de movimiento Expired - Lifetime ES2399675T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2002121051 2002-04-23
JP2002121051 2002-04-23
JP2002173865 2002-06-14
JP2002173865 2002-06-14

Publications (1)

Publication Number Publication Date
ES2399675T3 true ES2399675T3 (es) 2013-04-02

Family

ID=29272326

Family Applications (6)

Application Number Title Priority Date Filing Date
ES10160082T Expired - Lifetime ES2400945T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificación de vectores de movimiento
ES10160075T Expired - Lifetime ES2400063T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificación de vectores de movimiento y procedimiento de descodificación de vectores de movimiento
ES03719091T Expired - Lifetime ES2301790T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificacion de vectores de movimiento y procedimiento de descodificacion de vectores de movimiento.
ES07100277T Expired - Lifetime ES2343656T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificacion de vectores de movimiento y procedimiento de descodificacion de vectores de movimiento.
ES10160084T Expired - Lifetime ES2399675T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificación de vectores de movimiento
ES07109634T Expired - Lifetime ES2318822T3 (es) 2002-04-23 2003-04-10 Metodo de descodificacion de vector de movimiento.

Family Applications Before (4)

Application Number Title Priority Date Filing Date
ES10160082T Expired - Lifetime ES2400945T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificación de vectores de movimiento
ES10160075T Expired - Lifetime ES2400063T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificación de vectores de movimiento y procedimiento de descodificación de vectores de movimiento
ES03719091T Expired - Lifetime ES2301790T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificacion de vectores de movimiento y procedimiento de descodificacion de vectores de movimiento.
ES07100277T Expired - Lifetime ES2343656T3 (es) 2002-04-23 2003-04-10 Procedimiento de codificacion de vectores de movimiento y procedimiento de descodificacion de vectores de movimiento.

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES07109634T Expired - Lifetime ES2318822T3 (es) 2002-04-23 2003-04-10 Metodo de descodificacion de vector de movimiento.

Country Status (16)

Country Link
US (14) US7394853B2 (es)
EP (6) EP2216995B1 (es)
JP (4) JP4130783B2 (es)
KR (4) KR100947689B1 (es)
CN (5) CN1271865C (es)
AT (3) ATE392092T1 (es)
AU (1) AU2003236034C1 (es)
BR (2) BR0304549A (es)
CA (1) CA2443861C (es)
DE (3) DE60320243T2 (es)
DK (1) DK2216996T3 (es)
ES (6) ES2400945T3 (es)
MX (1) MXPA03009608A (es)
MY (1) MY136457A (es)
TW (2) TWI323614B (es)
WO (1) WO2003092299A1 (es)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4114859B2 (ja) * 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
JP2004023458A (ja) * 2002-06-17 2004-01-22 Toshiba Corp 動画像符号化/復号化方法及び装置
KR100906473B1 (ko) * 2002-07-18 2009-07-08 삼성전자주식회사 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치
JP4373702B2 (ja) * 2003-05-07 2009-11-25 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
CN100594730C (zh) * 2003-06-25 2010-03-17 汤姆森许可贸易公司 帧间的快速模式确定编码方法及其装置
JP2006020095A (ja) * 2004-07-01 2006-01-19 Sharp Corp 動きベクトル検出回路、画像符号化回路、動きベクトル検出方法および画像符号化方法
JP5074924B2 (ja) * 2004-09-16 2012-11-14 トムソン ライセンシング インタフレームのための高速モード決定方法及び装置
CN101099394B (zh) * 2004-11-04 2010-08-18 汤姆森特许公司 用于视频编码器中b帧的快速模式决策的方法和装置
EP1897375B1 (en) * 2005-06-10 2018-08-15 Nxp B.V. Alternating up- and down-ward motion vector rounding
US8761259B2 (en) * 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
JP2007166381A (ja) * 2005-12-15 2007-06-28 Univ Of Tokyo 多視点画像の圧縮符号化方法及び復号化方法
US20070274385A1 (en) * 2006-05-26 2007-11-29 Zhongli He Method of increasing coding efficiency and reducing power consumption by on-line scene change detection while encoding inter-frame
CN101573982B (zh) * 2006-11-03 2011-08-03 三星电子株式会社 利用运动矢量跟踪编码/解码图像的方法和装置
KR101356734B1 (ko) * 2007-01-03 2014-02-05 삼성전자주식회사 움직임 벡터 트랙킹을 이용한 영상의 부호화, 복호화 방법및 장치
JP4898415B2 (ja) * 2006-12-19 2012-03-14 キヤノン株式会社 動画像符号化装置及び動画像符号化方法
KR101356735B1 (ko) * 2007-01-03 2014-02-03 삼성전자주식회사 전역 움직임 벡터를 사용해서 움직임 벡터를 추정하기 위한방법, 장치, 인코더, 디코더 및 복호화 방법
TWI373696B (en) * 2007-04-04 2012-10-01 Mstar Semiconductor Inc Methods of calculating a motion estimation value and estimating a motion vector of an image
US8526499B2 (en) * 2007-06-15 2013-09-03 Sungkyunkwan University Foundation For Corporate Collaboration Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording medium
WO2008153262A1 (en) 2007-06-15 2008-12-18 Sungkyunkwan University Foundation For Corporate Collaboration Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording midium
CN100583649C (zh) * 2007-07-23 2010-01-20 华为技术有限公司 矢量编/解码方法、装置及流媒体播放器
KR101946376B1 (ko) 2007-10-16 2019-02-11 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8817878B2 (en) * 2007-11-07 2014-08-26 Broadcom Corporation Method and system for motion estimation around a fixed reference vector using a pivot-pixel approach
JP5322956B2 (ja) * 2008-01-29 2013-10-23 パナソニック株式会社 画像符号化装置および画像符号化方法
WO2009115901A2 (en) 2008-03-19 2009-09-24 Nokia Corporation Combined motion vector and reference index prediction for video coding
JP5401071B2 (ja) 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
KR101377527B1 (ko) * 2008-10-14 2014-03-25 에스케이 텔레콤주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
US8804516B2 (en) 2008-12-04 2014-08-12 Cisco Technology, Inc. Opportunistic transmissions within MoCA
KR101590511B1 (ko) * 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
US8320455B2 (en) * 2009-03-05 2012-11-27 Qualcomm Incorporated System and method to process motion vectors of video data
BR122020003111B1 (pt) * 2009-06-18 2021-05-11 Kabushiki Kaisha Toshiba aparelhos de codificação e decodificação de vídeo, métodos de codificação e decodificação de vídeo
US9628794B2 (en) 2009-06-18 2017-04-18 Kabushiki Kaisha Toshiba Video encoding apparatus and a video decoding apparatus
JP2009290889A (ja) * 2009-08-07 2009-12-10 Ntt Docomo Inc 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
KR20110068793A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 영상 부호화 및 복호화를 위한 장치 및 방법
KR101348613B1 (ko) 2009-12-23 2014-01-10 한국전자통신연구원 영상의 부호화/복호화 장치 및 그 방법
KR101522850B1 (ko) * 2010-01-14 2015-05-26 삼성전자주식회사 움직임 벡터를 부호화, 복호화하는 방법 및 장치
WO2011093688A2 (ko) * 2010-02-01 2011-08-04 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
WO2011104993A1 (ja) * 2010-02-24 2011-09-01 シャープ株式会社 画像符号化装置、画像復号装置、および、データ構造
US9300970B2 (en) 2010-07-09 2016-03-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding motion vector
KR101456499B1 (ko) * 2010-07-09 2014-11-03 삼성전자주식회사 움직임 벡터의 부호화 방법 및 장치, 그 복호화 방법 및 장치
JP5755243B2 (ja) 2010-11-24 2015-07-29 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 動きベクトル導出方法および動きベクトル導出装置
US20120163457A1 (en) * 2010-12-28 2012-06-28 Viktor Wahadaniah Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus
CN106851306B (zh) * 2011-01-12 2020-08-04 太阳专利托管公司 动态图像解码方法和动态图像解码装置
KR102194079B1 (ko) 2011-02-22 2020-12-23 타지반 투 엘엘씨 필터 방법, 동화상 부호화 장치, 동화상 복호 장치 및 동화상 부호화 복호 장치
JP6108309B2 (ja) 2011-02-22 2017-04-05 サン パテント トラスト 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置
AU2012221588B2 (en) 2011-02-22 2015-12-17 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
WO2012117728A1 (ja) 2011-03-03 2012-09-07 パナソニック株式会社 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、及び動画像符号化復号装置
US9288501B2 (en) * 2011-03-08 2016-03-15 Qualcomm Incorporated Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
TWI526056B (zh) 2011-04-27 2016-03-11 Jvc Kenwood Corp A moving picture coding apparatus, a motion picture coding method, a motion picture coding program, a transmission apparatus, a transmission method, a transmission program, a video decoding apparatus, a video decoding method, a video decoding program, a reception device, a reception method, Receiving program
JP5853842B2 (ja) * 2011-04-27 2016-02-09 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
WO2012147344A1 (ja) 2011-04-27 2012-11-01 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、及び動画像復号プログラム
JP5853841B2 (ja) * 2011-04-27 2016-02-09 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5786478B2 (ja) * 2011-06-15 2015-09-30 富士通株式会社 動画像復号装置、動画像復号方法、及び動画像復号プログラム
WO2012174990A1 (en) 2011-06-24 2012-12-27 Mediatek Inc. Method and apparatus for removing redundancy in motion vector predictors
KR102490375B1 (ko) * 2011-06-28 2023-01-19 엘지전자 주식회사 움직임 벡터 리스트 설정 방법 및 이러한 방법을 사용하는 장치
JP2014523708A (ja) * 2011-07-01 2014-09-11 モトローラ モビリティ エルエルシー 動きベクトル予測設計の簡易化
EP3661201B1 (en) 2011-07-19 2021-02-17 Tagivan Ii Llc Filtering method, moving image decoding method, moving image encoding method, moving image decoding apparatus, moving image encoding apparatus, and moving image encoding/decoding apparatus
MX351933B (es) * 2011-08-29 2017-11-01 Ibex Pt Holdings Co Ltd Método para generar un bloque de predicción en modo de predicción de vector de movimiento avanzada (amvp).
RU2604679C2 (ru) * 2011-10-27 2016-12-10 Сан Пэтент Траст Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений и устройство декодирования изображений
JP5383958B2 (ja) 2011-10-28 2014-01-08 パナソニック株式会社 復号方法および復号装置
WO2013061549A1 (ja) 2011-10-28 2013-05-02 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
JP5768662B2 (ja) 2011-10-31 2015-08-26 富士通株式会社 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
KR101616010B1 (ko) 2011-11-04 2016-05-17 구글 테크놀로지 홀딩스 엘엘씨 비균일 움직임 벡터 그리드에 대한 움직임 벡터 스케일링
US20140307783A1 (en) 2011-11-08 2014-10-16 Samsung Electronics Co., Ltd. Method and apparatus for motion vector determination in video encoding or decoding
TWI523497B (zh) * 2011-11-10 2016-02-21 Sony Corp Image processing apparatus and method
JP5795525B2 (ja) * 2011-12-13 2015-10-14 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム
TWI577181B (zh) * 2011-12-28 2017-04-01 Jvc Kenwood Corp Dynamic video coding device, dynamic image coding method and dynamic image coding program
TWI466538B (zh) * 2012-01-20 2014-12-21 Altek Corp 影像處理方法及其裝置
US8908767B1 (en) 2012-02-09 2014-12-09 Google Inc. Temporal motion vector prediction
US20130208795A1 (en) * 2012-02-09 2013-08-15 Google Inc. Encoding motion vectors for video compression
JP2012138947A (ja) * 2012-03-12 2012-07-19 Ntt Docomo Inc 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
WO2013162273A1 (ko) * 2012-04-24 2013-10-31 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US9172970B1 (en) 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
KR101255230B1 (ko) * 2012-06-25 2013-04-16 세종대학교산학협력단 다시점 영상에서 적응적 움직임 벡터 예측 장치 및 방법
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
JP2014187580A (ja) * 2013-03-25 2014-10-02 Kddi Corp 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、およびプログラム
KR101445835B1 (ko) * 2013-05-28 2014-10-01 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
KR102039708B1 (ko) * 2013-11-13 2019-11-01 삼성전자주식회사 비휘발성 메모리 장치 및 그 제조 방법
JP5705948B2 (ja) * 2013-11-15 2015-04-22 株式会社Nttドコモ 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
EP3085085A4 (en) * 2014-01-29 2017-11-08 MediaTek Inc. Method and apparatus for adaptive motion vector precision
TWI595450B (zh) 2014-04-01 2017-08-11 能晶科技股份有限公司 物件偵測系統
CN104202606B (zh) * 2014-08-18 2017-11-03 山东大学 一种基于hevc运动估计起始点确定方法
CN106303544B (zh) 2015-05-26 2019-06-11 华为技术有限公司 一种视频编解码方法、编码器和解码器
KR101782154B1 (ko) * 2015-06-05 2017-09-26 인텔렉추얼디스커버리 주식회사 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
US11272207B2 (en) * 2017-06-12 2022-03-08 Futurewei Technologies, Inc. Selection and signaling of motion vector (MV) precisions
US10284869B2 (en) 2017-09-28 2019-05-07 Google Llc Constrained motion field estimation for hardware efficiency
US10880573B2 (en) 2017-08-15 2020-12-29 Google Llc Dynamic motion vector referencing for video coding
JP7088606B2 (ja) * 2018-04-02 2022-06-21 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 動画処理方法、画像処理装置、プログラム、符号化デバイス、及び復号化デバイス

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2699703B2 (ja) 1991-07-31 1998-01-19 松下電器産業株式会社 動き補償予測方法とそれを用いた画像信号符号化方法
DK0651574T3 (da) * 1993-03-24 2001-10-08 Sony Corp Fremgangsmåde og indretning til koding/dekodning af bevægelsesvektorer, og fremgangsmåde og indretning til kodning/dekodning af billedsignaler
JPH0799645A (ja) * 1993-09-28 1995-04-11 Toshiba Corp 動きベクトル検出回路
FR2725577B1 (fr) * 1994-10-10 1996-11-29 Thomson Consumer Electronics Procede de codage ou de decodage de vecteurs mouvement et dispositif de codage ou de decodage mettant en oeuvre ledit procede
JP3347954B2 (ja) * 1995-11-02 2002-11-20 三菱電機株式会社 動画像符号化装置及び動画像復号化装置
JPH10224795A (ja) * 1997-01-31 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> 動画像符号化方法、復号方法、符号化器および復号器
JP4573366B2 (ja) * 1997-09-25 2010-11-04 株式会社大宇エレクトロニクス 動きベクトル符号化方法及び符号化装置
KR100487989B1 (ko) * 1997-10-23 2005-05-09 미쓰비시덴키 가부시키가이샤 화상 복호화 장치 및 화상 부호화 장치
DE69801209T2 (de) * 1998-03-20 2001-11-08 St Microelectronics Srl Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
JP4142180B2 (ja) * 1998-10-29 2008-08-27 富士通株式会社 動きベクトル符号化装置および復号装置
EP1172765A1 (en) 2000-07-12 2002-01-16 Deutsche Thomson-Brandt Gmbh Method for processing video pictures and apparatus for processing video pictures
KR100887524B1 (ko) * 2001-02-13 2009-03-09 코닌클리케 필립스 일렉트로닉스 엔.브이. 모션 정보 코딩 및 디코딩 방법
US6816552B2 (en) * 2001-07-11 2004-11-09 Dolby Laboratories Licensing Corporation Interpolation of video compression frames
US7266150B2 (en) * 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US7308029B2 (en) * 2003-12-23 2007-12-11 International Business Machines Corporation Method and apparatus for implementing B-picture scene changes

Also Published As

Publication number Publication date
US20120275520A1 (en) 2012-11-01
CN1522545A (zh) 2004-08-18
US8155201B2 (en) 2012-04-10
EP2216995B1 (en) 2012-12-05
US8179968B2 (en) 2012-05-15
ES2343656T3 (es) 2010-08-05
EP2216995A3 (en) 2011-05-04
US20080117979A1 (en) 2008-05-22
US8194745B2 (en) 2012-06-05
JP5167233B2 (ja) 2013-03-21
ATE392092T1 (de) 2008-04-15
US20040218674A1 (en) 2004-11-04
CN1874514A (zh) 2006-12-06
ES2400063T3 (es) 2013-04-05
EP2216996B1 (en) 2012-12-05
CN1874515A (zh) 2006-12-06
EP1499133B1 (en) 2008-04-09
DE60320243T2 (de) 2009-07-09
MY136457A (en) 2008-10-31
US20080069236A1 (en) 2008-03-20
US20140044183A1 (en) 2014-02-13
US9020037B2 (en) 2015-04-28
US20140044185A1 (en) 2014-02-13
DE60332974D1 (de) 2010-07-22
JP4130783B2 (ja) 2008-08-06
DK2216996T3 (da) 2013-01-07
TW200306749A (en) 2003-11-16
BR0304549A (pt) 2004-08-03
WO2003092299A1 (en) 2003-11-06
EP1821546B1 (en) 2008-10-29
KR20080041743A (ko) 2008-05-13
US20080260035A1 (en) 2008-10-23
TW200633542A (en) 2006-09-16
TWI323614B (en) 2010-04-11
US7394853B2 (en) 2008-07-01
ES2318822T3 (es) 2009-05-01
DE60324482D1 (de) 2008-12-11
ATE413068T1 (de) 2008-11-15
KR20080041741A (ko) 2008-05-13
EP1821546A1 (en) 2007-08-22
AU2003236034A1 (en) 2003-11-10
AU2003236034C1 (en) 2009-01-08
JP2010057206A (ja) 2010-03-11
JP5167232B2 (ja) 2013-03-21
KR100947690B1 (ko) 2010-03-16
US9020035B2 (en) 2015-04-28
JP2006222985A (ja) 2006-08-24
ES2301790T3 (es) 2008-07-01
ATE471038T1 (de) 2010-06-15
US20140044173A1 (en) 2014-02-13
CN100542290C (zh) 2009-09-16
MXPA03009608A (es) 2004-03-09
US9031132B2 (en) 2015-05-12
US20140044172A1 (en) 2014-02-13
CN100515083C (zh) 2009-07-15
EP2216997A2 (en) 2010-08-11
KR20040105544A (ko) 2004-12-16
CN1882089A (zh) 2006-12-20
EP2216995A2 (en) 2010-08-11
ES2400945T3 (es) 2013-04-15
EP2216997B1 (en) 2012-11-28
EP1773067B1 (en) 2010-06-09
KR100947692B1 (ko) 2010-03-16
EP1499133A4 (en) 2006-08-23
KR100947689B1 (ko) 2010-03-16
KR20080041742A (ko) 2008-05-13
KR100947691B1 (ko) 2010-03-16
US20080063077A1 (en) 2008-03-13
US9118930B2 (en) 2015-08-25
JP2004072712A (ja) 2004-03-04
JP2010081648A (ja) 2010-04-08
EP1499133A1 (en) 2005-01-19
CN1271865C (zh) 2006-08-23
US20140044184A1 (en) 2014-02-13
US8160147B2 (en) 2012-04-17
CN100515084C (zh) 2009-07-15
US20140044182A1 (en) 2014-02-13
EP2216997A3 (en) 2011-05-04
EP1773067A1 (en) 2007-04-11
US20080069237A1 (en) 2008-03-20
US20080084931A1 (en) 2008-04-10
DE60320243D1 (de) 2008-05-21
US9020034B2 (en) 2015-04-28
US8213510B2 (en) 2012-07-03
CN1882088A (zh) 2006-12-20
TWI281353B (en) 2007-05-11
US9020036B2 (en) 2015-04-28
US8665961B2 (en) 2014-03-04
CN100542291C (zh) 2009-09-16
EP2216996A2 (en) 2010-08-11
EP2216996A3 (en) 2011-05-04
CA2443861C (en) 2012-09-04
JP4456087B2 (ja) 2010-04-28
US8155200B2 (en) 2012-04-10
BRPI0304549B1 (pt) 2017-12-19
CA2443861A1 (en) 2003-10-23
AU2003236034B2 (en) 2008-02-28

Similar Documents

Publication Publication Date Title
ES2399675T3 (es) Procedimiento de codificación de vectores de movimiento
ES2491095T3 (es) Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento
ES2408013T3 (es) Procedimiento de decodificación de vectores de movimiento
ES2320209T3 (es) Procedimiento de codificacion de imagenes en movimiento y procedimiento de decodificacion de imagenes en movimiento.
ES2353957T3 (es) Procedimiento de codificación de vectores de movimiento y procedimiento de decodificación de vectores de movimiento.