ES2770437T3 - Método para seleccionar un predictor de vector de movimiento y un dispositivo que lo utiliza - Google Patents

Método para seleccionar un predictor de vector de movimiento y un dispositivo que lo utiliza Download PDF

Info

Publication number
ES2770437T3
ES2770437T3 ES12760302T ES12760302T ES2770437T3 ES 2770437 T3 ES2770437 T3 ES 2770437T3 ES 12760302 T ES12760302 T ES 12760302T ES 12760302 T ES12760302 T ES 12760302T ES 2770437 T3 ES2770437 T3 ES 2770437T3
Authority
ES
Spain
Prior art keywords
block
motion vector
condition
current block
satisfies
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.)
Active
Application number
ES12760302T
Other languages
English (en)
Inventor
Joon Young Park
Seung Wook Park
Jae Hyun Lim
Jung Sun Kim
Young Hee Choi
Byeong Moon Jeon
Yong Joon Jeon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Application granted granted Critical
Publication of ES2770437T3 publication Critical patent/ES2770437T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/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

Landscapes

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

Abstract

Un método de decodificación de datos de vídeo, comprendiendo dicho método: derivar unos bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) para seleccionar un predictor de vector de movimiento del bloque actual (900); determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una primera condición consistente en que el bloque tiene una imagen de referencia idéntica a la del bloque actual (900) y una lista de imágenes de referencia idéntica a la del bloque actual (900); determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una segunda condición consistente en que el bloque tiene una imagen de referencia idéntica a la del bloque actual (900) y una lista de imágenes de referencia diferente de la del bloque actual (900); determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una tercera condición consistente en que el bloque tiene una imagen de referencia diferente de la del bloque actual (900) y una lista de imágenes de referencia idéntica a la del bloque actual (900), o satisface una cuarta condición consistente en que el bloque tiene una imagen de referencia diferente de la del bloque actual (900) y una lista de imágenes de referencia diferente de la del bloque actual (900); (S310) determinar un primer predictor de vector de movimiento candidato a partir de un primer bloque que es el primero que satisface una de las condiciones primera, segunda, tercera o cuarta en el primer grupo de candidatos, en donde cuando el primer bloque satisface la primera condición o la segunda condición se utiliza un vector de movimiento del primer bloque como primer predictor de vector de movimiento candidato, en donde cuando el primer bloque satisface la tercera condición o la cuarta condición se utiliza un vector de movimiento escalado del primer bloque como primer predictor de vector de movimiento candidato, en donde el vector de movimiento escalado del primer bloque se deriva mediante un escalado realizado en función de la distancia entre la imagen actual a la que pertenece el bloque actual y una imagen de referencia del bloque actual y la distancia entre la imagen actual y la imagen de referencia del primer bloque que satisface la tercera condición o la cuarta condición; (S310) determinar un segundo predictor de vector de movimiento candidato a partir de un segundo bloque que es el primero que satisface una de las condiciones primera, segunda, tercera o cuarta en el segundo grupo de candidatos, en donde cuando el segundo bloque satisface la primera condición o la segunda condición se utiliza un vector de movimiento del segundo bloque como segundo predictor de vector de movimiento candidato, en donde cuando el segundo bloque satisface la tercera condición o la cuarta condición se utiliza un vector de movimiento escalado del segundo bloque como segundo predictor de vector de movimiento candidato, en donde el vector de movimiento escalado del segundo bloque se deriva mediante un escalado realizado en función de la distancia entre la imagen actual a la que pertenece el bloque actual y una imagen de referencia del bloque actual y la distancia entre la imagen actual y una imagen de referencia del segundo bloque que satisface la tercera condición o la cuarta condición; (S320) seleccionar el predictor de vector de movimiento del bloque actual (900) entre el primer predictor de vector de movimiento candidato y el segundo predictor de vector de movimiento candidato; derivar la diferencia del vector de movimiento del bloque actual (900) a partir de la información recibida sobre la diferencia del vector de movimiento; y (S330) derivar el vector de movimiento del bloque actual (900) a partir del predictor de vector de movimiento seleccionado y la diferencia del vector de movimiento; caracterizado por que los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) incluyen, como primer grupo de candidatos, un bloque vecino izquierdo (Am) y un bloque vecino inferior izquierdo (Am+1) del bloque actual (900), los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) incluyen, como segundo grupo de candidatos, un bloque vecino superior derecho (Bn+1), un bloque vecino superior (Bn) y un bloque vecino superior izquierdo (B-1) del bloque actual (900), en el primer grupo de candidatos se comprueba si se satisface o no la primera condición o la segunda condición desde el bloque vecino inferior izquierdo (Am+1) al bloque vecino izquierdo (Am), en el segundo grupo de candidatos se comprueba si se satisface o no la primera condición o la segunda condición desde el bloque vecino superior derecho (Bn+1) al bloque vecino superior (Bn) y al bloque vecino superior izquierdo (B-1), la primera condición se comprueba con prioridad respecto a la segunda condición, cuando el bloque vecino inferior izquierdo (Am+1) no satisface tanto la primera condición como la segunda condición, se comprueba si el bloque vecino izquierdo (Am) satisface la primera condición o la segunda condición, y cuando ni el bloque vecino inferior izquierdo (Am+1) ni el bloque vecino izquierdo (Am) satisfacen la primera condición ni la segunda condición, se comprueba si el bloque vecino inferior izquierdo (Am+1) satisface la tercera condición o la cuarta condición, y la tercera condición se comprueba con prioridad respecto a la cuarta condición.

Description

