ES2899990T3 - Método y aparato para codificar/decodificar imágenes usando un vector de movimiento - Google Patents

Método y aparato para codificar/decodificar imágenes usando un vector de movimiento Download PDF

Info

Publication number
ES2899990T3
ES2899990T3 ES12742304T ES12742304T ES2899990T3 ES 2899990 T3 ES2899990 T3 ES 2899990T3 ES 12742304 T ES12742304 T ES 12742304T ES 12742304 T ES12742304 T ES 12742304T ES 2899990 T3 ES2899990 T3 ES 2899990T3
Authority
ES
Spain
Prior art keywords
block
motion vector
collocated
image
decoded
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
ES12742304T
Other languages
English (en)
Inventor
Sung Chang Lim
Hui Yong Kim
Se Yoon Jeong
Suk Hee Cho
Dong San Jun
Jong Ho Kim
Ha Hyun Lee
Jin Ho Lee
Jin Soo Choi
Jin Woong Kim
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.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46873758&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2899990(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from KR1020110065707A external-priority patent/KR20120088494A/ko
Application filed by Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Application granted granted Critical
Publication of ES2899990T3 publication Critical patent/ES2899990T3/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
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)

Abstract

Un aparato de decodificación de imágenes, que comprende: una memoria intermedia de imágenes de referencia para almacenar una pluralidad de imágenes de referencia; y una unidad de compensación de movimiento para generar un bloque de predicción para reconstruir un bloque a ser decodificado en una imagen actual escalando un vector de movimiento de un bloque coubicado en una imagen coubicada, colPic, entre la pluralidad de imágenes de referencia, generándose el vector de movimiento escalado multiplicando un factor de escala y el vector de movimiento, y modificando el resultado de la multiplicación sumando primero un primer desplazamiento y luego aplicando una primera operación de desplazamiento aritmético, recortando el vector de movimiento escalado en un primer rango predeterminado para generar un vector de movimiento recortado, derivando un vector de movimiento del bloque a ser decodificado agregando el vector de movimiento recortado como un vector de movimiento predicho y una diferencia de vector de movimiento decodificada a partir de un flujo de bits, y realizando interpredicción utilizando el vector de movimiento del bloque a ser decodificado, en caso de que una primera diferencia de recuento de orden de imágenes, POC, entre la imagen actual y una primera imagen de referencia a la que se hace referencia por el bloque a ser decodificado sea diferente de una segunda diferencia de POC entre la imagen coubicada y una segunda imagen de referencia a la que se hace referencia por el bloque coubicado, en donde el factor de escala se calcula multiplicando la primera diferencia de POC recortada en un segundo rango predeterminado y un valor proporcional inverso de la segunda diferencia de POC recortada en el segundo rango predeterminado, modificando un resultado de la multiplicación agregando un segundo desplazamiento y luego aplicando una segunda operación de desplazamiento aritmético, y recortando el resultado modificado de la multiplicación en un tercer rango predeterminado, el valor proporcional inverso se calcula dividiendo un valor intermedio por la segunda diferencia de POC, y el valor intermedio se calcula usando un valor absoluto de la segunda diferencia de POC dividido por 2, y se modifica en base a una tercera operación de desplazamiento, en donde el bloque coubicado se determina mediante la realización de calcular una primera posición correspondiente a una posición inferior derecha del bloque a ser decodificado en la imagen actual tomando una posición superior izquierda del bloque a ser decodificado en la imagen actual y agregando un ancho y una altura del bloque a ser decodificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser decodificado en la imagen actual, respectivamente; determinar si un primer bloque que cubre la primera posición calculada en la imagen coubicada está codificado en un modo de intrapredicción; en caso de que el primer bloque no esté codificado en un modo de intrapredicción, determinar el primer bloque en la imagen coubicada como el bloque coubicado, en caso de que el primer bloque esté codificado en un modo de intrapredicción, calcular una segunda posición correspondiente a una posición central del bloque a ser decodificado en la imagen actual tomando la posición superior izquierda del bloque a ser decodificado en la imagen actual y agregar la mitad del ancho y la mitad de la altura del bloque a ser decodificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser decodificado en la imagen actual, respectivamente; y determinar un segundo bloque que cubra la segunda posición calculada en la imagen coubicada como el bloque coubicado.

Description

