ES2408245T3 - Aparato de decodificación de imágenes en movimiento - Google Patents

Aparato de decodificación de imágenes en movimiento Download PDF

Info

Publication number
ES2408245T3
ES2408245T3 ES10169922T ES10169922T ES2408245T3 ES 2408245 T3 ES2408245 T3 ES 2408245T3 ES 10169922 T ES10169922 T ES 10169922T ES 10169922 T ES10169922 T ES 10169922T ES 2408245 T3 ES2408245 T3 ES 2408245T3
Authority
ES
Spain
Prior art keywords
motion vector
block
image
motion
unit
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
ES10169922T
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=27348065&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2408245(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 ES2408245T3 publication Critical patent/ES2408245T3/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/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
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • A61B5/021Measuring pressure in heart or blood vessels
    • A61B5/022Measuring pressure in heart or blood vessels by applying pressure to close blood vessels, e.g. against the skin; Ophthalmodynamometers
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • A61B5/026Measuring blood flow
    • A61B5/0261Measuring blood flow using optical means, e.g. infrared light
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7203Signal processing specially adapted for physiological signals or for diagnostic purposes for noise prevention, reduction or removal
    • A61B5/7207Signal processing specially adapted for physiological signals or for diagnostic purposes for noise prevention, reduction or removal of noise induced by motion artifacts
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • 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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/537Motion estimation other than block-based
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/172Methods 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 picture, frame or field
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Public Health (AREA)
  • Physics & Mathematics (AREA)
  • Cardiology (AREA)
  • Biophysics (AREA)
  • Pathology (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Medical Informatics (AREA)
  • Veterinary Medicine (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physiology (AREA)
  • Vascular Medicine (AREA)
  • Hematology (AREA)
  • Ophthalmology & Optometry (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Psychiatry (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Color Television Systems (AREA)
  • Error Detection And Correction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

Un aparato de decodificación de imágenes en movimiento (700) para decodificar una imagen en movimiento, que comprende: una unidad de especificación de bloque vecino (711) accionable para especificar un bloque vecino que está situado en la vecindad de un bloque actual y que ya ha sido decodificado; una unidad de valoración (711) accionable para valorar si el bloque vecino ha sido decodificado o no usando un vector de movimiento de otro bloque; una unidad de predicción (711) accionable para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando la unidad de valoración valora que el bloque vecino ha sido decodificado usando el vector de movimiento de dicho otro bloque; una unidad de decodificación (711) accionable para decodificar el vector de movimiento codificado del bloque actual para obtener un vector de movimiento diferencial decodificado del bloque actual; una unidad de recuperación (711) accionable para recuperar el vector de movimiento del bloque actual añadiendo el vector de movimiento diferencial decodificado del bloque actual y el vector de movimiento predictivo; y una unidad de decodificación de imágenes (702) accionable para decodificar la imagen codificada correspondiente al vector de movimiento que ha sido recuperado por dicha unidad de recuperación (711).

Description

Aparato de decodificación de imágenes en movimiento
Campo técnico
La presente invención se refiere a un procedimiento de codificación de vectores de movimiento y un procedimiento de decodificación de vectores de movimiento usando codificación de predicción entre imágenes.
Técnica anterior
En la era multimedia que maneja de forma integral audio, vídeo y otra información, los medios de información existentes, es decir, periódicos, revistas, televisiones, radios, teléfonos y otros medios a través de los cuales se transmite la información a las personas, se han incluido recientemente en el ámbito multimedia. En general, multimedia se refiere a algo que se representa asociando no sólo caracteres, sino también gráficos, voz y especialmente imágenes y similares conjuntamente, pero con el fin de incluir los medios de información existentes mencionados anteriormente en el ámbito multimedia, parece que un requisito previo es representar dicha información en forma digital.
Sin embargo, cuando se calcula la cantidad de información contenida en cada uno de los medios de información mencionados anteriormente en forma de cantidad de información digital, mientras que la cantidad de información por carácter es de 1~2 bytes, la cantidad de información que se requerirá para voz es de 64 Kbits o más por segundo (calidad telefónica), y 100 Mbits o más por segundo para imágenes en movimiento (calidad actual de recepción en televisión), y no es realista que los medios de información mencionados anteriormente manejen una cantidad de información tan enorme como ésta en forma digital. Por ejemplo, aunque los videoteléfonos están ya en uso real por medio de la Red Digital de Servicios Integrados (RDSI) que ofrece una velocidad de transmisión de 64 Kbps/s~1,5 Mbps/s, no es práctico emitir tomas de vídeo por cámaras de televisión directamente a través de RDSI.
Sobre este telón de fondo, han empezado a requerirse técnicas de compresión de información, y se emplean técnicas de compresión de imágenes en movimiento que cumplen con las normas H.261 y H.263 normalizadas internacionalmente por la ITU-T (Unión Internacional de Telecomunicación-Sector de Normalización de Telecomunicación) para videoteléfonos, por ejemplo (Véase, por ejemplo, Information technology – Coding of audiovisual objects - Part 2: video (ISO/IEC 14496-2), pág. 146-148, 1999.12.1). Por otra parte, según técnicas de compresión de información que cumplen con la norma MPEG-1, es posible almacenar información de imágenes en un CD (disco compacto) de música corriente junto con información sonora.
Aquí, MPEG (Moving Picture Experts Group) es una norma internacional sobre compresión de señales de imágenes en movimiento, y MPEG-1 es una norma para compresión de información de señales de televisión aproximadamente en una centésima parte de manera que las señales de imágenes en movimiento pueden emitirse a una velocidad de 1,5 Mbps. Además, como la velocidad de transmisión dentro del ámbito de la norma MPEG-1 está limitada principalmente a 1,5 Mbps aproximadamente, MPEG-2, que fue normalizada con vistas a satisfacer los requisitos de una calidad de imagen mejorada, permite la transmisión de datos de señales de imágenes en movimiento a una velocidad de 2~15 Mbps. Además, MPEG-4 que consigue una relación de compresión superior que la de MPEG-1 y MPEG-2, permite la codificación, decodificación y operación en una unidad objeto, y realiza un nuevo funcionamiento requerido para la era multimedia, ha sido normalizada por el grupo de trabajo (ISO/IEC JTC1/SC29/WG11) que se ha comprometido en la normalización de MPEG-1 y MPEG-2. MPEG-4 se dirigió inicialmente a la normalización de un procedimiento de codificación para una velocidad binaria baja, pero ahora se ha extendido a la normalización de un procedimiento de codificación más versátil para imágenes en movimiento que incluye formas de imágenes entrelazadas y velocidades binarias superiores.
En la codificación de imágenes en movimiento mencionada anteriormente, la cantidad de información se comprime aprovechando las redundancias en las direcciones espacial y temporal. Aquí, se usa la codificación de predicción entre imágenes como un procedimiento de uso de las redundancias temporales. En la codificación de predicción entre imágenes, una imagen se codifica usando una imagen en sentido inverso o en sentido directo temporalmente como imagen de referencia. Se estima el movimiento (un vector de movimiento) de la imagen actual que se codificará a partir de la imagen de referencia, y se calcula la diferencia entre la imagen obtenida por la compensación de movimiento y la imagen actual. A continuación, se eliminan las redundancias espaciales de esta diferencia, con lo que se comprime la cantidad de información de la imagen en movimiento.
El documento “H.26L Test Model Long Term Number 6 (TML-6) draft0” (Sector de Normalización de Telecomunicaciones de ITU, Ginebra, Suiza, VCEG-L45d0.doc, 3 de marzo de 2001) es una descripción de un procedimiento de codificación de referencia que se usará para el desarrollo de una recomendación-H.26L de ITU-T para un nuevo procedimiento de compresión. La configuración básica del algoritmo es similar a H.263. Algunas de las diferencias con respecto a H.263 son:
-
Sólo se usa una VLC regular para la codificación de símbolos.
-
Se usan posiciones de 1/4 píxel para la predicción de movimiento.
-
Se usa una serie de diferentes tamaños de bloque para la predicción de movimiento.
-
La codificación residual se basa en bloques 4 x 4 y se usa una transformada de números enteros.
-
Pueden usarse múltiples tramas de referencia para la predicción y se considera que sustituyen cualquier uso de tramas B.
En un procedimiento de codificación de imágenes en movimiento de acuerdo con MPEG-1, MPEG-2, MPEG-4, H.263, H.26L o similares, una imagen que no se codifica como predicción entre imágenes, es decir, que se codifica intraimagen, se denomina imagen I. Aquí, una imagen significa una unidad de codificación única que incluye tanto una trama como un campo. Además, una imagen que se codifica como predicción entre imágenes con referencia a una imagen se denomina imagen P, y una imagen que se codifica como predicción entre imágenes con referencia a las dos imágenes procesadas anteriormente se denomina imagen B.
La fig. 1 es un diagrama que muestra una relación predictiva entre imágenes en el procedimiento de codificación de imágenes en movimiento mencionado anteriormente.
En la fig. 1, una línea vertical indica una imagen, con un tipo de imagen (I, P o B) indicado en el extremo inferior de la misma. Además, la fig. 1 indica que una imagen a la que apunta una flecha se codifica como predicción entre imágenes usando una imagen situada en el otro extremo de la punta de flecha como imagen de referencia. Por ejemplo, una imagen B que es la segunda desde la izquierda se codifica usando la primera imagen I y la cuarta imagen P como imágenes de referencia.
En el procedimiento de codificación de imágenes en movimiento de acuerdo con MPEG-4, H.26L o similar, puede seleccionarse un modo de codificación denominado modo directo para codificar una imagen B.
Se explicará un procedimiento de codificación de predicción entre imágenes en modo directo con referencia a la fig.
2.
La fig. 2 es una ilustración para explicar el procedimiento de codificación de predicción entre imágenes en modo directo.
Se supone ahora que un bloque C en una imagen B3 se codifica en modo directo. En este caso, un vector de movimiento MVp de un bloque X en una imagen de referencia (una imagen P4 que es una imagen de referencia en sentido inverso, en este caso) que ha sido codificada inmediatamente antes de que se aproveche la imagen B3, en el que el bloque X está situado junto al bloque C. El vector de movimiento MVp es un vector de movimiento que se usó cuando se codificó el bloque X, y se refiere a una imagen P1. El bloque C se predice bidireccionalmente a partir de las imágenes de referencia, es decir, la imagen P1 y la imagen P4, usando vectores de movimiento paralelos al vector de movimiento MVp. Los vectores de movimiento usados para codificar el bloque C son, en este caso, un vector de movimiento MVFc para la imagen P1 y un vector de movimiento MVBc para la imagen P4.
En el procedimiento de codificación de imágenes en movimiento de acuerdo con MPEG-4, H.26L o similar, se codifica una diferencia entre un valor predictivo obtenido de vectores de movimiento de bloques vecinos y un vector de movimiento de un bloque actual que se codificará para codificar el vector de movimiento. En la siguiente descripción, un "valor predictivo" indica un valor predictivo de un vector de movimiento. Como los vectores de movimiento de bloques vecinos tienen dirección y movimiento similares en muchos casos, la cantidad de codificación del vector de movimiento puede reducirse codificando la diferencia entre el valor predictivo obtenido y los vectores de movimiento de los bloques vecinos.
Aquí, se explicará un procedimiento de codificación de vectores de movimiento en MPEG-4 con referencia a la fig. 3. La fig. 3 es una ilustración para explicar un procedimiento para codificar un vector de movimiento MV de un bloque actual A que se codificará en MPEG-4.
En las fig. 3A-3D, los bloques indicados por una línea gruesa son macrobloques de 16 x 16 píxeles, y existen 4 bloques de 8 x 8 píxeles en cada macrobloque. Aquí, se supone que un vector de movimiento se obtiene en un nivel de un bloque de 8 x 8 píxeles.
Según se muestra en la fig. 3A, en cuanto a un bloque actual A situado arriba a la izquierda en un macrobloque, se codifica una diferencia entre un valor predictivo y un vector de movimiento MV del bloque actual A, en la que el valor predictivo se calcula a partir de un vector de movimiento MVb de un bloque vecino B a la izquierda del bloque actual A, un vector de movimiento MVc de un bloque vecino C justo encima del bloque actual A y un vector de movimiento MVd de un bloque vecino D encima y a la derecha del bloque actual A.
Análogamente, según se muestra en la fig. 3B, en cuanto a un bloque actual A situado arriba a la derecha en un macrobloque, se codifica una diferencia entre un valor predictivo y un vector de movimiento MV del bloque actual A, en el que el valor predictivo se calcula a partir de un vector de movimiento MVb de un bloque vecino B a la izquierda del bloque actual A, un vector de movimiento MVc de un bloque vecino C justo encima del bloque actual A y un vector de movimiento MVd de un bloque vecino D encima y a la derecha del bloque actual A.
Según se muestra en la fig. 3C, en cuanto a un bloque actual A situado abajo a la izquierda en un macrobloque, se codifica una diferencia entre un valor predictivo y un vector de movimiento MV del bloque actual A, en el que el valor predictivo se calcula a partir de un vector de movimiento MVb de un bloque vecino B a la izquierda del bloque actual A, un vector de movimiento MVc de un bloque vecino C justo encima del bloque actual A y un vector de movimiento MVd de un bloque vecino D encima y a la derecha del bloque actual A.
Según se muestra en la fig. 3D, en cuanto a un bloque actual A situado abajo a la derecha en un macrobloque, se codifica una diferencia entre un valor predictivo y un vector de movimiento MV del bloque actual A, en el que el valor predictivo se calcula a partir de un vector de movimiento MVb de un bloque vecino B a la izquierda del bloque actual A, un vector de movimiento MVc de un bloque vecino C encima y a la izquierda del bloque actual A y un vector de movimiento MVd de un bloque vecino D justo encima del bloque actual A. Aquí, el valor predictivo se calcula usando las medianas obtenidas de las componentes horizontal y vertical de estos tres vectores de movimiento MVb, MVc y MVd respectivamente.
A continuación, se explicará un procedimiento de codificación de vectores de movimiento en H.26L que ha sido desarrollado para normalización con referencia a la fig. 4.
La fig. 4 es una ilustración para explicar un procedimiento para codificar un vector de movimiento MV de un bloque actual A en H.26L.
Un bloque actual A es un bloque de 4 x 4 píxeles, 8 x 8 píxeles o 16 x 16 píxeles, y un vector de movimiento de este bloque actual A se codifica usando un vector de movimiento de un bloque vecino B que incluye un píxel b situado a la izquierda del bloque actual A, un vector de movimiento de un bloque vecino C que incluye un píxel c situado justo encima del bloque actual A y un vector de movimiento de un bloque vecino D que incluye un píxel d situado encima y a la derecha del bloque actual A. Obsérvese que los tamaños de los bloques vecinos B, C y D no se limitan a los mostrados en la fig. 4 con líneas de puntos.
La fig. 5 es un organigrama que muestra el procedimiento de codificación del vector de movimiento MV del bloque actual A usando los vectores de movimiento de los bloques vecinos según se menciona anteriormente.
Primero, se especifica el bloque vecino que se refiere a la imagen a la que se refiere el bloque actual A entre los bloques vecinos B, C y D (Etapa S502), y se determina el número de bloques vecinos especificados (Etapa S504).
Cuando el número de los bloques vecinos determinados en la Etapa S504 es 1, el vector de movimiento de ese bloque vecino que se refiere a la misma imagen se considera un valor predictivo del vector de movimiento MV del bloque actual A (Etapa S506).
Cuando el número de los bloques vecinos determinado en la Etapa S505 es un valor distinto a 1, el vector de movimiento del bloque vecino que se refiere a otra imagen distinta que la imagen a la que se refiere el bloque actual A, entre los bloques vecinos B, C y D, se considera 0 (Etapa S507). Y la mediana de los vectores de movimiento de los bloques vecinos B, C y D se considera un valor predictivo del vector de movimiento del bloque actual A (Etapa S508).
Usando el valor predictivo obtenido en la Etapa S506 o en la Etapa S508 de esta manera, se calcula la diferencia entre el valor predictivo y el vector de movimiento MV del bloque actual A y se codifica la diferencia (Etapa S510).
Según se describe anteriormente, en los procedimientos de codificación de vectores de movimientos de acuerdo con MPEG-4 y H.26L, los vectores de movimiento de bloques vecinos se aprovechan durante la codificación de un vector de movimiento de un bloque actual que se va a codificar.
Sin embargo, existen casos en que los vectores de movimiento de bloques vecinos no se codifican. Por ejemplo, son casos en los que un bloque vecino se codifica intraimagen, una imagen B se codifica en modo directo, y una imagen P se codifica en modo de salto. En estos casos, los bloques vecinos se codifican usando los vectores de movimiento de otros bloques excepto cuando se codifican intraimagen, es decir, los bloques vecinos se codifican usando sus propios vectores de movimiento basándose en el resultado de la estimación del movimiento.
Así, según el procedimiento tradicional de codificación de vectores de movimiento mencionado anteriormente, un vector de movimiento de un bloque actual se codifica del modo siguiente: cuando existe un bloque vecino, de entre tres bloques vecinos, que no tiene vector de movimiento basándose en el resultado anterior de estimación del movimiento y ha sido codificado usando vectores de movimiento de otros bloques, el vector de movimiento de ese bloque vecino se considera 0. Cuando existen dos de dichos bloques vecinos, el vector de movimiento del bloque vecino restante se usa como un valor predictivo. Y cuando existen tres bloques vecinos, el vector de movimiento se codifica considerando un valor predictivo de 0.
Sin embargo, en modo directo o modo de salto, la compensación de movimiento se efectúa realmente como en el caso en que se usa un vector de movimiento de un bloque vecino en sí basándose en el resultado de la estimación, aunque la información del vector de movimiento no se codifica. Como consecuencia, en el procedimiento tradicional anterior, si un bloque vecino se codifica en modo directo o modo de salto, el vector de movimiento del bloque vecino no se usa como candidato para un valor predictivo. Así, existe el problema de obtener un valor predictivo impreciso de un vector de movimiento durante la codificación del vector de movimiento, y causar así una menor eficacia de codificación.
La presente invención se concibe para resolver este problema, y el objeto de la misma es proporcionar un procedimiento de codificación de vectores de movimiento y un procedimiento de decodificación de vectores de movimiento para obtener un valor predictivo más preciso para una eficacia de codificación más alta.
Descripción de la invención
Con el fin de conseguir el objeto anterior, 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 codificación de un vector de movimiento de un bloque actual en una imagen en movimiento, que comprende: una etapa de especificación de bloque vecino para especificar un bloque vecino que está situado en la vecindad del bloque actual y ya ha sido codificado; una etapa de valoración para valorar si el bloque vecino ha sido codificado o no usando un vector de movimiento de otro bloque; una etapa de predicción para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque; y una etapa de codificación para codificar el vector de movimiento del bloque actual usando el vector de movimiento predictivo.
Como resultado, cuando un vector de movimiento de un bloque actual se codifica usando un vector de movimiento predictivo obtenido de vectores de movimiento de bloques vecinos, si alguno de los bloques vecinos ha sido codificado usando vectores de movimiento de otros bloques, el vector de movimiento del bloque vecino no se considera que es 0 sino que es el vector de movimiento calculado a partir de los vectores de movimiento de los otros bloques. Por tanto, puede obtenerse un vector de movimiento predictivo más preciso, y así puede mejorarse la eficacia de codificación del vector de movimiento.
Además, el procedimiento de decodificación de vectores de movimiento según la presente invención es un procedimiento de decodificación de vectores de movimiento para decodificar un vector de movimiento codificado de un bloque actual en una imagen en movimiento, que comprende: una etapa de especificación de bloque vecino para especificar un bloque vecino que está situado en la vecindad del bloque actual y que ya ha sido decodificado, una etapa de valoración para valorar si el bloque vecino ha sido codificado o no usando un vector de movimiento de otro bloque; una etapa de predicción para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque; y una etapa de decodificación para decodificar el vector de movimiento codificado del bloque actual usando el vector de movimiento predictivo.
Como resultado, el vector de movimiento que ha sido codificado según el procedimiento de codificación de vectores de movimiento de la presente invención puede decodificarse adecuadamente, y así el valor práctico del mismo es elevado.
Obsérvese que la presente invención también puede realizarse como un aparato de codificación de imágenes en movimiento y un programa que usan el procedimiento de codificación de vectores de movimiento mencionado anteriormente, y un medio de almacenamiento que almacena el programa, y un aparato de decodificación de imágenes en movimiento y un programa que usan el procedimiento de decodificación de vectores de movimiento mencionado anteriormente, y un medio de almacenamiento que almacena el programa.
Breve descripción de los dibujos
La fig. 1 es un diagrama que muestra una relación predictiva entre imágenes en un procedimiento de codificación de
imágenes en movimiento; la fig. 2 es una ilustración para explicar el procedimiento de predicción entre imágenes en modo directo; la fig. 3 es una ilustración para explicar un procedimiento para codificar un vector de movimiento de un bloque actual
en MPEG-4;
la fig. 4 es una ilustración para explicar un procedimiento para codificar un vector de movimiento de un bloque actual en H.26L; la fig. 5 es un organigrama que muestra el procedimiento de codificación en H26L; la fig. 6 es un diagrama de bloques que muestra una estructura de un aparato de codificación de imágenes en
movimiento en una primera forma de realización de la presente invención;
la fig. 7 es un diagrama que muestra cómo se introducen y se producen las imágenes en una memoria de trama en la primera forma de realización; la fig. 8 es un organigrama que muestra el funcionamiento de una unidad de codificación de vectores de movimiento
en la primera forma de realización;
la fig. 9 es una ilustración para explicar cómo codificar un bloque vecino en modo de salto en la primera forma de realización; la fig. 10 es una ilustración para explicar la codificación de predicción entre imágenes usando vectores de
movimiento bidireccionales en la primera forma de realización;
la fig. 11 es una ilustración para explicar cómo codificar un bloque vecino en modo directo temporal en la primera forma de realización; la fig. 12 es una ilustración para explicar cómo codificar un bloque vecino en modo directo espacial en la primera
forma de realización;
la fig. 13 es un organigrama que muestra otro funcionamiento de la unidad de codificación de vectores de movimiento en la primera forma de realización; la fig. 14 es un diagrama de bloques que muestra una estructura de un aparato de decodificación de imágenes en
movimiento en una segunda forma de realización de la presente invención;
la fig. 15 es un organigrama que muestra un funcionamiento de una unidad de decodificación de vectores de movimiento en la segunda forma de realización; la fig. 16 es una ilustración para explicar cómo se introducen y se producen las imágenes a partir del aparato de
decodificación de imágenes en movimiento en la segunda forma de realización;
la fig. 17 es un organigrama que muestra otro funcionamiento de la unidad de decodificación de vectores de movimiento en la segunda forma de realización; la fig. 18 es una ilustración de un medio de grabación en una tercera forma de realización de la presente invención; la fig. 19 es un diagrama de bloques que muestra una configuración general de un sistema de suministro de
contenidos en una cuarta forma de realización de la presente invención; la fig. 20 es una vista frontal de un teléfono móvil en la cuarta forma de realización; la fig. 21 es un diagrama de bloques del teléfono móvil en la cuarta forma de realización; la fig. 22 es un diagrama de bloques que muestra una configuración general de un sistema de difusión digital en la
cuarta forma de realización.
Mejor modo de realizar la invención
(Primera forma de realización)
Se explicará un aparato de codificación de imágenes en movimiento en una primera forma de realización de la presente invención con referencia a las figuras.
La fig. 6 es un diagrama de bloques del aparato de codificación de imágenes en movimiento en la primera forma de realización de la presente invención.
Este aparato de codificación de imágenes en movimiento 100 pretende mejorar la eficacia de codificación mejorando la precisión de un valor predictivo de un vector de movimiento, e incluye una memoria de trama 101, una unidad de cálculo de diferencias 102, una unidad de codificación de errores de predicción 103, una unidad de generación de flujos de bits 104, una unidad de decodificación de errores de predicción 105, una unidad de suma 106, una memoria de trama 107, una unidad de estimación de vectores de movimiento 108, una unidad de selección de modo 109, una unidad de control de codificación 110, conmutadores 111~115, una unidad de almacenamiento de vectores de movimiento 116 y una unidad de codificación de vectores de movimiento 117.
La memoria de trama 101 es una memoria de imágenes para guardar imágenes introducidas sobre una base de imagen por imagen, y reordena las imágenes introducidas y obtenidas en orden de tiempo en orden de codificación para la salida. Las imágenes se reordenan bajo el control de la unidad de control de codificación 110.
La fig. 7A muestra cómo se introducen las imágenes en la memoria de trama 101.
En la fig. 7A, las líneas verticales muestran imágenes, y un alfabeto y un número en la parte inferior derecha de cada imagen indica un tipo de imagen (I, P o B) y un número de imagen en orden de tiempo. Las imágenes introducidas en la memoria de trama 101 se reordenan en orden de codificación. Las imágenes se reordenan en orden de codificación basándose en las relaciones de referencia en codificación de predicción entre imágenes, es decir, las imágenes se reordenan de manera que las imágenes usadas como imágenes de referencia se codifican antes que las imágenes que se refieren a dichas imágenes de referencia. Por ejemplo, las relaciones de referencia de las imágenes P7~P13 se muestran mediante flechas en la fig. 7A. En la fig. 7A, las puntas de flecha indican las imágenes que se refieren 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. 7A se reordenan en las mostradas en la fig. 7B.
La fig. 7B muestra las imágenes introducidas según se muestra en la fig. 7A y reordenadas. Las imágenes reordenadas en la memoria de trama 101 se leen según una base de macrobloque. En este caso, un macrobloque tiene un tamaño de 16 píxeles horizontales x 16 verticales.
La unidad de cálculo de diferencias 102 obtiene datos de formas de imágenes de todos los macrobloques de la memoria de trama 101 por medio del conmutador 111, y también obtiene una forma de imagen de compensación de movimiento de la unidad de selección de modo 109. A continuación, la unidad de cálculo de diferencias 102 calcula la diferencia entre los datos de formas de imágenes y la forma de imagen de compensación de movimiento según una base de macrobloque para generar una forma de imagen de error de predicción para salida.
La unidad de codificación de errores de predicción 103 realiza procesamiento de codificación que incluye transformación de frecuencias como transformación de cosenos discreta y cuantificación en los datos de formas de imágenes obtenidos de la memoria de trama 101 por medio del conmutador 112 y la forma de imagen de error de predicción obtenida por la unidad de cálculo de diferencias 102, de manera que se creen datos codificados. Por ejemplo, la transformación de frecuencias y la cuantificación se realizan en una unidad de 8 píxeles horizontales x 8 verticales. A continuación, la unidad de codificación de errores de predicción 103 produce los datos codificados para la unidad de generación de flujos de bits 104 y la unidad de decodificación de errores de predicción 105.
La unidad de generación de flujos de bits 104 realiza codificación de longitud variable en los datos codificados producidos desde la unidad de codificación de errores de predicción 103, convierte los datos de la misma en un formato de flujo de bits para salida, y añade además información sobre vectores de movimiento introducidos desde la unidad de codificación de vectores de movimiento 117, información sobre un modo de codificación introducido desde la unidad de selección de modo 109, información de encabezamiento y otros, con el fin de generar un flujo de bits.
La unidad de decodificación de errores de predicción 105 cuantifica inversamente los datos codificados producidos desde la unidad de codificación de errores de predicción 103, y a continuación realiza transformación de frecuencias inversa como transformación de cosenos discreta inversa de manera que se decodifican en una forma de imagen de error de predicción.
La unidad de suma 106 añade la forma de imagen de compensación de movimiento a la forma de imagen de error de predicción obtenida como resultado de decodificación, y produce una imagen decodificada que es datos de formas de imágenes que indican una forma de una imagen que ha sido codificada y decodificada.
La memoria de trama 107 es una memoria de imágenes que guarda, según una base de imagen por imagen, imágenes usadas como imágenes de referencia cuando se codifican otras imágenes, entre las imágenes decodificadas producidas desde la unidad de suma 106.
La unidad de estimación de vectores de movimiento 108 estima vectores de movimiento de cada bloque en un macrobloque actual que se codificará, usando las imágenes decodificadas acumuladas en la memoria de trama 107 como imágenes de referencia. Los vectores de movimiento estimados se producen para la unidad de selección de modo 109.
La unidad de selección de modo 109 determina un modo de codificación del macrobloque usando los vectores de movimiento estimados por la unidad de estimación de vectores de movimiento 108. Aquí, el modo de codificación significa un procedimiento para codificar un macrobloque. Por ejemplo, cuando una imagen actual es una imagen P, la unidad de selección de modo 109 determina un modo de codificación de entre los siguientes: codificación intraimagen, codificación de predicción entre imágenes usando vectores de movimiento y modo de salto (codificación de predicción entre imágenes en el que no se codifica ningún vector de movimiento de un bloque actual dado que la codificación de predicción se realiza usando un vector de movimiento obtenido de vectores de movimiento de otros bloques, y no se codifica ningún valor de coeficiente dado que todos los valores de coeficientes son 0 como resultado de la codificación de error de predicción). En general, se determina un modo de codificación de manera que se reduzca al mínimo un error de codificación usando una cantidad de bits predeterminada.
La unidad de selección de modo 109 produce el modo de codificación determinado para la unidad de generación de flujos de bits 104, y produce los vectores de movimiento usados para ese modo de codificación para la unidad de codificación de vectores de movimiento 117, respectivamente. Cuando el modo de codificación determinado es una codificación de predicción entre imágenes que usa vectores de movimiento, la unidad de selección de modo 109 almacena además los vectores de movimiento y el modo de codificación usado para esa codificación de predicción entre imágenes en la unidad de almacenamiento de vectores de movimiento 116.
Además, la unidad de selección de modo 109 realiza compensación de movimiento basándose en el modo de codificación determinado y en los vectores de movimiento estimados por la unidad de estimación de vectores de movimiento 108 de manera que se crea una forma de imagen de compensación de movimiento, y se produce la forma de imagen de compensación de movimiento para la unidad de cálculo de diferencias 102 y la unidad de suma
106. Sin embargo, si se selecciona codificación de imágenes, no se produce ninguna forma de imagen de compensación de movimiento. Cuando se selecciona codificación intraimagen, la unidad de selección de modo 109 controla además el conmutador 111 y el conmutador 112 para conectarse a un terminal "a" y a un terminal "c" respectivamente, y cuando se selecciona codificación de predicción entre imágenes, controla el conmutador 111 y el conmutador 112 para conectarse a un terminal "b" y un terminal "d" respectivamente. La compensación de movimiento mencionada anteriormente se realiza según una base de bloque por bloque (8 x 8 píxeles en este caso).
La unidad de control de codificación 110 determina un tipo de imagen (I, P o B) usado para codificación de una imagen introducida, y controla los conmutadores 113, 114 y 115 dependiendo del tipo de imagen. Aquí, un tipo de imagen se determina en general usando un procedimiento para asignar un tipo de imagen periódicamente, por ejemplo.
La unidad de almacenamiento de vectores de movimiento 116 obtiene los vectores de movimiento usados para codificación de predicción entre imágenes y el modo de codificación de la unidad de selección de modo 109, y los almacena.
Cuando la unidad de selección de modo 109 selecciona codificación de predicción entre imágenes usando vectores de movimiento, la unidad de codificación de vectores de movimiento 117 codifica un vector de movimiento de un bloque actual mediante los procedimientos descritos en la fig. 3 y la fig. 4. Según se describe anteriormente, la unidad de codificación de vectores de movimiento 117 especifica tres bloques vecinos del bloque actual, determina un valor predictivo basándose en los vectores de movimiento de los bloques vecinos, y codifica una diferencia entre el valor predictivo y el vector de movimiento del bloque actual que se codificará.
Cuando se codifica un vector de movimiento de un bloque actual, si un bloque vecino se codifica usando vectores de movimiento de otros bloques, como modo de salto y modo directo, la unidad de codificación de vectores de movimiento 117 en la presente forma de realización no considera que el vector de movimiento del bloque vecino es 0 como hace la técnica convencional, sino que trata un vector de movimiento obtenido de los vectores de movimiento de los otros bloques como el vector de movimiento del bloque vecino cuando lo codifica.
La fig. 8 es un organigrama que muestra el funcionamiento general de la unidad de codificación de vectores de movimiento 117 en la presente forma de realización.
En primer lugar, la unidad de codificación de vectores de movimiento 117 especifica tres bloques vecinos codificados previamente de un bloque actual (Etapa S100).
La unidad de codificación de vectores de movimiento 117 valora si cada uno de los bloques vecinos especificados es un bloque vecino Ba que ha sido codificado usando vectores de movimiento de otros bloques o un bloque vecino Bb que ha sido codificado sin usar vectores de movimiento de otros bloques (Etapa S102).
Como resultado, la unidad de codificación de vectores de movimiento 117 determina si los tres bloques vecinos especificados incluyen o no un bloque vecino Ba (Etapa S104).
Cuando se valora en la Etapa S104 que se incluye el bloque vecino Ba (Y en la Etapa S104), la unidad de codificación de vectores de movimiento 117 obtiene un valor predictivo de los vectores de movimiento de los tres bloques vecinos tratando un vector de movimiento obtenido de los vectores de movimiento de los otros bloques como un vector de movimiento del bloque vecino Ba para codificarlo, según se menciona anteriormente (Etapa S106).
Por otra parte, cuando se valora en la Etapa S104 que no se incluye el bloque vecino Ba (N en la Etapa S104), la unidad de codificación de vectores de movimiento 117 obtiene un valor predictivo de vectores de movimiento obtenido basándose en la estimación de movimiento de tres bloques vecinos respectivos Bb y la selección de modo (Etapa S108).
A continuación, la unidad de codificación de vectores de movimiento 117 codifica una diferencia entre el vector de movimiento del bloque actual y el valor predictivo obtenido en las Etapas S106 o S108 (Etapa S110). La unidad de codificación de vectores de movimiento 117 también produce el vector de movimiento codificado como anteriormente para la unidad de generación de flujos de bits 104.
Aquí, el procesamiento de codificación mencionado anteriormente por el aparato de codificación de imágenes en movimiento 100 se explicará específicamente tomando la codificación de una imagen P13 y una imagen B11 según se muestra en la fig. 7 como ejemplo.
(Codificación de la imagen P13)
Como la imagen P13 es una imagen P, el aparato de codificación de imágenes en movimiento 100 codifica la imagen 13 por codificación de predicción entre imágenes usando otra imagen como imagen de referencia. En este caso, la imagen de referencia es una imagen P10. Esta imagen P10 ya ha sido codificada, y la imagen decodificada de la misma se almacena en la memoria de trama 107.
Cuando se codifica una imagen P, la unidad de control de codificación 110 controla los conmutadores 113, 114 y 115 para que estén ACTIVOS. Por tanto, los macrobloques de la imagen P13 que se leen desde la memoria de trama 101 son obtenidos por la unidad de estimación de vectores de movimiento 108, la unidad de selección de modo 109 y la unidad de cálculo de diferencias 102.
La unidad de estimación de vectores de movimiento 108 estima el vector de movimiento de cada bloque en el macrobloque usando la imagen decodificada de la imagen P10 almacenada en la memoria de trama 107 como una imagen de referencia, y produce el vector de movimiento estimado para la unidad de selección de modo 109.
La unidad de selección de modo 109 determina un modo de codificación del macrobloque en la imagen P13 usando el vector de movimiento estimado por la unidad de estimación de vectores de movimiento 108. Como la imagen P13 es una imagen P, la unidad de selección de modo 109 determina, según se menciona anteriormente, un modo de codificación entre los siguientes: codificación intraimagen, codificación de predicción entre imágenes usando vectores de movimiento y modo de salto (una codificación de predicción entre imágenes en la que no se codifica ningún vector de movimiento de un bloque actual dado que la codificación de predicción se realiza usando un vector de movimiento obtenido de los vectores de movimiento de otros bloques, y no se codifica ningún valor de coeficiente porque todos los valores de coeficientes son 0 como resultado de la codificación de error de predicción).
Cuando la unidad de selección de modo 109 selecciona codificación de predicción entre imágenes usando vectores de movimiento, la unidad de codificación de vectores de movimiento 117 en la presente forma de realización codifica el vector de movimiento del bloque actual en la imagen P13 por el procedimiento según se explica en la fig. 3. Cuando un bloque vecino del bloque actual se codifica en modo de salto, la unidad de codificación de vectores de movimiento 117 no considera que el vector de movimiento del bloque vecino es 0, sino que trata un vector de movimiento obtenido de otros bloques para codificar el bloque vecino como un vector de movimiento de ese bloque.
Se explicará un procedimiento de codificación de un vector de movimiento de un bloque actual usado cuando un bloque vecino se codifica en modo de salto.
La fig. 9 es una ilustración para explicar cómo codificar un bloque vecino C en modo de salto.
Según se muestra en la fig. 9, cuando un bloque vecino C en la imagen P13 se codifica en modo de salto, se calcula una mediana de un vector de movimiento MVe de un bloque E, un vector de movimiento MVf de un bloque F y un vector de movimiento MVg de un bloque G, que están situados en la vecindad del bloque vecino C, y el bloque vecino C se codifica usando un vector de movimiento MVcm que indica la mediana. Aquí, se obtiene una mediana de vectores de movimiento calculando medianas de componentes horizontales y verticales de los vectores de movimiento respectivamente, por ejemplo.
Cuando se codifica el vector de movimiento del bloque actual A según se muestra en la fig. 9, la unidad de codificación de vectores de movimiento 117 especifica los tres bloques vecinos B, C y D del bloque actual A (como para las posiciones de los bloques B, C y D, véanse fig. 3 y fig. 4), y valora si cada uno de los bloques vecinos B, C y D es o no un bloque que ha sido codificado usando vectores de movimiento de otros bloques. Como resultado, cuando se valora que sólo el bloque vecino C se codifica en modo de salto, es decir, se codifica usando otros bloques, la unidad de codificación de vectores de movimiento 117 trata la mediana (un vector de movimiento MVcm) calculada a partir de los vectores de movimiento de los otros bloques E, F y G para codificar el bloque vecino C como un vector de movimiento del bloque vecino C, según se menciona anteriormente, y calcula la mediana del vector de movimiento MVcm y los vectores de movimiento de los bloques vecinos B y D para considerarlos como un valor predictivo del vector de movimiento del bloque actual A. A continuación, la unidad de codificación de vectores de movimiento 117 codifica una diferencia entre el valor predictivo y el vector de movimiento del bloque actual A.
La unidad de almacenamiento de vectores de movimiento 116 almacena modos de codificación de bloques codificados. La unidad de codificación de vectores de movimiento 117 valora si cada uno de los bloques vecinos B, C y D es un bloque codificado usando o no vectores de movimiento de otros bloques basándose en los modos de codificación almacenados en la unidad de almacenamiento de vectores de movimiento 116. La unidad de almacenamiento de vectores de movimiento 116 almacena además vectores de movimiento de bloques que han sido codificados sin usar vectores de movimiento de otros bloques pero usando sus propios vectores de movimiento estimados a partir de imágenes de referencia. Para ser más concreto, la unidad de almacenamiento de vectores de movimiento 116 almacena los vectores de movimiento MVe, MVf y MVg de los bloques E, F y G, y la unidad de codificación de vectores de movimiento 117 calcula el vector de movimiento MVcm mencionado anteriormente del bloque vecino C usando estos vectores de movimiento almacenados en la unidad de almacenamiento de vectores de movimiento 116 cuando se codifica el vector de movimiento del bloque actual A. Obsérvese que como para una imagen que ha sido codificada usando vectores de movimiento de otros bloques, un vector de movimiento de la misma que se obtiene calculando una mediana de los vectores de movimiento de los otros bloques puede almacenarse en la unidad de almacenamiento de vectores de movimiento 116 con antelación. En este caso, como la unidad de almacenamiento de vectores de movimiento 116 almacena el vector de movimiento MVcm con antelación, la unidad de codificación de vectores de movimiento 117 no necesita calcular el vector de movimiento MVcm del bloque vecino C pero puede usar el vector de movimiento MVcm almacenado en la unidad de almacenamiento de vectores de movimiento 116 directamente como un vector de movimiento del bloque vecino C, cuando se codifica el vector de movimiento del bloque actual A.
Por otra parte, una forma de imagen de error de predicción que indica una diferencia entre un macrobloque actual en la imagen P13 y una forma de imagen de compensación de movimiento se codifican mediante la unidad de codificación de errores de predicción 103 y se generan como datos codificados, y se añade la información sobre el vector de movimiento codificada según se menciona anteriormente a los datos codificados por la unidad de generación de flujos de bits 104. Sin embargo, no se añaden a los datos codificados una diferencia entre un macrobloque que ha sido codificado en modo de salto y una forma de imagen de compensación de movimiento es 0, e información sobre el vector de movimiento.
Los restantes macrobloques de la imagen P13 se codifican de la misma manera. Después de completar la codificación de todos los macrobloques de la imagen P13, sigue la codificación de la imagen B11.
(Codificación de la imagen B11)
Como la imagen B11 es una imagen B, el aparato de codificación de imágenes en movimiento 100 codifica la imagen B11 mediante codificación de la predicción entre imágenes usando otras dos imágenes como imágenes de referencia. En este caso, las imágenes de referencia son la imagen P10 situada delante de la imagen B11 y la imagen P13 situada detrás de la imagen B11. Estas imágenes P10 y P13 ya han sido codificadas, y las imágenes decodificadas de las mismas se almacenan en la memoria de trama 107.
Cuando se codifica una imagen B, la unidad de control de codificación 110 controla que el conmutador 113 esté ACTIVO y que los conmutadores 114 y 115 estén INACTIVOS. Por tanto, los macrobloques de la imagen B11 que se leen desde la memoria de trama 101 son obtenidos por la unidad de estimación de vectores de movimiento 108, la unidad de selección de modo 109 y la unidad de cálculo de diferencias 102.
La unidad de estimación de vectores de movimiento 108 estima el vector de movimiento en sentido inverso y el vector de movimiento en sentido directo de cada bloque en un macrobloque usando una imagen decodificada de la imagen P10 almacenada en la memoria de trama 107 como una imagen de referencia en sentido inverso y una imagen decodificada de la imagen P13 como una imagen de referencia en sentido directo, y produce los vectores de movimiento estimados en sentido inverso y en sentido directo para la unidad de selección de modo 109.
La unidad de selección de modo 109 determina un modo de codificación del macrobloque de la imagen B11 usando los vectores de movimiento en sentido inverso y en sentido directo estimados por la unidad de estimación de vectores de movimiento 108. Como la imagen B11 es una imagen B, la unidad de selección de modo 109 determina un modo de codificación entre los siguientes: codificación intraimagen, codificación de predicción entre imágenes usando vectores de movimiento anteriores, codificación de predicción entre imágenes usando vectores de movimiento posteriores, codificación de predicción entre imágenes usando vectores de movimiento bidireccionales y modo directo (codificación de predicción entre imágenes en la que la compensación de movimiento se realiza usando un vector de movimiento obtenido de los vectores de movimiento de otros bloques y no se codifica ningún vector de movimiento), por ejemplo.
Cuando la unidad de selección de modo 109 selecciona codificación de predicción entre imágenes usando vectores de movimiento, la unidad de codificación de vectores de movimiento 117 en la presente forma de realización codifica los vectores de movimiento del bloque actual en la imagen B11 por el procedimiento que se explica en la fig. 3.
Más específicamente, cuando la unidad de selección de modo 109 selecciona codificación de predicción entre imágenes usando vectores de movimiento bidireccionales, la unidad de codificación de vectores de movimiento 117 codifica los vectores de movimiento del bloque actual de la siguiente manera.
La fig. 10 es una ilustración para explicar la codificación de predicción entre imágenes usando vectores de movimiento bidireccionales.
Cuando se codifican vectores de movimiento de un bloque actual A, la unidad de codificación de vectores de movimiento 117 codifica un vector de movimiento en sentido inverso MVF y un vector de movimiento en sentido directo MVB.
Para ser más concreto, la unidad de codificación de vectores de movimiento 117 considera una mediana de vectores de movimiento anteriores MVF1, MVF2 y MVF3 de los bloques vecinos B, C y D como un valor predictivo del vector de movimiento en sentido inverso MVF, y codifica una diferencia entre el vector de movimiento en sentido inverso MVF y el valor predictivo del mismo. La unidad de codificación de vectores de movimiento 117 considera también una mediana de vectores de movimiento posteriores MVB1, MVB2 y MVB3 de los bloques vecinos B, C y D como un valor predictivo del vector de movimiento en sentido directo MVB, y codifica una diferencia entre el vector de movimiento en sentido directo MVB y el valor predictivo del mismo. Aquí, la mediana de los vectores de movimiento se obtiene calculando medianas de componentes horizontales y verticales de los vectores de movimiento respectivamente, por ejemplo.
Cuando se codifican vectores de movimiento de un bloque actual en una imagen B, si un bloque vecino ha sido codificado en modo directo, la unidad de codificación de vectores de movimiento 117 en la presente forma de realización no considera que los vectores de movimiento del bloque vecino son 0, sino que considera vectores de movimiento obtenidos de otros bloques como vectores de movimiento del bloque vecino. Existen dos tipos de modo directos: modo directo temporal y modo directo espacial.
En primer lugar, se explicará cómo codificar vectores de movimiento de un bloque actual cuando un bloque vecino se codifica en modo directo temporal.
La fig. 11 es una ilustración para explicar cómo codificar el bloque vecino en modo directo temporal.
Según se muestra en la fig. 11, cuando el bloque vecino C en la imagen B11 se codifica en modo directo, se usa un vector de movimiento MVp de un bloque X, que se sitúa al lado del bloque vecino C, en la imagen P13 que es una imagen de referencia en sentido inverso recién codificada. El vector de movimiento MVp es un vector de movimiento usado para codificar el bloque X, y se almacena en la unidad de almacenamiento de vectores de movimiento 116. Este vector de movimiento MVp se refiere a la imagen P10. El bloque vecino C se codifica mediante predicción bidireccional a partir de las imágenes de referencia, la imagen P10 y la imagen P13, usando vectores de movimiento paralelos al vector de movimiento MVp. En este caso, los vectores de movimiento usados para codificar el bloque vecino C son un vector de movimiento MVFc para la imagen P10 y un vector de movimiento MVBc para la imagen P13.
En este caso cuando el vector de movimiento en sentido directo MVFc es mvf, el vector de movimiento en sentido inverso MVBc es mvb, el vector de movimiento MVp es mvp, la distancia temporal entre la imagen de referencia en sentido inverso (imagen P13) para la imagen actual (imagen B11) y la imagen de referencia (imagen P10) a la que apunta el bloque en la imagen de referencia en sentido inverso es TRD, y la distancia temporal entre la imagen actual (imagen B11) y la imagen de referencia (imagen P10) a la que apunta el bloque en la imagen de referencia en sentido inverso es TRB, mvf y mvb se calculan respectivamente mediante la Ecuación 1 y la Ecuación 2.
mvf = mvp x TRB/TRD Ecuación 1 mvb = (TRB - TRD) x xmvp/TRD Ecuación 2
en las que mvf y mvb representan respectivamente las componentes horizontales y las componentes verticales de los vectores de movimiento. Y los valores más indican la dirección del vector de movimiento MVp, y los valores menos indican la dirección opuesta a la del vector de movimiento MVp.
El bloque vecino C se codifica usando los vectores de movimiento MVFc y MVBc obtenidos según se menciona anteriormente.
Cuando se codifican los vectores de movimiento MVF y MVB del bloque actual A según se muestra en la fig. 10, la unidad de codificación de vectores de movimiento 117 especifica los tres bloques vecinos B, C y D del bloque actual A, y valora si cada uno de los bloques vecinos B, C y D es o no un bloque que ha sido codificado usando un vector de movimiento de otro bloque. Como resultado, cuando se valora que sólo el bloque vecino C se codifica en modo directo temporal, es decir, se codifica usando el vector de movimiento del otro bloque, la unidad de codificación de vectores de movimiento 117 trata los vectores de movimiento MVFc y MVBc calculados a partir del vector de movimiento MVp del bloque X que es el otro bloque para codificar el bloque vecino C como vectores de movimiento del bloque vecino C, y calcula las medianas de los vectores de movimiento MVFc y MVBc y los vectores de movimiento de los bloques vecinos B y D para obtener valores predictivos de los vectores de movimiento del bloque actual A. Se obtienen por separado un valor predictivo en sentido directo y un valor predictivo en sentido inverso. A continuación, la unidad de codificación de vectores de movimiento 117 codifica diferencias entre los valores predictivos y los vectores de movimiento MVF y MVB del bloque actual A, respectivamente.
La unidad de almacenamiento de vectores de movimiento 116 almacena modos de codificación de bloques codificados, y basándose en los modos de codificación almacenados en esta unidad de almacenamiento de vectores de movimiento 116, la unidad de codificación de vectores de movimiento 117 valora si cada uno de los bloques vecinos B, C y D ha sido codificado o no usando vectores de movimiento de otros bloques. La unidad de almacenamiento de vectores de movimiento 116 almacena además vectores de movimiento de bloques que han sido codificados sin usar vectores de movimiento de otros bloques sino usando sus propios vectores de movimiento estimados a partir de imágenes de referencia. En otras palabras, cuando se codifican los vectores de movimiento del bloque actual A, la unidad de codificación de vectores de movimiento 117 usa los vectores de movimiento almacenados en la unidad de almacenamiento de vectores de movimiento 116 cuando son para los bloques vecinos B y D, pero si son para el bloque vecino C, lee el vector de movimiento MVp del bloque X almacenado en la unidad de almacenamiento de vectores de movimiento 116 para calcular los vectores de movimiento MVFc y MVBc. Obsérvese que la unidad de almacenamiento de vectores de movimiento 116 puede almacenar con antelación vectores de movimiento calculados a partir de vectores de movimiento de otros bloques con el fin de codificar un bloque que ha sido codificado usando los vectores de movimiento de los otros bloques. En este caso, la unidad de almacenamiento de vectores de movimiento 116 almacena con antelación los vectores de movimiento MVFc y MVBc. Por tanto, cuando se codifican los vectores de movimiento del bloque actual A, la unidad de codificación de vectores de movimiento 117 no necesita leer el vector de movimiento MVp del bloque X de manera que se calculen los vectores de movimiento MVFc y MVBc del bloque vecino C usando la Ecuación 1 y la Ecuación 2, sino que puede usar los vectores de movimiento MVFc y MVBc almacenados en la unidad de almacenamiento de vectores de movimiento 116 directamente como los vectores de movimiento del bloque vecino C.
A continuación, se explicará un procedimiento para codificar vectores de movimiento de un bloque actual en un caso en el que un bloque vecino se codifica en modo directo espacial.
La fig. 12 es una ilustración para explicar cómo codificar un bloque vecino en modo directo espacial.
Según se muestra en la fig. 12, cuando un bloque vecino C de la imagen B11 se codifica en modo directo espacial, se codifica usando vectores de movimiento MVFc y MVBc calculados basándose en medianas en las direcciones directa e inversa respectivamente que se obtienen de los vectores de movimiento MVFe y MVBe del bloque E, los vectores de movimiento MVFf y MVBf del bloque F y los vectores de movimiento MVFg y MVBg del bloque G, en los que los bloques E, F y G están situados en la vecindad del bloque vecino C.
Cuando se codifican los vectores de movimiento MVF y MVB del bloque actual A según se muestra en la fig. 10, la unidad de codificación de vectores de movimiento 117 especifica los tres bloques vecinos B, C y D en la vecindad del bloque actual A, y valora si cada uno de los bloques vecinos B, C y D es un bloque que ha sido codificado o no usando vectores de movimiento de otros bloques. Como resultado, cuando la unidad de codificación de vectores de movimiento 117 valora que sólo el bloque vecino C ha sido codificado en modo directo espacial, es decir, usando vectores de movimiento de otros bloques, trata los vectores de movimiento MVFc y MVBc calculados a partir de los bloques E, F y G que son los otros bloques usados para codificar el bloque vecino C como los vectores de movimiento del bloque vecino C, calcula las medianas de los vectores de movimiento MVFc y MVBc y los vectores de movimiento de los bloques vecinos B y D, y así obtiene los valores predictivos de los vectores de movimiento del bloque actual A, según se muestra en la fig. 12. A continuación, la unidad de codificación de vectores de movimiento 117 codifica diferencias entre los valores predictivos y los vectores de movimiento MVF y MVB del bloque actual A.
La unidad de almacenamiento de vectores de movimiento 116 almacena vectores de movimiento de bloques que han sido codificados sin usar vectores de movimiento de otros bloques sino usando sus propios vectores de movimiento estimados a partir de imágenes de referencia. En otras palabras, almacena dos vectores de movimiento en las direcciones directa e inversa para cada uno de los bloques E, F y G. Cuando se codifican los vectores de movimiento del bloque actual A, la unidad de codificación de vectores de movimiento 117 calcula los vectores de movimiento MVFc y MVBc del bloque vecino C usando estos vectores de movimiento almacenados en la unidad de almacenamiento de vectores de movimiento 116. Obsérvese que la unidad de almacenamiento de vectores de movimiento 116 puede almacenar con antelación dos vectores de movimiento en las direcciones directa e inversa que se calculan basándose en medianas obtenidas a partir de vectores de movimiento de otros bloques con el fin de codificar un bloque que ha sido codificado usando los vectores de movimiento de los otros bloques. En este caso, la unidad de almacenamiento de vectores de movimiento 116 almacena con antelación los vectores de movimiento MVFc y MVBc. Por tanto, cuando se codifican los vectores de movimiento del bloque actual A, la unidad de codificación de vectores de movimiento 117 no necesita calcular los vectores de movimiento MVFc y MVBc del bloque vecino C, sino que puede usar los vectores de movimiento MVFc y MVBc almacenados en la unidad de almacenamiento de vectores de movimiento 116 directamente como los vectores de movimiento del bloque vecino
C.
Según se describe anteriormente, cuando el bloque vecino C se codifica en el modo directo temporal anterior, los vectores de movimiento de la imagen de referencia en sentido inverso (la imagen P13 en el caso anterior) de la imagen actual necesita almacenarse en la unidad de almacenamiento de vectores de movimiento 116, pero cuando el bloque vecino C se codifica en modo directo espacial, puede omitirse el almacenamiento en sí.
Aquí, cuando se codifican los vectores de movimiento de un bloque actual, el aparato de codificación de imágenes en movimiento 100 realiza un procesamiento excepcional si un bloque vecino del bloque actual no se codifica como predicción entre imágenes, según se menciona anteriormente, sino que se codifica intraimagen.
Por ejemplo, cuando existe un bloque que ha sido codificado intraimagen en los tres bloques vecinos, la unidad de codificación de vectores de movimiento 117 del aparato de codificación de imágenes en movimiento 100 realiza un procesamiento considerando que los vectores de movimiento del bloque son 0. Cuando existen dos bloques vecinos que han sido codificados intraimagen, la unidad de codificación de vectores de movimiento 117 usa los vectores de movimiento del bloque vecino restante como valores predictivos de vectores de movimiento de un bloque actual. Además, cuando los tres bloques vecinos han sido codificados intraimagen, la unidad de codificación de vectores de movimiento 117 realiza procesamiento de codificación de los vectores de movimiento del bloque actual considerando que los valores predictivos de los mismos son 0.
Por otra parte, la forma de imagen de error de predicción que indica una diferencia entre un macrobloque actual en la imagen B11 y la forma de imagen de compensación de movimiento han sido codificadas por la unidad de codificación de errores de predicción 103 y generadas como datos codificados, y la información sobre los vectores de movimiento que ha sido codificada según se menciona anteriormente se añade a los datos codificados por la unidad de generación de flujos de bits 104. Sin embargo, la información sobre vectores de movimiento de un macrobloque que ha sido codificado en modo directo no se añade a los datos codificados.
El procesamiento de codificación de los restantes macrobloques en la imagen B11 se realiza de la misma manera. Después de que se completa el procesamiento para todos los macrobloques de la imagen B11, sigue el procesamiento de codificación de la imagen B12.
Según se describe anteriormente, según el procedimiento de codificación de vectores de movimiento de la presente invención, un vector de movimiento de cada bloque actual se codifica usando un valor predictivo obtenido de los vectores de movimiento de los bloques vecinos codificados previamente y el vector de movimiento del bloque actual. Si alguno de los bloques vecinos ha sido codificado usando un vector de movimiento calculado a partir de vectores de movimiento de otros bloques, por ejemplo, en modo de salto o modo directo, un valor predictivo se obtiene usando, como un vector de movimiento del bloque vecino, el vector de movimiento calculado a partir de los vectores de movimiento de los otros bloques para codificar ese bloque vecino.
En consecuencia, cuando un vector de movimiento de un bloque actual se codifica usando un valor predictivo obtenido de un vector de movimiento de un bloque vecino, si el bloque vecino se codifica usando vectores de movimiento de otros bloques, el vector de movimiento del bloque vecino no se considera 0 como en la técnica convencional, sino que se usa el vector de movimiento calculado a partir de los vectores de movimiento de los otros bloques como vector de movimiento del bloque vecino. Como resultado, se mejora la precisión del valor predictivo anterior, y así puede mejorarse la eficacia de codificación vectores de movimiento.
Obsérvese que en la presente forma de realización, se ha explicado un caso en el que un macrobloque se codifica cada 16 píxeles horizontales x 16 verticales, la compensación de movimiento se realiza en cada bloque de 8 píxeles horizontales x 8 verticales, y una forma de imagen de error de predicción de bloque se codifica cada 8 píxeles horizontales x 8 verticales, pero este procesamiento puede realizarse en otras unidades de píxeles.
Además, en la presente forma de realización, se ha explicado un caso en el que se usa una mediana calculada a partir de vectores de movimiento de tres bloques vecinos codificados previamente como un valor predictivo para codificar un vector de movimiento, si bien puede aplicarse cualquier otro número de bloques vecinos distinto de tres, y el valor predictivo puede determinarse por cualquier otro procedimiento. Por ejemplo, puede usarse un vector de movimiento de uno situado inmediatamente a la izquierda como un valor predictivo, o puede usarse una media aritmética, en lugar de una mediana.
Además, en la presente forma de realización, las posiciones de los bloques vecinos para codificar un vector de movimiento se han explicado usando la fig. 3 y la fig. 4, aunque pueden aplicarse otras posiciones.
Además, en la presente forma de realización, se ha explicado un procedimiento para codificar un bloque actual que usa vectores de movimiento de otros bloques tomando como ejemplos el modo de salto y los modos directos espacial y temporal, aunque puede usarse cualquier otro procedimiento.
Además, en la presente forma de realización, se ha explicado un caso en el que puede usarse una diferencia entre un vector de movimiento de un bloque actual y un valor predictivo obtenido de vectores de movimiento de bloques vecinos de manera que se codifique el vector de movimiento, aunque pueden usarse otros procedimiento distintos que la obtención de una diferencia para codificar el vector de movimiento.
Además, en la presente forma de realización, se ha explicado un caso en el que cuando un bloque vecino se codifica en modo directo espacial, se calcula una mediana de vectores de movimiento de tres bloques codificados previamente en la vecindad del bloque vecino y se trata como un vector de movimiento del bloque vecino, si bien puede usarse cualquier otro número de bloques distinto de tres, y puede usarse cualquier otro procedimiento para determinar el vector de movimiento. Por ejemplo, puede usarse un vector de movimiento de un bloque situado inmediatamente a la izquierda como un vector de movimiento de un bloque vecino, o puede usarse una media aritmética, en lugar de una mediana.
Además, en la presente forma de realización, cuando un bloque en una imagen B se codifica en modo directo espacial, se calculan dos vectores de movimiento del bloque en las direcciones directa e inversa, aunque pueden calcularse dos vectores de movimiento sólo en la dirección directa o dos vectores de movimiento sólo en la dirección inversa. En este caso, la imagen B se refiere a dos imágenes sólo en la dirección directa o dos imágenes en la dirección inversa.
Además, en la presente forma de realización, se ha explicado un caso en el que una imagen predeterminada se refiere a codificación de una imagen P (una imagen P10 se refiere a codificación de una imagen P13, por ejemplo) y dos imágenes predeterminadas se refieren a codificación de una imagen B (las imágenes P10 y P13 se refieren a codificación de una imagen B11), pero estas imágenes P y B pueden codificarse seleccionando imágenes de referencia para cada macrobloque o bloque entre una pluralidad de imágenes. En tal caso, puede generarse un valor predictivo de un vector de movimiento de la forma mostrada en la fig. 13.
La fig. 13 es un organigrama que muestra que el funcionamiento de la unidad de codificación de vectores de movimiento 117 lleva a la obtención de un valor predictivo de un vector de movimiento de un bloque actual para codificar el vector de movimiento, cuando se seleccionan imágenes de referencia para cada bloque.
En primer lugar, la unidad de codificación de vectores de movimiento 117 especifica tres bloques vecinos codificados previamente de un bloque actual (Etapa S300).
A continuación, la unidad de codificación de vectores de movimiento 117 valora si cada uno de los bloques vecinos especificados es un bloque vecino Ba que ha sido codificado usando vectores de movimiento de otros bloques o un bloque vecino Bb que ha sido codificado sin usar vectores de movimiento de otros bloques (Etapa S302).
Aquí, como para el bloque vecino Ba, la unidad de codificación de vectores de movimiento 117 obtiene información que indica los vectores de movimiento usados para codificar el bloque Ba e imágenes de referencia para el bloque vecino Ba, y trata estos vectores de movimiento usados para codificar el bloque Ba como vectores de movimiento del mismo. Al igual que para el bloque vecino Bb, la unidad de codificación de vectores de movimiento 117 obtiene información que indica vectores de movimiento del bloque vecino Bb e imágenes de referencia para el bloque vecino Bb (Etapa S304).
A continuación, la unidad de codificación de vectores de movimiento 117 especifica, entre los tres bloques vecinos, un bloque vecino que se refiere a la imagen a la que se refiere un bloque actual basándose en la información obtenida en la Etapa S304 (Etapa S306), y determina el número de los bloques vecinos especificados (Etapa S308).
A continuación, si el número de los bloques vecinos valorados en la Etapa S308 es 1, la unidad de codificación de vectores de movimiento 117 considera que el vector de movimiento del bloque vecino que se refiere a la misma imagen es un valor predictivo del vector de movimiento MV del bloque actual (Etapa S310).
Si el número de los bloques vecinos valorados en la Etapa S308 no es 1, la unidad de codificación de vectores de movimiento 117 considera que los vectores de movimiento de los bloques vecinos que se refieren a una imagen distinta a la que se refiere el bloque actual, entre los tres bloques vecinos, son 0 (Etapa S312), y considera que una mediana de los vectores de movimiento de los tres bloques vecinos es un valor predictivo del vector de movimiento MV del bloque actual (Etapa S314).
Usando el valor predictivo obtenido en la Etapa S310 o la Etapa S314 según se menciona anteriormente, la unidad de codificación de vectores de movimiento 117 calcula una diferencia entre el valor predictivo y el vector de movimiento MV del bloque actual, y codifica la diferencia (Etapa S316).
Además, cuando un vector de movimiento se codifica usando un vector de movimiento de un bloque adyacente espacialmente como un valor predictivo, debe almacenarse una cantidad de vectores de movimiento de 1 línea de macrobloque (una parte de 1 macrobloque alta y una anchura de pantalla) en la unidad de almacenamiento de vectores de movimiento 116 para codificar el vector de movimiento, si los vectores de movimiento que han sido usados realmente para compensación de movimiento en modo de salto o modo directo se almacenan en la unidad de almacenamiento de vectores de movimiento 116. Esto se aplica al caso en que los vectores de movimiento que han sido usados realmente para compensación de movimiento en modo de salto o modo directo se almacenan en la unidad de almacenamiento de vectores de movimiento 116. Esta es la razón por la que cuando se usan los bloques vecinos explicados en relación con la fig. 3 y la fig. 4 de la presente forma de realización, existen pasado 1 macrobloque cortes de bloques que se refieren como bloques vecinos para codificar el vector de movimiento, con el macrobloque actual como punto de partida.
(Segunda forma de realización)
Se explicará un aparato de decodificación de imágenes en movimiento 700 en la segunda forma de realización de la presente invención con referencia a las figuras.
La fig. 14 es un diagrama de bloques que muestra la estructura del aparato de decodificación de imágenes en movimiento 700 en la segunda forma de realización de la presente invención.
El aparato de decodificación de imágenes en movimiento 700 según se muestra en la fig. 14 decodifica imágenes en movimiento codificadas por el aparato de codificación de imágenes en movimiento 100 en la primera forma de realización, e incluye una unidad de análisis de flujo de bits 701, una unidad de decodificación de errores de predicción 702, una unidad de decodificación de modo 703, una unidad de decodificación de compensación de movimiento 705, una unidad de almacenamiento de vectores de movimiento 706, una memoria de trama 707, una unidad de suma 708, conmutadores 709 y 710 y una unidad de decodificación de vectores de movimiento 711.
La unidad de análisis de flujo de bits 701 extrae varios datos del flujo de bits de entrada. Aquí, varios datos incluyen información sobre el modo de codificación, información sobre vectores de movimiento, y así sucesivamente. La información extraída de modo de codificación se envía a la unidad de decodificación de modo 703. La información extraída de vectores de movimiento se envía a la unidad de decodificación de vectores de movimiento 711. Además, los datos extraídos de errores de predicción codificados se envían a la unidad de decodificación de errores de predicción 702.
La unidad de decodificación de errores de predicción 702 decodifica los datos de errores de predicción codificados introducidos para generar una forma de imagen de error de predicción. La forma de imagen de error de predicción generada se envía al conmutador 709. Cuando el conmutador 709 se conecta al terminal "b", la forma de imagen de error de predicción se envía a la unidad de suma 708.
La unidad de decodificación de modo 703 controla el conmutador 709 y el conmutador 710 con referencia a la información de modo de codificación extraída del flujo de bits. Si el modo de codificación es codificación intraimagen, la unidad de decodificación de modo 703 controla los conmutadores 709 y 710 para conectarse al terminal "a" y el terminal "c", respectivamente, y si el modo de codificación es codificación entre imágenes, controla los conmutadores 709 y 710 para conectarse al terminal "b" y el terminal "d", respectivamente. La unidad de decodificación de modo 703 envía además la información del modo de codificación a la unidad de decodificación de vectores de movimiento 711.
La unidad de decodificación de vectores de movimiento 711 decodifica la información de vectores de movimiento enviado desde la unidad de análisis de flujo de bits 701.
Para ser más concreto, cuando la información del modo de codificación indica codificación de predicción entre imágenes usando vectores de movimiento, la unidad de decodificación de vectores de movimiento 711 obtiene un valor predictivo para un bloque actual que se decodificará usando los vectores de movimiento de bloques vecinos previamente decodificados, de la misma manera que se describe en la fig. 3 y la fig. 4. Por ejemplo, según se muestra en la fig. 3, la unidad de decodificación de vectores de movimiento 711 obtiene un valor predictivo para un bloque actual A del vector de movimiento MVb del bloque vecino B, el vector de movimiento MVc del bloque vecino C y el vector de movimiento MVd del bloque vecino D. Aquí, el valor predictivo se calcula basándose en una mediana calculada a partir de cada una de las componentes horizontales y las componentes verticales de los tres vectores de movimiento previamente decodificados MVb, MVc y MVd. A continuación, la unidad de decodificación de vectores de movimiento 711 añade el valor predictivo a la diferencia que es la información del vector de movimiento enviada desde la unidad de análisis de flujo de bits 701 de manera que se determine el vector de movimiento MV del bloque actual A. Cuando la información del modo de codificación es cualquiera de los anteriormente mencionados modo de salto, modo directo temporal y modo directo espacial, la unidad de decodificación de vectores de movimiento 711 determina el vector de movimiento usando sólo los vectores de movimiento de los bloques vecinos previamente decodificados.
La fig. 15 es un organigrama que muestra el funcionamiento general de la unidad de decodificación de vectores de movimiento 711 en la presente forma de realización.
En primer lugar, la unidad de decodificación de vectores de movimiento 711 especifica tres bloques vecinos previamente decodificados de un bloque actual que se decodificará (Etapa S200).
A continuación, la unidad de decodificación de vectores de movimiento 711 valora si cada uno de los bloques vecinos especificados es un bloque vecino que ha sido codificado usando vectores de movimiento de otros bloques
o un bloque vecino Bb que ha sido codificado sin usar vectores de movimiento de otros bloques (Etapa S202).
Como resultado, la unidad de decodificación de vectores de movimiento 711 determina si un bloque vecino Ba está incluido o no en los tres bloques vecinos especificados (Etapa S204).
Cuando se valora en la Etapa S204 que un bloque vecino Ba está incluido (Y en la Etapa S204), la unidad de decodificación de vectores de movimiento 711 obtiene un valor predictivo de los vectores de movimiento de los tres bloques vecinos tratando un vector de movimiento calculado a partir de vectores de movimiento de otros bloques para decodificar el bloque vecino Ba como un vector de movimiento del bloque vecino Ba, según se menciona anteriormente (Etapa S206).
Por otra parte, cuando se valora en la Etapa S206 que un bloque vecino Ba no está incluido (N en la Etapa S204), la unidad de decodificación de vectores de movimiento 711 obtiene un valor predictivo de los vectores de movimiento obtenidos respectivamente basándose en los resultados de la estimación de los tres bloques vecinos Bb (Etapa S208).
A continuación, la unidad de decodificación de vectores de movimiento 711 suma el valor predictivo obtenido en la Etapa S206 o S208 a la diferencia que es la información de vectores de movimiento enviada desde la unidad de análisis de flujo de bits 701, de manera que se decodifique el vector de movimiento codificado del bloque actual (Etapa S210). La unidad de decodificación de vectores de movimiento 711 también envía el vector de movimiento decodificado a la unidad de decodificación de compensación de movimiento 705.
La unidad de almacenamiento de vectores de movimiento 706 almacena el vector de movimiento decodificado en la unidad de decodificación de vectores de movimiento 711 y el modo de codificación obtenido en la unidad de decodificación de modo 703.
La unidad de decodificación de compensación de movimiento 705 obtiene una forma de imagen de compensación de movimiento de todos los macrobloques de la memoria de trama 707 basándose en el vector de movimiento decodificado en la unidad de decodificación de vectores de movimiento 711.
La unidad de suma 708 suma la forma de imagen de error de predicción introducida y la forma de imagen de compensación de movimiento para generar la forma de imagen decodificada, y produce la forma de imagen decodificada generada para la memoria de trama 707.
La memoria de trama 707 almacena la forma de imagen decodificada generada por la unidad de suma 708 según todas las bases de imágenes.
En primer lugar se explicará el funcionamiento de este aparato de decodificación de imágenes en movimiento 700, en particular el funcionamiento general del mismo.
La fig. 16 es una ilustración para explicar la entrada y salida del aparato de decodificación de imágenes en movimiento 700.
Según se muestra en la fig. 16A, el aparato de decodificación de imágenes en movimiento 700 obtiene el flujo de bits producido desde el aparato de codificación de imágenes en movimiento 100 en la primera forma de realización en orden de salida, y decodifica las imágenes incluidas en el flujo de bits en secuencia. A continuación, según se muestra en la fig. 16B, el aparato de decodificación de imágenes en movimiento 700 reordena las imágenes decodificadas en orden de visualización para salida.
A continuación se explicará el procesamiento de decodificación realizado por el aparato de decodificación de imágenes en movimiento 700 anterior tomando la decodificación de la imagen P13 y la imagen B11 según se muestra en la fig. 16 como un ejemplo específico.
(Decodificación de la imagen P13)
En primer lugar, la unidad de análisis de flujo de bits 701 del aparato de decodificación de imágenes en movimiento 700 obtiene el flujo de bits con respecto a la imagen P13, y extrae la información de selección de modo y la información de vectores de movimiento y los datos de errores de predicción codificados del flujo de bits.
La unidad de decodificación de modo 703 controla los conmutadores 709 y 710 con referencia a la información de selección de modo extraída del flujo de bits de la imagen P13.
A continuación se explicará un caso en el que la información de selección de modo indica codificación de predicción entre imágenes.
La unidad de decodificación de vectores de movimiento 711 realiza el procesamiento de decodificación anterior en la información de vectores de movimiento extraída del flujo de bits de la imagen P13 sobre una base de bloque por bloque basándose en la información de selección de modo que indica la codificación de predicción entre imágenes producidos de la unidad de decodificación de modo 703.
Aquí, cuando se decodifica el vector de movimiento del bloque actual en la imagen P13, la unidad de decodificación de vectores de movimiento 711 especifica tres bloques vecinos decodificados previamente del bloque actual, y valora si cada uno de estos bloques vecinos ha sido codificado usando o no vectores de movimiento de otros bloques. Cuando cualquiera de los bloques vecinos es un bloque que ha sido codificado usando vectores de movimiento de otros bloques, es decir, en modo de salto, la unidad de decodificación de vectores de movimiento 711 trata un vector de movimiento calculado a partir de los vectores de movimiento de los otros bloques para decodificar el bloque vecino como un vector de movimiento del bloque vecino, de la misma manera que hace la unidad de codificación de vectores de movimiento 117 en la primera forma de realización. Para ser más concreto, la unidad de decodificación de vectores de movimiento 711 calcula la mediana de los vectores de movimiento de los tres bloques codificados previamente en la vecindad de ese bloque vecino, y lo trata como un vector de movimiento del bloque vecino.
Además, la unidad de almacenamiento de vectores de movimiento 706 almacena la información de selección de modo producida desde la unidad de decodificación de modo 703, y la unidad de decodificación de vectores de movimiento 711 valora si cada uno de los bloques vecinos es o no un bloque que ha sido codificado usando vectores de movimiento de otros bloques basándose en la información de selección de modo almacenado en la unidad de almacenamiento de vectores de movimiento 706. La unidad de almacenamiento de vectores de movimiento 706 almacena además los vectores de movimiento de los otros bloques usados para decodificar el bloque vecino. Para ser más concreto, la unidad de almacenamiento de vectores de movimiento 706 almacena los vectores de movimiento de los tres bloques en la vecindad del bloque vecino que ha sido codificado en modo de salto. Cuando se decodifica el vector de movimiento del bloque actual, la unidad de decodificación de vectores de movimiento 711 calcula una mediana a partir de los vectores de movimiento de los tres bloques anteriores almacenados en la unidad de almacenamiento de vectores de movimiento 706. Obsérvese que la unidad de almacenamiento de vectores de movimiento 706 puede almacenar con antelación un vector de movimiento de un bloque que ha sido codificado usando vectores de movimiento de otros bloques, calculando una mediana de los vectores de movimiento para decodificar el bloque. En este caso, cuando se decodifica el vector de movimiento del bloque actual, la unidad de decodificación de vectores de movimiento 711 no necesita obtener el vector de movimiento del bloque vecino que ha sido codificado en modo de salto, sino que puede usar el vector de movimiento almacenado en la unidad de almacenamiento de vectores de movimiento 706 directamente como un vector de movimiento del bloque vecino.
Por otra parte, los datos de errores de predicción codificados del macrobloque actual de la imagen P13 se decodifica en la unidad de decodificación de errores de predicción 702 y se genera como una forma de imagen de error de predicción, y los conmutadores 709 y 710 se conectan a la unidad de suma 708. Por tanto, la forma de imagen de compensación de movimiento generada basándose en el vector de movimiento decodificado en la unidad de decodificación de vectores de movimiento 711 se suma a la forma de imagen de error de predicción y se envía a la memoria de trama 707.
Además, cuando se decodifica un vector de movimiento de una imagen P, la unidad de decodificación de vectores de movimiento 711 almacena su vector de movimiento y un modo de codificación obtenido de la unidad de decodificación de modo 703 en la unidad de almacenamiento de vectores de movimiento 706 para decodificar las siguientes imágenes y bloques.
Los restantes macrobloques de la imagen P13 se decodifican en secuencia. Después de completar la decodificación de todos los macrobloques de la imagen P13, sigue la decodificación de la imagen B11.
(Decodificación de la imagen B11)
En primer lugar, la unidad de análisis de flujo de bits 701 del aparato de decodificación de imágenes en movimiento 700 obtiene el flujo de bits de la imagen B11, y extrae la información de selección de modo y la información de vectores de movimiento y los datos de errores de predicción codificados a partir del flujo de bits.
La unidad de decodificación de modo 703 controla los conmutadores 709 y 710 con referencia a la información de selección de modo extraída del flujo de bits de la imagen B11.
A continuación se explicará un caso en el que la información de selección de modo indica la codificación de predicción entre imágenes.
La unidad de decodificación de vectores de movimiento 711 realiza el procesamiento de decodificación anterior sobre la información de vectores de movimiento extraída del flujo de bits de la imagen B11 en una base de bloque por bloque basándose en la información de selección de modo que indica la codificación de predicción entre las imágenes producidas desde la unidad de decodificación de modo 703.
Cuando se decodifica un vector de movimiento de un bloque actual en la imagen B11, la unidad de decodificación de vectores de movimiento 711 especifica tres bloques vecinos decodificados previamente del bloque actual, y valora si cada uno de estos bloques vecinos ha sido codificado usando o no vectores de movimiento de otros bloques. Cuando cualquiera de los bloques vecinos es un bloque que ha sido codificado usando vectores de movimiento de otros bloques, es decir, en modo directo temporal o espacial, la unidad de decodificación de vectores de movimiento 711 trata un vector de movimiento obtenido usando los vectores de movimiento de los otros bloques para decodificar el bloque vecino como un vector de movimiento del mismo, de la misma manera que hace la unidad de codificación de vectores de movimiento 117 en la primera forma de realización.
Más específicamente, cuando el bloque vecino ha sido codificado en modo directo temporal, la unidad de decodificación de vectores de movimiento 711 lee desde la unidad de almacenamiento de vectores de movimiento 706 un vector de movimiento de un bloque, que se sitúa al lado de un bloque vecino que ha sido codificado en modo directo, en una imagen de referencia recién decodificada previamente (imagen P13). Por ejemplo, según se muestra en la fig. 11, si el bloque vecino C ha sido codificado en modo directo temporal, la unidad de decodificación de vectores de movimiento 711 lee el vector de movimiento decodificado del bloque X en la imagen P13 a partir de la unidad de almacenamiento de vectores de movimiento 706. A continuación, la unidad de decodificación de vectores de movimiento 711 calcula a un vector de movimiento en sentido directo MVFc y un vector de movimiento en sentido inverso MVBc usados para codificar el bloque vecino C usando la Ecuación 1 y la Ecuación 2, y usa estos vectores de movimiento MVFc y MVBc como vectores de movimiento del bloque vecino C.
En el caso anterior, la unidad de decodificación de vectores de movimiento 711 lee a partir de la unidad de almacenamiento de vectores de movimiento 706 el vector de movimiento MVp del bloque X en la imagen P13 que se sitúa al lado del bloque vecino C que ha sido codificado en modo directo. Sin embargo, en cuanto a un bloque que ha sido codificado usando vectores de movimiento de otros bloques, la unidad de almacenamiento de vectores de movimiento 706 puede almacenar el vector de movimiento del bloque calculado a partir de los vectores de movimiento de los otros bloques para decodificar el bloque. En este caso, la unidad de almacenamiento de vectores de movimiento 706 almacena los vectores de movimiento MVFc y MVBc con antelación. Por tanto, cuando se decodifica el vector de movimiento del bloque actual A, la unidad de decodificación de vectores de movimiento 711 no necesita calcular los vectores de movimiento MVFc y MVBc para el bloque vecino C leyendo el vector de movimiento MVp del bloque X y usando la Ecuación 1 y la Ecuación 2, sino que puede usar los vectores de movimiento MVFc y MVBc almacenados en la unidad de almacenamiento de vectores de movimiento 706 directamente como vectores de movimiento del bloque vecino C.
Por otra parte, cuando un bloque vecino ha sido codificado en modo directo espacial, la unidad de decodificación de vectores de movimiento 711 trata los vectores de movimiento calculados usando vectores de movimiento de otros bloques en la vecindad del bloque vecino como vectores de movimiento de los mismos. Por ejemplo, en la situación que se muestra en la fig. 12, la unidad de decodificación de vectores de movimiento 711 calcula medianas a partir de los vectores de movimiento de los tres bloques decodificados previamente E, F y G en la vecindad del bloque vecino C que ha sido codificado en modo directo espacial, y trata el vector de movimiento en sentido inverso MVFc y el vector de movimiento en sentido directo MVBc indicados por las medianas como vectores de movimiento del bloque vecino C.
Además, la unidad de almacenamiento de vectores de movimiento 706 almacena vectores de movimiento usados para decodificar un bloque que ha sido codificado sin usar vectores de movimiento de otros bloques. Para ser más concreto, en la situación que se muestra en la fig. 12, la unidad de almacenamiento de vectores de movimiento 706 almacena los vectores de movimiento de los tres bloques E, F y G en la vecindad del bloque vecino C que ha sido codificado en modo directo espacial. Por tanto, cuando se decodifica el vector de movimiento del bloque actual A, la unidad de decodificación de vectores de movimiento 711 calcula los vectores de movimiento MVFc y MVBc para el bloque vecino a partir de los vectores de movimiento de los tres bloques E, F y G anteriores almacenados en la unidad de almacenamiento de vectores de movimiento 706. Obsérvese que la unidad de almacenamiento de vectores de movimiento 706 puede almacenar con antelación vectores de movimiento obtenidos calculando medianas para decodificar un bloque que ha sido codificado usando vectores de movimiento de otros bloques. En este caso, en la situación que se muestra en la fig. 12, la unidad de almacenamiento de vectores de movimiento 706 almacena los vectores de movimiento MVFc y MVBc con antelación. Por tanto, cuando se decodifican los vectores de movimiento del bloque actual A, la unidad de decodificación de vectores de movimiento 711 no necesita calcular los vectores de movimiento del bloque vecino C que ha sido codificado en modo directo espacial, sino que puede usar los vectores de movimiento MVFc y MVBc almacenados en la unidad de almacenamiento de vectores de movimiento 706 directamente como vectores de movimiento del bloque vecino C.
Aquí, cuando se decodifican los vectores de movimiento de un bloque actual que ha de decodificarse, si el bloque vecino decodificado previamente del bloque actual ha sido procesado en codificación intraimagen, no en codificación entre imágenes según se menciona anteriormente, el aparato de decodificación de imágenes en movimiento 700 realiza un procesamiento excepcional.
Por ejemplo, cuando uno de los tres bloques vecinos se ha sometido a codificación intraimagen, la unidad de decodificación de vectores de movimiento 711 del aparato de decodificación de imágenes en movimiento 700 realiza el procesamiento considerando que los vectores de movimiento del bloque vecino son 0. Cuando dos bloques vecinos se han sometido a codificación intraimagen, la unidad de decodificación de vectores de movimiento 711 usa los vectores de movimiento del bloque vecino restante como valores predictivos de los vectores de movimiento del bloque actual. Además, cuando los tres bloques vecinos se han sometido a codificación intraimagen, la unidad de decodificación de vectores de movimiento 711 decodifica los vectores de movimiento del bloque actual considerando que los valores predictivos de los mismos son 0.
Por otra parte, los datos de errores de predicción codificados para el macrobloque actual de la imagen B11 han sido decodificados en la unidad de decodificación de errores de predicción 702 y generados como una forma de imagen de error de predicción, y los conmutadores 709 y 710 están conectados a la unidad de suma 708. Por tanto, la forma de imagen de compensación de movimiento generada basándose en el vector de movimiento decodificado por la unidad de decodificación de vectores de movimiento 711 se suma a la forma de imagen de error de predicción y se envía a la memoria de trama 707.
El procesamiento de decodificación de los restantes macrobloques de la imagen B11 se realiza de la misma manera. Después de completar el procesamiento para todos los macrobloques de la imagen B11, sigue el procesamiento de decodificación de la imagen B12.
Según se describe anteriormente, según el procedimiento de decodificación de vectores de movimiento de la presente invención, se obtiene un valor predictivo a partir de los vectores de movimiento de bloques codificados vecinos decodificados previamente, y se decodifica un vector de movimiento de cada bloque actual usando el valor predictivo y la diferencia. Si alguno de los bloques vecinos ha sido codificado usando vectores de movimiento de otros bloques, por ejemplo, en modo de salto o modo directo, un valor predictivo se obtiene usando, como vector de movimiento del bloque vecino, un vector de movimiento calculado a partir de los vectores de movimiento de los otros bloques para decodificación de ese bloque vecino.
En consecuencia, los vectores de movimiento que han sido codificados de la manera que se muestra en la primera forma de realización pueden decodificarse apropiadamente.
Obsérvese que, en la presente forma de realización, se ha explicado un caso en el que se usa una mediana calculada a partir de vectores de movimiento de tres bloques vecinos decodificados previamente como un valor predictivo para decodificar un vector de movimiento, si bien puede aplicarse cualquier otro número de bloques vecinos distinto a tres, y el valor predictivo puede determinarse mediante cualquier otro procedimiento. Por ejemplo, puede usarse un vector de movimiento de un bloque inmediatamente a la izquierda como valor predictivo, o una media aritmética, en lugar de una mediana.
Además, en la presente forma de realización, las posiciones de bloques vecinos para decodificar un vector de movimiento se han explicado usando la fig. 3 y la fig. 4, aunque puede aplicarse cualquier otra posición.
Además, en la presente forma de realización, se ha explicado un procedimiento para codificar un bloque actual usando vectores de movimiento de otros bloques tomando como ejemplos modo de salto y modos directos temporal y espacial, aunque puede usarse cualquier otro modo.
Además, en la presente forma de realización, se ha explicado un caso en el que un vector de movimiento es decodificado sumando un valor predictivo obtenido de vectores de movimiento de bloques vecinos y una diferencia según se indica en un flujo de bits, si bien puede usarse cualquier otro procedimiento que la suma para decodificar el vector de movimiento.
Además, en la presente forma de realización, se ha explicado un caso en el que cuando un bloque vecino ha sido codificado en modo directo espacial, se calcula una mediana de vectores de movimiento de tres bloques codificados previamente en la vecindad del bloque vecino y se trata como un vector de movimiento del bloque vecino, aunque puede usarse cualquier otro número de bloques distinto a tres, y puede usarse cualquier otro procedimiento para determinar el vector de movimiento. Por ejemplo, puede usarse un vector de movimiento de un bloque inmediatamente a la izquierda como vector de movimiento del bloque vecino, o una media aritmética, en lugar de una mediana.
Además, en la presente forma de realización, cuando existe un bloque vecino que ha sido codificado en modo directo espacial, se calculan dos vectores de movimiento del bloque en las direcciones directa e inversa, si bien pueden calcularse dos vectores de movimiento sólo en la dirección directa o dos vectores de movimiento sólo en la dirección inversa. En este caso, una imagen B actual para decodificación se refiere a dos imágenes sólo en la dirección directa o dos imágenes sólo en la dirección inversa.
Además, en la presente forma de realización, se ha explicado un caso en el que se refiere una imagen predeterminada a decodificación de una imagen P (la imagen P10 se refiere a decodificación de la imagen P13, por ejemplo) y se refieren dos imágenes predeterminadas a decodificación de una imagen B (las imágenes P10 y P13 se refieren a decodificación de la imagen B11), pero esta imagen P y esta imagen B pueden decodificarse seleccionando imágenes de referencia de entre una pluralidad de imágenes en cada base de macrobloques o bloques. En tal caso, puede generarse un valor predictivo de un vector de movimiento de la manera que se muestra en la fig. 17.
La fig. 17 es un organigrama que muestra el funcionamiento de la unidad de decodificación de vectores de movimiento 711 para obtener un valor predictivo de un vector de movimiento de un bloque actual que se decodificará y decodificar el vector de movimiento usando el valor predictivo cuando una imagen de referencia se selecciona según una base de bloque por bloque.
En primer lugar, la unidad de decodificación de vectores de movimiento 711 especifica tres bloques vecinos decodificados previamente del bloque actual (Etapa S400).
A continuación, la unidad de decodificación de vectores de movimiento 711 valora si cada uno de los bloques vecinos especificados es un bloque vecino Ba que ha sido codificado usando vectores de movimiento de otros bloques, o un bloque vecino Bb que ha sido codificado sin usar vectores de movimiento de otros bloques (Etapa S402).
Aquí, como para el bloque vecino Ba, la unidad de decodificación de vectores de movimiento 711 obtiene información que indica un vector de movimiento usado para decodificar el bloque vecino Ba y la imagen de referencia a la que se refiere, y trata el vector de movimiento usado para la decodificación como un vector de movimiento del bloque vecino Ba. Al igual que para el bloque vecino Bb, la unidad de decodificación de vectores de movimiento 711 obtiene información que indica el vector de movimiento del bloque vecino Bb y la imagen de referencia a la que se refiere (Etapa S404).
A continuación, la unidad de decodificación de vectores de movimiento 711 especifica el bloque vecino que se refiere a la imagen a la que se refiere el bloque actual, entre los tres bloques vecinos, basándose en la información obtenida en la Etapa S404 (Etapa S406), y determina el número de los bloques vecinos especificados (Etapa S408).
Si el número de los bloques vecinos determinado en la Etapa S408 es 1, la unidad de decodificación de vectores de movimiento 711 considera el vector de movimiento de ese bloque vecino que se refiere a la misma imagen que será un valor predictivo del vector de movimiento del bloque actual (Etapa S410).
Si el número de los bloques vecinos determinados en la Etapa S408 es un número distinto a uno, la unidad de decodificación de vectores de movimiento 711 considera que el vector de movimiento del bloque vecino, entre los tres bloques vecinos, que se refiere a otra imagen distinta a la que se refiere el bloque actual es 0 (Etapa S412), y considera la mediana de los vectores de movimiento de los tres bloques vecinos como un valor predictivo del vector de movimiento del bloque actual (Etapa S414).
Según se describe anteriormente, el vector de movimiento codificado del bloque actual se decodifica sumando la diferencia al valor predictivo obtenido en la Etapa S410 o la Etapa S414.
Además, cuando un vector de movimiento se decodifica usando un vector de movimiento de un bloque adyacente espacialmente como un valor predictivo, debe almacenarse una cantidad de vectores de movimiento de 1 línea de macrobloques (una parte de 1 macrobloque de alto y una pantalla de ancho) en la unidad de almacenamiento de vectores de movimiento 706 para decodificar el vector de movimiento, si los vectores de movimiento que se han usado realmente para compensación de movimiento en modo de salto o modo directo se almacenan en la unidad de almacenamiento de vectores de movimiento 706. Esto se aplica al caso en el que los vectores de movimiento que se han usado realmente para compensación de movimiento en modo de salto o modo directo se almacenan en la unidad de almacenamiento de vectores de movimiento 706. Esta es la razón por la que cuando se usan los bloques vecinos explicados en relación con las fig. 3 y la fig. 4 de la presente forma de realización, existe 1 corte de bloques pasado 1 macrobloque que se refiere como bloques vecinos para decodificar el vector de movimiento, con el macrobloque actual como punto de partida.
(Tercera forma de realización)
Además, si se graba un programa para realizar el procedimiento de codificación de vectores de movimiento o el procedimiento de decodificación de vectores de movimiento según se muestra en cada una de las formas de realización mencionadas anteriormente en un medio de almacenamiento como un disco flexible, se hace posible realizar el procesamiento según se muestra en cada una de las formas de realización anteriores fácilmente en un sistema informático independiente.
La fig. 18 es una ilustración de un medio de almacenamiento que almacena un programa para realizar el procedimiento de codificación de vectores de movimiento y el procedimiento de decodificación de vectores de movimiento ejecutado por el aparato de codificación de imágenes en movimiento 100 en la primera forma de realización y el aparato de decodificación de imágenes en movimiento 200 en la segunda forma de realización por un sistema informático.
La fig. 18B muestra la vista frontal y la vista en sección transversal de la apariencia de un disco flexible FD, y un disco FD1, y la fig. 18A muestra un ejemplo de un formato físico del disco FD1 como un medio de grabación en sí.
El disco FD1 está contenido en una caja F, se forma una pluralidad de pistas Tr concéntricamente en la superficie del disco FD1 en la dirección radial desde la periferia, y cada pista se divide en 16 sectores Se en la dirección angular. Por tanto, en el disco flexible que almacena el programa mencionado anteriormente, el procedimiento de codificación de vectores de movimiento y el procedimiento de decodificación de vectores de movimiento como el programa anterior se graban en un área asignada para él en el disco FD1.
La fig. 18C muestra la estructura para grabar y reproducir el programa en y desde el disco flexible FD.
Para grabar el programa en el disco flexible FD, el sistema informático Cs escribe el procedimiento de codificación de vectores de movimiento o el procedimiento de decodificación de vectores de movimiento como el programa en el disco flexible FD por medio de un lector de discos flexibles FDD. Para construir el procedimiento de codificación anterior de vectores de movimiento y el procedimiento de decodificación de vectores de movimiento en el sistema informático Cs mediante el programa grabado en el disco flexible FD, el programa es leído desde el disco flexible FD por medio del lector de discos flexibles FDD y transferido al sistema informático Cs.
Obsérvese que la explicación anterior se realiza según el supuesto de que un medio de grabación es un disco flexible FD, pero el mismo procesamiento puede realizarse también usando un disco óptico. Además, el medio de grabación no se limita a éstos, sino que puede usarse de la misma manera cualquier otro medio como una tarjeta CI
o una casete ROM si es posible grabar un programa en ellos.
(Cuarta forma de realización)
Además, se explicarán aquí las aplicaciones del procedimiento de codificación de vectores de movimiento y el procedimiento de decodificación de vectores de movimiento según se muestra en las formas de realización anteriores y un sistema que los usa.
La fig. 19 es un diagrama de bloques que muestra la configuración general de un sistema de suministro de contenidos ex100 para realizar el servicio de distribución de contenidos. El área para proporcionar el servicio de comunicación está dividida en celdas del tamaño deseado, y se colocan estaciones de base ex107~ex110 que son estaciones inalámbricas fijas en celdas respectivas.
En este sistema de suministro de contenidos ex100, se conectan varios dispositivos como un ordenador ex111, una PDA (asistente digital personal) ex112, una cámara ex113, un teléfono móvil ex114 y un teléfono móvil equipado con cámara ex115 a Internet ex101, por medio de un proveedor de servicios de Internet ex102, una red telefónica ex104 y estaciones de base ex107~ex110, por ejemplo.
Sin embargo, el sistema de suministro de contenidos ex100 no se limita a la combinación según se muestra en la fig. 19, y puede conectarse a una combinación de cualquiera de ellos. Además, cada dispositivo puede conectarse directamente a la red telefónica ex104, no a través de las estaciones de base ex107~ex110 que son las estaciones inalámbricas fijas.
La cámara ex113 es un dispositivo como una videocámara digital capaz de obtener imágenes en movimiento. El teléfono móvil puede ser cualquiera entre un teléfono móvil de un sistema PDC (Personal Digital Communications), un sistema CDMA (Code Multiple Division Access), un sistema W-CDMA (Wideband-Code Multiple Division Access)
o un sistema GSM (Global System for Mobile Communications), un PHS (Personal Handyphone System) y similares.
Además, se conecta un servidor de flujo continuo ex103 a la cámara ex113 por medio de la estación de base ex109 y la red telefónica ex104, lo que permite la distribución en directo o similar usando la cámara ex113 basándose en los datos codificados emitidos desde el usuario. La cámara ex113 o el servidor para emitir los datos pueden codificar las tomas de datos de la cámara. Además, la toma de datos de imágenes en movimiento por una cámara ex116 puede emitirse al servidor de flujo continuo ex103 por medio del ordenador ex111. La cámara ex116 es un dispositivo como una cámara digital capaz de obtener imágenes fijas y en movimiento. En este caso, la cámara ex116 o el ordenador ex111 pueden codificar los datos de las imágenes en movimiento. Un LSI ex117 incluido en el ordenador ex111 o la cámara ex116 realiza el procesamiento de codificación. Obsérvese que el software para codificación y decodificación de las imágenes puede estar integrado en cualquier tipo de un medio de almacenamiento (como un CD-ROM, un disco flexible y un disco duro) que es un medio de grabación que puede ser leído por el ordenador ex111 o similar. Además, el teléfono móvil provisto de cámara ex115 puede emitir 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 esta sistema de suministro de contenidos ex100, los contenidos (como un vídeo de música en directo) tomados por los usuarios usando la cámara ex113, la cámara ex116 o similar se codifican de la misma manera que las formas de realización anteriores y se emiten al servidor de flujo continuo ex103, mientras el servidor de flujo continuo ex103 realiza distribución continua de los datos del contenido anterior a los clientes a petición de éstos. Los clientes incluyen el ordenador ex111, la PDA ex112, la cámara ex113, el teléfono móvil ex114 y demás elementos capaces de decodificar los datos codificados mencionados anteriormente. El sistema de suministro de contenidos ex100 es un sistema en el que los clientes pueden así recibir y reproducir los datos codificados, y además pueden recibir, decodificar y reproducir los datos en tiempo real de manera que pueda realizarse una difusión personal.
Cuando cada dispositivo de este sistema realiza codificación o decodificación, puede usarse el aparato de codificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento según se muestra en cada una de las formas de realización mencionadas anteriormente.
Se explicará un teléfono móvil como un ejemplo de las mismas.
La fig. 20 es un diagrama que muestra un teléfono móvil ex115 que usa el procedimiento de codificación de vectores de movimiento y el procedimiento de decodificación de vectores de movimiento según se explica en las formas de realización anteriores. El teléfono móvil ex115 tiene una antena ex201 para enviar y recibir ondas de radio entre la estación de base ex110, una unidad de cámara ex203 como una cámara CCD capaz de tomar imágenes de vídeo y fijas, una unidad de pantalla ex202 como una pantalla de cristal líquido para mostrar los datos obtenidos por tomas de vídeo de decodificación por parte de la unidad de cámara ex203, vídeo recibido por la antena ex201, o similar, un cuerpo principal que incluye un conjunto de teclas de funcionamiento ex204, una unidad de salida de voz ex208 como un altavoz para producir voces, una unidad de entrada de voz ex205 como un micrófono para introducir voces, un medio de almacenamiento ex207 para almacenar datos codificados o decodificados, como datos de imágenes en movimiento o fijas tomadas por la cámara, y datos de texto, imágenes en movimiento o imágenes fijas de mensajes de correo electrónico recibidos, y una unidad de ranura ex206 para fijar el medio de almacenamiento ex207 en el teléfono móvil ex115. El medio de almacenamiento ex207 incluye un elemento de memoria flash, una clase de EEPROM (Memoria de Sólo Lectura Programable y Borrable Eléctricamente) que es una memoria no volátil borrable y reescribible eléctricamente, en una caja de plástico como una tarjeta SD.
Además, el teléfono móvil ex115 se explicará con referencia a la fig. 21. En el teléfono móvil ex115, se conecta una unidad de control principal ex311 para control global de cada unidad del cuerpo principal que incluye la unidad de pantalla ex202 y las teclas de funcionamiento ex204 a una unidad de circuito de fuente de alimentación ex310, una unidad de control de entrada de operación ex304, una unidad de codificación de la imagen ex312, una unidad de interfaz de cámara ex303, una unidad de control LCD (Pantalla de Cristal Líquido) ex302, una unidad de comunicación de imágenes ex309, una unidad de multiplexado/demultiplexado ex308, una unidad de grabación/reproducción ex307, una unidad de circuito de módem ex306 y una unidad de tratamiento de voz ex305 entre sí por medio de un bus síncrono ex313.
Cuando una tecla de fin de llamada o de potencia se ACTIVA por la acción de un usuario, la unidad de circuito de fuente de alimentación ex310 suministra a las unidades respectivas potencia desde una batería de manera que se activa el teléfono móvil digital provisto de cámara ex115 para un estado estacionario.
En el teléfono móvil ex115, bajo el control de la unidad de control principal ex311 que incluye una CPU, ROM, RAM y similar, la unidad de tratamiento de voz ex305 convierte las señales de voz recibidas por la unidad de entrada de voz ex205 en modo de conversación en datos de voz digital, la unidad de circuito de módem ex306 realiza procesamiento de espectro ensanchado de los datos de voz digital, y la unidad de circuitos de envío/recepción ex301 realiza conversión digital-analógica y transformación de frecuencia de los datos, de manera que se transmita el resultado por medio de la antena ex201. Además, en el teléfono móvil ex115, los datos recibidos por la antena ex201 en modo conversación se amplifican y se someten a transformación de frecuencia y conversión analógicodigital, la unidad de circuito de módem ex306 realiza procesamiento inverso de espectro ensanchado de los datos, y la unidad de tratamiento de voz ex305 la convierte en datos de voz analógicos, de manera que se emita el resultado por medio de la unidad de salida de voz ex208.
Además, cuando se envía un mensaje de correo electrónico en modo de comunicación de datos, los datos de texto del mensaje de correo electrónico introducido accionando las teclas de funcionamiento ex204 en el cuerpo principal son enviados a la unidad de control principal ex311 por medio de la unidad de control de entrada de funcionamiento ex304. En la unidad de control principal ex311, después de que la unidad de circuito de módem ex306 realiza procesamiento de espectro ensanchado de los datos de texto y la unidad de circuitos de envío/recepción ex301 realiza conversión digital-analógica y transformación de frecuencia de los mismos, el resultado se envía a la estación de base ex110 por medio de la antena ex201.
Cuando los datos de imágenes se emiten en modo de comunicación de datos, los datos de imágenes tomados por la unidad de cámara ex203 se proporcionan a la unidad de codificación de la imagen ex312 por medio de la unidad de interfaz de la cámara ex303. Cuando los datos de imágenes no se emiten, los datos de imágenes tomados por la unidad de cámara ex203 pueden visualizarse también directamente en la unidad de pantalla 202 por medio de la unidad de interfaz de la cámara ex303 y la unidad de control LCD ex302.
La unidad de codificación de la imagen ex312, que incluye el aparato de codificación de imágenes explicado en la presente invención, comprime y codifica los datos de imágenes proporcionados desde la unidad de cámara ex203 por el procedimiento de codificación usado para el aparato de codificación de imágenes según se muestra en las formas de realización mencionadas anteriormente de manera que los transformen en datos de imágenes codificados, y los envía a la unidad de multiplexado/demultiplexado ex308. En ese momento, el teléfono móvil ex115 envía las voces recibidas por la unidad de entrada de voz ex205 durante la captación de imágenes por la unidad de cámara ex203 a la unidad de multiplexado/demultiplexado ex308 como datos de voz digital por medio de la unidad de tratamiento de voz ex305.
La unidad de multiplexado/demultiplexado ex308 multiplexa los datos de imágenes codificados proporcionados desde la unidad de codificación de la imagen ex312 y los datos de voz proporcionados desde la unidad de tratamiento de voz ex305 por un procedimiento predeterminado, la unidad de circuito de módem ex306 realiza procesamiento de espectro ensanchado de los datos multiplexados resultantes, y la unidad de circuitos de envío/recepción ex301 realiza conversión digital-analógica y transformación de frecuencia sobre el resultado para su emisión por medio de la antena ex201.
Al igual que para la recepción de datos de un archivo de imágenes en movimiento que está vinculado a una página web o similar en modo de comunicación de datos, la unidad de circuito de módem ex306 realiza procesamiento inverso de espectro ensanchado de los datos recibidos de la estación de base ex110 por medio de la antena ex201, y envía los datos multiplexados resultantes a la unidad de multiplexado/demultiplexado ex308.
Con el fin de decodificar los datos multiplexados recibidos por medio de la antena ex201, la unidad de multiplexado/demultiplexado ex308 demultiplexa los datos multiplexados en un flujo codificado de bits de datos de imágenes y un flujo codificado de bits de datos de voz, y proporciona datos de imágenes codificados a la unidad de comunicación de imágenes ex309 y los datos de voz a la unidad de tratamiento de voz ex305 respectivamente por medio del bus síncrono ex313.
A continuación, la unidad de comunicación de imágenes ex309, que incluye el aparato de decodificación de imágenes explicado en la presente invención, decodifica el flujo codificado de bits de los datos de imágenes por el procedimiento de decodificación emparejado con el procedimiento de codificación según se muestra en las formas de realización mencionadas anteriormente, de manera que se generen los datos de las imágenes en movimiento reproducidas, y proporciona estos datos a la unidad de pantalla ex202 por medio de la unidad de control LCD ex302, y así se muestran los datos de imágenes en movimiento incluidos en un archivo de imágenes en movimiento vinculado, por ejemplo, a una página web. Al mismo tiempo, la unidad de tratamiento de voz ex305 convierte los datos de voz en datos de voz analógica, y proporciona estos datos a la unidad de salida de voz ex208, y así se reproducen los datos de voz incluidos en un archivo de imágenes en movimiento vinculado, por ejemplo, a una página web.
La presente invención no se limita al sistema mencionado anteriormente. Últimamente han sido noticia medios de difusión digital por satélite o de base terrestre, y al menos el aparato de codificación de imágenes o el aparato de decodificación de imágenes en las formas de realización mencionadas anteriormente pueden incorporarse en dicho sistema de difusión digital según se muestra en la fig. 22. Más específicamente, se emite un flujo codificado de bits de información de vídeo desde una estación de difusión ex409 a o en comunicación con un satélite de difusión ex410 por medio de ondas de radio. Al recibirlo, el satélite de difusión ex410 emite ondas de radio para difusión, una antena doméstica ex406 con una función de recepción de difusión desde satélite recibe las ondas de radio, y un aparato como una televisión (receptor) ex401 o un decodificador digital (DD) ex407 decodifica el flujo codificado de bits para reproducción. El aparato de decodificación de imágenes según se muestra en las formas de realización mencionadas anteriormente puede implementarse en el dispositivo de reproducción ex403 para leer un flujo codificado de bits grabado en un medio de almacenamiento ex402 como un CD y DVD que es un medio de grabación y decodificación de los mismos. En este caso, las señales de vídeo reproducidas se visualizan en un monitor ex404. También se concibe para implementar el aparato de decodificación de imágenes en el decodificador digital ex407 conectado a un cable ex405 para una televisión por cable o a la antena ex406 para difusión por satélite y/o de base terrestre de manera que las reproduzca en un monitor ex408 de la televisión. El aparato de decodificación de imágenes puede estar incorporado en la televisión, no en el decodificador digital. O bien, un automóvil ex412 que tiene una antena ex411 puede recibir señales del satélite ex410, la estación de base ex107 o similar para reproducir imágenes en movimiento en un aparato de visualización como un dispositivo de navegación en automóvil ex413 o similar en el automóvil ex412.
Además, el aparato de codificación de imágenes según se muestra en las formas de realización mencionadas anteriormente puede codificar señales de imágenes para grabarlas en un medio de grabación. Como un ejemplo concreto, existe un grabador ex420 como un grabador de DVD para grabar señales de imágenes en un disco DVD ex421 y un disco grabador para grabarlos en un disco duro. También pueden grabarse en una tarjeta SD ex422. Si el grabador ex420 incluye el aparato de decodificación de imágenes según se muestra en las formas de realización mencionadas anteriormente, las señales de imágenes grabadas en el disco DVD ex421 o la tarjeta SD ex422 pueden reproducirse para visualización en el monitor ex408.
Obsérvese que al igual que la estructura del dispositivo de navegación en automóvil ex413, es concebible la estructura sin la unidad de cámara ex203, la unidad de interfaz de la cámara ex303 y la unidad de codificación de la imagen ex312, entre las unidades según se muestra en la fig. 21. Lo mismos se aplica al ordenador ex111, la televisión (receptor) ex401 y otros.
Además, pueden concebirse tres tipos de implementaciones para un terminal como el teléfono móvil ex114 mencionado anteriormente; un terminal de envío/recepción equipado con un codificador y un decodificador, un terminal de envío equipado sólo con un codificador, y un terminal de recepción equipado sólo con un decodificador. Según se describe anteriormente, es posible usar el procedimiento de codificación de vectores de movimiento o el procedimiento de decodificación de vectores de movimiento según se muestra en las formas de realización anteriores en cualquiera de los dispositivos y sistemas mencionados anteriormente, y así pueden obtenerse los efectos explicados en las formas de realización anteriores.
Aplicabilidad industrial
El procedimiento de codificación de vectores de movimiento y el procedimiento de decodificación de vectores de movimiento según la presente invención son adecuados para su uso en un aparato de codificación de imágenes en movimiento para codificación de imágenes en movimiento, un aparato de decodificación de imágenes en movimiento para decodificación de imágenes en movimiento codificadas, y un sistema que incluya estos aparatos, como un sistema de suministro de contenidos para proporcionar contenidos como, por ejemplo, obras digitales y un sistema de difusión digital.
Lista de realizaciones adicionales de la invención
Realización 1 Un procedimiento de codificación de vectores de movimiento para codificar un vector de movimiento de un bloque actual en una imagen en movimiento, que comprende: una etapa de especificación de bloque vecino para especificar un bloque vecino que está situado en la vecindad del bloque actual y que ya ha sido codificado; una etapa de valoración para valorar si el bloque vecino ha sido codificado o no usando un vector de movimiento de otro bloque; una etapa de predicción para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque; y una etapa de codificación para codificar el vector de movimiento del bloque actual usando el vector de movimiento predictivo.
Realización 2 El procedimiento de codificación de vectores de movimiento con las características de la realización 1, en el que el bloque vecino que se valora que ha sido codificado usando el vector de movimiento de dicho otro bloque en la etapa de valoración incluye un bloque vecino que ha sido codificado usando un vector de movimiento calculado a partir de un vector de movimiento de otro bloque situado temporalmente delante o detrás del bloque vecino.
Realización 3 El procedimiento de codificación de vectores de movimiento con las características de la realización 1, en el que el bloque vecino que se valora que ha sido codificado usando el vector de movimiento de dicho otro bloque en la etapa de valoración incluye un bloque vecino que ha sido codificado usando un vector de movimiento calculado a partir de un vector de movimiento de otro bloque en la imagen que incluye el bloque vecino.
Realización 4 El procedimiento de codificación de vectores de movimiento con las características de la realización 1, que comprende además una etapa de almacenamiento para almacenar con antelación el vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque, cuando el bloque vecino se codifica usando el vector de movimiento de dicho otro bloque, en el que en la etapa de predicción, el vector de movimiento predictivo se obtiene usando el vector de movimiento almacenado en la etapa de almacenamiento como el vector de movimiento del bloque vecino, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque.
Realización 5 El procedimiento de codificación de vectores de movimiento con las características de la realización 1, que comprende además una etapa de almacenamiento para almacenar con antelación el vector de movimiento de dicho otro bloque utilizado para codificar el bloque vecino, en el que en la etapa de predicción, el vector de movimiento utilizado como el vector de movimiento del bloque vecino se calcula a partir del vector de movimiento almacenado en la etapa de almacenamiento y el vector de movimiento predictivo se obtiene a partir de dicho vector de movimiento calculado, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque.
Realización 6 El procedimiento de codificación de vectores de movimiento con las características de la realización 1, en el que en un caso en que dicho otro bloque tiene dos vectores de movimiento, el vector de movimiento predictivo se obtiene en sentido directo temporalmente y en sentido inverso temporalmente por separado en la etapa de predicción, y el vector de movimiento del bloque actual se codifica en sentido directo temporalmente y en sentido inverso temporalmente por separado en la etapa de codificación.
Realización 7 El procedimiento de codificación de vectores de movimiento con las características de la realización 1, en el que en un caso en que dicho otro bloque tiene un vector de movimiento especificado en sentido directo temporalmente y un vector de movimiento especificado en sentido inverso temporalmente, el vector de movimiento predictivo que incluye dos vectores de movimiento predictivo se obtiene en la etapa de predicción, uno en sentido directo temporalmente y el otro en sentido inverso temporalmente por separado, y el vector de movimiento del bloque actual que incluye dos vectores de movimiento se codifica en la etapa de codificación, uno en sentido directo temporalmente y el otro en sentido inverso temporalmente por separado.
Realización 8 Un procedimiento de decodificación de vectores de movimiento para decodificar un vector de movimiento codificado de un bloque actual en una imagen en movimiento, que comprende: una etapa de especificación de bloque vecino para especificar un bloque vecino que está situado en la vecindad del bloque actual y que ya ha sido decodificado; una etapa de valoración para valorar si el bloque vecino ha sido codificado o no usando un vector de movimiento de otro bloque; una etapa de predicción para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque; y una etapa de decodificación para decodificar el vector de movimiento codificado del bloque actual usando el vector de movimiento predictivo.
Realización 9 El procedimiento de decodificación de vectores de movimiento con las características de la realización 8, en el que el bloque vecino que se valora que ha sido codificado usando el vector de movimiento de dicho otro bloque en la etapa de valoración incluye un bloque vecino que ha sido codificado usando un vector de movimiento calculado a partir de un vector de movimiento de otro bloque situado temporalmente delante o detrás del bloque vecino.
Realización 10 El procedimiento de decodificación de vectores de movimiento con las características de la realización 8, en el que el bloque vecino que se valora que ha sido codificado usando el vector de movimiento de dicho otro bloque en la etapa de valoración incluye un bloque vecino que ha sido codificado usando un vector de movimiento calculado a partir de un vector de movimiento de otro bloque en la imagen que incluye el bloque vecino.
Realización 11 El procedimiento de decodificación de vectores de movimiento con las características de la realización 8, que comprende además una etapa de almacenamiento para almacenar con antelación el vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque, cuando el bloque vecino se decodifica usando el vector de movimiento de dicho otro bloque, en el que en la etapa de predicción, el vector de movimiento predictivo se obtiene usando el vector de movimiento almacenado en la etapa de almacenamiento como el vector de movimiento del bloque vecino, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque.
Realización 12 El procedimiento de decodificación de vectores de movimiento con las características de la realización 8, que comprende además una etapa de almacenamiento para almacenar con antelación el vector de movimiento de dicho otro bloque utilizado para decodificar el bloque vecino, en el que en la etapa de predicción, el vector de movimiento utilizado como el vector de movimiento del bloque vecino se calcula a partir del vector de movimiento almacenado en la etapa de almacenamiento y el vector de movimiento predictivo se obtiene a partir de dicho vector de movimiento calculado, cuando se valora en la etapa de valoración que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque.
Realización 13 El procedimiento de decodificación de vectores de movimiento con las características de la realización 8, en el que en un caso en que dicho otro bloque tiene dos vectores de movimiento, el vector de movimiento predictivo se obtiene en sentido directo temporalmente y en sentido inverso temporalmente por separado en la etapa de predicción, y el vector de movimiento codificado del bloque actual se decodifica en sentido directo temporalmente y en sentido inverso temporalmente por separado en la etapa de decodificación.
Realización 14 El procedimiento de decodificación de vectores de movimiento con las características de la realización 8, en el que en un caso en que dicho otro bloque tiene un vector de movimiento especificado en sentido directo temporalmente y un vector de movimiento especificado en sentido inverso temporalmente, el vector de movimiento predictivo que incluye dos vectores de movimiento predictivo se obtiene en la etapa de predicción, uno en sentido directo temporalmente y el otro en sentido inverso temporalmente por separado, y el vector de movimiento codificado del bloque actual que incluye dos vectores de movimiento se decodifica en la etapa de decodificación, uno en sentido directo temporalmente y el otro en sentido inverso temporalmente por separado.
Realización 15 Un aparato de codificación de vectores de movimiento para codificar un vector de movimiento de un bloque actual en una imagen en movimiento, que comprende: una unidad de especificación de bloque vecino accionable para especificar un bloque vecino que está situado en la vecindad del bloque actual y que ya ha sido codificado; una unidad de valoración accionable para valorar si el bloque vecino ha sido codificado o no usando un vector de movimiento de otro bloque; una unidad de predicción accionable para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando la unidad de valoración valora que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque; y una unidad de codificación accionable para codificar el vector de movimiento del bloque actual usando el vector de movimiento predictivo.
Realización 16 Un aparato de codificación de imágenes en movimiento para codificar una imagen en movimiento, que comprende: el aparato de codificación de vectores de movimiento con las características de la realización 15; y una unidad de codificación de imágenes accionable para codificar la imagen correspondiente al vector de movimiento que ha sido codificado por dicho aparato de codificación de vectores de movimiento.
Realización 17 Un aparato de decodificación de vectores de movimiento para decodificar un vector de movimiento codificado de un bloque actual en una imagen en movimiento, que comprende: una unidad de especificación de bloque vecino accionable para especificar un bloque vecino que está situado en la vecindad del bloque actual y que ya ha sido decodificado; una unidad de valoración accionable para valorar si el bloque vecino ha sido codificado o no usando un vector de movimiento de otro bloque; una unidad de predicción accionable para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando la unidad de valoración valora que el bloque vecino ha sido codificado usando el vector de movimiento de dicho otro bloque; y una unidad de decodificación accionable para decodificar el vector de movimiento codificado del bloque actual usando el vector de movimiento predictivo.
Realización 18 Un aparato de decodificación de imágenes en movimiento para decodificar una imagen en movimiento codificada, que comprende: el aparato de decodificación de vectores de movimiento con las características de la realización 17; y una unidad de decodificación de imágenes accionable para decodificar la imagen codificada correspondiente al vector de movimiento que ha sido decodificado por dicho aparato de decodificación de vectores de movimiento.
Realización 19 Un programa que hace que un ordenador ejecute las etapas incluidas en el procedimiento de codificación de vectores de movimiento con las características de la realización 1.
Realización 20 Un programa que hace que un ordenador ejecute las etapas incluidas en el procedimiento de decodificación de vectores de movimiento con las características de la realización 8.
Realización 21 realización 19.
Un medio de almacenamiento para almacenar el programa con las características de la
Realización 22 realización 20.
Un medio de almacenamiento para almacenar el programa con las características de la

Claims (1)

  1. REIVINDICACIONES
    1. Un aparato de decodificación de imágenes en movimiento (700) para decodificar una imagen en movimiento, que comprende:
    5 una unidad de especificación de bloque vecino (711) accionable para especificar un bloque vecino que está situado en la vecindad de un bloque actual y que ya ha sido decodificado;
    una unidad de valoración (711) accionable para valorar si el bloque vecino ha sido decodificado o no usando un vector de movimiento de otro bloque;
    10 una unidad de predicción (711) accionable para obtener un vector de movimiento predictivo del bloque actual usando un vector de movimiento calculado a partir del vector de movimiento de dicho otro bloque como un vector de movimiento del bloque vecino, cuando la unidad de valoración valora que el bloque vecino ha sido decodificado usando el vector de movimiento de dicho otro bloque;
    15 una unidad de decodificación (711) accionable para decodificar el vector de movimiento codificado del bloque actual para obtener un vector de movimiento diferencial decodificado del bloque actual;
    una unidad de recuperación (711) accionable para recuperar el vector de movimiento del bloque actual añadiendo el 20 vector de movimiento diferencial decodificado del bloque actual y el vector de movimiento predictivo; y
    una unidad de decodificación de imágenes (702) accionable para decodificar la imagen codificada correspondiente al vector de movimiento que ha sido recuperado por dicha unidad de recuperación (711).
ES10169922T 2002-01-09 2003-01-08 Aparato de decodificación de imágenes en movimiento Expired - Lifetime ES2408245T3 (es)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2002001983 2002-01-09
JP2002001983 2002-01-09
JP2002204714 2002-07-12
JP2002204714 2002-07-12
JP2002346062 2002-11-28
JP2002346062A JP4114859B2 (ja) 2002-01-09 2002-11-28 動きベクトル符号化方法および動きベクトル復号化方法

Publications (1)

Publication Number Publication Date
ES2408245T3 true ES2408245T3 (es) 2013-06-19

Family

ID=27348065

Family Applications (11)

Application Number Title Priority Date Filing Date
ES10169925T Expired - Lifetime ES2408214T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de vectores de movimiento
ES10169926T Expired - Lifetime ES2410533T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10187156T Expired - Lifetime ES2392513T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10187162T Expired - Lifetime ES2388814T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de vectores de movimiento
ES10169924T Expired - Lifetime ES2441223T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes
ES10187172.1T Expired - Lifetime ES2600520T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de vectores de movimiento
ES10169922T Expired - Lifetime ES2408245T3 (es) 2002-01-09 2003-01-08 Aparato de decodificación de imágenes en movimiento
ES10169913T Expired - Lifetime ES2408013T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10169919T Expired - Lifetime ES2408241T3 (es) 2002-01-09 2003-01-08 Aparato de codificación de imágenes en movimiento
ES10187151.5T Expired - Lifetime ES2600786T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10169923T Expired - Lifetime ES2441222T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de imágenes y aparato de codificación de imágenes

Family Applications Before (6)

Application Number Title Priority Date Filing Date
ES10169925T Expired - Lifetime ES2408214T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de vectores de movimiento
ES10169926T Expired - Lifetime ES2410533T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10187156T Expired - Lifetime ES2392513T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10187162T Expired - Lifetime ES2388814T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de vectores de movimiento
ES10169924T Expired - Lifetime ES2441223T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes
ES10187172.1T Expired - Lifetime ES2600520T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de vectores de movimiento

Family Applications After (4)

Application Number Title Priority Date Filing Date
ES10169913T Expired - Lifetime ES2408013T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10169919T Expired - Lifetime ES2408241T3 (es) 2002-01-09 2003-01-08 Aparato de codificación de imágenes en movimiento
ES10187151.5T Expired - Lifetime ES2600786T3 (es) 2002-01-09 2003-01-08 Procedimiento de decodificación de vectores de movimiento
ES10169923T Expired - Lifetime ES2441222T3 (es) 2002-01-09 2003-01-08 Procedimiento de codificación de imágenes y aparato de codificación de imágenes

Country Status (18)

Country Link
US (22) US7362807B2 (es)
EP (12) EP2249575B1 (es)
JP (1) JP4114859B2 (es)
KR (4) KR100946846B1 (es)
CN (1) CN1295934C (es)
AT (1) ATE493846T1 (es)
AU (1) AU2003201906B2 (es)
BR (2) BR0302580A (es)
CA (3) CA2762023C (es)
CY (5) CY1114049T1 (es)
DE (1) DE60335516D1 (es)
DK (12) DK2273793T3 (es)
ES (11) ES2408214T3 (es)
HU (2) HUE032083T2 (es)
MX (1) MXPA03007629A (es)
PT (11) PT2249573E (es)
SI (5) SI2293581T1 (es)
WO (1) WO2003061297A1 (es)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
KR100424762B1 (ko) * 2001-09-06 2004-03-30 삼성전자주식회사 영상 데이터 제공 시스템 및 방법
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
KR100906473B1 (ko) * 2002-07-18 2009-07-08 삼성전자주식회사 개선된 움직임 벡터 부호화 및 복호화 방법과 그 장치
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
NO318318B1 (no) * 2003-06-27 2005-02-28 Tandberg Telecom As Fremgangsmate for forbedret koding av video
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
FR2860678A1 (fr) * 2003-10-01 2005-04-08 Thomson Licensing Sa Procede de codage differentiel
US7480334B2 (en) * 2003-12-23 2009-01-20 Genesis Microchip Inc. Temporal motion vector filtering
JP3879741B2 (ja) * 2004-02-25 2007-02-14 ソニー株式会社 画像情報符号化装置および画像情報符号化方法
KR101215189B1 (ko) 2004-07-07 2012-12-24 다우 글로벌 테크놀로지스 엘엘씨 에틸렌 중합체 조성물의 다단계 제조 방법
US20060012719A1 (en) * 2004-07-12 2006-01-19 Nokia Corporation System and method for motion prediction in scalable video coding
KR100584603B1 (ko) 2004-08-03 2006-05-30 학교법인 대양학원 다시점 영상의 다이렉트 모드 움직임 예측 방법 및 장치
KR101104828B1 (ko) * 2004-12-09 2012-01-16 삼성전자주식회사 움직임 벡터 연산 장치 및 그 방법
US7728909B2 (en) * 2005-06-13 2010-06-01 Seiko Epson Corporation Method and system for estimating motion and compensating for perceived motion blur in digital video
JP2007028393A (ja) * 2005-07-20 2007-02-01 Matsushita Electric Ind Co Ltd 双方向予測符号化ピクチャの直接モードブロックの動きベクトルを求める方法
JP4879558B2 (ja) * 2005-11-02 2012-02-22 パナソニック株式会社 動きベクトル検出装置
US8315308B2 (en) * 2006-01-11 2012-11-20 Qualcomm Incorporated Video coding with fine granularity spatial scalability
US7644666B2 (en) 2006-02-09 2010-01-12 Rehrig Pacific Company Pallet
US20070274396A1 (en) * 2006-05-26 2007-11-29 Ximin Zhang Complexity adaptive skip mode estimation for video encoding
US8275039B2 (en) * 2006-11-07 2012-09-25 Samsung Electronics Co., Ltd. Method of and apparatus for video encoding and decoding based on motion estimation
KR101383540B1 (ko) 2007-01-03 2014-04-09 삼성전자주식회사 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법
KR100968204B1 (ko) * 2007-01-11 2010-07-06 전자부품연구원 다시점 비디오 코덱에서의 영상 예측 방법 및 이를 위한프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
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
US20080247466A1 (en) * 2007-04-09 2008-10-09 Jian Wang Method and system for skip mode detection
BRPI0809512A2 (pt) * 2007-04-12 2016-03-15 Thomson Licensing método e aparelho para mesclagem dependente de contexto para modos salto-direto para codificação e decodificação de vídeo
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
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
CN100583649C (zh) * 2007-07-23 2010-01-20 华为技术有限公司 矢量编/解码方法、装置及流媒体播放器
JP2009055519A (ja) * 2007-08-29 2009-03-12 Sony Corp 符号化処理装置、符号化処理方法、復号処理装置、及び、復号処理方法
KR101560182B1 (ko) 2008-01-07 2015-10-15 삼성전자주식회사 다시점 비디오 부호화 방법과 그 장치 및 다시점 비디오 복호화 방법과 그 장치
KR101524465B1 (ko) 2008-01-10 2015-06-02 삼성전자주식회사 색차 보상을 이용한 다시점 비디오 부호화 방법과 그 장치 및 다시점 비디오 복호화 방법과 그 장치
JP5194833B2 (ja) * 2008-01-23 2013-05-08 ソニー株式会社 符号化装置および方法、記録媒体、並びにプログラム
JP5322956B2 (ja) * 2008-01-29 2013-10-23 パナソニック株式会社 画像符号化装置および画像符号化方法
US9886231B2 (en) 2008-03-28 2018-02-06 Kopin Corporation Head worn wireless computer having high-resolution display suitable for use as a mobile internet device
US8165211B2 (en) * 2008-05-30 2012-04-24 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus of de-interlacing video
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
TWI405469B (zh) * 2009-02-20 2013-08-11 Sony Corp Image processing apparatus and method
JP5083248B2 (ja) * 2009-03-05 2012-11-28 富士通セミコンダクター株式会社 画像データ復号演算装置
WO2010131903A2 (en) * 2009-05-12 2010-11-18 Lg Electronics Inc. Method and apparatus for processing a video signal
EP2765778B1 (en) * 2009-06-18 2016-08-17 Kabushiki Kaisha Toshiba Video encoding apparatus
US9628794B2 (en) * 2009-06-18 2017-04-18 Kabushiki Kaisha Toshiba Video encoding apparatus and a video decoding apparatus
US8462852B2 (en) * 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US20110002387A1 (en) * 2009-07-03 2011-01-06 Yi-Jen Chiu Techniques for motion estimation
US8917769B2 (en) * 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
AU2015201666C1 (en) * 2010-01-19 2017-04-27 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding motion vector based on reduced motion vector predictor candidates
KR101768207B1 (ko) * 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US9351017B2 (en) 2010-01-19 2016-05-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding images using a motion vector of a previous block as a motion vector for the current block
US9794556B2 (en) * 2010-02-17 2017-10-17 Electronics And Telecommunications Research Institute Method and device for simplifying encoding and decoding of ultra-high definition images
US8354548B2 (en) * 2010-02-19 2013-01-15 Bristol-Myers Squibb Company Glycine chroman-6-sulfonamides for use as inhibitors of diacylglycerol lipase
CN107295346B (zh) * 2010-04-01 2020-11-10 索尼公司 图像处理设备和方法
CN105791860B (zh) * 2010-05-26 2018-10-16 Lg电子株式会社 用于处理视频信号的方法和设备
KR101456499B1 (ko) * 2010-07-09 2014-11-03 삼성전자주식회사 움직임 벡터의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9300970B2 (en) 2010-07-09 2016-03-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding motion vector
US10013976B2 (en) 2010-09-20 2018-07-03 Kopin Corporation Context sensitive overlays in voice controlled headset computer displays
AU2011306322B2 (en) 2010-09-24 2016-06-02 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
SG189114A1 (en) * 2010-09-30 2013-05-31 Mitsubishi Electric Corp Moving image encoding device, moving image decoding device, moving image coding method, and moving image decoding method
JP5195875B2 (ja) * 2010-11-10 2013-05-15 ソニー株式会社 復号装置及び方法、記録媒体、並びにプログラム
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
FI3985979T3 (fi) 2010-12-13 2024-04-23 Electronics & Telecommunications Res Inst Menetelmä vertailuyksikön määrittämiseksi
US8781165B2 (en) * 2010-12-14 2014-07-15 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for displacement determination by motion compensation
US9547911B2 (en) 2010-12-14 2017-01-17 The United States Of America, As Represented By The Secretary Of The Navy Velocity estimation from imagery using symmetric displaced frame difference equation
CN102986224B (zh) 2010-12-21 2017-05-24 英特尔公司 用于增强的解码器侧运动向量导出处理的系统及方法
KR101377528B1 (ko) 2011-01-15 2014-03-27 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 방법 및 장치
WO2012096551A2 (ko) * 2011-01-15 2012-07-19 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 방법 및 장치
SG189843A1 (en) * 2011-01-19 2013-06-28 Mediatek Inc Method and apparatus for parsing error robustness of temporal motion vector prediction
US9749657B2 (en) 2011-01-21 2017-08-29 Sharp Kabushiki Kaisha Buffer compression for motion vector competition
EP2675167B1 (en) * 2011-02-10 2018-06-20 Sun Patent Trust Moving picture encoding method, moving picture encoding device, moving picture decoding method, moving picture decoding device, and moving picture encoding decoding device
US9648334B2 (en) 2011-03-21 2017-05-09 Qualcomm Incorporated Bi-predictive merge mode based on uni-predictive neighbors in video coding
EP3937497B1 (en) 2011-03-21 2023-02-22 LG Electronics, Inc. Motion vector predictor selection
US8923613B2 (en) 2011-04-15 2014-12-30 Panasonic Corporation Image compression device, image compression method, integrated circuit, program, and picture display apparatus
WO2012147344A1 (ja) 2011-04-27 2012-11-01 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、及び動画像復号プログラム
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
US10627860B2 (en) 2011-05-10 2020-04-21 Kopin Corporation Headset computer that uses motion and voice commands to control information display and remote devices
EP2716046A4 (en) 2011-05-27 2014-09-03 Mediatek Inc METHOD AND APPARATUS FOR CIRCUIT BREAKER REDUCTION FOR VIDEO PROCESSING
KR20130030181A (ko) 2011-09-16 2013-03-26 한국전자통신연구원 움직임 벡터 예측기를 이용한 움직임 벡터 부호화/복호화 방법 및 장치
US8929954B2 (en) 2012-04-25 2015-01-06 Kopin Corporation Headset computer (HSC) as auxiliary display with ASR and HT input
CN102946535B (zh) * 2012-10-09 2015-05-13 华为技术有限公司 预测块的视差矢量预测值获取的方法和装置
KR101676788B1 (ko) * 2014-10-17 2016-11-16 삼성전자주식회사 멀티코어 시스템 기반 비디오 병렬 복호화 방법 및 그 장치
US10321150B2 (en) 2015-03-31 2019-06-11 Realnetworks, Inc. Motion vector selection and prediction in video coding systems and methods
CN105163123B (zh) * 2015-09-06 2018-02-13 福州瑞芯微电子股份有限公司 一种hevc帧间预测子块mv信息的存取方法和装置
US10652569B2 (en) 2015-12-22 2020-05-12 Realnetworks, Inc. Motion vector selection and prediction in video coding systems and methods
JP6356762B2 (ja) * 2016-10-31 2018-07-11 株式会社東芝 動画像符号化装置及び方法
US20180184107A1 (en) * 2016-12-28 2018-06-28 Novatek Microelectronics Corp. Motion estimation method and motion estimation apparatus
EP3769528A4 (en) * 2018-03-19 2021-11-10 QUALCOMM Incorporated IMPROVEMENTS TO ADVANCED MOVEMENT VECTOR PREDICTION
US10469869B1 (en) * 2018-06-01 2019-11-05 Tencent America LLC Method and apparatus for video coding
EP3648059B1 (en) * 2018-10-29 2021-02-24 Axis AB Video processing device and method for determining motion metadata for an encoded video

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2002017A (en) * 1931-03-21 1935-05-21 Bendix Brake Co Brake
FR2644779A1 (fr) * 1989-03-22 1990-09-28 Centre Nat Rech Scient Composition ceramique a constante dielectrique elevee
CA2079434A1 (en) * 1991-09-30 1993-03-31 Derek Andrew Motion vector estimation, motion picture encoding and storage
PT2375753E (pt) 1993-03-24 2013-10-21 Sony Corp Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo
JPH0730896A (ja) * 1993-06-25 1995-01-31 Matsushita Electric Ind Co Ltd 動きベクトル符号化及び復号化方法
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
EP2129133A3 (en) 1995-08-29 2012-02-15 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
JP2001224036A (ja) * 1995-10-18 2001-08-17 Sharp Corp 動画像符号化装置
KR0181069B1 (ko) * 1995-11-08 1999-05-01 배순훈 움직임 추정장치
JP3344577B2 (ja) 1996-09-09 2002-11-11 ソニー株式会社 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録方法
JP3263807B2 (ja) * 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US5991447A (en) * 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
TW429636B (en) * 1998-02-18 2001-04-11 Murata Manufacturing Co Piezoelectric ceramic composition
TW563265B (en) * 1998-02-18 2003-11-21 Murata Manufacturing Co Piezoelectric ceramic composition
JPH11317961A (ja) 1998-03-05 1999-11-16 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像復号化装置,画像符号化方法及び画像復号化方法,並びにデ―タ記憶媒体
KR100328417B1 (ko) * 1998-03-05 2002-03-16 마츠시타 덴끼 산교 가부시키가이샤 화상부호화장치및화상복호화장치, 화상부보화방법 및 화상복호화방법, 및 데이터기억매체
JP2000099864A (ja) 1998-09-21 2000-04-07 Yoshitaka Kurita 介護者支援装置
US6983018B1 (en) * 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
JP2000299864A (ja) 1999-04-12 2000-10-24 Canon Inc 動画像処理方法
JP2000299684A (ja) * 1999-04-12 2000-10-24 Telecommunication Advancement Organization Of Japan データ通信システム
CN1147159C (zh) * 1999-04-27 2004-04-21 三星电子株式会社 实时运动图像编码的高速运动估计方法及其装置
US7885340B2 (en) * 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
EP1056293A1 (en) * 1999-05-25 2000-11-29 Deutsche Thomson-Brandt Gmbh Method and apparatus for block motion estimation
CN1182726C (zh) 1999-10-29 2004-12-29 皇家菲利浦电子有限公司 视频编码方法
US6671319B1 (en) * 1999-12-28 2003-12-30 Sony Corporation Methods and apparatus for motion estimation using neighboring macroblocks
KR100680452B1 (ko) * 2000-02-22 2007-02-08 주식회사 팬택앤큐리텔 움직임 벡터 메모리의 갱신방법 및 장치
KR100708091B1 (ko) * 2000-06-13 2007-04-16 삼성전자주식회사 양방향 움직임 벡터를 이용한 프레임 레이트 변환 장치 및그 방법
US8005145B2 (en) * 2000-08-11 2011-08-23 Nokia Corporation Method and apparatus for transferring video frame in telecommunication system
US6842483B1 (en) * 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
US7327787B1 (en) 2000-11-20 2008-02-05 Intel Corporation Method and apparatus for motion estimation
JP2004532540A (ja) * 2001-03-05 2004-10-21 インタービデオインコーポレイテッド 誤り耐性のある符号化のためのシステム及び方法
KR100378795B1 (ko) * 2001-04-02 2003-04-03 엘지전자 주식회사 동영상에서 b픽쳐의 신축적인 다이렉트 모드 코딩 방법
US8111754B1 (en) * 2001-07-11 2012-02-07 Dolby Laboratories Licensing Corporation Interpolation of video compression frames
US6980596B2 (en) 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
US7003035B2 (en) * 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
KR100491530B1 (ko) * 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
US20040001546A1 (en) * 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
KR100774296B1 (ko) * 2002-07-16 2007-11-08 삼성전자주식회사 움직임 벡터 부호화 방법, 복호화 방법 및 그 장치
US7020200B2 (en) * 2002-08-13 2006-03-28 Lsi Logic Corporation System and method for direct motion vector prediction in bi-predictive video frames and fields
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US8085846B2 (en) * 2004-08-24 2011-12-27 Thomson Licensing Method and apparatus for decoding hybrid intra-inter coded blocks
US20130003843A1 (en) * 2010-03-12 2013-01-03 Mediatek Singapore Pte. Ltd. Motion Prediction Method

Also Published As

Publication number Publication date
SI2249573T1 (sl) 2013-04-30
EP2273794A3 (en) 2011-02-23
DK2273793T3 (da) 2012-10-15
PT1439713E (pt) 2011-02-25
US8885718B2 (en) 2014-11-11
SI2249576T1 (sl) 2013-12-31
PT2273793E (pt) 2012-11-02
US20160360227A1 (en) 2016-12-08
DK2249577T3 (da) 2013-04-15
EP2249570A2 (en) 2010-11-10
US7362807B2 (en) 2008-04-22
ES2392513T3 (es) 2012-12-11
CA2762023A1 (en) 2003-07-24
WO2003061297A1 (en) 2003-07-24
US8885717B2 (en) 2014-11-11
DK2293581T3 (en) 2016-12-05
PT2249578E (pt) 2013-05-06
DK2249576T3 (da) 2013-11-25
KR20080002952A (ko) 2008-01-04
CN1496654A (zh) 2004-05-12
PT2249575E (pt) 2013-12-09
CA2762054C (en) 2014-08-26
ES2441222T3 (es) 2014-02-03
KR20040068854A (ko) 2004-08-02
BR0302580A (pt) 2004-02-25
US20130329802A1 (en) 2013-12-12
EP2249575B1 (en) 2013-10-16
CY1118320T1 (el) 2017-06-28
USRE46924E1 (en) 2018-06-26
ES2600520T3 (es) 2017-02-09
CA2438295C (en) 2012-09-25
US8401080B2 (en) 2013-03-19
EP2249578A3 (en) 2011-02-23
US20150373364A1 (en) 2015-12-24
EP2249576A2 (en) 2010-11-10
EP2273795A2 (en) 2011-01-12
EP1439713A1 (en) 2004-07-21
US20180007383A1 (en) 2018-01-04
ES2441223T3 (es) 2014-02-03
KR100923379B1 (ko) 2009-10-27
CY1114230T1 (el) 2016-08-31
CN1295934C (zh) 2007-01-17
CY1114049T1 (el) 2016-07-27
EP2249578B1 (en) 2013-03-20
US9407927B2 (en) 2016-08-02
BRPI0302580B1 (pt) 2018-02-27
EP2249577A3 (en) 2011-02-23
DK2273795T3 (en) 2016-10-03
PT2249574E (pt) 2013-05-03
US20150063458A1 (en) 2015-03-05
US20130329804A1 (en) 2013-12-12
KR20090130306A (ko) 2009-12-22
SI2293581T1 (sl) 2016-12-30
EP2273794A2 (en) 2011-01-12
EP2293581A1 (en) 2011-03-09
PT2273795T (pt) 2016-10-05
KR20090130305A (ko) 2009-12-22
ES2408241T3 (es) 2013-06-19
EP2249573B1 (en) 2013-03-20
US20080069230A1 (en) 2008-03-20
US8908769B2 (en) 2014-12-09
ATE493846T1 (de) 2011-01-15
EP2293581B1 (en) 2016-08-10
CA2762023C (en) 2014-09-30
US10313700B2 (en) 2019-06-04
CA2438295A1 (en) 2003-07-24
MXPA03007629A (es) 2003-12-04
US9451278B2 (en) 2016-09-20
US20100118969A1 (en) 2010-05-13
EP2249570A3 (en) 2011-02-23
US8290048B2 (en) 2012-10-16
US20080069228A1 (en) 2008-03-20
CY1114052T1 (el) 2016-07-27
US9161050B2 (en) 2015-10-13
US20130329801A1 (en) 2013-12-12
EP2249577A2 (en) 2010-11-10
US10362328B2 (en) 2019-07-23
EP2273793A3 (en) 2011-02-23
ES2388814T3 (es) 2012-10-18
AU2003201906B2 (en) 2007-09-13
US8290046B2 (en) 2012-10-16
DK1439713T3 (da) 2011-03-07
KR100946845B1 (ko) 2010-03-09
ES2408013T3 (es) 2013-06-17
DK2249574T3 (da) 2013-04-15
ES2600786T3 (es) 2017-02-10
EP2249574B1 (en) 2013-03-20
KR100946846B1 (ko) 2010-03-09
EP2249576B1 (en) 2013-10-16
ES2408214T3 (es) 2013-06-19
US20150055713A1 (en) 2015-02-26
DK2273794T3 (da) 2012-10-01
PT2293581T (pt) 2016-11-14
EP2249575A3 (en) 2011-02-23
AU2003201906A1 (en) 2003-07-30
EP2249573A2 (en) 2010-11-10
US20130322541A1 (en) 2013-12-05
EP2249573A3 (en) 2011-02-23
HUE032083T2 (en) 2017-09-28
EP2249570B1 (en) 2013-03-20
EP2249574A2 (en) 2010-11-10
USRE48035E1 (en) 2020-06-02
ES2410533T3 (es) 2013-07-02
EP1439713A4 (en) 2006-04-12
CA2762054A1 (en) 2003-07-24
US20040086047A1 (en) 2004-05-06
SI2249570T1 (sl) 2013-04-30
EP2249574A3 (en) 2011-02-23
SI2249578T1 (sl) 2013-04-30
US8885720B2 (en) 2014-11-11
US8885719B2 (en) 2014-11-11
EP2273793B1 (en) 2012-09-26
DK2249570T3 (da) 2013-04-15
EP2249576A3 (en) 2011-02-23
PT2249577E (pt) 2013-05-03
US20080069229A1 (en) 2008-03-20
HUE031077T2 (en) 2017-06-28
US9124897B2 (en) 2015-09-01
JP2004096705A (ja) 2004-03-25
US20150055714A1 (en) 2015-02-26
US9124896B2 (en) 2015-09-01
JP4114859B2 (ja) 2008-07-09
ES2408013T9 (es) 2013-12-03
US20130329803A1 (en) 2013-12-12
CY1114867T1 (el) 2016-12-14
US8290047B2 (en) 2012-10-16
US20150373363A1 (en) 2015-12-24
EP2249575A2 (en) 2010-11-10
DE60335516D1 (de) 2011-02-10
EP2249578A2 (en) 2010-11-10
EP2249577B1 (en) 2013-03-20
PT2249573E (pt) 2013-05-03
US20130329805A1 (en) 2013-12-12
US20160360228A1 (en) 2016-12-08
EP2273795A3 (en) 2011-02-23
US8902987B2 (en) 2014-12-02
PT2249576E (pt) 2013-12-09
EP2273793A2 (en) 2011-01-12
US20080069227A1 (en) 2008-03-20
DK2249578T3 (da) 2013-04-15
EP1439713B1 (en) 2010-12-29
PT2249570E (pt) 2013-05-03
DK2249575T3 (da) 2013-11-25
EP2273795B1 (en) 2016-08-10
ES2392513T9 (es) 2013-02-18
KR100946848B1 (ko) 2010-03-09
EP2273794B1 (en) 2012-08-22
DK2249573T3 (da) 2013-04-15

Similar Documents

Publication Publication Date Title
ES2408245T3 (es) Aparato de decodificación de imágenes en movimiento
ES2588179T3 (es) Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento
JP5090552B2 (ja) 画像復号化方法、画像復号化装置、プログラムおよび記録媒体
JP2010081648A (ja) 動きベクトル符号化方法、装置およびデータ記憶媒体
ES2353957T3 (es) Procedimiento de codificación de vectores de movimiento y procedimiento de decodificación de vectores de movimiento.