DESCRIPCIÓN
Método para seleccionar un predictor de vector de movimiento y un dispositivo que lo utiliza
Campo técnico
La presente invención está relacionada con una técnica de compresión de vídeo (imagen en movimiento) y, más concretamente, con un método de predicción de información del bloque actual utilizando información de los bloques vecinos al mismo.
Técnica anterior
En los últimos años han aumentado en diversos campos de aplicaciones la demanda de imágenes en alta resolución y de alta calidad. A medida que aumentan la resolución y la calidad de una imagen, aumenta cada vez más la cantidad de datos en la imagen. En consecuencia, cuando se transmiten datos de vídeo utilizando medios tales como las líneas de banda ancha por cable o inalámbricas existentes o se almacenan datos de vídeo en los medios de almacenamiento existentes, el coste de la transmisión y el coste de almacenamiento de los datos aumentan. Para transmitir, almacenar y reproducir de forma efectiva información de vídeo en alta resolución y de alta calidad se pueden utilizar técnicas de compresión de vídeo de alta eficiencia.
Para mejorar la eficiencia de la compresión de vídeo se puede utilizar un método de predicción de información del bloque actual mediante la utilización de información de los bloques vecinos del bloque actual sin transmitir la información del mismo.
Como método de predicción se pueden utilizar predicción inter (entre) y predicción intra (interna).
En la predicción inter, los valores de los píxeles de la imagen actual se predicen mediante información de otras imágenes. En la predicción intra, los valores de los píxeles de la imagen actual se predicen utilizando las relaciones entre los píxeles de la misma imagen.
Cuando se realiza una predicción inter, se puede utilizar información que indica una imagen de referencia e información que indica un vector de movimiento de los bloques vecinos en un modo de predicción inter para designar una parte de otra imagen que se va a utilizar para la predicción.
El documento JCTVC-D095 ("Improvements on median motion vectors of AMVP (Mejoras en los vectores de movimiento con filtrado de mediana de AMVP)" del Joint Collaborative Team on Video Coding (Equipo Colaborativo Conjunto sobre Codificación de Vídeo) (JCT-VC) del ITU-T SG16 WP3 y del ISO/IEC JTC1/SC29/WG11) propone un método mejorado sobre vectores de movimiento de mediana en la Predicción de Vector de Movimiento Avanzada en donde únicamente se consideran como vectores de movimiento vecinos espaciales los vectores de movimiento con el mismo índice de referencia y la misma lista de referencia. En este documento también se propone considerar vectores de movimiento con un índice de referencia diferente o una lista de referencia diferente. En el método propuesto se escanea y se comprueba si hay un vector de movimiento vecino que satisfaga cada una de las siguientes condiciones en orden: 1. misma imagen de referencia y misma lista de referencia (que las de la unidad de predicción actual); 2. misma imagen de referencia y diferente lista de referencia; 3. diferente imagen de referencia y misma lista de referencia; y 4. diferente imagen de referencia y diferente lista de referencia. En el proceso anterior se elige el primer vector de movimiento disponible. El vector de movimiento elegido se escala mediante un factor y se invierte si su dirección de predicción es diferente de la del vector de movimiento actual.
El documento JCTVC-E350 ("CE9: Subtests N and 0: Improvement on AMVP (CE9: Subtests N y 0: Mejora en la AMVP)" del Joint Collaborative Team on Video Coding (JCT-VC) del ITU-T SG16 WP3 y del ISO/IEC JTC1/SC29/WG11) divulga las características de los preámbulos de las reivindicaciones independientes. El documento utiliza como punto de partida el documento JCTVC-D231 ("CE9: 3.2d Simplified Motion vector prediction (CE9: 3.2d predicción de vector de movimiento simplificada)". Este último documento explica cómo derivar un predictor izquierdo/derecho del siguiente modo: para el predictor izquierdo se busca el primer vector de movimiento disponible a partir de un grupo de los bloques vecinos en la parte izquierda del bloque actual que incluye un bloque situado en la esquina inferior izquierda del bloque actual. Un vector de movimiento se considera disponible si el vector existe y el índice de frame (cuadro) de referencia del bloque explorado es idéntico al índice de referencia del bloque actual. La búsqueda se realiza de abajo hacia arriba, y únicamente se incluye en la lista de candidatos el primer predictor disponible. El predictor superior se obtiene de forma similar, en donde los bloques superiores izquierdo y derecho del bloque actual se incluyen en un grupo de bloques vecinos por encima del bloque actual. El orden de búsqueda en el grupo de bloques vecinos superiores se realiza de derecha a izquierda. Si se encuentra un vector de movimiento y el vector de movimiento es idéntico al predictor izquierdo, no se considera disponible y la búsqueda continúa El documento JCTVC-E350 explica, en su lugar, cómo derivar predictores de vector de movimiento escaneando y comprobando si hay un vector de movimiento vecino que satisfaga cada una de las siguientes condiciones en orden:
1. misma imagen de referencia y misma lista de referencia (que las de la unidad de predicción actual) 2. misma imagen de referencia y diferente lista de referencia
3. diferente imagen de referencia y misma lista de referencia
4. diferente imagen de referencia y diferente lista de referencia
En el proceso anterior se elige el primer vector de movimiento disponible a lo largo de la dirección de búsqueda. Y, a continuación, el vector de movimiento elegido se escala mediante un factor (tb/td) y se invierte si su dirección de predicción es diferente de la del vector de movimiento actual.
Resumen de la invención
Problema técnico
Un objetivo de la invención es proporcionar un método de predicción capaz de mejorar la eficiencia de compresión y reducir la cantidad de datos a transmitir, y que pueda reducir la complejidad durante el transcurso de la codificación/decodificación de un vídeo (imagen en movimiento) y un dispositivo que utiliza dicho método de predicción.
Otro objetivo de la invención es proporcionar un método de escaneado de los bloques vecinos con el fin de construir predictores de información de movimiento candidatos del bloque actual utilizando de forma efectiva información de los vecinos, y un dispositivo que utiliza el método de escaneado.
Otro objetivo de la invención es proporcionar un método para escalar la información de movimiento con el fin de utilizar la información de movimiento adquirida a partir de los bloques vecinos como un predictor de información de movimiento candidato del bloque actual, y un dispositivo que utiliza el método de escalado.
Solución al problema
El objetivo indicado más arriba se resuelve mediante la combinación de características de las reivindicaciones independientes.
Los modos de realización preferidos se definen en las reivindicaciones dependientes.
Efectos ventajosos
De acuerdo con el método de predicción proporcionado por la invención es posible mejorar la eficiencia de la compresión, reducir la cantidad de datos a transmitir y reducir la complejidad durante el transcurso de la codificación/decodificación de un vídeo (imagen en movimiento).
De acuerdo con el método de predicción proporcionado por la invención, es posible derivar predictores de información de movimiento candidatos del bloque actual utilizando de forma efectiva la información de los bloques vecinos.
De acuerdo con el método de predicción proporcionado por la invención, es posible escalar la información de movimiento adquirida a partir de los bloques vecinos y utilizar la información de movimiento escalada como un predictor de información de movimiento candidato del bloque actual.
Breve descripción de los dibujos
La FIG. 1 es un diagrama de bloques que ilustra de forma esquemática un dispositivo de codificación de vídeo (codificador) de acuerdo con un modo de realización de la invención.
La FIG. 2 es un diagrama de bloques que ilustra de forma esquemática un dispositivo de decodificación de vídeo (decodificador) de acuerdo con un modo de realización de la invención.
La FIG. 3 es un diagrama de flujo que ilustra de forma esquemática un ejemplo de un método para derivar un vector de movimiento cuando se aplica un predictor de vector de movimiento avanzado (AMVP) en modo de predicción inter.
La FIG. 4 es un diagrama conceptual que ilustra de forma esquemática un ejemplo de un método para generar una lista de MVP candidatos.
La FIG. 5 es un diagrama conceptual que ilustra de forma esquemática un método de escalado de acuerdo con un modo de realización de la invención.
La FIG. 6 es un diagrama de flujo que ilustra de forma esquemática el método de escalado de acuerdo con el modo de realización de la invención.
La FIG. 7 es un diagrama que ilustra de forma esquemática un método para escalar los vectores de movimiento de los bloques vecinos del bloque actual en la imagen actual (frame actual).
La FIG. 8 es un diagrama que ilustra de forma esquemática un método para realizar una competición de vectores de movimiento de acuerdo con un modo de realización de la invención.
La FIG. 9 es un diagrama que ilustra de forma esquemática un método para aplicar una AMVP de acuerdo con un modo de realización de la invención.
La FIG. 10 es un diagrama de flujo que ilustra de forma esquemática un método para seleccionar un predictor de vector de movimiento del bloque actual de acuerdo con un modo de realización de la invención.
Descripción de los modos de realización ilustrativos
De aquí en adelante se describirán en detalle algunos modos de realización ilustrativos de la invención haciendo referencia a los dibujos adjuntos.
La FIG. 1 es un diagrama de bloques que ilustra de forma esquemática un dispositivo de codificación de vídeo (codificador) de acuerdo con un modo de realización de la invención. Haciendo referencia a la FIG. 1, un dispositivo 100 de codificación de vídeo incluye un módulo 105 de división de imágenes, un módulo 110 de predicción, un módulo 115 de transformación, un módulo 120 de cuantización, un módulo 125 de reorganización, un módulo 130 de codificación de entropía, un módulo 135 de cuantización inversa, un módulo 140 de transformación inversa, un módulo 145 de filtrado y una memoria 150.
El módulo 105 de división de imágenes puede dividir una imagen de entrada en al menos una unidad de proceso. Aquí, la unidad de proceso puede ser una unidad de predicción (denominada de aquí en adelante "PU"), una unidad de transformación (denominada de aquí en adelante "TU") o una unidad de codificación (denominada de aquí en adelante "CU" "). En esta memoria descriptiva, únicamente por conveniencia para facilitar la explicación, una unidad de predicción se puede expresar mediante un bloque de predicción, una unidad de transformación se puede expresar mediante un bloque de transformación y una unidad de codificación se puede expresar mediante un bloque de codificación.
El módulo 110 de predicción incluye un módulo de predicción inter que realiza un proceso de predicción inter y un módulo de predicción intra que realiza un proceso de predicción intra. Para mejorar la eficiencia de codificación, la señal de una imagen no se codifica tal como es, sino que se codifica para reconstruir una imagen prediciendo una imagen mediante la utilización de un área previamente codificada y agregándole a la imagen predicha unos valores residuales entre la imagen original y la imagen predicha.
Las imágenes que incluyen un área previamente codificada utilizada para la predicción se conocen como imagen I (slice (región espacial) I), imagen P (slice P), imagen B (slice B), etcétera. La slice I es una slice que se decodifica solo mediante predicción intra. La slice P es una slice que se puede decodificar mediante predicción inter o predicción intra utilizando al menos un vector de movimiento y un índice de imagen de referencia para predecir los valores de muestra de los bloques. La slice B es una slice que se puede decodificar mediante predicción inter o predicción intra utilizando al menos dos vectores de movimiento e índices de la imagen de referencia para predecir los valores de muestra de los bloques.
El módulo 110 de predicción realiza un proceso de predicción sobre unidades de proceso de una imagen con el fin de crear un bloque de predicción que incluye las muestras predichas. En el módulo 110 de predicción, la unidad de proceso de una imagen puede ser una CU, una TU o una PU. Se puede determinar si la predicción realizada sobre la unidad de proceso correspondiente es una predicción inter o una predicción intra, y se pueden determinar detalles específicos (por ejemplo, el modo de predicción) de los métodos de predicción. La unidad de proceso sometida al proceso de predicción puede ser diferente de la unidad de proceso de la que se determinan el método de predicción y los detalles específicos. Por ejemplo, el método de predicción y el modo de predicción pueden ser determinados por las unidades PU y el proceso de predicción puede ser realizado por las unidades TU.
En la predicción inter, para crear el bloque de predicción, el proceso de predicción se realiza a partir de información sobre al menos una entre la imagen previa y/o la imagen siguiente a la imagen actual. En la predicción intra, para crear el bloque de predicción, el proceso de predicción se realiza a partir de información de los píxeles de la imagen actual.
En la predicción inter, para un bloque actual se selecciona una imagen de referencia, y para crear un bloque de predicción del bloque actual se selecciona un bloque actual que tenga el mismo tamaño que el bloque actual. Por ejemplo, en la predicción inter, se puede crear un bloque de predicción para minimizar una señal residual a partir del bloque actual y para minimizar la magnitud de un vector de movimiento. Por otra parte, como método de predicción intra se pueden utilizar el modo skip (salto), el modo merge (fusión), el modo AMVP (Predicción de Vector de Movimiento Avanzada) o similares. El bloque de la predicción se puede crear en unidades de muestra de píxel menor que un píxel entero como, por ejemplo, muestras de 1/2 píxel y muestras de 1/4 de píxel. Aquí, un vector de movimiento también se puede expresar en unidades de muestra de píxel menor que un píxel entero. Por ejemplo, los píxeles de luma (luminancia) se pueden expresar en unidades de 1/4 de píxel y los píxeles de croma (crominancia) se pueden expresar en unidades de 1/8 de píxel.
La información tal como un índice de imagen de referencia seleccionada mediante predicción inter, un predictor de vector de movimiento y una señal residual se codifican en función de la entropía y se transmiten a un decodificador. Cuando se realiza la predicción intra, la unidad de proceso sometida al proceso de predicción puede ser diferente de la unidad de proceso de la cual se determinan el método de predicción y los detalles específicos. Por ejemplo, el modo de predicción se puede determinar en unidades PU y el proceso de predicción se puede realizar en unidades PU. Alternativamente, el modo de predicción se puede determinar en unidades PU y la predicción inter se puede realizar en unidades TU.
En la predicción intra, los modos de predicción incluyen 33 modos de predicción direccionales y al menos dos modos no direccionales. Los modos no direccionales incluyen un modo de predicción DC y un modo planar.
En la predicción intra se puede crear un bloque de predicción después de aplicar un filtro a las muestras de referencia. En este momento se puede determinar si se debe aplicar un filtro a las muestras de referencia en función del modo de predicción intra y/o el tamaño del bloque actual.
Se puede determinar una PU en varios tamaños/formas a partir de una CU que ya no se va a dividir. Por ejemplo, en el caso de la predicción inter, una PU puede tener tamaños tales como 2Nx2n , 2NxN, Nx2N y NxN. En el caso de la predicción intra, una PU puede tener tamaños tales como 2Nx2N y NxN (en donde N es un entero). Se puede escoger la PU que tiene un tamaño de NxN se para aplicarse únicamente a un caso específico. Por ejemplo, se puede escoger la PU que tiene un tamaño de NxN para utilizarse únicamente para una unidad de codificación que tenga el tamaño más pequeño, o se puede escoger para utilizarse únicamente para predicción intra. Además de las PU que tienen los tamaños mencionados más arriba, también se pueden definir y utilizar PU que tengan tamaños tales como NxmN, mNxN, 2NxmN y mNx2N (en donde m<1).
Los valores residuales (un bloque residual o una señal residual) entre el bloque de predicción creado y el bloque original se le envían al módulo 115 de transformación. La información del modo de predicción, la información del vector de movimiento etcétera utilizadas para la predicción son codificadas junto con los valores residuales por el módulo 130 de codificación de entropía y transmitidas al decodificador.
El módulo 115 de transformación realiza un proceso de transformación con el bloque residual en unidades TU y crea los coeficientes de transformación. La unidad de transformación en el módulo 115 de transformación puede ser una TU y puede tener una estructura de quad tree (árbol cuaternario). El tamaño de la unidad de transformación se puede determinar dentro de un rango de tamaños predeterminado del más grande al más pequeño. El módulo 115 de transformación puede transformar el bloque residual utilizando una DCT (Transformada Discreta del Coseno) y/o una DST (Transformada Discreta del Seno).
El módulo 120 de cuantización puede cuantizar los valores residuales transformados por el módulo 115 de transformación y puede crear los coeficientes de cuantización. Los valores calculados por el módulo 120 de cuantización se le pueden pasar al módulo 135 de cuantización inversa y al módulo 125 de reorganización.
El módulo 125 de reorganización puede reorganizar los coeficientes de cuantización suministrados desde el módulo 120 de cuantización. Mediante la reorganización de los coeficientes de cuantización es posible mejorar la eficiencia de codificación en el módulo 130 de codificación de entropía. Mediante la utilización de un método de escaneado de coeficientes, el módulo de reorganización 125 puede reorganizar en forma de vector unidimensional los coeficientes de cuantización dispuestos en forma de bloque bidimensional. El módulo 125 de reorganización puede mejorar la eficiencia de codificación de entropía en el módulo 130 de codificación de entropía cambiando el orden de escaneado de los coeficientes sobre la base de estadísticas estocásticas de los coeficientes transmitidos desde el módulo de cuantización.
El módulo 130 de codificación de entropía realiza un proceso de codificación de entropía sobre los coeficientes de cuantización reorganizados por el módulo 125 de reorganización. Algunos ejemplos del método de codificación de entropía incluyen un método Golomb Exponencial, un método CAVLC (Codificación de Longitud Variable Adaptativa en Función del Contexto) y un método CABAC (Codificación Aritmética Binaria Adaptativa en Función del Contexto). El módulo 130 de codificación de entropía puede codificar una variedad de informaciones como, por ejemplo, información de coeficientes residuales e información del tipo de bloque de una unidad de codificación, información del modo de predicción, información de la unidad de división, información de la unidad de predicción, información de la unidad de transferencia, información del vector de movimiento, información de la imagen de referencia, información de interpolación de los bloques e información de filtrado transmitidas desde el módulo 125 de reorganización y el módulo 110 de predicción.
Si es necesario, el módulo 130 de codificación de entropía puede cambiar de forma predeterminada un conjunto de parámetros o la sintaxis a transmitir.
El módulo 135 de cuantización inversa invierte la cuantización de los valores cuantizados por el módulo 120 de cuantización. El módulo 140 de transformación inversa invierte la transformación de los valores invertidos de cuantización por el módulo 135 de cuantización inversa. Los valores residuales creados por el módulo 135 de cuantización inversa y el módulo 140 de transformación inversa se fusionan con el bloque de predicción predicho por el módulo 110 de predicción para crear un bloque reconstruido.
El módulo 145 de filtrado aplica un filtro de desbloqueo, un ALF (Filtro de Bucle Adaptativo) o un SAO (Offset (desplazamiento) Adaptativo por Muestra) a la imagen reconstruida.
El filtro de desbloqueo elimina la distorsión del bloque generada en el límite entre los bloques en la imagen reconstruida. El ALF realiza un proceso de filtrado sobre la base de los valores resultantes de la comparación de la imagen original con la imagen reconstruida de la que el filtro de desbloqueo filtra los bloques. El ALF se puede aplicar únicamente cuando es necesaria una alta eficiencia. El SAO reconstruye las diferencias de offset entre los bloques residuales a los que se ha aplicado el filtro de desbloqueo y la imagen original, y se aplica en forma de un offset de banda, offset de borde o similar.
Por otra parte, el módulo 145 de filtrado puede no realizar el proceso de filtrado en un bloque reconstruido utilizado para predicción inter.
La memoria 150 almacena el bloque reconstruido o la imagen calculada por el módulo 145 de filtrado. El bloque reconstruido o la imagen almacenada en la memoria 150 se le envía al módulo 110 de predicción que realiza la predicción inter.
La FIG. 2 es un diagrama de bloques que ilustra de forma esquemática un dispositivo de decodificación de vídeo (decodificador) de acuerdo con un modo de realización de la invención. Haciendo referencia a la FIG. 2, un dispositivo 200 de decodificación de vídeo incluye un módulo 210 de decodificación de entropía, un módulo 215 de reorganización, un módulo 220 de cuantización inversa, un módulo 225 de transformación inversa, un módulo 230 de predicción, un módulo 235 de filtrado y una memoria 240.
Cuando se recibe un flujo de bits de la imagen desde el codificador, el flujo de bits recibido se decodifica en orden inverso al orden en el que el codificador procesa la información de vídeo.
Por ejemplo, cuando el dispositivo de codificación de vídeo utiliza un método de codificación de longitud variable (denominado de aquí en adelante "VLC") como, por ejemplo, el CAVLC para realizar el proceso de codificación de entropía, el módulo 210 de decodificación de vídeo se puede basar en la misma tabla de VLC que la tabla de VLC utilizada en el dispositivo de codificación de vídeo y puede realizar el proceso de decodificación de entropía. Cuando el dispositivo de codificación de vídeo utiliza la CABAC para realizar el proceso de codificación de entropía, el módulo 210 de decodificación de entropía puede realizar el proceso de decodificación de entropía utilizando la CABAC en correspondencia con el mismo.
La información para crear un bloque de predicción a partir de la información decodificada por el módulo 210 de decodificación de entropía se le envía al módulo 230 de predicción, y los valores residuales de la decodificación de entropía realizada por el módulo de decodificación de entropía se le envían al módulo 215 de reorganización.
El módulo 215 de reorganización reorganiza el flujo de bits de la decodificación de entropía realizada por el módulo 210 de decodificación de entropía de acuerdo con el método de reorganización en el dispositivo de codificación de vídeo. El módulo 215 de reorganización reconstruye y reorganiza los coeficientes expresados en forma de vector unidimensional como coeficientes en forma de un bloque bidimensional. Al módulo 215 de reorganización se le suministra información asociada al escaneado de los coeficientes realizado por el codificador y puede llevar a cabo la reorganización utilizando un método de escaneado inverso de los coeficientes de acuerdo con el orden de escaneado en el que el codificador realiza el escaneado.
El módulo 220 de cuantización inversa realiza la cuantización inversa de acuerdo con los parámetros de cuantización suministrados desde el codificador y los valores de los coeficientes reorganizados del bloque.
El módulo 225 de transformación inversa realiza la DCT inversa y la DST inversa de la DCT y la DST, que ha sido realizada por el módulo de transformación del dispositivo de codificación de vídeo, con el resultado de la cuantización del dispositivo de codificación de vídeo. La transformación inversa la realiza el dispositivo de codificación de vídeo de acuerdo con la unidad de transferencia o la unidad de división de una imagen determinada. El módulo de transformación del dispositivo de codificación de vídeo realiza la DCT y la DST selectivamente en función de diversos elementos de información tales como el método de predicción, el tamaño del bloque actual y la dirección de predicción, y el módulo 225 de transformación inversa del dispositivo de decodificación de vídeo realiza el transformación inversa en función de la información de transformación sobre la transformación realizada por el módulo de transformación del dispositivo de codificación de vídeo.
El módulo 230 de predicción crea un bloque de predicción de acuerdo con la información de creación del bloque de predicción suministrada desde el módulo 210 de decodificación de entropía y la información del bloque y/o imagen previamente decodificada suministrada desde la memoria 240. El bloque reconstruido se puede crear utilizando el bloque de predicción creado por el módulo 230 de predicción y el bloque residual suministrado desde el módulo 225 de transformación inversa.
El método de predicción específico utilizado por el módulo 230 de predicción es el mismo que el método de predicción aplicado por el módulo de predicción del codificador.
Cuando el modo de predicción del bloque actual es el modo de predicción intra, se puede realizar un proceso de predicción intra de creación de un bloque de predicción sobre la base de la información de los píxeles de la imagen actual.
En la predicción intra, los modos de predicción incluyen 33 modos de predicción direccionales y al menos dos modos no direccionales. Los modos no direccionales incluyen un modo de predicción DC y un modo planar.
En la predicción intra se puede crear un bloque de predicción después de aplicar un filtro a las muestras de referencia. En este momento se puede determinar si es necesario aplicar un filtro a las muestras de referencia de acuerdo con el modo de predicción intra y/o el tamaño del bloque actual.
Cuando el modo de predicción para el bloque actual es el modo de predicción inter se utiliza como imagen de referencia al menos una entre la imagen anterior y la imagen siguiente a la imagen actual, y el proceso de predicción inter se realiza con el bloque actual a partir de la información incluida en la imagen de referencia. Específicamente, en la predicción inter se selecciona una imagen de referencia para el bloque actual, se selecciona un bloque de referencia con el mismo tamaño que el bloque actual y se crea un bloque de predicción del bloque actual. Por ejemplo, en la predicción inter se puede crear un bloque de predicción para minimizar la señal residual del bloque actual y minimizar la magnitud de un vector de movimiento. Para utilizar la información de la imagen de referencia se utiliza la información de los bloques vecinos de la imagen actual. Por ejemplo, el bloque de predicción del bloque actual se crea a partir de la información de los bloques vecinos mediante la utilización de un modo skip, un modo merge, un modo AMVP (Predicción de Vector de Movimiento Avanzada) o uno similar.
El bloque de predicción se puede crear en unidades de muestra de píxel menor que un píxel entero como, por ejemplo, muestras de 1/2 píxel y muestras de 1/4 de píxel. Aquí, un vector de movimiento también se puede expresar en unidades de muestra de píxel menores que un píxel entero. Por ejemplo, los píxeles de luma se pueden expresar en unidades de 1/4 de píxel y los píxeles de croma se pueden expresar en unidades de 1/8 de píxel.
La información de movimiento necesaria para la predicción inter del bloque actual, por ejemplo, información sobre vectores de movimiento, índices de imagen de referencia, etcétera, se puede derivar de un indicador skip, un indicador merge, etcétera recibidos desde el codificador.
La unidad de proceso sujeta al proceso de predicción puede ser diferente de la unidad de proceso de la cual se determinan el método de predicción y los detalles específicos. Por ejemplo, el modo de predicción se puede determinar en unidades PU y el proceso de predicción se puede realizar en unidades PU. Alternativamente, el modo de predicción se puede determinar en unidades PU y la predicción inter se puede realizar en unidades TU.
Para reconstruir la imagen original, el bloque residual de salida del módulo 225 de transformación inversa se agrega al bloque de predicción de salida del módulo 230 de predicción.
El bloque y/o la imagen reconstruidos se le envían al módulo 235 de filtrado. El módulo 235 de filtrado realiza un proceso de filtrado de desbloqueo, un proceso de SAO (Desplazamiento Adaptativo por Muestra) y/o un proceso de filtrado de bucle adaptativo en el bloque y/o la imagen reconstruidos.
La memoria 240 almacena la imagen o el bloque reconstruidos para ser utilizados como imagen de referencia o bloque de referencia y le envía la imagen reconstruida al módulo de salida.
Aunque no se describe, únicamente por conveniencia para facilitar la explicación, el flujo de bits de entrada al decodificador puede enviársele al módulo de decodificación de entropía través de un paso de análisis. El paso de análisis puede ser realizado por el módulo de decodificación de entropía.
En esta memoria descriptiva, codificación puede interpretarse como codificación o decodificación en algunos casos, y se puede entender que información incluye todos los siguientes: valores, parámetros, coeficientes, elementos, etcétera.
Los términos "trame" o "imagen" son una unidad para representar un intervalo temporal específico de un vídeo (imagen), y "slice", "frame" o similares representan unidades que forman parte de una imagen en la codificación actual de una señal de vídeo y se pueden mezclar con una imagen en algunos casos.
"Píxel" o "pel" representa la unidad mínima que constituye una imagen. "Muestra" se puede utilizar como término que representa el valor de un píxel concreto. Una muestra se puede dividir en un componente de luma y un componente de croma, y se utiliza generalmente como término que incluye a ambos. El componente de croma representa la diferencia entre unos colores determinados, y generalmente incluye Cb y Cr.
"Unidad" se utiliza como término que representa una unidad básica de procesamiento de vídeo o una posición específica de una imagen como, por ejemplo, una unidad de predicción (PU) y una unidad de transformación (TU), y según el caso se puede combinar con los términos "bloque" y "área". En los casos generales, bloque se utiliza como término que representa un conjunto de muestras o coeficientes de transformación dispuestos en M columnas y N filas.
Por otra parte, en el caso del modo de predicción inter, el decodificador y el codificador extraen la información de movimiento del bloque actual y realizan la predicción inter en el bloque actual a partir de la información de movimiento extraída.
Una imagen utilizada para predecir el bloque actual se denomina imagen de referencia o frame de referencia. El área en la imagen de referencia se puede expresar mediante un índice de imagen de referencia (refIdx) que indica la imagen de referencia y un vector de movimiento.
Se puede construir una lista de imágenes de referencia para la imagen actual mediante las imágenes utilizadas para la predicción, y un índice de imagen de referencia indica una imagen de referencia específica en la lista de imágenes de referencia. La imagen P requiere una única lista de imágenes de referencia como, por ejemplo, la lista 0 de referencia, y la imagen B requiere dos listas de imágenes de referencia como, por ejemplo, la lista 0 de referencia y la lista 1 de referencia.
En particular, la imagen I es una imagen que se codifica/decodifica mediante predicción intra. La imagen P es una imagen que se puede codificar/decodificar mediante predicción inter o predicción intra utilizando al menos un vector de movimiento y un índice de imagen de referencia para predecir los valores de las muestras de los bloques. La imagen B es una imagen que se puede codificar/decodificar mediante predicción inter o predicción intra utilizando al menos dos vectores de movimiento e índices de imagen de referencia para predecir los valores de las muestras de los bloques.
La imagen P requiere una lista de imágenes de referencia, que se denomina lista 0 (L0) de imágenes de referencia. La imagen B es una imagen que se puede codificar mediante predicción inter hacia delante, hacia atrás y bidireccional, por ejemplo, utilizando dos imágenes de referencia. La imagen B requiere dos listas de imágenes de referencia, que se denominan lista 0 (L0) de imágenes de referencia y lista 1 (L1) de imágenes de referencia.
Una predicción inter que utiliza una imagen de referencia seleccionada de L0 se denomina predicción L0. La predicción L0 se utiliza principalmente para predicción hacia delante. La predicción inter que utiliza una imagen de referencia seleccionada de L1 se denomina predicción L1. La predicción L1 se utiliza principalmente para predicción hacia atrás. La predicción inter que utiliza dos imágenes de referencia seleccionadas de L0 y L1 se denomina predicción bi-direccional.
Las características de la imagen I, la imagen P y la imagen B se pueden definir en unidades de slice, no en unidades de imagen. Por ejemplo, se puede definir una slice I que tenga la característica de la imagen I en unidades de slice, una slice P que tenga la característica de la imagen P, y una slice B que tenga la característica de la imagen B. Por ejemplo, cuando el tipo de slice del bloque actual es B y se selecciona una colPic de L0, o cuando el tipo de slice del bloque actual es P, se puede seleccionar una colPic de L0.
Por otra parte, con el fin de impedir un retardo bajo, se puede utilizar una slice GPB (P y B Generalizada). En la GPB, la lista 0 de imágenes de referencia y la lista 1 de imágenes de referencia son idénticas entre sí.
En la predicción inter, en el modo skip se puede utilizar la información del bloque vecino para el bloque actual sin ningún cambio. En consecuencia, en el modo skip no se transmite información sintáctica como, por ejemplo, valores residuales que no sea información que indica información de movimiento de qué bloque se debe utilizar como información de movimiento del bloque actual.
En el modo merge, para crear un bloque de predicción del bloque actual se utiliza la información de movimiento de los bloques vecinos sin ningún cambio. El codificador transmite información sobre si se debe aplicar el modo merge, información sobre información de movimiento de qué bloque se debe utilizar, información residual etcétera. El decodificador agrega el bloque residual transmitido desde el codificador al bloque de predicción para reconstruir el bloque actual.
El método que indica información de qué bloque se debe utilizar en el modo merge o similar se puede aplicar al modo skip y al modo de predicción inter general. Por ejemplo, un bloque de candidatos que contenga información para ser utilizada como información de movimiento del bloque actual en modo merge se puede utilizar en común para otros modos de predicción inter, y los métodos que indican información de movimiento de qué bloque vecino se debe utilizar también se pueden aplicar la misma forma.
En este momento, en el modo skip y en el modo de predicción inter general, se puede determinar que un bloque vecino tiene información de movimiento disponible solo cuando el índice de imagen de referencia o la dirección de predicción (lista de imágenes de referencia) del bloque vecino coincide con el índice de imagen de referencia o la dirección de predicción (lista de imágenes de referencia) del bloque actual, y el vector de movimiento de un bloque vecino correspondiente se puede utilizar como predictor de vector de movimiento candidato para el bloque actual. Alternativamente, se pueden escalar los vectores de movimiento de los bloques vecinos y utilizarlos como predictores de vector de movimiento candidatos para el bloque actual.
En el modo AMVP, el codificador puede predecir el vector de movimiento del bloque actual utilizando información de movimiento de los bloques vecinos y puede transmitir la diferencia entre el vector de movimiento del bloque actual y el vector de movimiento predicho, junto con el índice de imagen de referencia que indica una imagen de referencia. El decodificador predice el vector de movimiento del bloque actual utilizando información de movimiento de los bloques vecinos y deriva el vector de movimiento del bloque actual utilizando la información residual recibida desde el codificador. El decodificador crea un bloque de predicción del bloque actual a partir del vector de movimiento derivado y la información del índice de imagen de referencia recibidos desde el codificador.
La FIG. 3 es un diagrama de flujo que ilustra de forma esquemática un ejemplo de un método para derivar un vector de movimiento cuando se utiliza el modo AMVP (Predicción de Vector de Movimiento Avanzada) como modo de predicción inter.
Haciendo referencia a la FIG. 3, el codificador o el decodificador puede construir una lista de predictores de vector de movimiento (MVP) candidatos del bloque actual (S310). El predictor de vector de movimiento puede representar un valor predicho del vector de movimiento del bloque actual.
El codificador o el decodificador puede construir una lista de MVP candidatos utilizando el vector de movimiento de un bloque vecino disponible (denominado de aquí en adelante "Col block" (bloque co-localizado) únicamente por conveniencia para facilitar la explicación) de los bloques vecinos disponibles adyacentes al bloque actual y/o los bloques disponibles de cada una de las imágenes de referencia situadas en la misma posición (co-localizadas) que el bloque actual.
El codificador y el decodificador pueden seleccionar el MVP del bloque actual entre los MVP candidatos incluidos en la lista de MVP candidatos (S320).
El codificador puede seleccionar el MVP óptimo del bloque actual mediante la aplicación de una competición de vectores de movimiento (MVC) con los MVP candidatos incluidos en la lista de MVP candidatos. El codificador puede transmitir el índice del MVP seleccionado, la MVD (Motion Vector Difference, también denominada Diferencia del Vector de Movimiento (DMV)) y un índice de imagen de referencia al decodificador mediante un flujo de bits. El índice del MVP es un índice que indica el MVP del bloque actual y puede indicar cualquiera de los MVP candidatos incluidos en la lista de MVP candidatos. El índice de imagen de referencia es un índice que indica la imagen de referencia del bloque actual e indica cualquiera de las imágenes de referencia candidatas incluidas en la lista de imágenes de referencia. La MVD representa la diferencia entre el vector de movimiento del bloque actual y el MVP seleccionado. Cuanto más pequeño es el valor de la MVD, más se reduce la cantidad de datos a transmitir.
El decodificador puede recibir el índice del MVP y el índice de imagen de referencia desde el codificador. El decodificador puede seleccionar el MVP del bloque actual entre los MVP candidatos incluidos en la lista de MVP candidatos utilizando el índice de MVP recibido. El decodificador puede seleccionar la imagen de referencia del bloque actual entre las imágenes de referencia candidatas incluidas en la lista de imágenes de referencia utilizando el índice de imagen de referencia recibido.
El decodificador puede derivar el vector de movimiento del bloque actual utilizando el MVP seleccionado y la imagen de referencia seleccionada junto con la MVD recibida (S330). Por ejemplo, el decodificador le agrega la MVD recibida al MVP para reconstruir el vector de movimiento del bloque actual.
La FIG. 4 es un diagrama conceptual que ilustra de forma esquemática un ejemplo de un método para crear una lista de MVP candidatos.
Únicamente por conveniencia para facilitar la explicación, un grupo de candidatos que incluye un bloque A0410 vecino inferior izquierdo que es un bloque vecino situado en la esquina inferior izquierda del bloque actual 400 y unos bloques A1420 vecinos en la parte izquierda del bloque actual 400 se denomina grupo izquierdo de candidatos. Aquí, el codificador o el decodificador puede utilizar solo un bloque en una posición específica entre los bloques 420 vecinos a la izquierda. Por ejemplo, el codificador o el decodificador puede establecer el bloque más inferior 420-1 de los bloques 420 vecinos a la izquierda como bloque A1 izquierdo.
Un grupo de candidatos que incluye un bloque B0430 vecino superior derecho que es un bloque vecino en la esquina superior derecha del bloque actual 400, unos bloques B1440 vecinos superiores del bloque actual 400, y un bloque B2450 vecino superior izquierdo que es un bloque vecino situado en la esquina superior izquierda del bloque actual 400 se denomina grupo superior de candidatos. El codificador o el decodificador puede utilizar solo un bloque en una posición específica entre los bloques 440 superiores. Por ejemplo, el codificador o el decodificador puede establecer como bloque superior B1 el bloque 440-1 más a la derecha entre los bloques vecinos superiores.
El codificador y el decodificador pueden seleccionar un MVP candidato del grupo A0 y A1 izquierdo de candidatos. El MVP candidato seleccionado del grupo izquierdo de candidatos se denomina MVA. Por ejemplo, el codificador o el decodificador determina la similitud del índice de imagen de referencia con el del bloque actual, la similitud de la lista de imágenes de referencia con la del bloque actual, etcétera, mientras escanea los bloques incluidos en el bloque izquierdo de candidatos en el orden Ao^-A1 y selecciona el vector de movimiento de un primer bloque disponible como MVP candidato MVa del bloque actual.
El codificador o el decodificador también selecciona un MVP candidato del grupo superior de candidatos Bo, B1, y B2. El MVP candidato seleccionado del grupo superior de candidatos se denomina MVb. Por ejemplo, el codificador o el decodificador determina la similitud del índice de imagen de referencia con el del bloque actual, la similitud de la lista de imágenes de referencia con la del bloque actual, etcétera, mientras escanea los bloques incluidos en el bloque izquierdo de candidatos en el orden Bo^B 1^ B 2 y selecciona el vector de movimiento de un primer bloque disponible como MVP candidato MVb del bloque actual.
El codificador o el decodificador puede seleccionar como MVP candidato del bloque actual el vector de movimiento de un bloque Col COL 460 en una imagen de referencia. Aquí, el vector de movimiento del bloque Col 660 se representa mediante mvCol. Aquí, el codificador o el decodificador puede establecer como MVP candidato el vector de movimiento del bloque Col cuando no se asegura el número necesario de candidatos espaciales durante la exploración de MVa y MVb.
En el modo de realización mencionado más arriba, el MVP candidato seleccionado del grupo izquierdo de candidatos y el MVP candidato seleccionado del grupo superior de candidatos se denominan predictores de vector de movimiento espaciales (de aquí en adelante "SMVP"). El MVP candidato seleccionado utilizando el bloque Col en la imagen de referencia se denomina predictor de vector de movimiento temporal (de aquí en adelante "TMVP"). Por lo tanto, la lista de MVP candidatos incluye el SMVP y/o el TMVP.
Cuando entre los MVP candidatos seleccionados por el método mencionado más arriba hay candidatos que se solapan, el codificador o el decodificador elimina a los candidatos que no sean el candidato mejor clasificado de los candidatos que se solapan.
Más arriba se ha descrito que el grupo de candidatos se divide en el grupo izquierdo de candidatos A0 y A1 y el grupo superior de candidatos Bo, B1, y B2 , pero el grupo de candidatos no se limita a esta división. Por ejemplo, el grupo izquierdo de candidatos puede incluir únicamente a A1, el grupo superior de candidatos puede incluir únicamente a B1 y se puede construir un grupo de candidatos de esquina que incluya a A0, B0, y B2. Cuando el grupo de candidatos se divide en el grupo izquierdo de candidatos, el grupo superior de candidatos y el grupo de candidatos de esquina, se puede determinar la similitud del índice de imagen de referencia con el del bloque actual, la similitud de la lista de imágenes de referencia con la del bloque actual, etcétera, y se puede seleccionar un número predeterminado de MVP candidatos para el bloque actual.
En este momento, con el fin de predecir de forma más precisa el vector de movimiento del bloque actual se puede escalar un vector de movimiento (vector de movimiento vecino) seleccionado de los bloques vecinos.
Por ejemplo, cuando no existe un bloque vecino que tenga un frame de referencia (imagen de referencia) que se corresponda con el frame de referencia (imagen de referencia) del vector de movimiento MVc del bloque actual, se pueden escalar los vectores de movimiento de los bloques vecinos para crear un predictor de vector de movimiento (PMV (Predictor de Vector de Movimiento) o MVP (Motion Vector Predictor)).
La FIG. 5 es un diagrama que ilustra un método de escalado de acuerdo con un modo de realización de la invención e ilustra de forma esquemática la relación entre el bloque actual y los bloques vecinos del mismo. Únicamente por conveniencia para facilitar la explicación, se describirá un ejemplo de un método para escalar un vector de movimiento teniendo en cuenta cada uno de los bloques vecinos izquierdos, los bloques vecinos superiores y los bloques vecinos de esquina del bloque actual 510 haciendo referencia a la FIG. 5. En la FIG. 5, entre todos los bloques de esquina se escoge el bloque de esquina superior derecho del bloque actual como bloque representante de los bloques vecinos de esquina. La descripción que sigue en relación con la FIG. 5, se puede aplicar de modo análogo a los otros bloques vecinos de esquina.
Haciendo referencia a la FIG. 5, en un bloque superior 520, un bloque superior derecho 530, un bloque izquierdo 540 del bloque actual 510, MVc representa el vector de movimiento de un bloque actual 510, MVu representa el vector de movimiento de. bloque superior 530, MVur representa el vector de movimiento del bloque superior derecho 540 y MVL representa el vector de movimiento del bloque izquierdo 520. Se supone que el índice de imagen de referencia del bloque superior 530 del bloque actual 510 es 1 (Ref. #1), el índice de imagen de referencia del bloque superior derecho 540 del bloque actual 510 es 1 (Ref. #1), y el índice de imagen de referencia del bloque izquierdo 520 del bloque actual 510 es 1 (Ref. #0). El índice de imagen de referencia representa el índice de frame de referencia (imagen de referencia) indicado por el vector de movimiento de cada bloque.
En la Fig. 5, cuando se utiliza el frame de referencia (imagen de referencia) número 0 de la lista de imágenes de referencia almacenada en la memoria (memoria temporal intermedia) para la estimación de movimiento, se utiliza el vector de movimiento MVl para crear el predictor de vector de movimiento del frame de referencia número 0. Cuando se utiliza el primer frame de referencia de la lista de imágenes de referencia para la estimación de movimiento, se utilizan tres vectores de movimiento para crear el predictor de vector de movimiento del primer frame de referencia. Los predictores de vector de movimiento de los frames de referencia segundo a cuarto de la lista de imágenes de referencia tienen el mismo valor que el predictor de vector de movimiento del primer frame de referencia.
El valor de la diferencia entre el vector de movimiento MVc estimado para el bloque actual y el predictor de vector de movimiento se calcula a partir de los predictores de vector de movimiento creados y se le transmite la MVD al decodificador.
En el ejemplo que se ilustra en la FIG. 5, cuando para estimar el movimiento se utilizan los frame de referencia número 0 a 1 en la lista de imágenes de referencia, que es el mismo frame de referencia que el frame de referencia (imagen de referencia) de un bloque vecino, es posible crear un predictor de vector de movimiento apropiado. Sin embargo, cuando para la estimación de movimiento se utiliza un frame de referencia diferente de los frames de referencia (imágenes de referencia) de los bloques vecinos, el predictor de vector de movimiento creado puede tener una gran diferencia respecto al vector de movimiento MVc del bloque actual. Esto se debe a que, como no hay ningún bloque vecino que tenga un frame de referencia correspondiente al frame de referencia del vector de movimiento MVc del bloque actual, es difícil predecir de forma efectiva el vector de movimiento del bloque actual utilizando información de los bloques vecinos.
En este caso, utilizando un escalado incremental o un escalado reductor en los vectores de movimiento de los bloques vecinos del bloque actual, es posible crear un predictor de vector de movimiento más aproximado al vector de movimiento MVc del bloque actual y reducir el número de bits de la MVD codificada y transmitida.
Por ejemplo, cuando se asume que las imágenes de referencia del bloque superior 530, el bloque superior derecho 540 y el bloque izquierdo 520, que son los bloques vecinos del bloque actual 510, son diferentes de la imagen de referencia del bloque actual, los vectores de movimiento de los bloques vecinos 520, 530 y 540 pueden ser escalados hacia arriba o hacia abajo mediante interpolación lineal, tal como se indica en la Expresión 1.
<Expresión 1>
Figure imgf000011_0001
En la Expresión 1, fL representa el número de frame de referencia (o el índice de imagen de referencia) del bloque izquierdo del bloque actual, fU representa el número de frame de referencia del bloque superior del bloque actual, fUR representa el número de frame de referencia del bloque superior derecho del bloque actual entre los bloques de esquina, íme representa el número de frame de referencia sujeto a estimación de movimiento, y fe representa el número del frame actual.
Los vectores de movimiento de los bloques vecinos del bloque actual se escalan hacia arriba o hacia abajo mediante la interpolación lineal indicada en la Expresión 1. El predictor de vector de movimiento del bloque actual se puede crear utilizando los vectores de movimiento escalados de los bloques vecinos. En este momento, el codificador o el decodificador puede crear el predictor de vector de movimiento mediante diversos métodos. Por ejemplo, se puede seleccionar cualquiera de los vectores de movimiento de los bloques vecinos y utilizarlo como predictor de vector de movimiento, se puede utilizar el promedio de los vectores de movimiento de los bloques vecinos como predictor de vector de movimiento, o se puede utilizar un valor obtenido mediante un filtrado de mediana de los vectores de movimiento de los bloques vecinos como predictor de vector de movimiento.
La FIG. 6 es un diagrama de flujo que ilustra de forma esquemática un método de escalado de acuerdo con un modo de realización de la invención.
Haciendo referencia a la FIG. 6, el codificador o el decodificador realiza la estimación de movimiento utilizando el enésimo frame de referencia (S610). El enésimo frame de referencia es la enésima imagen de referencia (frame de referencia) en la lista de imágenes de referencia y puede ser el frame de referencia (imagen de referencia) del bloque actual.
El codificador o el decodificador puede determinar si el número de frame de referencia (índice de imagen de referencia en el caso de una imagen de referencia) del bloque vecino es diferente de n (S620). Por ejemplo, cuando se consideran como bloques vecinos el bloque izquierdo del bloque actual, el bloque superior del bloque actual y el bloque de la esquina superior derecha del bloque actual entre todos los bloques de esquina, el codificador o el decodificador determina si los valores del número de frame de referencia fL del bloque izquierdo, el número de frame de referencia fU del bloque superior y el número de frame de referencia fUR del bloque de la esquina superior derecha son diferentes de n.
El codificador o el decodificador puede escalar los vectores de movimiento de los bloques vecinos cuando los números de trama de referencia de los bloques vecinos son diferentes de n (S630). Por ejemplo, cuando los bloques izquierdo, superior y superior derecho del bloque actual se consideran bloques vecinos tal como se ha descrito más arriba y los valores de fL, fU y fUR son diferentes de n, el codificador o el decodificador puede escalar los vectores de movimiento de los bloques correspondientes, esto es, el vector de movimiento MVl del bloque izquierdo del bloque actual, el vector de movimiento mVu del bloque superior del bloque actual y el vector de movimiento MVur del bloque superior derecho del bloque actual.
El codificador o el decodificador puede crear un predictor de vector de movimiento del bloque actual (S640). Cuando uno cualquiera de los bloques vecinos tiene el mismo número de frame de referencia que el frame de referencia del bloque actual, el codificador o el decodificador puede crear el predictor de vector de movimiento del bloque actual utilizando el vector de movimiento del bloque correspondiente. Por ejemplo, cuando al menos uno de los valores fL, fU y fUR es igual a n, es posible crear el predictor de vector de movimiento del bloque actual utilizando los vectores de movimiento de los bloques vecinos cuyo número de frame de referencia es n. Cuando los valores fL, fU y fUR son diferentes de n, para crear el predictor de vector de movimiento del bloque actual el codificador o el decodificador puede escalar los vectores de movimiento de los bloques vecinos tal como se ha descrito más arriba. Como método de escalado se puede utilizar la Expresión 1.
Para crear el predictor de vector de movimiento del bloque actual, el codificador o el decodificador puede calcular el valor de la mediana de los vectores de movimiento escalados o los vectores de movimiento no escalados de los bloques vecinos. Alternativamente, para crear el predictor de vector de movimiento del bloque actual, el codificador o el decodificador puede calcular el valor promedio de los vectores de movimiento escalados o los vectores de movimiento no escalados de los bloques vecinos. Alternativamente, el codificador o el decodificador puede utilizar como predictor de vector de movimiento del bloque actual uno cualquiera de los vectores de movimiento escalados o los vectores de movimiento no escalados de los bloques vecinos.
Únicamente por conveniencia para facilitar la explicación, como ejemplos de bloques vecinos del bloque actual se utilizan el bloque izquierdo 520, que representa a los bloques vecinos situados en la parte izquierda del bloque actual, el bloque superior 530, que representa a los bloques vecinos situados en la parte superior del bloque actual y el bloque superior derecho 540, que representa a los bloques situados en las esquinas vecinas del bloque actual, pero el método mencionado más arriba se puede aplicar teniendo en cuenta todos los bloques vecinos o los bloques situados en otras posiciones entre todos los bloques vecinos.
Por ejemplo, tal como se ilustra en la FIG. 4, el predictor de vector de movimiento se puede crear utilizando tres bloques 410, 430 y 450 de esquina, uno cualquiera de los bloques izquierdos 420 y uno cualquiera de los bloques superiores 440. En este caso se puede utilizar un bloque 420-1 de los bloques izquierdos 420 situado en una posición concreta o se puede utilizar un bloque 440-1 de los bloques superiores 440 situado en una posición específica.
Determinando si en el grupo izquierdo de candidatos A0 y A1 y en el grupo superior de candidatos B0 , B1 y B2 hay un bloque que tenga el mismo frame de referencia que el frame de referencia (imagen de referencia) del bloque actual, los candidatos se pueden seleccionar uno a uno. Cuando en los bloques del grupo izquierdo de candidatos no hay ningún bloque que tenga el mismo frame de referencia (imagen de referencia) que el frame de referencia (imagen de referencia) del bloque actual, se pueden escalar los vectores de movimiento de los bloques izquierdos de candidatos o los bloques seleccionados a partir de los bloques izquierdos de candidatos. Cuando en los bloques del grupo superior de candidatos no hay ningún bloque que tenga el mismo frame de referencia (imagen de referencia) que el frame de referencia (imagen de referencia) del bloque actual, se pueden escalar los vectores de movimiento de los bloques superiores de candidatos o los bloques seleccionados a partir de los bloques superiores de candidatos. La FIG. 7 es un diagrama que ilustra de forma esquemática un método para escalar los vectores de movimiento de los bloques vecinos del bloque actual en la imagen actual (frame actual) de acuerdo con un modo de realización de la invención.
Haciendo referencia a la FIG. 7, la imagen de referencia de un bloque vecino 730 del bloque actual 740 en la imagen actual 700 puede o no ser idéntica a la imagen de referencia del bloque actual 740.
Cuando la imagen de referencia del bloque actual 740 y la imagen de referencia del bloque vecino 730 son idénticas entre sí como imagen de referencia 710, se puede utilizar el vector de movimiento 750 del bloque vecino 730 para crear el predictor de vector de movimiento del bloque actual sin escalar. En este momento, el bloque vecino 730 puede tener una lista de imágenes de referencia idéntica a la del bloque actual 740 o puede tener una lista de imágenes de referencia diferente de ella. Por ejemplo, cuando la imagen de referencia del bloque actual 740 es una enésima imagen de referencia en la lista L0 de imágenes de referencia y el bloque vecino 730 tiene una imagen de referencia idéntica a la del bloque actual 740 y una lista de imágenes de referencia idéntica a la del mismo, el vector de movimiento 750 del bloque vecino 730 se puede expresar mediante mvL0N.
Por otra parte, cuando la imagen de referencia del bloque actual 740, que es la imagen de referencia 710, y la imagen de referencia del bloque vecino 730, que es la imagen de referencia 720, son diferentes entre sí, se puede escalar el vector de movimiento 760 del bloque vecino 730 y se puede utilizar el vector de movimiento escalado para crear el predictor de vector de movimiento del bloque actual. En este momento, el bloque vecino 730 puede tener una lista de imágenes de referencia idéntica a la del bloque actual 740 o puede tener una lista de imágenes de referencia diferente de la del bloque actual 740. Por ejemplo, cuando la imagen de referencia del bloque actual 740 es una enésima imagen de referencia en la lista L0 de imágenes de referencia y el bloque vecino 730 tiene una imagen de referencia diferente de la del bloque actual 740 y una lista de imágenes de referencia idéntica a la del mismo, el vector de movimiento 750 del bloque vecino 730 se puede expresar mediante mvL0N_escaled.
El vector de movimiento del bloque vecino se puede escalar sobre la base de la magnitud de la distancia tb entre la imagen de referencia del bloque actual y el bloque actual y la magnitud de la distancia td entre la imagen de referencia del bloque vecino y la imagen actual. Se puede utilizar el método representado por la Expresión 2 como ejemplo del método para escalar el vector de movimiento de un bloque vecino.
<Expresión 2>
mvL0N_escaled = (DistScaleFactor*mvL0N+128) >>8
Aquí, DistScaleFactor representa un factor de escala determinado que tiene en cuenta las magnitudes de las dos distancias tb y td que se han descrito más arriba. En este momento, en caso de redondeo hacia arriba se puede utilizar una constante 128 como en la Expresión 2, y en caso de redondeo hacia abajo, en lugar de la constante 128 se puede utilizar una constante 127. Por ejemplo, cuando el resultado del escalado en unidades de cuarto de pel (bloque de 1/4 de píxel) es 1,5, utilizando la constante 128 se puede obtener como resultado del redondeo el valor 2, y utilizando la constante 127 se puede obtener como resultado del redondeo el valor 1. Aquí, en el caso de redondeo hacia abajo, se puede aplicar el redondeo hacia abajo directamente a 0. Por ejemplo, cuando se aplica el redondeo hacia abajo a un valor de -1,5, se puede aplicar el redondeo hacia abajo a un valor -1, no -2.
DistScaleFactor se puede determinar de varias formas, y las Expresiones 3 y 4 son ejemplos del método para determinar DistScaleFactor.
<Expresión 3>
DistScaleFactor = Clip3(-1024, 1023, (tb*tx+32)>>6)
<Expresión 4>
DistScaleFactor = Clip3(-4096, 4095, (tb*tx+32)>>6)
Aquí, en las Expresiones 3 y 4, a tx se le puede asignar el valor tx = (16384 (Abs(td) / 2)) / td como derivado de un vector de movimiento candidato temporal del AVC H.264/MPEG-4 (véase el apartado 8.4.1.2.3 del estándar de H.264).
Por otra parte, los bloques vecinos utilizados para crear el predictor de vector de movimiento se pueden seleccionar mediante una competición de vectores de movimiento. La competición de vectores de movimiento se traduce en que se selecciona y se utiliza como valor predicho el vector de movimiento más adecuado entre varios vectores de movimiento candidatos. En este caso, también se puede considerar el bloque Col, que es un bloque vecino temporal, así como los bloques vecinos espaciales del bloque actual.
La FIG. 8 es un diagrama que ilustra de forma esquemática un método para aplicar la competición de vectores de movimiento de acuerdo con un modo de realización de la invención. La FIG. 8 ilustra unos bloques vecinos espaciales entre los bloques vecinos del bloque actual 800.
Haciendo referencia a la FIG. 8, los bloques vecinos espaciales que se ilustran en la FIG. 8 incluyen na (en donde na es un número entero igual o mayor que 1) bloques a0 , a1,..., y ana del grupo superior situados en la parte superior del bloque actual 800, nb (en donde nb es un número entero igual o mayor que 1) bloques b0 , b1,..., y bnb del grupo izquierdo situados en la parte izquierda del bloque actual 800, y los bloques c, d y e del grupo de esquina situados en la esquina superior derecha, la esquina inferior izquierda y la esquina superior izquierda del bloque actual 800. En el ejemplo que se ilustra en la FIG. 8, los vectores de movimiento candidatos en la AMVP (Predicción de Vector de Movimiento Avanzada) se pueden calcular como se expresa mediante la Expresión 5.
<Expresión 5>
Vectores de movimiento candidatos = {median(a', b', c'), a', b', c', predictor temporal} En la Expresión 5, los tres vectores de movimiento espaciales a', b' y c' son vectores de movimiento de los primeros bloques disponibles que tienen una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imagen de referencia idéntico al del bloque actual en los grupos (bloques situados en la parte superior del bloque actual, bloques situados en la parte izquierda del bloque actual y bloques situados en las esquinas del bloque actual). El codificador o el decodificador puede crear la lista de predictores de vector de movimiento candidatos descrita en relación con la FIG. 3 utilizando todos o una parte de los vectores de movimiento candidatos obtenidos a partir de la Expresión 5.
El codificador o el decodificador puede seleccionar un candidato predeterminado entre los vectores de movimiento candidatos obtenidos a partir de la Expresión 5 como predictor de vector de movimiento del bloque actual. En este momento, el codificador o el decodificador puede seleccionar el MVP del bloque actual teniendo en cuenta todos o una parte de los vectores de movimiento obtenidos a partir de la Expresión 5. Por ejemplo, el codificador puede seleccionar como MVP del bloque actual el candidato que tenga el valor residual más pequeño de los vectores de movimiento del bloque actual entre los vectores de movimiento candidatos obtenidos a partir de la Expresión 5, y puede transmitirle información sobre el mismo al decodificador. El codificador puede seleccionar un vector de movimiento disponible teniendo en cuenta únicamente algunos vectores de movimiento, por ejemplo, a', b' y c', entre los vectores de movimiento obtenidos a partir de la Expresión 5, y además, cuando a', b', y c' no se pueden considerar (no están disponibles) puede considerar predictores temporales.
En la Expresión 5, median(a', b', c') representa un vector de mediana de a', b' y c' y se pueden utilizar las siguientes formas 1) a 4) como ejemplo del vector de mediana.
1) Cuando a', b' y c' están todos disponibles, para calcular el vector de mediana se calculan los valores de a', b' y c'.
2) Cuando solo están disponibles dos entre a', b' y c', para calcular el vector de mediana se le asigna al vector de movimiento no disponible el valor 0.
3) Cuando solo está disponible uno entre a', b' y c', se utiliza el vector de movimiento disponible como vector de mediana.
4) Cuando no se satisfacen los puntos 1) a 3), al vector de mediana se le asigna el valor 0.
En este momento, los vectores de movimiento no disponibles de los vectores de movimiento a', b' y c' no se incluyen entre los vectores de movimiento candidatos. El predictor de vector de movimiento temporal representa un vector de movimiento co-localizado con el bloque actual en una imagen (frame) diferente de la imagen (frame) actual.
Por otra parte, en la Tabla 1 se muestra un ejemplo de pseudocódigo para calcular un vector de movimiento de un primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imagen de referencia idéntico al mismo entre na (en donde na es un número entero igual o mayor que 1) bloques situados en la parte superior del bloque actual 800.
<Tabla 1>
Figure imgf000015_0001
En la Tabla 1, la búsqueda se realiza en el orden de búsqueda de a0 a ana, pero la invención no se limita a este orden y el vector de movimiento del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imagen de referencia idéntico al mismo se pueden derivar realizando la búsqueda según el orden de búsqueda de aan a a0.
Por otra parte, a diferencia del ejemplo que se muestra en la Tabla 1, se puede escalar el vector de movimiento del bloque en modo inter que se explora en primer lugar entre los bloques del grupo superior independientemente de la lista de imágenes de referencia y el índice de imagen de referencia, y el vector de movimiento escalado se le puede asignar como valor a a'. En este caso, en la Tabla 2 se muestra un ejemplo de pseudocódigo para derivar el vector de movimiento a'.
<Tabla 2>
Figure imgf000015_0002
En la Tabla 2, la búsqueda se realiza en el orden de búsqueda de a0 a ana, pero la invención no se limita a este orden y el vector de movimiento se puede derivar realizando la búsqueda según el orden de búsqueda de ana a a0 y escalando el vector de movimiento del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imágenes de referencia idéntico al del mismo.
El vector de movimiento b' del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imagen de referencia idéntico al mismo entre los nb (donde nb es un número entero igual o mayor que 1) bloques bü, b1, y bnb del grupo izquierdo se puede derivar del mismo modo que en la Tabla 1. En este caso, en la Tabla 3 se muestra un ejemplo de pseudocódigo para derivar el vector de movimiento b'.
<Tabla 3>
Figure imgf000015_0003
En la Tabla 3, la búsqueda se realiza en el orden de búsqueda de bo a bnb, pero la invención no se limita a este orden y el vector de movimiento del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imagen de referencia idéntico al mismo se puede derivar realizando la búsqueda según el orden de búsqueda de bnb a bo.
Por otra parte, a diferencia del ejemplo que se muestra en la Tabla 3, se puede escalar el vector de movimiento del bloque en modo inter que se explora en primer lugar entre los bloques del grupo izquierdo independientemente de la lista de imágenes de referencia y el índice de imagen de referencia, y el vector de movimiento escalado se le puede asignar como valor a b'. En este caso, en la Tabla 4 se muestra un ejemplo de pseudocódigo para obtener el vector de movimiento b'.
<Tabla 4>
Figure imgf000016_0001
En la Tabla 4, la búsqueda se realiza en el orden de búsqueda de b0 a bnb, pero la invención no se limita a este orden y el vector de movimiento se puede obtener realizando la búsqueda según el orden de búsqueda de bnb a b0 y escalando el vector de movimiento del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imágenes de referencia idéntico al mismo.
El vector de movimiento c' del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imagen de referencia idéntico al mismo entre los tres bloques c, d y e de los grupos de esquina se puede obtener de forma análoga a la Tabla 1. En la Tabla 5 se muestra un ejemplo de pseudocódigo para derivar el vector de movimiento b'. En la Tabla 5 se describen c0=c, c1=d, y c2=e únicamente por conveniencia para facilitar la explicación.
<Tabla 5>
Figure imgf000016_0002
En la Tabla 5, la búsqueda se realiza en el orden de búsqueda de c0 a c2 , pero la invención no se limita a este orden y el vector de movimiento del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imagen de referencia idéntico al mismo se puede obtener realizando la búsqueda según el orden de búsqueda de c2 a c0 o el orden de búsqueda c1^ c 2^ c 0 o c1^ c 0^ c 2.
Por otra parte, a diferencia del ejemplo que se muestra en la Tabla 5, se puede escalar el vector de movimiento del bloque en modo inter que se explora en primer lugar entre los bloques de un grupo de esquina independientemente de la lista de imágenes de referencia y el índice de imagen de referencia, y el vector de movimiento escalado se le puede asignar como valor a c'. En este caso, en la Tabla 6 se muestra un ejemplo de pseudocódigo para derivar el vector de movimiento c'.
<Tabla 6>
Figure imgf000017_0001
En la Tabla 6, la búsqueda se realiza en el orden de búsqueda de c0 a c2 , pero la invención no se limita a este orden y el vector de movimiento se puede derivar realizando la búsqueda según el orden de búsqueda de c2 a c0 o el orden de búsqueda c1^ c 2^ c 0 o c1^ c 0^ c 2 y escalando el vector de movimiento del primer bloque disponible que tiene una lista de imágenes de referencia idéntica a la del bloque actual 800 y un índice de imágenes de referencia idéntico al mismo.
Por otra parte, solo cuando el vector de movimiento no está disponible, se puede escalar el vector de movimiento del bloque en modo inter que se busca en primer lugar entre el grupo vecino correspondiente independientemente de la lista de imágenes de referencia y el índice de imagen de referencia, y el vector de movimiento escalado se puede asignar como vector de movimiento candidato.
En las Tablas 1 a 6, se establece como bloque disponible el bloque que tiene una imagen de referencia idéntica a la del bloque actual y una lista de imágenes de referencia idéntica a la del mismo. En las tablas 2, 4 y 6, incluso si la imagen de referencia y la lista de imágenes de referencia de un bloque son diferentes de las del bloque actual se puede utilizar el vector de movimiento del bloque correspondiente escalándolo en caso de que el bloque se encuentre en el modo de predicción inter.
En las Tablas 7 a 12, cuando la imagen de referencia y la lista de imágenes de referencia de un bloque son diferentes de las del bloque actual, se indica que el vector de movimiento del bloque correspondiente se utiliza escalándolo en caso de que el bloque esté en modo de predicción inter.
La Tabla 7 muestra un ejemplo de pseudocódigo para calcular un vector de movimiento a' escalando el vector de movimiento del bloque en modo inter que se explora en primer lugar entre los bloques del grupo superior cuando los vectores de movimiento de los bloques del grupo superior no están disponibles.
<Tabla 7>
Figure imgf000017_0002
En la Tabla 7, la búsqueda se realiza en el orden de búsqueda de ao a ana, pero la invención no se limita a este orden y el vector de movimiento se puede obtener realizando la búsqueda según el orden de búsqueda de ana a a0 y escalando el vector de movimiento del primer bloque disponible.
La Tabla 8 muestra un ejemplo de pseudocódigo para derivar un vector de movimiento b' escalando del vector de movimiento de un bloque en modo inter que se explora en primer lugar entre los bloques del grupo izquierdo cuando los vectores de movimiento de los bloques del grupo izquierdo no están disponibles.
<Tabla 8>
Figure imgf000018_0001
En la Tabla 8, la búsqueda se realiza en el orden de búsqueda de b0 a bnb, pero la invención no se limita a este orden y el vector de movimiento se puede derivar realizando la búsqueda según el orden de búsqueda de bnb a b0 y escalando el vector de movimiento del primer bloque disponible.
La Tabla 9 muestra un ejemplo de pseudocódigo para obtener un vector de movimiento c' escalando el vector de movimiento del bloque en modo inter que se explora en primer lugar entre los bloques del grupo izquierdo cuando los vectores de movimiento de los bloques del grupo izquierdo no están disponibles.
<Tabla 9>
Figure imgf000018_0002
Figure imgf000019_0001
En la Tabla 9, la búsqueda se realiza en el orden de búsqueda de c0 a c2 , pero la invención no se limita a este orden y el vector de movimiento se puede obtener realizando la búsqueda según el orden de búsqueda c1^ c 2^ c 0 o c1^ c 0^ c 2 y escalando el vector de movimiento del primer bloque disponible.
Por otra parte, aunque de forma similar a los métodos mencionados más arriba, se puede determinar el vector de movimiento a escalar con la siguiente prioridad cuando los vectores de movimiento de los bloques vecinos del bloque actual no están disponibles.
<Prioridad>
(1) Un bloque que se refiere a una imagen de referencia idéntica a la del bloque actual (que puede aparecer cuando la lista 0 (L0) y la lista 1 (L1) tienen las mismas imágenes de referencia).
(2) Un bloque que tiene una lista de imágenes de referencia idéntica, si no hay ningún vector de movimiento disponible entre los vectores de movimiento de los bloques vecinos cuando se ha comprobado el punto (1) anterior.
(3) El otro bloque en modo inter si no hay ningún vector de movimiento disponible entre los vectores de movimiento de los bloques vecinos cuando se ha comprobado el punto (2) anterior.
En consecuencia, con las prioridades 1) a 3) el codificador o el decodificador puede determinar uno cualquiera de los bloques vecinos del bloque actual y puede escalar el vector de movimiento del bloque correspondiente.
La Tabla 10 muestra un ejemplo de pseudocódigo para derivar un vector de movimiento a' seleccionando un bloque cualquiera de los bloques del grupo superior y escalando el vector de movimiento del bloque correspondiente.
<Tabla 10>
Figure imgf000019_0002
Figure imgf000020_0001
En la Tabla 10, la búsqueda se realiza en el orden de búsqueda de a0 a ana, pero la invención no se limita a este orden y el vector de movimiento se puede derivar realizando la búsqueda según el orden de búsqueda de ana a a0 y escalando el vector de movimiento del primer bloque disponible.
La Tabla 11 muestra un ejemplo de pseudocódigo para derivar un vector de movimiento b' seleccionando un bloque cualquiera de los bloques del grupo izquierdo de acuerdo con las prioridades mencionadas más arriba y escalando el vector de movimiento del bloque correspondiente.
<Tabla 11>
Figure imgf000021_0001
Figure imgf000022_0001
En la Tabla 11, la búsqueda se realiza en el orden de búsqueda de bo a bnb, pero la invención no se limita a este orden y el vector de movimiento se puede obtener realizando la búsqueda según el orden de búsqueda de bnb a b0 y escalando un vector de movimiento del primer bloque disponible.
La Tabla 12 muestra un ejemplo de pseudocódigo para derivar un vector de movimiento c' seleccionando un bloque cualquiera de los bloques del grupo izquierdo de acuerdo con las prioridades mencionadas más arriba y escalando el vector de movimiento del bloque correspondiente.
<Tabla 12>
Figure imgf000022_0002
Figure imgf000023_0001
En la Tabla 12, la búsqueda se realiza en el orden de búsqueda de c0 a c2, pero la invención no se limita a este orden y el vector de movimiento se puede obtener realizando la búsqueda según el orden de búsqueda c1^ c 2^ c 0 o c1^ c 0^ c 2 y escalando un vector de movimiento del primer bloque disponible.
En las Tablas 10 a 12, se describe que se selecciona el objetivo del escalado de acuerdo con las prioridades mencionadas más arriba y se deriva un vector de movimiento candidato disponible, pero las prioridades no se limitan a las mencionadas más arriba y se pueden modificar y aplicar de diversas formas si es necesario.
Por otra parte, las prioridades mencionadas más arriba se pueden expresar mediante las siguientes condiciones de revisión.
<Condiciones de revisión>
La información de movimiento (imagen de referencia y lista de imágenes de referencia) de un bloque a escanear es: (1) una imagen de referencia idéntica a la del bloque actual y una lista de imágenes de referencia idéntica a la del mismo;
(2) una imagen de referencia idéntica a la del bloque actual y una lista de imágenes de referencia diferente a la del mismo;
(3) una imagen de referencia diferente a la del bloque actual y una lista de imágenes de referencia idéntica a la del mismo;
(4) una imagen de referencia diferente de la del bloque actual y una lista de imágenes de referencia.
En relación con las condiciones de revisión, el codificador o el decodificador puede escanear un número predeterminado de, por ejemplo, n bloques en un orden predeterminado con el fin de determinar un vector de movimiento candidato espacial para la predicción del vector de movimiento. En este momento, el codificador o el decodificador puede determinar si un bloque es un bloque que se ajusta a las condiciones de revisión durante el escaneado secuencial de los n bloques vecinos del bloque actual, o puede determinar si un bloque se ajusta a las condiciones de revisión en un grupo escaneado mientras se escanean los bloques vecinos del bloque actual, por ejemplo, en el grupo superior, el grupo izquierdo y el grupo de esquina. En lugar de clasificar los bloques vecinos en grupo superior, grupo izquierdo y grupo de esquina, los bloques vecinos del bloque actual se pueden clasificar en grupo superior que incluye el bloque de esquina superior izquierda y el bloque de esquina superior derecha, y un bloque izquierdo que incluye el bloque de esquina inferior izquierda, y se puede determinar si en el grupo a escanear hay un bloque que satisfaga las condiciones de revisión mientras se escanean los dos grupos por grupos.
Respecto a las condiciones de revisión, el codificador o el decodificador puede concederle mayor prioridad a la condición de revisión con el número más bajo. Esto se debe a que se puede considerar que un bloque vecino que satisface la condición de revisión con el número más bajo tiene información de movimiento más parecida a la del bloque actual. De aquí en adelante se describirá un método para utilizar el vector de movimiento de un bloque, el cual se comprueba en primer lugar si está disponible durante el escaneado secuencial de n bloques vecinos del bloque actual de acuerdo con las prioridades de las condiciones de revisión, como predictor de vector de movimiento candidato para predecir el vector de movimiento del bloque actual sin ningún cambio o mediante escalado haciendo referencia a las tablas.
Aquí, bloque disponible significa un bloque que se puede utilizar para predicción inter del bloque actual.
Tal como se ha descrito más arriba, el escalado se puede realizar teniendo en cuenta la distancia temporal entre la imagen de referencia del bloque actual y la imagen actual, y la distancia temporal entre las imágenes de referencia de los bloques vecinos y la imagen actual.
Los números del 1 al 12 que aparecen más abajo en las tablas representan el orden del escaneado (comprobación). Únicamente por conveniencia para facilitar la explicación, el bloque 0, el bloque 1 y el bloque 2 se consideran bloques vecinos del bloque actual. Los bloques 0 a 2 representan las posiciones de los bloques candidatos para calcular un vector de movimiento candidato espacial. Las posiciones de los bloques 0 a 2 se sitúan en uno cualquiera de los lados izquierdo, superior y de esquina alrededor del bloque actual. Con el fin de simplificar la explicación, se puede asumir que los bloques 0 a 2 están situados secuencialmente según el orden de escaneado. La Tabla 13 muestra un ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques 0 a 2 alrededor del bloque actual de acuerdo con las prioridades de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual mediante escalado.
<Tabla 13>
Figure imgf000024_0001
En el ejemplo que se muestra en la Tabla 13, se comprueba si el bloque 0 tiene una información de movimiento que satisface la condición de revisión 1, y cuando el bloque 0 tiene una información de movimiento que satisface la condición de revisión 1 se utiliza el vector de movimiento (mv) del bloque 0 como predictor de vector de movimiento candidato espacial del bloque actual, cuando el bloque 0 no tiene información de movimiento que satisface la condición de revisión 1 se busca el bloque 1 y se comprueba si el bloque 1 tiene información de movimiento que satisface la condición de revisión 1. De esta forma se determina el predictor de vector de movimiento candidato espacial del bloque actual.
La Tabla 14 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques 0 a 2 alrededor del bloque actual de acuerdo con las prioridades de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual mediante escalado.
<Tabla 14>
Figure imgf000024_0002
En el ejemplo que se muestra en la Tabla 14, se compruebe si el bloque 0 tiene una información de movimiento que satisface la condición de revisión 1, y cuando el bloque 0 tiene una información de movimiento que satisface la condición de revisión 1 se utiliza el vector de movimiento (mv) del bloque 0 como predictor de vector de movimiento candidato espacial del bloque actual y se escanea (comprueba) si el bloque 0 tiene una información de movimiento que satisface la condición de revisión 2. Cuando el bloque 0 no tiene una información de movimiento que satisface las condiciones de revisión 1 a 4, se comprueba si el bloque 1 tiene una información de movimiento que satisface las condiciones de revisión 1 a 4 mientras se escanea el bloque 1 para comprobar las condiciones de revisión 1 a 4. De esta forma se determina el predictor de vector de movimiento candidato espacial del bloque actual.
La Tabla 15 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques 0 a 2 alrededor del bloque actual de acuerdo con las prioridades de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual mediante escalado.
<Tabla 15>
Figure imgf000025_0001
En el ejemplo que se muestra en la Tabla 15, se comprueba si el bloque 0 tiene una información de movimiento que satisface la condición de revisión 1, y cuando el bloque 0 tiene una información de movimiento que satisface la condición de revisión 1 se utiliza el vector de movimiento (mv) del bloque 0 como predictor de vector de movimiento candidato espacial del bloque actual. Cuando el bloque 0 no tiene una información de movimiento que satisface la condición de revisión 1, se comprueba secuencialmente si los bloques 1 y 2 tienen una información de movimiento que satisface la condición de revisión 1. Cuando los bloques 0 a 2 no tienen una información de movimiento que satisface la condición de revisión 1, se comprueba secuencialmente si el bloque 0 tiene una información de movimiento que satisface la condición de revisión correspondiente mientras se escanea el bloque 1 para comprobar las condiciones de revisión 2 a 4. Cuando el bloque 0 no tiene una información de movimiento que satisface las condiciones de revisión 2 a 4, se comprueban secuencialmente las condiciones de revisión 2 a 4 para el bloque 1. De esta forma se determina el predictor de vector de movimiento candidato espacial del bloque actual.
La Tabla 16 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques 0 a 2 alrededor del bloque actual de acuerdo con las prioridades de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual mediante escalado
<Tabla 16>
Figure imgf000025_0002
En el ejemplo que se muestra en la Tabla 16, se comprueba secuencialmente si el bloque 0 tiene una información de movimiento que satisface las condiciones de revisión 1 a 4. Por ejemplo, cuando el bloque 0 tiene una información de movimiento que satisface la condición de revisión 1, se utiliza el vector de movimiento como predictor de vector de movimiento candidato espacial del bloque actual. Cuando no hay una información de movimiento que satisface la condición de revisión 1, se comprueba si hay una información de movimiento que satisface la condición de revisión 2. Cuando el bloque 0 no tiene una información de movimiento que satisface las condiciones de revisión 1 a 4, se comprueba secuencialmente si el bloque 1 y el bloque 2 tienen una información de movimiento que satisface la condición de revisión correspondiente mientras se escanea el bloque 1 para comprobar la condición de revisión 1. Cuando los bloques 0 a 2 no tienen una información de movimiento que satisface la condición de revisión 1, se comprueba secuencialmente si los bloques 1 y 2 tienen una información de movimiento que satisface la condición de revisión 2. De esta forma se determina el predictor de vector de movimiento candidato espacial del bloque actual.
El ejemplo de la Tabla 13 muestra un orden de escaneado con la prioridad asignada a las condiciones de revisión en lugar de a las posiciones de los bloques. Por el contrario, la Tabla 14 muestra un ejemplo de un orden de escaneado con la prioridad asignada a las posiciones de los bloques en lugar de a las condiciones de revisión.
La Tabla 15 y la Tabla 16 muestran ejemplos de un orden de escaneado en el que la prioridad de las condiciones de revisión y la prioridad de las posiciones de los bloques se mezclan apropiadamente. Tal como se ha descrito más arriba, la Tabla 15 muestra un ejemplo de un orden de escaneado que considera las posiciones de los bloques cuando se le asigna la máxima prioridad a la condición de revisión 1 pero no hay ningún bloque que satisfaga la condición de revisión 1. La Tabla 16 muestra un ejemplo de un orden de escaneado que considera secuencialmente las condiciones cuando, después de comprobar la disponibilidad de las condiciones de revisión en el bloque 0, no hay información de movimiento disponible.
Los vectores de movimiento (por ejemplo, a', b' y c') escalados según los métodos mencionados más arriba pueden influir en los valores de los vectores de mediana de a', b' y c'. Además, los vectores de movimiento pueden influir en el número de vectores de movimiento a considerar cuando se determinan los vectores de movimiento candidatos. Por ejemplo, los vectores de movimiento de los bloques vecinos clasificados en vectores de movimiento disponibles pueden ser creados de nuevo mediante el escalado.
Los métodos mencionados más arriba se pueden utilizar incluso cuando no se aplica directamente la técnica de AMVP. Por ejemplo, el vector de movimiento del bloque actual se puede predecir mediante los procesos de cálculo de los vectores de movimiento a', b' y c' y calculando las medianas a partir de a', b' y c'.
En este momento, el proceso de cálculo de a', b' y c' puede emplear el mismo método que para calcular a', b' y c' en la AMVP.
Por otra parte, el método de AMVP se puede modificar y aplicarse tal como se muestra en la FIG. 9.
La FIG. 9 es un diagrama que ilustra de forma esquemática otro método para aplicar la AMVP de acuerdo con un modo de realización de la invención. Haciendo referencia a la FIG. 9, se puede utilizar una parte de los bloques vecinos del bloque actual, que se ilustra en la FIG. 8, como vectores de movimiento candidatos. En el ejemplo que se ilustra en la FIG. 9, se pueden utilizar como bloques candidatos de la AMVP un bloque situado en la parte inferior izquierda del bloque actual entre los m bloques izquierdos A0 , A1,... y Am situados en la parte inferior izquierda del bloque actual 900, un bloque Am+1 situado en la esquina inferior izquierda del bloque actual 900, un bloque B-1 situado en la esquina superior izquierda del bloque actual 900, un bloque Bn situado en la parte superior derecha del bloque actual entre n bloques superiores situados en la parte superior del bloque actual 900, y un bloque Bn+1 situado en la esquina superior derecha del bloque actual 900.
En este caso, los bloques vecinos Am, Am+1, B-1, Bn y Bn+1 del bloque actual se utilizan, de forma análoga al ejemplo que se ilustra en la FIG. 4 en el que se utilizan los bloques de esquina, el bloque inferior izquierdo 420-1 y el bloque superior derecho 440-1. En el ejemplo que se ilustra en la FIG. 9, los bloques izquierdos Am y Am+1 se escanean (o comprueban) en el orden 910 Am+1— Am y los bloques superiores B-1, Bn y Bn+1 se escanean (o comprueban) en el orden 920 Bn+1——Bn——B^.
En este momento, los vectores de movimiento (predictores de vector de movimiento: MVP) obtenidos a partir de la Expresión 6 se pueden considerar vectores de movimiento candidatos del bloque actual.
<Expresión 6>
Vectores de movimiento candidatos = {a', b', predictor temporal}}
La expresión 6 muestra los candidatos del vector de movimiento que se pueden utilizar como predictores de vector de movimiento del bloque actual en el ejemplo que se ilustra en la FIG. 9. El codificador o el decodificador puede crear la lista de predictores de vector de movimiento candidatos descrita en relación con la FIG. 3, utilizando todos o una parte de los vectores de movimiento candidatos de la Expresión 6.
Haciendo referencia a la Expresión 6, en el ejemplo que se ilustra en la FIG. 9 se considera que los vectores de movimiento de dos bloques entre los bloques vecinos espaciales del bloque actual predicen el vector de movimiento del bloque actual. El codificador o el decodificador puede considerar los vectores de movimiento de los dos bloques vecinos espaciales del bloque actual obtenidos a partir de la Expresión 6 y el vector de movimiento (predictor temporal) del bloque vecino temporal del bloque actual.
En la expresión 6, a' es el vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado (comprobación) de los bloques izquierdos Am y Am+1 del bloque actual en el orden 910 Am+1— Am y es el predictor de vector de movimiento candidato del bloque actual.
En la expresión 6, b' es el vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado (comprobación) de los bloques superiores B-1, Bn y Bn+1 del bloque actual en el orden 920 Bn+1— Bn— Bi y es el predictor de vector de movimiento candidato del bloque actual. Se puede decir que b' es un predictor de mv superior.
Cuando el índice de imagen de referencia del bloque vecino seleccionado como disponible es idéntico al índice de imagen de referencia del bloque actual, esto es, cuando la imagen de referencia del bloque vecino seleccionado es idéntica a la imagen de referencia del bloque actual, se puede utilizar el vector de movimiento del bloque correspondiente como predictor de vector de movimiento del bloque actual sin escalar el vector de movimiento. Este caso corresponde a la condición de revisión 1 o a la condición de revisión 2.
Cuando el índice de imagen de referencia del bloque vecino seleccionado como disponible es diferente del índice de imagen de referencia del bloque actual, esto es, cuando la imagen de referencia del bloque vecino seleccionado es diferente de la imagen de referencia del bloque actual, se puede utilizar el vector de movimiento del bloque correspondiente como predictor de vector de movimiento del bloque actual escalando el vector de movimiento. Este caso corresponde a la condición de revisión 3 o a la condición de revisión 4.
En la Fig. 9, los vectores de movimiento de los bloques vecinos del bloque actual pueden escanearse en varios órdenes teniendo en cuenta las condiciones de revisión en cuatro pasos y las posiciones de los bloques vecinos. En este momento, el codificador o el decodificador puede determinar independientemente el predictor de vector de movimiento candidato calculado a partir de los bloques izquierdos Am y Am+1, por ejemplo, el predictor de vector de movimiento izquierdo, y el predictor de vector de movimiento candidato calculado a partir de los bloques superiores B-1, Bn y Bn+1, por ejemplo, el predictor de vector de movimiento superior.
De modo análogo al ejemplo que se ilustra en la FIG. 8, en la Fig. 9, mientras se realiza el escaneado en el orden que se muestra en la tabla siguiente se comprueba si se cumplen las condiciones de revisión, el escaneado se detiene cuando se satisface una condición de revisión y el vector de movimiento del bloque que satisface la condición de revisión se utiliza como predictor de vector de movimiento (MVP) candidato para predecir el vector de movimiento del bloque actual sin ningún cambio o mediante escalado.
El codificador o el decodificador puede construir una lista de predictores de vector de movimiento (MVP) a partir de los predictores de vector de movimiento candidatos seleccionados. El codificador puede indicar un predictor de vector de movimiento en la lista de MVP para ser utilizado para predecir el bloque actual mediante la utilización de un índice de predictor de vector de movimiento o similar. El decodificador puede derivar el vector de movimiento del bloque actual utilizando el predictor de vector de movimiento en la lista de predictores de vector de movimiento indicado por el índice de predicción de vector de movimiento recibido del codificador.
De aquí en adelante se describirán sucesivamente el método de selección de un predictor de vector de movimiento izquierdo y el método de selección de un predictor de vector de movimiento superior. En la siguiente tabla, los números 1 a 8 representan el orden de escaneado.
La Tabla 17 muestra un ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos izquierdos Am y Am+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 17>
Figure imgf000027_0001
En el ejemplo que se muestra en la Tabla 17, se comprueba si el bloque Am satisface una de las condiciones de revisión. Cuando el bloque Am no satisface la condición de revisión 1, se comprueba si el bloque Am satisface la condición de revisión 2. El escaneado se realiza de esta forma y, cuando el bloque Am no satisface las condiciones de revisión 1 a 4, se comprueba secuencialmente si el bloque Am+1 satisface una de las condiciones de revisión 1 a 4 según el orden de escaneado.
Cuando durante el escaneado el bloque correspondiente satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 18 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos izquierdos Am y Am+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 18>
Figure imgf000028_0001
En el ejemplo que se muestra en la Tabla 18, se comprueba si el bloque Am satisface la condición de revisión 1. Cuando el bloque Am no satisface la condición de revisión 1, se comprueba si el bloque Am+1 satisface la condición de revisión 1. Cuando el bloque Am+1 no satisface la condición de revisión 1, se comprueba secuencialmente si el bloque Am satisface una de las condiciones de revisión 2 a 4. Cuando el bloque Am no satisface las condiciones de revisión 2 a 4, se comprueba secuencialmente si el bloque Am+1 satisface una de las condiciones de revisión 2 a 4 según el orden de escaneado.
Cuando durante el escaneado el bloque correspondiente satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y pueden utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 19 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos izquierdos Am y Am+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 19>
Figure imgf000028_0002
En el ejemplo que se muestra en la Tabla 19, a diferencia del orden de escaneado que se muestra en la Tabla 17, se comprueba secuencialmente si el bloque Am+1 satisface las condiciones de revisión 1 a 4. Cuando el bloque Am+1 no satisface las condiciones de revisión 1 a 4 se comprueba secuencialmente si el bloque Am satisface las condiciones de revisión 1 a 4.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 20 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos izquierdos Am y Am+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 20>
Figure imgf000029_0001
En el ejemplo que se muestra en la Tabla 20 se aplica el orden de escaneado aplicado en el ejemplo de la Tabla 18 con la prioridad asignada al bloque Am+1, a diferencia del ejemplo de la Tabla 18. Por ejemplo, en el ejemplo de la Tabla 20 se comprueba si el bloque Am+1 satisface la condición de revisión 1. Cuando el bloque Am+1 no satisface la condición de revisión 1, se comprueba si el bloque Am satisface la condición de revisión 1 según el orden de escaneado. Cuando el bloque Am no satisface la condición de revisión 1 se comprueba secuencialmente si el bloque Am+1 satisface una de las condiciones de revisión 2 a 4 según el orden de escaneado. Cuando el bloque Am+1 no satisface ninguna de las condiciones de revisión 2 a 4, se comprueba secuencialmente si el bloque Am satisface una de las condiciones de revisión 2 a 4 según el orden de escaneado.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 21 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos izquierdos Am y Am+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 21>
Figure imgf000029_0002
En el ejemplo que se muestra en la Tabla 21, en primer lugar se comprueba si el bloque Am+i satisface la condición de revisión 1. Cuando el bloque Am+1 no satisface la condición de revisión 1 se comprueba si el bloque Am satisface la condición de revisión 1 según el orden de escaneado. Cuando el bloque Am no satisface la condición de revisión 1 se comprueba si el bloque Am+1 satisface la condición de revisión 2 según el orden de escaneado. Cuando el bloque Am+1 no satisface la condición de revisión 2 se comprueba si el bloque Am satisface la condición de revisión 2 según el orden de escaneado. Cuando el bloque Am no satisface la condición de revisión 2 se comprueba secuencialmente si el bloque Am+1 satisface una de las condiciones de revisión 3 y 4 y si el bloque Am satisface una de las condiciones de revisión 3 y 4.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 22 muestra otro ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos izquierdos Am y Am+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 22>
Figure imgf000030_0001
En la Tabla 22, se comprueba secuencialmente si cada uno de los bloques satisface dos condiciones de revisión. Específicamente, el codificador o el decodificador comprueba en primer lugar si el bloque Am+1 satisface la condición de revisión 1. Cuando el bloque Am+1 no satisface la condición de revisión 1, el codificador o el decodificador comprueba si el bloque Am+1 satisface la condición de revisión 2. Cuando el bloque Am+1 no satisface la condición de revisión 2, el codificador o el decodificador comprueba si el bloque Am satisface la condición de revisión 1. Cuando el bloque Am no satisface la condición de revisión 1, el codificador o el decodificador comprueba si el bloque Am satisface la condición de revisión 2. Cuando el bloque Am no satisface la condición de revisión 2, el codificador o el decodificador comprueba si el bloque Am+1 satisface la condición de revisión 3. Cuando el bloque Am+1 no satisface la condición de revisión 3, el codificador o el decodificador comprueba si el bloque Am+1 satisface la condición de revisión 4. Cuando el bloque Am+1 no satisface la condición de revisión 4, el codificador o el decodificador comprueba si el bloque Am satisface la condición de revisión 3. Cuando el bloque Am no satisface la condición de revisión 3, el codificador o el decodificador comprueba si el bloque Am satisface la condición de revisión 4.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
Al igual que en los ejemplos de las Tablas 17 a 22, para calcular el predictor de vector de movimiento candidato del bloque actual se pueden aplicar diferentes órdenes de escaneado de los bloques Am y Am+1 vecinos izquierdos del bloque actual, esto es, el vector de movimiento candidato izquierdo (mv candidato izquierdo).
En este momento, se puede omitir o suprimir una parte del escaneado con el fin de reducir el número de casos en los que se realiza el escaneado y conseguir una mejora desde el punto de vista de la complejidad. Como se puede ver en el ejemplo de la Tabla 17, el escaneado se realiza únicamente en el orden 1 a 5 y el escaneado correspondiente al orden 6 a 8 se puede omitir. De modo análogo, en los ejemplos de las Tablas 18 a 22 se puede omitir el escaneado con las prioridades posteriores (por ejemplo, el orden 5 a 8, el orden 6 a 8 y el orden 7 a 8 u 8) con el fin de reducir la complejidad de los procesos.
Se puede conseguir una mejora en complejidad realizando el procedimiento de comprobar si un bloque satisface la condición de revisión por condiciones de revisión. Por ejemplo, en la Tabla 22, se revisan secuencialmente dos condiciones de revisión para cada bloque.
En los ejemplos de la Tabla 21 y la Tabla 22, se da prioridad a la condición de revisión 1 y la condición de revisión 2. Tal como se ha descrito más arriba, como el bloque correspondiente a la condición de revisión 1 y la condición de revisión 2 tiene una imagen de referencia idéntica a la del bloque actual, se puede utilizar el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual sin escalado. Por consiguiente, es posible reducir la frecuencia de escalado y la complejidad.
De aquí en adelante se describe el método de selección de un predictor de vector de movimiento candidato a partir de los bloques vecinos superiores B-1, Bn y Bn+1 del bloque actual, esto es, el predictor de vector de movimiento superior. El método de selección del predictor de vector de movimiento candidato del bloque actual a partir de los bloques vecinos superiores es básicamente el mismo que el método de selección del predictor de vector de movimiento candidato del bloque actual a partir de los bloques vecinos izquierdos, excepto que hay que escanear tres bloques. En las tablas siguientes, los números 1 a 12 representan el orden de escaneado.
La Tabla 23 muestra un ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos superiores B-1, Bn y Bn+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 23>
Figure imgf000031_0001
En el ejemplo que se muestra en la Tabla 23, se comprueba si el bloque Bn+1 satisface una de las condiciones de revisión. Cuando el bloque Bn+1 no satisface la condición de revisión 1, se comprueba si el bloque Bn+1 satisface la condición de revisión 2. Al realizar el escaneado de este modo, cuando el bloque Bn+1 no satisface las condiciones de revisión 1 a 4, se comprueba secuencialmente si el bloque Bn satisface una de las condiciones de revisión 1 a 4. Cuando el bloque Bn no satisface ninguna de las condiciones de revisión 1 a 4, se comprueba secuencialmente si el bloque B-1 satisface una de las condiciones de revisión 1 a 4.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 24 muestra un ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos superiores B-1, Bn y Bn+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 24>
Figure imgf000032_0001
En el ejemplo que se muestra en la Tabla 24, se comprueba si el bloque Bn+i satisface la condición de revisión 1. Cuando el bloque Bn+1 no satisface la condición de revisión 1, se comprueba si el bloque Bn satisface la condición de revisión 1. Cuando el bloque Bn no satisface la condición de revisión 1, se comprueba si el bloque B-1 satisface la condición de revisión 1. Cuando el bloque B-1 no satisface la condición de revisión 1, se comprueba secuencialmente si los bloques cumplen la condición de revisión 2 en el orden de Bn+1 a B-1. Cuando los bloques no satisfacen la condición de revisión 2, se comprueba secuencialmente si un bloque que satisface una de las condiciones de revisión 1 a 4 está presente en los bloques Bn+1, Bn, B-1 en este orden de escaneado.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 25 muestra un ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos superiores B-1, Bn y Bn+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 25>
Figure imgf000032_0002
En el ejemplo que se muestra en la Tabla 25, se comprueba si los bloques satisfacen la condición de revisión 1 en el orden Bn+1, Bn, B-1. Cuando no hay ningún bloque vecino superior que satisfaga la condición de revisión 1, se comprueba secuencialmente si el bloque Bn+1 satisface las condiciones de revisión 2 a 4. Cuando el bloque Bn+1 no satisface las condiciones de revisión 2 a 4, se comprueba secuencialmente si el bloque Bn satisface una de las condiciones de revisión 2 a 4. Cuando el bloque Bn no satisface las condiciones de revisión 2 a 4, se comprueba secuencialmente si el bloque B-1 satisface una de las condiciones de revisión 2 a 4.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 26 muestra un ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos superiores B-1, Bn y Bn+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 26>
Figure imgf000033_0001
En el ejemplo que se muestra en la Tabla 26, a diferencia del ejemplo de la Tabla 25, se comprueba secuencialmente si los bloques Bn+1, Bn y B-1 satisfacen las respectivas condiciones de revisión, y se comprueba secuencialmente si cada uno de los bloques satisface las condiciones de revisión 3 y 3. Por ejemplo, se comprueba si la condición de revisión 1 se satisface en el orden Bn+1, Bn, B-1. Cuando no hay ningún bloque vecino superior que satisfaga la condición de revisión 1, se comprueba si la condición de revisión 2 se satisface en el orden de Bn+1, Bn, B-1. Cuando no hay ningún bloque superior que satisfaga una de las condiciones de revisión 1 y 2, se comprueba secuencialmente si el bloque Bn+1 satisface una de las condiciones de revisión 3 y 4. Cuando el bloque Bn+1 no satisface las condiciones de revisión 3 y 4, se comprueba secuencialmente si el bloque Bn satisface una de las condiciones de revisión 3 y 4. Cuando el bloque Bn no satisface las condiciones de revisión 2 a 4, se comprueba secuencialmente si el bloque B-1 satisface una de las condiciones de revisión 3 y 4.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
La Tabla 27 muestra un ejemplo del método de utilización del vector de movimiento de un bloque, que primero se comprueba si está disponible durante el escaneado secuencial de los bloques vecinos superiores B-1, Bn y Bn+1 del bloque actual 900 en la FIG. 9 según el orden de prioridad de las condiciones de revisión, como predictor de vector de movimiento candidato espacial del bloque actual sin ningún cambio o mediante escalado.
<Tabla 27>
Figure imgf000033_0002
En el ejemplo que se muestra en la Tabla 27, de forma análoga al ejemplo de la Tabla 22, se comprueba si cada uno de los bloques satisface dos condiciones de revisión. Específicamente, el codificador o el decodificador comprueba secuencialmente si el bloque Bn+1 satisface una de las condiciones de revisión 1 y 2. Cuando el bloque Bn+1 no satisface las condiciones de revisión 1 y 2, se comprueba secuencialmente si el bloque Bn satisface una de las condiciones de revisión 1 y 2. Cuando el bloque Bn no satisface las condiciones de revisión 1 y 2, se comprueba secuencialmente si el bloque B-1 satisface una de las condiciones de revisión 1 y 2. Cuando los bloques superiores no satisfacen las condiciones de revisión 1 y 2, se comprueba secuencialmente si el bloque Bn+1 satisface una de las condiciones de revisión 3 y 4. Cuando el bloque Bn+1 no satisface las condiciones de revisión 3 y 4, se comprueba secuencialmente si el bloque Bn satisface una de las condiciones de revisión 3 y 4. Cuando el bloque Bn no satisface las condiciones de revisión 3 y 4, se comprueba secuencialmente si el bloque B-i satisface una de las condiciones de revisión 3 y 4.
Cuando durante el escaneado se encuentra un bloque que satisface una de las condiciones de revisión, el codificador o el decodificador detiene el escaneado y selecciona el vector de movimiento del bloque correspondiente como predictor de vector de movimiento candidato del bloque actual. Si es necesario, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. Por ejemplo, cuando la imagen de referencia del bloque vecino es diferente de la imagen de referencia del bloque actual, el codificador o el decodificador puede escalar el vector de movimiento del bloque vecino correspondiente y puede utilizar el vector de movimiento escalado como predictor de vector de movimiento candidato. En este momento se puede utilizar como método de escalado el método indicado en la Expresión 1 o en la Expresión 2.
Como se puede ver a partir de las Tablas 23 a 27, de forma similar al cálculo del predictor de vector de movimiento candidato del bloque actual a partir de los bloques izquierdos del bloque actual, para calcular el predictor de vector de movimiento candidato del bloque actual a partir de los bloques superiores del bloque actual se pueden aplicar diferentes órdenes de escaneado.
En el método de cálculo del predictor de vector de movimiento candidato del bloque actual a partir de los bloques superiores, esto es, el vector de movimiento superior candidato, para reducir la complejidad se puede reducir el número de casos de realización del escaneado. Por ejemplo, se puede realizar el escaneado solo en el caso del escaneado para comprobar si se satisface la condición de revisión 1, o en el caso del escaneado para realizar una primera operación de escaneado para cada una de las condiciones de revisión. En este caso, en el ejemplo que se ilustra en la FIG. 23 se puede omitir el escaneado en el orden 6, 78, 10, 11 y 12:
Los ejemplos de las Tablas 26 y 27 muestran los métodos que dan prioridad a las condiciones de revisión 1 y 2, de forma análoga a los ejemplos de las Tablas 21 y 22. Como el bloque correspondiente a las condiciones de revisión 1 y 2 se refiere a una imagen de referencia idéntica a la del bloque actual (por ejemplo, la unidad de predicción actual), se puede utilizar el vector de movimiento del mismo como predictor de vector de movimiento candidato del bloque actual sin escalado. Así pues, es posible reducir la complejidad al escalar un vector de movimiento.
Por otra parte, además del método de escaneado mencionado más arriba se pueden aplicar varias combinaciones de las condiciones de revisión, varios órdenes de las condiciones de revisión y el orden de las posiciones de los bloques. Los métodos de escaneado mencionados más arriba se pueden aplicar en combinación.
En esta descripción se utiliza el término "predictor de vector de movimiento", pero esto es únicamente por conveniencia para facilitar la explicación, y el predictor de vector de movimiento se puede llamar un vector de movimiento predicho (PMV) o algo similar.
En las FIG. 4, 5, 7, 8 y 9, el bloque actual y los bloques vecinos del bloque actual pueden ser unidades de predicción. En las FIG. 4, 5, 7, 8 y 9, el bloque actual y los bloques vecinos del bloque actual pueden ser unidades de codificación. Además, en las FIG. 4, 5, 7, 8 y 9, el bloque actual y los bloques vecinos del bloque actual pueden ser unidades de transformación. Por consiguiente, los detalles descritos en relación con las FIG. 4, 5, 7, 8 y 9 se pueden aplicar de forma análoga a aquellos casos en los que el bloque actual y los bloques vecinos del bloque actual son unidades de codificación o unidades de transformación.
Por otra parte, esta descripción explica que los procesos para seleccionar un predictor de vector de movimiento candidato y realizar la predicción en el bloque actual utilizando el predictor de vector de movimiento candidato seleccionado son realizados por el codificador o el decodificador, pero esto es únicamente por conveniencia para facilitar la explicación. Los procesos para seleccionar un predictor de vector de movimiento candidato y realizar la predicción en el bloque actual utilizando el predictor de vector de movimiento candidato seleccionado pueden ser realizados por un módulo o unidad predeterminado en el codificador o el decodificador. Por ejemplo, los procesos para seleccionar un predictor de vector de movimiento candidato y realizar la predicción en el bloque actual utilizando el predictor de vector de movimiento candidato seleccionado realizados por el codificador o el decodificador pueden ser realizados por el módulo de predicción en el codificador o el decodificador.
La FIG. 10 es un diagrama de flujo que ilustra de forma esquemática un método para seleccionar un predictor de vector de movimiento del bloque actual de acuerdo con la invención. Los pasos que se ilustran en la FIG. 10 pueden ser realizados por el codificador o el decodificador. El módulo de predicción del codificador o el decodificador puede llevar a cabo los pasos que se ilustran en la FIG. 10. Aquí, únicamente por conveniencia para facilitar la explicación, se supone que la unidad de predicción en el codificador o el decodificador realiza los pasos que se ilustran en la FIG. 10.
Haciendo referencia a la FIG. 10, el módulo de predicción selecciona predictores de vector de movimiento candidatos del bloque actual (S1010). El módulo de predicción puede seleccionar el vector de movimiento de un primer bloque que se encuentra disponible entre los bloques vecinos del bloque actual como predictor de vector de movimiento candidato del bloque actual. En este momento, el módulo de predicción puede realizar el proceso de búsqueda después de clasificar los bloques vecinos del bloque actual en grupos predeterminados, y puede seleccionar el predictor de vector de movimiento candidato del bloque actual para cada grupo.
En este momento, el bloque disponible puede ser un bloque a codificar/decodificar en modo de predicción inter, y puede ser un bloque que satisface las condiciones de revisión mencionadas más arriba. Los métodos para clasificar los bloques vecinos del bloque actual son tal como se han descrito más arriba.
El módulo de predicción puede escalar el vector de movimiento del primer bloque que se encuentra disponible y puede seleccionar el vector de movimiento escalado como predictor de vector de movimiento candidato del bloque actual. Por ejemplo, el módulo de predicción puede escalar el vector de movimiento del bloque correspondiente cuando el primer bloque que se encuentra disponible satisface la condición de revisión 3 ó 4. El método específico de escalado es tal como se ha descrito más arriba.
Cuando el número de predictores de vector de movimiento candidatos que se pueden obtener de los bloques vecinos espaciales es menor que un número predeterminado, el módulo de predicción puede obtener los predictores de vector de movimiento candidatos a partir de bloques vecinos temporales.
El módulo de predicción selecciona un predictor de vector de movimiento del bloque actual entre los predictores de vector de movimiento candidatos (S1020). El módulo de predicción construye una lista de predictores de vector de movimiento utilizando los predictores de vector de movimiento candidatos seleccionados. El módulo de predicción del codificador selecciona de la lista de predictores de vector de movimiento un predictor de vector de movimiento que minimiza la cantidad de datos a transmitir. El módulo de predicción del decodificador selecciona de la lista de predictores de vector de movimiento el predictor de vector de movimiento indicado por la información de predictor de vector de movimiento (por ejemplo, el índice de predictor de vector de movimiento) transmitida desde el codificador, y realiza la predicción en el bloque actual.
Aunque los métodos del sistema de ejemplo mencionados anteriormente se han descrito mediante una serie de pasos o diagramas de flujo, algunos pasos se pueden realizar en un orden diferente del que se ha descrito o al mismo tiempo, tal como se ha descrito más arriba. Los modos de realización mencionados más arriba incluyen varios ejemplos.