DESCRIPCIÓN
Método y aparato para codificar/decodificar imágenes usando un vector de movimiento
[Campo técnico]
La presente invención se refiere al procesamiento de imágenes y, más particularmente, a un método de codificación/decodificación de video que usa un vector de movimiento recortado y un aparato del mismo.
[Antecedentes de la técnica]
Recientemente, según la expansión de un sistema de difusión que soporta resolución de alta definición (HD) en el país y en todo el mundo, muchos usuarios se han acostumbrado a una imagen de alta resolución y definición, de modo que muchas organizaciones han realizado muchos intentos para desarrollar los dispositivos de video de próxima generación. Además, en la medida que ha aumentado el interés por que la HDTV y la ultra alta definición (UHD) que tienen una resolución cuatro veces superior a la de la HDTV, se ha demandado una tecnología de compresión para un video de mayor resolución y mayor definición.
Para la compresión de imágenes, se pueden usar una tecnología de interpredicción para predecir valores de píxeles incluidos en una imagen actual a partir de una imagen antes y/o después de la imagen actual, una tecnología de intrapredicción para predecir valores de píxeles utilizando información de píxeles en la imagen, una tecnología de codificación de entropía de asignación de un código corto para un símbolo que tiene una frecuencia de aparición alta y un código largo para un símbolo que tiene una frecuencia de aparición baja, o similar.
La codificación de imágenes en movimiento y audio se describe en "Text of ISO/IEC 14496-2 (MPEG-4 Visual) 2001 Edition", 57. REUNIONES DE MPEG 6-07-2001 - 20-07-2001; SYDNEY; (GRUPO DE EXPERTOS DE IMÁGENES EN MOVIMIENTO O ISO/IEC JTC1/SC29/WG11), n.2 N4350, 30 de julio de 2001 (30-07-2001), ISSN: 0000-0369. Más información con respecto al almacenamiento de datos de vectores de movimiento ha sido descrita por YEPING SU ET AL: "CE9: Reduced resolution storage of motion vector data", 4. REUNIÓN DE JCT-VC; 95. REUNIÓN DE MPEG; 20-1-2011 - 28-1-2011; DAEGU; (EQUIPO CONJUNTO COLABORATIVO SOBRE CODIFICACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 Y SG.16 DE LA UIT-T); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, n.2 JCTVC-D072, 16 de enero de 2011 (16-01-2011), ISSN: 0000-0015.
La decodificación de imágenes de vídeo también ha sido descrita por SULLIVAN: "Report of Awaji JVT Meeting (#6)", 6. REUNIÓN DE JVT; 63. REUNIÓN DE MPEG; 09-12-2002 - 13-12-2002; AWAJI, JP; (EQUIPO CONJUNTO DE VIDEO DE ISO/IEC JTC1/SC29/WG11 Y SG.16 DE LA ITU-T), n.2 JVT-F001d1, 13 de diciembre de 2002 (13-12­ 2002), ISSN: 0000-0428.
[Divulgación]
[Problema técnico]
La presente invención proporciona un método de codificación/decodificación de vídeo que utiliza un vector de movimiento recortado y un aparato del mismo.
La presente invención también proporciona un método para recortar un vector de movimiento de una imagen de referencia.
[Solución técnica]
La presente invención está definida por las reivindicaciones independientes. Las posibles realizaciones se definen mediante las reivindicaciones dependientes.
[Efectos ventajosos]
Según la presente invención, el vídeo se codifica utilizando el vector de movimiento recortado.
Según algunos aspectos de la presente invención, se puede reducir el tamaño de la memoria requerida para almacenar vectores de movimiento.
Según algunos aspectos de la presente invención, se puede reducir el ancho de banda de acceso a la memoria requerido para traer datos de la memoria.
[Descripción de dibujos]
La FIG. 1 es un diagrama de bloques que muestra un ejemplo de una estructura de un codificador según la presente invención.
La FIG. 2 es un diagrama de bloques que muestra un ejemplo de una estructura de un decodificador según la presente invención.
La FIG. 3 muestra ejemplos de una imagen de objeto de codificación/decodificación y una imagen de referencia. La FIG. 4 muestra un ejemplo de limitación de un rango dinámico de un vector de movimiento.
Las FIGS. 5 a 8 son diagramas de flujo que muestran un método de almacenamiento de un vector de movimiento de una imagen de referencia.
La FIG. 9 muestra un ejemplo de cuantificación de un vector de movimiento.
Las FIGS. 10 a 13 muestran ejemplos de obtención de información de movimiento de una imagen de referencia. La FIG. 14 es un diagrama de flujo que muestra un método de codificación de una imagen según la presente invención.
La FIG. 15 es un diagrama de flujo que muestra un método de decodificación de una imagen según la presente invención.
[Modo para la invención]
A continuación, la presente invención se describirá en detalle con referencia a los dibujos adjuntos. Sin embargo, al describir ejemplos de la presente invención, no se describirán en detalle funciones o construcciones bien conocidas, dado que pueden oscurecer innecesariamente la comprensión de la presente invención.
Se ha de entender que cuando se hace referencia a cualquier elemento como "conectado a" o "acoplado a" otro elemento, puede estar conectado o acoplado directamente a otro elemento o estar conectado o acoplado a otro elemento, teniendo el otro elemento que interviene entre los mismos. Además, en la presente memoria descriptiva, en el caso de describir "incluir" un componente específico, se ha de entender que no se excluyen componentes adicionales distintos del componente correspondiente.
Los términos usados en la memoria descriptiva, "primero", "segundo", etc., se pueden usar para describir varios componentes, pero los componentes no se han de interpretar como que están limitados a los términos. Es decir, los términos se utilizan para distinguir un componente de otro componente. Por ejemplo, el "primer" componente se puede denominar el "segundo" componente, y viceversa, sin apartarse del alcance de la presente invención.
Además, los componentes descritos se muestran de forma independiente solo para indicar que realizan diferentes funciones características. Por lo tanto, los componentes que se muestran de forma independiente no significan que cada uno de los componentes no se pueda implementar como un solo hardware o software. Es decir, cada uno de los componentes se divide por conveniencia de la explicación, una pluralidad de componentes se pueden combinar entre sí para operar de ese modo como un componente o un componente se puede dividir en una pluralidad de componentes para operar de este modo como la pluralidad de componentes, que se incluyen en el alcance de la presente invención siempre que se aparte de las características esenciales de la presente invención.
Además, algunos de los componentes pueden no ser componentes indispensables que realicen funciones esenciales de la presente invención, sino que son componentes selectivos que mejoran únicamente su rendimiento. La presente invención también se puede implementar solo mediante una estructura que incluye los componentes indispensables excepto los componentes selectivos, y la estructura que incluye solo los componentes indispensables también se incluye en el alcance de la presente invención.
La FIG. 1 es un diagrama de bloques que muestra un ejemplo de una estructura de un codificador según la presente invención.
Haciendo referencia a la FIG. 1, el codificador 100 incluye un predictor de movimiento 111, un compensador de movimiento 112, un intrapredictor 120, un conmutador 115, un sustractor 125, un transformador 130, un cuantificador 140, un codificador de entropía 150, un descuantificador 160, un transformador inverso 170 , un sumador 175, una unidad de filtro 180 y una memoria intermedia de imágenes de referencia 190.
El codificador 100 codifica imágenes de entrada en un modo de intrapredicción o en un modo de interpredicción para que el codificador emita un flujo de bits. La intrapredicción significa predicción intraimagen y la interpredicción significa predicción entre imágenes. El codificador 100 se conmuta entre el modo de intrapredicción y el modo de interpredicción a través de la conmutación del conmutador 115. El codificador 100 genera un bloque predicho para un bloque de entrada de la imagen de entrada y luego codifica un residuo entre el bloque de entrada y el bloque predicho.
En el caso del modo de intrapredicción, el intrapredictor 120 realiza la predicción espacial utilizando valores de píxeles de bloques vecinos que ya están codificados para generar bloques predichos.
En el caso del modo de interpredicción, el predictor de movimiento 111 busca un bloque de referencia emparejado de manera óptima con el bloque de entrada en una imagen de referencia almacenada en la memoria intermedia de imágenes de referencia 190 durante un proceso de predicción de movimiento para obtener un vector de movimiento. El compensador de movimiento 112 realiza una compensación de movimiento usando el vector de movimiento para generar el bloque predicho. Aquí, el vector de movimiento puede ser un vector bidimensional utilizado para la interpredicción y representar un desplazamiento entre un bloque de árbol de codificación actual y el bloque de referencia.
El sustractor 125 genera un bloque residual en base al residual entre el bloque de entrada y el bloque predicho, y el transformador 130 transforma el bloque residual para emitir un coeficiente de transformación. El cuantificador 140 cuantifica el coeficiente de transformación para emitir el coeficiente cuantificado.
El codificador de entropía 150 realiza la codificación de entropía en base a la información obtenida durante un proceso de codificación/cuantificación para emitir el flujo de bits. La codificación de entropía representa símbolos generados con frecuencia como un número pequeño de bits, reduciendo de este modo el tamaño de un flujo de bits para un símbolo de codificación. Por lo tanto, se puede esperar que el rendimiento de compresión de un video se mejore a través de la codificación de entropía. El codificador de entropía 150 puede usar un método de codificación tal como golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC), o similares, para la codificación de entropía.
Una imagen codificada necesita ser decodificada y almacenada de nuevo para ser usada como imagen de referencia para realizar la codificación interpredicción. Por lo tanto, el descuantificador 160 descuantifica el coeficiente cuantificado y el transformador inverso 170 transforma inversamente el coeficiente descuantificado para emitir un bloque residual reconstruido. El sumador 175 añade el bloque residual reconstruido al bloque predicho para generar un bloque reconstruido.
La unidad de filtro 180 también se denomina filtro en bucle adaptativo y aplica al menos uno de filtrado de desbloqueo, compensación de desplazamiento adaptativo de muestra (SAO), filtrado de bucle adaptativo (ALF) al bloque reconstruido. El filtrado de desbloqueo significa que se elimina la distorsión de bloque ocurrida en un límite entre bloques, y la compensación de SAO significa que se agrega un desplazamiento apropiado a un valor de píxel para compensar un error de codificación. Además, el ALF significa que el filtrado se realiza en base a un valor de comparación entre una imagen reconstruida y una imagen original.
Mientras tanto, la memoria intermedia de imágenes de referencia 190 almacena el bloque reconstruido que pasa a través de la unidad de filtro 180 en su interior.
La FIG. 2 es un diagrama de bloques que muestra un ejemplo de una estructura de un decodificador según la presente invención.
Haciendo referencia a la FIG. 2, un decodificador incluye un decodificador de entropía 210, un descuantificador 220, un transformador inverso 230, un intrapredictor 240, un compensador de movimiento 250, un sumador 255, una unidad de filtro 260 y una memoria intermedia de imágenes de referencia 270.
El decodificador 200 decodifica el flujo de bits en el modo de intrapredicción o en el modo de interpredicción para emitir una imagen reconstruida. El decodificador 200 se conmuta entre el modo de intrapredicción y el modo de interpredicción a través de la conmutación del conmutador. El decodificador 200 obtiene un bloque residual del flujo de bits para generar un bloque predicho y luego añade el bloque residual y el bloque predicho entre sí para generar un bloque reconstruido.
El decodificador de entropía 210 realiza la decodificación de entropía en base a la distribución de probabilidad. El proceso de decodificación de entropía es un proceso opuesto al proceso de codificación de entropía mencionado anteriormente. Es decir, el decodificador de entropía 210 genera un símbolo que incluye un coeficiente cuantificado del flujo de bits en donde un símbolo generado con frecuencia se representa como un pequeño número de bits. El descuantificador 220 descuantifica el coeficiente cuantificado y el transformador inverso 230 transforma inversamente el coeficiente descuantificado para generar un bloque residual.
En el caso del modo de intrapredicción, el intrapredictor 240 realiza una predicción espacial utilizando valores de píxeles de bloques vecinos que ya están codificados para generar bloques predichos.
En el caso del modo de interpredicción, el compensador de movimiento 250 realiza la compensación de movimiento utilizando el vector de movimiento y la imagen de referencia almacenada en la memoria intermedia de imágenes de referencia 270 para generar el bloque predicho.
El sumador 255 agrega el bloque predicho al bloque residual, y la unidad de filtro 260 aplica al menos uno de filtrado de desbloqueo, compensación de SAO, ALF al bloque que pasa a través del sumador para emitir una imagen reconstruida.
La imagen reconstruida se puede almacenar en la memoria intermedia de imágenes de referencia 270 para ser usada de ese modo para la compensación de movimiento.
En lo sucesivo, un bloque significa una unidad de codificación/decodificación. En un proceso de codificación/decodificación, una imagen se divide en un tamaño predeterminado y luego se codifica/decodifica. Por lo tanto, un bloque también se puede denominar unidad de codificación (CU), unidad de predicción (PU), unidad de transformación (TU) o similar, y un solo bloque también se puede dividir en subbloques que tienen un tamaño más pequeño.
Aquí, una unidad de predicción significa una unidad básica en la que se realiza la predicción y/o compensación de movimiento. Una unidad de predicción se puede dividir en una pluralidad de particiones, y cada una de las particiones también se puede denominar partición de unidad de predicción. Cuando una unidad de predicción se divide en la pluralidad de particiones, cada una de las particiones de la unidad de predicción puede convertirse en una unidad básica en la que se realizan la predicción y/o compensación de movimiento. En lo sucesivo, en los ejemplos de la presente invención, una unidad de predicción también puede significar particiones de la unidad de predicción.
Mientras tanto, en la codificación de video de alta eficiencia (HEVC), se utiliza un método de predicción de vector de movimiento en base a la predicción de vector de movimiento avanzada (AMVP).
En el método de predicción de vectores de movimiento en base a la predicción de vectores de movimiento avanzada, un vector de movimiento (MV) de un bloque, que existe en una posición que es igual o que corresponde a la de un bloque de árbol de codificación, en una imagen de referencia, así como en vectores de movimiento de bloques reconstruidos colocados alrededor del bloque de árbol de codificación. Aquí, el bloque, que existe en una posición que es la misma o que corresponde espacialmente a la del bloque de árbol de codificación, en la imagen de referencia se llama bloque coubicado, y un vector de movimiento del bloque coubicado se llama vector de movimiento coubicado o vector de movimiento temporal. Sin embargo, el bloque coubicado puede ser un bloque, que existe en una posición similar a (es decir, correspondiente a) la del bloque de árbol de codificación, en la imagen de referencia, así como un bloque que existe en la misma posición que la del bloque de árbol de codificación.
En un método de combinación de información de movimiento, la información de movimiento se estima a partir del bloque coubicado junto con los bloques reconstruidos colocados alrededor del bloque de árbol de codificación para ser usada de ese modo como información de movimiento del bloque de árbol de codificación. Aquí, la información de movimiento incluye al menos una de la información del modo de interpredicción que indica un índice de imagen de referencia, un vector de movimiento, una dirección en un sentido, una dirección en dos sentidos o similar, requerida en el momento de la interpredicción, una lista de imágenes de referencia e información del modo de predicción sobre si la codificación se realiza en un modo de intrapredicción o en un modo de interpredicción.
Un vector de movimiento predicho en el bloque de árbol de codificación puede ser un vector de movimiento del bloque coubicado, que es un bloque temporalmente adyacente al bloque de árbol de codificación, así como vectores de movimiento de bloques vecinos adyacentes espacialmente al bloque de árbol de codificación.
La FIG. 3 muestra ejemplos de una imagen de objeto de codificación/decodificación y una imagen de referencia. En la FIG. 3, un bloque X indica un bloque de árbol de codificación en una imagen de objeto de codificación/decodificación 310, y un bloque A, un bloque B, un bloque C, un bloque D y un bloque E indican bloques reconstruidos colocados alrededor del bloque de árbol de codificación. Además, un bloque T en la imagen de referencia 320 indica un bloque coubicado que existe en una posición correspondiente a la del bloque de árbol de codificación.
Qué vector de movimiento en el bloque de árbol de codificación se usa como el vector de movimiento predicho se puede reconocer a través de un índice de predictor de vector de movimiento.
[Tabla 1]
Figure imgf000005_0001
Figure imgf000006_0001
Como se muestra en la Tabla 1, los índices de predictor del vector de movimiento mvp_idx_l0 y mvp_idx_l1 para cada lista de imágenes de referencia se transmiten a un decodificador, y el decodificador usa el mismo vector de movimiento que un vector de movimiento predicho por un codificador como vector de movimiento predicho.
En el caso en el que el bloque de árbol de codificación se codifique/decodifique usando los vectores de movimiento de los bloques vecinos espacialmente adyacentes al bloque de árbol de codificación, el vector de movimiento se puede almacenar solo con una memoria que tenga un tamaño relativamente pequeño. Sin embargo, en el caso en el que se use un vector de movimiento temporal, dado que todos los vectores de movimiento de la imagen de referencia necesitan ser almacenados en una memoria, se requiere una memoria que tenga un tamaño relativamente grande y también aumenta el tamaño de ancho de banda de acceso a la memoria requerido para traer datos de la memoria. Por lo tanto, existe la necesidad de almacenar de manera más eficiente el vector de movimiento temporal en un entorno de aplicación en el que el espacio de memoria de un terminal portátil, o similar, no es suficiente o se minimiza el consumo de energía.
Mientras tanto, como tecnología para almacenar un vector de movimiento en una memoria, existe un método de reducción de la resolución espacial del vector de movimiento. En este método, el vector de movimiento se comprime en cualquier proporción y luego se almacena en la memoria. Por ejemplo, un vector de movimiento almacenado en una unidad de bloques de 4x4 se almacena en una unidad de bloques de 4x4 o más para reducir el número de vectores de movimiento almacenados. Aquí, para ajustar un tamaño de bloque del vector de movimiento almacenado, se transmite información sobre una relación de compresión. La información se transmite a través de un conjunto de parámetros de secuencia (SPS) como se muestra en la Tabla 2.
[Tabla 2]
Figure imgf000007_0001
Haciendo referencia a la Tabla 2, en el caso en el que motion_vector_buffer_comp_flag es 1, se realiza un proceso de compresión de memoria intermedia de vector de movimiento.
motion_vector_buffer_comp_ratio_log2 indica una relación de compresión del proceso de compresión de memoria intermedia de vector de movimiento. En el caso de que la motion_vector_buffer_comp_ratio_log2 no exista, motion_vector_buffer_comp_ratio_log2 se estima en 0, y la relación de compresión de memoria intermedia de vector de movimiento se representa mediante la Ecuación 1.
[Ecuación 1]
A ll rB n ffe r t'o m p R a tio — 1 « m otion vec to r bu ffer com p vatio tog2 Por ejemplo, en el caso en donde todos los bloques 4x4 de imágenes de 1920 x 1080 tienen diferentes vectores de movimiento y usan dos listas de imágenes de referencia, cada una usando dos imágenes de referencia, se requiere un espacio de memoria total de 3,21 Mbytes para almacenar un vector de movimiento temporal como se describe a continuación.
1. Profundidad de bits de 26 bits por vector de movimiento
(1) Rango dinámico del componente X del vector de movimiento: -252 a 7676 (profundidad de bits: 13 bits)
(2) Rango dinámico del componente Y del vector de movimiento: -252 a 4316 (profundidad de bits: 13 bits)
(3) (Los rangos dinámicos de cada componente del vector de movimiento se calcularon en base a una primera unidad de predicción en una imagen correspondiente).
2. En el caso de que todas las unidades de bloques 4x4 tengan diferentes vectores de movimiento: 480 x 270 = 129600 bloques
3. Uso de dos vectores de movimiento por cada bloque
4. El número de listas de imágenes de referencia: 2
5. Uso de dos imágenes de referencia por lista de imágenes de referencia
=> 26 bits x 129600 bloques x dos vectores de movimiento x dos listas de imágenes de referencia x dos imágenes de referencia = 26956800 bits = 3,21 Mbytes
Según el método de reducción de una resolución espacial de un vector de movimiento como se describió anteriormente, es posible reducir el tamaño del espacio de memoria requerido y el ancho de banda de acceso a la memoria usando la correlación espacial del vector de movimiento. Sin embargo, el método de reducción de la resolución espacial de un vector de movimiento no limita el rango dinámico del vector de movimiento.
Cuando el tamaño del espacio de memoria se reduce a 1/4, el tamaño del espacio de memoria requerido en el ejemplo mencionado anteriormente se reduce a aproximadamente 0,8 Mbytes. Aquí, cuando solo se usan seis bits de la profundidad de bits requerida para almacenar el vector de movimiento para cada componente del vector de movimiento limitando adicionalmente el rango dinámico del vector de movimiento, el tamaño del espacio de memoria requerido se puede reducir aún más a 0,37 Mbytes.
Por lo tanto, en la presente invención, el rango dinámico del vector de movimiento se limita para reducir el tamaño de un espacio de memoria requerido para almacenar el vector de movimiento y un ancho de banda de acceso a la memoria requerido para traer datos de la memoria. El vector de movimiento de la imagen de referencia cuyo rango dinámico está limitado se puede usar como vector de movimiento temporal en el bloque de árbol de codificación. En lo sucesivo, un rango dinámico significa un rango entre un valor mínimo y un valor máximo de un componente negativo o un componente positivo de un vector de movimiento en base a 0, y una profundidad de bits, que indica un tamaño de espacio requerido para almacenar el vector de movimiento, significa una anchura de bits. Además, a menos que se describa en particular, el vector de movimiento significa un vector de movimiento de una imagen de referencia, es decir, un vector de movimiento temporal.
En el caso de que cada componente del vector de movimiento esté fuera del rango dinámico, se representa por el valor mínimo o el valor máximo del rango dinámico correspondiente. Por ejemplo, en el caso en el que un componente X del vector de movimiento 312 y un valor máximo de un rango dinámico de cada componente del vector de movimiento 256, el componente X del vector de movimiento está limitado a 256.
Asimismo, en el caso en el que una profundidad de bits de cada componente del vector de movimiento sea de 16 bits y el vector de movimiento sea (-36, 24), cuando la profundidad de bits de cada componente del vector de movimiento se limita a 6 bits, cada componente del vector de movimiento tiene un rango dinámico de -32 a 31, de modo que el vector de movimiento se representa por (-32, 24), que está en su rango dinámico.
Además, en el caso en el que una profundidad de bits de cada componente del vector de movimiento sea de 16 bits y el vector de movimiento sea (-49, 142), cuando la profundidad de bits de cada componente del vector de movimiento se limita a 9 bits, cada componente del vector de movimiento tiene un rango dinámico de -256 a 255, de modo que el vector de movimiento se representa por (-49, 142) sin cambios.
La FIG. 4 muestra un ejemplo de limitación de un rango dinámico de un vector de movimiento.
Haciendo referencia a la FIG. 4, cuando un rango dinámico de un vector de movimiento que tiene un rango dinámico de -4096 a 4095 se limita a -128 a 127, la profundidad de bits se puede reducir de 13 bits a 8 bits.
Cada componente de un vector de movimiento temporal se recorta como se representa por las Ecuaciones 2 y 3 para ser almacenado en una profundidad de bits de N bits. Donde N indica un número entero positivo.
[Ecuación 2]
clippecLWV A' = min{ 1 « ( N - 1)-1, truvci -1 « ( N - 1), M V X ) )
[Ecuación 3]
clippedM Jr_ Y = rnifi( 1 « ( jV- 1)-1, mcvc( - 1 « (J V - 1), A f l Y ) ) Donde MV_X indica un componente X del vector de movimiento, MV_Y indica un componente Y del vector de movimiento, min(a, b) significa una operación de emisión de un valor más pequeño en a y b, y max(a, b) significa una operación de emisión de un valor mayor en a y b. Cada uno de clippedMV X y clippedMV_Y indica componentes X e Y del vector de movimiento temporal recortado y se almacena en la memoria para ser utilizado de ese modo como un vector de movimiento temporal del bloque de árbol de codificación.
Por ejemplo, como se muestra en la Tabla 3, en el caso en el que el tamaño de un espacio de memoria sea de 48 bytes y cada componente del vector de movimiento use una profundidad de bits de 16 bits, se pueden almacenar un total de doce vectores de movimiento.
[Tabla 3]
Figure imgf000008_0001
Sin embargo, cuando cada componente del vector de movimiento usa solo una profundidad de bits de 8 bits, se pueden almacenar un total de veinticuatro vectores de movimiento como se muestra en la Tabla 4.
[Tabla 4]
Figure imgf000009_0001
Por lo tanto, según la presente invención, cuando una imagen reconstruida en un codificador y/o decodificador se somete a un proceso de filtrado en bucle, tal como un filtro de desbloqueo, un filtro de bucle adaptativo o similar, y luego se almacena en una memoria intermedia de imágenes decodificadas (DPB), el rango dinámico del vector de movimiento es limitado, de modo que se almacene un vector de movimiento de una imagen de referencia. La memoria intermedia de imágenes decodificadas significa la memoria intermedia de imágenes de referencia de la FIG. 1 o la FIG. 2.
I. Proceso de recorte de vector de movimiento
Se invoca un proceso de recorte de cada componente de un vector de movimiento en el caso en el que un slice_type no es igual a I. El proceso de recorte de un vector de movimiento se realiza en un bloque de árbol o unidad de codificación más grande (LCU) después de que se termina un proceso de filtrado.
Las entradas en el proceso de recorte de un vector de movimiento son una ubicación (xP, yP) que especifica la muestra superior izquierda de la unidad de predicción con relación a la muestra superior izquierda de la imagen actual y las matrices de vectores de movimiento MvL0 y MvL1. Las salidas del proceso son las matrices de vectores de movimiento recortadas CMvL0 y CMvL1.
Con respecto a las matrices MvL0, MvL1, CMvL0 y CMvL1, se realizan las operaciones de las Ecuaciones 4 a 7. [Ecuación 4]
m vL X = M vL X [ xP . y P ]
[Ecuación 5]
cmvLX[ 0 ] = C iip i ( - 1 « ( TMVBitWidth -1 ), 1 « ( TMVBitWidth -1 )-1 , mvLX[ 0 ] ) [Ecuación 6]
cmvLX\_ 1 ] = C lip ii - 1 « ( TMVBitWidth -1 ), 1 « ( TMVBitWidth -1 )-1 , mvLX[ 1 ] ) [Ecuación 7]
CM vLX [ xP, y P ] = cmvLX
Donde TMVBitWidth indica una profundidad de bits de un vector de movimiento, Clip3(a, b, c) significa una función de recorte c para existir en un rango entre a y b.
II. Proceso de almacenamiento de vector de movimiento.
Las FIGS. 5 a 8 son diagramas de flujo que muestran un método de almacenamiento de un vector de movimiento de una imagen de referencia.
Haciendo referencia a la FIG. 5, el vector de movimiento de la imagen de referencia se puede almacenar utilizando tanto una memoria intermedia de imágenes que almacena una imagen reconstruida como una memoria intermedia de vectores de movimiento que almacena un vector de movimiento. Aquí, la imagen reconstruida se somete a un proceso de filtrado en bucle (S510) y el vector de movimiento se somete a un proceso de limitación de rango dinámico (S520) y luego se almacena (S540).
Además, con referencia a la FIG. 6, se utilizan tanto una memoria intermedia de imágenes como un memoria intermedia de vectores de movimiento, y el vector de movimiento se somete a un proceso de limitación de rango dinámico (S620) y un proceso de reducción de resolución espacial (S630) y luego se almacena (S640).
Además, haciendo referencia a la FIG. 7, la imagen reconstruida se somete a un proceso de filtrado en bucle (S710) y luego se almacena en una memoria intermedia de imágenes (S740), y el vector de movimiento se somete a un proceso de limitación de rango dinámico (S720) y luego se almacena en una memoria intermedia de vectores de movimiento (S750).
Además, con referencia a la FIG. 8, la imagen reconstruida se somete a un proceso de filtrado en bucle (S810) y luego se almacena en un memoria intermedia de imágenes (S840), y el vector de movimiento se somete a un proceso de limitación de rango dinámico (S820) y un proceso de reducción de resolución espacial (S830) y luego se almacena (S850).
Mientras tanto, en las FIGS. 6 y 8, una secuencia del proceso de limitación de rango dinámico S620 o S820 y el proceso de reducción de resolución espacial S630 y S830 no está limitada, pero se puede cambiar.
Además, para reducir aún más el ancho de banda de acceso a la memoria, los rangos dinámicos de cada componente del vector de movimiento se pueden limitar de manera diferente. Por ejemplo, solo uno de un rango dinámico de un componente X y un rango dinámico de un componente Y se puede limitar o el rango dinámico del componente Y se puede limitar aún más en comparación con el rango dinámico del componente X.
El rango dinámico limitado del vector de movimiento se transmite a través de un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen (PPS), un encabezado de segmento o similar, y el decodificador realiza de manera similar la limitación de un rango dinámico de un vector de movimiento temporal en la secuencia, la imagen o el segmento. En este caso, también se puede transmitir una profundidad de bits, que es el tamaño de un espacio de memoria requerido para almacenar el vector de movimiento representado en el rango dinámico. Además, es posible almacenar de manera eficiente el vector de movimiento temporal para que coincida con las características de movimiento de la imagen utilizando el rango dinámico transmitido a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen, el encabezado de segmento o similares, en lugar de almacenar el vector de movimiento usando una profundidad de bits que tiene un tamaño fijo.
Mientras tanto, el vector de movimiento se puede cuantificar y almacenar. En el caso de que el vector de movimiento se cuantifique y almacene, se reduce la precisión del vector de movimiento. Como método de cuantificación, hay una cuantificación uniforme en la que los tamaños de los pasos son uniformes, una cuantificación no uniforme en la que los tamaños de los pasos no son uniformes y similares. El tamaño de paso en la cuantificación se establece en un valor fijo predefinido entre el codificador y el decodificador o se transmite desde el codificador al decodificador a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen, el encabezado de segmento o similares. El decodificador usa el vector de movimiento cuantificado tal cual o descuantifica y usa el vector de movimiento cuantificado. La FIG. 9 muestra un ejemplo de cuantificación de un vector de movimiento. Haciendo referencia a la FIG. 9, en el caso de que el vector de movimiento tenga un valor de componente de 32 a 48, el vector de movimiento se cuantifica a 40.
Además, el vector de movimiento se puede limitar en una resolución de representación y almacenar. La resolución de representación significa una unidad de píxel entero (unidad de 1 píxel), una unidad de fracción de píxel (una unidad de 1/2 píxel, una unidad de 1/4 de píxel o similar). Por ejemplo, una resolución del vector de movimiento procesado en una unidad de 1/4 de píxel se puede almacenar como un píxel entero. La resolución de representación del vector de movimiento se establece en un valor fijo predefinido entre el codificador y el decodificador o se transmite desde el codificador al decodificador a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen, el encabezado de segmento o similares.
Además, solo con respecto a algunos vectores de movimiento entre los vectores de movimiento temporal almacenados en una memoria, se puede realizar un proceso de limitación de rango dinámico, un proceso de reducción de resolución de espacio y un proceso de cuantificación del vector de movimiento.
En el caso en el que el rango dinámico del vector de movimiento esté limitado y almacenado, la información sobre el rango dinámico del vector de movimiento se puede agregar y almacenar en la memoria. Por ejemplo, en el caso en el que el rango dinámico del vector de movimiento sea de -128 a 127, se puede almacenar adicionalmente una bandera de 1, y en el caso en el que el rango dinámico del vector de movimiento sea de -32 a 31, se puede almacenar adicionalmente una bandera de 0. En este caso, la información de la bandera se puede almacenar junto con el vector de movimiento o almacenar en una memoria diferente de la memoria en la que se almacena el vector de movimiento. En el caso en el que la información de la bandera y el vector de movimiento se almacenen en diferentes memorias, cuando se reconoce en qué rango dinámico se almacena un vector de movimiento específico, se puede permitir un acceso arbitrario a la información de la bandera. Además, la información sobre en qué rango dinámico se almacenan algunos vectores de movimiento se transmite a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen, el encabezado de segmento o similares, lo que hace posible de este modo permitir que un decodificador realice una operación similar a la de un codificador.
En el caso en el que la resolución espacial del vector de movimiento se reduzca y se almacene, se puede agregar y almacenar en la memoria información sobre el tamaño de bloque del vector de movimiento. Por ejemplo, en el caso en el que el tamaño de bloque del vector de movimiento sea 4x4, se puede almacenar adicionalmente una bandera de 1, y en el caso en el que el tamaño de bloque del vector de movimiento sea 16x16, se puede almacenar adicionalmente una bandera de 0. En este caso, la información de la bandera se puede almacenar junto con el vector de movimiento o almacenar en una memoria diferente de la memoria en la que se almacena el vector de movimiento. En el caso en el que la información de la bandera y el vector de movimiento se almacenan en diferentes memorias, cuando se reconoce en qué tamaño de bloque se almacena un vector de movimiento específico, se puede permitir un acceso arbitrario a la información de la bandera. Además, la información sobre en qué tamaño de bloque se almacenan algunos vectores de movimiento se transmite a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen, el encabezado de segmento o similares, lo que hace posible de este modo permitir que un decodificador realice una operación similar a la de un codificador.
En el caso en el que el vector de movimiento se cuantifique y almacene, la información sobre la precisión del vector de movimiento se puede agregar y almacenar en la memoria. Por ejemplo, en el caso en el que un tamaño de paso de la cuantificación sea 4, se puede almacenar adicionalmente una bandera de 1, y en el caso en el que el tamaño de paso de la cuantificación sea 1, se puede almacenar adicionalmente una bandera de 0. En este caso, la información de la bandera se puede almacenar junto con el vector de movimiento o almacenar en una memoria diferente de la memoria en la que se almacena el vector de movimiento. En el caso en el que la información de la bandera y el vector de movimiento se almacenen en diferentes memorias, cuando se reconoce en qué tamaño de paso se cuantifica y almacena un vector de movimiento específico, se puede permitir un acceso arbitrario a la información de la bandera. Además, la información sobre en qué tamaño de paso se cuantifican y almacenan algunos vectores de movimiento se transmite a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen, el encabezado de segmento o similares, lo que hace posible permitir de este modo que un decodificador realice una operación similar a la de un codificador.
Además, en el caso en el que la información de movimiento se almacene en la memoria, la resolución espacial del vector de movimiento se puede reducir y almacenar. Aquí, la información de movimiento incluye al menos una de información del modo de interpredicción que indica un índice de imagen de referencia, un vector de movimiento, una dirección en un sentido, una dirección en dos sentidos o similar, requerida en el momento de la interpredicción, una lista de imágenes de referencia, e información del modo de predicción sobre si se realiza un modo de intrapredicción o se realiza un modo de interpredicción.
Por ejemplo, la información de movimiento de una unidad de predicción que tiene el tamaño de partición más grande entre una pluralidad de información de movimiento de una región específica se puede almacenar como información de movimiento representativa en la memoria. Aquí, la región específica puede incluir una región en el bloque de árbol de codificación y regiones de bloques vecinos del bloque de árbol de codificación. Además, la región específica puede ser una región que incluye un bloque en el que se almacena la información de movimiento en el caso en el que toda la imagen o el segmento se divida en un tamaño predeterminado.
Por ejemplo, después de que la información de movimiento, que se codifica en un método de combinación de información de movimiento, un método de omisión de información de codificación, o similar, se excluye de la pluralidad de información de movimiento incluida en la región específica, la información de movimiento representativa se puede almacenar en la memoria.
Por ejemplo, la información de movimiento generada con más frecuencia entre la pluralidad de información de movimiento incluida en la región específica se puede almacenar como información de movimiento representativa en la memoria. En este caso, se puede calcular el número de generación de la información de movimiento para cada tamaño del bloque o similar.
Por ejemplo, se puede almacenar información de movimiento en una posición específica entre la pluralidad de información de movimiento incluida en la región específica. Aquí, la posición específica, que es una posición incluida en la región específica, puede ser una posición fija de la región específica. Además, la posición específica se puede seleccionar como una de una pluralidad de posiciones. Cuando se usa la pluralidad de posiciones, se puede determinar una prioridad para cada posición, y la información de movimiento se puede almacenar en la memoria según la prioridad.
Por ejemplo, cuando la pluralidad de información de movimiento incluida en la región específica se almacena en la memoria, dado que la información de movimiento no existe fuera de un límite de un bloque codificado en un modo de intrapredicción, un bloque codificado en un modo de modulación codificada por pulsos (PCM), un segmento o una imagen, puede que la información de movimiento de la posición correspondiente no se almacene en la memoria. En los ejemplos mencionados anteriormente, cuando se almacena la información de movimiento de la posición específica, en el caso en el que la información de movimiento de la posición correspondiente no exista, la información de movimiento de un bloque coubicado, la información de movimiento de un bloque ya codificado o la información de movimiento de un bloque vecino se puede utilizar como la información de movimiento de la posición correspondiente. Aquí, la posición específica puede ser una posición de muestra en un bloque vecino o una posición del bloque. Por ejemplo, en el caso en el que la información de movimiento de la posición específica no exista, se puede almacenar en la memoria un valor medio o un valor promedio entre la información de movimiento de los bloques vecinos que están codificados en interpredicción. Por ejemplo, en el caso en el que no exista la información de movimiento de la posición específica, se puede almacenar en la memoria un valor promedio de la información de movimiento de los bloques vecinos. Cuando se calculan el valor medio y el valor promedio, en el caso de que la información de movimiento de los bloques vecinos sea diferente de al menos uno del índice de imágenes de referencia, la lista de imágenes de referencia y la información del modo de interpredicción, un tamaño del vector de movimiento se puede ajustar según el índice de imágenes de referencia, la lista de imágenes de referencia, la información del modo de interpredicción, un recuento del orden de las imágenes y similares.
III. Proceso de derivación de vector de movimiento
En el caso en el que la información de movimiento se almacene en la memoria usando los métodos de información de movimiento mencionados anteriormente y la información de movimiento de la imagen de referencia se use en el método de predicción de vector de movimiento, el método de predicción de vector de movimiento avanzado o el método de combinación de información de movimiento, se puede traer la información de movimiento almacenada. Por ejemplo, se puede traer la información de movimiento de una posición correspondiente a la del bloque de árbol de codificación en la imagen de referencia. En este caso, la posición correspondiente a la del bloque de árbol de codificación en la imagen de referencia puede ser una posición fija en una región específica o una posición relativa desde la posición del bloque de árbol de codificación.
Las FIGS. 10 a 13 muestran ejemplos de obtención de información de movimiento a partir de una imagen de referencia.
En las FIGS. 10 a 13, un bloque X indica un bloque de árbol de codificación en una imagen de objeto de codificación/decodificación 1010, 1110, 1210 o 1310, y un bloque A, un bloque B, un bloque C, un bloque D y un bloque E indican bloques vecinos reconstruidos. Además, un bloque T en la imagen de referencia 1020, 1120, 1220 y 1320 indica un bloque coubicado correspondiente al bloque de árbol de codificación. Un bloque Y en la imagen de referencia 1320 de la FIG. 13 indica un bloque correspondiente a una posición distinta del bloque de objeto de codificación/decodificación.
Haciendo referencia a la FIG. 10, se puede traer la información de movimiento correspondiente a una posición correspondiente a una posición de píxel superior izquierda entre las posiciones de un bloque de árbol de codificación X en una imagen de referencia.
Haciendo referencia a la FIG. 11, se puede traer la información de movimiento correspondiente a una posición correspondiente a una posición de píxel central entre las posiciones de un bloque de árbol de codificación X en una imagen de referencia.
Haciendo referencia a la FIG. 12, se puede traer la información de movimiento correspondiente a una posición correspondiente a una posición de píxel inferior derecha entre las posiciones de un bloque de árbol de codificación X en una imagen de referencia.
Haciendo referencia a la FIG. 13, se puede traer la información de movimiento correspondiente a una posición correspondiente a una posición de píxel distinta de un bloque de árbol de codificación X en una imagen de referencia.
Se puede realizar un método de codificación/decodificación, como predicción de vector de movimiento, predicción de vector de movimiento avanzada, combinación de información de movimiento, salto de combinación de información de movimiento, o similares, utilizando la información de movimiento almacenada en la memoria, es decir, la información de movimiento de la imagen de referencia.
El vector de movimiento se puede almacenar en la memoria usando al menos uno de un método de limitación de un rango dinámico de un vector de movimiento, un método de reducción de una resolución espacial de un vector de movimiento, un método de cuantificación de un vector de movimiento y un método de reducción de una resolución de representación de un vector de movimiento, y el vector de movimiento almacenado se puede usar para predecir un vector de movimiento del bloque de árbol de codificación y combinar la información de movimiento del mismo. Un proceso de traer el vector de movimiento de la imagen de referencia de la memoria se denomina proceso de derivación de un vector de movimiento temporal. En un proceso de derivación de un vector de movimiento temporal, TMVbitWidth indica un ancho de bits de un vector de movimiento temporal almacenado en la memoria.
Las entradas en el proceso de derivación de un vector de movimiento temporal son una ubicación (xP, yP) que especifica la muestra de luma superior izquierda de la unidad de predicción actual con relación a la muestra superior izquierda de la imagen actual, variables que especifican el ancho y la altura de la unidad de predicción para luma, nPSW y nPSH, el índice de referencia de la partición de la unidad de predicción actual refIdxLX (con X que es 0 o 1).
Las salidas en el proceso son la predicción del vector de movimiento mvLXCol y la bandera de disponibilidad availableFlagLXCol.
La función RefPicOrderCnt (pic, refidx, LX) se especifica mediante el valor de PicOrderCnt de la imagen que es la imagen de referencia RefPicListX [refidx] de la imagen, con X que es 0 o 1. PicOrderCnt de la imagen de referencia se mantendrá hasta que la imagen sea marcada como "no existente". Clip3(a, b, c) significa una función de recorte c para existir en un rango entre a y b.
Si slice_type es igual a B y collocated_from_l0_flag es igual a 0, la variable colPic especifica la imagen que contiene la partición coubicada según lo especificado por RefPicList1[0]. De lo contrario (slice_type es igual a B y collocated_from_l0_flag es igual a 1 o slice_type es igual a P), la variable colPic especifica la imagen que contiene la partición coubicada según lo especificado por RefPicList0[0].
La variable colPu y su posición (xPCol, yPCol) se derivan en los siguientes pasos ordenados:
1. La posición de luma inferior derecha (xPRb, yPRb) de la unidad de predicción actual se define como se representa en las Ecuaciones 8 y 9.
[Ecuación 8]
fxP R b = xP t nPSW
[Ecuación 9]
2. Si colPu está codificado en un modo de intrapredicción o colPu no está disponible,
(1) La posición de luma central de la unidad de predicción actual se define como se representa por las Ecuaciones 10 y 11.
[Ecuación 10]
xPCtr = ( xP + ( nPSW » 1 ) - 1
[Ecuación 11]
yPCtr = ( yP ( nPSH » 1 ) - 1
(2) La variable colPu se establece como la unidad de predicción que cubre la posición modificada dada por ((xPCtr >> 4) << 4, (yPCtr >> 4) << 4) dentro del colPic.
3. (xPCol, yPCol) se establece igual a la muestra de luma superior izquierda de colPu con relación a la muestra de luma superior izquierda de colPic.
Las variables mvLXCol y availableFlagLXCol se derivan de la siguiente manera.
1. Si colPu está codificado en un modo de intrapredicción o colPu no está disponible, ambos componentes de mvLXCol se establecen en 0 y availableFlagLXCol se establece en 0.
2. De lo contrario (colPu no está codificado en un modo de intrapredicción y colPu está disponible), las variables mvCol y refIdxCol se derivan de la siguiente manera,
(1) Si PredFlagL0 [xPCol] [yPCol] es igual a 0, el vector de movimiento mvCol y el índice de referencia refldxCol se establecen en MvL1 [xPCol] [yPCol] y
RefIdxL1 [xPCol] [yPCol], respectivamente.
(2) De lo contrario (PredFlagL0 [xPCol] [yPCol] es igual a 1), se aplica lo siguiente.
1) Si PredFlagL1 [xPCol] [yPCol] es igual a 0, el vector de movimiento mvCol y el índice de referencia refIdxCol se establecen en MvL0 [xPCol] [yPCol] y RefIdxL0 [xPCol] [yPCol], respectivamente.
2) De lo contrario (PredFlagL1 [xPCol] [yPCol] es igual a 1), se aplica lo siguiente.
a. Las siguientes asignaciones se realizan con X que es 0 o 1.
i. RefldxColLX = RefldxLX [xPCol] [yPCol]
ii. Si PicOrderCnt (colPic) es menor que PicOrderCnt (currPic) y RefPicOrderCnt (colPic, RefldxColLX, LX) es mayor que PicOrderCnt (currPic) o PicOrderCnt (colPic) es mayor que PicOrderCnt (currPic) y RefldColderCnt (colPic, RefldxColLX, LX) es menor que PicOrderCnt (currPic), la variable MvXCross es igual a 1.
iii. De lo contrario (PicOrderCnt (colPic) es menor que PicOrderCnt (currPic) y RefPicOrderCnt (colPic, RefIdxColLX, LX) es menor o igual que PicOrderCnt (currPic) o PicOrderCnt (colPic) es mayor que PicOrderCnt (currPic) y RefPicOrderCnt(colPic, RefldxColLx, LX) es mayor o igual que PicOrderCnt (currPic)), la variable MvXCross es igual a 0.
b. Si es cierta una de las siguientes condiciones, el vector de movimiento mvCol, el índice de referencia refldxCol y ListCol se establecen en MvL1 [xPCol] [yPCol], RefldxColL1 y L1, respectivamente.
i. Mv0Cross es igual a 0 y Mv1 Cross es igual a 1.
ii. Mv0Cross es igual a Mv1Cross y la lista de índices de referencia es igual a L1
c. De lo contrario, el vector de movimiento mvCol, el índice de referencia refIdxCol y ListCol se establecen en MvL0 [xPCol] [yPCol], RefIdxColL0 y L0, respectivamente.
3) la variable availableFlagLXCol se establece igual a 1 y se aplican las operaciones de la Ecuación 12 o las Ecuaciones 13 a 18.
a. Si PicOrderCnt (colPic) - RefPicOrderCnt (colPic, refldxCol, ListCol) es igual a PicOrderCnt (currPic) - RefPicOrderCnt (currPic, refldxLX, LX),
[Ecuación 12]
m vLXCoI = ClipM, - 1 « ( IM VBitW idth -1), 1 « ( TM VBitW idth -1 )-1, m vC ol)
b. De lo contrario,
[Ecuación 13]
tx — ( 16384 A b s ( td l 2 ) ) / td
[Ecuación 14]
D istScaleFactor = Clip3( -1024, 1023, ( tb * tx 32 ) » 6 )
[Ecuación 15]
mvLXCoT — C /ip í( - 1 « ( 'TMVBitWidth -1 ), 1 « ( TMVBitWidth -1 )-1, mvCot)
[Ecuación 16]
mvLXCot = ClipM v( ( D istScaleF actor * m vLXCof + 128 ) » 8 )
donde td y tb se derivan de las Ecuaciones 17 y 18.
[Ecuación 17]
ul = C7//>3( -128, 127, PicOrderCnti colPic ) - RefPicOrderCnti colPic, refldxCol , ListCol ) ) [Ecuación 18]
ib = C!ip3( -128, 127, PicOrderCnt( cun-Pic ) - RefPicOrderCnt( currPic, refldxLX., LA') )
Es decir, haciendo referencia a las Ecuaciones 13 a 16, mvLXCol se deriva como una versión escalada del vector de movimiento mvCol.
Mientras tanto, aunque el vector de movimiento se recorta en un rango dinámico, en el caso en el que se escala el vector de movimiento recortado, el vector de movimiento recortado puede estar de nuevo fuera del rango dinámico. Por lo tanto, después de que se deriva el vector de movimiento escalado, el rango dinámico del vector de movimiento puede estar limitado. En este caso, cada una de las Ecuaciones 15 y 16 se puede reemplazar con las Ecuaciones 19 y 20.
[Ecuación 19]
[Ecuación 20]
m vLXCol = C lip X - 1 « ( TMVBitWidth -1 )„ 1 « ( TMVBitWidth -1 ) -1, mvCoT)
IV. Método de transmisión de información para recortar el vector de movimiento temporal en el decodificador.
En lo sucesivo, se describirá un método de transmisión de información requerido para recortar un vector de movimiento temporal en un decodificador utilizando el mismo método que el de un codificador.
TMVBitWidth en el proceso de derivación de un vector de movimiento temporal se puede transmitir desde el codificador al decodificador a través de un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un encabezado de segmento o similar.
[Tabla 5]
Figure imgf000015_0001
bit_width_temporal_motion_vector_minus8 de la Tabla 5 especifica el ancho de bits del componente del vector de movimiento temporal. Cuando no está presente bit_width_temporal_motion_vector_minus8, se deducirá que es igual a 0. El ancho de bits del componente del vector de movimiento temporal se especifica de la siguiente manera:
[Ecuación 21]
TMVBitWidth — bit nidth témpora! m otion vector mi/msS> + 8 1. Método de transmisión de información 1 - en el caso en el que el vector de movimiento esté comprimido y la profundidad de bits del vector de movimiento esté limitada
[Tabla 6]
Figure imgf000015_0002
Figure imgf000016_0001
Haciendo referencia a la Tabla 6, en el caso en el que motion_vector_buffer_comp_flag sea igual a 1, especifica que se aplica el proceso de compresión de la memoria intermedia del vector de movimiento.
motion_vector_buffer_comp_ratio_log2 especifica la relación de compresión en el proceso de compresión de la memoria intermedia de vector de movimiento. Cuando no está presente motion_vector_buffer_comp_ratio_log2, se deducirá que es igual a 0. La relación de compresión de la memoria intermedia de vector de movimiento se especifica de la siguiente manera:
[Ecuación 22]
A f iH ujferCom pR a tío = 1« mofion vector buffer comp vatio log2
De nuevo haciendo referencia a la Tabla 6, en el caso en el que bit_depth_temporal_motion_vector_constraint_flag sea igual a 1, especifica que se aplica el proceso de restricción de limitación de profundidad de bits del vector de movimiento temporal.
Bit_depth_temporal_motion_vector_minus8 especifica la profundidad de bits del vector de movimiento temporal. Cuando no está presente bit_depth_temporal_motion_vector_minus8, se deducirá que es igual a 0. La profundidad de bits del vector de movimiento temporal se especifica de la siguiente manera:
[Ecuación 23]
7A/T7? i tDep ?h — bit_depth_femporal_motion_vector_minus& 8
2. Método de transmisión de información 2 - en el caso en el que la profundidad de bits del vector de movimiento esté limitada
[Tabla 7]
Figure imgf000016_0002
Haciendo referencia a la Tabla 7, en el caso en el que bit_depth_temporal_motion_vector_constraint_flag sea igual a 1, especifica que se aplica el proceso de restricción de profundidad de bits del vector de movimiento temporal.
bit_depth_temporal_motion_vector_minus8 especifica la profundidad de bits del vector de movimiento temporal.
Cuando no está presente bit_depth_temporal_motion_vector_minus8, se deducirá que es igual a 0. La profundidad de bits del vector de movimiento temporal se especifica de la siguiente manera:
[Ecuación 24]
TAÍVBitDepth — bit depth temporal_motion vector_minus& 8
3. Método de transmisión de información 3 - en el caso en el que la profundidad de bits del vector de movimiento esté limitada
[Tabla 8]
Figure imgf000017_0001
bit_depth_temporal_motion_vector_minus8 especifica la profundidad de bits del vector de movimiento temporal.
Cuando no está presente bit_depth_temporal_motion_vector_minus8, se deducirá que es igual a 0. La profundidad de bits del vector de movimiento temporal se especifica de la siguiente manera:
[Ecuación 25]
TAftTiitDepth = bit_depth tem pora ljn o tion vector_rninus& 8
4. Método de transmisión de información 4 - en el caso en el que la profundidad de bits esté limitada con respecto a cada uno de los componentes X e Y del vector de movimiento
[Tabla 9]
Figure imgf000017_0002
Haciendo referencia a la Tabla 9, en el caso en el que bit_depth_temporal_motion_vector_constraint_flag sea igual a 1, especifica que se aplica el proceso de restricción de profundidad de bits del vector de movimiento temporal. bit_depth_temporal_motion_vector_x_minus8 especifica la profundidad de bits del componente del vector de movimiento temporal x. Cuando no está presente bit_depth_temporal_motion_vector_x_minus8, se deducirá que es igual a 0. La profundidad de bit del componente x del vector de movimiento temporal se especifica de la siguiente manera:
[Ecuación 26]
TKÍVXBitD epth ~ b it_depth_(em poral_m otio íi_vector_x_m inusS + 8 bit_depth_temporal_motion_vector_y_minus8 especifica la profundidad de bits del componente y del vector de movimiento temporal. Cuando no está presente bit_depth_temporal_motion_vector_y_minus8, se deducirá que es igual a 0. La profundidad de bit del componente y del vector de movimiento temporal se especifica de la siguiente manera:
[Ecuación 27]
TK ÍV X B itD epth = b i l_ dep íh _íe m p o ra l_m o l ion _i ’ e c lor_y_tn m us 8 8 5. Método de transmisión de información 5 - en el caso en el que el vector de movimiento esté comprimido y la profundidad de bits del vector de movimiento esté limitada
[Tabla 10]
Figure imgf000018_0001
Haciendo referencia a la Tabla 10, en el caso en el que motion_vector_buffer_comp_flag sea igual a 1 especifica que se aplica el proceso de compresión de la memoria intermedia del vector de movimiento. motion_vector_buffer_comp_ratio_log2 especifica la relación de compresión en el proceso de compresión de la memoria intermedia del vector de movimiento. Cuando no está presente motion_vector_buffer_comp_ratio_log2, se deducirá que es igual a 0. La relación de compresión de la memoria intermedia del vector de movimiento se especifica de la siguiente manera:
[Ecuación 28]
KÍVBufferCompRatio = 1 « m otion vector bu.ffer com p ratio log2 V. Definición de rango dinámico a través de niveles de códec de video
El rango dinámico del vector de movimiento temporal se puede definir a través de un nivel de un códec de vídeo en lugar de ser transmitido a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen o el encabezado de segmento. El codificador y el decodificador pueden determinar un rango dinámico limitado del vector de movimiento usando información de nivel.
Además, incluso en los niveles, los rangos dinámicos y/o las profundidades de bits de cada uno de los componentes X e Y del vector de movimiento se pueden definir de manera diferente, y se pueden definir valores mínimos y valores máximos de cada uno de los componentes.
Las Tablas 11 y 12 muestran un ejemplo de un caso en el que TMVBitWidth en el proceso de derivación de un vector de movimiento temporal descrito anteriormente se define en los niveles.
[Tabla 11]
Figure imgf000019_0001
Haciendo referencia a la Tabla 11, TMVBitWidth se establece como MaxTMVBitWidth definido en los niveles. Aquí, MaxTMVBitWidth indica un ancho de bits máximo de un vector de movimiento temporal cuando el vector de movimiento temporal se almacena en la memoria.
Mientras tanto, TMVBitWidth también se puede definir en los niveles, y se puede transmitir una diferencia del valor definido (un valor delta) a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen o el encabezado de segmento. Es decir, TMVBitWidth se puede establecer como un valor obtenido sumando la diferencia transmitida a través del conjunto de parámetros de secuencia, el conjunto de parámetros de imagen o el encabezado de segmento a MaxTMVBitWidth definido en los niveles. Aquí, TMVBitWidth indica un ancho de bits del vector de movimiento temporal cuando el vector de movimiento temporal se almacena en la memoria.
[Tabla 12]
Figure imgf000020_0002
[Tabla 13]
Figure imgf000020_0001
delta_bit_w¡dth_temporal_mot¡on_vector_minus8 especifica el ancho de bits delta del componente del vector de movimiento temporal. Cuando no está presente delta_b¡t_w¡dth_temporal_mot¡on_vector_m¡nus8, se deducirá que es igual a 0. El ancho de bit del componente del vector de movimiento temporal se especifica de la siguiente manera:
[Ecuación 29]
TMVBitWidth delta _bit_width_temporal_motion_yector_minus<& + MaxTMVBitWidth Además, como se muestra en la Tabla 14, los rangos dinámicos de cada componente del vector de movimiento temporal también se pueden definir en niveles.
[Tabla 14]
Figure imgf000021_0001
Figure imgf000022_0001
Además, como se muestra en las Tablas 15 a 17, los anchos de bits de cada componente del vector de movimiento temporal también se pueden definir en niveles.
[Tabla 15]
Figure imgf000022_0002
[Tabla 16]
Figure imgf000023_0001
[Tabla 17]
Figure imgf000023_0002
Figure imgf000024_0001
Además, como se muestra en la Tabla 18, un ancho de bits de un componente Y del vector de movimiento temporal también se puede definir en niveles.
[Tabla 18]
Figure imgf000024_0002
Figure imgf000025_0001
Además, el rango dinámico del vector de movimiento temporal se puede definir como un valor fijo predefinido entre el codificador y el decodificador sin transmisión de información sobre una limitación del vector de movimiento o almacenar en forma de una profundidad de bits fija.
En el caso en el que TMVBitWidth se fija al mismo valor y se usa en el codificador y el decodificador, TMVBitWidth puede ser un número entero positivo tal como 4, 6, 8, 10, 12, 14, 16 o similar. Aquí, TMVBitWidth indica el ancho de bits del vector de movimiento temporal cuando el vector de movimiento temporal se almacena en la memoria.
La FIG. 14 es un diagrama de flujo que muestra un método de codificación de una imagen según la presente invención. Haciendo referencia a la FIG. 14, el método de codificación de una imagen incluye un paso de recorte (S1410), un paso de almacenamiento (S1420) y un paso de codificación (S1430).
Un aparato de codificación de una imagen y/o un aparato de decodificación de una imagen recortan un vector de movimiento de una imagen de referencia en un rango dinámico predeterminado (S1410). Como se describe arriba hasta "I. Proceso de recorte del vector de movimiento", el vector de movimiento que está fuera del rango dinámico está representado por un valor mínimo o un valor máximo del rango dinámico correspondiente. Por lo tanto, como se describe anteriormente a través de "IV. Método de transmisión de información para recortar el vector de movimiento temporal en el decodificador" y "V. Definición de rango dinámico a través de niveles de códec de video, la profundidad de bits está limitada a través del nivel del códec de video, el conjunto de parámetros de secuencia y similares, o el rango dinámico está limitado a través del nivel del códec de video, lo que lo hace posible recortar el vector de movimiento de la imagen de referencia en el rango dinámico predeterminado.
El aparato de codificación de una imagen y/o el aparato de decodificación de una imagen almacenan el vector de movimiento recortado de la imagen de referencia en una memoria intermedia como se describe anteriormente a través de "II. Proceso de almacenamiento de vector de movimiento" (S1420). El vector de movimiento se puede almacenar en la memoria intermedia junto con la imagen reconstruida o por separado.
El aparato de codificación de una imagen codifica un vector de movimiento de un bloque de árbol de codificación usando el vector de movimiento almacenado de la imagen de referencia (S1430). Como se describe anteriormente a través de "III. Proceso de derivación del vector de movimiento", en el método avanzado de predicción del vector de movimiento utilizado en el HEVC, se puede usar un vector de movimiento de un bloque que existe en una posición que es la misma o corresponde a la del bloque de árbol de codificación en la imagen de referencia así como vectores de movimiento de bloques reconstruidos colocados alrededor del bloque de árbol de codificación. Por lo tanto, el vector de movimiento del bloque de árbol de codificación también puede ser un vector de movimiento de la imagen de referencia, es decir, un vector de movimiento temporal, así como vectores de movimiento de bloques vecinos adyacentes al bloque de árbol de codificación.
Mientras tanto, dado que el rango dinámico del componente X y el componente Y del vector de movimiento de la imagen de referencia se puede definir de manera diferente, cada componente del vector de movimiento de la imagen de referencia se puede recortar en cada rango dinámico.
Además, se puede utilizar un método de compresión de un vector de movimiento de una imagen de referencia así como un método de limitación de un rango dinámico de un vector de movimiento de una imagen de referencia. En el caso de limitación del rango dinámico del vector de movimiento de la imagen de referencia o compresión del vector de movimiento de la imagen de referencia, se puede definir una bandera que indica el rango dinámico y el vector de movimiento y un parámetro relacionado con el mismo en un nivel de un códec de video, un conjunto de parámetros de secuencia o similares.
Además, se puede realizar un método de codificación tal como predicción de vector de movimiento, predicción de vector de movimiento avanzada, combinación de información de movimiento, salto de combinación de información de movimiento o similar, utilizando la información de movimiento almacenada en la memoria, es decir, la información de movimiento de la imagen de referencia.
La FIG. 15 es un diagrama de flujo que muestra un método de decodificación de una imagen según la presente invención. Haciendo referencia a la FIG. 15, el método de decodificación de una imagen incluye un paso de recorte (S1510), un paso de almacenamiento (S1520), un paso de derivación (S1530) y un paso de decodificación (S1540). El paso de recorte (S1510) y el paso de almacenamiento (S1520) de la FIG. 15 son similares al paso de recorte (S1410) y al paso de almacenamiento (S1420) de la FIG. 14 utilizando "I. Proceso de recorte de vector de movimiento" y "II. Proceso de almacenamiento de vector de movimiento" descritos anteriormente. Además, el paso de derivación (S1530) de la FIG. 15 usa "III. Proceso de derivación del vector de movimiento" descrito anteriormente y es simétrico al paso de codificación (S1430) de la FIG. 14. Por lo tanto, se omitirá una descripción detallada de los mismos.
Un aparato de decodificación de una imagen realiza la decodificación de interpredicción utilizando un vector de movimiento de un bloque de árbol de codificación (S1540). El aparato de decodificación de una imagen puede almacenar un vector de movimiento en una memoria usando al menos uno de un método de limitación de un rango dinámico de un vector de movimiento, un método de reducción de una resolución espacial de un vector de movimiento, un método de cuantificación de un vector de movimiento y un método de reducción de una resolución de representación de un vector de movimiento, y utilizar el vector de movimiento almacenado para predecir un vector de movimiento del bloque de árbol de codificación y combinar la información de movimiento del mismo.
Además, el aparato de decodificación de una imagen puede realizar un método de decodificación tal como predicción de vector de movimiento, predicción de vector de movimiento avanzada, combinación de información de movimiento, salto de combinación de información de movimiento o similar, utilizando la información de movimiento almacenada en la memoria, es decir, la información de movimiento de la imagen de referencia.

Claims (7)

REIVINDICACIONES
1. Un aparato de decodificación de imágenes, que comprende:
una memoria intermedia de imágenes de referencia para almacenar una pluralidad de imágenes de referencia; y una unidad de compensación de movimiento para generar un bloque de predicción para reconstruir un bloque a ser decodificado en una imagen actual
escalando un vector de movimiento de un bloque coubicado en una imagen coubicada, colPic, entre la pluralidad de imágenes de referencia, generándose el vector de movimiento escalado multiplicando un factor de escala y el vector de movimiento, y modificando el resultado de la multiplicación sumando primero un primer desplazamiento y luego aplicando una primera operación de desplazamiento aritmético,
recortando el vector de movimiento escalado en un primer rango predeterminado para generar un vector de movimiento recortado,
derivando un vector de movimiento del bloque a ser decodificado agregando el vector de movimiento recortado como un vector de movimiento predicho y una diferencia de vector de movimiento decodificada a partir de un flujo de bits, y
realizando interpredicción utilizando el vector de movimiento del bloque a ser decodificado, en caso de que una primera diferencia de recuento de orden de imágenes, POC, entre la imagen actual y una primera imagen de referencia a la que se hace referencia por el bloque a ser decodificado sea diferente de una segunda diferencia de POC entre la imagen coubicada y una segunda imagen de referencia a la que se hace referencia por el bloque coubicado,
en donde el factor de escala se calcula multiplicando la primera diferencia de POC recortada en un segundo rango predeterminado y un valor proporcional inverso de la segunda diferencia de POC recortada en el segundo rango predeterminado, modificando un resultado de la multiplicación agregando un segundo desplazamiento y luego aplicando una segunda operación de desplazamiento aritmético, y recortando el resultado modificado de la multiplicación en un tercer rango predeterminado, el valor proporcional inverso se calcula dividiendo un valor intermedio por la segunda diferencia de POC, y
el valor intermedio se calcula usando un valor absoluto de la segunda diferencia de POC dividido por 2, y se modifica en base a una tercera operación de desplazamiento,
en donde el bloque coubicado se determina mediante la realización de
calcular una primera posición correspondiente a una posición inferior derecha del bloque a ser decodificado en la imagen actual tomando una posición superior izquierda del bloque a ser decodificado en la imagen actual y agregando un ancho y una altura del bloque a ser decodificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser decodificado en la imagen actual, respectivamente;
determinar si un primer bloque que cubre la primera posición calculada en la imagen coubicada está codificado en un modo de intrapredicción;
en caso de que el primer bloque no esté codificado en un modo de intrapredicción, determinar el primer bloque en la imagen coubicada como el bloque coubicado,
en caso de que el primer bloque esté codificado en un modo de intrapredicción, calcular una segunda posición correspondiente a una posición central del bloque a ser decodificado en la imagen actual tomando la posición superior izquierda del bloque a ser decodificado en la imagen actual y agregar la mitad del ancho y la mitad de la altura del bloque a ser decodificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser decodificado en la imagen actual, respectivamente; y
determinar un segundo bloque que cubra la segunda posición calculada en la imagen coubicada como el bloque coubicado.
2. El aparato de decodificación de imágenes de la reivindicación 1, en donde cada uno del primer rango predeterminado al tercer rango predeterminado es un rango de valor fijo.
3. Un método de decodificación de imágenes, que comprende:
(a) escalar un vector de movimiento de un bloque coubicado contenido en una imagen coubicada, colPic, entre una pluralidad de imágenes de referencia, el vector de movimiento escalado que se genera multiplicando un factor de escala y el vector de movimiento, y modificar el resultado de la multiplicación agregando primero un primer desplazamiento y luego aplicando una primera operación de desplazamiento aritmético;
(b) recortar el vector de movimiento escalado en un primer rango predeterminado para generar un vector de movimiento recortado;
(c) derivar un vector de movimiento de un bloque a ser decodificado en una imagen actual agregando el vector de movimiento recortado como un vector de movimiento predicho y una diferencia de vector de movimiento decodificada a partir de un flujo de bits; y
(d) reconstruir el bloque a ser decodificado realizando la interpredicción utilizando el vector de movimiento del bloque a ser decodificado,
en donde los pasos (a) a (d) se realizan en caso de que una primera diferencia de recuento de orden de imagen, POC, entre la imagen actual y una primera imagen de referencia a la que se hace referencia por el bloque a ser decodificado sea diferente de una segunda diferencia de POC entre la imagen coubicada y una segunda imagen de referencia a la que se hace referencia por el bloque coubicado,
en donde el factor de escala se calcula multiplicando la primera diferencia de POC recortada en un segundo rango predeterminado y un valor proporcional inverso de la segunda diferencia de POC recortada en el segundo rango predeterminado, modificando el resultado de la multiplicación agregando primero un segundo desplazamiento y luego aplicando una segunda operación de desplazamiento aritmético y recortando el resultado modificado de la multiplicación en un tercer rango predeterminado, el valor proporcional inverso se calcula dividiendo un valor intermedio por la segunda diferencia de POC, y
el valor intermedio se calcula usando un valor absoluto de la segunda diferencia de POC dividido por 2, y se modifica en base a una tercera operación de desplazamiento,
en donde el bloque coubicado se determina mediante la realización de
calcular una primera posición correspondiente a una posición inferior derecha del bloque a ser decodificado en la imagen actual tomando una posición superior izquierda del bloque a ser decodificado en la imagen actual y agregando un ancho y una altura del bloque a ser decodificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser decodificado en la imagen actual, respectivamente;
determinar si un primer bloque que cubre la primera posición calculada en la imagen coubicada está codificado en un modo de intrapredicción;
en caso de que el primer bloque no esté codificado en un modo de intrapredicción, determinar el primer bloque en la imagen coubicada como el bloque coubicado,
en caso de que el primer bloque esté codificado en un modo de intrapredicción, calcular una segunda posición correspondiente a una posición central del bloque a ser decodificado en la imagen actual tomando la posición superior izquierda del bloque a ser decodificado en la imagen actual y añadir la mitad del ancho y la mitad de la altura del bloque a ser decodificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser decodificado en la imagen actual, respectivamente; y
determinar un segundo bloque que cubra la segunda posición calculada en la imagen coubicada como el bloque coubicado.
4. El método de decodificación de imágenes de la reivindicación 3, en donde cada uno del primer rango predeterminado al tercer rango predeterminado es un rango de valor fijo.
5. Un aparato de codificación de imágenes, que comprende:
una memoria intermedia de imágenes de referencia para almacenar una pluralidad de imágenes de referencia; una unidad de estimación de movimiento para generar un vector de movimiento de un bloque a ser codificado en una imagen actual; y
una unidad de codificación para generar un flujo de bits
escalando un vector de movimiento de un bloque coubicado en una imagen coubicada, colPic, entre la pluralidad de imágenes de referencia, el vector de movimiento escalado que se genera multiplicando un factor de escala y el vector de movimiento, y modificando un resultado de la multiplicación agregando primero un primer desplazamiento y luego aplicando una primera operación de desplazamiento aritmético,
recortando el vector de movimiento escalado en un primer rango predeterminado para generar un vector de movimiento recortado, y
codificando una diferencia de vector de movimiento obtenida restando el vector de movimiento recortado como un vector de movimiento predicho del vector de movimiento del bloque a ser codificado, en caso de que una primera diferencia de recuento de orden de imagen, POC, entre la imagen actual y una primera imagen de referencia a la que se hace referencia por el bloque a ser codificado es diferente de una segunda diferencia de POC entre la imagen coubicada y una segunda imagen de referencia a la que se hace referencia por el bloque coubicado,
en donde el factor de escala se calcula multiplicando la primera diferencia de POC recortada en un segundo rango predeterminado y un valor proporcional inverso de la segunda diferencia de POC recortada en el segundo rango predeterminado, modificando el resultado de la multiplicación agregando primero un segundo desplazamiento y luego aplicando una segunda operación de desplazamiento aritmético,
y recortando el resultado modificado de la multiplicación en un tercer rango predeterminado, el valor proporcional inverso se calcula dividiendo un valor intermedio por la segunda diferencia de POC, y
el valor intermedio se calcula usando un valor absoluto de la segunda diferencia de POC dividido por 2, y se modifica en base a una tercera operación de desplazamiento,
en donde el bloque coubicado se determina mediante la realización de
calcular una primera posición correspondiente a una posición inferior derecha del bloque a ser codificado en la imagen actual tomando una posición superior izquierda del bloque a ser codificado en la imagen actual y agregar un ancho y una altura del bloque a ser codificado en la imagen actual en la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser codificado en la imagen actual, respectivamente;
determinar si un primer bloque que cubre la primera posición calculada en la imagen coubicada está codificado en un modo de intrapredicción;
en caso de que el primer bloque no esté codificado en un modo de intrapredicción, determinar el primer bloque en la imagen coubicada como el bloque coubicado,
en caso de que el primer bloque esté codificado en un modo de intrapredicción, calcular una segunda posición correspondiente a una posición central del bloque a ser codificado en la imagen actual tomando la posición superior izquierda del bloque a ser codificado en la imagen actual y añadir la mitad del ancho y la mitad de la altura del bloque a ser codificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser codificado en la imagen actual, respectivamente; y
determinar un segundo bloque que cubra la segunda posición calculada en la imagen coubicada como el bloque coubicado.
6. El aparato de codificación de imágenes de la reivindicación 5, en donde cada uno del primer rango predeterminado al tercer rango predeterminado es un rango de valor fijo.
7. Un método de codificación de imágenes, que comprende:
generar un vector de movimiento de un bloque a ser codificado en una imagen actual;
(a) escalar un vector de movimiento de un bloque coubicado contenido en una imagen coubicada, entre una pluralidad de imágenes de referencia, el vector de movimiento escalado que se genera multiplicando un factor de escala y el vector de movimiento, y modificando el resultado de la multiplicación agregando primero un primer desplazamiento y luego aplicando una primera operación de desplazamiento aritmético;
(b) recortar el vector de movimiento escalado en un primer rango predeterminado para generar un vector de movimiento recortado; y
(c) codificar una diferencia de vector de movimiento obtenida restando el vector de movimiento recortado como un vector de movimiento predicho del vector de movimiento del bloque a ser codificado,
en donde los pasos (a) a (c) se realizan en caso de que una primera diferencia de recuento de orden de imagen, POC, entre la imagen actual y una primera imagen de referencia a la que se hace referencia por el bloque a ser codificado sea diferente de una segunda diferencia de POC entre la imagen coubicada y una segunda imagen de referencia a la que se hace referencia por el bloque coubicado, y
en donde el factor de escala se calcula multiplicando la primera diferencia de POC recortada en un segundo rango predeterminado y un valor proporcional inverso de la segunda diferencia de POC recortada en el segundo rango predeterminado, modificando el resultado de la multiplicación agregando primero un segundo desplazamiento y luego aplicando una segunda operación de desplazamiento aritmético,
y recortando el resultado modificado de la multiplicación en un tercer rango predeterminado, el valor proporcional inverso se calcula dividiendo un valor intermedio por la segunda diferencia de POC, y
el valor intermedio se calcula usando un valor absoluto de la segunda diferencia de POC dividido por 2, y se modifica en base a una tercera operación de desplazamiento,
en donde el bloque coubicado se determina mediante la realización de
calcular una primera posición correspondiente a una posición inferior derecha del bloque a ser codificado en la imagen actual tomando una posición superior izquierda del bloque a ser codificado en la imagen actual y agregar un ancho y una altura del bloque que a ser codificado en la imagen actual en la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser codificado en la imagen actual, respectivamente;
determinar si un primer bloque que cubre la primera posición calculada en la imagen coubicada está codificado en un modo de intrapredicción;
en caso de que el primer bloque no esté codificado en un modo de intrapredicción, determinar el primer bloque en la imagen coubicada como el bloque coubicado,
en caso de que el primer bloque esté codificado en un modo de intrapredicción, calcular una segunda posición correspondiente a una posición central del bloque a ser codificado en la imagen actual tomando la posición superior izquierda del bloque a ser codificado en la imagen actual y agregar la mitad del ancho y la mitad de la altura del bloque a ser codificado en la imagen actual a la coordenada x y la coordenada y de la posición superior izquierda del bloque a ser codificado en la imagen actual, respectivamente; y
determinar un segundo bloque que cubra la segunda posición calculada en la imagen coubicada como el bloque coubicado.
ES12742304T 2011-01-31 2012-01-31 Método y aparato para codificar/decodificar imágenes usando un vector de movimiento Active ES2899990T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR20110009636 2011-01-31
KR20110019166 2011-03-03
KR1020110050853A KR20120088488A (ko) 2011-01-31 2011-05-27 시간적 움직임 벡터 저장 방법 및 그 장치
KR1020110065707A KR20120088494A (ko) 2011-01-31 2011-07-01 시간적 움직임 벡터 저장 방법 및 그 장치
PCT/KR2012/000770 WO2012105807A2 (ko) 2011-01-31 2012-01-31 움직임 벡터를 이용한 영상 부호화/복호화 방법 및 장치

Publications (1)

Publication Number Publication Date
ES2899990T3 true ES2899990T3 (es) 2022-03-15

Family

ID=46873758

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12742304T Active ES2899990T3 (es) 2011-01-31 2012-01-31 Método y aparato para codificar/decodificar imágenes usando un vector de movimiento

Country Status (16)

Country Link
US (6) US10244252B2 (es)
EP (2) EP2672708B1 (es)
JP (8) JP5911890B2 (es)
KR (5) KR20120088488A (es)
CN (11) CN108174215B (es)
BR (5) BR122020015455B1 (es)
CA (3) CA3220287A1 (es)
DK (1) DK2672708T3 (es)
ES (1) ES2899990T3 (es)
HK (1) HK1251838A1 (es)
HU (1) HUE056876T2 (es)
PL (1) PL2672708T3 (es)
PT (1) PT2672708T (es)
RU (1) RU2586017C2 (es)
SI (1) SI2672708T1 (es)
WO (1) WO2012105807A2 (es)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088488A (ko) 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
KR101706318B1 (ko) 2012-10-03 2017-02-15 에이치에프아이 이노베이션 인크. 3차원 비디오 코딩을 위한 모션 데이터 버퍼 감소 방법 및 장치
US10015515B2 (en) * 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
WO2015105003A1 (ja) 2014-01-08 2015-07-16 ソニー株式会社 復号装置および復号方法、並びに、符号化装置および符号化方法
KR102105606B1 (ko) 2014-06-02 2020-05-04 한국전자통신연구원 데이터 압축 장치
CN111818334B (zh) * 2014-09-30 2022-04-01 寰发股份有限公司 用于视频编码的自适应运动向量分辨率的方法
EP4221202A1 (en) * 2015-06-05 2023-08-02 Dolby Laboratories Licensing Corporation Image encoding and decoding method and image decoding device
CN108141595A (zh) * 2015-09-23 2018-06-08 Lg 电子株式会社 图像编码/解码方法及其设备
WO2017086738A1 (ko) 2015-11-19 2017-05-26 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
KR20170058838A (ko) 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
CN106954074B (zh) * 2016-01-07 2019-12-20 青岛海信电器股份有限公司 一种视频数据处理方法和装置
CN118784880A (zh) 2016-02-09 2024-10-15 弗劳恩霍夫应用研究促进协会 解码器、编码器、方法、网络设备以及可读存储介质
CN105744275B (zh) * 2016-02-22 2019-04-05 青岛海信电器股份有限公司 一种视频数据输入、输出方法和装置
CN109804627B (zh) * 2016-08-11 2023-07-25 Lx 半导体科技有限公司 图像编码/解码方法和设备
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
DE112018002096T5 (de) * 2017-04-21 2020-01-09 Zenimax Media Inc. Spielereingabebewegungskompensation durch antizipation von bewegungsvektoren
CN120568065A (zh) 2017-04-21 2025-08-29 泽尼马克斯媒体公司 用于游戏生成的运动向量的系统和方法
WO2018210315A1 (en) * 2017-05-18 2018-11-22 Mediatek Inc. Method and apparatus of motion vector constraint for video coding
MX2020006790A (es) 2018-02-28 2020-09-09 Samsung Electronics Co Ltd Metodo y aparato de decodificacion de video y metodo y aparato de codificacion de video.
KR102516233B1 (ko) * 2018-04-02 2023-03-30 엘지전자 주식회사 움직임 벡터에 기반한 영상 코딩 방법 및 그 장치
US10873748B2 (en) * 2018-05-12 2020-12-22 Qualcomm Incorporated Storage of high precision motion vectors in video coding
CN112040243B (zh) * 2018-06-04 2021-06-29 华为技术有限公司 获取运动矢量的方法和装置
CN110662075B (zh) 2018-06-29 2023-04-25 北京字节跳动网络技术有限公司 改进的时域运动矢量预测推导
KR20210038846A (ko) 2018-06-29 2021-04-08 브이아이디 스케일, 인크. Affine motion 모델 기반 비디오 코딩을 위한 적응형 제어 포인트 선택
KR20200028856A (ko) 2018-09-07 2020-03-17 김기백 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
KR20200032021A (ko) * 2018-09-17 2020-03-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN112997494B (zh) * 2018-10-08 2023-05-09 北京达佳互联信息技术有限公司 用于视频编码的运动矢量存储
US11375230B2 (en) * 2018-11-16 2022-06-28 Sharp Kabushiki Kaisha Systems and methods for deriving a motion vector prediction in video coding
WO2020098809A1 (en) 2018-11-17 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Construction of affine candidates in video processing
CN117499668A (zh) * 2018-12-21 2024-02-02 北京字节跳动网络技术有限公司 具有运动矢量差的Merge模式中的运动矢量精度
CN113228675B (zh) * 2018-12-21 2024-08-06 北京字节跳动网络技术有限公司 视频处理中的运动矢量比特深度
CN115348449B (zh) * 2018-12-29 2024-05-17 华为技术有限公司 编码器,解码器和使用压缩mv存储的对应方法
CN119011822A (zh) 2019-06-11 2024-11-22 Lg电子株式会社 图像编解码方法及图像数据的发送方法
KR102220230B1 (ko) 2019-06-21 2021-02-25 삼성전자주식회사 주변 움직임 정보를 이용하여 움직임 정보를 부호화 및 복호화하는 장치, 및 방법
MX2022001595A (es) 2019-08-06 2022-03-11 Op Solutions Llc Método de señalización implícita de gestión de resolución adaptativa basada en el tipo de trama.
KR20220088679A (ko) * 2019-08-06 2022-06-28 오피 솔루션즈, 엘엘씨 적응적 해상도 관리 예측 재스케일링
WO2021026324A1 (en) * 2019-08-06 2021-02-11 Op Solutions Adaptive resolution management prediction rescaling
AU2020326881A1 (en) 2019-08-06 2022-03-24 Op Solutions, Llc Block-based adaptive resolution management
EP4029244A4 (en) * 2019-09-22 2023-06-28 HFI Innovation Inc. Method and apparatus of sample clipping for prediction refinement with optical flow in video coding
MX2022005534A (es) 2019-11-08 2022-08-04 Op Solutions Llc Metodos y sistemas para recorte adaptativo..
KR20220100047A (ko) * 2019-12-23 2022-07-14 엘지전자 주식회사 필터링 기반 영상 코딩 장치 및 방법
US11792438B2 (en) 2020-10-02 2023-10-17 Lemon Inc. Using neural network filtering in video coding
KR20220093915A (ko) 2020-12-28 2022-07-05 삼성전자주식회사 반도체 집적회로 레이아웃의 확률적 취약점 검출 방법 및 이를 수행하는 컴퓨터 시스템
US12022098B2 (en) * 2021-03-04 2024-06-25 Lemon Inc. Neural network-based in-loop filter with residual scaling for video coding
US12206861B2 (en) * 2022-01-12 2025-01-21 Tencent America LLC Motion vector restriction for out-of-frame boundary conditions
US12413759B2 (en) * 2023-05-08 2025-09-09 Tencent America LLC Extension to block adaptive weighted prediction

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5262854A (en) * 1992-02-21 1993-11-16 Rca Thomson Licensing Corporation Lower resolution HDTV receivers
EP0921688B1 (en) * 1997-06-25 2007-08-22 Nippon Telegraph and Telephone Corporation Moving vector predictive coding method and moving vector decoding method, and storage medium stored with moving vector predictive coding program and moving vector decoding program
US7206346B2 (en) * 1997-06-25 2007-04-17 Nippon Telegraph And Telephone Corporation Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs
JP2914448B2 (ja) * 1997-06-25 1999-06-28 日本電信電話株式会社 動きベクトル予測符号化方法および動きベクトル復号方法、予測符号化装置および復号装置、並びに、動きベクトルの予測符号化プログラムおよび復号プログラムを記録した記録媒体
JPH11122624A (ja) 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
WO2003024116A1 (en) 2001-09-12 2003-03-20 Koninklijke Philips Electronics N.V. Motion estimation and/or compensation
CN1266947C (zh) 2001-12-25 2006-07-26 松下电器产业株式会社 活动图象压缩编码装置及运动矢量检测方法
US7177356B2 (en) * 2002-01-11 2007-02-13 Webtv Networks, Inc. Spatially transcoding a video stream
WO2004006586A1 (ja) * 2002-07-02 2004-01-15 Matsushita Electric Industrial Co., Ltd. 画像符号化方法および画像復号化方法
US6744387B2 (en) 2002-07-10 2004-06-01 Lsi Logic Corporation Method and system for symbol binarization
CN101090499A (zh) 2002-07-17 2007-12-19 达丽星网络有限公司 在混合视频codec比特流之间进行码转换的方法和装置
US20040057521A1 (en) 2002-07-17 2004-03-25 Macchina Pty Ltd. Method and apparatus for transcoding between hybrid video CODEC bitstreams
WO2004032506A1 (en) * 2002-10-01 2004-04-15 Thomson Licensing S.A. Implicit weighting of reference pictures in a video encoder
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
AU2003282462A1 (en) * 2003-10-09 2005-05-26 Thomson Licensing Direct mode derivation process for error concealment
JP4591657B2 (ja) 2003-12-22 2010-12-01 キヤノン株式会社 動画像符号化装置及びその制御方法、プログラム
US7961963B2 (en) * 2005-03-18 2011-06-14 Sharp Laboratories Of America, Inc. Methods and systems for extended spatial scalability with picture-level adaptation
KR101406156B1 (ko) * 2006-02-02 2014-06-13 톰슨 라이센싱 움직임 보상 예측을 위한 적응 가중 선택 방법 및 장치
US8494052B2 (en) 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
JP4712643B2 (ja) * 2006-08-17 2011-06-29 富士通セミコンダクター株式会社 フレーム間予測処理装置、フレーム間予測方法、画像符号化装置及び画像復号装置
US20080165860A1 (en) 2006-08-31 2008-07-10 Zohair Sahraoui H.264 Data processing
JP2008067194A (ja) * 2006-09-08 2008-03-21 Toshiba Corp フレーム補間回路、フレーム補間方法、表示装置
WO2008039857A2 (en) 2006-09-26 2008-04-03 Dilithium Networks Pty Ltd. Method and apparatus for compressed video bitstream conversion with reduced-algorithmic-delay
KR101365574B1 (ko) 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
JP5666293B2 (ja) 2007-04-12 2015-02-12 トムソン ライセンシングThomson Licensing ビデオ・エンコーディング、およびデコーディングのためのスキップ/ダイレクトモードのコンテクストに依存するマージのための方法と装置
CN101115200B (zh) * 2007-04-20 2010-05-19 西安交通大学 一种有效的运动矢量可伸缩编码方法
TWI338869B (en) 2007-08-03 2011-03-11 Via Tech Inc Method and apparatus for block-based digital encoded picture
US8908765B2 (en) * 2007-11-15 2014-12-09 General Instrument Corporation Method and apparatus for performing motion estimation
US8345763B2 (en) * 2007-11-27 2013-01-01 Mediatek Inc. Motion compensation method and integrated circuit utilizing the same
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
CN101873483B (zh) * 2009-04-24 2012-08-29 深圳市九洲电器有限公司 一种运动估计方法及采用运动估计方法的编码芯片、装置
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
JP5209572B2 (ja) * 2009-06-29 2013-06-12 三菱電機株式会社 画像符号化装置及び画像復号装置
JP5738549B2 (ja) 2009-07-22 2015-06-24 株式会社Sumco 包装済石英ガラスルツボ用クレーン装置およびこの装置を用いる包装済石英ガラスルツボの梱包方法
KR20110017302A (ko) 2009-08-13 2011-02-21 삼성전자주식회사 움직임 벡터의 정확도 조절을 이용한 영상 부호화, 복호화 방법 및 장치
KR20110019166A (ko) 2009-08-19 2011-02-25 삼화주철공업 주식회사 소음 방지용 맨홀
KR101377530B1 (ko) * 2009-08-21 2014-03-27 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR101074238B1 (ko) 2009-11-09 2011-10-14 부경대학교 산학협력단 초임계 처리를 이용한 오징어 및 고등어 내장에서의 단당류를 수득하는 방법
KR101418104B1 (ko) 2010-03-08 2014-07-16 에스케이 텔레콤주식회사 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN102823248B (zh) 2010-04-08 2015-06-24 株式会社东芝 图像编码方法以及图像编码装置
CN101841712A (zh) 2010-04-28 2010-09-22 广西大学 面向全景视频编码的b帧扩展直接模式
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
US9137544B2 (en) * 2010-11-29 2015-09-15 Mediatek Inc. Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes
US9258573B2 (en) 2010-12-07 2016-02-09 Panasonic Intellectual Property Corporation Of America Pixel adaptive intra smoothing
KR20120088488A (ko) 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
BR112013022522B8 (pt) * 2011-03-14 2022-05-31 Hfi Innovation Inc Método e aparelho para derivação de candidato de vetor de movimento e predição de candidato de vetor de movimento
CN107105286B (zh) * 2011-03-14 2020-01-21 寰发股份有限公司 推导运动向量预测子的方法与装置
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
US9083983B2 (en) 2011-10-04 2015-07-14 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
JP5895469B2 (ja) * 2011-11-18 2016-03-30 富士通株式会社 動画像符号化装置、および動画像復号装置

Also Published As

Publication number Publication date
EP3930332A1 (en) 2021-12-29
CN108174219B (zh) 2020-11-24
KR101461498B1 (ko) 2014-11-17
JP2018011323A (ja) 2018-01-18
US12028545B2 (en) 2024-07-02
EP2672708B1 (en) 2021-11-17
US20200228822A1 (en) 2020-07-16
JP6783355B2 (ja) 2020-11-11
JP2024167446A (ja) 2024-12-03
JP7369679B2 (ja) 2023-10-26
CN108174220A (zh) 2018-06-15
DK2672708T3 (da) 2021-12-13
CN108124162B (zh) 2020-11-24
PT2672708T (pt) 2021-12-16
CN108124161A (zh) 2018-06-05
KR20140102639A (ko) 2014-08-22
HK1251832A1 (zh) 2019-04-04
CN103583044B (zh) 2018-01-26
HUE056876T2 (hu) 2022-03-28
US12003753B2 (en) 2024-06-04
CA3220287A1 (en) 2012-08-09
CN103583044A (zh) 2014-02-12
CN107846596A (zh) 2018-03-27
US20190149837A1 (en) 2019-05-16
CN107888927B (zh) 2020-11-24
WO2012105807A2 (ko) 2012-08-09
CN108174215A (zh) 2018-06-15
CN108124161B (zh) 2020-11-24
US12301859B2 (en) 2025-05-13
PL2672708T3 (pl) 2022-02-07
CA2826157A1 (en) 2012-08-09
CA2826157C (en) 2019-09-24
BR122014018140B1 (pt) 2022-06-07
KR20130093057A (ko) 2013-08-21
JP2016129371A (ja) 2016-07-14
BR112013019495B1 (pt) 2022-05-17
CN108174215B (zh) 2020-11-24
JP2021007261A (ja) 2021-01-21
HK1251838A1 (zh) 2019-04-12
CN107888916A (zh) 2018-04-06
US20240259584A1 (en) 2024-08-01
RU2013140464A (ru) 2015-03-10
JP6550429B2 (ja) 2019-07-24
BR122020015452B1 (pt) 2024-01-30
KR20120088488A (ko) 2012-08-08
US10244252B2 (en) 2019-03-26
JP5911890B2 (ja) 2016-04-27
BR112013019495A2 (pt) 2018-04-03
KR101477771B1 (ko) 2015-01-05
BR122014018140A2 (pt) 2019-04-30
CN108174216A (zh) 2018-06-15
KR20130084286A (ko) 2013-07-24
EP2672708A2 (en) 2013-12-11
CN108124162A (zh) 2018-06-05
US10645411B2 (en) 2020-05-05
KR101378888B1 (ko) 2014-04-02
US20220086479A1 (en) 2022-03-17
KR20130084287A (ko) 2013-07-24
WO2012105807A3 (ko) 2012-12-13
CN107888927A (zh) 2018-04-06
BR122020015455B1 (pt) 2022-12-27
JP2019193298A (ja) 2019-10-31
JP6203878B2 (ja) 2017-09-27
JP2014509479A (ja) 2014-04-17
BR122020015411B1 (pt) 2022-12-27
RU2586017C2 (ru) 2016-06-10
EP2672708A4 (en) 2015-01-21
JP7757492B2 (ja) 2025-10-21
CN108174221A (zh) 2018-06-15
JP2026001203A (ja) 2026-01-06
CA3050903C (en) 2024-01-16
JP2023018075A (ja) 2023-02-07
CA3050903A1 (en) 2012-08-09
US20250234030A1 (en) 2025-07-17
CN108174219A (zh) 2018-06-15
US20130294522A1 (en) 2013-11-07
SI2672708T1 (sl) 2022-01-31
KR101461499B1 (ko) 2014-11-17

Similar Documents

Publication Publication Date Title
ES2899990T3 (es) Método y aparato para codificar/decodificar imágenes usando un vector de movimiento
KR101428030B1 (ko) 움직임 벡터를 이용한 영상 복호화 장치