ES3033610T3 - Image decoding method and device on basis of affine motion prediction using constructed affine mvp candidate in image coding system - Google Patents

Image decoding method and device on basis of affine motion prediction using constructed affine mvp candidate in image coding system

Info

Publication number
ES3033610T3
ES3033610T3 ES24169958T ES24169958T ES3033610T3 ES 3033610 T3 ES3033610 T3 ES 3033610T3 ES 24169958 T ES24169958 T ES 24169958T ES 24169958 T ES24169958 T ES 24169958T ES 3033610 T3 ES3033610 T3 ES 3033610T3
Authority
ES
Spain
Prior art keywords
block
motion vector
current block
available
neighboring
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
ES24169958T
Other languages
English (en)
Inventor
Jaeho Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Application granted granted Critical
Publication of ES3033610T3 publication Critical patent/ES3033610T3/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes

Landscapes

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

Abstract

Un método de decodificación de imágenes realizado por un dispositivo de decodificación según la presente divulgación comprende los pasos de: obtener información de predicción de movimiento relacionada con un bloque actual a partir de un flujo de bits; generar una lista de candidatos MVP afines para el bloque actual; derivar CPMVP para los CP del bloque actual sobre la base de la lista de candidatos MVP afines; derivar CPMVD para los CP del bloque actual sobre la base de la información de predicción de movimiento; derivar CPMV para los CP del bloque actual sobre la base de los CPMVP y los CPMVD; y derivar muestras de predicción para el bloque actual sobre la base de los CPMV. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de mvp afín construido en el sistema de codificación de imágenes
Antecedentes de la divulgación
Campo de la divulgación
La presente divulgación se refiere a una técnica de codificación de imágenes y, más particularmente, a un método y dispositivo de decodificación de imágenes basado en predicción de movimiento afín en un sistema de codificación de imágenes.
Técnica relacionada
La demanda de imágenes de alta resolución y alta calidad tales como imágenes en alta definición (HD) e imágenes en ultra alta definición (UHD) ha crecido recientemente en diversos campos. Como los datos de imagen tienen alta resolución y alta calidad, la cantidad de información o bits que se transmitirán aumenta en relación con los datos de imagen heredados. Por lo tanto, cuando los datos de imagen se transmiten usando un medio tal como una línea de banda ancha alámbrica/inalámbrica convencional o los datos de imagen se almacenan usando un medio de almacenamiento existente, se aumentan el coste de transmisión y el coste de almacenamiento de los mismos.
Por consiguiente, existe la necesidad de una técnica de compresión de imagen altamente eficaz para transmitir, almacenar y reproducir de forma efectiva información de imágenes de alta resolución y alta calidad.
Documento del Joint Video Exploration Team JVET-K0337 de Han et al. titulado "CE4.1.3: Affine motion compensation prediction'', 11a reunión: Ljubljana, Eslovenia, 10-18 julio 2018, describe tecnologías de predicción de compensación de movimiento afines y presenta algunos resultados de prueba.
Documento del Joint Video Experts Team JVET-J1024r2 de Yang et al. titulado "Description of CE4: Inter prediction and motion vector coding", 10a reunión: San Diego, EE. UU., 10-20 abril 2018 investiga distintas técnicas de codificación de vector de movimiento e interpredicción.
Sumario
Un problema técnico que va a abordar la presente divulgación radica en proporcionar un método y un aparato que aumenten la eficacia de la codificación de imágenes.
Otro problema técnico que va a abordar la presente divulgación radica en proporcionar un método y aparato de decodificación de imágenes que construya una lista de candidatos de mvp afines del bloque actual derivando un candidato de mvp afín construido basándose en un bloque vecino únicamente cuando todos los vectores de movimiento candidatos para los CP están disponibles, y realizar la predicción para el bloque actual basándose en la lista de candidatos de mvp afines construida.
La invención se define mediante las reivindicaciones independientes. Las características de las realizaciones ilustrativas están definidas en las reivindicaciones dependientes.
De acuerdo con la presente divulgación, es posible aumentar la eficacia global de compresión de imágenes/vídeo.
De acuerdo con la presente divulgación, es posible aumentar la eficacia de la codificación de imágenes basándose en la predicción de movimiento afín.
De acuerdo con la presente divulgación, al derivar la lista de candidatos de mvp afines, únicamente cuando todos los vectores de movimiento candidatos para los CP del candidato de mvp afín construido están disponibles, se puede añadir el candidato de mvp afín construido, a través del cual es posible reducir la complejidad del proceso de derivación del candidato de mvp afín construido y el proceso de construcción de la lista de candidatos de mvp afines, y mejorar la eficacia de codificación.
Breve descripción de los dibujos
La Figura 1 es un diagrama esquemático que ilustra una configuración de un aparato de codificación de vídeo al que es aplicable la presente divulgación.
La Figura 2 es un diagrama esquemático que ilustra una configuración de un aparato de decodificación de vídeo al que es aplicable la presente divulgación.
La Figura 3 ilustra un movimiento expresado a través de un modelo de movimiento afín.
La Figura 4 ilustra el modelo de movimiento afín en el que se usan vectores de movimiento para 3 puntos de
control.
La Figura 5 ilustra un modelo de movimiento afín en el que se usan vectores de movimiento para 2 puntos de
control.
La Figura 6 ilustra un método para derivar un vector de movimiento en una base de subbloque basándose en
el modelo de movimiento afín.
La Figura 7 es un diagrama de flujo que ilustra un método de predicción de movimiento afín de acuerdo con
una realización de la presente divulgación.
La Figura 8 es un diagrama para describir un método para derivar un predictor de vector de movimiento en un
punto de control de acuerdo con una realización de la presente divulgación.
La Figura 9 es un diagrama para describir un método para derivar un predictor de vector de movimiento en un
punto de control de acuerdo con una realización de la presente divulgación.
La Figura 10 ilustra un ejemplo de predicción afín que se realiza en un caso en donde el bloque vecino A se selecciona como candidato de fusión afín.
La Figura 11 representa ilustrativamente bloques vecinos para derivar el candidato afín heredado.
La Figura 12 representa ilustrativamente un candidato espacial para el candidato afín construido.
La Figura 13 representa ilustrativamente un ejemplo de construcción de una lista de mvp afines.
La Figura 14 representa un ejemplo de derivación del candidato construido.
La Figura 15 representa un ejemplo de derivación del candidato construido.
La Figura 16 representa un ejemplo de derivación del candidato construido para un modelo de movimiento de afines de 4 aplicado al bloque actual.
La Figura 17 representa un ejemplo de derivación del candidato construido para un modelo de movimiento de
afines de 6 aplicado al bloque actual.
La Figura 18 representa un ejemplo de derivación de un candidato construido que incluye los CPMVP para los
CP seleccionados de forma adaptativa basándose en la anchura y la altura del bloque actual.
La Figura 19 representa un ejemplo de derivación de un candidato construido de un bloque actual.
La Figura 20 representa esquemáticamente un método de codificación de imágenes por un aparato de codificación de acuerdo con la presente divulgación.
La Figura 21 representa esquemáticamente un aparato de codificación que realiza un método de codificación
de imágenes de acuerdo con la presente divulgación.
La Figura 22 representa esquemáticamente un método de decodificación de imágenes por un aparato de decodificación de acuerdo con la presente divulgación.
La Figura 23 representa esquemáticamente un aparato de decodificación que realiza un método de decodificación de imágenes de acuerdo con la presente divulgación.
La Figura 24 representa ilustrativamente un diagrama de estructura de sistema de envío por flujo continuo de contenidos al que se aplica la presente divulgación.
Descripción de realizaciones ilustrativas
La presente divulgación puede modificarse de diversas formas y en los dibujos se describirán e ilustrarán realizaciones específicas de la misma. Sin embargo, las realizaciones no pretenden limitar la divulgación. Los términos usados en la siguiente descripción se usan para describir simplemente realizaciones específicas, pero
no pretenden limitar la divulgación. Una expresión de un número singular incluye una expresión del número plural, siempre que se lea claramente de manera diferente. Los términos tales como "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos usados en la siguiente descripción y, por lo tanto, se debería entender que no se excluye la posibilidad de existencia o adición de una o más características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos diferentes.
Por otro lado, los elementos de los dibujos descritos en la divulgación se dibujan independientemente con el fin de facilitar la explicación de diferentes funciones específicas y no significan que los elementos se materialicen mediante hardware independiente o software independiente. Por ejemplo, dos o más elementos de los elementos pueden combinarse para formar un único elemento, o un elemento puede dividirse en varios elementos. Las realizaciones en las que los elementos se combinan y/o dividen pertenecen a la divulgación sin apartarse del concepto de la divulgación.
En lo sucesivo en el presente documento, se describirán con detalle realizaciones de la presente divulgación con referencia a los dibujos adjuntos. Además, se usan números de referencia semejantes para indicar elementos semejantes en todos los dibujos y se omitirán las mismas descripciones acerca de los elementos semejantes.
En la presente divulgación, vídeo puede referirse a una serie de imágenes a lo largo del tiempo. Una imagen generalmente se refiere a una unidad que representa una imagen en una zona de tiempo específica, y un corte es una unidad que constituye una parte de una imagen en codificación. Una imagen puede incluir una pluralidad de cortes o grupos de piezas y, si es necesario, los grupos de imagen, cortes y piezas pueden mezclarse entre sí y usarse. En este documento, una imagen puede ser una imagen fija o puede representar una imagen de un tiempo específico que constituye un vídeo. En lo sucesivo en el presente documento, la codificación de imágenes puede mezclarse con la codificación de vídeo. Además, la codificación de imágenes se puede mezclar con la codificación de imágenes o la codificación de fotogramas.
Un píxel o un pal puede referirse a una unidad mínima que constituye una imagen (o foto). Además, una 'muestra' puede usarse como un término correspondiente a un píxel. La muestra puede representar generalmente un píxel o el valor de un píxel, puede representar únicamente un píxel (un valor de píxel) de un componente de luma y puede representar únicamente un píxel (un valor de píxel) de un componente de croma.
Una unidad representa una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de una región específica de la imagen e información relacionada con la región. La unidad se puede usar de manera intercambiable con términos como bloque o área en algunos casos. Como alternativa, la unidad puede incluir un bloque de componente de luma y un bloque de componente de croma cb y cr. En un caso general, un bloque de MxN puede representar un conjunto de muestras o coeficientes de transformada que incluyen M columnas y N filas.
La Figura 1 es un diagrama que ilustra esquemáticamente una configuración de un aparato de codificación de vídeo/imágenes al que se puede aplicar la presente divulgación. En lo sucesivo en el presente documento, el aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Haciendo referencia a la Figura 1, un aparato de codificación de vídeo 100 puede incluir un divisor de imágenes 105, un predictor 110, un procesador residual 120, un codificador por entropía 130, un sumador 140, un filtro 150 y una memoria 160. El procesador residual 120 puede incluir un restador 121, un transformador 122, un cuantificador 123, un reorganizador 124, un descuantificador 125, un transformador inverso 126.
El divisor de imágenes 105 puede dividir una imagen de entrada en al menos una unidad de procesamiento.
Como ejemplo, una unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente de la unidad de codificación más grande (LCU) de acuerdo con una estructura de árbol binario de árbol cuádruple (QTBT). Por ejemplo, una unidad de codificación puede dividirse en una pluralidad de unidades de codificación de una profundidad más profunda basándose en una estructura de árbol cuádruple, una estructura de árbol binario y/o una estructura de árbol ternario. En este caso, por ejemplo, se puede aplicar en primer lugar la estructura de árbol cuádruple, y se puede aplicar después la estructura de árbol binario y la estructura de árbol ternario. Como alternativa, puede aplicarse en primer lugar la estructura de árbol binario/estructura de árbol ternario. Un procedimiento de codificación de acuerdo con la presente divulgación se puede realizar basándose en la unidad de codificación final que ya no se divide más. En este caso, una unidad de codificación máxima se puede usar como una unidad de codificación final inmediatamente basándose en la eficacia de codificación de acuerdo con las características de la imagen o, si fuera necesario, la unidad de codificación puede dividirse recursivamente en unidades de codificación de una profundidad más profunda y una unidad de codificación que tiene un tamaño óptimo se puede usar como una unidad de codificación final. En el presente caso, el procedimiento de codificación puede incluir un procedimiento de predicción, transformada y reconstrucción, que se describirá más adelante.
En otro ejemplo, la unidad de procesamiento puede incluir una unidad de codificación (CU), una unidad de predicción (PU) o una unidad de transformada (TU). La unidad de codificación puede dividirse de la unidad de codificación más grande (LCU) en unidades de codificación de una profundidad más profunda de acuerdo con la estructura de árbol cuádruple. En este caso, la unidad de codificación más grande puede usarse directamente como la unidad de codificación final basándose en la eficacia de codificación, o similar, dependiendo de las características de la imagen, o la unidad de codificación puede dividirse recursivamente en unidades de codificación de una profundidad más profunda según sea necesario y se puede usar una unidad de codificación que tiene un tamaño óptimo como unidad de codificación final. Cuando se establece la unidad de codificación más pequeña (SCU), la unidad de codificación no puede dividirse en unidades de codificación más pequeñas que la unidad de codificación más pequeña. En el presente documento, la unidad de codificación final se refiere a una unidad de codificación que está partida o dividida en una unidad de predicción o una unidad de transformada. La unidad de predicción es una unidad que se divide de una unidad de codificación y puede ser una unidad de predicción de muestra. En este punto, la unidad de predicción se puede dividir en subbloques. La unidad de transformada puede dividirse de la unidad de codificación de acuerdo con la estructura de árbol cuádruple y puede ser una unidad para derivar un coeficiente de transformada y/o una unidad para derivar una señal residual a partir del coeficiente de transformada. En lo sucesivo en el presente documento, la unidad de codificación puede denominarse bloque de codificación (CB), la unidad de predicción puede denominarse bloque de predicción (PB) y la unidad de transformada puede denominarse bloque de transformada (TB). El bloque de predicción o la unidad de predicción puede referirse a un área específica en forma de bloque en una imagen e incluir una matriz de muestras de predicción. Además, el bloque de transformada o la unidad de transformada puede referirse a un área específica en forma de bloque en una imagen e incluir el coeficiente de transformada o una matriz de muestras residuales.
El predictor 110 puede realizar la predicción sobre un bloque objetivo de procesamiento (en lo sucesivo en el presente documento, un bloque actual) y puede generar un bloque previsto que incluye muestras de predicción para el bloque actual. Una unidad de predicción realizada en el predictor 110 puede ser un bloque de codificación o puede ser un bloque de transformada y puede ser un bloque de predicción.
El predictor 110 puede determinar si se aplica la intrapredicción o si se aplica la interpredicción al bloque actual. Por ejemplo, el predictor 110 puede determinar si se aplica la intrapredicción o la interpredicción en la unidad de CU.
En el caso de la intrapredicción, el predictor 110 puede derivar una muestra de predicción para el bloque actual basándose en una muestra de referencia fuera del bloque actual en una imagen a la que pertenece el bloque actual (en lo sucesivo en el presente documento, una imagen actual). En este caso, el predictor 110 puede derivar la muestra de predicción basándose en un promedio o interpolación de muestras de referencia vecinas del bloque actual (caso (i)) o puede derivar la muestra de predicción basándose en una muestra de referencia existente en una dirección específica (predicción) respecto a una muestra de predicción entre las muestras de referencia vecinas del bloque actual (caso (ii)). El caso (i) puede denominarse modo no direccional o modo no angular y el caso (ii) puede denominarse modo direccional o modo angular. En la intrapredicción, los modos de predicción pueden incluir, por ejemplo, 33 modos direccionales y al menos dos modos no direccionales. Los modos no direccionales pueden incluir un modo DC y un modo plano. El predictor 110 puede determinar el modo de predicción que se aplicará al bloque actual usando el modo de predicción aplicado al bloque vecino.
En el caso de la interpredicción, el predictor 110 puede derivar la muestra de predicción para el bloque actual basándose en una muestra especificada por un vector de movimiento en una imagen de referencia. El predictor 110 puede derivar la muestra de predicción para el bloque actual aplicando uno cualquiera de un modo de omisión, un modo de fusión y un modo de predicción de vector de movimiento (MVP). En el caso del modo de omisión y el modo de fusión, el predictor 110 puede usar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el caso del modo de omisión, a diferencia del modo de fusión, no se transmite una diferencia (residual) entre la muestra de predicción y una muestra original. En el caso del modo de MVP, un vector de movimiento del bloque vecino se usa como predictor de vector de movimiento y, por lo tanto, se usa como predictor de vector de movimiento del bloque actual para derivar un vector de movimiento del bloque actual.
En el caso de la interpredicción, el bloque vecino puede incluir un bloque vecino espacial existente en la imagen actual y un bloque vecino temporal existente en la imagen de referencia. La imagen de referencia que incluye el bloque vecino temporal también puede denominarse una imagen col-situada (colPic). La información de movimiento puede incluir el vector de movimiento y un índice de imagen de referencia. La información, tal como la información del modo de predicción y la información de movimiento, puede codificarse (entropía) y a continuación emitirse como una forma de flujo de bits.
Cuando se usa información de movimiento de un bloque vecino temporal en el modo de omisión y el modo de fusión, se puede usar una imagen más alta en una lista de imágenes de referencia como imagen de referencia. Las imágenes de referencia incluidas en la lista de imágenes de referencia pueden alinearse basándose en una diferencia de recuento de orden de imágenes (POC) entre una imagen actual y una imagen de referencia correspondiente. Un POC corresponde a un orden de visualización y puede discriminarse de un orden de codificación.
El restador 121 genera una muestra residual que es una diferencia entre una muestra original y una muestra de predicción. Si se aplica el modo de omisión, es posible que la muestra residual no se genere como se ha descrito anteriormente.
El transformador 122 transforma muestras residuales en unidades de un bloque de transformada para generar un coeficiente de transformada. El transformador 122 puede realizar la transformación basándose en el tamaño de un bloque de transformada correspondiente y un modo de predicción aplicado a un bloque de codificación o bloque de predicción que se solapa espacialmente con el bloque de transformada. Por ejemplo, las muestras residuales se pueden transformar usando el núcleo de transformada de la transformada discreta del seno (DST) si la intrapredicción se aplica al bloque de codificación o si el bloque de predicción se superpone con el bloque de transformada y el bloque de transformada es una matriz residual 4x4 y se transforma usando el núcleo de transformada de la transformada discreta del coseno (DCT) en otros casos.
El cuantificador 123 puede cuantificar los coeficientes de transformada para generar coeficientes de transformada cuantificados.
El reorganizador 124 reorganiza los coeficientes de transformada cuantificados. El reorganizador 124 puede reorganizar los coeficientes de transformada cuantificados en forma de bloque en un vector unidimensional a través de un método de exploración de coeficientes. Aunque el reorganizador 124 se describe como un componente separado, el reorganizador 124 puede ser parte del cuantificador 123.
El codificador por entropía 130 puede realizar una codificación por entropía en los coeficientes de transformada cuantificados. La codificación por entropía puede incluir, por ejemplo, métodos de codificación tales como Golomb exponencial, codificación de longitud variable adaptativa según contexto (CAVLC), codificación aritmética binaria adaptativa según contexto (CABAC) y similares. El codificador por entropía 130 puede codificar información necesaria para la reconstrucción de vídeo distinta de los coeficientes de transformada cuantificados (por ejemplo, un valor de un elemento de sintaxis) juntos o por separado de acuerdo con la codificación por entropía o un método predeterminado. La información codificada puede transmitirse o almacenarse en unidades de capa de abstracción de red (NAL) en forma de un flujo de bits. El flujo de bits puede transmitirse a través de una red o puede almacenarse en un medio de almacenamiento digital. La red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD y SSD y similares.
El descuantificador 125 descuantifica los valores (coeficientes de transformada) cuantificados por el cuantificador 123 y el transformador inverso 126 transforma a la inversa los valores descuantificados por el descuantificador 125 para generar una muestra residual.
El sumador 140 añade una muestra residual a una muestra de predicción para reconstruir una imagen. La muestra residual se puede añadir a la muestra de predicción en unidades de un bloque para generar un bloque reconstruido. Aunque el sumador 140 se describe como un componente separado, el sumador 140 puede ser parte del predictor 110. Mientras tanto, el sumador 140 puede denominarse reconstructor o generador de bloques reconstruido.
El filtro 150 puede aplicar filtrado de desbloqueo y/o un desplazamiento adaptativo de muestra a la imagen reconstruida. Los artefactos en el límite de un bloque en la imagen reconstruida o la distorsión en la cuantificación pueden corregirse mediante el filtrado de desbloqueo y/o el desplazamiento adaptativo de la muestra. El desplazamiento adaptativo de la muestra se puede aplicar en unidades de una muestra después de que se completa el filtrado de desbloqueo. El filtro 150 puede aplicar un filtro de bucle adaptativo (ALF) a la imagen reconstruida. El ALF puede aplicarse a la imagen reconstruida a la que se ha aplicado filtrado de desbloqueo y/o el desplazamiento adaptativo de la muestra.
La memoria 160 puede almacenar una imagen reconstruida (imagen decodificada) o información necesaria para codificar/decodificar. En este punto, la imagen reconstruida puede ser la imagen reconstruida filtrada por el filtro 150. La imagen reconstruida almacenada se puede usar como imagen de referencia para la (inter)predicción de otras imágenes. Por ejemplo, la memoria 160 puede almacenar imágenes (de referencia) usadas para la interpredicción. En este punto, las imágenes usadas para la interpredicción pueden designarse de acuerdo con un conjunto de imágenes de referencia o una lista de imágenes de referencia.
La Figura 2 es un diagrama que ilustra esquemáticamente una configuración de un aparato de decodificación de vídeo/imágenes al que se puede aplicar la presente divulgación. En lo sucesivo en el presente documento, el aparato de decodificación de vídeo puede incluir un aparato de decodificación de vídeo.
Haciendo referencia a la Figura 2, el aparato de decodificación de vídeo 200 puede incluir un decodificador por entropía 210, un procesador residual 220, un predictor 230, un sumador 240, un filtro 250 y una memoria 260. El procesador residual 220 puede incluir un reorganizador 221, un descuantificador 222 y un transformador inverso 223. También, aunque no se muestra, el aparato de decodificación de vídeo 200 puede incluir un receptor que recibe un flujo de bits que incluye información de vídeo. El receptor se puede configurar como un módulo separado o se puede incluir en el decodificador por entropía 210.
Cuando se introduce un flujo de bits que incluye información de vídeo/imagen, el aparato de decodificación de vídeo 200 puede reconstruir un vídeo/foto/imagen de acuerdo con un proceso en el que se procesa la información de vídeo/imagen en el aparato de codificación de vídeo.
Por ejemplo, el aparato de decodificación de vídeo 200 puede realizar decodificación de vídeo usando una unidad de procesamiento aplicada en el aparato de codificación de vídeo. Por tanto, un bloque de unidad de procesamiento de decodificación de vídeo puede ser, por ejemplo, una unidad de codificación y puede ser, en otro ejemplo, una unidad de codificación, una unidad de predicción o una unidad de transformada. La unidad de codificación puede dividirse de acuerdo con una estructura de árbol cuádruple, una estructura de árbol binario y/o una estructura de árbol ternario a partir de la unidad de codificación más grande.
En algunos casos se pueden usar además una unidad de predicción y una unidad de transformada y, en este caso, el bloque de predicción es un bloque derivado o dividido de la unidad de codificación y puede ser una unidad de predicción de muestra. En este punto, la unidad de predicción se puede dividir en subbloques. La unidad de transformada se puede dividir de la unidad de codificación de acuerdo con la estructura de árbol cuádruple y puede ser una unidad que deriva un coeficiente de transformada o una unidad que deriva una señal residual del coeficiente de transformada.
El decodificador por entropía 210 puede analizar el flujo de bits para emitir información requerida para la reconstrucción de vídeo o la reconstrucción de imágenes. Por ejemplo, el decodificador por entropía 210 puede decodificar información en el flujo de bits basándose en un método de codificación tal como codificación exponencial de Golomb, CAVLC, CABAC, o similares, y puede emitir un valor de un elemento de sintaxis requerido para la reconstrucción de vídeo y un valor cuantificado de un coeficiente de transformada con respecto a un residual.
Más específicamente, un método de decodificación por entropía de CABAC puede recibir un binario correspondiente a cada elemento de sintaxis en un flujo de bits, determinar un modelo de contexto usando la información de elemento de sintaxis objetivo de decodificación y decodificar la información de bloques objetivo vecinos y de decodificación o la información de símbolo/binario decodificada en una etapa anterior, predecir la probabilidad de generación de binario de acuerdo con el modelo de contexto determinado y realizar la decodificación aritmética del binario para generar un símbolo correspondiente a cada valor de elemento de sintaxis. En este punto, el método de decodificación por entropía de CABAC puede actualizar el modelo de contexto usando información de un símbolo/binario decodificado para un modelo de contexto del siguiente símbolo/binario después de la determinación del modelo de contexto.
La información sobre la predicción entre la información decodificada en el decodificador por entropía 210 puede proporcionarse al predictor 250 y los valores residuales, es decir, los coeficientes de transformada cuantificados, en los que se ha realizado la decodificación por entropía por el decodificador por entropía 210 pueden introducirse en el reorganizador 221.
El reorganizador 221 puede reorganizar los coeficientes de transformada cuantificados en una forma de bloque bidimensional. El reorganizador 221 puede realizar una reorganización correspondiente a la exploración de coeficientes realizada por el aparato de codificación. Aunque el reorganizador 221 se describe como un componente separado, el reorganizador 221 puede ser parte del descuantificador 222.
El descuantificador 222 puede descuantificar los coeficientes de transformada cuantificados basándose en un parámetro de (des)cuantificación para emitir un coeficiente de transformada. En este caso, la información para derivar un parámetro de cuantificación puede señalizarse desde el aparato de codificación.
El transformador inverso 223 puede realizar una transformada inversa de los coeficientes de transformada para derivar muestras residuales.
El predictor 230 puede realizar predicciones en un bloque actual y puede generar un bloque previsto que incluye muestras de predicción para el bloque actual. Una unidad de predicción realizada en el predictor 230 puede ser un bloque de codificación o puede ser un bloque de transformada o puede ser un bloque de predicción.
El predictor 230 puede determinar si se aplica intrapredicción o interpredicción basándose en la información de una predicción. En este caso, una unidad para determinar cuál se usará entre la intrapredicción y la interpredicción puede ser diferente de una unidad para generar una muestra de predicción. Además, una unidad para generar la muestra de predicción también puede ser diferente en la interpredicción y la intrapredicción.
Por ejemplo, cuál se aplicará entre la interpredicción y la intrapredicción puede determinarse en unidades de CU. Además, por ejemplo, en la interpredicción, la muestra de predicción se puede generar determinando el modo de predicción en la unidad de PU, y en la intrapredicción, la muestra de predicción se puede generar en la unidad de TU determinando el modo de predicción en unidad de PU.
En el caso de la intrapredicción, el predictor 230 puede derivar una muestra de predicción para un bloque actual basándose en una muestra de referencia vecina en una imagen actual. El predictor 230 puede derivar la muestra de predicción para el bloque actual aplicando un modo direccional o un modo no direccional basado en la muestra de referencia vecina del bloque actual. En este caso, se puede determinar un modo de predicción que se aplicará al bloque actual utilizando un modo de intrapredicción de un bloque vecino.
En el caso de la interpredicción, el predictor 230 puede derivar una muestra de predicción para un bloque actual basándose en una muestra especificada en una imagen de referencia de acuerdo con un vector de movimiento. El predictor 230 puede derivar la muestra de predicción para el bloque actual usando uno de los modos de omisión, el modo de fusión y el modo de MVP. En este punto, la información de movimiento requerida para la interpredicción del bloque actual proporcionada por el aparato de codificación de vídeo, por ejemplo, un vector de movimiento e información sobre un índice de imagen de referencia puede adquirirse o derivarse basándose en la información sobre la predicción.
En el modo de omisión y el modo de fusión, la información de movimiento de un bloque vecino puede usarse como información de movimiento del bloque actual. En este punto, el bloque vecino puede incluir un bloque vecino espacial y un bloque vecino temporal.
El predictor 230 puede construir una lista de candidatos de fusión usando información de movimiento de bloques vecinos disponible y usar la información indicada por un índice de fusión en la lista de candidatos de fusión como un vector de movimiento del bloque actual. El índice de fusión puede señalizarse por el aparato de codificación. La información de movimiento puede incluir un vector de movimiento y una imagen de referencia. Cuando se usa información de movimiento de un bloque vecino temporal en el modo de omisión y el modo de fusión, se puede usar una imagen más alta en una lista de imágenes de referencia como imagen de referencia.
En el caso del modo de omisión, no se transmite una diferencia (residual) entre una muestra de predicción y una muestra original, a diferencia del modo de fusión.
En el caso del modo de MVP, el vector de movimiento del bloque actual puede derivarse usando un vector de movimiento de un bloque vecino como predictor de vector de movimiento. En este punto, el bloque vecino puede incluir un bloque vecino espacial y un bloque vecino temporal.
Cuando se aplica el modo de fusión, por ejemplo, se puede generar una lista de candidatos de fusión usando un vector de movimiento de un bloque vecino espacial reconstruido y/o un vector de movimiento correspondiente a un bloque Col que es un bloque vecino temporal. Un vector de movimiento de un bloque candidato seleccionado de la lista de candidatos de fusión se usa como vector de movimiento del bloque actual en el modo de fusión. La información mencionada anteriormente sobre la predicción puede incluir un índice de fusión que indica un bloque candidato que tiene el mejor vector de movimiento seleccionado entre los bloques candidatos incluidos en la lista de candidatos de fusión. En este caso, el predictor 230 puede derivar el vector de movimiento del bloque actual usando el índice de fusión.
Cuando se aplica el modo de MVP (predicción de vector de movimiento) como otro ejemplo, se puede generar una lista de candidatos de predictores de vector de movimiento usando un vector de movimiento de un bloque vecino espacial reconstruido y/o un vector de movimiento correspondiente a un bloque Col que es un bloque vecino temporal. Es decir, el vector de movimiento del bloque vecino espacial reconstruido y/o el vector de movimiento correspondiente al bloque Col que es el bloque vecino temporal pueden usarse como candidatos de vector de movimiento. La información mencionada anteriormente sobre la predicción puede incluir un índice de vector de movimiento de predicción que indica el mejor vector de movimiento seleccionado entre los candidatos de vector de movimiento incluidos en la lista. En este punto, el predictor 230 puede seleccionar un vector de movimiento de predicción del bloque actual de los candidatos de vector de movimiento incluidos en la lista de candidatos de vector de movimiento usando el índice de vector de movimiento. El predictor del aparato de codificación puede obtener una diferencia de vector de movimiento (MVD) entre el vector de movimiento del bloque actual y un predictor de vector de movimiento, codificar el MVD y generar el MVD codificado en forma de flujo de bits. Es decir, el MVD puede obtenerse restando el predictor del vector de movimiento del vector de movimiento del bloque actual. En este punto, el predictor 230 puede adquirir un vector de movimiento incluido en la información sobre la predicción y derivar el vector de movimiento del bloque actual sumando la diferencia del vector de movimiento al predictor de vector de movimiento. Además, el predictor puede obtener o derivar un índice de imagen de referencia que indica una imagen de referencia a partir de la información mencionada anteriormente sobre la predicción.
El sumador 240 puede añadir una muestra residual a una muestra de predicción para reconstruir un bloque actual o una imagen actual. El sumador 240 puede reconstruir la imagen actual añadiendo la muestra residual a la muestra de predicción en unidades de un bloque. Cuando se aplica el modo de omisión, no se transmite un residual y, por tanto, la muestra de predicción puede convertirse en una muestra reconstruida. Aunque el sumador 240 se describe como un componente separado, el sumador 240 puede ser parte del predictor 230. Mientras tanto, el sumador 240 puede denominarse reconstructor o generador de bloques reconstruido.
El filtro 250 puede aplicar filtrado de desbloqueo, desplazamiento adaptativo de muestra y/o ALF a la imagen reconstruida. En este punto, el desplazamiento adaptativo de la muestra se puede aplicar en unidades de una muestra después del filtrado de desbloqueo. El ALF puede aplicarse después del filtrado de desbloqueo y/o la aplicación del desplazamiento adaptativo de la muestra.
La memoria 260 puede almacenar una imagen reconstruida (imagen decodificada) o información necesaria para la decodificación. En este punto, la imagen reconstruida puede ser la imagen reconstruida filtrada por el filtro 250. Por ejemplo, la memoria 260 puede almacenar imágenes usadas para la interpredicción. En este punto, las imágenes usadas para la interpredicción pueden designarse de acuerdo con un conjunto de imágenes de referencia o una lista de imágenes de referencia. Se puede utilizar una imagen reconstruida como imagen de referencia para otras imágenes. La memoria 260 puede emitir imágenes reconstruidas en un orden de salida.
Mientras tanto, en el caso de la interpredicción, se ha propuesto un método de interpredicción que considera la distorsión de una imagen. Específicamente, se ha propuesto un modelo de movimiento afín para derivar eficazmente un vector de movimiento para subbloques o puntos de muestra de un bloque actual y para aumentar la precisión de la interpredicción a pesar de la deformación de la rotación de la imagen, el acercamiento o el alejamiento. Es decir, se ha propuesto un modelo de movimiento afín que deriva un vector de movimiento para subbloques o puntos de muestra de un bloque actual. La predicción que usa el modelo de movimiento afín puede denominarse interpredicción afín o predicción de movimiento afín.
Por ejemplo, la interpredicción afín que usa el modelo de movimiento afín puede expresar eficazmente cuatro movimientos, es decir, cuatro deformaciones, como se describe a continuación.
La Figura 3 ilustra un movimiento expresado a través del modelo de movimiento afín. Haciendo referencia a la Figura 3, un movimiento que puede representarse a través del modelo de movimiento afín puede incluir un movimiento de traslación, un movimiento de escala, un movimiento de rotación y un movimiento de cizalla. Es decir, un movimiento de escala en el que (una porción de) la imagen se escala de acuerdo con el paso del tiempo, un movimiento de rotación en el que (una porción de) la imagen se gira de acuerdo con el paso del tiempo y un movimiento de cizalla en el que (una porción de) la imagen se deforma en paralelogramo de acuerdo con el paso del tiempo, así como el movimiento de traslación en el que una (porción de) la imagen se mueve planamente de acuerdo con el paso del tiempo ilustrado en la Figura 3, puede representarse efectivamente como se ilustra en la Figura 3.
El aparato de codificación/aparato de decodificación puede predecir una forma de distorsión de la imagen basándose en los vectores de movimiento en los puntos de control (CP) del bloque actual a través de la interpredicción afín, el rendimiento de compresión de la imagen puede mejorarse aumentando la precisión de la predicción. Además, dado que se puede derivar un vector de movimiento para al menos un punto de control del bloque actual usando un vector de movimiento de un bloque vecino del bloque actual, puede reducirse la carga de una cantidad de datos sobre información adicional y puede mejorarse considerablemente la eficacia interpredicción.
Como ejemplo de la interpredicción afín, se puede requerir información de movimiento en tres puntos de control, es decir, tres puntos de referencia.
La Figura 4 ilustra el modelo de movimiento afín en el que se usan vectores de movimiento para tres puntos de control.
Cuando una posición de muestra superior izquierda en un bloque actual 400 es (0, 0), las posiciones de muestra (0, 0), (w, 0) y (0, h) pueden definirse como los puntos de control, como se muestra en la Figura 4. En lo sucesivo, el punto de control de la posición de la muestra (0, 0) puede representarse como CP0, el punto de control de la posición de la muestra (w, 0) puede representarse como CP1 y el punto de control de la posición de la muestra (0, h) puede representarse como CP2.
Puede derivarse una ecuación para el modelo de movimiento afín usando los puntos de control y los vectores de movimiento de los puntos de control correspondientes descritos anteriormente. Una ecuación para el modelo de movimiento afín se puede expresar de la siguiente manera.
[Ecuación 1]
En este punto, w indica una anchura del bloque actual 400, h indica una altura del bloque actual 400, V0x y V0y indican un componente x y un componente y del vector de movimiento de CP0, respectivamente, v 1x y v 1y indican un componente x y un componente y del vector de movimiento de CP1, respectivamente, y v2x y v2y indican un componente x y un componente y del vector de movimiento de CP2, respectivamente. Además, x indica un componente x de una posición de una muestra objetivo en el bloque actual 400, y indica un componente y de la posición de la muestra objetivo en el bloque actual 400, vx indica un componente x de un vector de movimiento de la muestra objetivo en el bloque actual 400, y vy indica un componente y del vector de movimiento de la muestra objetivo en el bloque actual 400.
Dado que se conocen el vector de movimiento de CP0, el vector de movimiento de CP1 y el vector de movimiento de CP2, se puede derivar un vector de movimiento basándose en la posición de la muestra en el bloque actual basándose en la Ecuación 1. Es decir, de acuerdo con el modelo de movimiento afín, los vectores de movimiento v<0>(v0x, v0y), v1 (v1x, v 1y), y v<2>(v2x, v2y) en los puntos de control se pueden escalar basándose en una relación de distancia entre las coordenadas (x, y) de la muestra objetivo y los tres puntos de control para derivar los vectores de movimiento de la muestra objetivo de acuerdo con la posición de la muestra objetivo. Es decir, de acuerdo con el modelo de movimiento afín, se puede derivar un vector de movimiento de cada muestra en el bloque actual basándose en los vectores de movimiento de los puntos de control. Mientras tanto, un conjunto de vectores de movimiento de muestras en el bloque actual derivado de acuerdo con el modelo de movimiento afín puede denominarse campo de vector de movimiento afín (MVF).
Mientras tanto, seis parámetros para la Ecuación 1 pueden representarse mediante a, b, c, d, e y f, como se muestra en la Ecuación 1 a continuación, y una ecuación para el modelo de movimiento afín representado por los seis parámetros puede ser la siguiente.
[Ecuación 2]
vx = a * x b * y c
vy = d * x e * y f
En este punto, w indica una anchura del bloque actual 400, h indica una altura del bloque actual 400, v0x y v0y indican el componente x del vector de movimiento de CP0, los componentes y, v1x y v1y representan un componente x y un componente y del vector de movimiento de CP1, respectivamente, y v2x y v2y representan el componente x y el componente y del vector de movimiento de CP2, respectivamente. Además, x indica el componente x de la posición de la muestra objetivo en el bloque actual 400, y indica el componente y de la posición de la muestra objetivo en el bloque actual 400, vx indica el componente x del vector de movimiento de la muestra objetivo en el bloque actual 400, vy indica el componente y del vector de movimiento de la muestra objetivo en el bloque actual 400.
El modelo de movimiento afín o la interpredicción afín que usa los seis parámetros puede denominarse modelo de movimiento afín de 6 parámetros o AF6.
Además, como ejemplo de interpredicción afín, puede requerirse información de movimiento en dos puntos de control, es decir, dos puntos de referencia.
La Figura 5 ilustra el modelo de movimiento afín en el que se usan vectores de movimiento para dos puntos de control. El modelo de movimiento afín que usa dos puntos de control puede representar tres movimientos, que incluyen un movimiento de traslación, un movimiento de escala y un movimiento de rotación. El modelo de movimiento afín que representa los tres movimientos puede denominarse modelo de movimiento afín de similitud o modelo de movimiento afín simplificado.
Cuando una posición de muestra superior izquierda en un bloque actual 500 es (0, 0), las posiciones de muestra (0, 0) y (w, 0) pueden definirse como los puntos de control como se muestra en la Figura 5. En lo sucesivo, el punto de control de la posición de la muestra (0, 0) puede representarse como CP0 y el punto de control de la posición de la muestra (w, 0) puede representarse como CP1.
Puede derivarse una ecuación para el modelo de movimiento afín usando los puntos de control y los vectores de movimiento de los puntos de control correspondientes descritos anteriormente. Una ecuación para el modelo de movimiento afín se puede expresar de la siguiente manera.
[Ecuación 3]
En este punto, w indica una anchura del bloque actual 500, v0x y vüy indican los componentes x e y del vector de movimiento de CP0, respectivamente, y v ix y v iy indican los componentes x e y del vector de movimiento de CP1. Además, x indica un componente x de una posición de una muestra objetivo en el bloque actual 500, y indica un componente y de la posición de la muestra objetivo en el bloque actual 500, vx indica un componente x del vector de movimiento de la muestra objetivo en el bloque actual 500, y vy indica un componente y del vector de movimiento de la muestra objetivo en el bloque actual 500.
Mientras tanto, cuatro parámetros de la Ecuación 3 pueden representarse mediante a, b, c y d como en la siguiente ecuación, y una ecuación para el modelo de movimiento afín representado por los cuatro parámetros puede ser como sigue.
[Ecuación 4]
En este punto, w indica una anchura del bloque actual 500, v0x y v0y indican los componentes x e y del vector de movimiento de CP0, respectivamente, y v 1x y v 1y indican los componentes x e y del vector de movimiento de CP1, respectivamente. Además, x indica un componente x de una posición de una muestra objetivo en el bloque actual 500, y indica un componente y de la posición de la muestra objetivo en el bloque actual 500, vx indica un componente x del vector de movimiento de la muestra objetivo en el bloque actual 500 y vy indica un componente y del vector de movimiento de la muestra objetivo en el bloque actual 500. El modelo de movimiento afín que usa los dos puntos de control puede representarse mediante cuatro parámetros a, b, c y d, como se muestra en la Ecuación 4 y, por lo tanto, el modelo de movimiento afín que usa los cuatro parámetros o la interpredicción afín puede denominarse un modelo de movimiento afín de 4 parámetros o AF4. Es decir, de acuerdo con el modelo de movimiento afín, se puede derivar un vector de movimiento de cada muestra en el bloque actual basándose en los vectores de movimiento de los puntos de control. Mientras tanto, un conjunto de vectores de movimiento de las muestras en el bloque actual derivado de acuerdo con el modelo de movimiento afín puede denominarse campo de vector de movimiento afín (MVF).
Mientras tanto, como se describió anteriormente, un vector de movimiento de una unidad de muestra se puede derivar a través del modelo de movimiento afín y, por lo tanto, puede mejorarse significativamente la precisión de la interpredicción. En este caso, sin embargo, la complejidad en el proceso de compensación de movimiento puede incrementarse significativamente.
En consecuencia, puede limitarse de modo que se derive un vector de movimiento de una unidad de subbloque del bloque actual, en lugar de derivar un vector de movimiento de la unidad de muestra.
La Figura 6 ilustra un método para derivar un vector de movimiento en una base de subbloque basándose en el modelo de movimiento afín. La Figura 6 ilustra un caso en el que el tamaño del bloque actual es de 16x16 y se deriva un vector de movimiento en unidades de subbloques de 4x4. El subbloque se puede establecer a diversos tamaños. Por ejemplo, cuando el subbloque se establece en un tamaño nxn (n es un número entero positivo, por ejemplo, n es 4), se puede derivar un vector de movimiento en unidades de nxn subbloques en el bloque actual basándose en el modelo de movimiento afín y pueden aplicarse diversos métodos para derivar un vector de movimiento que representa cada subbloque.
Por ejemplo, con referencia a la Figura 6, se puede derivar un vector de movimiento de cada subbloque usando la posición de muestra del centro o del lado inferior derecho de cada subbloque como una coordenada representativa. En este punto, la posición central inferior derecha puede indicar una posición de muestra situada en el lado inferior derecho entre cuatro muestras situadas en el centro del subbloque. Por ejemplo, cuando n es un número impar, una muestra puede situarse en el centro del subbloque y, en este caso, la posición de la muestra central puede usarse para derivar el vector de movimiento del subbloque. Sin embargo, cuando n es un número par, se pueden situar cuatro muestras para que sean adyacentes en el centro del subbloque y, en este caso, se puede usar la posición de muestra inferior derecha para derivar un vector de movimiento. Por ejemplo, con referencia a la Figura 6, las coordenadas representativas de cada subbloque pueden derivarse como (2, 2), (6, 2), (10, 2), ..., (14, 14), y el aparato de codificación/aparato de decodificación puede derivar el vector de movimiento de cada subbloque sustituyendo cada una de las coordenadas representativas de los subbloques en la Ecuación 1 o 3 descritas anteriormente. Los vectores de movimiento de los subbloques en el bloque actual derivados a través del modelo de movimiento afín pueden denominarse MVF afín.
Mientras tanto, como ejemplo, el tamaño del subbloque en el bloque actual se puede derivar basándose en la siguiente ecuación.
[Ecuación 5]
En este punto, M indica la anchura del subbloque y N indica la altura del subbloque. Además, v<0>x y v<0>y indican un componente x y un componente y de CPMV0 del bloque actual, v<1>x y v<1>y indican un componente x y un componente y de CPMV1 del bloque actual, w indica una anchura del bloque actual, h indica una altura del bloque actual y MvPre indica una precisión de fracción de vector de movimiento. Por ejemplo, la precisión de la fracción del vector de movimiento se puede establecer en 1/16.
Mientras tanto, en la interpredicción utilizando el modelo de movimiento afín descrito anteriormente, es decir, la predicción de movimiento afín, puede tener un modo de fusión afín AF_FUSIÓN y un modo interafín AF_INTER. En este punto, el modo interafín puede denominarse un modo MVP afín AF MVP.
El modo de fusión afín es similar a un modo de fusión existente en el que no se transmite MVD para el vector de movimiento de los puntos de control. Es decir, de manera similar al modo de omisión/fusión existente, el modo de fusión afín puede referirse a un método de codificación/decodificación para realizar predicciones derivando un CPMV para cada uno de dos o tres puntos de control de un bloque vecino del bloque actual.
Por ejemplo, cuando el modo AF_MRG se aplica al bloque actual, los MV (es decir, el CPMV0 y CPMV1) para CP0 y CP1 pueden derivarse del bloque vecino al que se aplica el modo afín entre los bloques vecinos del bloque actual. Es decir, el CPMV0 y CPMV1 del bloque vecino al que se aplica el modo afín pueden derivarse como candidatos de fusión, y los candidatos de fusión pueden derivarse como CPMV0 y CPMV1 para el bloque actual.
El modo interafín puede representar la interpredicción de realizar la predicción basándose en un predictor de vector de movimiento afín (MVP) derivando un MVP para un vector de movimiento de los puntos de control, controlando un vector de movimiento de los puntos de control basándose en una diferencia de vector de movimiento (MOD) y el MVP, y controlando un MVF afín del bloque actual basándose en el vector de movimiento de los puntos de control. En este punto, el vector de movimiento del punto de control puede representarse como un vector de movimiento del punto de control (CPMV), el MVP del punto de control puede representarse como un predictor de vector de movimiento de punto de control (CPMVP), y el MVD del punto de control puede representarse como una diferencia de vector de movimiento de punto de control (CPMVD). Específicamente, por ejemplo, el aparato de codificación puede derivar un predictor de vector de movimiento de punto de control (CPMVP) y un vector de movimiento de punto de control (CPMV) para cada uno de CP0 y CP1 (o CP0, CP1 y CP2) y transmitir o almacenar información sobre el CPMVP y/o la CPMVD, que es una diferencia entre CPMVP y CPMV.
En este punto, cuando se aplica el modo interafín al bloque actual, el aparato de codificación/aparato de decodificación puede construir una lista de candidatos de MVP afines basándose en un bloque vecino del bloque actual, el candidato de MVP afín puede denominarse un candidato de par de CPMVP, y la lista de candidatos de MVP afines puede denominarse una lista de candidatos de CPMVP.
Además, cada uno de los candidatos de MVP afines puede hacer referencia a una combinación de los CPMVP de CP0 y CP1 en un modelo de movimiento afín de 4 parámetros y puede hacer referencia a una combinación de los CPMVP de CP0, CP1 y CP2 en un modelo de movimiento afín de 6 parámetros.
La Figura 7 es un diagrama de flujo que ilustra un método de predicción de movimiento afín de acuerdo con una realización de la presente divulgación.
Haciendo referencia a la Figura 7, el método de predicción de movimiento afín puede representarse como sigue. Cuando se inicia el método de predicción de movimiento afín, en primer lugar, se puede obtener un par de CPMV (S700). En este punto, el par de CPMV puede incluir el CPMV0 y CPMV1 cuando se usa el modelo afín de 4 parámetros.
Posteriormente, la compensación de movimiento afín se puede realizar basándose en el par de CPMV (S710), y se puede terminar la predicción de movimiento afín.
Además, puede haber dos modos de predicción afines para determinar el CPMV0 y el CPMV1. En este punto, los dos modos de predicción afines pueden incluir un modo interafín y un modo de fusión afín. En el modo interafín, el CPMV0 y el CPMV1 pueden determinarse claramente señalizando dos de la información de diferencia de vector de movimiento (MVD) para el CPMV0 y el CPMV1. Mientras tanto, en el modo de fusión afín, se puede derivar un par de CPMV sin señalización de información de MVD.
En otras palabras, en el modo de fusión afín, el CPMV del bloque actual puede derivarse usando el CPMV del bloque vecino codificado en el modo afín, y en el caso de determinar el vector de movimiento en unidades de subbloques, el modo de fusión afín puede denominarse modo de fusión de subbloques.
En el modo de fusión afín, el aparato de codificación puede señalizar, al aparato de decodificación, un índice de un bloque vecino codificado en el modo afín para derivar el CPMV del bloque actual y puede señalizar además un valor de diferencia entre el CPMV del bloque vecino y el CPMV del bloque actual. En este punto, en el modo de fusión afín, se puede construir una lista de candidatos de fusión afines basándose en un bloque vecino, y un índice del bloque vecino puede representar un bloque vecino al que se hará referencia para derivar el CPMV del bloque actual en la lista de candidatos de fusión afines. La lista de candidatos de fusión afines puede denominarse lista de candidatos de fusión de subbloques.
El modo interafín puede denominarse un modo de MVP afín. En el modo de MVP afín, los CPMV de un bloque actual pueden derivarse basándose en un predictor de vector de movimiento de punto de control (CPMVP) y una diferencia de vector de movimiento de punto de control (CPMVD). En otras palabras, el aparato de codificación puede determinar el CPMVP para el CPMV de un bloque actual, derivar la CPMVD, que es una diferencia entre el CPMV y el CPMVP del bloque actual, y señalizar información sobre el CPMVP e información sobre la CPMVD al aparato de decodificación. En este punto, el modo de MVP afín puede construir una lista de candidatos de MVP afines basándose en el bloque vecino, y la información sobre el CPMVP puede representar un bloque vecino al que se hará referencia para derivar el CPMVP para el CPMV del bloque actual en la lista de candidatos de MVP afines. La lista de candidatos de MVP afines puede denominarse una lista de candidatos de predictor de vector de movimiento de punto de control.
Por ejemplo, en caso de que se aplique un modo interafín de un modelo de movimiento afín de 6 parámetros, el bloque actual se puede codificar como se describe a continuación.
La Figura 8 es un diagrama para describir un método para derivar un predictor de vector de movimiento en un punto de control de acuerdo con una realización de la presente divulgación.
Haciendo referencia a la Figura 8, un vector de movimiento de CP0 del bloque actual se puede expresar como v0, un vector de movimiento de CP1 se puede expresar como v1, un vector de movimiento de un punto de control de una posición de muestra inferior izquierda se puede expresar como v2, y un vector de movimiento de CP2 puede expresarse como v3. Más específicamente, v0 puede indicar un CPMVP de CP0, v1 puede indicar un CPMVP de CP1 y v2 puede indicar un CPMVP de CP2.
Un candidato de MVP afín puede ser una combinación de un candidato de CPMVP de CP0, un candidato de CPMVP de CP1 y un candidato de CPMVP de CP2.
Por ejemplo, el candidato de MVP afín puede derivarse como se describe a continuación.
Más específicamente, se puede determinar un máximo de 12 combinaciones de candidatos de CPMVP de acuerdo con la ecuación mostrada a continuación.
[Ecuación 6]
En el presente documento, vA puede indicar un vector de movimiento del bloque vecino A, vB puede indicar un vector de movimiento del bloque vecino B, vC puede indicar un vector de movimiento del bloque vecino C, vD puede indicar un vector de movimiento del bloque vecino D, vE puede indicar un vector de movimiento del bloque vecino E, vF puede indicar un vector de movimiento del bloque vecino F, y vG puede indicar un vector de movimiento del bloque vecino G.
Además, el bloque vecino A puede representar un bloque vecino situado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual, el bloque vecino B puede representar un bloque vecino situado en la parte superior de la posición de muestra superior izquierda del bloque actual, y el bloque vecino C puede representar un bloque vecino situado en el lado izquierdo de la posición de muestra superior izquierda del bloque actual. Además, el bloque vecino D puede representar un bloque vecino situado en la parte superior de una posición de muestra superior derecha del bloque actual, y el bloque vecino E puede representar un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual. Y, el bloque vecino F puede representar un bloque vecino situado en el lado izquierdo de una posición de muestra inferior izquierda del bloque actual, y el bloque vecino G puede representar un bloque vecino situado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Más específicamente, haciendo referencia a la Ecuación 6 descrita anteriormente, el candidato de CPMVP de CP0 puede incluir el vector de movimiento vA del bloque vecino A, el vector de movimiento vB del bloque vecino B y/o el vector de movimiento vC del bloque vecino C, el candidato de CPMVP de CP1 puede incluir el vector de movimiento vD del bloque vecino D y/o el vector de movimiento vE del bloque vecino E, y el candidato de CPMVP de CP2 puede incluir el vector de movimiento vF del bloque vecino F y/o el vector de movimiento vG del bloque vecino G.
En otras palabras, el CPMVP v0 del CP0 puede derivarse basándose en un vector de movimiento de al menos uno de los bloques vecinos A, B y C de la posición de muestra superior izquierda. En el presente documento, el bloque vecino A puede representar un bloque que está situado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual, el bloque vecino B puede representar un bloque que está situado en la parte superior de la posición de muestra superior izquierda del bloque actual, y el bloque vecino C puede representar un bloque que está situado en el lado izquierdo de la posición de muestra superior izquierda del bloque actual.
Se puede derivar una combinación de un máximo de 12 candidatos de CPMVP que incluye los candidatos de<CPMVP del CP0, candidatos de CPMVP del CP1 y candidatos de CPMVP del>C<p>2,<basándose en los vectores>de movimiento de los bloques vecinos.
Posteriormente, la combinación derivada de candidatos de CPMVP puede alinearse por orden de candidatos que tengan valores de DV inferiores. Por lo tanto, las 2 mejores combinaciones de candidatos de CPMVP pueden derivarse como los candidatos de MVP afines.
El DV de una combinación de candidato de CPMVP puede derivarse usando mediante la siguiente ecuación.
[Ecuación 7]
DV — \(vlx — v0x) * h —<(>v2y — vOy)<*>w\ \ { v ly — vOy) * h (v2x — vOx<) * w |>Posteriormente, el aparato de codificación puede determinar los CPMV para cada uno de los candidatos de MVP afines. A continuación, comparando los costes de distorsión de tasa (RD) para los CPMV, los candidatos de MVP afines que tienen los costes de RD inferiores pueden seleccionarse como los candidatos de MVP afines óptimos para el bloque actual. El aparato de codificación puede codificar y señalizar índices que indican los candidatos y las CPMVD óptimas.
Adicionalmente, por ejemplo, en caso de que se aplique el modo de fusión afín, el bloque actual puede codificarse como se describe a continuación.
La Figura 9 es un diagrama para describir un método para derivar un predictor de vector de movimiento en un punto de control de acuerdo con una realización de la presente divulgación.
Se puede construir una lista de candidatos de fusión afín del bloque actual basándose en los bloques vecinos del bloque actual mostrado en la Figura 9. Los bloques vecinos pueden incluir el bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D y el bloque vecino E. Y, el bloque vecino A puede indicar un bloque vecino izquierdo del bloque actual, el bloque vecino B puede indicar un bloque vecino superior del bloque actual, el bloque vecino C puede indicar un bloque vecino en la esquina superior derecha del bloque actual, el bloque vecino D puede indicar un bloque vecino en la esquina inferior izquierda del bloque actual, y el bloque vecino E puede indicar un bloque vecino en la esquina superior izquierda del bloque actual.
Por ejemplo, en caso de que el tamaño del bloque actual sea WxH y, en caso de que el componente x de la posición de muestra superior izquierda del bloque actual sea 0 y el componente y sea 0, el bloque vecino izquierdo puede ser un bloque que incluye una muestra de coordenadas (-1, H-1), el bloque vecino superior puede ser un bloque que incluye una muestra de coordenadas (W-1, -1), el bloque vecino de la esquina superior derecha puede ser un bloque que incluye una muestra de coordenadas (W, -1), el bloque vecino de la esquina inferior izquierda puede ser un bloque que incluye una muestra de coordenadas (-1, H), y el bloque vecino de la esquina superior izquierda puede ser un bloque que incluye una muestra de coordenadas (-1, -1).
Más específicamente, por ejemplo, un aparato de codificación puede explorar el bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D y el bloque vecino E del bloque actual mediante un orden de exploración específico y, en el orden de exploración, el bloque vecino el bloque que es el primero en codificarse en el modo de predicción afín puede determinarse como un bloque candidato del modo de fusión afín, es decir, un candidato de fusión afín. En el presente documento, por ejemplo, el orden de exploración específico puede ser un orden alfabético. Más específicamente, el orden de exploración específico puede ser el bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D y el bloque vecino E.
Posteriormente, el aparato de codificación puede determinar el modelo de movimiento afín del bloque actual usando el bloque candidato determinado, determinar un CPMV del bloque actual basándose en el modelo de movimiento afín y determinar un MVF afín del bloque actual basándose en el CPMV.
Por ejemplo, en caso de que se determine el bloque vecino A como el bloque candidato del bloque actual, el bloque vecino A puede codificarse como se describe a continuación.
La Figura 10 ilustra un ejemplo de predicción afín que se realiza en un caso en donde el bloque vecino A se selecciona como candidato de fusión afín.
Haciendo referencia a la Figura 10, un aparato de codificación puede determinar el bloque vecino A del bloque actual como un bloque candidato, y el aparato de codificación puede derivar un modelo de movimiento afín del bloque actual basándose en CPMV, v2 y v3 del bloque vecino. Posteriormente, el aparato de codificación puede determinar el CPMV, v0 y v1 del bloque actual basándose en el modelo de movimiento afín. El aparato de codificación puede determinar un MVF afín basándose en el CPMV, v0 y v1 del bloque actual y puede realizar un proceso de codificación para el bloque actual basándose en el MVF afín.
Mientras tanto, con respecto a la interpredicción afín, se están considerando un candidato afín heredado y un candidato afín construido para la construcción de la lista de candidatos de mvp afines.
En este punto, el candidato afín heredado puede ser como sigue.
Por ejemplo, cuando el bloque vecino del bloque actual es un bloque afín, y la imagen de referencia del bloque actual es la misma que la imagen de referencia del bloque vecino, se puede determinar el par de mvp afines del bloque actual a partir del modelo de movimiento afín del bloque vecino. En este punto, el bloque afín puede representar un bloque al que se aplica la interpredicción afín. El candidato afín heredado puede representar los CPMVP (por ejemplo, el par de mvp afines) que se han derivado basándose en el modelo de movimiento afín del bloque vecino.
Específicamente, por ejemplo, el candidato afín heredado puede derivarse como se describe a continuación.
La Figura 11 representa ilustrativamente bloques vecinos para derivar el candidato afín heredado.
Haciendo referencia a la Figura 11, los bloques vecinos del bloque actual pueden incluir un bloque A0 vecino a la izquierda del bloque actual, un bloque A1 vecino en la esquina inferior izquierda del bloque actual, un bloque B0 vecino en la parte superior del bloque actual, un bloque B1 vecino en la esquina superior derecha del bloque actual y un bloque B2 vecino en la esquina superior izquierda del bloque actual.
Por ejemplo, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino izquierdo puede ser un bloque que incluye una muestra en las coordenadas (-1, H-1); el bloque vecino superior, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino de la esquina superior derecha, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino de la esquina inferior izquierda, un bloque que incluye una muestra en las coordenadas (-1, H); y el bloque vecino de la esquina superior izquierda, un bloque que incluye una muestra en las coordenadas (-1, -1).
El aparato de codificación/aparato de decodificación puede comprobar secuencialmente los bloques vecinos A0, A1, B0, B1 y B2, y si el bloque vecino se ha codificado usando el modelo de movimiento afín y la imagen de referencia del bloque actual es la misma que la imagen de referencia del bloque vecino, puede derivar dos CPMV o tres CPMV del bloque actual basándose en el modelo de movimiento afín del bloque vecino. Los CPMV pueden derivarse como un candidato de mvp afín del bloque actual. El candidato de mvp afín puede representar el candidato afín heredado.
Como ejemplo, se pueden derivar el máximo de dos candidatos afines heredados basándose en los bloques vecinos.
Por ejemplo, el aparato de codificación/aparato de decodificación puede derivar el primer candidato de mvp afín del bloque actual basándose en un primer bloque en los bloques vecinos. En este punto, el primer bloque puede codificarse con el modelo de movimiento afín, y la imagen de referencia del primer bloque puede ser la misma que la imagen de referencia del bloque actual. Es decir, el primer bloque puede ser un bloque que se ha confirmado en primer lugar para satisfacer una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque esté codificado con el modelo de movimiento afín y que una imagen de referencia de un bloque sea la misma que una imagen de referencia del bloque actual.
En lo sucesivo en el presente documento, el aparato de codificación/aparato de decodificación puede derivar un segundo candidato de mvp afín del bloque actual basándose en un segundo bloque en los bloques vecinos. En este punto, el segundo bloque puede codificarse de acuerdo con el modelo de movimiento afín, y una imagen de referencia del segundo bloque puede ser la misma que la imagen de referencia del bloque actual. Es decir, el segundo bloque puede ser un bloque que se ha confirmado en segundo lugar para satisfacer una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque esté codificado con el modelo de movimiento afín y que una imagen de referencia de un bloque sea la misma que una imagen de referencia del bloque actual.
Mientras tanto, por ejemplo, cuando el número de los candidatos afines heredados disponibles es menor que dos (es decir, el número de candidatos afines heredados derivados es menor que dos), se puede considerar el candidato afín construido. El candidato afín construido puede derivarse como sigue.
La Figura 12 representa ilustrativamente un candidato espacial para el candidato afín construido.
Como se muestra en la Figura 12, los vectores de movimiento de los bloques vecinos del bloque actual se pueden dividir en tres grupos. Haciendo referencia a la Figura 12, los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F y un bloque vecino G.
El bloque vecino A puede representar un bloque vecino situado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; y el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual. Además, el bloque vecino D puede representar un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual, y el bloque vecino E puede representar un bloque vecino ubicado en la parte superior derecha de la posición de muestra superior derecha del bloque actual. Además, el bloque vecino F puede representar un bloque vecino ubicado a la izquierda de una posición de muestra inferior izquierda del bloque actual; y el bloque vecino G puede representar un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Por ejemplo, los tres grupos pueden incluir S<0>, S<1>, y S<2>, y el S<0>, el S<1>y el S<2>pueden derivarse de la siguiente tabla.
[Tabla 1]
donde mvA representa un vector de movimiento del bloque vecino A; mvB un vector de movimiento del bloque vecino B; mvC , un vector de movimiento del bloque vecino C; mvD, un vector de movimiento del bloque vecino D; mvE, un vector de movimiento del bloque vecino E; mvF, un vector de movimiento del bloque vecino F; y mvG, un vector de movimiento del bloque vecino G. El S0 puede representarse como un primer grupo; el S1 , como segundo grupo; y el S2, como un tercer grupo.
El aparato de codificación/aparato de decodificación puede derivar mv0 del S0, puede derivar mv1 del S1 , puede derivar mv2 del S2, y puede derivar el candidato de mvp afín que incluye el mv0, el mv1 , y el mv2. El candidato de mvp afín puede representar el candidato afín construido. Además, el mv0 puede ser un candidato de CPMVP de CP0; el mv1 , un candidato de CPMVP de CP1; y el mv2, un candidato de CPMVP de CP2.
En este punto, una imagen de referencia para el mvü puede ser la misma que una imagen de referencia del bloque actual. Es decir, el mv0 puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer una condición mientras se comprueban los vectores de movimiento en el S0 en un orden específico. La condición puede ser que la imagen de referencia para el vector de movimiento sea la misma que la imagen de referencia del bloque actual. El orden específico puede ser el siguiente: el bloque vecino A ^ el bloque vecino B ^ el bloque vecino C en el S0. Además, se puede realizar en un orden que no sea el orden anterior y puede no estar limitado al ejemplo anterior.
Además, la imagen de referencia para el mv1 puede ser la misma que la imagen de referencia del bloque actual. Es decir, el mv1 puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer una condición mientras se comprueban los vectores de movimiento en el S1 en un orden específico. La condición puede ser que la imagen de referencia para el vector de movimiento sea la misma que la imagen de referencia del bloque actual. El orden específico puede ser el siguiente: el bloque vecino D ^ el bloque vecino E en el S1. Además, se puede realizar en un orden que no sea el orden anterior y puede no estar limitado al ejemplo anterior.
Además, la imagen de referencia para el mv2 puede ser la misma que la imagen de referencia del bloque actual. Es decir, el mv2 puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer una condición mientras se comprueban los vectores de movimiento en el S2 en un orden específico. La condición puede ser que la imagen de referencia para el vector de movimiento sea la misma que la imagen de referencia del bloque actual. El orden específico puede ser el siguiente: el bloque vecino F ^ el bloque vecino G en el S2. Además, se puede realizar en un orden que no sea el orden anterior y puede no estar limitado al ejemplo anterior.
Mientras tanto, cuando únicamente están disponibles el mv0 y el mv1, es decir, cuando únicamente se derivan el mv0 y el mv1 , el mv2 puede derivarse como la siguiente ecuación.
[Ecuación 8]
donde mv<2>x representa un componente x del mv<2>; mv<2>y, un componente y del mv<2>; mv<0>x, un componente x del mv<0>; mv<0>y, un componente y del mv<0>; mv<1>x, un componente x del mv<1>; y mv<1>y, un componente y del mv<1>. Además, w representa la anchura del bloque actual, y h representa la altura del bloque actual.
Mientras tanto, cuando únicamente se derivan el mv<0>y el mv<2>, el mv<1>puede derivarse como la siguiente ecuación.
[Ecuación 9]
donde mv<1>x representa un componente x del mv<1>; mv<1>y, un componente y del mv<1>; mv<0>x, un componente x del mv<0>; mv<0>y, un componente y del mv<0>; mv<2>x, un componente x del mv<2>; y mv<2>y, un componente y del mv<2>. Además, w representa la anchura del bloque actual, y h representa la altura del bloque actual.
Además, cuando el número de candidatos afines heredados disponibles y/o candidatos afines construidos es menor que dos, el proceso de AMVP de la norma de HEVC convencional se puede aplicar a la construcción de la lista de mvp afines. Es decir, cuando el número de candidatos afines heredados disponibles y/o candidatos afines construidos es menor que dos, se puede realizar el proceso para construir un candidato de mvp en la norma de HEVC convencional.
Mientras tanto, los diagramas de flujo de ejemplos de construcción de la lista de mvp afines anterior son como se describe más adelante.
La Figura 13 representa ilustrativamente un ejemplo de construcción de una lista de mvp afines.
Haciendo referencia a la Figura 13, el aparato de codificación/aparato de decodificación puede añadir el candidato heredado a la lista de mvp afines del bloque actual (S1300). El candidato heredado puede representar el candidato afín heredado anterior.
Específicamente, el aparato de codificación/aparato de decodificación puede derivar el máximo de dos candidatos afines heredados de bloques vecinos del bloque actual. En este punto, los bloques vecinos pueden incluir un bloque A0 vecino a la izquierda, un bloque A1 vecino en la esquina inferior izquierda, un bloque B0 vecino en la parte superior, un bloque B1 vecino en la esquina superior derecha y un bloque B2 vecino en la esquina superior izquierda del bloque actual.
Por ejemplo, el aparato de codificación/aparato de decodificación puede derivar el primer candidato de mvp afín del bloque actual basándose en un primer bloque en los bloques vecinos. En este punto, el primer bloque puede codificarse con el modelo de movimiento afín, y la imagen de referencia del primer bloque puede ser la misma que la imagen de referencia del bloque actual. Es decir, el primer bloque puede ser un bloque que se ha confirmado en primer lugar para satisfacer una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque esté codificado con el modelo de movimiento afín y que una imagen de referencia de un bloque sea la misma que una imagen de referencia del bloque actual. En lo sucesivo en el presente documento, el aparato de codificación/aparato de decodificación puede derivar un segundo candidato de mvp afín del bloque actual basándose en un segundo bloque en los bloques vecinos. En este punto, el segundo bloque puede codificarse de acuerdo con el modelo de movimiento afín, y una imagen de referencia del segundo bloque puede ser la misma que la imagen de referencia del bloque actual. Es decir, el segundo bloque puede ser un bloque que se ha confirmado en segundo lugar para satisfacer una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque esté codificado con el modelo de movimiento afín y que una imagen de referencia de un bloque sea la misma que una imagen de referencia del bloque actual.
Mientras tanto, el orden específico puede ser como este: el bloque vecino izquierdo A0 ^ el bloque vecino de la esquina inferior izquierda A1 ^ el bloque vecino superior B0 ^ el bloque vecino de la esquina superior derecha B1 ^ el bloque vecino de la esquina superior izquierda B2. Además, se puede realizar en un orden que no sea el orden anterior y puede no estar limitado al ejemplo anterior.
El aparato de codificación/aparato de decodificación puede añadir un candidato construido a la lista de mvp afines del bloque actual (S1310). El candidato construido puede representar el candidato afín construido anterior. El candidato construido puede representarse como el candidato de mvp afín construido. Cuando el número de los candidatos heredados disponibles es menor que dos, el aparato de codificación/aparato de decodificación puede añadir el candidato construido a la lista de mvp afines del bloque actual.
Mientras tanto, el método para derivar el candidato afín construido puede ser diferente dependiendo de si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento de afines de 6 o un modelo de movimiento de afines de 4. Los contenidos específicos para el método de derivación del candidato construido se describirán más adelante.
El aparato de codificación/aparato de decodificación puede añadir el candidato de AMVP de HEVC a la lista de mvp afines del bloque actual (S1320). Cuando el número de candidatos heredados disponibles y/o candidatos construidos es menor que dos, el aparato de codificación/aparato de decodificación puede añadir el candidato de AMVP de HEVC a la lista de mvp afines del bloque actual. Es decir, cuando el número de candidatos heredados disponibles y/o candidatos construidos es menor que dos, el aparato de codificación y/o el aparato de decodificación pueden realizar el proceso para construir un candidato de mvp en la norma de HEVC convencional. Mientras tanto, se puede realizar un método para derivar el candidato construido de la siguiente manera. Por ejemplo, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento de afines de 6, el candidato construido puede derivarse como en un ejemplo mostrado en la Figura 14.
La Figura 14 representa un ejemplo de derivación del candidato construido.
Haciendo referencia a la Figura 14, el aparato de codificación/aparato de decodificación puede comprobar mv<0>, mvi, y mv<2>para el bloque actual (S1400). Es decir, el aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>, el mv<1>, o el mv<2>disponibles en los bloques vecinos del bloque actual. En este punto, el mvü puede ser un candidato de CPMVP de CP0 del bloque actual; el mv<1>, un candidato de CPMVP de CP1; y el mv<2>, un candidato de CPMVP de CP2. Además, el mv<0>, el mv<1>, y el mv<2>pueden representarse como vectores de movimiento candidatos de los CP.
Por ejemplo, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en un primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv0 disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en un segundo grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<1>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<1>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el segundo grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del segundo grupo no satisfacen la condición específica, es posible que no haya mv<1>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino D al bloque vecino E en el segundo grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en un tercer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<2>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<2>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el tercer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del tercer grupo no satisfacen la condición específica, es posible que no haya mv<2>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino F al bloque vecino G en el tercer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Mientras tanto, el primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Cuando únicamente están disponibles el mv<0>y el mv<1>para el bloque actual, es decir, cuando únicamente se deriva el mv<0>y el mv<1>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar mv<2>para el bloque actual basándose en la Ecuación 8 (S1410). El aparato de codificación/aparato de decodificación puede derivar el mv<2>sustituyendo el mv<0>y el mv<1>derivados en la Ecuación 8 anterior.
Cuando únicamente están disponibles el mv<0>y el mv<2>para el bloque actual, es decir, cuando únicamente se deriva el mv<0>y el mv<2>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar mv<1>para el bloque actual basándose en la Ecuación 9 (S1420). El aparato de codificación/aparato de decodificación puede derivar el mv<1>sustituyendo el mv<0>y el mv<2>derivados en la Ecuación 9 anterior.
El aparato de codificación/aparato de decodificación puede derivar el mv<0>, mvi y mv<2>derivados como el candidato construido del bloque actual (S1430). Cuando están disponibles el mv<0>, el mv<1>y el mv<2>, es decir, cuando se deriva el mv<0>, el mv<1>y el mv<2>basándose en el bloque vecino del bloque actual, el aparato de codificación/aparato de decodificación puede derivar el mv<0>, el mv<1>y el mv<2>derivados como los candidatos construidos del bloque actual.
Además, cuando únicamente están disponibles el mv0 y el mv1 para el bloque actual, es decir, cuando únicamente se deriva el mv0 y el mv<1>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar como el candidato contratado del bloque actual el mv<0>derivado, el mv<1>derivado, y el mv<2>derivado basándose en la Ecuación 8 anterior.
Además, cuando únicamente están disponibles el mv<0>y el mv<2>para el bloque actual, es decir, cuando únicamente se deriva el mv<0>y el mv<2>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar como el candidato construido del bloque actual el mv0 derivado, el mv2 derivado, y el mv1 derivado basándose en la Ecuación 9 anterior.
Además, por ejemplo, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento de afines de 4, el candidato construido puede derivarse como en un ejemplo mostrado en la Figura 15.
La Figura 15 representa un ejemplo de derivación del candidato construido.
Haciendo referencia a la Figura 15, el aparato de codificación/aparato de decodificación puede comprobar mv<0>, mv<1>, y mv<2>para el bloque actual (S1500). Es decir, el aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>, el mv<1>, o el mv<2>disponibles en los bloques vecinos del bloque actual. En este punto, el mv<0>puede ser un candidato de CPMVP de CP0 del bloque actual; el mv<1>, un candidato de CPMVP de CP1; y el mv<2>, un candidato de CPMVP de CP2.
Por ejemplo, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en un primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en un segundo grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<1>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<1>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el segundo grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del segundo grupo no satisfacen la condición específica, es posible que no haya mv<1>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino D al bloque vecino E en el segundo grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en un tercer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<2>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<2>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el tercer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del tercer grupo no satisfacen la condición específica, es posible que no haya mv<2>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino F al bloque vecino G en el tercer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Mientras tanto, el primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Cuando únicamente están disponibles el mv<0>y el mv<1>para el bloque actual o cuando están disponibles el mv<0>, el mv<1>, y el mv<2>para el bloque actual, es decir, cuando únicamente se deriva el mv<0>y el mv<1>para el bloque actual o cuando se deriva el mv<0>, el mv<1>, y el mv<2>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar el mv<0>y el mv<1>derivados como el candidato construido del bloque actual (S1510).
Mientras tanto, cuando únicamente están disponibles el mv<0>y el mv<2>para el bloque actual, es decir, cuando únicamente se deriva el mv<0>y el mv<2>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar mv<1>para el bloque actual basándose en la Ecuación 9 (S1520). El aparato de codificación/aparato de decodificación puede derivar el mv<1>sustituyendo el mv<0>y el mv<2>derivados en la Ecuación 9 anterior.
Después de esto, el aparato de codificación/aparato de decodificación puede derivar el mv<0>, mv<1>derivados como el candidato construido del bloque actual (S1510).
Mientras tanto, la presente divulgación propone un método para derivar el candidato construido, que es diferente del ejemplo descrito anteriormente. El ejemplo propuesto puede mejorar el rendimiento de la codificación reduciendo la complejidad en comparación con el ejemplo descrito anteriormente de derivación de un candidato construido. El ejemplo propuesto es como se describe más adelante. Además, cuando el número de los candidatos afines heredados disponibles es menor que dos (es decir, el número de candidatos afines heredados derivados es menor que dos), se puede considerar el candidato afín construido.
Por ejemplo, el aparato de codificación/aparato de decodificación puede comprobar mv<0>, mv<1>, y mv<2>para el bloque actual. Es decir, el aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>, el mv<1>, o el mv<2>disponibles en los bloques vecinos del bloque actual. En este punto, el mv<0>puede ser un candidato de CPMVP de CP0 del bloque actual; el mv<1>, un candidato de CPMVP de CP1; y el mv<2>, un candidato de CPMVP de CP2.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/aparato de decodificación puede determinar si existe mv<0>disponible en el primer grupo, puede determinar si existe mv<1>disponible en el segundo grupo, y puede determinar si existe mv<2>disponible en el tercer grupo.
Específicamente, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<1>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<1>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el segundo grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del segundo grupo no satisfacen la condición específica, es posible que no haya mv<1>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino D al bloque vecino E en el segundo grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el tercer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<2>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<2>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el tercer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del tercer grupo no satisfacen la condición específica, es posible que no haya mv<2>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino F al bloque vecino G en el tercer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Después de esto, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento de afines de 4, y cuando mv<0>y mv<1>para el bloque actual están disponibles, el aparato de codificación/aparato de decodificación puede derivar el mv<0>y mv<1>derivados como el candidato construido del bloque actual. Mientras tanto, cuando el mv<0>y/o mv<1>para el bloque actual no está o están disponibles, es decir, cuando al menos uno de mv<0>y mv<1>no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de decodificación no puede añadir el candidato construido a la lista de mvp afines del bloque actual.
Además, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento de afines de 6, y cuando mv<0>, mv<1>y mv<2>para el bloque actual están disponibles, el aparato de codificación/aparato de decodificación puede derivar el mv<0>, mv<1>y mv<2>derivados como el candidato construido del bloque actual. Mientras tanto, cuando el mv<0>, mv<1>y/o mv<2>para el bloque actual no está o están disponibles, es decir, cuando al menos uno de mv<0>, mv<1>y mv<2>no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de decodificación no puede añadir el candidato construido a la lista de mvp afines del bloque actual.
El ejemplo propuesto descrito anteriormente es un método que considera como el candidato construido únicamente cuando todos los vectores de movimiento de los CP para generar un modelo de movimiento afín del bloque actual. En este punto, el significado de estar disponible puede representar que la imagen de referencia del bloque vecino es la misma que la imagen de referencia del bloque actual. Es decir, el candidato construido puede derivarse únicamente cuando entre los vectores de movimiento de los bloques vecinos para los respectivos CP del bloque actual, existe el vector de movimiento que satisface la condición. Por lo tanto, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento de afines de 4, y únicamente cuando están disponibles los MV de CP0 y CP1 del bloque actual (es decir, el mv<0>y el mv<1>), se puede considerar el candidato construido. Por lo tanto, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento de afines de 6, y únicamente cuando están disponibles los MV de CP0, CP1 y CP2 del bloque actual (es decir, el mv<0>, el mv<1>y el mv<2>), se puede considerar el candidato construido. Por lo tanto, de acuerdo con el ejemplo propuesto, puede que no haya necesidad de la construcción adicional de derivar el vector de movimiento para el CP basándose en la Ecuación 8 o 9. A través de esto, es posible reducir la complejidad computacional para derivar el candidato construido. Además, dado que el candidato construido se determina únicamente cuando está disponible el candidato de CPMVP que tiene la misma imagen de referencia, es posible mejorar el rendimiento de codificación global.
El ejemplo descrito anteriormente puede representarse como en las Figuras 16 y 17.
La Figura 16 representa un ejemplo de derivación del candidato construido para un modelo de movimiento de afines de 4 aplicado al bloque actual.
Haciendo referencia a la Figura 16, el aparato de codificación/aparato de decodificación puede determinar si están disponibles mv<0>y mv<1>para el bloque actual (S1600). Es decir, el aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>y el mvi disponibles en los bloques vecinos del bloque actual. En este punto, el mv<0>puede ser un candidato de CPMVP de CP0 del bloque actual, y el mv<1>puede ser un candidato de CPMVP de CP1.
El aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>disponible en el primer grupo, y puede determinar si existe el mv<1>disponible en el segundo grupo.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<1>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<1>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el segundo grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del segundo grupo no satisfacen la condición específica, es posible que no haya mv<1>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino D al bloque vecino E en el segundo grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Cuando el mv<0>y el mv<1>para el bloque actual están disponibles, es decir, cuando se deriva el mv<0>y el mv<1>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar como el candidato construido del bloque actual el mv<0>y mv<1>derivados (S1610). Mientras tanto, cuando el mv<0>y/o mv<1>para el bloque actual no está o están disponibles, es decir, cuando al menos uno de mv<0>y mv<1>no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de decodificación no puede añadir el candidato construido a la lista de mvp afines del bloque actual.
La Figura 17 representa un ejemplo de derivación del candidato construido para un modelo de movimiento de afines de 6 aplicado al bloque actual.
Haciendo referencia a la Figura 17, el aparato de codificación/aparato de decodificación puede determinar si están disponibles mv<0>, mv<1>y mv<2>para el bloque actual (S1700). Es decir, el aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>, el mv<1>, o el mv<2>disponibles en los bloques vecinos del bloque actual. En este punto, el mv<0>puede ser un candidato de CPMVP de CP0 del bloque actual; el mv<1>, un candidato de CPMVP de CP1; y el mv<2>, un candidato de CPMVP de CP2.
El aparato de codificación/aparato de decodificación puede determinar si existe mv<0>disponible en el primer grupo, puede determinar si existe mv<1>disponible en el segundo grupo, y puede determinar si existe mv<2>disponible en el tercer grupo.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<1>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<1>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el segundo grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del segundo grupo no satisfacen la condición específica, es posible que no haya mv<1>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino D al bloque vecino E en el segundo grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el tercer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<2>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<2>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el tercer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del tercer grupo no satisfacen la condición específica, es posible que no haya mv<2>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino F al bloque vecino G en el tercer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Cuando están disponibles el mv<0>, el mv<1>, y el mv<2>para el bloque actual, es decir, cuando se deriva el mv<0>, el mv<1>, y el mv<2>para el bloque actual, el aparato de codificación/aparato de decodificación puede derivar el mv<0>, mv<1>, y mv<2>derivados como el candidato construido del bloque actual (S1710). Mientras tanto, cuando el mv<0>, mv<1>y/o mv<2>para el bloque actual no está o están disponibles, es decir, cuando al menos uno de mv<0>, mv<1>y mv<2>no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de decodificación no puede añadir el candidato construido a la lista de mvp afines del bloque actual.
Además, la presente divulgación propone un ejemplo de derivación de un candidato construido como se describe más adelante. Específicamente, en el ejemplo descrito más adelante, los CP para generar el modelo de movimiento de afines de 4 pueden determinarse de forma adaptativa basándose en la anchura y la altura del bloque actual. Es decir, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento de afines de 4, se pueden seleccionar dos CP entre CP0, CP1 y CP2 del bloque actual basándose en la anchura y la altura del bloque actual.
Por ejemplo, los CP del bloque actual se pueden seleccionar como en la siguiente tabla.
[Tabla 2]
Haciendo referencia a la Tabla 2, cuando la anchura del bloque actual es igual o mayor que su altura, los CP del modelo de movimiento afín para el bloque actual pueden seleccionarse para que sean CP0 y CP1. Además, cuando la anchura del bloque actual es menor que su altura, los CP del modelo de movimiento afín para el bloque actual pueden seleccionarse para que sean CP0 y CP2.
La Figura 18 representa un ejemplo de derivación de un candidato construido que incluye los CPMVP para los CP seleccionados de forma adaptativa basándose en la anchura y la altura del bloque actual.
Haciendo referencia a la Figura 18, cuando se aplica el modelo de movimiento de afines de 4 al bloque actual, el aparato de codificación/aparato de decodificación puede determinar si la anchura del bloque actual es igual o mayor que su altura (S1800). Cuando la anchura del bloque actual es igual o mayor que la altura del mismo, el aparato de codificación/aparato de decodificación puede seleccionar los CP del modelo de movimiento afín para que el bloque actual sea CP0 y CP1. Además, cuando la anchura del bloque actual es menor que la altura del mismo, el aparato de codificación/aparato de decodificación puede seleccionar los CP del modelo de movimiento afín para que el bloque actual sea CP0 y CP1.
Cuando la anchura del bloque actual es igual o mayor que la altura del mismo, el aparato de codificación/aparato de decodificación puede determinar si están disponibles mv<0>y mv<1>para el bloque actual (S1810). Es decir, el aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>y el mv<1>disponibles en los bloques vecinos del bloque actual. En este punto, el mv<0>puede ser un candidato de CPMVP de CP0 del bloque actual, y el mv<1>puede ser un candidato de CPMVP de CP1.
El aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>disponible en el primer grupo, y puede determinar si existe el mv<1>disponible en el segundo grupo.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<1>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<1>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el segundo grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del segundo grupo no satisfacen la condición específica, es posible que no haya mv<1>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino D al bloque vecino E en el segundo grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Mientras tanto, cuando la anchura del bloque actual es menor que la altura del mismo, se podrá determinar si están disponibles mv<0>y mv<2>para el bloque actual (S1820). Es decir, el aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>y el mv<2>disponibles en los bloques vecinos del bloque actual. En este punto, el mv<0>puede ser un candidato de CPMVP de CP0 del bloque actual, y el mv<2>puede ser un candidato de CPMVP de CP2.
El aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>disponible en el primer grupo, y puede determinar si existe el mv<2>disponible en el tercer grupo.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el tercer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<2>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<2>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el tercer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del tercer grupo no satisfacen la condición específica, es posible que no haya mv<2>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino F al bloque vecino G en el tercer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
El aparato de codificación/aparato de decodificación puede determinar el candidato construido del bloque actual basándose en los vectores de movimiento derivados (S1830). Por ejemplo, cuando se deriva mv<0>para el CP0 y mv<1>para el CP1, el aparato de codificación/aparato de decodificación puede determinar el mv<0>y el mv<1>como el candidato construido. Además, por ejemplo, cuando se deriva mv<0>para el CP0 y mv<2>para el CP2, el aparato de codificación/aparato de decodificación puede determinar el mv<0>y el mv<2>como el candidato construido.
Mientras tanto, cuando se aplica el modelo de movimiento de afines de 6 al bloque actual y cuando los CPMVP para el CP0, el CP1 y el CP2 (es decir, el mv<0>, mv<1>, mv<2>) están todos disponibles, se puede considerar el candidato construido.
Además, la presente divulgación propone un ejemplo de derivación de un candidato construido como se describe más adelante. Específicamente, se puede aplicar un ejemplo que se describirá más adelante para derivar un candidato construido de un bloque actual cuando no se considera un método de selección adaptativa de CP.
La Figura 19 representa un ejemplo de derivación de un candidato construido de un bloque actual.
El aparato de codificación/aparato de decodificación puede determinar si están disponibles mv<0>y mv<1>para el bloque actual (S1900). Cuando se aplica el modelo de movimiento de afines de 4 al bloque actual, el aparato de codificación/aparato de decodificación puede determinar si existen el mv<0>y mv<1>disponibles en los bloques vecinos del bloque actual. En este punto, el mv<0>puede ser un candidato de CPMVP de CP0 del bloque actual, y el mv<1>puede ser un candidato de CPMVP de CP1.
El aparato de codificación/aparato de decodificación puede determinar si existe el mv<0>disponible en el primer grupo, y puede determinar si existe el mv<1>disponible en el segundo grupo.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<1>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<1>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el segundo grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del segundo grupo no satisfacen la condición específica, es posible que no haya mv<1>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino D al bloque vecino E en el segundo grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Cuando no está o están disponibles el mv<0>y/o mv<1>para el bloque actual, es decir, cuando no se deriva al menos uno de mv<0>y mv<1>del bloque vecino del bloque actual, el aparato de codificación/aparato de decodificación puede determinar si están disponibles el mv<0>y el mv<2>para el bloque actual, y si la anchura del bloque actual es menor que la altura del mismo (S1910).
Por ejemplo, el aparato de codificación/aparato de decodificación puede determinar si existe el mv0 disponible en el primer grupo, y puede determinar si existe el mv2 disponible en el tercer grupo. En este punto, el mv0 puede ser un candidato de CPMVP de CP0 del bloque actual, y el mv2 puede ser un candidato de CPMVP de CP2.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<0>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<0>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el primer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del primer grupo no satisfacen la condición específica, es posible que no haya mv<0>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B, y, a continuación, al bloque vecino C en el primer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede comprobar los vectores de movimiento de los bloques vecinos en el tercer grupo en un orden específico si satisfacen una condición específica. El aparato de codificación/aparato de decodificación puede derivar como el mv<2>el vector de movimiento del bloque vecino que se ha confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación. Es decir, el mv<2>puede ser un vector de movimiento que se ha confirmado en primer lugar para satisfacer la condición específica mientras se comprueban los vectores de movimiento en el tercer grupo en un orden específico. Cuando los vectores de movimiento de los bloques vecinos del tercer grupo no satisfacen la condición específica, es posible que no haya mv<2>disponible. En este punto, por ejemplo, el orden específico puede ser uno desde el bloque vecino F al bloque vecino G en el tercer grupo. Además, por ejemplo, la condición específica puede ser que la imagen de referencia para el vector de movimiento del bloque vecino sea la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/aparato de decodificación puede determinar si la anchura del bloque actual es menor que la altura del mismo.
Cuando están disponibles el mv<0>y el mv<2>para el bloque actual, y cuando la anchura del bloque actual es menor que la altura del mismo, el aparato de codificación/aparato de decodificación puede derivar mv<1>para el bloque actual basándose en la Ecuación 9 anterior (S1920). Cuando están disponibles el mv<0>y el mv<2>para el bloque actual, y cuando la anchura del bloque actual es menor que la altura del mismo, el aparato de codificación/aparato de decodificación puede derivar el mv<1>sustituyendo el vm0 y el mv<2>derivadas en la Ecuación 9 anterior. Mientras tanto, cuando no está disponible al menos uno de los mv<0>y el mv<2>para el bloque actual, o cuando la anchura del bloque actual no es menor que la altura del bloque actual, el candidato construido del bloque actual no puede derivarse.
Después de esto, el aparato de codificación/aparato de decodificación puede derivar el mv<0>, mv<1>derivados como el candidato construido del bloque actual (S1930).
La Figura 20 representa esquemáticamente un método de codificación de imágenes por un aparato de codificación de acuerdo con la presente divulgación. El método desvelado en la Figura 20 puede realizarse mediante el aparato de codificación desvelado en la Figura 1. Específicamente, por ejemplo, S2000 a S2030 de la Figura 20 pueden realizarse por el predictor del aparato de codificación, y S2040 puede realizarse por el codificador por entropía del aparato de codificación. Además, aunque no se muestra, el proceso de derivación de muestras de predicción para el bloque actual basándose en los CPMV puede realizarse por el predictor del aparato de codificación; el proceso de derivar la muestra residual para el bloque actual basándose en la muestra de predicción y la muestra original para el bloque actual, por el restador del aparato de codificación; el proceso de generación de información sobre el residual para el bloque actual basándose en la muestra residual, por el transformador del aparato de codificación; y el proceso de codificación de la información sobre el residual, por el codificador por entropía del aparato de codificación.
El aparato de codificación construye una lista de candidatos de predictor de vector de movimiento (mvp) afines para el bloque actual S2000. El aparato de codificación puede construir la lista de candidatos de mvp afines que incluye los candidatos de mvp afines para el bloque actual.
Como un ejemplo, cuando un candidato de mvp afín construido está disponible, la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el candidato de mvp afín construido puede incluir vectores de movimiento candidatos para los CP. El candidato de mvp afín construido puede estar disponible cuando todos los vectores de movimiento candidatos están disponibles.
Por ejemplo, si se aplica un modelo de movimiento de afines de 4 al bloque actual, los CP del bloque actual pueden incluir CP0 y CP1. Cuando el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento para el CP1 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual y el CP1 puede representar una posición superior derecha del bloque actual.
El candidato de mvp afín construido puede incluir un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP1. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque, y el vector de movimiento candidato para el CP1 puede ser un vector de movimiento de un segundo bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1,0); el bloque vecino D, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino E, un bloque que incluye una muestra en las coordenadas (W, -1). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino D, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la derecha; y el bloque vecino E, el bloque vecino de la esquina superior derecha del bloque actual.
Mientras tanto, cuando al menos uno del vector de movimiento candidato del CP0 y el vector de movimiento candidato del CP1 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Como alternativa, por ejemplo, si se aplica un modelo de movimiento afín de 6 al bloque actual, los CP del bloque actual pueden incluir CP0, CP1 y CP2. Cuando el vector de movimiento para el CP0 está disponible y el vector de movimiento para el CP1 está disponible y el vector de movimiento para el CP2 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual; el CP1, una posición superior derecha del bloque actual; y el CP2, una posición inferior izquierda del bloque actual.
El candidato de mvp afín construido puede incluir el vector de movimiento candidato para el CP0, el vector de movimiento candidato para el CP1 y el vector de movimiento candidato para el CP2. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque; el vector de movimiento candidato para el CP1, un vector de movimiento de un segundo bloque; y el vector de movimiento candidato para el CP2, un vector de movimiento de un tercer bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Además, el tercer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el tercer grupo en un tercer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del tercer bloque en del tercer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP2 puede estar disponible. Además, por ejemplo, el tercer grupo puede incluir el bloque vecino F y el bloque vecino G, y el tercer orden específico puede ser un orden del bloque vecino F al bloque vecino G.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1, 0); el bloque vecino D, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino E, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino F, un bloque que incluye una muestra en las coordenadas (-1, H-1); y el bloque vecino G, un bloque que incluye una muestra en las coordenadas (-1, H). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino D, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la derecha; y el bloque vecino E, el bloque vecino de la esquina superior derecha del bloque; el bloque vecino F, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más inferior; y el bloque vecino G, el bloque vecino de la esquina inferior izquierda del bloque actual.
Mientras tanto, cuando al menos uno del vector de movimiento candidato de CP0, el vector de movimiento candidato de CP1 y el vector de movimiento candidato de CP2 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Además, por ejemplo, cuando se aplica el modelo de movimiento de afines de 4 al bloque actual, los CP pueden seleccionarse basándose en la anchura y la altura del bloque actual, y el candidato de mvp afín construido puede incluir vectores de movimiento candidatos para los CP seleccionados.
Por ejemplo, cuando la anchura del bloque actual es igual o mayor que la altura del mismo, los CP del bloque actual pueden incluir CP0 y CP1. Cuando el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento para el CP1 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual y el CP1 puede representar una posición superior derecha del bloque actual.
El candidato de mvp afín construido puede incluir un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP1. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque, y el vector de movimiento candidato para el CP1 puede ser un vector de movimiento de un segundo bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1, 0); el bloque vecino D, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino E, un bloque que incluye una muestra en las coordenadas (W, -1). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino D, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la derecha; y el bloque vecino E, el bloque vecino de la esquina superior derecha del bloque actual.
Cuando al menos uno del vector de movimiento candidato del CP0 y el vector de movimiento candidato del CP1 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Además, cuando la anchura del bloque actual es menor que la altura del mismo, los CP del bloque actual pueden incluir CP0 y CP2. Cuando el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento para el CP2 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual y el CP2 puede representar una posición inferior izquierda del bloque actual.
El candidato de mvp afín construido puede incluir un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP2. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque, y el vector de movimiento candidato para el CP2 puede ser un vector de movimiento de un tercer bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el tercer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el tercer grupo en un tercer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del tercer bloque en del tercer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP2 puede estar disponible. Además, por ejemplo, el tercer grupo puede incluir el bloque vecino F y el bloque vecino G, y el tercer orden específico puede ser un orden del bloque vecino F al bloque vecino G.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1, 0); el bloque vecino F, un bloque que incluye una muestra en las coordenadas (-1, H-1); y el bloque vecino G, un bloque que incluye una muestra en las coordenadas (-1, H). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino F, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más inferior; y el bloque vecino G, el bloque vecino de la esquina inferior izquierda del bloque actual.
Cuando al menos uno del vector de movimiento candidato del CP0 y el vector de movimiento candidato del CP2 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Además, como un ejemplo, la lista de candidatos de mvp afines puede incluir un candidato de mvp afín heredado.
El candidato de mvp afín heredado se puede derivar basándose en el bloque específico en los bloques vecinos del bloque actual. En este punto, el bloque específico puede codificarse de acuerdo con el modelo de movimiento afín, y una imagen de referencia del bloque específico puede ser la misma que la imagen de referencia del bloque actual.
En este punto, el bloque específico puede ser un bloque que se ha confirmado en primer lugar para satisfacer una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque esté codificado con el modelo de movimiento afín y que una imagen de referencia de un bloque sea la misma que una imagen de referencia del bloque actual. Por ejemplo, el aparato de codificación puede comprobar los bloques vecinos en el orden específico si satisface la condición, puede derivar un bloque específico que satisface en primer lugar la condición, y puede derivar el candidato de mvp afín heredado basándose en el bloque específico.
Específicamente, por ejemplo, el aparato de codificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque específico, y puede derivar el candidato de mvp afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. El modelo de movimiento afín se puede derivar como en la Ecuación 1 o 3 anterior.
En este punto, los bloques vecinos pueden incluir un bloque vecino izquierdo, un bloque vecino superior, un bloque vecino superior derecho, un bloque vecino inferior izquierdo y un bloque vecino superior izquierdo del bloque actual. Por ejemplo, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino izquierdo puede ser un bloque que incluye una muestra en las coordenadas (-1, H-1); el bloque vecino superior, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino superior derecho, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino inferior izquierdo, un bloque que incluye una muestra en las coordenadas (-1, H); y el bloque vecino de la superior izquierdo, un bloque que incluye una muestra en las coordenadas (-1, -1).
Mientras tanto, cuando el número de los candidatos de mvp afines que se han derivado a través del proceso descrito anteriormente es menor que dos, los candidatos de mvp afines pueden incluir el candidato de mvp en la norma de HEVC convencional.
Es decir, por ejemplo, cuando el número de candidatos de mvp afines que se han obtenido a través del proceso descrito anteriormente es menor que dos, el aparato de codificación puede derivar el candidato de mvp en la norma de HEVC convencional.
Mientras tanto, el aparato de codificación puede determinar el modelo de movimiento afín aplicado al bloque actual y generar y codificar información de tipo afín que indica el modelo de movimiento afín aplicado al bloque actual. Por ejemplo, la información de tipo afín puede representar si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento de afines de 6 o un modelo de movimiento de afines de 4. La información de tipo de afín puede señalizarse a través del flujo de bits. La información de imagen puede incluir la información de tipo de afín.
El aparato de codificación deriva predictores de vector de movimiento de punto de control (CPMVP) para puntos de control (CP) del bloque actual basándose en la lista de candidatos de mvp afines (S2010). El aparato de codificación puede derivar los CPMV para los CP del bloque actual que tiene un coste de RD óptimo, y puede seleccionar como candidato de mvp afín para el bloque actual el candidato de mvp afín de entre los candidatos de mvp afines, que es más similar a los CPMV. El aparato de codificación puede derivar predictores de vector de movimiento de punto de control (CPMVP) para puntos de control (CP) del bloque actual basándose en el candidato de mvp afín seleccionado de entre los candidatos de mvp afines incluidos en la lista de candidatos de mvp afines. Específicamente, cuando el candidato de mvp afín incluye el vector de movimiento candidato para CP0 y el vector de movimiento candidato para CP1, el vector de movimiento candidato para CP0 del candidato de mvp afín puede derivarse como el CPMVP del CP0, y el vector de movimiento candidato para CP1 del candidato de mvp afín puede derivarse como el CPMVP del CP1. Además, cuando el candidato de mvp afín incluye el vector de movimiento candidato para CP0, el vector de movimiento candidato para CP1 y el vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato de mvp afín puede derivarse como CPMVP del CP0; el vector de movimiento candidato para CP1 del candidato de mvp afín, como CPMVP del CP1; y el vector de movimiento candidato para CP2 del candidato de mvp afín, como CPMVP del CP2. Además, cuando el candidato de mvp afín incluye el vector de movimiento candidato para CP0 y el vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato de mvp afín puede derivarse como el CPMVP del CP0, y el vector de movimiento candidato para CP2 del candidato de mvp afín puede derivarse como el CPMVP del CP2.
El aparato de codificación puede codificar un índice de candidato de mvp afín que indica el candidato de mvp afín seleccionado entre los candidatos de mvp afines. El índice de candidato de mvp afín puede indicar el candidato de mvp afín entre los candidatos de mvp afines incluidos en la lista de candidatos del predictor de vector de movimiento (MVP) afines para el bloque actual.
El aparato de codificación deriva los CPMV para los CP del bloque actual (S2020). El aparato de codificación puede derivar los CPMV para los respectivos CP del bloque actual.
El aparato de codificación deriva diferencias de vector de movimiento de punto de control (CPMVD) para los CP del bloque actual basándose en los CPMVP y los CPMV (S2030). El aparato de codificación puede derivar las CPMVD para los CP del bloque actual basándose en los CPMVP y los CPMV para los respectivos CP.
El aparato de codificación codifica información de predicción de movimiento que incluye información sobre las CPMVD (S2040). El aparato de codificación puede emitir, en forma de flujo de bits, información de predicción de movimiento que incluye información sobre las CPMVD. Es decir, el aparato de codificación puede emitir, en forma de un flujo de bits, información de imagen que incluye la información de predicción de movimiento. El aparato de codificación puede codificar información sobre las CPMVD para los respectivos CP, y la información de predicción de movimiento puede incluir información sobre las CPMVD.
Además, la información de predicción de movimiento puede incluir el índice de candidato de mvp afín. El índice de candidato de mvp afín puede indicar el candidato de mvp afín seleccionado entre los candidatos de mvp afines incluidos en la lista de candidatos del predictor de vector de movimiento (mvp) afines para el bloque actual.
Mientras tanto, como ejemplo, el aparato de codificación puede derivar muestras de predicción para el bloque actual basándose en los CPMV, derivar la muestra residual para el bloque actual basándose en la muestra de predicción y la muestra original para el bloque actual, generar información sobre el residual para el bloque actual basándose en la muestra residual y codificar la información sobre el residual. La información de la imagen puede incluir información sobre el residual.
Mientras tanto, el flujo de bits puede transmitirse al aparato de decodificación a través de una red o un medio de almacenamiento (digital). En este punto, la red puede incluir una red de difusión, una red de comunicación y/o similares, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD y SSD y similares.
La Figura 21 representa esquemáticamente un aparato de codificación que realiza un método de codificación de imágenes de acuerdo con la presente divulgación. El método desvelado en la Figura 20 puede realizarse mediante el aparato de codificación desvelado en la Figura 21. Específicamente, por ejemplo, el predictor del aparato de codificación de la Figura 21 puede realizar S2000 a S2030 de la Figura 20, y el codificador por entropía del aparato de codificación de la Figura 21 puede realizar S2040 de la figura 20. Además, aunque no se muestra, el proceso de derivación de muestras de predicción para el bloque actual basándose en los CPMV puede realizarse por el predictor del aparato de codificación de la Figura 21; el proceso de derivar la muestra residual para el bloque actual basándose en la muestra de predicción y la muestra original para el bloque actual, por el restador del aparato de codificación de la Figura 21; el proceso de generación de información sobre el residual para el bloque actual basándose en la muestra residual, por el transformador del aparato de codificación de la Figura 21; y el proceso de codificación de la información sobre el residual, por el codificador por entropía del aparato de codificación de la Figura 21.
La Figura 22 representa esquemáticamente un método de decodificación de imágenes por un aparato de decodificación de acuerdo con la presente divulgación. El método desvelado en la Figura 22 puede realizarse mediante el aparato de decodificación desvelado en la Figura 2. Específicamente, por ejemplo, S2200 de la Figura 22 puede realizarse por el decodificador por entropía del aparato de decodificación; S2210 a S2250, por el predictor del aparato de decodificación; y S2260, por el sumador del aparato de decodificación. Además, aunque no se muestra, el proceso de obtener información sobre el residual del bloque actual a través de un flujo de bits puede realizarse por el decodificador por entropía del aparato de decodificación, y el proceso de derivar la muestra residual para el bloque actual basándose en la información residual puede realizarse por el transformador inverso del aparato de decodificación.
El aparato de decodificación obtiene información de predicción de movimiento para un bloque actual de un flujo de bits (S2200). El aparato de decodificación puede obtener información de imagen que incluye la información de predicción de movimiento del flujo de bits.
Además, por ejemplo, la información de predicción de movimiento puede incluir información sobre diferencias de vector de movimiento de punto de control (CPMVD) para puntos de control (CP) del bloque actual. Es decir, la información de predicción de movimiento puede incluir información sobre CPMVD para los respectivos CP del bloque actual.
Además, por ejemplo, la información de predicción de movimiento puede incluir el índice candidato de mvp afín para el bloque actual. El índice de candidato mvp afín puede indicar uno entre los candidatos de mvp afines incluidos en la lista de candidatos de predictor de vector de movimiento (mvp) afines para el bloque actual.
El aparato de decodificación construye una lista de candidatos de predictor de vector de movimiento (mvp) afines para el bloque actual (S2210). El aparato de decodificación puede construir una lista de candidatos de mvp afines que incluye los candidatos de mvp afines para el bloque actual.
Como un ejemplo, cuando un candidato de mvp afín construido está disponible, la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el candidato de mvp afín construido puede incluir vectores de movimiento candidatos para los CP. El candidato de mvp afín construido puede estar disponible cuando todos los vectores de movimiento candidatos están disponibles.
Por ejemplo, si se aplica un modelo de movimiento de afines de 4 al bloque actual, los CP del bloque actual pueden incluir CP0 y CP1. Cuando el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento para el CP1 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual y el CP1 puede representar una posición superior derecha del bloque actual.
El candidato de mvp afín construido puede incluir un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP1. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque, y el vector de movimiento candidato para el CP1 puede ser un vector de movimiento de un segundo bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1, 0); el bloque vecino D, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino E, un bloque que incluye una muestra en las coordenadas (W, -1). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino D, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la derecha; y el bloque vecino E, el bloque vecino de la esquina superior derecha del bloque actual.
Mientras tanto, cuando al menos uno del vector de movimiento candidato del CP0 y el vector de movimiento candidato del CP1 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Como alternativa, por ejemplo, si se aplica un modelo de movimiento afín de 6 al bloque actual, los CP del bloque actual pueden incluir CP0, CP1 y CP2. Cuando el vector de movimiento para el CP0 está disponible y el vector de movimiento para el CP1 está disponible y el vector de movimiento para el CP2 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual; el CP1, una posición superior derecha del bloque actual; y el CP2, una posición inferior izquierda del bloque actual.
El candidato de mvp afín construido puede incluir el vector de movimiento candidato para el CP0, el vector de movimiento candidato para el CP1 y el vector de movimiento candidato para el CP2. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque; el vector de movimiento candidato para el CP1, un vector de movimiento de un segundo bloque; y el vector de movimiento candidato para el CP2, un vector de movimiento de un tercer bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Además, el tercer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el tercer grupo en un tercer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del tercer bloque en del tercer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP2 puede estar disponible. Además, por ejemplo, el tercer grupo puede incluir el bloque vecino F y el bloque vecino G, y el tercer orden específico puede ser un orden del bloque vecino F al bloque vecino G.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1, 0); el bloque vecino D, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino E, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino F, un bloque que incluye una muestra en las coordenadas (-1, H-1); y el bloque vecino G, un bloque que incluye una muestra en las coordenadas (-1, H). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino D, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la derecha; y el bloque vecino E, el bloque vecino de la esquina superior derecha del bloque; el bloque vecino F, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más inferior; y el bloque vecino G, el bloque vecino de la esquina inferior izquierda del bloque actual.
Mientras tanto, cuando al menos uno del vector de movimiento candidato de CP0, el vector de movimiento candidato de CP1 y el vector de movimiento candidato de CP2 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Además, por ejemplo, cuando se aplica el modelo de movimiento de afines de 4 al bloque actual, los CP pueden seleccionarse basándose en la anchura y la altura del bloque actual, y el candidato de mvp afín construido puede incluir vectores de movimiento candidatos para los CP seleccionados.
Por ejemplo, cuando la anchura del bloque actual es igual o mayor que la altura del mismo, los CP del bloque actual pueden incluir CP0 y CP1. Cuando el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento para el CP1 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual y el CP1 puede representar una posición superior derecha del bloque actual.
El candidato de mvp afín construido puede incluir un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP1. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque, y el vector de movimiento candidato para el CP1 puede ser un vector de movimiento de un segundo bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1, 0); el bloque vecino D, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino E, un bloque que incluye una muestra en las coordenadas (W, -1). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino D, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la derecha; y el bloque vecino E, el bloque vecino de la esquina superior derecha del bloque actual.
Cuando al menos uno del vector de movimiento candidato del CP0 y el vector de movimiento candidato del CP1 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Además, cuando la anchura del bloque actual es menor que la altura del mismo, los CP del bloque actual pueden incluir CP0 y CP2. Cuando el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento para el CP2 está disponible, el candidato de mvp afín construido puede estar disponible y la lista de candidatos de mvp afines puede incluir el candidato de mvp afín construido. En este punto, el CP0 puede representar una posición superior izquierda del bloque actual y el CP2 puede representar una posición inferior izquierda del bloque actual.
El candidato de mvp afín construido puede incluir un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP2. El vector de movimiento candidato para el CP0 puede ser un vector de movimiento de un primer bloque, y el vector de movimiento candidato para el CP2 puede ser un vector de movimiento de un tercer bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del primer bloque en del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el tercer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el tercer grupo en un tercer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, cuando la imagen de referencia del tercer bloque en del tercer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para el CP2 puede estar disponible. Además, por ejemplo, el tercer grupo puede incluir el bloque vecino F y el bloque vecino G, y el tercer orden específico puede ser un orden del bloque vecino F al bloque vecino G.
Mientras tanto, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino puede ser un bloque que incluye una muestra en las coordenadas (-1, -1); el bloque vecino B, un bloque que incluye una muestra en las coordenadas (0, -1); el bloque vecino C, un bloque que incluye una muestra en las coordenadas (-1, 0); el bloque vecino F, un bloque que incluye una muestra en las coordenadas (-1, H-1); y el bloque vecino G, un bloque que incluye una muestra en las coordenadas (-1, H). Es decir, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior entre los bloques vecinos superiores del bloque actual, que está ubicado más a la izquierda; el bloque vecino C, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más superior; el bloque vecino F, el bloque vecino izquierdo entre los bloques vecinos izquierdos del bloque actual, que está ubicado en la parte más inferior; y el bloque vecino G, el bloque vecino de la esquina inferior izquierda del bloque actual.
Cuando al menos uno del vector de movimiento candidato del CP0 y el vector de movimiento candidato del CP2 no está disponible, el candidato de mvp afín construido puede no estar disponible.
Además, como un ejemplo, la lista de candidatos de mvp afines puede incluir un candidato de mvp afín heredado.
El candidato de mvp afín heredado se puede derivar basándose en el bloque específico en los bloques vecinos del bloque actual. En este punto, el bloque específico puede codificarse de acuerdo con el modelo de movimiento afín, y una imagen de referencia del bloque específico puede ser la misma que la imagen de referencia del bloque actual.
En este punto, el bloque específico puede ser un bloque que se ha confirmado en primer lugar para satisfacer una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque esté codificado con el modelo de movimiento afín y que una imagen de referencia de un bloque sea la misma que una imagen de referencia del bloque actual. Por ejemplo, el aparato de decodificación puede comprobar los bloques vecinos en el orden específico si satisface la condición, puede derivar un bloque específico que satisface en primer lugar la condición, y puede derivar el candidato de mvp afín heredado basándose en el bloque específico.
Específicamente, por ejemplo, el aparato de decodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque específico, y puede derivar el candidato de mvp afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. El modelo de movimiento afín se puede derivar como en la Ecuación 1 o 3 anterior.
En este punto, los bloques vecinos pueden incluir un bloque vecino izquierdo, un bloque vecino superior, un bloque vecino superior derecho, un bloque vecino inferior izquierdo y un bloque vecino superior izquierdo del bloque actual. Por ejemplo, si un tamaño del bloque actual es WxH, y un componente x de la posición de muestra superior izquierda del bloque actual es 0 y un componente y del mismo es 0, el bloque vecino izquierdo puede ser un bloque que incluye una muestra en las coordenadas (-1, H-1); el bloque vecino superior, un bloque que incluye una muestra en las coordenadas (W-1, -1); el bloque vecino superior derecho, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino inferior izquierdo, un bloque que incluye una muestra en las coordenadas (-1, H); y el bloque vecino de la superior izquierdo, un bloque que incluye una muestra en las coordenadas (-1, -1).
Mientras tanto, cuando el número de los candidatos de mvp afines que se han derivado a través del proceso descrito anteriormente es menor que dos, los candidatos de mvp afines pueden incluir el candidato de mvp en la norma de HEVC convencional.
Es decir, por ejemplo, cuando el número de candidatos de mvp afines que se han obtenido a través del proceso descrito anteriormente es menor que dos, el aparato de decodificación puede derivar el candidato de mvp en la norma de HEVC convencional.
Mientras tanto, el modelo de movimiento afín aplicado al bloque actual se puede derivar basándose en la información de tipo afín. Por ejemplo, la información de tipo afín puede representar el modelo de movimiento afín aplicado al bloque actual. Es decir, la información de tipo afín puede representar si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento de afines de 6 o un modelo de movimiento de afines de 4. La información de tipo de afín puede obtenerse a través del flujo de bits. La información de imagen puede incluir la información de tipo de afín.
El aparato de decodificación deriva predictores de vector de movimiento de punto de control (CPMVP) para puntos de control (CP) del bloque actual basándose en la lista de candidatos de mvp afines (S2220).
El aparato de decodificación puede seleccionar un candidato de mvp afín específico entre los candidatos de mvp afines incluidos en la lista de candidatos de mvp afines y puede derivar el candidato de mvp afín seleccionado como los CPMVP para los CP del bloque actual. Por ejemplo, el aparato de decodificación puede obtener el índice de candidato de mvp afín para el bloque actual del flujo de bits, y puede derivar como los CPMVP para los CP del bloque actual el candidato de mvp afín entre los candidatos de mvp afines incluidos en la lista de candidatos de mvp afines, que indica el índice de candidato de mvp afín. Específicamente, cuando el candidato de mvp afín incluye el vector de movimiento candidato para CP0 y el vector de movimiento candidato para CP1, el vector de movimiento candidato para CP0 del candidato de mvp afín puede derivarse como el CPMVP del CP0, y el vector de movimiento candidato para CP1 del candidato de mvp afín puede derivarse como el CPMVP del CP1. Además, cuando el candidato de mvp afín incluye el vector de movimiento candidato para CP0, el vector de movimiento candidato para CP1 y el vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato de mvp afín puede derivarse como CPMVP del CP0; el vector de movimiento candidato para CP1 del candidato de mvp afín, como CPMVP del CP1; y el vector de movimiento candidato para CP2 del candidato de mvp afín, como CPMVP del CP2. Además, cuando el candidato de mvp afín incluye el vector de movimiento candidato para CP0 y el vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato de mvp afín puede derivarse como el CPMVP del CP0, y el vector de movimiento candidato para CP2 del candidato de mvp afín puede derivarse como el CPMVP del CP2.
El aparato de decodificación deriva las diferencias de vector de movimiento de punto de control (CPMVD) para los CP del bloque actual basándose en la información de predicción de movimiento (S2230). La información de predicción de movimiento puede incluir información sobre CPMVD para los respectivos CP, y el aparato de decodificación puede derivar la CPMVD para los respectivos CP del bloque actual basándose en la información sobre la CPMVD para los respectivos CP.
El aparato de decodificación deriva vectores de movimiento de punto de control (CPMV) para los CP del bloque actual basándose en los CPMVP y las CPMVD (S2240). El aparato de decodificación puede derivar CpMv para cada CP basándose en CpMVD y CPMVP para los respectivos CP. Por ejemplo, el aparato de decodificación puede derivar el CPMV para el CP añadiendo la CPMVD y el CPMVP para el CP.
El aparato de decodificación deriva las muestras de predicción para el bloque actual basándose en los CPMV (S2250). El aparato de decodificación puede derivar vectores de movimiento de unidades de subbloque o unidades de muestra del bloque actual basándose en los CPMV. Es decir, el aparato de decodificación puede derivar un vector de movimiento de cada subbloque o cada muestra del bloque actual basándose en los CPMV. Los vectores de movimiento de las unidades subbloque o las unidades de muestra pueden derivarse basándose en la Ecuación 1 o la Ecuación 3 descritas anteriormente. Los vectores de movimiento pueden representarse como un campo de vector de movimiento (MVF) afín o matriz de vectores de movimiento.
El aparato de decodificación puede derivar muestras de predicción para el bloque actual basándose en vectores de movimiento de las unidades de subbloque o las unidades de muestra. El aparato de decodificación puede derivar un área de referencia en una imagen de referencia basándose en vectores de movimiento de la unidad de subbloque o la unidad de muestra, y generar una muestra de predicción del bloque actual basándose en la muestra reconstruida en el área de referencia.
El aparato de decodificación genera una imagen de reconstrucción para el bloque actual basándose en las muestras de predicción derivadas (S2260). El aparato de decodificación puede generar una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas. El aparato de decodificación puede usar una muestra de predicción directamente como muestra de reconstrucción de acuerdo con el modo de predicción, o puede generar una muestra de reconstrucción añadiendo una muestra residual a la muestra de predicción. Si existe una muestra residual para el bloque actual, el aparato de decodificación puede obtener información sobre el residual para el bloque actual a partir del flujo de bits. La información sobre el residual puede incluir un coeficiente de transformada relativo a la muestra residual. El aparato de decodificación puede derivar la muestra residual (o matrices de muestras residuales) para el bloque actual basándose en la información residual. El aparato de decodificación puede generar una muestra de reconstrucción basándose en la muestra de predicción y la muestra residual, y derivar un bloque reconstruido o una imagen reconstruida basándose en la muestra de reconstrucción. Después de esto, como se ha descrito anteriormente, el aparato de decodificación puede aplicar un procedimiento de filtrado en bucle, tal como un procedimiento SAO y/o filtrado de desbloqueo a la imagen reconstruida para mejorar la calidad de vídeo subjetiva/objetiva según sea necesario.
La Figura 23 representa esquemáticamente un aparato de decodificación que realiza un método de decodificación de imágenes de acuerdo con la presente divulgación. El método desvelado en la Figura 22 puede realizarse mediante el aparato de decodificación desvelado en la Figura 23. Específicamente, por ejemplo, un decodificador por entropía del aparato de decodificación de la Figura 23 puede realizar S2200 de la Figura 22; un predictor del aparato de decodificación de la Figura 23, S2210 a S2250 de la Figura 22; y un sumador del aparato de decodificación de la Figura 23, S2260 de la Figura 22. Además, aunque no se muestra, el proceso de obtención de información de imagen que incluye información sobre el residual del bloque actual a través de un flujo de bits puede realizarse por el decodificador por entropía del aparato de decodificación de la Figura 23, y el proceso de derivación de la muestra residual para el bloque actual basándose en la información residual puede realizarse por el transformador inverso del aparato de decodificación de la Figura 23.
De acuerdo con la presente divulgación anteriormente descrita, es posible aumentar la eficacia de la codificación de imágenes basándose en la predicción de movimiento afín.
Además, de acuerdo con la presente divulgación, al derivar la lista de candidatos de mvp afines, únicamente cuando todos los vectores de movimiento candidatos para los CP del candidato de mvp afín construido están disponibles, se puede añadir el candidato de mvp afín construido, a través del cual es posible reducir la complejidad del proceso de derivación del candidato de mvp afín construido y el proceso de construcción de la lista de candidatos de mvp afines, y mejorar la eficacia de codificación.
En el ejemplo descrito anteriormente, los métodos se explican basándose en un diagrama de flujo por medio de una serie de etapas o bloques, pero la presente divulgación no se limita al orden de las etapas, y una cierta etapa puede ocurrir en un orden diferente o de forma simultánea con otras etapas distintas a las descritas anteriormente. Además, un experto en la materia puede entender que las etapas mostradas en un diagrama de flujo no son exclusivas y que se puede incorporar otra etapa o se pueden eliminar una o más etapas del diagrama de flujo sin afectar el alcance de la presente divulgación.
Las realizaciones descritas en el presente documento pueden incorporarse y realizarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades de funciones mostradas en cada dibujo pueden realizarse y ejecutarse en un procesador, un microprocesador, un controlador o un chip. En este caso, la información o el algoritmo para la realización (por ejemplo, la información sobre la instrucción) pueden almacenarse en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación a los que se aplica la presente divulgación pueden incluirse en un transceptor de difusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de chat de vídeo, un dispositivo de comunicación en tiempo real tal como comunicación por vídeo, un dispositivo de envío por flujo continuo móvil, un medio de almacenamiento, una videocámara, un dispositivo que proporciona servicios de vídeo bajo demanda (VoD), un dispositivo de vídeo de transmisión libre (OTT), un dispositivo que proporciona servicios de envío por flujo continuo de Internet, un dispositivo de vídeo tridimensional (3D), un dispositivo de vídeo de telefonía de vídeo, un terminal de medios de transporte (por ejemplo, un terminal de vehículo, un terminal de aeronave, un terminal de barco, etc.) y un dispositivo de vídeo médico, y puede usarse para procesar una señal de vídeo o una señal de datos. Por ejemplo, el dispositivo de vídeo de transmisión libre (OTT) puede incluir una consola de juegos, un reproductor de Blu-ray, una TV con acceso a Internet, un sistema de cine en casa, un teléfono inteligente, un PC de tableta, un grabador de vídeo digital (DVR) y similares.
Además, el método de procesamiento al que se aplica la presente divulgación se puede producir en forma de un programa ejecutado por un ordenador y se puede almacenar en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos de acuerdo con la presente divulgación también pueden almacenarse en un medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento de distribución en los que se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede incluir, por ejemplo, un disco Bluray (BD), un bus serie universal (USB), una ROM, una PROM, una EPROM, una EEPROM, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo de almacenamiento de datos óptico. Además, el medio de grabación legible por ordenador también incluye medios incorporados en forma de onda portadora (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado por el método de codificación puede almacenarse en un medio de grabación legible por ordenador o transmitirse a través de una red de comunicación alámbrica o inalámbrica.
Además, los ejemplos de la presente divulgación pueden realizarse como un producto de programa de ordenador mediante códigos de programa, y los códigos de programa pueden ejecutarse en un ordenador mediante los ejemplos de la presente divulgación. Los códigos de programa pueden almacenarse en un soporte legible por ordenador.
La Figura 24 representa ilustrativamente un diagrama de estructura de sistema de envío por flujo continuo de contenidos al que se aplica la presente divulgación.
El sistema de envío por flujo continuo de contenidos al que se aplica la presente divulgación puede incluir en gran medida un servidor de codificación, un servidor de envío por flujo continuo, un servidor web, un almacenamiento de medios, un equipo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación funciona para comprimir en datos digitales la entrada de contenido desde los dispositivos de entrada multimedia, tal como el teléfono inteligente, la cámara, la videocámara y similares, para generar un flujo de bits y para transmitirlo al servidor de envío por flujo continuo. Como otro ejemplo, en un caso en el que el teléfono inteligente, la cámara, la videocámara o similar genere un flujo de bits por sí mismo, se puede omitir el servidor de codificación.
El flujo de bits puede generarse mediante un método de codificación o un método de generación de flujo de bits al que se aplica la presente divulgación. Y el servidor de envío por flujo continuo puede almacenar el flujo de bits temporalmente durante un proceso para transmitir o recibir el flujo de bits.
El servidor de envío por flujo continuo transmite datos multimedia al equipo del usuario basándose en la solicitud de un usuario a través del servidor web, que funciona como un instrumento que informa al usuario de qué servicios existen. Cuando el usuario solicita un servicio que desea, el servidor web lo transfiere al servidor de envío por flujo continuo, y el servidor de envío por flujo continuo transmite datos multimedia al usuario. A este respecto, el sistema de envío por flujo continuo de contenidos puede incluir un servidor de control separado y, en este caso, el servidor de control funciona para controlar comandos/respuestas entre equipos respectivos en el sistema de envío por flujo continuo de contenidos.
El servidor de envío por flujo continuo puede recibir contenidos del almacenamiento de medios y/o del servidor de codificación. Por ejemplo, en el caso de que los contenidos se reciban del servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, el servidor de envío por flujo continuo puede almacenar el flujo de bits durante un período de tiempo predeterminado para proporcionar el servicio de envío por flujo continuo sin problemas.
Por ejemplo, el equipo de usuario puede incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), un sistema de navegación, un PC pizarra, un PC tableta, un ultraportátil, un dispositivo llevable (por ejemplo, un terminal tipo reloj), un terminal de tipo gafas (gafas inteligentes), una pantalla montada en la cabeza (HMD), una TV digital, un ordenador de sobremesa, una señalización digital o similar. Cada uno de los servidores del sistema de envío por flujo continuo de contenidos puede funcionar como un servidor distribuido y, en este caso, los datos recibidos por cada servidor pueden procesarse de forma distribuida.