Claims (1)

  1. REIVINDICACIONES
    1. Un método de decodificación de datos de vídeo, comprendiendo dicho método:
    derivar unos bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) para seleccionar un predictor de vector de movimiento del bloque actual (900);
    determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una primera condición consistente en que el bloque tiene una imagen de referencia idéntica a la del bloque actual (900) y una lista de imágenes de referencia idéntica a la del bloque actual (900);
    determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una segunda condición consistente en que el bloque tiene una imagen de referencia idéntica a la del bloque actual (900) y una lista de imágenes de referencia diferente de la del bloque actual (900);
    determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una tercera condición consistente en que el bloque tiene una imagen de referencia diferente de la del bloque actual (900) y una lista de imágenes de referencia idéntica a la del bloque actual (900), o satisface una cuarta condición consistente en que el bloque tiene una imagen de referencia diferente de la del bloque actual (900) y una lista de imágenes de referencia diferente de la del bloque actual (900);
    (S310) determinar un primer predictor de vector de movimiento candidato a partir de un primer bloque que es el primero que satisface una de las condiciones primera, segunda, tercera o cuarta en el primer grupo de candidatos, en donde cuando el primer bloque satisface la primera condición o la segunda condición se utiliza un vector de movimiento del primer bloque como primer predictor de vector de movimiento candidato, en donde cuando el primer bloque satisface la tercera condición o la cuarta condición se utiliza un vector de movimiento escalado del primer bloque como primer predictor de vector de movimiento candidato, en donde el vector de movimiento escalado del primer bloque se deriva mediante un escalado realizado en función de la distancia entre la imagen actual a la que pertenece el bloque actual y una imagen de referencia del bloque actual y la distancia entre la imagen actual y la imagen de referencia del primer bloque que satisface la tercera condición o la cuarta condición;
    (S310) determinar un segundo predictor de vector de movimiento candidato a partir de un segundo bloque que es el primero que satisface una de las condiciones primera, segunda, tercera o cuarta en el segundo grupo de candidatos, en donde cuando el segundo bloque satisface la primera condición o la segunda condición se utiliza un vector de movimiento del segundo bloque como segundo predictor de vector de movimiento candidato, en donde cuando el segundo bloque satisface la tercera condición o la cuarta condición se utiliza un vector de movimiento escalado del segundo bloque como segundo predictor de vector de movimiento candidato, en donde el vector de movimiento escalado del segundo bloque se deriva mediante un escalado realizado en función de la distancia entre la imagen actual a la que pertenece el bloque actual y una imagen de referencia del bloque actual y la distancia entre la imagen actual y una imagen de referencia del segundo bloque que satisface la tercera condición o la cuarta condición;
    (S320) seleccionar el predictor de vector de movimiento del bloque actual (900) entre el primer predictor de vector de movimiento candidato y el segundo predictor de vector de movimiento candidato;
    derivar la diferencia del vector de movimiento del bloque actual (900) a partir de la información recibida sobre la diferencia del vector de movimiento; y
    (S330) derivar el vector de movimiento del bloque actual (900) a partir del predictor de vector de movimiento seleccionado y la diferencia del vector de movimiento;
    caracterizado por que
    los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) incluyen, como primer grupo de candidatos, un bloque vecino izquierdo (Am) y un bloque vecino inferior izquierdo (Am+1) del bloque actual (900),
    los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) incluyen, como segundo grupo de candidatos, un bloque vecino superior derecho (Bn+1), un bloque vecino superior (Bn) y un bloque vecino superior izquierdo (B-1) del bloque actual (900),
    en el primer grupo de candidatos se comprueba si se satisface o no la primera condición o la segunda condición desde el bloque vecino inferior izquierdo (Am+1) al bloque vecino izquierdo (Am),
    en el segundo grupo de candidatos se comprueba si se satisface o no la primera condición o la segunda condición desde el bloque vecino superior derecho (Bn+1) al bloque vecino superior (Bn) y al bloque vecino superior izquierdo (B-1),
    la primera condición se comprueba con prioridad respecto a la segunda condición,
    cuando el bloque vecino inferior izquierdo (Am+i) no satisface tanto la primera condición como la segunda condición, se comprueba si el bloque vecino izquierdo (Am) satisface la primera condición o la segunda condición, y
    cuando ni el bloque vecino inferior izquierdo (Am+1) ni el bloque vecino izquierdo (Am) satisfacen la primera condición ni la segunda condición, se comprueba si el bloque vecino inferior izquierdo (Am+1) satisface la tercera condición o la cuarta condición, y
    la tercera condición se comprueba con prioridad respecto a la cuarta condición.
    2. El método de la reivindicación 1, en el que, en el primer grupo de candidatos se comprueba si se satisface o no la tercera condición o la cuarta condición desde el bloque vecino inferior izquierdo (Am+1) al bloque vecino izquierdo (Am).
    3. Un dispositivo (200) de decodificación de vídeo que comprende medios configurados para poner en práctica el método de una cualquiera de las reivindicaciones 1 a 2.
    4. Un método de codificación de vídeo, que comprende:
    derivar unos bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) para seleccionar un predictor de vector de movimiento del bloque actual (900);
    determinar si uno cualquiera de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una primera condición consistente en que el bloque tiene una imagen de referencia idéntica a la del bloque actual (900) y una lista de imágenes de referencia idéntica a la del bloque actual (900);
    determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una segunda condición consistente en que el bloque tiene una imagen de referencia idéntica a la del bloque actual (900) y una lista de imágenes de referencia diferente de la del bloque actual (900);
    determinar si alguno de los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) satisface una tercera condición consistente en que el bloque tiene una imagen de referencia diferente de la del bloque actual (900) y una lista de imágenes de referencia idéntica a la del bloque actual (900), o satisface una cuarta condición consistente en que el bloque tiene una imagen de referencia diferente de la del bloque actual (900) y una lista de imágenes de referencia diferente de la del bloque actual (900);
    (S310) determinar un primer predictor de vector de movimiento candidato a partir de un primer bloque que es el primero que satisface una de las condiciones primera, segunda, tercera o cuarta en el primer grupo de candidatos, en donde cuando el primer bloque satisface la primera condición o la segunda condición se utiliza un vector de movimiento del primer bloque como primer predictor de vector de movimiento candidato, en donde cuando el primer bloque satisface la tercera condición o la cuarta condición se utiliza un vector de movimiento escalado del primer bloque como primer predictor de vector de movimiento candidato, en donde el vector de movimiento escalado del primer bloque se deriva mediante un escalado realizado en función de la distancia entre la imagen actual a la que pertenece el bloque actual y una imagen de referencia del bloque actual y la distancia entre la imagen actual y la imagen de referencia del primer bloque que satisface la tercera condición o la cuarta condición;
    (S310) determinar un segundo predictor de vector de movimiento candidato a partir de un segundo bloque que es el primero que satisface una de las condiciones primera, segunda, tercera o cuarta en el segundo grupo de candidatos, en donde cuando el segundo bloque satisface la primera condición o la segunda condición se utiliza un vector de movimiento del segundo bloque como segundo predictor de vector de movimiento candidato, en donde cuando el segundo bloque satisface la tercera condición o la cuarta condición se utiliza un vector de movimiento escalado del segundo bloque como segundo predictor de vector de movimiento candidato, en donde el vector de movimiento escalado del segundo bloque se deriva mediante un escalado realizado en función de la distancia entre la imagen actual a la que pertenece el bloque actual y una imagen de referencia del bloque actual y la distancia entre la imagen actual y una imagen de referencia del segundo bloque que satisface la tercera condición o la cuarta condición;
    (S320) seleccionar el predictor de vector de movimiento del bloque actual (900) entre el primer predictor de vector de movimiento candidato y el segundo predictor de vector de movimiento candidato;
    derivar la diferencia del vector de movimiento del bloque actual (900) en función del predictor de vector de movimiento del bloque actual (900); y
    codificar la información de vídeo incluyendo información sobre la diferencia del vector de movimiento,
    caracterizado por que
    los bloques vecinos (Am, Am+i, Bn+i, Bn, B-i) incluyen, como primer grupo de candidatos, un bloque vecino izquierdo (Am) y un bloque vecino inferior izquierdo (Am+1) del bloque actual (900),
    los bloques vecinos (Am, Am+1, Bn+1, Bn, B-1) incluyen, como segundo grupo de candidatos, un bloque vecino superior derecho (Bn+1), un bloque vecino superior (Bn) y un bloque vecino superior izquierdo (B-1) del bloque actual (900),
    en el primer grupo de candidatos se comprueba si se satisface o no la primera condición o la segunda condición desde el bloque vecino inferior izquierdo (Am+1) al bloque vecino izquierdo (Am),
    en el segundo grupo de candidatos se comprueba si se satisface o no la primera condición o la segunda condición desde el bloque vecino superior derecho (Bn+1) al bloque vecino superior (Bn) y al bloque vecino superior izquierdo (B-1),
    la primera condición se comprueba con prioridad respecto a la segunda condición,
    cuando el bloque vecino inferior izquierdo (Am+1) no satisface tanto la primera condición como la segunda condición, se comprueba si el bloque vecino izquierdo (Am) satisface la primera condición o la segunda condición, y
    cuando ni el bloque vecino inferior izquierdo (Am+1) ni el bloque vecino izquierdo (Am) satisfacen la primera condición ni la segunda condición, se comprueba si el bloque vecino inferior izquierdo (Am+1) satisface la tercera condición o la cuarta condición, y
    la tercera condición se comprueba con prioridad respecto a la cuarta condición.
    5. El método de la reivindicación 4, en el que, en el primer grupo de candidatos, se comprueba si se satisface o no la tercera condición o la cuarta condición desde el bloque vecino inferior izquierdo (Am+1) al bloque vecino izquierdo (Am).
    6. Un equipo (100) de codificación de vídeo, que comprende medios configurados para poner en práctica el método de una cualquiera de las reivindicaciones 4 a 5.
ES12760302T 2011-03-21 2012-03-21 Método para seleccionar un predictor de vector de movimiento y un dispositivo que lo utiliza Active ES2770437T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161454995P 2011-03-21 2011-03-21
US201161466446P 2011-03-22 2011-03-22
PCT/KR2012/001999 WO2012128540A2 (ko) 2011-03-21 2012-03-21 움직임 벡터 예측자 선택 방법 및 이를 이용하는 장치

Publications (1)

Publication Number Publication Date
ES2770437T3 true ES2770437T3 (es) 2020-07-01

Family

ID=46879891

Family Applications (3)

Application Number Title Priority Date Filing Date
ES21194514T Active ES2944310T3 (es) 2011-03-21 2012-03-21 Selección de un predictor de vector de movimiento
ES12760302T Active ES2770437T3 (es) 2011-03-21 2012-03-21 Método para seleccionar un predictor de vector de movimiento y un dispositivo que lo utiliza
ES19207944T Active ES2900107T3 (es) 2011-03-21 2012-03-21 Método para seleccionar un predictor de vector de movimiento

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES21194514T Active ES2944310T3 (es) 2011-03-21 2012-03-21 Selección de un predictor de vector de movimiento

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES19207944T Active ES2900107T3 (es) 2011-03-21 2012-03-21 Método para seleccionar un predictor de vector de movimiento

