ES2788382T3 - Método para codificar y descodificar imágenes B en modo directo - Google Patents

Método para codificar y descodificar imágenes B en modo directo Download PDF

Info

Publication number
ES2788382T3
ES2788382T3 ES18155063T ES18155063T ES2788382T3 ES 2788382 T3 ES2788382 T3 ES 2788382T3 ES 18155063 T ES18155063 T ES 18155063T ES 18155063 T ES18155063 T ES 18155063T ES 2788382 T3 ES2788382 T3 ES 2788382T3
Authority
ES
Spain
Prior art keywords
block
motion
image
target
motion vector
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
ES18155063T
Other languages
English (en)
Inventor
Shinya Kadono
Satoshi Kondo
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.)
Godo Kaisha IP Bridge 1
Original Assignee
Godo Kaisha IP Bridge 1
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=32375820&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2788382(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Godo Kaisha IP Bridge 1 filed Critical Godo Kaisha IP Bridge 1
Application granted granted Critical
Publication of ES2788382T3 publication Critical patent/ES2788382T3/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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
    • 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
    • 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/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/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • 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/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/583Motion compensation with overlapping blocks
    • 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

Abstract

Un método para generar y descodificar una secuencia de bits de una imagen B objetivo, en donde generar la secuencia de bits de la imagen B objetivo incluye las siguientes etapas: (1) una etapa de obtener un vector de movimiento a partir de un bloque para el que se ha realizado una compensación de movimiento, estando incluido dicho bloque en un bloque ubicado conjuntamente, estando incluido el bloque ubicado conjuntamente en un macrobloque ubicado conjuntamente, estando incluido el macrobloque ubicado conjuntamente en una imagen subsiguiente en orden de visualización a la imagen B objetivo, en donde el tamaño de dicho bloque es menor que el tamaño de un bloque objetivo de codificación incluido en un macrobloque objetivo de codificación incluido en la imagen B objetivo y el tamaño de dicho bloque ubicado conjuntamente es el mismo que el bloque objetivo de codificación y en donde dicho bloque está ubicado en una esquina de dicho macrobloque ubicado conjuntamente; (2) una etapa de determinar un vector de movimiento del bloque objetivo de codificación para realizar una compensación de movimiento sobre el bloque objetivo de codificación usando el vector de movimiento obtenido, en donde, cuando un tamaño del vector de movimiento obtenido es un valor predeterminado o menor, el vector de movimiento del bloque objetivo de codificación se determina (S402, S502, S702) como "0", y, cuando el tamaño del vector de movimiento obtenido supera el valor predeterminado, el vector de movimiento del bloque objetivo de codificación se determina (S404, S504, S704) usando vectores de movimiento de macrobloques adyacentes que están ubicados adyacentes al macrobloque objetivo de codificación; (3) una etapa de realizar una compensación de movimiento (S403, S503, S703) para el bloque objetivo de codificación para generar una imagen predictiva del bloque objetivo de codificación mediante el uso del vector de movimiento determinado del bloque objetivo de codificación; y (4) una etapa de generar la secuencia de bits de la imagen B objetivo mediante la codificación de una imagen de diferencia entre el bloque objetivo de codificación y la imagen predictiva del bloque objetivo de codificación; en donde descodificar la secuencia de bits de la imagen B objetivo incluye las siguientes etapas: (1) una etapa de obtención de vector de movimiento de obtener un vector de movimiento a partir de un bloque para el que se ha realizado una compensación de movimiento, estando incluido dicho bloque en un bloque ubicado conjuntamente, estando incluido el bloque ubicado conjuntamente en un macrobloque ubicado conjuntamente, estando incluido el macrobloque ubicado conjuntamente en una imagen subsiguiente en orden de visualización a la imagen B objetivo, en donde el tamaño de dicho bloque es menor que el tamaño de un bloque objetivo de descodificación incluido en un macrobloque objetivo de descodificación incluido en la imagen B objetivo y el tamaño de dicho bloque ubicado conjuntamente es el mismo que el bloque objetivo de descodificación y en donde dicho bloque está ubicado en una esquina de dicho macrobloque ubicado conjuntamente; (2) una etapa de determinación de vector de movimiento de determinar un vector de movimiento del bloque objetivo de descodificación para realizar una compensación de movimiento sobre el bloque objetivo de descodificación usando el vector de movimiento obtenido, en donde, cuando un tamaño del vector de movimiento obtenido es un valor predeterminado o menor, el vector de movimiento del bloque objetivo de descodificación se determina (S402, S502, S702) como "0", y, cuando el tamaño del vector de movimiento obtenido supera el valor predeterminado, el vector de movimiento del bloque objetivo de descodificación se determina (S404, S504, S704) usando vectores de movimiento de macrobloques adyacentes que están ubicados adyacentes al macrobloque objetivo de descodificación incluido en la imagen B objetivo; (3) una etapa de compensación de movimiento de realizar una compensación de movimiento (S403, S503, S703) para el bloque objetivo de descodificación para generar una imagen predictiva del bloque objetivo de descodificación mediante el uso del vector de movimiento determinado del bloque objetivo de descodificación; y (4) una etapa de adición de añadir la imagen predictiva del bloque objetivo de descodificación y una imagen de diferencia obtenida mediante la descodificación de la secuencia de bits de la señal de imagen B objetivo de descodificación para generar una imagen de bloque reconstruido.

Description

DESCRIPCIÓN
Método para codificar y descodificar imágenes B en modo directo
Campo técnico
La presente invención se refiere a un método de compensación de movimiento usando vectores de movimiento y a métodos de codificación y descodificación de imágenes usando el método de compensación de movimiento.
Antecedentes de la técnica
De acuerdo con el Documento de Introducción a JVT "Timestamp Independent Motion Vector Prediction for P and B frames with Division Elimination" de A. M. Tourapis y col. (Equipo Mixto de Vídeo (JVT) de ISO/IEC MPEG e ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 e ITU-T SG16 Q.6), 4a Reunión: Klagenfurt, Austria, 22 -26 de julio de 2002), el Modo directo puede mejorar de forma considerable la eficiencia de codificación de tramas B dentro de la norma de JVT debido a que, mediante el aprovechamiento de la correlación que puede existir entre tramas, este puede representar de forma eficaz el movimiento de bloque sin tener que transmitir información de movimiento alguna. Antes del documento, la única correlación que se había aprovechado era una correlación temporal que, desafortunadamente, implicaba que la información de indicación de tiempo para cada trama tenía que estar disponible tanto en el codificador como en el descodificador. Además, el desempeño de este modo se deteriora cuando aumenta la distancia entre tramas, debido a que también disminuye la correlación temporal. Los problemas se vuelven incluso mayores cuando se habilita la referenciación de múltiples tramas, como es el caso del códec de JVT. En la propuesta / Documento de Introducción, se presentan métodos alternativos presentes de cálculo de los parámetros de modo directo que se dirigen a una eficiencia de codificación mejor que la del método previo, al tiempo que también abordan la cuestión de la independencia de indicación de tiempo analizada anteriormente. En esencia, los métodos propuestos usan conceptos que se adoptaron con éxito en tramas P y, en particular, para la codificación del modo de salto, aprovechando el Predictor de Vectores de Movimiento usado para la codificación de parámetros de movimiento dentro del cálculo de la información de movimiento del modo directo.
También se propone un método adaptativo que combina de forma eficiente el cálculo temporal y espacial de los parámetros de movimiento.
En el Documento de Introducción a JVT "Reduced Decoder Peak Bus Bandwidth" de L. Winger (Equipo Mixto de Vídeo (JVT) de ISO/IEC MPEG e ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 e ITU-T SG16Q.6), 3a Reunión: Fairfax, Virginia, EE. UU., 6 - 10 de mayo de 2002), se proporciona una propuesta para reducir el coste de sistema de un descodificador conforme mediante la reducción del ancho de banda de bus del caso más desfavorable. La memoria física se comporta del mejor modo cuando se accede a la misma de una forma regular. Para reducir el ancho de banda de bus, los accesos a una memoria (de tramas de referencia) no local para la compensación de movimiento deberían ser tan regulares como fuera posible. En el JM entonces actual, la preocupación principal es el número máximo de bloques pequeños a los que se ha de acceder con el fin de compensar en movimiento un macrobloque dado. La memoria física se puede estructurar para comportarse de forma eficiente para algo tan regular como un acceso de bloque individual; sin embargo, a medida que aumenta el número total de accesos de bloque y disminuye el tamaño de bloque, la tara (tal como el desperdicio debido a los tamaños de unidad de acceso mínimos) aumenta de forma inevitable. El número total de píxeles movidos a través del bus es aumentado por la tara adicional de la memoria de referencia de "frontera" adicional que ha de acompañar a cada bloque con el fin de realizar una interpolación de subpíxel de 6 derivaciones para cada bloque al que se hace referencia. La propuesta (documento de introducción) se dirige a una solución para reducir el número total máximo de accesos de bloque sin afectar al desempeño de distorsión de tasa del JM actual.
En años recientes, acompañado por el desarrollo de aplicaciones de multimedia, se está volviendo general manejar uniformemente medios de información completos tales como una imagen, una voz y un texto. En este momento, es posible manejar los medios uniformemente al digitalizar medios completos. Sin embargo, la imagen digitalizada tiene una cantidad extremadamente grande de datos y, por lo tanto, es indispensable una tecnología para comprimir la información de una imagen. Por otro lado, también es importante normalizar la tecnología de compresión para interoperar datos de imagen comprimidos. Como normas de tecnología de compresión de imagen, están H. 261 y H. 263 de ITU-T (Sección de Normalización de Telecomunicación Internacional), MPEG (Grupo de Expertos en Imágenes en Movimiento)-1, MPEG-2, MPEG-4 y similares de ISO/ IEC (Organización de Normalización Internacional / Comisión Electrotécnica Internacional).
En general, el volumen de información es comprimido al reducir la redundancia en direcciones temporales y espaciales de la codificación de imágenes en movimiento. Por lo tanto, para la codificación por predicción entre imágenes enfocada a reducir una redundancia temporal, la estimación de movimiento y la generación de una imagen predictiva se realizan de una forma bloque a bloque haciendo referencia a una imagen precedente y una imagen siguiente, y se realiza una codificación para un valor de diferencia entre una imagen predictiva obtenida y una imagen de un macrobloque actual que se va a codificar. En el presente caso, una imagen es un término para representar una pantalla; significa una trama en una imagen progresiva y una trama o un campo en una imagen entrelazada. En el presente caso, una imagen entrelazada es una imagen en la que una trama está formada con dos campos con tiempo diferente. En el proceso de codificación y descodificación de una imagen entrelazada, es posible procesar una trama como una trama "tal cual" o dos campos. También es posible procesar una estructura de trama o una estructura de campo para cada bloque en la trama.
Una imagen que no tiene una imagen de referencia y en la que la codificación por predicción entre imágenes se realiza se denomina imagen I. Además, una imagen en la que solo se hace referencia a una imagen y la codificación por predicción entre imágenes se realiza se denomina imagen P. Además, una imagen en la que se hace referencia a dos imágenes en un momento y se puede realizar la codificación entre imágenes se denomina imagen B. En una imagen B, se puede hacer referencia a dos imágenes como una combinación arbitraria a partir de imágenes hacia delante o imágenes hacia atrás en orden de visualización. Es posible seleccionar imágenes de referencia adecuadas para cada bloque que sea una unidad básica para codificación y descodificación. Se distinguen dos imágenes de referencia: una imagen de referencia que se describe anteriormente en una secuencia de bits codificada es la primera imagen de referencia y una imagen de referencia que se describe posteriormente en la secuencia de bits codificada es la segunda imagen de referencia. Pero es necesario que las imágenes de referencia ya se hayan codificado descodificado como una condición en el caso de codificar y descodificar estas imágenes.
Para codificar una imagen P o una imagen B, se usa la codificación por predicción entre imágenes usando compensación de movimiento. La codificación por predicción entre imágenes usando compensación de movimiento es un método de codificación en el que la compensación de movimiento se aplica a la predicción entre imágenes. La compensación de movimiento es un método que no realiza simplemente la predicción basándose en valores de píxel de un bloque en una trama de referencia ubicada conjuntamente con un bloque actual sino que estima la cantidad de movimiento (posteriormente en el presente documento, este se denomina "vector de movimiento") de cada parte y realiza la predicción considerando la cantidad de movimiento para mejorar la precisión predictiva y reducir la cantidad de datos. Por ejemplo, estimar un vector de movimiento de una imagen actual que se va a codificar, obtener un valor predictivo que haya sido desplazado la cantidad del vector de movimiento y codificar residuales predictivos que sean la diferencia entre el valor predictivo y un valor de píxel de cada píxel en la imagen actual que se va a codificar, reducen con éxito la cantidad de datos. En el caso de este método, la información de un vector de movimiento es necesaria en el momento de descodificar y, por lo tanto, el vector de movimiento también es codificado y registrado o transmitido.
El vector de movimiento es estimado de una forma bloque a bloque, los bloques tienen un tamaño predeterminado. En concreto, el vector de movimiento es estimado al mover cada bloque en una imagen de referencia que corresponda a cada bloque en una imagen actual que se va a codificar en un área de búsqueda y al detectar la ubicación del bloque de referencia que sea más similar al bloque actual que se va a codificar.
La figura 1 es un diagrama de bloques que muestra la estructura de un aparato de codificación de imágenes 100 convencional. El aparato de codificación de imágenes 100 incluye una unidad de diferencia 101, una unidad de codificación de imágenes 102, una unidad de codificación de longitud variable 103, una unidad de descodificación de imágenes 104, una unidad de adición 105, una memoria de imágenes 106, una memoria de imágenes 107, una unidad de compensación de movimiento 108, una unidad de estimación de vectores de movimiento 109 y una unidad de almacenamiento de vectores de movimiento 110. En el presente caso, como un tamaño de bloque para compensación de movimiento, se selecciona un tamaño adecuado de una forma macrobloque a macrobloque a partir de siete tamaños de bloque y se usa para codificar y descodificar, los siete tamaños de bloque siendo 4 * 4 píxeles, 4 * 8 píxeles, 8 * 4 píxeles, 8 * 8 píxeles, 8 * 16 píxeles, 16 * 8 píxeles y 16 * 16 píxeles de acuerdo con TML8 de H.26L de ITU-T, que está actualmente bajo normalización.
La memoria de imágenes 107 almacena datos de imagen "Img" que representan imágenes en movimiento introducidas en el orden de visualización de una forma imagen a imagen. La unidad de diferencia 101 calcula la diferencia entre los datos de imagen "Img" extraídos por lectura de la memoria de imágenes 107 y datos de imagen predictivos "Pred" introducidos de la unidad de compensación de movimiento 108 y genera datos de imagen residuales predictivos "Res". La unidad de codificación de imágenes 102 realiza procesos de codificación tales como conversión y cuantificación de frecuencia a los datos de imagen residual predictivos "Res" y genera datos residuales codificados "ResCodificados". En el caso de la codificación entre imágenes, la compensación por movimiento entre imágenes no se realiza y, por lo tanto, el valor de los datos de imagen predictivos "Pred" se cree que es de "0".
La unidad de estimación de vectores de movimiento 109 estima el vector de movimiento que muestra la ubicación predicha como óptima en el área de búsqueda en la imagen de referencia que es datos de imagen de referencia Ref, que son datos de imagen de codificación codificados almacenados en la memoria de imágenes 106 y envía un parámetro de movimiento "ParamMovimiento" que representa el vector de movimiento estimado. Además, en ese momento, la unidad de estimación de vectores de movimiento 109 cambia imágenes de referencia de acuerdo a si una imagen actual que se va a codificar es una imagen P o una imagen B. El modo de codificación "Mod" muestra de qué manera (por ejemplo, cuál de un modo bipredictivo, un modo unidireccional y un modo directo) se realiza la compensación de movimiento. Por ejemplo, en el modo directo, la unidad de estimación de vectores de movimiento 109 calcula vectores de movimiento bipredictivos del bloque actual que se va a compensar en movimiento al usar un vector de movimiento derivado de otro bloque. En el presente caso, una imagen a la que se hace referencia para derivar un vector de movimiento en el modo directo se denomina imagen convencional y un bloque en la imagen convencional ubicada conjuntamente con el bloque actual se denomina bloque convencional. En este caso, los valores de vectores de movimiento en el modo directo se calculan con un macrobloque de 16 * 16 píxeles como la unidad, sin importar el tamaño de bloque que sea realmente la unidad para la compensación de movimiento y los vectores de movimiento calculados no son codificados. Entonces, la unidad de estimación de vectores de movimiento 109 selecciona el vector de movimiento calculado o el vector de movimiento (0, 0) que se va a usar para cada bloque de 4 * 4 píxeles. La unidad de compensación de movimiento 108 genera los datos de imagen predictivos "Pred" basándose en el modo de codificación "Mod" del bloque actual que se va a codificar y los vectores de movimiento estimados por la unidad de estimación de vectores de movimiento 109.
Además, cuando un vector de movimiento indica ubicaciones de subpíxeles tales como un medio píxel y un cuarto de píxel, la unidad de compensación de movimiento 108 interpola valores de píxel de las ubicaciones de subpíxeles tales como un medio píxel y un cuarto de píxel al usar un filtro de paso bajo y similares. La unidad de almacenamiento de vectores de movimiento 110 almacena parámetros de movimiento "ParamMovimiento" emitidos desde la unidad de estimación de vectores de movimiento 109. La unidad de codificación de longitud variable 103 realiza codificación de longitud variable y similares a los datos residuales codificados introducidos "ResCodificados" y los parámetros de movimiento "ParamMovimiento" emitidos desde la unidad de estimación de vectores de movimiento 109 y genera datos codificados "Secuenciabits" al añadir además el modo de codificación "Mod".
La unidad de descodificación de imágenes 104 realiza procesos de descodificación tales como cuantificación inversa y conversión de frecuencia inversa a los datos residuales codificados introducidos "ResCodificados" y genera datos residuales descodificados "ResRecon". La unidad de adición 105 añade los datos residuales descodificados "ResRecon" emitidos desde la unidad de descodificación de imágenes 104 a los datos de imagen predictivos "Pred" introducidos desde la unidad de compensación de movimiento 108 y genera datos de imagen descodificados "Recon". La memoria de imágenes 106 almacena los datos de imagen descodificados generados "Recon".
Cuando la cantidad de movimiento de un sujeto fotogénico es más pequeña que una unidad de píxel entera, el efecto predictivo puede mejorar si la predicción se realiza con un movimiento que sea más pequeño que la unidad de píxel entera. En general, se usa una interpolación de píxeles cuando se calculan valores de píxel de una imagen predictiva con el movimiento que es más pequeño que la unidad de píxel entera. Esta interpolación de píxeles se realiza al filtrar valores de píxel de una imagen de referencia con un filtro lineal (un filtro de paso bajo). Cuando se incrementa el número de derivaciones en este filtro lineal, es más fácil lograr un filtro con adecuadas características de frecuencia y, por lo tanto, el efecto predictivo se mejora pero la cantidad de procesamiento incrementa. Por otro lado, cuando el número de derivaciones de este filtro lineal es pequeño, las características de frecuencia se hacen peores y, por lo tanto, el efecto predictivo se deteriora pero la cantidad de procesamiento disminuye.
La figura 2 es un diagrama que muestra la estructura de un aparato de descodificación de imágenes 200 convencional que realiza una interpolación de píxeles. El aparato de descodificación de imágenes 200 incluye una unidad de descodificación de longitud variable 201, una unidad de descodificación de imágenes 202, una unidad de adición 203, una memoria de imágenes 204, una unidad de almacenamiento de vectores de movimiento 205 y una unidad de compensación de movimiento 206.
La unidad de descodificación de longitud variable 201 extrae varios datos tales como los datos residuales codificados "ResCodificados", parámetros de movimiento "ParamMovimiento" e información del modo de codificación "Mod" en el momento de codificar a partir de los datos codificados introducidos "Secuenciabits". La unidad de descodificación de imágenes 202 descodifica los datos residuales codificados introducidos "ResCodificados" y genera datos de imagen residual predictivos "Res". La unidad de almacenamiento de vectores de movimiento 205 almacena los parámetros de movimiento "ParamMovimiento" extraídos por la unidad de descodificación de longitud variable 201. La unidad de compensación de movimiento 206 incluye dentro una unidad de interpolación de píxeles no ilustrada que interpola valores de píxel de las ubicaciones de subpíxel como un medio píxel y un cuarto de píxel al usar un filtro lineal y similares, y genera los datos de imagen predictivos "Pred" que son datos de compensación de movimiento a partir de los datos de imagen descodificados "Recon" en la memoria de imágenes 204 basándose en el modo de codificación "Mod" en el momento de la codificación, parámetros de movimiento "ParamMovimiento" y similares. En este momento, en el caso del modo directo, la unidad de compensación de movimiento 206 genera los datos de imagen predictivos "Pred" del bloque actual que se va a compensar en movimiento en el mismo tamaño con el tamaño de bloque de la compensación de movimiento de un bloque convencional en una imagen convencional, extraído por lectura de la memoria de imágenes 204. La unidad de adición 203 añade los datos de imagen residuales predictivos "Res" emitidos desde la unidad de descodificación de imágenes 202 a los datos de imagen predictivos "Pred" que son datos de compensación de movimiento emitidos desde la unidad de compensación de movimiento 206 y genera los datos de imagen descodificados "Recon". La memoria de imágenes 204 almacena los datos de imagen descodificados generados "Recon".
Consúltense las normas escritas de MPEG-4 Visual (1999, ISO/IEC 14496-2: 1999 Information Technology-Coding of audio-visual objects - Part 2: Visual)
Sin embargo, para realizar la compensación de movimiento con precisión de subpíxeles, es necesario obtener valores de píxel no solo del bloque actual que se va a compensar en movimiento sino también de algunos píxeles adyacentes. En otras palabras, para generar valores de píxel con precisión de subpíxeles, es necesario obtener los valores de píxel de un área más grande que el bloque actual que se va a predecir. Es una práctica común usar un filtro de paso bajo con el fin de generar valores de píxel mediante procesos de interpolación; es necesario acceder a (extraer por lectura) ciertos píxeles adyacentes (píxeles para un número de coeficientes del filtro de paso bajo) a un píxel objetivo con el fin de usar el filtro de paso bajo. Las figuras 3A y 3B son diagramas que muestran ejemplos de un bloque actual que se va a compensar en movimiento y sus píxeles adyacentes, cuyos valores de píxel es necesario que sean extraídos por lectura con el fin de generar de este modo una imagen predictiva cuando se realiza una interpolación de píxeles. La figura 3A es un diagrama que muestra el bloque actual que se va a compensar en movimiento y sus píxeles adyacentes cuando el bloque actual que se va a compensar en movimiento es pequeño. La figura 3B es un diagrama que muestra el bloque actual que se va a compensar en movimiento y sus píxeles adyacentes cuando el bloque actual que se va a compensar en movimiento es grande. En las figuras 3A y 3B, el cuadrado central muestra un bloque actual que se va a compensar en movimiento, mientras que el área a rayas circundante muestra los píxeles adyacentes cuyos valores de píxel se extraen por lectura de una memoria de referencia con el fin de realizar una interpolación de píxeles. En el presente caso, por ejemplo, cuando se supone que se usa un filtro de 9 derivaciones (son necesarios valores de píxel de nueve píxeles) como un filtro de paso bajo, con el fin de realizar el proceso de filtro de paso bajo a los píxeles en el área de frontera del bloque, es necesario obtener los valores de píxel de al menos cuatro píxeles fuera del bloque y, por lo tanto, se debe tener acceso a una memoria para extraer por lectura el área que incluye los valores de píxel de cuatro píxeles que rodeen el bloque actual central que se va a compensar en movimiento. Por ejemplo, en un bloque de 4 * 4 píxeles, es necesario extraer por lectura los valores de píxel de (4 4 4) x (4 4 4) = 144 píxeles para cada bloque. En un bloque de 8 * 8 píxeles, es necesario extraer por lectura los valores de píxel de (4 8 4) * (4 8 4) = 256 píxeles. Cuando se compensa en movimiento un macrobloque de 16 * 16 píxeles con un bloque de 8 * 8 píxeles como la unidad, es suficiente extraer por lectura los valores de píxel de 256 píxeles * 4 = 1024 píxeles, pero cuando se compensa en movimiento el macrobloque de 16 * 16 píxeles con un bloque de 4 * 4 píxeles como la unidad, es necesario extraer por lectura los valores de píxel de 144 píxeles * 16 = 2304 píxeles. En consecuencia, la cantidad de exceso de memoria de la compensación de movimiento con un bloque de 8 * 8 píxeles como la unidad es aproximadamente la mitad de la de cuatro compensaciones de movimiento con un bloque de 4 * 4 píxeles como la unidad.
Como es evidente a partir del ejemplo mencionado anteriormente, cuando se extraen por lectura los valores de píxel del mismo número de píxeles externos que rodean un bloque actual que se va a compensar en movimiento, cuando más pequeño sea el tamaño del bloque actual que se va a compensar en movimiento, mayor será la relación del número de píxeles en bloques adyacentes al número de píxeles en el bloque actual que se va a compensar en movimiento, en relación al número de píxeles extraídos por lectura de una memoria de referencia. Como resultado, cuando se extraen por lectura los valores de píxel del bloque actual que se va a compensar en movimiento de la memoria de referencia, existe un problema de que la carga de acceso de memoria (acceso para la extracción por lectura) se hace grande al hacer referencia a los píxeles adyacentes que no sean el objetivo de la compensación de movimiento. En particular, cuando se realiza la compensación de movimiento bipredictiva de una imagen B cuyos valores de píxel se calculan al compensar en movimiento la imagen actual que se va a codificar o descodificar haciendo referencia a dos imágenes al mismo tiempo, el acceso a la memoria de referencia se hace aproximadamente el doble en comparación con la compensación de movimiento predictiva unidireccional. Por lo tanto, un problema de saturación se hace más prominente cuando el tamaño del bloque actual que se va a compensar en movimiento es pequeño.
Divulgación de la invención
El primer objeto de la presente invención es proporcionar un método para generar una secuencia de bits y para descodificar la secuencia de bits para reducir el acceso a la memoria de referencia.
Para lograr el objeto anteriormente mencionado, se propone el método de la reivindicación 1.
Además, debido a que el aparato de codificación de imágenes y el aparato de descodificación de imágenes compensan el movimiento con un tamaño más grande del bloque actual que se va a compensar en movimiento como la unidad, es posible, por ejemplo, reducir la saturación al tener acceso a una memoria de imágenes en la codificación y descodificación de una imagen B usando la compensación de movimiento bipredictiva.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques que muestra la estructura de un aparato de codificación de imágenes 100 convencional.
La figura 2 es un diagrama que muestra la estructura de un aparato de descodificación de imágenes 200 convencional que realiza una interpolación de píxeles.
Las figuras 3A y 3B son diagramas que muestran ejemplos de un bloque actual que se va a compensar en movimiento y sus píxeles adyacentes, que son necesarios para extraer por lectura los valores de píxel de los cuales con el fin de generar una imagen predictiva cuando se realiza una interpolación de píxeles.
La figura 4 es un diagrama que muestra la estructura de un aparato de codificación de imágenes 300 de acuerdo con una realización usando el método de codificación de imágenes de acuerdo con la presente invención.
La figura 5 es un diagrama de bloques que muestra la estructura de un aparato de descodificación de imágenes 400 de acuerdo con una realización usando el método de descodificación de imágenes de acuerdo con la presente invención.
La figura 6A es un diagrama que muestra un método para determinar el vector de movimiento MV del macrobloque actual que se va a codificar o descodificar usando vectores de movimiento en los bloques adyacentes cuando los bloques adyacentes son compensados en movimiento en el mismo tamaño de bloque que el macrobloque actual que se va a codificar o descodificar.
La figura 6B es un diagrama que muestra la correspondencia entre el bloque actual que se va a compensar en movimiento y un bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual cuando el macrobloque actual que se va a codificar o descodificar y el bloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual son compensados en movimiento en el mismo tamaño de bloque.
La figura 7 es un diagrama que muestra un método para determinar el vector de movimiento del macrobloque que se va a codificar o descodificar usando vectores de movimiento de bloques adyacentes cuando los bloques adyacentes son compensados en movimiento en un tamaño de bloque más pequeño que el bloque actual que se va a codificar o descodificar.
La figura 8 es un diagrama de flujo que muestra un proceso para compensar en movimiento el bloque actual que se va a compensar en movimiento con un método diferente (un vector de movimiento diferente) dependiendo de un movimiento del bloque en una imagen subsiguiente ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando un macrobloque actual que se va a codificar o descodificar y un macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento con el mismo tamaño de bloque.
La figura 9 es un diagrama que muestra la correspondencia entre el bloque actual que se va a compensar en movimiento y la pluralidad de bloques en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando un macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento en diferentes tamaños de bloque.
La figura 10 es un diagrama de flujo que muestra un proceso para compensar en movimiento el bloque actual que se va a compensar en movimiento con un método diferente (un vector de movimiento diferente) dependiendo de un movimiento del bloque en una imagen subsiguiente ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando un macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento con diferentes tamaños de bloque.
La figura 11 es un diagrama que muestra la correspondencia entre el bloque actual que se va a compensar en movimiento y la pluralidad de bloques en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual que se va a compensar en movimiento cuando el macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual son compensados en movimiento en diferentes tamaños de bloque en la segunda realización.
La figura 12 es un diagrama de flujo que muestra un proceso en la segunda realización para compensar en movimiento el bloque actual que se va a compensar en movimiento con un método diferente (un vector de movimiento diferente) dependiendo de un movimiento del bloque en una imagen subsiguiente ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando el macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento con diferentes tamaños de bloque.
La figura 13A muestra un ejemplo de un formato físico del disco flexible como un cuerpo principal de un medio de almacenamiento.
La figura 13B muestra una apariencia completa de un disco flexible, su estructura en corte transversal y el propio disco flexible.
La figura 13C muestra una estructura para registrar y extraer por lectura el programa en el disco flexible FD.
La figura 14 es un diagrama de bloques que muestra una configuración general de un sistema de suministro de contenidos ex100 para lograr un servicio de distribución de contenidos.
La figura 15 es un diagrama que muestra el teléfono celular ex115 que usa el método de codificación de imágenes y el método de descodificación de imágenes explicados en las realizaciones mencionadas anteriormente.
La figura 16 es un diagrama que muestra una estructura de un teléfono celular.
La figura 17 es un diagrama que muestra un ejemplo de un sistema de radiodifusión digital.
Mejor modo para realizar la invención
Se explicarán en detalle a continuación las realizaciones de la presente invención con referencia a las figuras 4 a 17.
(Primera realización)
La primera realización de la presente invención se explicará en detalle posteriormente con referencia a las figuras.
La figura 4 es un diagrama que muestra la estructura de un aparato de codificación de imágenes 300 de acuerdo con una realización usando el método de codificación de imágenes de acuerdo con la presente invención. El aparato de codificación de imágenes 300 es un aparato de codificación de imágenes que realiza la compensación de movimiento de una imagen B (que se va a codificar) en un tamaño de bloque más grande que el tamaño de bloque de la compensación de movimiento de una imagen P que hace referencia a dos figuras. El aparato de codificación de imágenes 300 incluye una unidad de diferencia 101, una unidad de codificación de imágenes 102, una unidad de codificación de longitud variable 103, una unidad de descodificación de imágenes 104, una unidad de adición 105, una memoria de imágenes 106, una memoria de imágenes 107, una unidad de almacenamiento de vectores de movimiento 110, una unidad de conversión de información de movimiento 301, una unidad de estimación de vectores de movimiento 302 y una unidad de compensación de movimiento 303.
La memoria de imágenes 107 almacena datos de imagen "Img" que representan imágenes en movimiento introducidas en el orden de visualización de una forma imagen a imagen. La unidad de diferencia 101 calcula la diferencia entre los datos de imagen "Img" extraídos por lectura de la memoria de imágenes 107 y los datos de imagen predictivos "Pred" introducidos de la unidad de compensación de movimiento 303 y genera datos de imagen residual predictivos "Res". En el presente caso, en el caso de la codificación entre imágenes, no se realiza la compensación de movimiento entre imágenes. Por lo tanto, el valor de los datos de imagen predictivos "Pred" se cree que es de "0". La unidad de codificación de imágenes 102 realiza procesos de codificación tales como conversión de frecuencia y cuantificación a los datos de imagen residuales predictivos introducidos "Res" y genera los datos residuales codificados "ResCodificados". Cuando la imagen actual que se va a codificar es una imagen B, la unidad de conversión de información de movimiento 301 deriva vectores de movimiento e informa a la unidad de estimación de vectores de movimiento 302 y a la unidad de compensación de movimiento 303 de tal manera que se realiza la compensación de movimiento en un tamaño de bloque predeterminado. En otras palabras, en el caso de una imagen B, bajo la condición que acepta el modo de predicción unidireccional, el modo bipredictivo y el modo directo, y el aparato de codificación de imágenes 300 realiza la compensación de movimiento en el modo bidireccional y el modo directo en un tamaño de bloque grande (por ejemplo, se prohíbe estimar vectores de movimiento en un tamaño de bloque más pequeño que un bloque de 8 * 8 píxeles); en el caso de una imagen P, se permite la predicción unidireccional es un tamaño de bloque pequeño. De esta manera, en particular en el modo bipredictivo que accede a la memoria comúnmente; la selección de vectores de movimiento que hacen referencia a imágenes de referencia en el tamaño de bloque pequeño se hace imposible. Además, la unidad de conversión de información de movimiento 301 convierte parámetros de movimiento de imágenes de referencia almacenadas en la unidad de almacenamiento de vectores de movimiento 110 en parámetros de movimiento (tales como vectores de movimiento) con el tamaño de bloque predeterminado (por ejemplo, un bloque de 8 * 8 píxeles), o da instrucciones a la unidad de estimación de vectores de movimiento 302 y a la unidad de compensación de movimiento 303 para hacer una interpretación de los parámetros de movimiento que correspondan a esta conversión.
Usando los datos de imagen de referencia "Ref' que son datos descodificados de imágenes codificadas almacenadas en la memoria de imágenes 106 como una imagen de referencia, la unidad de estimación de vectores de movimiento 302 estima el vector de movimiento que indica la ubicación del bloque predicho como óptimo en el área de búsqueda en la imagen de referencia, y envía parámetros de movimiento "ParamMovimiento" que incluyen el vector de movimiento estimado. La unidad de almacenamiento de vectores de movimiento 110 almacena los parámetros de movimiento "ParamMovimiento" emitidos desde la unidad de estimación de vectores de movimiento 302.
Además, en respuesta a si la imagen actual que se va a codificar es una imagen P o una imagen B, la unidad de estimación de vectores de movimiento 302 evalúa errores indicados por los casos de compensar en movimiento en los modos de codificación "Mod", y compara el error de compensación de movimiento cuando se lleva a cabo una búsqueda en la imagen de referencia con el error de compensación de movimiento cuando se derivan vectores de movimiento en el modo directo, el modo predictivo unidireccional y el modo bipredictivo. En otras palabras, en el modo directo, dependiendo de los vectores de movimiento, que son convertidos por la unidad de conversión de información de movimiento 301 (convertidos, por ejemplo, en un tamaño de bloque que es un bloque de 8 * 8 bloques o más grande), del bloque compensado en movimiento en un bloque subsiguiente que está ubicado conjuntamente con el bloque actual que se va a compensar en movimiento, un vector de movimiento en el bloque actual que se va a compensar en movimiento se selecciona entre una pluralidad de vectores de movimiento. Por cierto, el modo directo es un modo bipredictivo para calcular el vector de movimiento del bloque actual que se va a compensar en movimiento usando un vector de movimiento derivado de otro bloque y para no codificar el vector de movimiento en el bloque actual que se va a compensar en movimiento. Se usa el tamaño del vector de movimiento en el bloque en una imagen subsiguiente ubicada conjuntamente con un macrobloque actual decide cuál del vector de movimiento derivado y el vector de movimiento (0, 0) (no se codifica la información para identificar cuál se selecciona). Además, el bloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual es el bloque (el bloque convencional) en la imagen hacia atrás más cercana (la imagen convencional) a la imagen actual que se va a codificar en el orden de visualización.
La unidad de compensación de movimiento 303 genera los datos de imagen predictivos "Pred" basándose en este modo de codificación "Mod" y el vector de movimiento estimado por la unidad de estimación de vectores de movimiento 302. En el modo directo de una imagen B, la unidad de compensación de movimiento 303 genera imágenes predictivas para cada bloque actual de 8 * 8 píxeles que se va a compensar en movimiento, usando el vector de movimiento calculado por la unidad de estimación de vectores de movimiento 302. Además, cuando el vector de movimiento indica ubicaciones de subpíxel tales como un medio píxel y un cuarto de píxel, la unidad de compensación de movimiento 303 interpola las ubicaciones de subpíxel tales como un medio píxel y un cuarto de píxel usando un filtro lineal (un filtro de paso bajo) y similares. En este caso, debido a que los vectores de movimiento con tamaños de bloque pequeños no son seleccionados por la unidad de estimación de vectores de movimiento 302 en el modo bipredictivo, la unidad de compensación de movimiento 303 puede realizar la compensación de movimiento con tamaños de bloque relativamente grandes que no tengan muchos accesos en el modo bipredictivo. Además, en el modo unidireccional, la unidad de estimación de vectores de movimiento 302 y la unidad de compensación de movimiento 303 realizan la compensación de movimiento que hace posible la compensación de movimiento con tamaños de bloque pequeños. La unidad de codificación de longitud variable 103 realiza codificación de longitud variable y similares a los datos residuales codificados introducidos "ResCodificados" y los parámetros de movimiento "ParamMovimiento" emitidos desde la unidad de estimación de vectores de movimiento 302 y genera los datos codificados "Secuenciabits" al añadir además el modo de codificación "Mod".
La unidad de descodificación de imágenes 104 realiza procesos de descodificación tales como cuantificación inversa y conversión de frecuencia inversa a los datos residuales codificados introducidos "ResCodificados" y genera datos residuales descodificados "ResRecon". La unidad de adición 105 añade los datos residuales descodificados "ResRecon" emitidos desde la unidad de descodificación de imágenes 104 a los datos de imagen predictivos "Pred" introducidos de la unidad de compensación de movimiento 303 y genera los datos de imagen descodificados "Recon". La memoria de imágenes 106 almacena los datos de imagen descodificados generados "Recon".
La figura 5 es un diagrama de bloques que muestra la estructura de un aparato de descodificación de imágenes 400 de acuerdo con una realización usando el método de descodificación de imágenes de acuerdo con la presente invención. El aparato de descodificación de imágenes 400 incluye una unidad de descodificación de longitud variable 201, una unidad de descodificación de imágenes 202, una unidad de adición 203, una memoria de imágenes 204, una unidad de almacenamiento de vectores de movimiento 205, una unidad de conversión de información de movimiento 401 y una unidad de compensación de movimiento 402.
La unidad de descodificación de longitud variable 201 extrae varios datos tales como los datos residuales codificados "ResCodificados", parámetros de movimiento "ParamMovimiento" e información del modo de codificación "Mod" usado en el momento de codificar de los datos codificados introducidos "Secuenciabits". La unidad de descodificación de imágenes 202 descodifica los datos residuales codificados introducidos "ResCodificados" y genera datos de imagen residual predictivos "Res". La unidad de conversión de información de movimiento 401 convierte parámetros de movimiento de imágenes de referencia extraídas por lectura de la unidad de almacenamiento de vectores de movimiento 205 en parámetros de movimiento (tales como vectores de movimiento) con el tamaño de bloque predeterminado (por ejemplo, un bloque de 8 * 8 píxeles) o da instrucciones a la unidad de compensación de movimiento 402 para hacer una interpretación de los parámetros de movimiento que correspondan a esta conversión. La unidad de compensación de movimiento 206 incluye dentro una unidad de interpolación de píxeles no ilustrada que interpola valores de píxel de las ubicaciones de subpíxel como un medio píxel y un cuarto de píxel al usar un filtro lineal y similares, y genera los datos de imagen predictivos "Pred" que son datos de compensación de movimiento a partir de los datos de imagen descodificados "Recon" en la memoria de imágenes 204 basándose en el modo de codificación "Mod" en el momento de la codificación, parámetros de movimiento "ParamMovimiento" y similares. En este momento, cuando el macrobloque actual que se va a descodificar es codificado en el modo directo, los vectores de movimiento para generar los datos de imagen predictivos "Pred" no son codificados. En consecuencia, la unidad de compensación de movimiento 402 calcula vectores de movimiento en el bloque actual que se va a compensar en movimiento usando vectores de movimiento convertidos por la unidad de conversión de información de movimiento 401 (convertidos, por ejemplo, en un tamaño de bloque que es de 8 * 8 bloques o más grande) y vectores de movimiento derivados en bloques adyacentes al bloque actual que se va a descodificar, y genera los datos de imagen predictivos "Pred" de una forma bloque a bloque, el bloque siendo el bloque actual que se va a compensar en movimiento (por ejemplo, un bloque de 8 * 8 píxeles) con el tamaño que sea más grande que el bloque más pequeño de una imagen P. La unidad de almacenamiento de vectores de movimiento 205 almacena los parámetros de movimiento "ParamMovimiento" extraídos por la unidad de descodificación de longitud variable 201. La unidad de adición 203 añade los datos de imagen residuales predictivos "Res" emitidos desde la unidad de descodificación de imágenes 202 a los datos de imagen predictivos "Pred" que son datos de compensación de imágenes en movimiento emitidos desde la unidad de compensación de movimiento 206 y genera los datos de imagen descodificados "Recon". La memoria de imágenes 204 almacena los datos de imagen descodificados generados "Recon".
Posteriormente en el presente documento, se explican el aparato de codificación de imágenes 300 y el aparato de descodificación de imágenes 400 construidos como se describió anteriormente.
En la presente realización, en el modo directo de una imagen B, la unidad de estimación de vectores de movimiento 302 en el aparato de codificación de imágenes 300 y la unidad de compensación de movimiento 402 en el aparato de descodificación de imágenes 400 seleccionan un vector de movimiento usado para compensar en movimiento el bloque actual que se va a compensar en movimiento entre una pluralidad de vectores que dependen de vectores de movimiento del bloque compensado en movimiento en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento. Por ejemplo, la unidad de compensación de vectores de movimiento 302 o la unidad de compensación de movimiento 402 selecciona como un vector de movimiento del macrobloque actual que se va a codificar o descodificar o bien el vector de movimiento (0, 0) o bien el vector de movimiento que se calcule usando vectores de movimiento de bloques adyacentes que ya hayan sido codificados o descodificados en las imágenes que se van a codificar o descodificar, y determina que el vector de movimiento seleccionado es el vector de movimiento en el bloque actual que se va a compensar en movimiento. Los bloques adyacentes son los bloques que ya han sido codificados o descodificados en la misma imagen actual que se va a codificar y son bloques adyacentes al macrobloque actual que se va a codificar o descodificar. Posteriormente en el presente documento, con referencia al método de compensación de movimiento en el modo directo usando vectores de movimiento en los bloques adyacentes que ya han sido determinados y parámetros de movimiento en una imagen de referencia hacia atrás, se explican en primer lugar los procesos en el aparato de codificación de imágenes 300.
La figura 6A es un diagrama que muestra un método para determinar el vector de movimiento MV del macrobloque actual que se va a codificar o descodificar usando vectores de movimiento en los bloques adyacentes cuando los bloques adyacentes son compensados en movimiento en el mismo tamaño de bloque de 16 * 16 píxeles que el macrobloque actual. La figura 6B es un diagrama que muestra la correspondencia entre el bloque actual que se va a compensar en movimiento y el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a codificar o descodificar cuando el macrobloque actual y el bloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual son compensados en movimiento en el mismo tamaño de bloque. La figura 7 es un diagrama que muestra un método para determinar el vector de movimiento del macrobloque actual usando vectores de movimiento de bloques adyacentes cuando los bloques adyacentes son compensados en movimiento en un tamaño de bloque más pequeño que el bloque actual. La figura 8 es un diagrama de flujo que muestra un proceso para compensar en movimiento el bloque actual que se va a compensar en movimiento con un método diferente (un vector de movimiento diferente) dependiendo de un movimiento del bloque en una imagen subsiguiente ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando un macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento con el mismo tamaño de bloque.
En primer lugar se explica el caso en el que el bloque actual que se va a compensar en movimiento en la imagen actual que se va a codificar B1 y el bloque en una imagen subsiguiente ubicada conjuntamente con el bloque actual que se va a compensar en movimiento en la imagen P hacia atrás P2 son del mismo tamaño y corresponden uno al otro uno por uno. La unidad de conversión de información de movimiento 301 evalúa si el tamaño de la compensación de movimiento del bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento es el mismo que el tamaño del bloque actual que se va a compensar en movimiento o no. Cuando son los mismos, la unidad de conversión de información de movimiento 301 da instrucciones a la unidad de estimación de vector de movimiento 302 para calcular el vector de movimiento del bloque actual que se va a compensar en movimiento siguiendo el procedimiento mostrado en el diagrama de flujo de la figura 8. Como se muestra en el diagrama de flujo de la figura 8, la unidad de estimación de vectores de movimiento 302, en primer lugar, evalúa si "el movimiento es pequeño" o no en el bloque ubicado conjuntamente con el bloque actual que se va a compensar en movimiento (el bloque convencional) en la imagen P2 que es una imagen P (una imagen convencional) que sigue la imagen actual que se va a codificar B1 mostrada en la figura 6B, en otras palabras, una imagen P visualizada temporalmente más tarde que la imagen B1 y es adyacente a la imagen B1 (S401), y cuando "el movimiento es pequeño", el vector de movimiento en el bloque actual que se va a compensar en movimiento se determina como (0, 0) (S402). En otras palabras, a este bloque actual que se va a compensar en movimiento, se realiza la compensación de movimiento usando una predicción entre imágenes determinando que el vector de movimiento sea (0, 0). En el presente caso, "el movimiento es pequeño" significa que el bloque es codificado haciendo referencia a la imagen más cercana a la imagen en la que el bloque está incluido y el tamaño (el valor absoluto) del vector de movimiento es no superior a "1". Pero es aceptable que "el movimiento sea pequeño" simplemente cuando el tamaño del vector de movimiento sea el valor predeterminado o menos. Además, también es aceptable que "el movimiento sea pequeño" cuando se determine que la imagen particular es la imagen de referencia.
Por otro lado, cuando "el movimiento NO es pequeño" en el caso del bloque ubicado conjuntamente con el bloque actual que se va a compensar en movimiento en una imagen P hacia atrás, en otras palabras, o bien cuando el bloque convencional no sea codificado haciendo referencia a la imagen más cercana o bien cuando el tamaño del vector de movimiento supere "1", la unidad de estimación de vectores de movimiento 302 determina que el vector de movimiento MV en el macrobloque actual que se va a codificar que es calculado usando vectores de movimiento en los bloques adyacentes al macrobloque actual que se va a codificar es el vector de movimiento en el bloque actual que se va a compensar en movimiento (S404). Por cierto, en una explicación posterior, tanto la imagen P0 como la imagen P2 se determinan como las imágenes más cercanas a la imagen B1.
Para calcular el vector de movimiento MV del macrobloque actual que se va a codificar, la unidad de estimación de vectores de movimiento 302, en primer lugar, selecciona tres bloques codificados (bloques adyacentes) vecinos al macrobloque actual que se va a codificar. Debido a que la norma y el método para la selección no son importantes en el presente caso, sus explicaciones se omiten. La figura 6A muestra los tres bloques seleccionados adyacentes al macrobloque actual que se va a codificar. Como se muestra en la figura 6A, en el macrobloque ubicado sobre el macrobloque actual que se va a codificar, el vector de movimiento MV2 ya ha sido determinado; en el macrobloque ubicado arriba a la derecha del macrobloque actual que se va a codificar, el vector de movimiento MV3 ya ha sido determinado. Además, en el macrobloque ubicado a la izquierda del macrobloque actual que se va a codificar, el vector de movimiento MV1 ya ha sido determinado. La unidad de estimación de vectores de movimiento 302 determina el vector de movimiento MV del macrobloque actual que se va a codificar usando estos vectores de movimiento, los vectores de movimiento MV1, MV2 y MV3. Por ejemplo, el vector de movimiento que hace referencia a la imagen más cercana temporalmente a la imagen actual que se va a codificar entre los vectores de movimiento MV1, MV2 y MV3, se determina como un candidato para el vector de movimiento MV en este macrobloque actual que se va a codificar. En el presente caso, "la imagen más cercana temporalmente a la imagen actual que se va a codificar" significa la imagen hacia delante y más cercana a la imagen actual que se va a codificar cuando se predice el vector de movimiento en el macrobloque actual que se va a codificar haciendo referencia a una imagen hacia delante, y la imagen hacia atrás y más cercana a la imagen actual que se va a codificar cuando se predice el vector de movimiento del macrobloque actual que se va a codificar haciendo referencia a una imagen hacia atrás. En este momento, la unidad de estimación de vectores de movimiento 302 determina que
(1) el vector de movimiento MV del macrobloque actual que se va a codificar es (0, 0) cuando no hay vector de movimiento alguno que hace referencia a la imagen temporalmente más cercana a la imagen actual que se va a codificar;
(2) el candidato es el vector de movimiento MV en el macrobloque cuando hay un vector de movimiento que hace referencia a la imagen temporalmente más cercana a la imagen actual que se va a codificar; y
(3) la media de los tres vectores de movimiento en los bloques adyacentes es el vector de movimiento MV del macrobloque actual que se va a codificar cuando hay dos o más vectores de movimiento que determinan que el vector de movimiento en el bloque adyacente que no hace referencia a la imagen más cercana es (0, 0).
Hasta ahora, el caso de que los bloques adyacentes al macrobloque actual que se va a codificar son compensados en movimiento usando el mismo tamaño que el bloque actual que se va a codificar se explica usando la figura 6A. Como se muestra en la figura 7, sin embargo, incluso cuando los bloques adyacentes son compensados en movimiento en un tamaño de bloque diferente de, y en un tamaño de bloque más pequeño que, aquel del macrobloque actual que se va a codificar, también es posible calcular de forma similar el vector de movimiento MV en el macrobloque actual que se va a codificar. En la figura 7, se explica el caso en el que los vectores de movimiento son estimados con un bloque de 4 * 4 píxeles como la unidad en los bloques adyacentes hacia un macrobloque actual de 16 * 16 píxeles que se va a codificar. En un caso como este, para calcular el vector de movimiento MV del macrobloque actual que se va a codificar, la unidad de estimación de vectores de movimiento 302, en primer lugar, selecciona los tres bloques adyacentes (el bloque A, el bloque B y el bloque C).
El bloque A, por ejemplo, pertenece al macrobloque ubicado a la izquierda del macrobloque actual que se va a codificar y toca la esquina izquierda superior del macrobloque actual que se va a codificar. Además, el bloque B, por ejemplo, pertenece al macrobloque ubicado sobre el macrobloque actual que se va a codificar y toca la esquina izquierda superior del macrobloque actual que se va a codificar. Además, el bloque C, por ejemplo, pertenece al macrobloque ubicado arriba a la derecha del macrobloque actual que se va a codificar y toca la esquina derecha superior del macrobloque actual que se va a codificar.
Para los bloques A, B y C, los vectores de movimiento MV1, MV2 y MV3 ya han sido determinados, respectivamente. La unidad de estimación de vectores de movimiento 302 aplica los puntos (1), (2) y (3) mencionados anteriormente a los vectores de movimiento MV1, MV2 y MV3 y puede determinar el vector de movimiento MV en el macrobloque actual que se va a codificar de manera similar al caso en el que el macrobloque actual que se va a codificar y los bloques adyacentes sean compensados en movimiento en el mismo tamaño. Con referencia a cada bloque actual que se va a compensar en movimiento en el macrobloque actual que se va a codificar, como ya se ha explicado, dependiendo de si "el movimiento es pequeño" o no en el bloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual, la unidad de estimación de vectores de movimiento 302 selecciona o bien la compensación de movimiento usando el vector de movimiento (0, 0) o bien la compensación de movimiento usando el vector de movimiento MV.
Como se describió anteriormente, cuando se determina el vector de movimiento del bloque actual que se va a compensar en movimiento, la unidad de compensación de movimiento 303 genera los datos de imagen predictivos "Pred" de los datos de imagen de referencia "Ref' en la memoria de imágenes 106 usando el vector de movimiento determinado (S403).
Hasta el momento se ha explicado el caso en el que el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento es compensado en movimiento en el mismo tamaño de bloque con el bloque actual que se va a compensar en movimiento. Posteriormente en el presente documento se explica el caso en el que el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento es compensado en movimiento en un tamaño de bloque diferente al del bloque actual que se va a compensar. En el aparato de codificación de imágenes 300, cuando se realiza la compensación de movimiento bipredictiva de una imagen B, la unidad de compensación de movimiento 303 y la unidad de estimación de vectores de movimiento 302 realizan la compensación de movimiento enfocada a bloques con un tamaño predeterminado (por ejemplo, bloques de 8 * 8 píxeles) que sea más grande que el bloque más pequeño ( 4 * 4 píxeles) que pueda ser un bloque objetivo para la compensación de movimiento predictiva unidireccional. En consecuencia, cuando una imagen de referencia hacia atrás de una imagen que es compensada en movimiento en forma bipredictiva es compensada en movimiento unidireccionalmente, puede ocurrir el caso en el que el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento sea compensado en movimiento en un tamaño de bloque más pequeño que el del bloque actual que se va a compensar en movimiento.
La figura 9 es un diagrama que muestra la correspondencia entre el bloque actual que se va a compensar en movimiento y la pluralidad de bloques en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando un macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento en diferentes tamaños de bloque. En el lado izquierdo de la figura 9 se muestra un macrobloque actual que se va a codificar en la imagen B actual que se va a codificar; en el lado derecho de la figura 9 se muestra el macrobloque en la imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual que se va a codificar en la imagen hacia atrás más cercana (una imagen P o una imagen B) a la imagen B actual. El tamaño de los macrobloques es el mismo y de 16 * 16 píxeles, por ejemplo. El macrobloque en una imagen subsiguiente mostrada en el lado derecho de la figura 9, que está ubicada conjuntamente con un macrobloque actual, se codifica antes que una imagen actual y se supone que ya está compensado en movimiento con un bloque de 4 * 4 píxeles (el lote más pequeño de la figura), por ejemplo, como la unidad.
La figura 10 es un diagrama de flujo que muestra un proceso para compensar en movimiento el bloque actual que se va a compensar en movimiento con un método diferente (un vector de movimiento diferente) dependiendo de un movimiento del bloque en una imagen subsiguiente ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando un macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento con diferentes tamaños de bloque. La unidad de conversión de información de movimiento 301, en primer lugar, evalúa si el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento y el bloque actual que se va a compensar en movimiento son compensados en movimiento en el mismo tamaño de bloque o no. Cuando no son compensados en movimiento en el mismo tamaño de bloque, la unidad de conversión de información de movimiento 301 da instrucciones a la unidad de estimación de vectores de movimiento 302 para calcular el vector de movimiento en el bloque actual que se va a compensar en movimiento siguiendo el procedimiento mostrado en el diagrama de flujo de la figura 10. En el presente caso, debido a que el tamaño del bloque actual que se va a compensar en movimiento es de 8 píxeles * 8 píxeles y el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual es compensado en movimiento con un tamaño de bloque de 4 * 4 píxeles. La unidad de estimación de vectores de movimiento 302 calcula el vector de movimiento en el bloque actual que se va a compensar en movimiento siguiendo el diagrama de flujo mostrado en la figura 10.
En el diagrama de flujo mostrado en la figura 10, el proceso en la etapa S501 es diferente al proceso de la etapa S401 mostrado en el diagrama de flujo de la figura 8. Como se muestra en la figura 9, en el método de compensación de movimiento de acuerdo con la presente invención, un bloque actual que se va a codificar es compensado en movimiento en cada unidad de cuatro bloques actuales que se van a compensar en movimiento. Se les determina, por ejemplo, como el bloque actual que se va a compensar en movimiento a, el bloque actual que se va a compensar en movimiento b, el bloque actual que se va a compensar en movimiento c y el bloque actual que se va a compensar en movimiento d. A estos bloques actuales que se van a compensar en movimiento, en el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con un macrobloque actual, corresponden el bloque a', el bloque b', el bloque c' y el bloque d', respectivamente. Cada uno de estos bloques a', b', c' y d' está compuesto además de cuatro bloques actuales de 4 * 4 píxeles que se van a compensar en movimiento. La unidad de estimación de vectores de movimiento 302, identifica en primer lugar el bloque a' en el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con y que corresponde al bloque actual a que se va a compensar en movimiento en el macrobloque actual que se va a codificar y evalúa si "el movimiento es pequeño" o no en dos o más bloques actuales que se van a compensar en movimiento de los cuatro bloques actuales que se van a compensar en movimiento que componen el bloque a' (S501).
La norma para evaluar si "el movimiento es pequeño" o no en los bloques actuales que se van a compensar en movimiento es similar a la de la etapa S401 en el diagrama de flujo mostrado en la figura 8. Cuando "el movimiento es pequeño" en dos o más bloques actuales que se van a compensar en movimiento, la unidad de estimación de vectores de movimiento 302 determina que el vector de movimiento del bloque actual que se va a compensar en movimiento a en el macrobloque actual que se va a codificar es (0, 0) (S502); la unidad de compensación de movimiento 303 realiza la compensación de movimiento usando el vector de movimiento determinado (0, 0) (S502). Cuando "el movimiento NO es pequeño" en dos o más bloques, en otras palabras, cuando el número de los bloques actuales que se van a compensar en movimiento cuyo "movimiento es pequeño" es menor que dos, la unidad de estimación de vectores de movimiento 302 determina el vector de movimiento MV del macrobloque actual que se va a codificar usando vectores de movimiento de bloques adyacentes al macrobloque actual que se va a codificar (S504). El proceso para determinar el vector de movimiento MV del macrobloque actual que se ha codificado usando los vectores de movimiento de los bloques adyacentes es similar al de la etapa S404 de la figura 8. La unidad de compensación de movimiento 303 genera los valores de píxel predictivos de compensación de movimiento del bloque actual que se va a compensar en movimiento a usando el vector de movimiento MV determinado de esta manera (S503).
La unidad de compensación de movimiento 303, la unidad de estimación de vectores de movimiento 302 y la unidad de conversión de información de movimiento 301 repiten los procesos de las etapas S501 - S504 mencionadas anteriormente a los bloques actuales restantes que se van a compensar en movimiento, b, c y d, y completan la compensación de movimiento para el macrobloque actual que se va a codificar cuando se realiza la compensación de movimiento a todos los bloques actuales que se van a compensar en movimiento, a, b, c y d.
Por otro lado, el aparato de descodificación de imágenes 400 descodifica los datos codificados "Secuenciabits" codificados por el aparato de codificación de imágenes 300. En el modo directo, el aparato de descodificación de imágenes 400 puede compensar en movimiento cada bloque actual que se va a compensar en movimiento de forma similar al aparato de codificación de imágenes 300 debido a que la unidad de conversión de información de movimiento 401 realiza el proceso que corresponde al de la unidad de conversión de información de movimiento 301 en el aparato de codificación de imágenes 300 y la unidad de compensación de movimiento 402 realiza los procesos que corresponden a los de la unidad de estimación de vectores de movimiento 302 y la unidad de compensación de movimiento 300 en el aparato de codificación de imágenes 300.
Además, cuando se indica que el modo de codificación "Mod" extraído de los datos codificados "Secuenciabits" por la unidad de descodificación de longitud variable 201 que los macrobloques actuales que se van a descodificar están codificados en el modo directo, la unidad de conversión de información de movimiento 401 evalúa si el tamaño del bloque compensado en movimiento en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual que se va a compensar en movimiento es el mismo que el tamaño de bloque actual que se va a compensar en movimiento; cuando son los mismos, la unidad de conversión de información de movimiento 401 da instrucciones a la unidad de estimación de vectores de movimiento 402 para calcular el vector de movimiento del bloque actual que se va a compensar en movimiento siguiendo el procedimiento mostrado en el diagrama de flujo de la figura 8.
Siguiendo esta instrucción, la unidad de estimación de vectores de movimiento 402 evalúa en primer lugar si "el movimiento es pequeño" o no en el bloque compensado en movimiento en una imagen P (una imagen de referencia hacia atrás) P2 que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento después de la imagen actual que se va a descodificar B1 mostrada en la figura 6B (S401), y cuando "el movimiento es pequeño", el vector de movimiento en el bloque actual que se va a compensar en movimiento se determina como siendo de (0, 0) (S402). En otras palabras, a este bloque actual que se va a compensar en movimiento, la compensación de movimiento usando una predicción entre imágenes no se realiza. Por otro lado, cuando "el movimiento NO es pequeño" en el bloque compensado en movimiento en una imagen P hacia atrás que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento, la unidad de estimación de vectores de movimiento 402 determina que el vector de movimiento MV del macrobloque actual que se va a descodificar que se calcula usando vectores de movimiento de los bloques adyacentes al macrobloque actual que se va a descodificar es el vector de movimiento del bloque actual que se va a compensar en movimiento (S404). El método para calcular el vector de movimiento del macrobloque actual que se va a descodificar usando los vectores de movimiento en los bloques adyacentes descodificados es el mismo que el método explicado en el caso del aparato de codificación de imágenes 300.
Cuando el vector de movimiento del bloque actual que se va a compensar en movimiento se determina en la etapa S402 o la etapa S404, la unidad de compensación de movimiento 402 extrae por lectura el bloque cuya ubicación se muestra por el vector de movimiento determinado de los datos de imagen de referencia "Ref" en la memoria de imágenes 204 y genera los datos de imagen predictivos "Pred" (S403). Como se describió anteriormente, aunque el bloque actual que se va a compensar en movimiento y el bloque compensado en movimiento en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento son compensados en movimiento en el mismo tamaño de bloque, la unidad de compensación de movimiento 402 puede determinar el vector de movimiento para que cada bloque actual que se va a compensar en movimiento y realizar la compensación de movimiento, dependiendo de si "el movimiento es pequeño" o no en el bloque actual que se va a compensar en movimiento en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual.
Además, cuando se indica que el macrobloque actual que se va a descodificar es codificado en el modo directo en el modo de codificación extraído "Mod" y cuando el bloque actual que se va a compensar en movimiento y el bloque compensado en movimiento en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento no son compensados en movimiento en el mismo tamaño de bloque, la unidad de conversión de información de movimiento 401 da instrucciones a la unidad de compensación de movimiento 402 para calcular el vector de movimiento del bloque actual que se va a compensar en movimiento siguiendo el procedimiento mostrado en el diagrama de flujo de la figura 10. En el macrobloque (en una imagen P subsiguiente) que está ubicado conjuntamente con el macrobloque actual que se va a descodificar (en la imagen actual que se va a descodificar y a la cual la imagen P subsiguiente está más cercana), la unidad de compensación de movimiento 402 examina el movimiento de cuatro bloques compensados en movimiento de 4 * 4 píxeles incluidos en un bloque de 8 * 8 píxeles que corresponde a un bloque de 8 * 8 píxeles actual que se va a compensar en movimiento y determina el vector de movimiento del bloque actual que se va a compensar en movimiento como de (0, 0) cuando "el movimiento es pequeño" en dos o más bloques compensados en movimiento de los cuatro (S502). Cuando este no es el caso, la unidad de compensación de movimiento 402 determina el vector de movimiento MV del macrobloque actual que se va a descodificar, que se calcula usando los vectores de movimiento de bloques adyacentes al macrobloque actual que se va a descodificar, como el vector de movimiento del bloque actual que se va a compensar en movimiento (S504). Cuando el vector de movimiento del bloque actual que se va a compensar en movimiento se determina en la etapa S502 o la etapa S504, la unidad de compensación de movimiento 402 extrae por lectura el bloque cuya ubicación se muestra por el vector de movimiento determinado de los datos de imagen de referencia "Ref" en la memoria de imágenes 204 y genera los datos de imagen predictivos "Pred". De esta manera, aunque el bloque actual que se va a compensar en movimiento y el bloque compensado en movimiento en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento son compensados en movimiento en diferentes tamaños de bloque, la unidad de compensación de movimiento 402 puede evaluar si "el movimiento es pequeño" o no en el bloque compensado en movimiento en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual. En consecuencia, la unidad de compensación de movimiento 402 puede, dependiendo de este resultado de evaluación, determinar el vector de movimiento de cada bloque actual que se va a compensar en movimiento y realizar la compensación de movimiento para el bloque actual que se va a compensar en movimiento.
Como se describió anteriormente, debido a que el aparato de codificación de imágenes 300 y el aparato de descodificación de imágenes 400, que usan el método de compensación de movimiento de acuerdo con la presente invención, realizan la compensación de movimiento con un bloque actual de tamaño más grande que se va a compensar en movimiento que el del bloque actual convencional que se va a compensar en movimiento como la unidad, en la codificación por compensación de movimiento de una imagen B, la carga por acceso a la memoria de imágenes en la codificación y descodificación de la imagen B puede reducirse.
Por cierto, en la primera realización descrita anteriormente, el tamaño de un bloque actual que se va a compensar en movimiento de una imagen B se explica como de 8 * 8 píxeles, y el tamaño de un bloque compensado en movimiento de una imagen P se explica como de 4 píxeles * 4 píxeles, pero la presente invención no está limitada a estos tamaños y es aceptable decidir tamaños diferentes a partir de estos tamaños. Además, cuando "el movimiento es pequeño" en dos o más bloques compensados en movimiento de los bloques que corresponden a los bloques actuales que se van a compensar en movimiento en la imagen subsiguiente más cercana a una imagen actual, el vector de movimiento de la imagen actual que se va a compensar en movimiento se determina como de (0, 0), pero no necesariamente tiene que ser "dos o más" y es satisfactorio que sea "uno o más" o "tres o más" o "todos". Además, cuando bloques actuales que se van a compensar en movimiento y sus tamaños se deciden como diferentes a los descritos anteriormente, es aceptable decidir adecuadamente de acuerdo con la proporción de estos tamaños de bloque. Esto también es aplicable a las siguientes realizaciones.
Además, en la primera realización, en el diagrama de flujo mostrado en la figura 8 o figura 10, el vector de movimiento determinado basándose en vectores de movimiento de bloques adyacentes es uno para un macrobloque actual que se va a codificar o descodificar. En consecuencia, cuando el proceso de la etapa S404 o la etapa S504 se realiza en el bloque actual que se va a compensar en movimiento en el mismo macrobloque actual, el mismo proceso de cálculo se repite cada vez como un resultado. Sin embargo, la presente invención no está limitada a esto. Es satisfactorio, por ejemplo, determinar el vector de movimiento por adelantado basándose en vectores de movimiento de bloques adyacentes para cada macrobloque actual, en otras palabras, realizar el proceso de la etapa S404 o la etapa S504 antes de la evaluación de la etapa S401 o la etapa S501 y simplemente "usar el valor de vector de movimiento determinado por adelantado basándose en los vectores de movimiento como el bloque adyacente como el vector de movimiento del bloque actual que se va a compensar en movimiento" en la etapa S404 o la etapa S504. De esta manera, cuando "el movimiento NO es pequeño" en el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento, se logra el efecto para reducir el número de cálculos del vector de movimiento basándose en los vectores de movimiento de bloques adyacentes y para reducir la carga de procesamiento de la unidad de estimación de vectores de movimiento 302 y la unidad de compensación de movimiento 402. Esto también es aplicable a las siguientes realizaciones.
Además, en lugar de realizar el proceso de la etapa S401 o la etapa S501 antes de la evaluación de la etapa S401 o la etapa S501, es aceptable almacenar, en una memoria y similar, el vector de movimiento MV del macrobloque actual que se va a codificar / descodificar que se calcule por el proceso de la etapa S404 o la etapa 504 cuando se realiza el proceso de la etapa S404 o la etapa S504. La duración para almacenar el vector de movimiento MV es la duración para procesar bloques actuales que se van a compensar en movimiento en el mismo macrobloque actual. En forma concreta, es satisfactorio que la unidad de estimación de vectores de movimiento 303 o la unidad de compensación de movimiento 402 calcule el vector de movimiento del macrobloque actual solo cuando "el movimiento NO es pequeño" en el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento en los macrobloques actuales y almacene el vector de movimiento MV del macrobloque actual mientras los bloques actuales que se van a compensar en movimiento en el mismo macrobloque actual que se va a codificar o descodificar. De esta manera, se logra el efecto para reducir más el número de cálculos por la unidad de estimación de vectores de movimiento 302 y la unidad de compensación de movimiento 402 y para reducir más la carga de procesamiento de la unidad de estimación de vectores de movimiento 302 y la unidad de compensación de movimiento 402.
Además, en la primera realización, se describe que en la etapa S404 o la etapa S504 en el diagrama de flujo de la figura 8 o la figura 10, el vector de movimiento del macrobloque actual que se va a codificar o descodificar se determina usando vectores de movimiento de bloques adyacentes, pero no es necesario determinar el vector de movimiento MV del bloque actual que se va a codificar o descodificar mediante este método. Por ejemplo, es aceptable que el vector de movimiento del macrobloque actual se determine usando el vector de movimiento del bloque en una imagen que está ubicada conjuntamente con el macrobloque actual en otra imagen cuyo vector de movimiento haya sido determinado por adelantado. Esto también es aplicable a las siguientes realizaciones.
Además, en la primera realización, se explica que la unidad de conversión de información de movimiento 301 convierte un parámetro de movimiento de una imagen de referencia en un parámetro con un tamaño de bloque predeterminado después de que el parámetro de movimiento de la imagen de referencia es almacenado en la unidad de almacenamiento de vectores de movimiento 110 pero es satisfactorio que la unidad de conversión de información de movimiento 301 realice la conversión antes que el parámetro de movimiento de la imagen de referencia sea almacenado en la unidad de almacenamiento de vectores de movimiento 110. Esto también es aplicable a las siguientes realizaciones. Por ejemplo, cuando un parámetro de movimiento de una imagen de referencia se estima con un bloque de 4 * 4 píxeles como la unidad para la compensación de movimiento, la unidad de conversión de información de movimiento 301 rescribe todos los valores de los vectores de movimiento MV1, MV2, MV3 y MV4 estimados en cuatro bloques de 4 * 4 píxeles contenidos en el bloque de 8 * 8 píxeles en el valor de un bloque de 4 * 4 píxeles, MV1, en el bloque de 8 * 8 píxeles, ubicado en las cuatro esquinas del macrobloque de 16 * 16 píxeles. De esta manera, todos los cuatro bloques de 4 * 4 píxeles obtenidos al dividir el macrobloque en cuatro bloques de 8 * 8 píxeles y dividiendo además cada bloque de 8 * 8 píxeles en cuatro, tienen los mismos vectores de movimiento que los vectores de movimiento estimados para cuatro bloques de 4 * 4 píxeles, en el bloque de 8 * 8 píxeles, ubicado en las cuatro esquinas del macrobloque. Al almacenar un parámetro de movimiento convertido de esta manera en la unidad de almacenamiento de vectores de movimiento 110, cuando la unidad de estimación de vectores de movimiento 302 extrae por lectura el vector de movimiento de cualquiera de los cuatro bloques de 4 * 4 píxeles incluidos en el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual, la unidad de estimación de vectores de movimiento 302 puede evaluar fácilmente el movimiento del bloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual.
Además, es aceptable que, cuando el parámetro de movimiento de una imagen de referencia se estima con un bloque de 4 * 4 píxeles como la unidad de compensación de movimiento, por ejemplo, la unidad de conversión de información de movimiento 301 asocia un vector de movimiento, por ejemplo, MV1, con cada bloque de 8 * 8 píxeles obtenido al dividir un macrobloque de 16 * 16 en cuatro, y almacena un vector de movimiento en la unidad de almacenamiento de vectores de movimiento 110. Esto también es aplicable a las siguientes realizaciones. Este vector de movimiento es el vector de movimiento y similar estimado para los cuatro bloques de 4 * 4 píxeles, en el bloque de 8 * 8 píxeles, ubicado en las cuatro esquinas del macrobloque de 16 * 16 píxeles. De esta manera, aunque el parámetro de movimiento de la imagen de referencia se estima con un bloque de 4 * 4 píxeles como la unidad de compensación de movimiento, la unidad de estimación de vectores de movimiento 302 puede evaluar si "el movimiento es pequeño" o no en el bloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual con un proceso similar al proceso mostrado en las figuras 6A y 8.
Además, es satisfactorio que, cuando el parámetro de movimiento de una imagen de referencia se estima con un bloque de 4 * 4 píxeles como la unidad de compensación de movimiento, por ejemplo, la unidad de conversión de información de movimiento 301 evalúe si "el movimiento es pequeño" o no en los cuatro bloques de 4 * 4 píxeles, en el bloque de 8 * 8 píxeles, ubicado en las cuatro esquinas del macrobloque de 16 * 16 píxeles, y almacene el indicador que indique el resultado de evaluación asociado con cada bloque de 8 * 8 píxeles en el macrobloque actual que se va a codificar en la unidad de almacenamiento de vectores de movimiento 110. Esto también es aplicable a las siguientes realizaciones. De esta manera, no es necesario que la unidad de estimación de vectores de movimiento 302 evalúe si "el movimiento es pequeño" o no en el bloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual cuando se compensa en movimiento una imagen B, y se logra que el efecto para reducir la carga de procesamiento para compensar en movimiento la imagen B pueda reducirse.
(Segunda realización)
En la segunda realización que se explica a continuación, cuando el macrobloque actual que se va a codificar o descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento en diferentes tamaños, el método de evaluación para seleccionar o bien determinar el vector de movimiento del bloque actual que se va a compensar en movimiento como de (0, 0) o bien determinar el vector de movimiento del bloque actual que se va a compensar en movimiento usando los vectores de movimiento de los bloques adyacentes es diferente al método de evaluación de la primera realización. Cuando el macrobloque actual y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento en el mismo tamaño de bloque, la compensación de movimiento de un bloque actual que se va a compensar en movimiento se realiza siguiendo los métodos explicados en las figuras 6A, 6B, 7 y 8 de la primera realización. En consecuencia, con respecto a la estructura, las partes principalmente diferentes entre el aparato de codificación de imágenes / el aparato de descodificación de imágenes de acuerdo con la segunda realización y el aparato de codificación de imágenes 300/ el aparato de descodificación de imágenes 400 indicados en la primera realización son la unidad de conversión de información de movimiento y la unidad de estimación de vectores de movimiento en el aparato de codificación de imágenes y la unidad de conversión de información de movimiento y la unidad de compensación de movimiento en el aparato de descodificación de imágenes. A continuación se omiten las explicaciones de componentes que se superponen.
La figura 11 es un diagrama que muestra la correspondencia entre el bloque actual que se va a compensar en movimiento y la pluralidad de bloques en una imagen subsiguiente que están ubicados conjuntamente con el bloque actual que se va a compensar en movimiento cuando el macrobloque actual que se va a codificar / descodificar y el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con un macrobloque actual son compensados en movimiento en diferentes tamaños de bloque en la segunda realización. En el lado izquierdo de la figura 11 se muestra un macrobloque actual que se va a codificar o descodificar en la imagen B actual que se va a codificar o descodificar, de forma similar a la figura 9. En el lado derecho de la figura 11 se muestra el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual, de forma similar a la figura 9. La imagen a la que pertenece el macrobloque, mostrado en el lado derecho de la figura 11, en una imagen subsiguiente que está ubicada conjuntamente con un macrobloque actual, es una imagen P o una imagen B; por ejemplo, la estimación de vectores de movimiento y la compensación de movimiento ya han sido realizados en el macrobloque con un bloque de 4 * 4 píxeles (el lote más pequeño de la figura 11) como la unidad. Al macrobloque actual mostrado en el lado izquierdo de la figura 11, de forma similar a la figura 9, la determinación de vector de movimiento y la compensación de movimiento se realizan con un bloque de 8 * 8 píxeles como la unidad.
Como se muestra en la figura 11, un macrobloque actual que se va a codificar o descodificar está compuesto de cuatro bloques actuales que se van a compensar en movimiento. Cuando se llaman los cuatro bloques actuales que se van a compensar en movimiento, por ejemplo, para ser los cuatro bloques actuales que se van a compensar en movimiento a, b, c y d, en el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual, cuatro bloques de 8 * 8 píxeles, cada uno de los cuales está compuesto de cuatro bloques de 4 * 4 píxeles compensados en movimiento, corresponden a cada bloque actual que se va a compensar en movimiento.
La figura 12 es un diagrama de flujo que muestra un proceso en la segunda realización para compensar en movimiento el bloque actual que se va a compensar en movimiento con un método diferente (un vector de movimiento diferente) dependiendo de un movimiento del bloque en una imagen subsiguiente ubicada conjuntamente con el bloque actual que se va a compensar en movimiento cuando un macrobloque actual que se va a codificar o descodificar y un macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual son compensados en movimiento con diferentes tamaños de bloque. Como ya se ha explicado, en el método de compensación de movimiento de acuerdo con la segunda realización, debido a que solo el método de evaluación para seleccionar el vector de movimiento del bloque actual que se va a compensar en movimiento es diferente, solo el proceso de la etapa S701 de la figura 12 es diferente del proceso en la etapa S501 de la figura 10.
En primer lugar, la unidad de conversión de información de movimiento evalúa si el tamaño de la compensación de movimiento en el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento es el mismo que el tamaño del bloque actual que se va a compensar en movimiento o no. Cuando son los mismos, la unidad de conversión de información de movimiento da instrucciones a la unidad de estimación de vectores de movimiento para calcular el vector de movimiento del bloque actual que se va a compensar en movimiento siguiendo el procedimiento mostrado en el diagrama de flujo de la figura 8. Por el contrario, cuando la compensación de movimiento no se realiza en el mismo tamaño de bloque, la unidad de conversión de información de movimiento da instrucciones a la unidad de estimación de vectores de movimiento o a la unidad de estimación de movimiento para calcular el vector de movimiento del bloque actual que se va a compensar en movimiento.
La unidad de estimación de vectores de movimiento o la unidad de compensación de movimiento evalúa si "el movimiento es pequeño" o no en el bloque compensado en movimiento a' ubicado en una esquina del macrobloque en una imagen subsiguiente que está ubicada conjuntamente con un bloque actual fuera de los cuatro bloques compensados en movimiento que componen el bloque en el macrobloque en una imagen subsiguiente que está ubicada conjuntamente con un macrobloque actual, el bloque a' que corresponde al bloque compensado en movimiento a en el macrobloque actual (S701).
La norma para evaluar si "el movimiento es pequeño" o no en el bloque compensado en movimiento a' es similar a la de la etapa S401 mostrada en la figura 8. Cuando "el movimiento es pequeño" en el bloque compensado en movimiento a', la unidad de estimación de vectores de movimiento o la unidad de compensación de vectores de movimiento determina que el vector de movimiento del bloque actual que se va a compensar en movimiento en el macrobloque actual que se va a codificar o descodificar es (0, 0) (S702). La unidad de compensación de movimiento compensa en movimiento el bloque actual que se va a compensar en movimiento a usando el vector de movimiento determinado (0, 0) (S703).
Cuando "el movimiento NO es pequeño" en el bloque actual que se va a compensar en movimiento a', usando los vectores de movimiento de los bloques adyacentes al bloque actual que se va a codificar o descodificar, la unidad de estimación de vectores de movimiento o la unidad de compensación de movimiento determina el vector de movimiento MV del macrobloque actual (S704). El proceso para determinar el vector de movimiento MV del macrobloque actual usando los vectores de movimiento de los bloques adyacentes es similar al proceso de la etapa S404 de la figura 8. La unidad de compensación de movimiento genera los valores de píxel predictivos de compensación de movimiento del bloque actual que se va a compensar en movimiento a usando el vector de movimiento MV determinado de esta forma (S703). Mediante el proceso descrito anteriormente, la compensación de movimiento de un bloque actual que se va a compensar en movimiento a ha sido completada.
La unidad de estimación de vectores de movimiento, la unidad de compensación de movimiento y la unidad de conversión de información de movimiento en el aparato de codificación de imágenes de acuerdo con la segunda realización y la unidad de compensación de movimiento y la unidad de conversión de información de movimiento en el aparato de descodificación de imágenes de acuerdo con la segunda realización repiten subsiguientemente el proceso de las etapas S701 - S704 mencionados anteriormente a los bloques actuales restantes que se van a compensar en movimiento b, c y d y completan la compensación de movimiento a un macrobloque actual que se va a codificar o descodificar.
En otras palabras, en referencia al bloque actual que se va a compensar en movimiento b, la unidad de estimación de vectores de movimiento evalúa si "el movimiento es pequeño" o no en el bloque compensado en movimiento b', en el bloque en una imagen subsiguiente que está ubicada conjuntamente con el bloque actual que se va a compensar en movimiento b, ubicado en una esquina del macrobloque en una imagen subsiguiente que está ubicada conjuntamente con el macrobloque actual, y selecciona el vector de movimiento (0, 0) cuando "el movimiento es pequeño" en el bloque compensado en movimiento b'. Cuando "el movimiento NO es pequeño" en el bloque compensado en movimiento b', la unidad de estimación de vectores de movimiento selecciona el vector de movimiento MV del macrobloque actual usando los vectores de movimiento de los bloques adyacentes. La unidad de compensación de movimiento realiza la compensación de movimiento para el bloque actual que se va a compensar en movimiento b usando el vector de movimiento seleccionado.
Además, de manera similar a los bloques actuales que se van a compensar en movimiento c y d, la unidad de estimación de vectores de movimiento selecciona el vector de movimiento dependiendo del movimiento de los bloques compensados en movimiento c y d, y la unidad de compensación de movimiento compensa en movimiento a los bloques actuales que se van a compensar en movimiento c y d. Por lo tanto, cuando el aparato de codificación de imágenes y el aparato de descodificación de imágenes realizan la compensación de movimiento a todos los bloques actuales que se van a compensar en movimiento en el macrobloque actual, el aparato de codificación de imágenes y el aparato de descodificación de imágenes completan la compensación de movimiento para el macrobloque actual que se va a codificar o descodificar.
Como se describió anteriormente, mediante el método de compensación de movimiento de acuerdo con la segunda realización, debido a que es posible seleccionar el vector de movimiento usado para compensar en movimiento el bloque actual que se va a compensar en movimiento solo al examinar el movimiento de un bloque compensado en movimiento ubicado en una esquina del macrobloque en una imagen subsiguiente que está ubicada conjuntamente con un macrobloque actual, se logra el efecto para reducir la carga de procesamiento de la unidad de estimación de vectores de movimiento o la unidad de compensación de movimiento en comparación con el método de compensación de movimiento de acuerdo con la primera realización.
(Tercera realización)
Además, es posible realizar fácilmente el procesamiento mostrado en las realizaciones anteriores en un sistema informático independiente al registrar un programa para lograr el método de codificación de imágenes y el método de descodificación de imágenes mostrados en las realizaciones mencionadas anteriormente en el medio de registro tal como un disco flexible.
La figura 13 es una ilustración de un medio de registro para almacenar un programa para lograr la primera y la segunda realizaciones por un sistema informático.
La figura 13B muestra una apariencia completa de un disco flexible, su estructura en corte transversal y el propio disco flexible, mientras que la figura 13A muestra un ejemplo de un formato físico del disco flexible como un cuerpo principal de un medio de almacenamiento. Un disco flexible FD está contenido en una envuelta F con una pluralidad de pistas Tr formadas concéntricamente desde la periferia hasta el interior sobre la superficie del disco, y cada pista está dividida en 16 sectores Se en la dirección angular. Por lo tanto, en cuanto al disco flexible que almacena el programa mencionado anteriormente, datos tales como el programa mencionado anteriormente son almacenados en un área asignada para estos en el disco flexible FD.
La figura 13 C muestra una estructura para registrar y extraer por lectura el programa en el disco flexible FD. Cuando el programa es registrado en el disco flexible FD, el sistema informático Cs escribe datos como el programa por medio de una unidad de disco flexible. Cuando el dispositivo de codificación y el dispositivo de descodificación son construidos en el sistema informático mediante el programa en el disco flexible, el método de codificación de imágenes y un método de descodificación de imágenes como el programa se extrae por lectura de la unidad de disco flexible y entonces se transfiere al sistema informático Cs.
La explicación anterior se hace bajo la suposición de que un medio de almacenamiento sea un disco flexible, pero el mismo procesamiento se puede hacer también usando un disco óptico. Además, el medio de almacenamiento no está limitado a un disco flexible y a un disco óptico, sino que se puede usar cualquier otro medio tal como una tarjeta de CI o un casete de ROM capaz de registrar un programa.
(Cuarta realización)
A continuación se da una descripción de las aplicaciones del método de codificación de imágenes, así como del método de descodificación de imágenes como se muestra en las realizaciones mencionadas anteriormente, y un sistema que los usa.
La figura 14 es un diagrama de bloques que muestra una configuración general de un sistema de suministro de contenidos ex100 para lograr un servicio de distribución de contenidos. El área para proporcionar el servicio de comunicación está dividida en células de tamaño deseado, y sitios de célula ex107 - ex110, que son estaciones inalámbricas fijas, están colocados en células respectivas.
Este sistema de suministro de contenidos ex100 es conectado a dispositivos tales como Internet ex101, un proveedor de servicio de Internet ex102, una red telefónica ex104, así como un ordenador ex111, un PDA (Asistente Digital Personal) ex112, una cámara ex113, un teléfono celular ex114 y un teléfono celular con una cámara ex115 por medio de los sitios de célula ex107 - ex110.
Sin embargo, el sistema de suministro de contenidos ex100 no está limitado a la configuración mostrada en la figura 14 y puede ser conectado a una combinación de cualquiera de ellos. Asimismo, cada aparato puede ser conectado directamente a la red telefónica ex104, no a través de los sitios de célula ex107 - ex110.
La cámara ex113 es un dispositivo capaz de captar vídeo tal como una cámara de vídeo digital. El teléfono celular ex114 puede ser un teléfono celular de cualquiera de los siguientes sistemas: un sistema PDC (Comunicaciones Digitales Personales), un sistema CDMA (Acceso Múltiple por División de Códigos), un sistema W-CDMA (Acceso Múltiple por División de Códigos de Banda Ancha) o un sistema GSM (Sistema Global para Comunicaciones Móviles), un PHS (Sistema de Teléfono Portátil Personal) o similares.
Un servidor de transmisión por secuencias ex103 está conectado a la cámara ex113 por medio de la red telefónica ex104 y también al sitio de célula ex109, que logra una distribución en vivo o similar usando la cámara ex113 basándose en los datos codificados transmitidos desde el usuario. Cada uno de la cámara ex113, el servidor que transmite los datos y similares puede codificar los datos. Asimismo, los datos de imagen tomados por una cámara ex116 pueden ser transmitidos al servidor de transmisión por secuencias ex103 por medio del ordenador ex111. En este caso, o bien la cámara ex116 o bien el ordenador ex111 puede codificar los datos de imagen. Un LSI ex117 incluido en el ordenador ex111 y la cámara ex116 realiza realmente el procesamiento de codificación. Software para codificar y descodificar imágenes puede ser integrado en cualquier tipo de medio de almacenamiento (tal como un CD-ROM, un disco flexible y un disco duro) que sea un medio de registro que es legible por el ordenador ex111 o similar. Además, un teléfono celular con una cámara ex115 puede transmitir los datos de imágenes. Estos datos de imágenes son los datos codificados por el LSI incluido en el teléfono celular ex115.
El sistema de suministro de contenidos ex100 codifica contenidos (tales como un vídeo musical en vivo) tomados por un usuario que use la cámara ex113, la cámara ex116 o similares de la misma manera que la mostrada en la realización mencionada anteriormente, y los transmite al servidor de transmisión por secuencias ex103, mientras que el servidor de transmisión por secuencias ex103 hace el suministro de secuencias de los datos de contenido a los clientes de acuerdo con sus solicitudes. Los clientes incluyen el ordenador ex111, el PDA ex112, la cámara ex113, el teléfono celular ex114 y demás, capaces de descodificar los datos codificados mencionados anteriormente. En el sistema de suministro de contenidos ex100, los clientes pueden entonces recibir y reproducir los datos codificados, y pueden además recibir, descodificar y reproducir los datos en tiempo real para lograr de este modo una radiodifusión personal.
Cuando cada dispositivo en este sistema realiza la codificación o descodificación, el método de codificación de imágenes o el método de descodificación de imágenes mostrado en la realización mencionada anteriormente pueden ser usados.
Se explicará un teléfono celular como un ejemplo del dispositivo.
La figura 15 es un diagrama que muestra el teléfono celular ex115 que usa el método de codificación de imágenes y el método de descodificación de imágenes explicados en las realizaciones mencionadas anteriormente. El teléfono celular ex115 tiene una antena ex201 para comunicarse con el sitio de célula ex110 por medio de ondas de radio, una unidad de cámara ex203 tal como una cámara CCD capaz de tomar imágenes en movimiento y fijas, una unidad de visualización ex202 tal como un visualizador de cristal líquido para visualizar los datos tales como las imágenes descodificadas y similares tomados por la unidad de cámara ex203 o recibidos por la antena ex201, una unidad de cuerpo que incluye un conjunto de teclas de operación ex204, una unidad de salida de audio ex208 tal como un altavoz para emitir audio, una unidad de entrada de audio ex205 tal como un micrófono para introducir audio, un medio de almacenamiento ex207 para almacenar datos codificados o descodificados tales como datos de imágenes en movimiento o fijas tomadas por la cámara, datos de correos electrónicos recibidos y aquellos de imágenes en movimiento o fijas, y una unidad de ranura ex206 para unir el medio de almacenamiento ex207 al teléfono celular ex115. El medio de almacenamiento ex207 almacena en el mismo un elemento de memoria volátil, un tipo de EEPROM (Memoria de Solo Lectura Eléctricamente Borrable y Programable) que es una memoria no volátil eléctricamente borrable de y regrabable en una envuelta de plástico tal como una tarjeta SD.
A continuación se explicará el teléfono celular ex115 con referencia a la figura 16. En el teléfono celular ex115, una unidad de control principal ex311, diseñada con el fin de controlar en forma general cada unidad del cuerpo principal que contiene la unidad de visualización ex202 así como las teclas de operación ex204, está conectada mutuamente a una unidad de circuito de suministro de energía ex310, una unidad de control de entrada de operación ex304, una unidad de codificación de imágenes ex312, una unidad de interfaz de cámara ex303, una unidad de control de LCD (Visualizador de Cristal Líquido) ex302, una unidad de descodificación de imágenes ex309, una unidad de multiplexación / desmultiplexación ex308, una unidad de lectura / escritura ex307, una unidad de circuito de módem ex306 y una unidad de procesamiento de audio ex305 por medio de un bus síncrono ex313.
Cuando una tecla de fin de llamada o una tecla de encendido es activada por la operación de un usuario, la unidad de circuito de suministro de energía ex310 suministra a las unidades respectivas energía desde un paquete de baterías para activar de esta manera el teléfono celular digital con una cámara ex115 como un estado preparado.
En el teléfono celular ex115, la unidad de procesamiento de audio ex305 convierte las señales de audio recibidas por la unidad de entrada de audio ex205 en modo de conversación en datos de audio digitales bajo el control de la unidad de control principal ex311 que incluye una CPU, ROM y RAM, la unidad de circuito de módem ex306 realiza el procesamiento de espectro ensanchado de los datos de audio digitales, y la unidad de circuito de comunicación ex301 realiza la conversión digital a analógica y la transformación de frecuencia de los datos, para transmitirlos por medio de la antena ex201. Asimismo, en el teléfono celular ex115, la unidad de circuito de comunicación ex301 amplifica los datos recibidos por la antena ex201 en el modo de conversación y realiza la conversión de frecuencia y la conversión analógica a digital de los datos, la unidad de circuito de módem ex306 realiza el procesamiento de espectro ensanchado inverso de los datos, y la unidad de procesamiento de audio ex305 los convierte en datos de audio analógicos para que sean emitidos por medio de la unidad de emisión de audio ex208.
Además, cuando se transmite un correo electrónico en modo de comunicación de datos, los datos de texto del correo electrónico introducidos al operar las teclas de operación ex204 del cuerpo principal son enviados a la unidad de control principal ex311 por medio de la unidad de control de entrada de operación ex304. En la unidad de control principal ex311, después de que la unidad de circuito de módem ex306 realiza el procesamiento de espectro ensanchado de los datos de texto y la unidad de circuito de comunicación ex301 realiza la conversión digital a analógica y la transformación de frecuencia de los datos de texto, los datos son transmitidos al sitio de célula ex110 por medio de la antena ex201.
Cuando los datos de imágenes son transmitidos en modo de comunicación de datos, los datos de imagen tomados por la unidad de cámara ex203 son suministrados a la unidad de codificación de imágenes ex312 por medio de la unidad de interfaz de cámara ex303. Cuando no son transmitidos, también es posible visualizar los datos de imagen tomados por la unidad de cámara ex203 directamente en la unidad de visualización ex202 por medio de la unidad de interfaz de cámara ex303 y la unidad de control de LCD ex302.
La unidad de codificación de imágenes ex312, que incluye el aparato de codificación de imágenes como se explica en la presente invención, comprime y codifica los datos de imagen suministrados desde la unidad de cámara ex203 por el método de codificación empleado por el aparato de codificación de imágenes como se muestra en la primera realización mencionada anteriormente para transformarlos de esta manera en datos de imagen codificados, y los envía a la unidad de multiplexación / desmultiplexación ex308. En este momento, el teléfono celular ex115 envía el audio recibido por la unidad de entrada de audio ex205 durante la toma con la unidad de cámara ex203 a la unidad de multiplexación / desmultiplexación ex308 como datos de audio digitales por medio de la unidad de procesamiento de audio ex305.
La unidad de multiplexación / desmultiplexación ex308 multiplexa los datos de imagen codificados y suministrados desde la unidad de codificación de imágenes ex312 y los datos de audio suministrados desde la unidad de procesamiento de audio ex305, usando un método predeterminado, entonces la unidad de circuito de módem ex306 realiza el procesamiento de espectro ensanchado de los datos multiplexados obtenidos como resultado de la multiplexación, y finalmente la unidad de circuito de comunicación ex301 realiza la conversión digital a analógica y la conversión de frecuencia de los datos para su transmisión por medio de la antena ex201.
Para recibir datos de un archivo de imágenes en movimiento que está enlazado a una página de red o similar en el modo de comunicación de datos, la unidad de circuito de módem ex306 realiza procesamiento de espectro ensanchado inverso de los datos recibidos desde el sitio de célula ex110 por medio de la antena ex201, y envía los datos multiplexados obtenidos como resultado del procesamiento de espectro ensanchado inverso.
Con el fin de descodificar los datos multiplexados recibidos por medio de la antena ex201, la unidad de multiplexación / desmultiplexación ex308 separa los datos multiplexados en una secuencia de bits de datos de imagen y una de datos de audio, y suministra los datos de imagen codificados a la unidad de descodificación de imágenes ex309 y los datos de audio a la unidad de procesamiento de audio ex305, respectivamente por medio del bus síncrono ex313.
Posteriormente, la unidad de descodificación de imágenes ex309, incluyendo el aparato de descodificación de imágenes como se explica en la invención mencionada anteriormente, descodifica la secuencia de bits de datos de imagen usando el método de descodificación que corresponde al método de codificación como se muestra en las realizaciones mencionadas anteriormente para generar datos de imagen en movimiento reproducidos, y suministra estos datos a la unidad de visualización ex202 por medio de la unidad de control de LCD ex302, y de esta manera los datos de imagen incluidos en el archivo de imágenes en movimiento enlazado a una página de red, por ejemplo, son visualizados. Al mismo tiempo, la unidad de procesamiento de audio ex305 convierte los datos de audio en datos de audio analógicos, y suministra estos datos a la unidad de salida de audio ex208, y de esta manera los datos de audio incluidos en el archivo de imágenes en movimiento enlazado a una página de red, por ejemplo, son reproducidos.
La presente invención no está limitada al sistema mencionado anteriormente debido a que la radiodifusión digital terrestre y vía satélite ha salido últimamente en las noticias y al menos o bien el aparato de codificación de imágenes o bien el aparato de descodificación de imágenes descritos en las realizaciones mencionadas anteriormente pueden ser incorporados en un sistema de radiodifusión digital como se muestra en la figura 17. . De manera más específica, una secuencia de bits de información de vídeo es transmitida desde una estación de radiodifusión ex409 a, o comunicada con un satélite de radiodifusión ex410 por medio de ondas de radio. Después de la recepción de esta, el satélite de radiodifusión ex410 transmite ondas de radio para su radiodifusión. Entonces, una antena de uso doméstico ex406 con una función de recepción de radiodifusión vía satélite recibe las ondas de radio, y una televisión (receptor) ex401 o una unidad de adaptación multimedios (STB) ex407 descodifica una secuencia de bits codificada para su reproducción. El aparato de descodificación de imágenes como se muestra en la realización mencionada anteriormente puede ser implementado en el aparato reproductor ex403 para la extracción por lectura y descodificación de la secuencia de bits registrada en un medio de almacenamiento ex402 que sea un medio de registro tal como un CD y un DVD. En este caso, las señales de vídeo reproducidas son visualizadas en un monitor ex404. También es concebible implementar el aparato de descodificación de imágenes en la unidad de adaptación multimedios ex407 conectada a un cable ex405 para una televisión por cable o la antena ex406 para la radiodifusión vía satélite y /o terrestre para de esta manera reproducir los datos en un monitor ex408 de la televisión ex401. El aparato de descodificación de imágenes puede estar incorporado en la televisión, no en la unidad de adaptación multimedios. Asimismo, un coche ex412 que tenga una antena ex411 puede recibir señales que provengan del satélite ex410 o el sitio de célula ex107 para reproducir imágenes en movimiento en un dispositivo de visualización tal como un sistema de navegación de coche ex413 colocado en el coche ex412.
Además, el aparato de codificación de imágenes como se muestra en las realizaciones mencionadas anteriormente puede codificar señales de imagen y registrarlas en un medio de registro. Como un ejemplo concreto, se pueden citar una grabadora ex420 tal como una grabadora de DVD para registrar señales de imágenes en un disco DVD ex421, una grabadora de discos para registrarlas en un disco duro. Pueden ser registradas en una tarjeta SD ex422. Cuando la grabadora ex420 incluye el aparato de descodificación de imágenes como se muestra en las realizaciones mencionadas anteriormente, las señales de imagen registradas en el disco DVD ex421 o la tarjeta SD ex422 pueden ser reproducidas para su visualización en el monitor ex408.
En cuanto a la estructura del sistema de navegación de coche ex413, la estructura sin la unidad de cámara ex203, la unidad de interfaz de cámara ex303 y la unidad de codificación de imágenes ex312, fuera de los componentes mostrados en la figura 16, es concebible. Lo mismo es de aplicación para el ordenador ex111, la televisión (receptor) ex401 y otros.
Además, se pueden concebir tres tipos de implementaciones para un terminal tal como el teléfono celular ex114 mencionado anteriormente; un terminal de envío / recepción implementado tanto con un codificador como con un descodificador, un terminal de envío implementado con solo un codificador, y un terminal de recepción implementado con solo un descodificador.
Como se describió anteriormente, es posible usar el método de codificación de imágenes o el método de descodificación de imágenes descritos en las realizaciones mencionadas anteriormente para cualquiera de los dispositivos y sistemas descritos anteriormente, y mediante el uso de este método, los efectos descritos en las realizaciones mencionadas anteriormente pueden obtenerse.
Aplicabilidad industrial
El aparato de codificación de imágenes de acuerdo con la presente invención es útil como el aparato de codificación de imágenes que está incluido en un ordenador personal y un PDA que están equipados con la función de comunicación, una estación de radiodifusión digital, un teléfono celular y similares.
El aparato de descodificación de imágenes de acuerdo con la presente invención es útil como el aparato de descodificación de imágenes que está incluido en un ordenador personal y un PAD con la función de comunicación, un STB que recibe radiodifusión digital, un teléfono celular y similares.

Claims (4)

REIVINDICACIONES
1. Un método para generar y descodificar una secuencia de bits de una imagen B objetivo,
en donde generar la secuencia de bits de la imagen B objetivo incluye las siguientes etapas:
(1) una etapa de obtener un vector de movimiento a partir de un bloque para el que se ha realizado una compensación de movimiento, estando incluido dicho bloque en un bloque ubicado conjuntamente, estando incluido el bloque ubicado conjuntamente en un macrobloque ubicado conjuntamente, estando incluido el macrobloque ubicado conjuntamente en una imagen subsiguiente en orden de visualización a la imagen B objetivo, en donde el tamaño de dicho bloque es menor que el tamaño de un bloque objetivo de codificación incluido en un macrobloque objetivo de codificación incluido en la imagen B objetivo
y el tamaño de dicho bloque ubicado conjuntamente es el mismo que el bloque objetivo de codificación y en donde dicho bloque está ubicado en una esquina de dicho macrobloque ubicado conjuntamente;
(2) una etapa de determinar un vector de movimiento del bloque objetivo de codificación para realizar una compensación de movimiento sobre el bloque objetivo de codificación usando el vector de movimiento obtenido, en donde, cuando un tamaño del vector de movimiento obtenido es un valor predeterminado o menor, el vector de movimiento del bloque objetivo de codificación se determina (S402, S502, S702) como "0", y, cuando el tamaño del vector de movimiento obtenido supera el valor predeterminado, el vector de movimiento del bloque objetivo de codificación se determina (S404, S504, S704) usando vectores de movimiento de macrobloques adyacentes que están ubicados adyacentes al macrobloque objetivo de codificación;
(3) una etapa de realizar una compensación de movimiento (S403, S503, S703) para el bloque objetivo de codificación para generar una imagen predictiva del bloque objetivo de codificación mediante el uso del vector de movimiento determinado del bloque objetivo de codificación; y
(4) una etapa de generar la secuencia de bits de la imagen B objetivo mediante la codificación de una imagen de diferencia entre el bloque objetivo de codificación y la imagen predictiva del bloque objetivo de codificación;
en donde descodificar la secuencia de bits de la imagen B objetivo incluye las siguientes etapas:
(1) una etapa de obtención de vector de movimiento de obtener un vector de movimiento a partir de un bloque para el que se ha realizado una compensación de movimiento, estando incluido dicho bloque en un bloque ubicado conjuntamente, estando incluido el bloque ubicado conjuntamente en un macrobloque ubicado conjuntamente, estando incluido el macrobloque ubicado conjuntamente en una imagen subsiguiente en orden de visualización a la imagen B objetivo, en donde el tamaño de dicho bloque es menor que el tamaño de un bloque objetivo de descodificación incluido en un macrobloque objetivo de descodificación incluido en la imagen B objetivo y el tamaño de dicho bloque ubicado conjuntamente es el mismo que el bloque objetivo de descodificación y en donde dicho bloque está ubicado en una esquina de dicho macrobloque ubicado conjuntamente;
(2) una etapa de determinación de vector de movimiento de determinar un vector de movimiento del bloque objetivo de descodificación para realizar una compensación de movimiento sobre el bloque objetivo de descodificación usando el vector de movimiento obtenido, en donde, cuando un tamaño del vector de movimiento obtenido es un valor predeterminado o menor, el vector de movimiento del bloque objetivo de descodificación se determina (S402, S502, S702) como "0", y, cuando el tamaño del vector de movimiento obtenido supera el valor predeterminado, el vector de movimiento del bloque objetivo de descodificación se determina (S404, S504, S704) usando vectores de movimiento de macrobloques adyacentes que están ubicados adyacentes al macrobloque objetivo de descodificación incluido en la imagen B objetivo;
(3) una etapa de compensación de movimiento de realizar una compensación de movimiento (S403, S503, S703) para el bloque objetivo de descodificación para generar una imagen predictiva del bloque objetivo de descodificación mediante el uso del vector de movimiento determinado del bloque objetivo de descodificación; y
(4) una etapa de adición de añadir la imagen predictiva del bloque objetivo de descodificación y una imagen de diferencia obtenida mediante la descodificación de la secuencia de bits de la señal de imagen B objetivo de descodificación para generar una imagen de bloque reconstruido.
2. El método de acuerdo con la reivindicación 1,
en donde un tamaño del macrobloque objetivo de descodificación, el macrobloque adyacente y el macrobloque ubicado conjuntamente es de 16 píxeles * 16 píxeles,
un tamaño del bloque objetivo de descodificación es de 8 píxeles * 8 píxeles, y
un tamaño de cada uno de la pluralidad de bloques que están incluidos en el macrobloque ubicado conjuntamente y para el que se ha realizado una compensación de movimiento es de 4 píxeles * 4 píxeles.
ES18155063T 2002-11-25 2003-08-28 Método para codificar y descodificar imágenes B en modo directo Expired - Lifetime ES2788382T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002340390 2002-11-25