Claims (3)

REIVINDICACIONES
1. Un aparato de decodificación para decodificar imágenes, el aparato de decodificación comprende: una memoria y
al menos un procesador conectado a la memoria, el al menos un procesador está configurado para:
obtener (S2220) información de las diferencias de vector de movimiento de punto de control, CPMVD, para puntos de control, CP, para un bloque actual a partir de un flujo de bits;
determinar vectores de movimiento disponibles para los CP del bloque actual;
construir (S2210) una lista de candidatos de predictores de vector de movimiento afines, mvp, para el bloque actual basada en los vectores de movimiento disponibles para los CP;
derivar (S2220) predictores de vector de movimiento de punto de control, CPMVP, para los CP del bloque actual basándose en la lista de candidatos de mvp afines;
derivar (S2230) las CPMVD para los CP del bloque actual basándose en la información de las CPMVD para los CP del bloque actual;
derivar (S2240) vectores de movimiento de punto de control, CPMV, para los CP del bloque actual basándose en los CPMVP y las CPMVD;
derivar vectores de movimiento de subbloques para el bloque actual basándose en los CPMV; derivar (S2250) muestras de predicción para el bloque actual basándose en los vectores de movimiento del subbloque para el bloque actual; y
generar (S2260) una imagen reconstruida para el bloque actual basándose en las muestras de predicción, en donde los CP incluyen un punto de control 0, CP0, un punto de control 1, CP1, y un punto de control 2, CP2, en donde el CP0 está ubicado en una posición superior izquierda del bloque actual, el CP1 está ubicado en una posición superior derecha del bloque actual y el CP2 está ubicado en una posición inferior izquierda del bloque actual,
en donde un vector de movimiento disponible para el CP0 se deriva de un primer grupo de bloques vecinos como un CPMVP para el CP0, un vector de movimiento disponible para el CP1 se deriva de un segundo grupo de bloques vecinos como un CPMVP para el CP1 y un vector de movimiento disponible para el CP2 se deriva de un tercer grupo de bloques vecinos como un CPMVP para el CP2,
en donde cuando una imagen de referencia de un primer bloque en el primer grupo de bloques vecinos es la misma que una imagen de referencia del bloque actual, se determina un vector de movimiento del primer bloque como el vector de movimiento disponible para el CP0,
en donde cuando una imagen de referencia de un segundo bloque en el segundo grupo de bloques vecinos es la misma que la imagen de referencia del bloque actual, se determina un vector de movimiento del segundo bloque como el vector de movimiento disponible para el CP1,
en donde cuando una imagen de referencia de un tercer bloque en el tercer grupo de bloques vecinos es la misma que la imagen de referencia del bloque actual, se determina un vector de movimiento del tercer bloque como el vector de movimiento disponible para el CP2,
en donde una combinación del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 y el vector de movimiento disponible para el CP2 se deriva como un candidato de mvp afín construido, caracterizado por que
la lista de candidatos de mvp afines incluye el candidato de mvp afín construido basándose en que el candidato de mvp afín construido esté disponible,
en donde el candidato de mvp afín construido está disponible únicamente cuando están presentes todos del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 y el vector de movimiento disponible para el CP2, y
en donde el candidato de mvp afín construido no está disponible basándose en la ausencia de al menos uno del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 o el vector de movimiento disponible para el CP2, y
en donde el candidato de mvp afín construido no está incluido en la lista de candidatos de mvp afines basándose en la ausencia de al menos uno del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 o el vector de movimiento disponible para el CP2.
2. Un aparato de codificación para codificar imágenes, el aparato de codificación comprende:
una memoria y
al menos un procesador conectado a la memoria, el al menos un procesador está configurado para:
determinar vectores de movimiento disponibles para puntos de control, CP, de un bloque actual; construir (S2000) una lista de candidatos de predictores de vector de movimiento afines, mvp, para el bloque actual basándose en los vectores de movimiento disponibles para los CP;
derivar (S2010) predictores de vector de movimiento de punto de control, CPMVP, para los CP del bloque actual basándose en la lista de candidatos de mvp afines;
derivar (S2020) vectores de movimiento de punto de control, CPMV, para los CP del bloque actual; derivar (S2030) diferencias de vector de movimiento de punto de control, CPMVD, para los CP del bloque actual basándose en los CPMVP y los CPMV; y
codificar (S2040) información de las CPMVD para los CP,
en donde los CP incluyen un punto de control 0, CP0, un punto de control 1, CP1, y un punto de control 2, CP2, en donde el CP0 está ubicado en una posición superior izquierda del bloque actual, el CP1 está ubicado en una posición superior derecha del bloque actual y el CP2 está ubicado en una posición inferior izquierda del bloque actual,
en donde un vector de movimiento disponible para el CP0 se deriva de un primer grupo de bloques vecinos como un CPMVP para el CP0, un vector de movimiento disponible para el CP1 se deriva de un segundo grupo de bloques vecinos como un CPMVP para el CP1, un vector de movimiento disponible para el CP2 se deriva de un tercer grupo de bloques vecinos como un CPMVP para el CP2,
en donde cuando una imagen de referencia de un primer bloque en el primer grupo de bloques vecinos es la misma que una imagen de referencia del bloque actual, se determina un vector de movimiento del primer bloque como el vector de movimiento disponible para el CP0,
en donde cuando una imagen de referencia de un segundo bloque en el segundo grupo de bloques vecinos es la misma que la imagen de referencia del bloque actual, se determina un vector de movimiento del segundo bloque como el vector de movimiento disponible para el CP1,
en donde cuando una imagen de referencia de un tercer bloque en el tercer grupo de bloques vecinos es la misma que la imagen de referencia del bloque actual, se determina un vector de movimiento del tercer bloque como el vector de movimiento disponible para el CP2,
en donde una combinación del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 y el vector de movimiento disponible para el CP2 se deriva como un candidato de mvp afín construido,
caracterizado por que
la lista de candidatos de mvp afines incluye el candidato de mvp afín construido basándose en que el candidato de mvp afín construido esté disponible,
en donde el candidato de mvp afín construido está disponible únicamente cuando están presentes todos del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 y el vector de movimiento disponible para el CP2,
en donde el candidato de mvp afín construido no está disponible basándose en la ausencia de al menos uno del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 o el vector de movimiento disponible para el CP2, y
en donde el candidato de mvp afín construido no está incluido en la lista de candidatos de mvp afines basándose en la ausencia de al menos uno del vector de movimiento disponible para el CP0, el vector de movimiento disponible para el CP1 o el vector de movimiento disponible para el CP2.
3. Un aparato para transmitir datos para una imagen, el aparato comprende:
al menos un procesador configurado para generar un flujo de bits para la imagen llevando a cabo la codificación de la imagen realizada por el aparato de codificación de la reivindicación 2; y
un transmisor configurado para transmitir los datos que comprende el flujo de bits.
ES24169958T 2018-08-06 2019-08-06 Image decoding method and device on basis of affine motion prediction using constructed affine mvp candidate in image coding system Active ES3033610T3 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201862715269P 2018-08-06 2018-08-06