Country Status (14)

Country Link
US (6) US9374598B2 (es)
EP (4) EP2690870B1 (es)
JP (8) JP5981528B2 (es)
KR (4) KR101892165B1 (es)
CN (5) CN107948657B (es)
DK (1) DK2690870T3 (es)
ES (3) ES2944310T3 (es)
FI (2) FI3937497T3 (es)
HR (1) HRP20230425T1 (es)
HU (3) HUE056367T2 (es)
PL (4) PL4184918T3 (es)
PT (1) PT2690870T (es)
SI (3) SI3627839T1 (es)
WO (1) WO2012128540A2 (es)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8406301B2 (en) 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
CN103392340B (zh) * 2011-03-14 2017-02-08 寰发股份有限公司 推导运动向量预测子的方法与装置
WO2012128540A2 (ko) 2011-03-21 2012-09-27 엘지전자 주식회사 움직임 벡터 예측자 선택 방법 및 이를 이용하는 장치
BR122020013893B1 (pt) 2011-05-31 2022-08-23 JVC Kenwood Corporation Dispositivo de codificação de imagem móvel e método de codificação de imagem móvel
CN106791834B (zh) 2011-06-14 2020-07-10 三星电子株式会社 对图像进行解码的方法和设备
KR20120140592A (ko) 2011-06-21 2012-12-31 한국전자통신연구원 움직임 보상의 계산 복잡도 감소 및 부호화 효율을 증가시키는 방법 및 장치
WO2012177052A2 (ko) 2011-06-21 2012-12-27 한국전자통신연구원 인터 예측 방법 및 그 장치
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
EP4228264A1 (en) 2011-06-23 2023-08-16 Sun Patent Trust Image decoding device, image encoding device
US9106919B2 (en) 2011-06-24 2015-08-11 Panasonic Intellectual Property Corporation Of America Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
JPWO2012176465A1 (ja) 2011-06-24 2015-02-23 パナソニック株式会社 復号方法及び復号装置
EP3739884B1 (en) * 2011-06-27 2021-08-04 Samsung Electronics Co., Ltd. Encoding and decoding motion information
CA2842646C (en) 2011-06-27 2018-09-04 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CA2837535C (en) 2011-06-28 2018-09-04 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
MX2013010892A (es) 2011-06-29 2013-12-06 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
WO2013001769A1 (ja) 2011-06-30 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
WO2013001770A1 (ja) 2011-06-30 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
CN106851295B (zh) 2011-07-11 2019-10-18 太阳专利托管公司 编码方法及编码装置
JP5958165B2 (ja) * 2011-08-12 2016-07-27 株式会社Jvcケンウッド 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法及び受信プログラム
US9300975B2 (en) * 2011-09-11 2016-03-29 Texas Instruments Incorporated Concurrent access shared buffer in a video encoder
KR20130030181A (ko) 2011-09-16 2013-03-26 한국전자통신연구원 움직임 벡터 예측기를 이용한 움직임 벡터 부호화/복호화 방법 및 장치
WO2013162258A1 (ko) 2012-04-23 2013-10-31 삼성전자 주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
US9485515B2 (en) * 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US10708588B2 (en) * 2013-06-19 2020-07-07 Apple Inc. Sample adaptive offset control
EP3021588A4 (en) * 2013-07-12 2017-12-06 Samsung Electronics Co., Ltd. Video encoding method and apparatus therefor using modification vector inducement, video decoding method and apparatus therefor
US20150036747A1 (en) * 2013-07-30 2015-02-05 Electronics And Telecommunications Research Institute Encoding and decoding apparatus for concealing error in video frame and method using same
EP3058736B1 (en) 2013-10-14 2019-02-27 Microsoft Technology Licensing, LLC Encoder-side options for intra block copy prediction mode for video and image coding
KR102257269B1 (ko) 2013-10-14 2021-05-26 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
KR102353787B1 (ko) 2014-01-03 2022-01-19 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩/디코딩에서의 블록 벡터 예측
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
EP3085085A4 (en) * 2014-01-29 2017-11-08 MediaTek Inc. Method and apparatus for adaptive motion vector precision
KR101908205B1 (ko) * 2014-02-21 2018-10-15 미디어텍 싱가폴 피티이. 엘티디. 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법
RU2657210C2 (ru) 2014-03-04 2018-06-08 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Зеркальное отображение блоков и режим пропуска в интра-основанном на копии блока предсказании
US10785486B2 (en) 2014-06-19 2020-09-22 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
MX2017004211A (es) 2014-09-30 2017-11-15 Microsoft Technology Licensing Llc Reglas para modos de prediccion intra-imagen cuando se habilita el procesamiento paralelo de onda frontal.
CN112087629B (zh) * 2014-09-30 2021-08-20 华为技术有限公司 图像预测方法、装置及计算机可读存储介质
US9992512B2 (en) * 2014-10-06 2018-06-05 Mediatek Inc. Method and apparatus for motion vector predictor derivation
KR102551609B1 (ko) * 2014-11-27 2023-07-05 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2016085231A1 (ko) 2014-11-27 2016-06-02 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2016104179A1 (ja) * 2014-12-26 2016-06-30 ソニー株式会社 画像処理装置および画像処理方法
JP2015111910A (ja) * 2015-01-30 2015-06-18 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
CN107925774A (zh) 2015-08-24 2018-04-17 Lg 电子株式会社 基于间预测模式的图像处理方法及其装置
WO2017039117A1 (ko) * 2015-08-30 2017-03-09 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2017076221A1 (en) 2015-11-05 2017-05-11 Mediatek Inc. Method and apparatus of inter prediction using average motion vector for video coding
WO2017082443A1 (ko) * 2015-11-13 2017-05-18 엘지전자 주식회사 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치
WO2017107072A1 (en) * 2015-12-22 2017-06-29 Realnetworks, Inc. Motion vector selection and prediction in video coding systems and methods
EP3264768A1 (en) 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with adaptive motion information refinement
KR20180057789A (ko) * 2016-11-22 2018-05-31 광운대학교 산학협력단 전방향 카메라에서 효과적인 차분 움직임 백터 전송방법을 이용한 비디오 코딩 방법 및 방법 및 장치
US11240526B2 (en) 2017-01-02 2022-02-01 Industry-University Cooperation Foundation Hanyang University Method and apparatus for decoding image using interpicture prediction
KR102586198B1 (ko) * 2017-01-02 2023-10-06 한양대학교 산학협력단 화면 간 예측을 이용한 영상 복호화 방법 및 장치
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
KR102302671B1 (ko) 2017-07-07 2021-09-15 삼성전자주식회사 적응적 움직임 벡터 해상도로 결정된 움직임 벡터의 부호화 장치 및 부호화 방법, 및 움직임 벡터의 복호화 장치 및 복호화 방법
CN116996668A (zh) * 2017-09-28 2023-11-03 三星电子株式会社 编码方法和装置以及解码方法和装置
BR112020004381A2 (pt) 2017-09-28 2020-09-08 Samsung Electronics Co., Ltd. método de decodificação de vídeo, aparelho de decodificação de vídeo, método de codificação de vídeo, e aparelho de codificação de vídeo
US11057640B2 (en) 2017-11-30 2021-07-06 Lg Electronics Inc. Image decoding method and apparatus based on inter-prediction in image coding system
US10931963B2 (en) 2017-12-07 2021-02-23 Tencent America LLC Method and apparatus for video coding
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US11394992B2 (en) * 2018-03-14 2022-07-19 Hfi Innovation Inc. Methods and apparatuses of generating average candidates in video coding systems
WO2019194462A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
JP7088606B2 (ja) 2018-04-02 2022-06-21 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 動画処理方法、画像処理装置、プログラム、符号化デバイス、及び復号化デバイス
CN117640949A (zh) 2018-05-23 2024-03-01 松下电器(美国)知识产权公司 解码装置和编码装置
WO2019223790A1 (en) * 2018-05-25 2019-11-28 Mediatek Inc. Method and apparatus of affine mode motion-vector prediction derivation for video coding system
US10587885B2 (en) * 2018-06-04 2020-03-10 Tencent America LLC Method and apparatus for merge mode with additional middle candidates in video coding
WO2019234607A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and affine
WO2019237287A1 (zh) * 2018-06-13 2019-12-19 华为技术有限公司 视频图像的帧间预测方法、装置及编解码器
CN114125450B (zh) * 2018-06-29 2023-11-17 北京字节跳动网络技术有限公司 一种用于处理视频数据的方法、装置和计算机可读介质
JP7256265B2 (ja) 2018-06-29 2023-04-11 北京字節跳動網絡技術有限公司 ルックアップテーブルの更新:fifo、制限されたfifo
EP3794824A1 (en) 2018-06-29 2021-03-24 Beijing Bytedance Network Technology Co. Ltd. Conditions for updating luts
JP7137008B2 (ja) 2018-06-29 2022-09-13 北京字節跳動網絡技術有限公司 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念
CN110662053B (zh) 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 使用查找表的视频处理方法、装置和存储介质
US11019357B2 (en) * 2018-08-07 2021-05-25 Qualcomm Incorporated Motion vector predictor list generation
US11503329B2 (en) * 2018-08-17 2022-11-15 Hfi Innovation Inc. Method and apparatus of simplified sub-mode for video coding
CN110868601B (zh) * 2018-08-28 2024-03-15 华为技术有限公司 帧间预测方法、装置以及视频编码器和视频解码器
US10958932B2 (en) 2018-09-12 2021-03-23 Qualcomm Incorporated Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks
IL311160A (en) * 2018-09-17 2024-04-01 Samsung Electronics Co Ltd A method for encoding and decoding traffic information and a device for encoding and decoding traffic information
CN117998099A (zh) * 2018-09-21 2024-05-07 日本放送协会 图像解码装置及程序产品
KR20210089155A (ko) * 2018-11-10 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 페어와이즈 평균 후보 계산에서 라운딩
JP7418152B2 (ja) * 2018-12-17 2024-01-19 キヤノン株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法
CN113455002A (zh) * 2018-12-28 2021-09-28 瑞典爱立信有限公司 生成运动向量预测器列表
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
CN111953997A (zh) * 2019-05-15 2020-11-17 华为技术有限公司 候选运动矢量列表获取方法、装置及编解码器
KR102437696B1 (ko) * 2019-06-13 2022-08-26 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 코딩을 위한 모션 벡터 예측
MX2021015524A (es) 2019-06-14 2022-02-03 Lg Electronics Inc Metodo y dispositivo de codificacion de imagenes usando diferencias de vectores de movimiento.
CN110460859B (zh) * 2019-08-21 2022-03-25 浙江大华技术股份有限公司 历史运动矢量列表的使用方法、编解码器及存储装置
CN110213590B (zh) * 2019-06-25 2022-07-12 浙江大华技术股份有限公司 时域运动矢量获取、帧间预测、视频编码的方法及设备
EP3996371A4 (en) * 2019-07-01 2023-08-02 Samsung Electronics Co., Ltd. DEVICE AND METHOD FOR CODING AND DECODING MOTION INFORMATION USING NEIGHBORING MOTION INFORMATION
KR102297479B1 (ko) 2020-04-10 2021-09-03 삼성전자주식회사 움직임 벡터의 부호화 장치 및 방법, 및 움직임 벡터의 복호화 장치 및 방법

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0181069B1 (ko) * 1995-11-08 1999-05-01 배순훈 움직임 추정장치
KR100291719B1 (ko) * 1998-09-30 2001-07-12 전주범 이진 형상 신호의 움직임 벡터 부호화 장치 및 방법
JP4114859B2 (ja) 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
KR100492127B1 (ko) 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
US7321626B2 (en) * 2002-03-08 2008-01-22 Sharp Laboratories Of America, Inc. System and method for predictive motion estimation using a global motion predictor
KR100508798B1 (ko) * 2002-04-09 2005-08-19 엘지전자 주식회사 쌍방향 예측 블록 예측 방법
JP2004208258A (ja) 2002-04-19 2004-07-22 Matsushita Electric Ind Co Ltd 動きベクトル計算方法
KR100491530B1 (ko) * 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
CN1312927C (zh) * 2002-07-15 2007-04-25 株式会社日立制作所 动态图像编码方法及解码方法
KR100774296B1 (ko) * 2002-07-16 2007-11-08 삼성전자주식회사 움직임 벡터 부호화 방법, 복호화 방법 및 그 장치
KR100865034B1 (ko) * 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
US6925123B2 (en) * 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
JP4373702B2 (ja) 2003-05-07 2009-11-25 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
EP1503559A1 (fr) 2003-07-28 2005-02-02 Canal + Technologies Procédé de détection automatique de protocole de transmission pour objet portable de type carte à puce ou clé à puce
KR100579542B1 (ko) 2003-07-29 2006-05-15 삼성전자주식회사 블럭 간의 상관성을 고려한 움직임 추정 장치 및 방법
JP2005184042A (ja) * 2003-12-15 2005-07-07 Sony Corp 画像復号装置及び画像復号方法並びに画像復号プログラム
US7515637B2 (en) * 2004-05-21 2009-04-07 Broadcom Advanced Compression Group, Llc Video decoding for motion compensation with weighted prediction
JP4247680B2 (ja) * 2004-07-07 2009-04-02 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
JP4250598B2 (ja) * 2005-02-07 2009-04-08 シャープ株式会社 動き補償型ip変換処理装置及び動き補償型ip変換処理方法
CN100539693C (zh) * 2005-08-30 2009-09-09 深圳清华大学研究院 快速运动估计方法
JP4712643B2 (ja) * 2006-08-17 2011-06-29 富士通セミコンダクター株式会社 フレーム間予測処理装置、フレーム間予測方法、画像符号化装置及び画像復号装置
JP4325708B2 (ja) * 2007-07-05 2009-09-02 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
CN101374235B (zh) * 2007-08-24 2012-05-02 大唐移动通信设备有限公司 视频编码中的快速块运动估计方法和装置
KR101403343B1 (ko) * 2007-10-04 2014-06-09 삼성전자주식회사 부화소 움직임 추정을 이용한 인터 예측 부호화, 복호화방법 및 장치
KR102231772B1 (ko) * 2007-10-16 2021-03-23 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8908765B2 (en) * 2007-11-15 2014-12-09 General Instrument Corporation Method and apparatus for performing motion estimation
CN101198064A (zh) * 2007-12-10 2008-06-11 武汉大学 一种分辨率分层技术中的运动矢量预测方法
ES2812473T3 (es) * 2008-03-19 2021-03-17 Nokia Technologies Oy Vector de movimiento combinado y predicción de índice de referencia para la codificación de vídeo
CN101267556B (zh) * 2008-03-21 2011-06-22 海信集团有限公司 快速运动估计方法及视频编解码方法
KR100901647B1 (ko) * 2008-09-11 2009-06-09 엘지전자 주식회사 모션 벡터 예측 방법
KR100890519B1 (ko) * 2008-09-11 2009-03-25 엘지전자 주식회사 모션 벡터 예측 방법
US20100086051A1 (en) * 2008-10-06 2010-04-08 Lg Electronics Inc. Method and an apparatus for processing a video signal
KR101377527B1 (ko) * 2008-10-14 2014-03-25 에스케이 텔레콤주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
US9113196B2 (en) * 2008-11-10 2015-08-18 Lg Electronics Inc. Method and device for processing a video signal using inter-view prediction
TWI408620B (zh) * 2008-12-12 2013-09-11 Mstar Semiconductor Inc 用以決定插補畫面之移動向量的影像處理方法及其相關裝置
CN101511019A (zh) * 2009-03-13 2009-08-19 广东威创视讯科技股份有限公司 一种可变模式运动估计方法及可变模式运动估计装置
CN102883160B (zh) * 2009-06-26 2016-06-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
CN201639717U (zh) * 2009-07-09 2010-11-17 杭州士兰微电子股份有限公司 可变块尺寸运动预测装置
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
US9060176B2 (en) * 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
TWI566586B (zh) * 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
KR101459714B1 (ko) * 2009-10-28 2014-11-13 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101441905B1 (ko) * 2009-11-18 2014-09-24 에스케이텔레콤 주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
KR101522850B1 (ko) * 2010-01-14 2015-05-26 삼성전자주식회사 움직임 벡터를 부호화, 복호화하는 방법 및 장치
CN101827269B (zh) * 2010-01-15 2012-10-17 香港应用科技研究院有限公司 视频编码方法和装置
CN101815218B (zh) * 2010-04-02 2012-02-08 北京工业大学 基于宏块特征的快速运动估计视频编码方法
CN101877790B (zh) * 2010-05-26 2012-01-25 广西大学 一种面向全景视频编码的快速全局运动估计方法
KR101456499B1 (ko) * 2010-07-09 2014-11-03 삼성전자주식회사 움직임 벡터의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US9124898B2 (en) * 2010-07-12 2015-09-01 Mediatek Inc. Method and apparatus of temporal motion vector prediction
US9398308B2 (en) * 2010-07-28 2016-07-19 Qualcomm Incorporated Coding motion prediction direction in video coding
KR20120016991A (ko) 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
KR101449679B1 (ko) * 2010-08-18 2014-10-15 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법, 및 참조픽처 인덱싱 장치 및 방법
US8976856B2 (en) * 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
US20120087411A1 (en) * 2010-10-12 2012-04-12 Apple Inc. Internal bit depth increase in deblocking filters and ordered dither
US8824558B2 (en) * 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
US8761245B2 (en) * 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
CN103283235B (zh) * 2011-01-07 2016-10-26 株式会社Ntt都科摩 运动矢量的预测编码方法、预测编码装置和运动矢量的预测解码方法、预测解码装置
US10171813B2 (en) * 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks
WO2012128540A2 (ko) * 2011-03-21 2012-09-27 엘지전자 주식회사 움직임 벡터 예측자 선택 방법 및 이를 이용하는 장치
KR101598306B1 (ko) * 2011-06-30 2016-02-26 가부시키가이샤 제이브이씨 켄우드 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
US20130229485A1 (en) * 2011-08-30 2013-09-05 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding
TWI577184B (zh) * 2011-09-28 2017-04-01 Jvc Kenwood Corp A motion picture decoding apparatus, a motion picture decoding method, and a recording medium
US9357195B2 (en) * 2012-08-16 2016-05-31 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
US9491461B2 (en) * 2012-09-27 2016-11-08 Qualcomm Incorporated Scalable extensions to HEVC and temporal motion vector prediction
US9357214B2 (en) * 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
CN105531999B (zh) * 2013-07-09 2019-08-09 诺基亚技术有限公司 涉及用于信号传输运动信息的语法的视频编码方法及装置
US9641862B2 (en) * 2013-10-15 2017-05-02 Nokia Technologies Oy Video encoding and decoding