Publications (1)

Publication Number Publication Date
ES2788382T3 true ES2788382T3 (es) 2020-10-21

Family

ID=32375820

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18155063T Expired - Lifetime ES2788382T3 (es) 2002-11-25 2003-08-28 Método para codificar y descodificar imágenes B en modo directo

Country Status (12)

Country Link
US (11) US8009731B2 (es)
EP (5) EP1569460B1 (es)
KR (2) KR100985366B1 (es)
CN (4) CN100589576C (es)
AU (1) AU2003261780B8 (es)
BR (2) BRPI0307197B1 (es)
CA (1) CA2473897C (es)
ES (1) ES2788382T3 (es)
MX (1) MXPA04007021A (es)
MY (1) MY138540A (es)
TW (3) TWI353182B (es)
WO (1) WO2004049726A1 (es)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8780957B2 (en) * 2005-01-14 2014-07-15 Qualcomm Incorporated Optimal weights for MMSE space-time equalizer of multicode CDMA system
JP4736456B2 (ja) * 2005-02-15 2011-07-27 株式会社日立製作所 走査線補間装置、映像表示装置、映像信号処理装置
US8019000B2 (en) * 2005-02-24 2011-09-13 Sanyo Electric Co., Ltd. Motion vector detecting device
AU2006223416A1 (en) * 2005-03-10 2006-09-21 Qualcomm Incorporated Content adaptive multimedia processing
US9113147B2 (en) 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US20070206117A1 (en) * 2005-10-17 2007-09-06 Qualcomm Incorporated Motion and apparatus for spatio-temporal deinterlacing aided by motion compensation for field-based video
US8948260B2 (en) * 2005-10-17 2015-02-03 Qualcomm Incorporated Adaptive GOP structure in video streaming
US8654848B2 (en) 2005-10-17 2014-02-18 Qualcomm Incorporated Method and apparatus for shot detection in video streaming
US20070171280A1 (en) * 2005-10-24 2007-07-26 Qualcomm Incorporated Inverse telecine algorithm based on state machine
US7783184B2 (en) * 2006-02-15 2010-08-24 Lg Electronics Inc. Optical zoom tracking apparatus and method, and computer-readable recording medium for performing the optical zoom tracking method
EP1835749A1 (en) * 2006-03-16 2007-09-19 THOMSON Licensing Method for coding video data of a sequence of pictures
US9131164B2 (en) * 2006-04-04 2015-09-08 Qualcomm Incorporated Preprocessor method and apparatus
WO2009040904A1 (ja) * 2007-09-26 2009-04-02 Fujitsu Microelectronics Limited ビデオデコーダおよびデジタル放送受信装置
KR100939917B1 (ko) * 2008-03-07 2010-02-03 에스케이 텔레콤주식회사 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
US8488678B2 (en) * 2008-04-01 2013-07-16 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method
US8675738B2 (en) * 2008-08-06 2014-03-18 Mediatek Inc. Video decoding method without using additional buffers for storing scaled frames and system thereof
US8811473B2 (en) * 2009-07-07 2014-08-19 Panasonic Corporation Moving picture decoding device, moving picture decoding method, moving picture decoding system, integrated circuit, and program
CN104661026B (zh) * 2009-10-21 2018-03-27 Sk电信有限公司 图像编码和解码装置和方法
US20110176611A1 (en) * 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
CN102131091B (zh) * 2010-01-15 2013-01-23 联发科技股份有限公司 解码端运动向量导出方法
US20120082228A1 (en) 2010-10-01 2012-04-05 Yeping Su Nested entropy encoding
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
WO2012074344A2 (ko) * 2010-12-03 2012-06-07 엘지전자 주식회사 움직임 정보 리스트 인덱싱 방법 및 이러한 방법을 사용하는 장치
RU2719308C2 (ru) 2011-04-12 2020-04-17 Сан Пэтент Траст Способ кодирования движущихся изображений, устройство кодирования движущихся изображений, способ декодирования движущихся изображений, устройство декодирования движущихся изображений и устройство кодирования и декодирования движущихся изображений
WO2012160803A1 (ja) 2011-05-24 2012-11-29 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
PL2717575T3 (pl) 2011-05-27 2019-03-29 Sun Patent Trust Sposób dekodowania obrazów i urządzenie do dekodowania obrazów
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
SG194746A1 (en) 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
CN103548351B (zh) 2011-05-31 2017-07-11 太阳专利托管公司 运动图像解码方法及运动图像解码装置
EP2723077B1 (en) * 2011-06-17 2021-07-21 JVC KENWOOD Corporation Image encoding device, image encoding method and image encoding program, as well as image decoding device, image decoding method and image decoding program
KR101672662B1 (ko) * 2011-06-20 2016-11-03 가부시키가이샤 제이브이씨 켄우드 화상 부호화 장치, 화상 부호화 방법 및 화상 부호화 프로그램, 또한 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
WO2012177052A2 (ko) 2011-06-21 2012-12-27 한국전자통신연구원 인터 예측 방법 및 그 장치
KR20120140592A (ko) 2011-06-21 2012-12-31 한국전자통신연구원 움직임 보상의 계산 복잡도 감소 및 부호화 효율을 증가시키는 방법 및 장치
CA3017176C (en) 2011-06-28 2020-04-28 Samsung Electronics Co., Ltd. Method and apparatus for image encoding and decoding using intra prediction
MX2013013029A (es) 2011-06-30 2013-12-02 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, dispositivo de decodificacion de imagenes, dispositivo de codificacion de imagenes y dispositivo de codificacion/decodifi cacion de imagenes.
US9819963B2 (en) * 2011-07-12 2017-11-14 Electronics And Telecommunications Research Institute Inter prediction method and apparatus for same
EP3487178A1 (en) 2011-08-03 2019-05-22 Sun Patent Trust Video encoding method, video encoding apparatus, video decoding method, video decoding apparatus, and video encoding/decoding apparatus
JP2013085096A (ja) * 2011-10-07 2013-05-09 Sony Corp 画像処理装置および方法
KR101999869B1 (ko) 2011-10-19 2019-07-12 선 페이턴트 트러스트 화상 부호화 방법, 화상 부호화 장치, 화상 복호 방법, 및, 화상 복호 장치
US9961366B2 (en) * 2012-01-19 2018-05-01 Sony Corporation Image processing apparatus and method that prohibits bi-prediction based on block size
US9906786B2 (en) 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
JP6052319B2 (ja) * 2015-03-25 2016-12-27 Nttエレクトロニクス株式会社 動画像符号化装置
US9998745B2 (en) 2015-10-29 2018-06-12 Microsoft Technology Licensing, Llc Transforming video bit streams for parallel processing
CN109155856B (zh) * 2016-06-09 2023-10-24 英特尔公司 用于视频编解码的利用近邻块模式的运动估计的方法和系统
CN110178371A (zh) * 2017-01-16 2019-08-27 世宗大学校产学协力团 影像编码/解码方法及装置
EP3788787A1 (en) 2018-06-05 2021-03-10 Beijing Bytedance Network Technology Co. Ltd. Interaction between ibc and atmvp
CN113115046A (zh) 2018-06-21 2021-07-13 北京字节跳动网络技术有限公司 分量相关的子块分割
TWI818086B (zh) * 2018-09-24 2023-10-11 大陸商北京字節跳動網絡技術有限公司 擴展Merge預測
CN112997495B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 当前图片参考中的取整
US11070816B2 (en) 2019-06-18 2021-07-20 Tencent America LLC Conversion of decoded block vector for intra picture block compensation
KR20220027207A (ko) * 2019-07-08 2022-03-07 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 혼합된 nal 유닛 픽처 제약 조건
FR3106910B1 (fr) 2020-01-31 2022-02-18 St Microelectronics Grenoble 2 Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique sans transmission de clé secrète
FR3106909B1 (fr) 2020-01-31 2022-02-18 St Microelectronics Grenoble 2 Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique avec protection de clé secrète
KR20220155293A (ko) 2020-03-17 2022-11-22 바이트댄스 아이엔씨 비디오 코딩에서 픽처 출력 플래그 표시

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272529A (en) * 1992-03-20 1993-12-21 Northwest Starscan Limited Partnership Adaptive hierarchical subband vector quantization encoder
KR100198986B1 (ko) * 1995-03-15 1999-06-15 전주범 블록킹 현상방지용 움직임 보상장치
US5903313A (en) * 1995-04-18 1999-05-11 Advanced Micro Devices, Inc. Method and apparatus for adaptively performing motion compensation in a video processing apparatus
US5883678A (en) * 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
JP3183155B2 (ja) * 1996-03-18 2001-07-03 株式会社日立製作所 画像復号化装置、及び、画像復号化方法
KR100191318B1 (ko) * 1996-03-26 1999-06-15 윤종용 고속의 동벡터 복호회로
EP1835762A3 (en) * 1996-05-28 2007-10-03 Matsushita Electric Industrial Co., Ltd. decoding apparatus with intra prediction
JP3263807B2 (ja) * 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
KR100326641B1 (ko) 1996-12-06 2002-08-27 마츠시타 덴끼 산교 가부시키가이샤 영상신호의전송,부호화,복호화방법및장치와광디스크의기록및재생방법
DE69736661D1 (de) 1997-01-31 2006-10-26 Victor Company Of Japan Vorrichtung zur Videocodierung und -decodierung mit Bewegungskompensation
SG65064A1 (en) * 1997-04-09 1999-05-25 Matsushita Electric Ind Co Ltd Image predictive decoding method image predictive decoding apparatus image predictive coding method image predictive coding apparatus and data storage media
KR20010031320A (ko) * 1997-10-23 2001-04-16 다니구찌 이찌로오, 기타오카 다카시 화상 복호화 장치, 화상 부호화 장치, 화상 통신 시스템및 부호화 비트 스트림 변환장치
KR100523908B1 (ko) * 1997-12-12 2006-01-27 주식회사 팬택앤큐리텔 격행주사 영상에 대한 영상신호 부호화 장치 및 그 방법
US6512537B1 (en) * 1998-06-03 2003-01-28 Matsushita Electric Industrial Co., Ltd. Motion detecting apparatus, motion detecting method, and storage medium storing motion detecting program for avoiding incorrect detection
US6483874B1 (en) * 1999-01-27 2002-11-19 General Instrument Corporation Efficient motion estimation for an arbitrarily-shaped object
JP2000253407A (ja) * 1999-02-26 2000-09-14 Matsushita Electric Ind Co Ltd 動きベクトル検出方法および画像符号化方法
JP4280353B2 (ja) * 1999-03-19 2009-06-17 キヤノン株式会社 符号化装置、画像処理装置、符号化方法、及び記録媒体
JP3677165B2 (ja) * 1999-04-23 2005-07-27 株式会社東芝 動画像符号化装置および動画像符号化方法
US6618439B1 (en) 1999-07-06 2003-09-09 Industrial Technology Research Institute Fast motion-compensated video frame interpolator
WO2001010135A1 (en) * 1999-07-29 2001-02-08 Mitsubishi Denki Kabushiki Kaisha Moving vector detecting method
US6671319B1 (en) * 1999-12-28 2003-12-30 Sony Corporation Methods and apparatus for motion estimation using neighboring macroblocks
US6483876B1 (en) * 1999-12-28 2002-11-19 Sony Corporation Methods and apparatus for reduction of prediction modes in motion estimation
EP1404135B1 (en) * 2000-01-21 2016-12-14 Nokia Technologies Oy A motion estimation method and a system for a video coder
JP2001251627A (ja) 2000-03-03 2001-09-14 Matsushita Electric Ind Co Ltd 符号化装置、符号化方法及びプログラムを記録した記録媒体
US6647061B1 (en) 2000-06-09 2003-11-11 General Instrument Corporation Video size conversion and transcoding from MPEG-2 to MPEG-4
US7116372B2 (en) * 2000-10-20 2006-10-03 Matsushita Electric Industrial Co., Ltd. Method and apparatus for deinterlacing
KR100360893B1 (ko) * 2001-02-01 2002-11-13 엘지전자 주식회사 영상 움직임 보상 장치 및 방법
FR2824988B1 (fr) * 2001-05-21 2003-08-01 Thomson Licensing Sa Procede et dispositif de codage video utilisant la norme mpeg4
US6975680B2 (en) * 2001-07-12 2005-12-13 Dolby Laboratories, Inc. Macroblock mode decision biasing for video compression systems
US20030099294A1 (en) * 2001-11-27 2003-05-29 Limin Wang Picture level adaptive frame/field coding for digital video content
US6980596B2 (en) * 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
US20030202603A1 (en) * 2002-04-12 2003-10-30 William Chen Method and apparatus for fast inverse motion compensation using factorization and integer approximation
EP3324624B1 (en) * 2002-04-19 2019-06-12 Panasonic Intellectual Property Corporation of America Motion vector calculating method
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
US7813429B2 (en) * 2002-08-13 2010-10-12 Lsi Corporation System and method for segmentation of macroblocks
US6771210B2 (en) 2002-10-08 2004-08-03 Visteon Global Technologies, Inc. Sensor alignment method and system

Also Published As

Publication number Publication date
TWI283534B (en) 2007-07-01
US20160094857A1 (en) 2016-03-31
TWI353182B (en) 2011-11-21
US9554148B2 (en) 2017-01-24
US9088795B2 (en) 2015-07-21
CA2473897C (en) 2012-10-16
US8861607B2 (en) 2014-10-14
US10057595B2 (en) 2018-08-21
US20170085905A1 (en) 2017-03-23
EP2249579A3 (en) 2010-12-08
CN1623333A (zh) 2005-06-01
EP2249579A2 (en) 2010-11-10
TW200417248A (en) 2004-09-01
US9485516B2 (en) 2016-11-01
EP1909505A3 (en) 2010-07-21
KR100985236B1 (ko) 2010-10-04
TW200723889A (en) 2007-06-16
EP1909505B1 (en) 2013-06-19
US20050062885A1 (en) 2005-03-24
EP1569460B1 (en) 2013-05-15
BR0307197A (pt) 2005-08-23
BRPI0307197B1 (pt) 2018-06-19
TW200715872A (en) 2007-04-16
US8009731B2 (en) 2011-08-30
AU2003261780B8 (en) 2010-03-25
KR20100007935A (ko) 2010-01-22
US20110286527A1 (en) 2011-11-24
US20160094858A1 (en) 2016-03-31
EP2919465B1 (en) 2018-03-21
AU2003261780B2 (en) 2009-08-13
US20150288968A1 (en) 2015-10-08
US9241171B2 (en) 2016-01-19
KR100985366B1 (ko) 2010-10-04
US20140037009A1 (en) 2014-02-06
EP3349461A1 (en) 2018-07-18
US20140301472A1 (en) 2014-10-09
US8897367B2 (en) 2014-11-25
CN100589576C (zh) 2010-02-10
CN101141651A (zh) 2008-03-12
US20140037003A1 (en) 2014-02-06
US9204153B2 (en) 2015-12-01
EP1909505A2 (en) 2008-04-09
CN101827265B (zh) 2012-11-21
US20150312585A1 (en) 2015-10-29
US9473786B2 (en) 2016-10-18
EP2919465A1 (en) 2015-09-16
TWI331877B (en) 2010-10-11
EP2249579B1 (en) 2015-06-17
AU2003261780A1 (en) 2004-06-18
EP1569460A1 (en) 2005-08-31
US20160088311A1 (en) 2016-03-24
CN101141651B (zh) 2010-11-10
MY138540A (en) 2009-06-30
MXPA04007021A (es) 2004-10-11
CN101827265A (zh) 2010-09-08
EP1569460A4 (en) 2007-06-20
CN100591138C (zh) 2010-02-17
CA2473897A1 (en) 2004-06-10
WO2004049726A1 (ja) 2004-06-10
US8660185B2 (en) 2014-02-25
CN101141650A (zh) 2008-03-12
KR20050084750A (ko) 2005-08-29
EP3349461B1 (en) 2020-02-19

Similar Documents

Publication Publication Date Title
ES2788382T3 (es) Método para codificar y descodificar imágenes B en modo directo
JP4718578B2 (ja) 画像復号化方法および画像復号化装置
ES2644448T3 (es) Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento
ES2767954T3 (es) Procedimiento de descodificación de imágenes en movimiento
JP2008187734A (ja) フィルタリング強度決定方法
JP4406239B2 (ja) 動き補償方法および動き補償装置
JP4580901B2 (ja) フィルタリング強度の決定方法、動画像符号化方法、および動画像復号化方法
JP4580902B2 (ja) フィルタリング強度の決定方法、動画像符号化方法、および動画像復号化方法
JP2005341545A (ja) 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラムおよび動画像復号プログラム
JP4503959B2 (ja) 画像符号化方法
JP4580903B2 (ja) フィルタリング強度の決定方法、動画像符号化方法、および動画像復号化方法