Publications (1)

Publication Number Publication Date
ES3033610T3 true ES3033610T3 (en) 2025-08-06

Family

ID=69415568

Family Applications (3)

Application Number Title Priority Date Filing Date
ES19847936T Active ES2949795T3 (es) 2018-08-06 2019-08-06 Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de MVP afín construido en el sistema de codificación de imágenes
ES23161726T Active ES2983996T3 (es) 2018-08-06 2019-08-06 Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de mvp afín construido en el sistema de codificación de imágenes
ES24169958T Active ES3033610T3 (en) 2018-08-06 2019-08-06 Image decoding method and device on basis of affine motion prediction using constructed affine mvp candidate in image coding system

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES19847936T Active ES2949795T3 (es) 2018-08-06 2019-08-06 Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de MVP afín construido en el sistema de codificación de imágenes
ES23161726T Active ES2983996T3 (es) 2018-08-06 2019-08-06 Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de mvp afín construido en el sistema de codificación de imágenes

Country Status (13)

Country Link
US (3) US11240527B2 (es)
EP (4) EP3694213B1 (es)
JP (5) JP7043599B2 (es)
KR (5) KR20240133754A (es)
CN (5) CN116916040A (es)
ES (3) ES2949795T3 (es)
FI (2) FI3694213T3 (es)
HR (3) HRP20250691T1 (es)
HU (3) HUE062298T2 (es)
PL (3) PL3694213T3 (es)
RS (1) RS66891B1 (es)
SI (2) SI3694213T1 (es)
WO (1) WO2020032526A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE060426T2 (hu) 2018-09-10 2023-02-28 Lg Electronics Inc Kép kódolás affin mozgás predikció alapján affin MVP jelölt lista használatával
CN114079787B (zh) * 2020-08-10 2024-06-14 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备和存储介质
EP4425926A4 (en) * 2021-09-29 2025-11-19 Lg Electronics Inc METHOD AND DEVICE FOR ENCODING AND DECODING IMAGES AND RECORDING MEDIUM CONTAINING A BINARY STREAM STORED WITHIN IT

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101762294B1 (ko) * 2011-10-18 2017-07-28 주식회사 케이티 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
SG10202111537RA (en) * 2015-03-10 2021-11-29 Huawei Tech Co Ltd Picture prediction method and related apparatus
CN115002455B (zh) * 2015-06-05 2025-03-25 杜比实验室特许公司 图像编码和解码方法和图像解码设备
US20190158870A1 (en) 2016-01-07 2019-05-23 Mediatek Inc. Method and apparatus for affine merge mode prediction for video coding system
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
WO2017156705A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Affine prediction for video coding
US11095898B2 (en) * 2016-03-28 2021-08-17 Lg Electronics Inc. Inter-prediction mode based image processing method, and apparatus therefor
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
WO2018128232A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
US11889100B2 (en) * 2017-11-14 2024-01-30 Qualcomm Incorporated Affine motion vector prediction in video coding