Also Published As

Publication number Publication date
KR102232113B1 (ko) 2021-03-25
KR102005088B1 (ko) 2019-10-01
JP2018137810A (ja) 2018-08-30
JP5981528B2 (ja) 2016-08-31
EP2690870A2 (en) 2014-01-29
HRP20230425T1 (hr) 2023-07-07
JP2017085637A (ja) 2017-05-18
HUE061938T2 (hu) 2023-09-28
EP4184918B1 (en) 2024-02-07
PL4184918T3 (pl) 2024-06-10
WO2012128540A3 (ko) 2012-12-27
DK2690870T3 (da) 2020-03-30
US20150208087A1 (en) 2015-07-23
EP2690870B1 (en) 2020-01-01
ES2944310T3 (es) 2023-06-20
PL3937497T3 (pl) 2023-07-17
KR20180097773A (ko) 2018-08-31
CN107979758B (zh) 2021-05-04
JP6334742B2 (ja) 2018-05-30
EP4184918A1 (en) 2023-05-24
CN107948658A (zh) 2018-04-20
US9319709B2 (en) 2016-04-19
CN103535040B (zh) 2017-12-22
PL2690870T3 (pl) 2020-07-27
JP2014514811A (ja) 2014-06-19
CN107979758A (zh) 2018-05-01
SI3937497T1 (sl) 2023-06-30
PL3627839T3 (pl) 2022-03-21
CN107979759B (zh) 2021-04-30
KR20200062376A (ko) 2020-06-03
US20160191947A1 (en) 2016-06-30
HUE048403T2 (hu) 2020-07-28
JP2015208033A (ja) 2015-11-19
ES2900107T3 (es) 2022-03-15
HUE056367T2 (hu) 2022-02-28
JP2020014254A (ja) 2020-01-23
SI4184918T1 (sl) 2024-05-31
CN107948658B (zh) 2021-04-30
SI3627839T1 (sl) 2022-01-31
EP3937497A1 (en) 2022-01-12
US20140023144A1 (en) 2014-01-23
WO2012128540A2 (ko) 2012-09-27
JP7481542B2 (ja) 2024-05-10
EP3627839A1 (en) 2020-03-25
FI4184918T3 (fi) 2024-05-14
KR102117085B1 (ko) 2020-05-29
JP6608994B2 (ja) 2019-11-20
KR20190090074A (ko) 2019-07-31
EP2690870A4 (en) 2014-10-22
FI3937497T3 (fi) 2023-05-15
CN107979759A (zh) 2018-05-01
JP6073979B2 (ja) 2017-02-01
US20200154134A1 (en) 2020-05-14
US20170111654A1 (en) 2017-04-20
US20180176593A1 (en) 2018-06-21
US9374598B2 (en) 2016-06-21
PT2690870T (pt) 2020-02-10
JP7098709B2 (ja) 2022-07-11
US10575012B2 (en) 2020-02-25
EP3937497B1 (en) 2023-02-22
JP2021052437A (ja) 2021-04-01
US9667992B2 (en) 2017-05-30
JP7293464B2 (ja) 2023-06-19
JP2023105064A (ja) 2023-07-28
CN103535040A (zh) 2014-01-22
JP6818842B2 (ja) 2021-01-20
US9936221B2 (en) 2018-04-03
KR101892165B1 (ko) 2018-08-27
US10999598B2 (en) 2021-05-04
CN107948657B (zh) 2021-05-04
EP3627839B1 (en) 2021-10-20
JP2022121603A (ja) 2022-08-19
KR20140022009A (ko) 2014-02-21
CN107948657A (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
ES2770437T3 (es) Método para seleccionar un predictor de vector de movimiento y un dispositivo que lo utiliza
KR102553845B1 (ko) 비디오 신호 처리 방법 및 장치
KR102553843B1 (ko) 비디오 신호 처리 방법 및 장치
JP2024087048A (ja) 動きベクトル予測子の選択方法及び動きベクトル予測子の選択方法を利用する装置
JP2024087047A (ja) 動きベクトル予測子の選択方法及び動きベクトル予測子の選択方法を利用する装置