Also Published As

Publication number Publication date
KR102447514B1 (ko) 2022-09-26
JP7654866B2 (ja) 2025-04-01
EP3694213A4 (en) 2020-10-07
KR20220131364A (ko) 2022-09-27
EP4216551A1 (en) 2023-07-26
EP4376409B1 (en) 2025-05-14
KR20240133754A (ko) 2024-09-04
FI4216551T3 (fi) 2024-06-20
EP4376409A3 (en) 2024-07-31
SI4216551T1 (sl) 2024-08-30
CN116980593A (zh) 2023-10-31
EP4376409A2 (en) 2024-05-29
KR20210158418A (ko) 2021-12-30
PL4376409T3 (pl) 2025-07-28
EP4576781A3 (en) 2025-08-27
EP3694213B1 (en) 2023-05-03
JP7293438B2 (ja) 2023-06-19
KR20230098911A (ko) 2023-07-04
KR102547353B1 (ko) 2023-06-26
KR20200055114A (ko) 2020-05-20
JP7483988B2 (ja) 2024-05-15
CN116916040A (zh) 2023-10-20
JP2025094114A (ja) 2025-06-24
JP2021503259A (ja) 2021-02-04
HUE062298T2 (hu) 2023-10-28
CN111434116A (zh) 2020-07-17
ES2983996T3 (es) 2024-10-28
CN116916041A (zh) 2023-10-20
KR102344962B1 (ko) 2021-12-31
CN111434116B (zh) 2023-09-15
US11924460B2 (en) 2024-03-05
JP2022082597A (ja) 2022-06-02
HRP20230763T1 (hr) 2023-10-13
EP4576781A2 (en) 2025-06-25
CN116916039A (zh) 2023-10-20
US20240214603A1 (en) 2024-06-27
RS66891B1 (sr) 2025-07-31
JP2023105160A (ja) 2023-07-28
HUE072080T2 (hu) 2025-10-28
HUE067241T2 (hu) 2024-10-28
JP2024092010A (ja) 2024-07-05
FI3694213T3 (fi) 2023-07-25
KR102697969B1 (ko) 2024-08-23
JP7043599B2 (ja) 2022-03-29
US20200260110A1 (en) 2020-08-13
SI3694213T1 (sl) 2023-09-29
EP4376409C0 (en) 2025-05-14
EP4216551B1 (en) 2024-05-29
WO2020032526A1 (ko) 2020-02-13
PL4216551T3 (pl) 2024-08-05
HRP20250691T1 (hr) 2025-08-01
ES2949795T3 (es) 2023-10-03
JP7795022B2 (ja) 2026-01-06
EP3694213A1 (en) 2020-08-12
HRP20240844T1 (hr) 2024-11-22
US11240527B2 (en) 2022-02-01
US20220124364A1 (en) 2022-04-21
PL3694213T3 (pl) 2023-09-04

Similar Documents

Publication Publication Date Title
ES2926196T3 (es) Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines
ES3019563T3 (en) Image decoding and encoding apparatus based on motion prediction in sub-block unit in image coding system
KR102943304B1 (ko) 머지 후보를 이용하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치
ES3063233T3 (en) Image decoding method and image encoding method for deriving weight index information for generation of prediction sample
CN111418212A (zh) 基于图像编码系统中的仿射运动预测的图像解码方法和设备
EP3975556A1 (en) Image decoding method for performing inter-prediction when prediction mode for current block ultimately cannot be selected, and device for same
JP7795022B2 (ja) 画像コーディングシステムにおいてコンストラクテッドアフィンmvp候補を使用するアフィン動き予測に基づいた画像デコード方法及び装置
KR102857618B1 (ko) 결정된 예측 모드를 적용하여 예측 샘플들을 생성하는 영상 디코딩 방법 및 그 장치
ES2960029T3 (es) Método y aparato para inter predicción en un sistema de codificación de vídeo
CN112567749B (zh) 使用仿射运动预测来处理视频信号的方法和装置
ES2974947T3 (es) Método y aparato para la predicción inter en un sistema de procesamiento de video
RU2812840C2 (ru) Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания