ES2970207T3 - Método de descodificación y codificación de imágenes por un aparato basándose en una predicción de movimiento en una unidad de subbloque en un sistema de codificación de imágenes - Google Patents

Método de descodificación y codificación de imágenes por un aparato basándose en una predicción de movimiento en una unidad de subbloque en un sistema de codificación de imágenes Download PDF

Info

Publication number
ES2970207T3
ES2970207T3 ES19859588T ES19859588T ES2970207T3 ES 2970207 T3 ES2970207 T3 ES 2970207T3 ES 19859588 T ES19859588 T ES 19859588T ES 19859588 T ES19859588 T ES 19859588T ES 2970207 T3 ES2970207 T3 ES 2970207T3
Authority
ES
Spain
Prior art keywords
block
candidate
motion vector
current block
neighbor
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
ES19859588T
Other languages
English (en)
Inventor
Jaeho Lee
Junghak Nam
Naeri Park
Hyeongmoon Jang
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 ES2970207T3 publication Critical patent/ES2970207T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/527Global motion vector 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/53Multi-resolution motion estimation; Hierarchical motion estimation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un método de decodificación de imágenes según el presente documento puede comprender las etapas de: obtener información de predicción de movimiento en un bloque actual a partir de un flujo de bits; generar una lista de candidatos MVP afín para el bloque actual; derivar CPMVP para CP del bloque actual sobre la base de la lista de candidatos a MVP afines; derivar CPMVD para los CP del bloque actual en base a 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 basándose en los CPMV. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método de descodificación y codificación de imágenes por un aparato basándose en una predicción de movimiento en una unidad de subbloque en un sistema de codificación de imágenes
Antecedentes de la divulgación
Campo de la divulgación
El presente documento se refiere a una técnica de codificación de imágenes y, más particularmente, a un método y aparato de descodificación de imágenes basándose en una predicción de movimiento usando una lista de candidatos de movimiento para derivar información de movimiento de una unidad de subbloque en un sistema de codificación de imágenes.
Técnica relacionada
Hoy en día, la demanda de imágenes/vídeos de alta resolución y alta calidad, tales como imágenes/vídeos de ultra alta definición (UHD) de 4K, 8K o más, ha ido aumentando en diversos campos. A medida que los datos de imagen/vídeo adquieren mayor resolución y mayor calidad, la cantidad de información transmitida o la cantidad de bits aumenta en comparación con los datos de imagen convencionales. Por lo tanto, cuando los datos de imagen se transmiten usando un medio tal como una línea de banda ancha cableada/inalámbrica convencional o los datos de imagen/vídeo se almacenan usando un medio de almacenamiento existente, se aumentan el coste de transmisión y el coste de almacenamiento de los mismos.
Además, hoy en día está aumentando el interés por y la demanda de medios inmersivos tales como realidad virtual (VR) y contenidos de realidad artificial (AR) u hologramas o similares, y está aumentando la radiodifusión de imágenes/vídeos que tienen características de imagen diferentes a las de una imagen real, tales como una imagen de juego.
Por consiguiente, existe la necesidad de una técnica de compresión de imagen/vídeo altamente eficiente para comprimir y transmitir o almacenar y reproducir de forma eficaz información de imágenes/vídeos de alta resolución y alta calidad que tengan diversas características como se ha descrito anteriormente.
Han (Qualcomm) Y y col.,"CEL 1.3: Affine motion compensation prediction",n.° m43274, (03-07-2018), 123. Reunión de MPEG; 16-07-2018 - 20-07-2018; Liubliana; (Grupo de Expertos en Imágenes en Movimiento o ISO/IEC JTC1/SC29/WG11) describe tecnologías de predicción de compensación de movimiento afín y presenta algunos resultados de prueba.
Ang (Huawei) H y col.,"Description of Core Experiment 4 (CE4): Inter prediction and motion vector coding',n.° JVET-K1024, (09-08-2018), 11. Reunión de JVET; 11-07-2018 - 18-07-2018; Liubliana; (el Equipo de Exploración de Vídeo Conjunto de ISO/IEC JTC1/SC29/WG11 e ITU-T SG.16) investiga diversas técnicas de codificación de vector de movimiento e inter predicción.
Sumario
Un problema técnico que va a abordarse en el presente documento radica en proporcionar un método y un aparato que aumentan la eficiencia de codificación de imágenes.
Otro problema técnico que va a abordarse en el presente documento radica en proporcionar un método y aparato de descodificación de imágenes que configuran una lista de candidatos de MVP afines del bloque actual derivando un candidato de MVP afín construido basándose en un bloque vecino solo cuando todos los vectores de movimiento candidatos para unos CP están disponibles, y realizar una predicción para el bloque actual basándose en la lista de candidatos de MVP afines configurada.
Otro problema técnico que va a abordarse en el presente documento radica en proporcionar un método y aparato de descodificación de imágenes que derivan una lista de candidatos de MVP afines del bloque actual usando un vector de movimiento candidato que se ha derivado en un proceso de derivar el candidato de<m>V<p>afín construido, como un candidato de MVP afín añadido cuando el número de candidatos de MVP afines heredados disponibles y candidatos de MVP afines construidos es menor que el número máximo de candidatos de una lista de candidatos de MVP, y que realizan una predicción para el bloque actual basándose en la lista de candidatos de MVP afines configurada.
La invención se define mediante las reivindicaciones independientes. Las características de las realizaciones ilustrativas se definen en las reivindicaciones dependientes.
De acuerdo con un ejemplo del presente documento, es posible aumentar la eficacia de compresión de imagen/vídeo general.
De acuerdo con el presente documento, es posible aumentar la eficiencia de la codificación de imágenes basándose en la predicción de movimiento afín.
De acuerdo con el presente documento, al derivar la lista de candidatos de MVP afines, solo cuando todos los vectores de movimiento candidatos para los CP del candidato de MVP afín construido están disponibles, puede añadirse el candidato de MVP afín construido, a través de lo cual es posible reducir la complejidad del proceso de derivar el candidato de MVP afín construido y el proceso de configurar la lista de candidatos de MVP afines, y para la eficiencia de codificación.
De acuerdo con el presente documento, al derivar la lista de candidatos de MVP afines, el candidato de MVP afín adicional puede derivarse basándose en el vector de movimiento candidato para el CP derivado en el proceso de derivar el candidato de MVP afín construido, a través de lo cual es posible reducir la complejidad del proceso de configurar la lista de candidatos de MVP afines, y mejorar la eficiencia de codificación.
De acuerdo con el presente documento, en el proceso de derivar el candidato de MVP afín heredado, solo cuando el bloque vecino superior se incluye en la CTU actual, el candidato de MVP afín heredado puede derivarse usando el bloque vecino superior, a través de lo cual es posible reducir la cantidad de almacenamiento de la memoria intermedia de líneas para una predicción afín, y minimizar los costes de hardware.
Breve descripción de los dibujos
La figura 1 representa esquemáticamente un ejemplo de un sistema de codificación de vídeo/imágenes al que puede aplicarse el presente documento.
La figura 2 es un diagrama que describe esquemáticamente una configuración de un aparato de codificación de vídeo/imágenes al que puede aplicarse el presente documento.
La figura 3 es un diagrama que describe esquemáticamente una configuración de un aparato de descodificación de vídeo/imágenes al que puede aplicarse el presente documento.
La figura 4 representa un ejemplo de un método de codificación de vídeo/imágenes basado en inter predicción. La figura 5 representa un ejemplo de un método de codificación de vídeo/imágenes basado en inter predicción. La figura 6 representa ilustrativamente un procedimiento de inter predicción.
La figura 7 representa ilustrativamente movimientos que se expresan a través de un modelo de movimiento afín. La figura 8 representa ilustrativamente el modelo de movimiento afín en el que se usan vectores de movimiento para tres puntos de control.
La figura 9 representa ilustrativamente un modelo de movimiento de la unidad afín en el que se usan vectores de movimiento para dos puntos de control.
La figura 10 representa ilustrativamente un método para derivar un vector de movimiento en una unidad de subbloque basándose en el modelo de movimiento 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 configuració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 ilustrativamente una posición de bloque vecino que se explora para derivar el candidato afín heredado.
La figura 17 representa ilustrativamente una posición de bloque vecino que se explora para derivar el candidato afín heredado.
La figura 18 representa ilustrativamente una posición para derivar el candidato afín heredado.
La figura 19 representa un ejemplo de configuración de la lista de candidatos de fusión del bloque actual.
La figura 20 representa bloques vecinos del bloque actual para derivar un candidato construido de acuerdo con un ejemplo del presente documento.
La figura 21 representa un ejemplo de derivación del candidato construido para un modelo de movimiento afín de 4 aplicado al bloque actual.
La figura 22 representa un ejemplo de derivación del candidato construido para un modelo de movimiento afín de 6 aplicado al bloque actual.
Las figuras 23a y 23b representan ilustrativamente un ejemplo de derivación del candidato afín heredado.
La figura 24 representa esquemáticamente un método de codificación de imágenes por un aparato de codificación de acuerdo con el presente documento.
La figura 25 representa esquemáticamente un aparato de codificación que realiza un método de codificación de imágenes de acuerdo con el presente documento.
La figura 26 representa esquemáticamente un método de descodificación de imágenes por un aparato de descodificación de acuerdo con el presente documento.
La figura 27 representa esquemáticamente un aparato de descodificación que realiza un método de descodificación de imágenes de acuerdo con el documento.
La figura 28 representa ilustrativamente un diagrama de estructura de sistema de envío por flujo continuo de contenidos al que pueden aplicarse las realizaciones divulgadas en el presente documento.
Descripción de realizaciones ilustrativas
Aunque el presente documento puede ser susceptible de diversas modificaciones e incluir diversas realizaciones, se han mostrado realizaciones específicas del mismo a modo de ejemplo en los dibujos, y se describirán a continuación con detalle. Sin embargo, esto no pretende limitar el presente documento a las realizaciones específicas divulgadas en el presente documento. La terminología usada en el presente documento es solo para el fin de describir realizaciones específicas, y no pretende limitar la idea técnica del presente documento. Las formas singulares pueden incluir las formas plurales a menos que el contexto indique claramente lo contrario. 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, no se debería entender que 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 se excluye por adelantado.
En lo sucesivo en el presente documento, se explicarán realizaciones preferidas del presente documento con más detalle haciendo referencia a los dibujos adjuntos. Además, se usan los mismos signos de referencia para los mismos componentes en los dibujos y se omitirán descripciones repetidas para los mismos componentes.
La figura 1 representa esquemáticamente un ejemplo de un sistema de codificación de vídeo/imágenes al que puede aplicarse el presente documento.
Haciendo referencia a la figura 1, un sistema de codificación de vídeo/imágenes puede incluir un primer dispositivo (dispositivo fuente) y un segundo dispositivo (dispositivo receptor). El dispositivo fuente puede entregar información o datos de vídeo/imagen codificados en forma de archivo o mediante envío por flujo continuo al dispositivo receptor a través de una red o un medio de almacenamiento digital.
El dispositivo fuente puede incluir una fuente de vídeo, un aparato de codificación y un transmisor. El dispositivo receptor puede incluir un receptor, un aparato de descodificación y un representador. El aparato de codificación puede denominarse aparato de codificación de vídeo/imágenes, y el aparato de descodificación puede denominarse aparato de descodificación de vídeo/imágenes. El transmisor puede incluirse en el aparato de codificación. El receptor puede incluirse en el aparato de descodificación. El representador puede incluir un visualizador, y el visualizador puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede obtener un vídeo/imagen a través de un proceso de capturar, sintetizar o generar un vídeo/imagen. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo de generación de vídeo/imagen. El dispositivo de captura de vídeo/imagen puede incluir, por ejemplo, una o más cámaras, archivos de vídeo/imagen que incluyen vídeo/imágenes capturadas previamente o similares. El dispositivo de generación de vídeo/imagen puede incluir, por ejemplo, un ordenador, una tableta y un teléfono inteligente, y puede generar (electrónicamente) un vídeo/imagen. Por ejemplo, una imagen/vídeo virtual puede generarse a través de un ordenador o similar. En este caso, el proceso de captura de vídeo/imagen puede sustituirse por un proceso de generar datos relacionados.
El aparato de codificación puede codificar un vídeo/imagen de entrada. El aparato de codificación puede realizar una serie de procedimientos tales como predicción, transformada y cuantificación para la eficiencia de compresión y codificación. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de flujo de bits.
El transmisor puede transmitir la información de vídeo/imagen codificada o la salida de datos en forma de flujo de bits al receptor del dispositivo receptor a través de un medio de almacenamiento digital o una red en forma de archivo o envío por flujo continuo. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo de medios a través de un formato de archivo predeterminado, y puede incluir un elemento para la transmisión a través de una red de radiodifusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido/extraído al aparato de descodificación.
El aparato de descodificación puede descodificar un vídeo/imagen realizando una serie de procedimientos tales como descuantificación, transformada inversa, predicción y similares, correspondientes a la operación del aparato de codificación.
El representador puede representar el vídeo/imagen descodificado. El vídeo/imagen representado puede visualizarse a través del visualizador.
Este documento se refiere a la codificación de vídeo/imágenes. Por ejemplo, un método/realización divulgado en este documento pueden aplicarse a métodos divulgados en la norma de codificación de vídeo versátil (VVC), la norma de codificación de vídeo esencial (EVC), la norma AOMedia Video 1 (AV1), la norma de segunda generación de codificación de audio vídeo (AVS2) o la norma de codificación de vídeo/imágenes de la próxima generación (por ejemplo, H.267, H.268 o similares).
En este documento, puede proporcionarse una diversidad de realizaciones en relación con la codificación de vídeo/imágenes y, a menos que se especifique lo contrario, las realizaciones pueden combinarse entre sí y ejecutarse.
En este documento, un vídeo puede significar un conjunto de una serie de imágenes a lo largo del tiempo. En general, una instantánea significa una unidad que representa una imagen en una zona horaria específica, y un sector/tesela es una unidad que constituye una parte de la imagen. El sector/tesela puede incluir una o más unidades de árbol de codificación (CTU). Una imagen puede estar constituida por uno o más sectores/teselas. Una imagen puede estar constituida por uno o más grupos de teselas. Un grupo de teselas puede incluir una o más teselas. Un ladrillo puede representar una región rectangular de filas de CTU dentro de una tesela en una imagen. Una tesela puede dividirse en múltiples ladrillos, consistiendo cada uno de los cuales en una o más filas de CTU dentro de la tesela. Una tesela que no se divide en múltiples ladrillos también puede denominarse ladrillo. Una exploración de ladrillos puede ser una ordenación secuencial específica de unas CTU que dividen una imagen en la que las CTU pueden ordenarse consecutivamente en una exploración por filas de CTU en un ladrillo, los ladrillos dentro de una tesela pueden ordenarse consecutivamente en una exploración por filas de los ladrillos de la tesela, y las teselas en una imagen pueden ordenarse consecutivamente en una exploración por filas de las teselas de la imagen (una exploración de ladrillos es una ordenación secuencial específica de unas CTU que dividen una imagen en la que las CTU se ordenan consecutivamente en una exploración por filas de CTU en un ladrillo, los ladrillos dentro de una tesela se ordenan consecutivamente en una exploración por filas de los ladrillos de la tesela, y las teselas en una imagen se ordenan consecutivamente en una exploración por filas de las teselas de la imagen). Una tesela es una región rectangular de las CTU dentro de una columna de teselas particular y una columna de teselas particular (una tesela es una región rectangular de las CTU dentro de una columna de teselas particular y una fila de teselas particular en una imagen). La columna de teselas es una región rectangular de las CTU que tiene una altura igual a la altura de la imagen y una anchura especificada por elementos de sintaxis en el conjunto de parámetros de imagen. La fila de teselas es una región rectangular de las CTU que tiene una anchura especificada por elementos de sintaxis en el conjunto de parámetros de imagen y una altura igual a la altura de la imagen (la fila de teselas es una región rectangular de las CTU que tiene una altura especificada por elementos de sintaxis en el conjunto de parámetros de imagen y una anchura igual a la anchura de la imagen). Una exploración de teselas puede ser una ordenación secuencial específica de unas CTU que dividen una imagen en la que las CTU pueden ordenarse consecutivamente en una exploración por filas de CTU en una tesela mientras que las teselas en una imagen pueden ordenarse consecutivamente en una exploración por filas de las teselas de la imagen (una exploración de teselas es una ordenación secuencial específica de unas CTU que dividen una imagen en la que las CTU se ordenan consecutivamente en una exploración por filas de CTU en una tesela mientras que las teselas en una imagen se ordenan consecutivamente en una exploración por filas de las teselas de la imagen). Un sector puede incluir un número entero de ladrillos de una imagen que pueden estar contenidos exclusivamente en una única unidad de NAL (un sector incluye un número entero de ladrillos de una imagen que pueden estar contenidos exclusivamente en una única unidad de NAL). Un sector puede consistir en un número de teselas completas o solo una secuencia consecutiva de ladrillos completos de una tesela. En este documento, un grupo de teselas y un sector pueden usarse uno en lugar de otro. Por ejemplo, en este documento, un grupo de piezas/encabezado de grupo de piezas puede denominarse sector/encabezado de sector.
Un píxel o un pel puede significar una unidad mínima que constituye una instantánea (o imagen). Además, una "muestra" puede usarse como un término correspondiente a un píxel. Una muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar solo un píxel/valor de píxel de una componente de luma o solo un píxel/valor de píxel de una componente de croma.
Una unidad puede representar la unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de una región específica e información relacionada con la región. Una unidad puede incluir un bloque de luma y dos bloques de croma (por ejemplo, cb, cr). La unidad y un término tal como bloque, área o similar pueden usarse una en lugar del otro de acuerdo con las circunstancias. En un caso general, un bloque de M * N puede incluir un conjunto (o una matriz) de muestras (o matrices de muestras) o coeficientes de transformada que consisten en M columnas y M filas.
En este documento, debería interpretarse que el símbolo V indica "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Asimismo, "A, B, C" puede significar "al menos uno de A, B y/o C" (en este documento, debería interpretarse que el término "/" indica "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Asimismo, "A/B/C" puede significar "al menos uno de A, B y/o C").
Además, en el documento, debería interpretarse que el término "o" indica "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B, y/o 3) tanto A como B. En otras palabras, debería interpretarse que el término "o" en este documento indica "adicionalmente o como alternativa" (además, en el documento, debería interpretarse que el término "o" indica "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, debería interpretarse que el término "o" en este documento indica "adicionalmente o como alternativa").
La figura 2 es un diagrama que describe esquemáticamente una configuración de un aparato de codificación de vídeo/imágenes al que puede aplicarse el presente documento. En lo sucesivo en el presente documento, lo que se denomina aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Haciendo referencia a la figura 2, el aparato de codificación 200 puede incluir un divisor de imágenes 210, un predictor 220, un procesador de residuos 230, un codificador por entropía 240, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un inter predictor 221 y un intra predictor 222. El procesador de residuos 230 puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador inverso 235. El procesador de residuos 230 puede incluir además un restador 231. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. El divisor de imágenes 210, el predictor 220, el procesador de residuos 230, el codificador por entropía 240, el sumador 250 y el filtro 260 que se han descrito anteriormente, pueden estar constituidos por uno o más componentes de hardware (por ejemplo, procesadores o conjuntos de chips de codificador), de acuerdo con una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes descodificadas (DPB) y puede estar constituida por un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como un componente interno/externo.
El divisor de imágenes 210 puede dividir una imagen (o una instantánea o un fotograma) de entrada introducida en el aparato de codificación 200 en una o más unidades de procesamiento. Como un ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, comenzando con una unidad de árbol de codificación (CTU) o la unidad de codificación más grande (LCU), la unidad de codificación puede dividirse recursivamente de acuerdo con la estructura de árbol cuádruple - árbol binario - árbol ternario (QTBTTT). Por ejemplo, una unidad de codificación puede dividirse en una pluralidad de unidades de codificación de una profundidad mayor basándose en la estructura de árbol cuádruple, la estructura de árbol binario y/o la estructura ternaria. En este caso, por ejemplo, puede aplicarse en primer lugar la estructura de árbol cuádruple, y puede aplicarse más adelante la estructura de árbol binario y/o la estructura ternaria. Como alternativa, puede aplicarse en primer lugar la estructura de árbol binario. El procedimiento de codificación de acuerdo con el presente documento puede realizarse basándose en la unidad de codificación final que no se divide adicionalmente. En este caso, la unidad de codificación máxima puede usarse directamente como una unidad de codificación final basándose en la eficiencia de codificación de acuerdo con la característica de imagen. Como alternativa, la unidad de codificación puede dividirse recursivamente en unidades de codificación de mayor profundidad según sea necesario, de tal modo que la unidad de codificación de un tamaño óptimo puede usarse como una unidad de codificación final. En el presente caso, el procedimiento de codificación puede incluir procedimientos tales como predicción, transformación y reconstrucción, que se describirán más adelante. Como otro ejemplo, la unidad de procesamiento puede incluir además una unidad de predicción (PU) o una unidad de transformada (TU). En este caso, la unidad de predicción y la unidad de transformada pueden escindirse o separarse de la unidad de codificación final descrita anteriormente. La unidad de predicción puede ser una unidad de predicción de muestras, y la unidad de transformada puede ser una unidad para derivar un coeficiente de transformada y/o una unidad para derivar una señal de residuo a partir de un coeficiente de transformada.
La unidad y un término tal como bloque, área o similar pueden usarse una en lugar del otro de acuerdo con las circunstancias. En un caso general, un bloque de M * N puede representar un conjunto de muestras o coeficientes de transformada que consiste en M columnas y N filas. La muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar solo un píxel/valor de píxel de una componente de luma o solo un píxel/valor de píxel de una componente de croma. La muestra puede usarse como un término correspondiente a un píxel o un pel de una instantánea (o imagen).
En el aparato de codificación 200, una señal de predicción (un bloque predicho, una matriz de muestras de predicción) emitida desde el inter predictor 221 o el intra predictor 222 se resta de una señal de imagen de entrada (un bloque original, una matriz de muestras original) para generar una señal de residuo (un bloque de residuos, una matriz de muestras de residuo), y la señal de residuo generada se transmite al transformador 232. En este caso, como se muestra, una unidad que resta la señal de predicción (el bloque predicho, la matriz de muestras de predicción) de la señal de imagen de entrada (el bloque original, la matriz de muestras original) en el codificador 200 puede denominarse restador 231. El predictor puede realizar una predicción en un bloque objetivo de procesamiento (denominado, en lo sucesivo en el presente documento, "bloque actual"), y puede generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica una intra predicción o una inter predicción en función de la CU o bloque actual. Como se analiza más adelante en la descripción de cada modo de predicción, el predictor puede generar diversa información en relación con la predicción, tal como información de modo de predicción, y transmitir la información generada al codificador por entropía 240. La información acerca de la predicción puede codificarse en el codificador por entropía 240 y emitirse en forma de flujo de bits.
El intra predictor 222 puede predecir el bloque actual haciendo referencia a muestras en la imagen actual. Las muestras referidas pueden ubicarse en la vecindad o lejos del bloque actual de acuerdo con el modo de predicción. En la intra predicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. Los modos no direccionales pueden incluir, por ejemplo, un modo de CC y un modo plano. El modo direccional puede incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional de acuerdo con el grado de detalle de la dirección de predicción. Sin embargo, esto es simplemente un ejemplo, y pueden usarse más o menos modos de predicción direccionales dependiendo de un ajuste. El intra predictor 222 puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque vecino.
El inter predictor 221 puede derivar un bloque predicho para el bloque actual basándose en un bloque de referencia (una matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, para reducir la cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento puede predecirse en función de un bloque, un subbloque o una muestra basándose en una correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de inter predicción (predicción de L0, predicción de L1, bipredicción, etc.). En el caso de inter predicció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 de referencia y la imagen de referencia que incluye el bloque vecino temporal pueden ser iguales entre sí o diferentes entre sí. El bloque vecino temporal puede denominarse bloque de referencia ubicado conjuntamente, CU ubicada conjuntamente (colCU), y similares, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen ubicada conjuntamente (colPic). Por ejemplo, el inter predictor 221 puede configurar una lista de candidatos de información de movimiento basándose en bloques vecinos y generar información que indique qué candidato se usa para derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La inter predicción puede realizarse basándose en diversos modos de predicción. Por ejemplo, en el caso de un modo de salto y un modo de fusión, el inter predictor 221 puede usar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el modo de salto, a diferencia del modo de fusión, la señal de residuo puede no transmitirse. En el caso del modo de predicción de información de movimiento (predicción de vector de movimiento, MVP), el vector de movimiento del bloque vecino puede usarse como predictor de vector de movimiento y el vector de movimiento del bloque actual puede indicarse señalizando una diferencia de vector de movimiento.
El predictor 220 puede generar una señal de predicción basándose en diversos métodos de predicción. Por ejemplo, el predictor puede aplicar una intra predicción o inter predicción para la predicción en un bloque y, también, puede aplicar una intra predicción y una inter predicción al mismo tiempo. Esto puede denominarse inter e intra predicción combinadas (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra bloque (IBC), o un modo de paleta para realizar una predicción en un bloque. El modo de predicción de IBC o el modo de paleta puede usarse para la codificación de imágenes/vídeo de contenido de un juego o similar, tal como codificación de contenido de pantalla (SCC). Aunque el IBC realiza básicamente la predicción en un bloque actual, puede realizarse de forma similar a la inter predicción en el sentido de que deriva un bloque de referencia en un bloque actual. Es decir, el IBC puede usar al menos una de las técnicas de inter predicción descritas en el presente documento. El modo de paleta puede considerarse como un ejemplo de intra codificación o intra predicción. Cuando se aplica el modo de paleta, puede señalizarse un valor de muestra en una imagen basándose en información acerca de un índice de paleta y una tabla de paleta.
La señal de predicción generada a través del predictor (incluyendo el inter predictor 221 y/o el intra predictor 222) puede usarse para generar una señal reconstruida o para generar una señal de residuo. El transformador 232 puede generar coeficientes de transformada aplicando una técnica de transformada a la señal de residuo. Por ejemplo, la técnica de transformada puede incluir al menos una transformada de coseno discreta (DCT), una transformada de seno discreta (DST), una transformada de Karhunen-Loéve (KLT), una transformada basada en gráficos (GBT) o una transformada condicionalmente no lineal (CNT). En el presente caso, la GBT significa una transformada obtenida de un gráfico cuando se representa información de relación entre píxeles mediante el gráfico. La CNT se refiere a la transformada obtenida basándose en una señal de predicción generada usando todos los píxeles reconstruidos previamente. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados que tienen el mismo tamaño o puede aplicarse a bloques que tienen un tamaño variable en lugar del cuadrado.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitir los mismos al codificador por entropía 240, y el codificador por entropía 240 puede codificar la señal cuantificada (información acerca de los coeficientes de transformada cuantificados) y emitir la señal codificada en un flujo de bits. La información acerca de los coeficientes de transformada cuantificados puede denominarse información de residuo. El cuantificador 233 puede reorganizar coeficientes de transformada cuantificados de tipo bloque en una forma de vector unidimensional basándose en un orden de exploración de coeficientes, y generar información acerca de los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados de la forma de vector unidimensional. El codificador por entropía 240 puede realizar diversos métodos de codificación tales como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. El codificador por entropía 240 puede codificar información necesaria para la reconstrucción de vídeo/imagen que no sean coeficientes de transformada cuantificados (por ejemplo, valores de elementos de sintaxis, etc.), juntos o por separado. La información codificada (por ejemplo, información de vídeo/imagen codificada) puede transmitirse o almacenarse en función de una unidad de una capa de abstracción de red (NAL) en forma de flujo de bits. La información de vídeo/imagen puede incluir además información acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de vídeo (VPS) o similares. Además, la información de vídeo/imagen puede incluir además información de restricción general.
En el presente documento, los elementos de información y/o sintaxis que se transmiten/señalizan al aparato de descodificación desde el aparato de codificación pueden incluirse en información de vídeo/imagen. La información de vídeo/imagen puede codificarse a través del procedimiento de codificación descrito anteriormente e incluirse en el flujo de bits. El flujo de bits puede transmitirse a través de una red o almacenarse en un medio de almacenamiento digital. En el presente caso, la red puede incluir una red de radiodifusió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. Un transmisor (no mostrado) que transmite una señal emitida desde el codificador por entropía 240 y/o un almacenamiento (no mostrado) que almacena la señal pueden configurarse como un elemento interno/externo del aparato de codificación 200, o el transmisor puede incluirse en el codificador por entropía 240.
Los coeficientes de transformada cuantificados emitidos desde el cuantificador 233 pueden usarse para generar una señal de predicción. Por ejemplo, aplicando una descuantificación y una transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 234 y el transformador inverso 235, puede reconstruirse la señal de residuo (el bloque de residuos o las muestras de residuo). El sumador 155 suma la señal de residuo reconstruida a una señal de predicción emitida desde el inter predictor 221 o el intra predictor 222, de tal modo que puede generarse una señal reconstruida (una imagen reconstruida, un bloque reconstruido, una matriz de muestras reconstruida). Cuando no hay ningún residuo para un bloque objetivo de procesamiento como en un caso en el que se aplica el modo de salto, el bloque predicho puede usarse como un bloque reconstruido. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para una intra predicción de un siguiente bloque objetivo de procesamiento en el bloque actual y, como se describe más adelante, puede usarse para una inter predicción de una imagen siguiente a través de un filtrado.
Por otro lado, en el proceso de codificación y/o reconstrucción de imágenes, puede aplicarse una correlación de luma con un ajuste a escala de croma (LMCS).
El filtro 260 puede mejorar la calidad de vídeo subjetiva/objetiva aplicando el filtrado a la señal reconstruida. Por ejemplo, el filtro 260 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 270, específicamente, en la DPB de la memoria 270. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra, filtro de bucle adaptativo, filtro bilateral o similares. Como se describe más adelante en la descripción de cada método de filtrado, el filtro 260 puede generar diversa información en relación con el filtrado y transmitir la información generada al codificador por entropía 240. La información acerca del filtrado puede codificarse en el codificador por entropía 240 y emitirse en forma de flujo de bits.
La imagen reconstruida modificada que se ha transmitido a la memoria 270 puede usarse como una imagen de referencia en el inter predictor 221. A través de esto, el aparato de codificación puede evitar una falta de coincidencia de predicción en el aparato de codificación 100 y un aparato de descodificación cuando se aplica la inter predicción, y también puede mejorar la eficiencia de codificación.
La DPB de la memoria 270 puede almacenar la imagen reconstruida modificada para usar la misma como una imagen de referencia en el inter predictor 221. La memoria 270 puede almacenar información de movimiento de un bloque en la imagen actual, a partir de la cual se ha derivado (o codificado) información de movimiento y/o información de movimiento de bloques en una imagen ya reconstruida. La información de movimiento almacenada puede transmitirse al inter predictor 221 para utilizar la misma como información de movimiento de un bloque vecino o información de movimiento de un bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transmitir las mismas al intra predictor 222.
La figura 3 es un diagrama que describe esquemáticamente una configuración de un aparato de descodificación de vídeo/imágenes al que puede aplicarse el presente documento.
Haciendo referencia a la figura 3, el aparato de descodificación de vídeo 300 puede incluir un descodificador por entropía 310, un procesador de residuos 320, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un inter predictor 331 y un intra predictor 332. El procesador de residuos 320 puede incluir un descuantificador 321 y un transformador inverso 321. El descodificador por entropía 310, el procesador de residuos 320, el predictor 330, el sumador 340 y el filtro 350, que se han descrito anteriormente, pueden estar constituidos por uno o más componentes de hardware (por ejemplo, procesadores o conjuntos de chips de descodificador) de acuerdo con una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes descodificadas (DPB) y puede estar constituida por un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como un componente interno/externo.
Cuando se introduce un flujo de bits que incluye información de vídeo/imagen, el aparato de descodificación 300 puede reconstruir una imagen de forma correspondiente a un proceso mediante el cual se ha procesado la información de vídeo/imagen en el aparato codificación de la figura 2. Por ejemplo, el aparato de descodificación 300 puede derivar unidades/bloques basándose en información en relación con la división de bloques obtenida a partir del flujo de bits. El aparato de descodificación 300 puede realizar una descodificación usando una unidad de procesamiento aplicada en el aparato de codificación. Por lo tanto, la unidad de procesamiento de descodificación puede ser, por ejemplo, una unidad de codificación, que puede dividirse a lo largo de la estructura de árbol cuádruple, la estructura de árbol binario y/o la estructura de árbol ternario a partir de una unidad de árbol de codificación o la unidad de codificación más grande. Una o más unidades de transformada pueden derivarse a partir de la unidad de codificación. Y la señal de imagen reconstruida descodificada y emitida a través del aparato de descodificación 300 puede reproducirse a través de un reproductor.
El aparato de descodificación 300 puede recibir una señal emitida desde el aparato de codificación de la figura 2 en forma de un flujo de bits, y la señal recibida puede descodificarse a través del descodificador por entropía 310. Por ejemplo, el descodificador por entropía 310 puede analizar el flujo de bits para derivar información (por ejemplo, información de vídeo/imagen) requerida para la reconstrucción de imágenes (o la reconstrucción de instantáneas). La información de vídeo/imagen puede incluir además información acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de vídeo (VPS) o similares. Además, la información de vídeo/imagen puede incluir además información de restricción general. El aparato de descodificación puede descodificar una imagen basándose adicionalmente en información acerca del conjunto de parámetros y/o la información de restricción general. En el presente documento, información señalizada/recibida y/o elementos de sintaxis, que se describirán más adelante, pueden descodificarse a través del procedimiento de descodificación y obtenerse a partir del flujo de bits. Por ejemplo, el descodificador por entropía 310 puede descodificar información en el flujo de bits basándose en un método de codificación tal como codificación Golomb exponencial, CAVLC, CABAC, o similares, y puede emitir un valor de un elemento de sintaxis necesario para la reconstrucción de la imagen y valores cuantificados de un coeficiente de transformada con respecto a un residuo. Más específicamente, un método de descodificación por entropía de CABAC puede recibir un bin correspondiente a cada elemento de sintaxis en un flujo de bits, determinar un modelo de contexto usando información de elemento de sintaxis de objetivo de descodificación y descodificar información de bloques objetivo vecinos y de descodificación, o información de símbolo/bin descodificada en una etapa previa, predecir una probabilidad de generación de bin de acuerdo con el modelo de contexto determinado y realizar una descodificación aritmética del bin para generar un símbolo correspondiente a cada valor de elemento de sintaxis. En el presente caso, el método de descodificación por entropía de CABAC puede actualizar el modelo de contexto usando información de un símbolo/bin descodificado para un modelo de contexto del siguiente símbolo/bin después de la determinación del modelo de contexto. Puede proporcionarse al predictor (el inter predictor 332 y el intra predictor 331) información acerca de una predicción de entre información descodificada en el descodificador por entropía 310, y valores de residuo, es decir, coeficientes de transformada cuantificados sobre los que se ha realizado una descodificación por entropía en el descodificador por entropía 310, e información de parámetros asociada, pueden introducirse en el procesador de residuos 320. El procesador de residuos 320 puede derivar una señal de residuo (un bloque de residuos, unas muestras de residuo, una matriz de muestras de residuo). Además, puede proporcionarse al filtro 350 información acerca de un filtrado de entre información descodificada en el descodificador por entropía 310. Por otro lado, un receptor (no mostrado) que recibe una señal emitida desde el aparato de codificación puede constituir adicionalmente el aparato de descodificación 300 como un elemento interno/externo, y el receptor puede ser un componente del descodificador por entropía 310. Por otro lado, el aparato de descodificación de acuerdo con el presente documento puede denominarse aparato de codificación de vídeo/imágenes/instantáneas, y el aparato de descodificación puede clasificarse en un descodificador de información (descodificador de información de vídeo/imágenes/instantáneas) y un descodificador de muestras (descodificador de muestras de vídeo/imágenes/instantáneas). El descodificador de información puede incluir el descodificador por entropía 310, y el descodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador inverso 322, el sumador 340, el filtro 350, la memoria 360, el inter predictor 332 y el intra predictor 331.
El descuantificador 321 puede generar coeficientes de transformada descuantificando los coeficientes de transformada cuantificados. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en forma de bloque bidimensional. En este caso, la reorganización puede realizar una reorganización basándose en un orden de exploración de coeficientes que se ha realizado en el aparato de codificación. El descuantificador 321 puede realizar la descuantificación de los coeficientes de transformada cuantificados usando un parámetro de cuantificación (por ejemplo, información de tamaño de etapa de cuantificación), y obtener coeficientes de transformada.
El descuantificador 322 obtiene una señal de residuo (un bloque de residuos, una matriz de muestras de residuo) transformando inversamente unos coeficientes de transformada.
El predictor puede realizar una predicción en el bloque actual y puede generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica una intra predicción o una inter predicción al bloque actual basándose en la información acerca de la predicción emitida desde el descodificador por entropía 310 y, específicamente, puede determinar un modo de intra/inter predicción.
El predictor 320 puede generar una señal de predicción basándose en diversos métodos de predicción. Por ejemplo, el predictor puede aplicar una intra predicción o inter predicción para la predicción en un bloque y, también, puede aplicar una intra predicción y una inter predicción al mismo tiempo. Esto puede denominarse inter e intra predicción combinadas (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra bloque (IBC), o un modo de paleta para realizar una predicción en un bloque. El modo de predicción de IBC o el modo de paleta puede usarse para la codificación de imágenes/vídeo de contenido de un juego o similar, tal como codificación de contenido de pantalla (SCC). Aunque el IBC realiza básicamente la predicción en un bloque actual, puede realizarse de forma similar a la inter predicción en el sentido de que deriva un bloque de referencia en un bloque actual. Es decir, el IBC puede usar al menos una de las técnicas de inter predicción descritas en el presente documento. El modo de paleta puede considerarse como un ejemplo de intra codificación o intra predicción. Cuando se aplica el modo de paleta, información acerca de una tabla de paleta y un índice de paleta puede incluirse en la información de vídeo/imagen, y señalizarse.
El intra predictor 331 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden ubicarse en la vecindad o lejos del bloque actual de acuerdo con el modo de predicción. En la intra predicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El intra predictor 331 puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque vecino.
El inter predictor 332 puede derivar un bloque predicho para el bloque actual basándose en un bloque de referencia (una matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, para reducir la cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento puede predecirse en función de un bloque, un subbloque o una muestra basándose en una correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de inter predicción (predicción de L0, predicción de L1, bipredicción, etc.). En el caso de inter predicció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. Por ejemplo, el inter predictor 332 puede configurar una lista de candidatos de información de movimiento basándose en bloques vecinos, y derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual basándose en información de selección de candidatos recibida. La inter predicción puede realizarse basándose en diversos modos de predicción, y la información acerca de la predicción puede incluir información que indica un modo de inter predicción para el bloque actual.
El sumador 340 añade la señal de residuo obtenida a una señal de predicción (un bloque predicho, una matriz de muestras predicha) emitida desde el predictor (el inter predictor 332 y/o el intra predictor 331), de tal modo que puede generarse una señal reconstruida (una imagen reconstruida, un bloque reconstruido, una matriz de muestras reconstruida). Cuando no hay ningún residuo para un bloque objetivo de procesamiento como en un caso en el que se aplica el modo de salto, el bloque predicho puede usarse como un bloque reconstruido.
El sumador 340 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para una intra predicción de un siguiente bloque objetivo de procesamiento en el bloque actual y, como se describe más adelante, puede emitirse a través de un filtrado o usarse para una inter predicción de una imagen siguiente.
Por otro lado, en el proceso de descodificación de imágenes, puede aplicarse una correlación de luma con un ajuste a escala de croma (LMCS).
El filtro 350 puede mejorar la calidad de vídeo subjetiva/objetiva aplicando el filtrado a la señal reconstruida. Por ejemplo, el filtro 350 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida y transmitir la imagen reconstruida modificada en la memoria 360, específicamente, en la DPB de la memoria 360. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra, filtro de bucle adaptativo, filtro bilateral o similares.
La imagen reconstruida (modificada) que se ha almacenado en la DPB de la memoria 360 puede usarse como una imagen de referencia en el inter predictor 332. La memoria 360 puede almacenar información de movimiento de un bloque en la imagen actual, a partir de la cual se ha derivado (o descodificado) información de movimiento y/o información de movimiento de bloques en una imagen ya reconstruida. La información de movimiento almacenada puede transmitirse al inter predictor 260 para utilizar la misma como información de movimiento de un bloque vecino o información de movimiento de un bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transmitir las mismas al intra predictor 331.
En la presente descripción, las realizaciones descritas en el filtro 260, el inter predictor 221 y el intra predictor 222 del aparato de codificación 200 pueden aplicarse de forma similar o correspondiente al filtro 350, el inter predictor 332 y el intra predictor 331 del aparato de descodificación 300.
Como se ha descrito anteriormente, la predicción se realiza para aumentar la eficiencia de compresión al realizar una codificación de vídeo. A través de esto, puede generarse un bloque de predicción predicho que incluye muestras de predicción para un bloque actual, que es un bloque objetivo de codificación. En el presente caso, el bloque predicho incluye muestras de predicción en un dominio del espacio (o dominio de píxeles). El bloque predicho puede derivarse de forma idéntica en el aparato de codificación y el aparato de descodificación, y el aparato de codificación puede aumentar la eficiencia de codificación de imágenes señalizando al aparato de descodificación no un valor de muestra original de un bloque original en sí, sino información acerca de un residuo (información de residuo) entre el bloque original y el bloque predicho. El aparato de descodificación puede derivar un bloque de residuos que incluye muestras de residuo basándose en la información de residuo, generar un bloque reconstruido que incluye muestras reconstruidas sumando el bloque de residuos al bloque predicho, y generar una imagen reconstruida que incluye bloques reconstruidos.
La información de residuo puede generarse a través de procedimientos de transformada y de cuantificación. Por ejemplo, el aparato de codificación puede derivar un bloque de residuos entre el bloque original y el bloque predicho, derivar coeficientes de transformada realizando un procedimiento de transformada sobre unas muestras de residuo (una matriz de muestras de residuo) incluidas en el bloque de residuos, y derivar coeficientes de transformada cuantificados realizando un procedimiento de cuantificación sobre los coeficientes de transformada, de tal modo que puede señalizar información de residuo asociada al aparato de descodificación (a través de un flujo de bits). En el presente caso, la información de residuo puede incluir información de valor, información de posición, una técnica de transformada, núcleo de transformada, un parámetro de cuantificación o similar de los coeficientes de transformada cuantificados. El aparato de descodificación puede realizar un procedimiento de cuantificación/descuantificación y derivar las muestras de residuo (o el bloque de muestras de residuo), basándose en información de residuo. El aparato de descodificación puede generar una imagen reconstruida basándose en un bloque predicho y el bloque de residuos. El aparato de codificación puede derivar un bloque de residuos descuantificando/transformando inversamente unos coeficientes de transformada cuantificados como referencia para una inter predicción de una siguiente imagen, y puede generar una imagen reconstruida basándose en esto.
Cuando se aplica una inter predicción, el predictor del aparato de codificación/aparato de descodificación puede realizar la inter predicción en función de una unidad de bloque y derivar la muestra de predicción. La inter predicción puede ser una predicción derivada de una forma que depende de elementos de datos (por ejemplo, valores de muestra o información de movimiento) de una(s) imagen(es) que no sea(n) la imagen actual. Cuando se aplica una inter predicción al bloque actual, un bloque predicho (una matriz de muestras de predicción) para el bloque actual puede derivarse basándose en un bloque de referencia (una matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia que es indicada por un índice de imagen de referencia. En este momento, con el fin de reducir una cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento del bloque actual puede predecirse en función de la unidad de un bloque, un subbloque o una muestra basándose en una correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de tipo de inter predicción (predicción de L0, predicción de L1, bipredicción, etc.). Cuando se aplica una inter predicció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 de referencia y la imagen de referencia que incluye el bloque vecino temporal pueden ser iguales entre sí o diferentes entre sí. El bloque vecino temporal puede denominarse bloque de referencia ubicado conjuntamente, CU ubicada conjuntamente (colCU), y similares, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen ubicada conjuntamente (colPic). Por ejemplo, una lista de candidatos de información de movimiento puede configurarse basándose en bloques vecinos del bloque actual, y puede señalizarse una bandera o información de índice que indica qué candidato se selecciona (se usa) para derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La inter predicción puede realizarse basándose en diversos modos de predicción. Por ejemplo, en el caso de un modo de salto y un modo de fusión (normal), la información de movimiento del bloque actual puede ser la misma que la información de movimiento del bloque vecino seleccionado. En el modo de salto, a diferencia del modo de fusión, la señal de residuo puede no transmitirse. En el caso de un modo de predicción de información de movimiento (predicción de vector de movimiento (MVP)), un vector de movimiento del bloque vecino seleccionado puede usarse como un predictor de vector de movimiento, y puede señalizarse una diferencia de vector de movimiento. En este caso, un vector de movimiento del bloque actual puede derivarse usando la suma del predictor de vector de movimiento y la diferencia de vector de movimiento.
El procedimiento de codificación de vídeo/imágenes basándose en una inter predicción puede incluir esquemáticamente, por ejemplo, lo siguiente.
La figura 4 representa un ejemplo de un método de codificación de vídeo/imágenes basado en inter predicción.
El aparato de codificación realiza una inter predicción en un bloque actual (S400). El aparato de codificación puede derivar un modo de inter predicción e información de movimiento del bloque actual, y generar muestras de predicción del bloque actual. En el presente caso, la determinación de modo de inter predicción, la derivación de información de movimiento y el procedimiento de generación de muestras de predicción pueden realizarse al mismo tiempo, o realizarse uno después de otro. Por ejemplo, el inter predictor del aparato de codificación puede incluir una parte de determinación de modo de predicción, una parte de derivación de información de movimiento y una parte de derivación de muestra predicha. La parte de determinación de modo de predicción puede determinar un modo de predicción para el bloque actual, la parte de derivación de información de movimiento puede derivar información de movimiento del bloque actual, y la parte de derivación de muestra de predicción puede derivar muestras predichas del bloque actual. Por ejemplo, el inter predictor del aparato de codificación puede buscar un bloque similar al bloque actual en una cierta región (una región de búsqueda) de las imágenes de referencia a través de una estimación de movimiento, y derivar un bloque de referencia cuya diferencia con respecto al bloque actual es mínima, o menor que o igual a un cierto nivel. Basándose en esto, puede derivarse el índice de imagen de referencia que indica una imagen de referencia en la que se ubica el bloque de referencia, y basándose en la diferencia en la posición entre el bloque de referencia y el bloque actual, puede derivarse el vector de movimiento. El aparato de codificación puede determinar un modo de entre diversos modos de predicción, que se aplica al bloque actual. El aparato de codificación puede comparar los costes de RD para los diversos modos de predicción, y determinar el modo de predicción óptimo para el bloque actual.
Por ejemplo, cuando se aplica el modo de salto o el modo de fusión al bloque actual, el aparato de codificación puede configurar una lista de candidatos de fusión que va a describirse más adelante, y derivar un bloque de referencia cuya diferencia con respecto al bloque actual es mínima o menor que o igual a un cierto nivel de entre bloques de referencia que son indicados por candidatos de fusión incluidos en la lista de candidatos de fusión. En este caso, puede seleccionarse el candidato de fusión asociado con el bloque de referencia derivado, y puede generarse información de índice de fusión que indica el candidato de fusión seleccionado, y señalizarse al aparato de descodificación. La información de movimiento del bloque actual puede derivarse usando información de movimiento del candidato de fusión seleccionado.
Como otro ejemplo, cuando el modo de (A)MVP se aplica al bloque actual, el aparato de codificación puede configurar una lista de candidatos de (A)MVP, y usar el vector de movimiento de un candidato de mvp (predictor de vector de movimiento) seleccionado de entre candidatos de mvp incluidos en la lista de candidatos de (A)MVP como el mvp del bloque actual. En este caso, por ejemplo, el vector de movimiento que indica el bloque de referencia derivado mediante la estimación de movimiento descrita anteriormente puede usarse como un vector de movimiento del bloque actual, y de entre los candidatos de mvp, el candidato de mvp que tiene un vector de movimiento cuya diferencia con respecto al vector de movimiento del bloque actual es la más pequeña puede ser el candidato de mvp seleccionado. Puede derivarse una MVD (diferencia de vector de movimiento), que es una diferencia obtenida restando el mvp del vector de movimiento del bloque actual. En este caso, puede señalizarse información acerca de la MVD al aparato de descodificación. Adicionalmente, cuando se aplica el modo de (A)MVP, un valor del índice de imagen de referencia puede configurarse como una información de índice de imagen de referencia, y señalizarse por separado al aparato de descodificación.
El aparato de codificación puede derivar muestras de residuo basándose en las muestras de predicción (S410). El aparato de codificación puede derivar las muestras de residuo a través de la comparación de muestras originales del bloque actual y las muestras de predicción.
El aparato de codificación codifica información de imagen que incluye información de predicción e información de residuo (S420). El aparato de codificación puede emitir la información de imagen codificada en forma de flujo de bits. La información de predicción puede incluir una información de modo de predicción (por ejemplo, una bandera de salto, una bandera de fusión, un índice de modo o similares) e información acerca de información de movimiento como información acerca del procedimiento de predicción. La información acerca de información de movimiento puede incluir información de selección de candidatos (por ejemplo, un índice de fusión, una bandera de mvp o un índice de mvp), que es información para derivar un vector de movimiento. Además, la información acerca de información de movimiento puede incluir información acerca de la MVD descrita anteriormente y/o la información de índice de imagen de referencia. Además, la información acerca de información de movimiento puede incluir información que indica si se aplica la predicción de L0, la predicción de L1 o la bipredicción. La información de residuo es información acerca de las muestras de residuo. La información de residuo puede incluir información acerca de coeficientes de transformada cuantificados para las muestras de residuo.
El flujo de bits de salida puede almacenarse en un medio de almacenamiento (digital) y entregarse al aparato de descodificación, o puede entregarse al aparato de descodificación a través de una red.
Por otro lado, como se ha descrito anteriormente, el aparato de codificación puede generar una imagen reconstruida (que incluye muestras reconstruidas y un bloque reconstruido) basándose en las muestras de referencia y las muestras de residuo. Esto es para derivar el mismo resultado de predicción en el aparato de codificación que uno que se realiza en el aparato de descodificación, y la razón es que la eficiencia de codificación puede aumentarse a través de esto. Por lo tanto, el aparato de codificación puede almacenar una imagen reconstruida (o muestras reconstruidas, un bloque reconstruido) en la memoria, y utilizar la misma como una imagen de referencia para una inter predicción. El procedimiento de filtrado en bucle puede aplicarse adicionalmente a la imagen reconstruida como se ha descrito anteriormente.
El procedimiento de descodificación de vídeo/imágenes basándose en una inter predicción puede incluir esquemáticamente, por ejemplo, lo siguiente.
La figura 5 representa un ejemplo de un método de descodificación de vídeo/imágenes basado en inter predicción.
Haciendo referencia a la figura 5, el aparato de descodificación puede realizar una operación correspondiente a la operación que se ha realizado en el aparato de codificación. El aparato de descodificación puede realizar una predicción en el bloque actual y derivar las muestras de predicción basándose en la información de predicción recibida.
Específicamente, el aparato de descodificación puede determinar el modo de predicción para el bloque actual basándose en la información de predicción recibida (S500). El aparato de descodificación puede determinar qué modo de inter predicción se aplica al bloque actual basándose en la información de modo de predicción en la información de predicción.
Por ejemplo, puede determinarse basándose en la bandera de fusión si el modo de fusión se aplica al bloque actual o se determina un modo de (A)MVP. Como alternativa, puede seleccionarse un modo de inter predicción de entre diversos candidatos de modo de inter predicción basándose en el índice de modo. Los candidatos de modo de inter predicción pueden incluir el modo de salto, el modo de fusión y/o el modo de (A)MVP, o pueden incluir diversos modos de inter predicción que van a describirse más adelante.
El aparato de descodificación deriva la información de movimiento del bloque actual basándose en el modo de inter predicción determinado (S510). Por ejemplo, cuando se aplica el modo de salto o el modo de fusión al bloque actual, el aparato de descodificación puede configurar una lista de candidatos de fusión que va a describirse más adelante, y seleccionar uno de unos candidatos de fusión incluidos en la lista de candidatos de fusión. La selección puede realizarse basándose en la información de selección descrita anteriormente (un índice de fusión). La información de movimiento del bloque actual puede derivarse usando información de movimiento del candidato de fusión seleccionado. La información de movimiento del candidato de fusión seleccionado puede usarse como la información de movimiento del bloque actual.
Como otro ejemplo, cuando el modo de (A)MVP se aplica al bloque actual, el aparato de descodificación puede configurar una lista de candidatos de (A)MVP que va a describirse más adelante, y usar un vector de movimiento de un candidato de predictor de vector de movimiento (MVP) seleccionado de entre candidatos de mvp incluidos en la lista de candidatos de (A)MVP como el MVP del bloque actual. La selección puede realizarse basándose en la información de selección descrita anteriormente (una bandera de mvp o un índice de mvp). En este caso, una MVD del bloque actual puede derivarse basándose en información acerca de la MVD, y el vector de movimiento del bloque actual puede derivarse basándose en la MVD y el mvp del bloque actual. Además, el índice de imagen de referencia del bloque actual puede derivarse basándose en la información de índice de imagen de referencia. La imagen en la lista de imágenes de referencia con respecto al bloque actual, que es indicada por el índice de imagen de referencia, puede derivarse como una imagen de referencia a la que se hace referencia para la inter predicción del bloque actual.
Por otro lado, como se describe más adelante, la información de movimiento del bloque actual puede derivarse sin configurar la lista de candidatos y, en este caso, la información de movimiento del bloque actual puede derivarse de acuerdo con el procedimiento divulgado en el modo de predicción que va a describirse más adelante. En este caso, puede omitirse la acción de configurar la lista de candidatos como se ha descrito anteriormente.
El aparato de descodificación puede generar muestras de predicción para el bloque actual basándose en la información de movimiento del bloque actual (S520). En este caso, la imagen de referencia puede derivarse basándose en el índice de imagen de referencia del bloque actual, y las muestras de predicción del bloque actual pueden derivarse usando las muestras del bloque de referencia en la imagen de referencia que se indica por el vector de movimiento del bloque actual. En este caso, un procedimiento de filtrado de muestras de predicción para todas o algunas de las muestras de predicción del bloque actual puede realizarse adicionalmente de acuerdo con las circunstancias como se describe más adelante.
Por ejemplo, el inter predictor del aparato de codificación puede incluir una parte de determinación de modo de predicción, una parte de derivación de información de movimiento y una parte de derivación de muestra predicha, puede determinar un modo de predicción para el bloque actual basándose en información de modo de predicción recibida en la parte de determinación de modo de predicción, puede derivar información de movimiento (un vector de movimiento y/o un índice de imagen de referencia y/o similares) del bloque actual basándose en información acerca de información de movimiento recibida en la parte de derivación de información de movimiento, y puede derivar muestras predichas del bloque actual en la parte de derivación de muestra de predicción.
El aparato de descodificación genera las muestras de residuo para el bloque actual basándose en la información de residuo recibida (S530). El aparato de descodificación puede generar las muestras reconstruidas para el bloque actual basándose en las muestras de residuo y las muestras de predicción, y generar la imagen reconstruida basándose en las muestras reconstruidas. (S540). En lo sucesivo en el presente documento, el procedimiento de filtrado en bucle puede aplicarse a la imagen reconstruida como se ha descrito anteriormente.
La figura 6 representa ilustrativamente un procedimiento de inter predicción.
Haciendo referencia a la figura 6, como se ha descrito anteriormente, el procedimiento de inter predicción puede incluir determinar un modo de inter predicción, derivar información de movimiento de acuerdo con el modo de predicción determinado, y realizar una predicción basándose en la información de movimiento derivada (generar una muestra de predicción). El procedimiento de inter predicción puede realizarse en el aparato de codificación y el aparato de descodificación como se ha descrito anteriormente. En el presente documento, un aparato de codificación puede incluir un aparato de codificación y/o un aparato de descodificación.
Haciendo referencia a la figura 6, el aparato de codificación determina un modo de inter predicción para un bloque actual (S600). Pueden usarse diversos modos de inter predicción para la predicción del bloque actual en una imagen. Por ejemplo, puede usarse una diversidad de modos, tales como un modo de fusión, un modo de salto, un modo de predicción de vector de movimiento (MVP), un modo afín, un modo de fusión de subbloques, un modo de fusión con MVD o similares. Un modo de perfeccionamiento de vector de movimiento de lado de descodificador (DMVR), un modo de resolución de vector de movimiento adaptativo (AMVR), bipredicción con peso de nivel de CU (BCW), flujo óptico bidireccional (BDOF) o similares pueden usarse como un adicional modo, o como un sustituto. El modo afín puede denominarse modo de predicción de movimiento afín. El modo de MVP puede denominarse modo de predicción de vector de movimiento avanzada (AMVP). En el presente documento, algunos modos y/o un candidato de información de movimiento derivado mediante algunos modos pueden incluirse como uno de unos candidatos en relación con información de movimiento de otro modo. Por ejemplo, el candidato de HMVP puede añadirse como un candidato de fusión del modo de fusión/salto, o puede añadirse como un candidato de MVP del modo de MVP. Cuando el candidato de HVMP se usa como un candidato de información de movimiento del modo de fusión o el modo de salto, el candidato de HVMP puede denominarse candidato de fusión de HMVP.
La información de modo de predicción que indica el modo de inter predicción del bloque actual puede señalizarse desde el aparato de codificación al aparato de descodificación. La información de modo de predicción puede incluirse en un flujo de bits y recibirse en el aparato de descodificación. La información de modo de predicción puede incluir información de índice que indica uno de múltiples modos candidatos. Además, el modo de inter predicción puede indicarse a través de una señalización jerárquica de información de bandera. En este caso, la información de modo de predicción puede incluir una o más banderas. Por ejemplo, puede indicarse si se aplica el modo de salto señalizando la bandera de salto, puede indicarse si se aplica el modo de fusión señalizando la bandera de fusión para que no se aplique el modo de salto, y puede indicarse que se aplica el modo de MVP o puede señalizarse adicionalmente una bandera para su división adicional cuando no se aplica el modo de fusión. El modo afín puede señalizarse como un modo independiente, o puede señalizarse como un modo dependiente del modo de fusión, el modo de MVP o similares. Por ejemplo, el modo afín puede incluir un modo de fusión afín y un modo de MVP afín.
El aparato de codificación deriva información de movimiento para el bloque actual (S610). La derivación de la información de movimiento puede derivarse basándose en el modo de inter predicción.
El aparato de codificación puede realizar una inter predicción usando información de movimiento para el bloque actual. El aparato de codificación puede derivar información de movimiento óptima para el bloque actual a través de un procedimiento de estimación de movimiento. Por ejemplo, el aparato de codificación puede buscar un bloque de referencia similar de una correlación alta en un rango de búsqueda predeterminado en una imagen de referencia en una unidad de píxel fraccionaria usando un bloque original en una imagen original para el bloque actual, y puede derivar información de movimiento a través de esto. La similitud de un bloque puede derivarse basándose en una diferencia entre valores de muestra basados en fases. Por ejemplo, la similitud de un bloque puede calcularse basándose en la SAD entre el bloque actual (o la plantilla del bloque actual) y el bloque de referencia (o la plantilla del bloque de referencia). En este caso, la información de movimiento puede derivarse basándose en el bloque de referencia que tiene la SAD más pequeña en una región de búsqueda. La información de movimiento derivada puede señalizarse al aparato de descodificación de acuerdo con diversos métodos basándose en un modo de inter predicción.
El aparato de codificación realiza una inter predicción basándose en información de movimiento para el bloque actual (S620). El aparato de codificación puede derivar una(s) muestra(s) de predicción para el bloque actual basándose en la información de movimiento. El bloque actual que incluye las muestras de predicción puede denominarse bloque predicho.
Por otro lado, en el caso de inter predicción, se está proponiendo un método de inter predicción en el que se considera la distorsión de imagen. Específicamente, se propone un modelo de movimiento afín que deriva de forma eficiente el vector de movimiento para bloques o subbloques de muestra del bloque actual, y que aumenta la precisión de inter predicción a pesar de deformaciones tales como la rotación, el acercamiento y el alejamiento de una imagen. Es decir, el modelo de movimiento afín es uno que deriva el vector de movimiento para puntos de muestra o subbloques del bloque actual, y la predicción usando el modelo de movimiento afín puede denominarse predicción de movimiento afín, predicción de movimiento afín, predicción de movimiento de una unidad de subbloque o predicción de movimiento de subbloque.
Por ejemplo, la predicción de movimiento de subbloque usando el modelo de movimiento afín puede expresar de forma eficiente tales cuatro movimientos como se describe más adelante, es decir, tales cuatro deformaciones como se describe más adelante.
La figura 7 representa ilustrativamente movimientos que se expresan a través de un modelo de movimiento afín. Haciendo referencia a la figura 7, los movimientos que pueden expresarse a través del modelo de movimiento afín pueden incluir movimiento de traslación, movimiento de ajuste a escala, movimiento de rotación y movimiento de cizalla. Es decir, como se muestra en la figura 7, el movimiento de traslación en el que una imagen (o una parte de la misma) se mueve en un plano a lo largo del tiempo, el movimiento de ajuste a escala en el que una imagen (o una parte de la misma) se ajusta a escala a lo largo del tiempo, el movimiento de rotación en el que una imagen (o una parte de la misma) se rota a lo largo del tiempo, y el movimiento de cizalla en el que una imagen (o una parte de la misma) se deforma a un paralelogramo a lo largo del tiempo pueden expresarse de forma eficiente a través de una predicción de movimiento de la unidad de subbloque.
El aparato de codificación/aparato de descodificación puede predecir la forma de distorsión de la imagen basándose en vectores de movimiento en puntos de control (CP) del bloque actual a través de la inter predicción afín, lo que puede conducir a un aumento en la precisión de predicción, mejorando de este modo el rendimiento de compresión de una imagen. Además, al usar el vector de movimiento del bloque vecino del bloque actual, puede derivarse un vector de movimiento para al menos un punto de control del bloque actual y, por lo tanto, es posible reducir la cantidad de datos de información adicional añadida, y mejorar considerablemente la eficiencia de inter predicción.
Como un ejemplo de la predicción de movimiento afín, puede requerirse información de movimiento en tres puntos de control, es decir, tres puntos de referencia.
La figura 8 representa ilustrativamente el modelo de movimiento afín en el que se usan vectores de movimiento para tres puntos de control.
Si una posición de muestra superior izquierda en el bloque actual 800 se establece como (0, 0), como se muestra en la figura 8, las posiciones de muestra (0, 0), (w, 0), (0, h) pueden determinarse como los puntos de control. En lo sucesivo en el presente documento, el punto de control de la posición de muestra (0, 0) puede representarse como CP0; el punto de control de la posición de muestra (w, 0), CP1; y el punto de control de la posición de muestra (0, h), CP2.
Usando cada uno de los puntos de control descritos anteriormente y el vector de movimiento para el punto de control correspondiente, puede derivarse una ecuación para el modelo de movimiento afín. La ecuación para el modelo de movimiento afín puede representarse como se indica a continuación:
[Ecuación 1]
en donde w representa una anchura del bloque actual 800; h, una altura del bloque actual 800; v0x y v0y, una componente x y una componente y del vector de movimiento de CP0, respectivamente; v1x y v1y, una componente x y una componente y del vector de movimiento de CP1, respectivamente; y v2x y v2y, una componente x y una componente y del vector de movimiento de CP2, respectivamente. Además, x representa una componente x de una posición de una muestra objetivo en el bloque actual 800; y, una componente y de la posición de la muestra objetivo en el bloque actual 800; vx, una componente x de un vector de movimiento de la muestra objetivo en el bloque actual 800; y vy, una componente y del vector de movimiento de la muestra objetivo en el bloque actual 800.
Debido a que se conocen el vector de movimiento de CP0, el vector de movimiento de CP1 y el vector de movimiento de CP2, el vector de movimiento de acuerdo con la posición de muestra en el bloque actual puede derivarse basándose en la Ecuación 1. Es decir, de acuerdo con el modelo de movimiento afín, los vectores de movimiento v0 (v0x, v0y), v1 (v1x, v1y), v2 (v2x, v2y) en los puntos de control pueden ajustarse a escala basándose en relaciones de distancias entre coordenadas (x, y) de la muestra objetivo y tres puntos de control, de tal modo que puede derivarse el vector de movimiento de la muestra objetivo de acuerdo con la posición de muestra objetivo. Es decir, de acuerdo con el modelo de movimiento afín, el vector de movimiento de cada muestra en el bloque actual puede derivarse basándose en los vectores de movimiento de los puntos de control. Por otro lado, un conjunto de los vectores de movimiento de las muestras en el bloque actual que se han derivado de acuerdo con el modelo de movimiento afín puede representarse como un campo de vector de movimiento afín (MVF).
Por otro lado, seis parámetros para la Ecuación 1 anterior pueden representarse como a, b, c, d, e y f de las siguientes ecuaciones, y la ecuación para el modelo de movimiento afín que se representa usando los seis parámetros puede ser como se indica a continuación:
[Ecuación 2]
vx = a * x b * y c
vy = d * x e * y f
en donde w representa una anchura del bloque actual 800; h, una altura del bloque actual 800; v0x y v0y, una componente x y una componente y del vector de movimiento de CP0, respectivamente; v1x y v1y, una componente x y una componente y del vector de movimiento de CP0, respectivamente; y v2x y v2y, una componente x y una componente y del vector de movimiento de CP1, respectivamente. Además, x representa una componente x de una posición de una muestra objetivo en el bloque actual 800; y, una componente y de la posición de la muestra objetivo en el bloque actual 800; vx, una componente x de un vector de movimiento de la muestra objetivo en el bloque actual 800; y vy, una componente y del vector de movimiento de la muestra objetivo en el bloque actual 800.
El modelo de movimiento afín que usa los seis parámetros o la inter predicción afín puede representarse como modelo de movimiento afín de 6 parámetros o AF6.
Además, como un ejemplo de la predicción de movimiento afín, puede requerirse información de movimiento en dos puntos de control, es decir, dos puntos de referencia.
La figura 9 representa ilustrativamente un modelo de movimiento de la unidad 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 expresar tres movimientos que incluyen el movimiento de traslación, el movimiento de ajuste a escala y el movimiento de rotación. El modelo de movimiento afín que expresa tres movimientos puede representarse como un modelo de movimiento afín de similitud o un modelo de movimiento afín simplificado.
Si una posición de muestra superior izquierda en el bloque actual 900 se establece como (0, 0), como se muestra en la figura 9, las posiciones de muestra (0, 0), (w, 0) pueden determinarse como los puntos de control. En lo sucesivo en el presente documento, el punto de control de la posición de muestra (0, 0) puede representarse como CP0; y el punto de control de la posición de muestra (w, 0), CP0.
Usando cada uno de los puntos de control descritos anteriormente y el vector de movimiento para el punto de control correspondiente, puede derivarse una ecuación para el modelo de movimiento afín. La ecuación para el modelo de movimiento afín puede representarse como se indica a continuación:
[Ecuación 3]
en donde w representa una anchura del bloque actual 900; v0x y v0y, una componente x y una componente y del vector de movimiento de CP0, respectivamente; v1x y v1y, una componente x y una componente y del vector de movimiento de CP0, respectivamente. Además, x representa una componente x de una posición de una muestra objetivo en el bloque actual 900; y, una componente y de la posición de la muestra objetivo en el bloque actual 900; vx, una componente x de un vector de movimiento de la muestra objetivo en el bloque actual 900; y vy, una componente y del vector de movimiento de la muestra objetivo en el bloque actual 900.
Por otro lado, cuatro parámetros para la Ecuación 3 anterior pueden representarse como a, b, c y d de las siguientes ecuaciones, y la ecuación para el modelo de movimiento afín que se representa usando los cuatro parámetros puede ser como se indica a continuación:
[Ecuación 4]
en donde w representa una anchura del bloque actual 900; v0x y v0y, una componente x y una componente y del vector de movimiento de CP0, respectivamente; v1x y v1y, una componente x y una componente y del vector de movimiento de CP0, respectivamente. Además, x representa una componente x de una posición de una muestra objetivo en el bloque actual 900; y, una componente y de la posición de la muestra objetivo en el bloque actual 900; vx, una componente x de un vector de movimiento de la muestra objetivo en el bloque actual 900; y vy, una componente y del vector de movimiento de la muestra objetivo en el bloque actual 900. Debido a que el modelo de movimiento afín usando los dos puntos de control puede expresarse con cuatro parámetros a, b, c y d como en la Ecuación 4, el modelo de movimiento afín o la predicción de movimiento afín que usa los cuatro parámetros puede representarse como un modelo de movimiento afín de 4 parámetros o AF4. Es decir, de acuerdo con el modelo de movimiento afín, el vector de movimiento de cada muestra en el bloque actual puede derivarse basándose en los vectores de movimiento de los puntos de control. Por otro lado, un conjunto de los vectores de movimiento de las muestras en el bloque actual que se han derivado de acuerdo con el modelo de movimiento afín puede representarse como un campo de vector de movimiento afín (MVF).
Por otro lado, como se ha descrito anteriormente, el vector de movimiento de la unidad de muestra puede derivarse a través del modelo de movimiento afín, y la precisión de inter predicción puede mejorarse considerablemente a través de esto. Sin embargo, en este caso, la complejidad puede aumentarse considerablemente en el proceso de compensación de movimiento.
Por lo tanto, puede limitarse a derivar el vector de movimiento de la unidad de subbloque en el bloque actual en lugar del vector de movimiento de la unidad de muestra.
La figura 10 representa ilustrativamente un método para derivar un vector de movimiento en una unidad de subbloque basándose en el modelo de movimiento afín. La figura 10 representa ilustrativamente un caso en el que el tamaño del bloque actual es de 16x16, y el vector de movimiento se deriva en 4 x 4 unidades de subbloque. El subbloque puede establecerse en diversos tamaños y, por ejemplo, si el subbloque se establece en un tamaño n x n (n es un número entero positivo y, por ejemplo, n es 4), el vector de movimiento puede derivarse en una unidad de subbloque n x n 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, haciendo referencia a la figura 10, el vector de movimiento de cada subbloque puede derivarse estableciendo una posición de muestra central o de lado inferior derecho central de cada subbloque como coordenadas representativas. En el presente caso, la posición de lado inferior derecho central puede representar una posición de muestra de entre cuatro muestras ubicadas en el centro del subbloque, que se ubica en un lado inferior derecho. Por ejemplo, si n es un número impar, una muestra puede ubicarse en el centro del subbloque y, en este caso, la posición de muestra central puede usarse para derivar el vector de movimiento del subbloque. Sin embargo, si n es un número par, cuatro muestras pueden ubicarse adyacentes al centro del subbloque y, en este caso, la posición de muestra de lado inferior derecho puede usarse para derivar el vector de movimiento. Por ejemplo, haciendo referencia a la figura 10, las coordenadas representativas para cada uno de los subbloques pueden derivarse como (2, 2), (6, 2), (10, 2), ... (14, 14), y el aparato de codificación/aparato de descodificación puede derivar el vector de movimiento de cada subbloque introduciendo cada una de las coordenadas representativas de los subbloques en las Ecuaciones 1 a 3. La predicción del movimiento del subbloque en el bloque actual a través del modelo de movimiento afín puede denominarse predicción de movimiento de unidad de subbloque o predicción de movimiento de subbloque, y tales vectores de movimiento de subbloques pueden representarse como MVF.
Por otro lado, como un ejemplo, el tamaño del subbloque en el bloque actual puede derivarse basándose en la siguiente ecuación:
[Ecuación 5]
en donde M representa una anchura del subbloque; y N, una altura del subbloque. Además, v0x y v0y representan una componente x y una componente y de CPMV0 del bloque actual, respectivamente; v1x y v1y, una componente x y una componente y de CPMV1 del bloque actual, respectivamente; w, una anchura del bloque actual; h, una altura del bloque actual; y MvPre, una precisión de fracción de vector de movimiento. Por ejemplo, la precisión de fracción de vector de movimiento puede establecerse como 1/16.
Por otro lado, en la inter predicción usando el modelo de movimiento afín descrito anteriormente, es decir, la predicción de movimiento afín, puede existir un modo de fusión (FUSIÓN_AF) y un modo inter afín (INTER_AF). En el presente caso, el modo inter afín puede representarse como un modo de predicción de vector de movimiento afín (modo de MVP afín, MVP_AF).
El modo de fusión que usa el modelo de movimiento afín es similar al modo de fusión existente en que no se transmite un MVD para vectores de movimiento de los puntos de control. Es decir, como el modo de salto/fusión existente, el modo de fusión que usa el modelo de movimiento afín puede representar un método de codificación/descodificación que realiza predicción derivando un CPMV para cada uno de dos o tres puntos de control a partir del bloque vecino del bloque actual sin descodificación para una MVD (diferencia de vector de movimiento).
Por ejemplo, si se aplica el modo MRG_AF al bloque actual, un MV para CP0 y CP0 (es decir, CPMV0 y CPMV1) puede derivarse a partir del bloque vecino de entre los bloques vecinos del bloque actual, al que se ha aplicado el modo de predicción que usa el afín modo, es decir, la predicción de movimiento afín. Es decir, el CPMV0 y el CPMV1 del bloque vecino al que se ha aplicado el modo afín pueden derivarse como el candidato de fusión, y el candidato de fusión puede derivarse como el CPMV0 y el CPMV1 para el bloque actual.
El modo inter afín puede representar una inter predicción en la que una predicción basándose en MVF afín se realiza derivando un MVP (predictor de vector de movimiento) para vectores de movimiento de los puntos de control, derivando vectores de movimiento de los puntos de control basándose en el MVP y el MVP recibido, y derivando un MVF afín del bloque actual basándose en los vectores de movimiento de los puntos de control. En el presente caso, el vector de movimiento del punto de control puede representarse como un vector de movimiento de punto de control (CPMV); MVP del punto de control, un predictor de vector de movimiento de punto de control (CPMVP); y MVD del punto de control, diferencia de vector de movimiento de punto de control (CPMVD). Específicamente, por ejemplo, el aparato de codificación puede derivar el predictor de vector de movimiento de punto de control (CPMVP) y el vector de movimiento de punto de control (CPMV) para cada uno de CP0 y CP1 (o CP0, CP1 y CP2), y puede transmitir o almacenar información acerca del CPMVP y/o la CPMVD que es un valor de diferencia entre el CPMVP y el CPMV.
En el presente caso, si el modo inter afín se aplica al bloque actual, el aparato de codificación/aparato de descodificación puede constituir una lista de candidatos de MVP afines basándose en el bloque vecino del bloque actual, y el candidato de MVP afín puede denominarse candidato de par de CPMVP, y la lista de candidatos de MVP afines puede denominarse lista de candidatos de CPMVP.
Además, cada candidato de MVP afín puede significar una combinación de CPMVP de CP0 y CP1 en el modelo de movimiento afín de cuatro parámetros (modelo de movimiento afín de cuatro parámetros), y puede significar una combinación de CPMVP de CP0, CP1 y CP2 en el modelo de movimiento afín de seis parámetros.
Por otro lado, con respecto a la inter predicción afín, se están considerando un candidato afín heredado o un candidato heredado, y un candidato afín construido, para la configuración de lista de candidatos de MVP afines. El candidato heredado puede hacer referencia a un candidato en el que la información de movimiento del bloque vecino del bloque actual sin otra modificación o combinación, es decir, un CPMV en sí del bloque vecino, se añade a la lista de candidatos de movimiento del bloque actual. En el presente caso, los bloques vecinos pueden incluir un bloque vecino de esquina inferior izquierda A0, un bloque vecino izquierdo A1, un bloque vecino superior B0, un bloque vecino de esquina superior derecha B1 y un bloque vecino de esquina superior izquierda B2 del bloque actual. El candidato afín construido significa un candidato afín que configura un CPMV del bloque actual mediante la combinación de unos CPMW de al menos dos bloques vecinos. El accionamiento del candidato afín construido se describirá con detalle a continuación.
En el presente caso, 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, el par de MVP afines del bloque actual puede determinarse a partir del modelo de movimiento afín del bloque vecino. En el presente caso, el bloque afín puede representar un bloque al que se aplica la inter predicción afín. El candidato afín heredado puede representar unos 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 vecino izquierdo A0 del bloque actual, un bloque vecino de esquina inferior izquierda A1 del bloque actual, un bloque vecino superior B0 del bloque actual, un bloque vecino de esquina superior derecha B1 del bloque actual, y un bloque vecino de esquina superior izquierda B2 del bloque actual.
Por ejemplo, si un tamaño del bloque actual es W x H, y una componente x de la posición de muestra superior izquierda del bloque actual es 0 y una 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 esquina superior derecha, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino de esquina inferior izquierda, un bloque que incluye una muestra en las coordenadas (-1, H); y el bloque vecino de esquina superior izquierda, un bloque que incluye una muestra en las coordenadas (-1, -1).
El aparato de codificación/aparato de descodificació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 un ejemplo, pueden derivarse hasta dos candidatos afines heredados basándose en los bloques vecinos.
Por ejemplo, el aparato de codificación/aparato de descodificación puede derivar el primer candidato de MVP afín del bloque actual basándose en un primer bloque en los bloques vecinos. En el presente caso, 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 que satisface una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual.
En lo sucesivo en el presente documento, el aparato de codificación/aparato de descodificación puede derivar un segundo candidato de MVP afín del bloque actual basándose en un segundo bloque en los bloques vecinos. En el presente caso, el segundo bloque puede codificarse con el modelo de movimiento afín, y la 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 que satisface una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual.
Por otro lado, 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), puede considerarse el candidato afín construido. El candidato afín configurado puede derivarse como se indica a continuación.
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 pueden dividirse 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 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; 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, un bloque vecino situado 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, 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 S0, S i, y S2, y el S0, el Si y el S2 pueden derivarse como la siguiente tabla.
T l 11
en 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 un segundo grupo; y el S2, como un tercer grupo.
El aparato de codificación/aparato de descodificación puede derivar el mvo de la So, puede derivar el mvi de la Si, puede derivar el mv2 de la S2, y puede derivar el candidato de MVP afín que incluye el mvo, el mvi y el mv2. El candidato de MVP afín puede representar el candidato afín construido. Además, el mvo puede ser un candidato de CPMVP de CP0; el mvi, un candidato de CPMVP de C P i; y el mv2, un candidato de CPm V p de CP2.
En el presente caso, una imagen de referencia para el mvo puede ser la misma que una imagen de referencia del bloque actual. Es decir, el mvo puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface una condición mientras se comprueban vectores de movimiento en el So en un orden específico. La condición puede ser que la imagen de referencia para el vector de movimiento debería ser 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 So. Además, puede realizarse en un orden que no sea el orden anterior, y puede no limitarse al ejemplo anterior.
Además, la imagen de referencia para el mvi puede ser la misma que la imagen de referencia del bloque actual. Es decir, el mvi puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface una condición mientras se comprueban vectores de movimiento en el Si en un orden específico. La condición puede ser que la imagen de referencia para el vector de movimiento debería ser 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 Si . Además, puede realizarse en un orden que no sea el orden anterior, y puede no limitarse 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 que satisface una condición mientras se comprueban 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 debería ser 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, puede realizarse en un orden que no sea el orden anterior, y puede no limitarse al ejemplo anterior.
Por otro lado, cuando solo el mvo y el mvi están disponibles, es decir, cuando solo se derivan el mvo y el mvi, el mv2 puede derivarse como la siguiente ecuación.
[Ecuación 6]
en donde mv2x representa una componente x del mv2; mv2y, una componente y del mv2; mvox, una componente x del mvo; mvoy, una componente y del mvo; mvix, una componente x del mvi; y mviy, una componente y del mvi. Además, w representa la anchura del bloque actual, y h representa la altura del bloque actual.
Por otro lado, cuando solo se derivan el mvo y el mv2, el mvi puede derivarse como la siguiente ecuación.
[Ecuación 7]
en donde mvix representa una componente x del mvi ; mviy, una componente y del mvi ; mvox, una componente x del mvo; mvoy, una componente y del mvo; mv2x, una componente x del mv2; y mv2y, una componente y del mv2. Además, w representa la anchura del bloque actual, y h representa la altura del bloque actual.
2o
Además, cuando el número del candidato afín heredado disponible y/o el candidato afín construido es menor que dos, el proceso de AMVP de la norma de HEVC convencional puede aplicarse a la configuración de lista de MVP afines. Es decir, cuando el número del candidato afín heredado disponible y/o el candidato afín construido es menor que dos, puede realizarse el proceso para configurar un candidato de MVP en la norma de HEVC convencional.
Por otro lado, los diagramas de flujo de ejemplos de configuración de la lista de MVP afines anterior son como se describe más adelante.
La figura 13 representa ilustrativamente un ejemplo de configuración de una lista de MVP afines.
Haciendo referencia a la figura 13, el aparato de codificación/aparato de descodificació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 descodificación puede derivar los como máximo dos candidatos afines heredados a partir de bloques vecinos del bloque actual (S1305). En el presente caso, los bloques vecinos pueden incluir un bloque vecino izquierdo A0, un bloque vecino de esquina inferior izquierda A1, un bloque vecino superior B0, un bloque vecino de esquina superior derecha B1 y un bloque vecino de esquina superior izquierda B2 del bloque actual.
Por ejemplo, el aparato de codificación/aparato de descodificación puede derivar el primer candidato de MVP afín del bloque actual basándose en un primer bloque en los bloques vecinos. En el presente caso, 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 que satisface una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual.
En lo sucesivo en el presente documento, el aparato de codificación/aparato de descodificación puede derivar un segundo candidato de MVP afín del bloque actual basándose en un segundo bloque en los bloques vecinos. En el presente caso, el segundo bloque puede codificarse con el modelo de movimiento afín, y la 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 que satisface una condición mientras se comprueban los bloques vecinos en un orden específico. La condición puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual.
Por otro lado, el orden específico puede ser como este: el bloque vecino izquierdo A0 ^ el bloque vecino de esquina inferior izquierda A1 ^ el bloque vecino superior B0 ^ el bloque vecino de esquina superior derecha B1 ^ el bloque vecino de esquina superior izquierda B2. Además, puede realizarse en un orden que no sea el orden anterior, y puede no limitarse al ejemplo anterior.
El aparato de codificación/aparato de descodificación puede añadir el 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 descodificación puede añadir el candidato construido a la lista de MVP afines del bloque actual. Por ejemplo, el aparato de codificación/aparato de descodificación puede derivar un candidato afín construido.
Por otro lado, 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 afín de 6 o un modelo de movimiento afín de 4. Más adelante se describirán contenidos específicos para el método para derivar el candidato construido.
El aparato de codificación/aparato de descodificación puede añadir el candidato de AMVP de HEVC a la lista de MVP afines del bloque actual (S1320). Cuando el número del candidato heredado disponible y/o el candidato construido es menor que dos, el aparato de codificación/aparato de descodificació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 del candidato heredado disponible y/o el candidato construido es menor que dos, el aparato de codificación y/o el aparato de descodificación pueden realizar el proceso para configurar un candidato de MVP en la norma de HEVC convencional.
Por otro lado, un método para derivar el candidato construido puede ser como sigue.
Por ejemplo, cuando el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín 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 descodificación puede comprobar el mvo, el mvi y el mv2 para el bloque actual (S1400). Es decir, el aparato de codificación/aparato de descodificación puede determinar si existe un mv0, mvi o mv2 disponible en los bloques vecinos del bloque actual. En el presente caso, el mv0 puede ser un candidato de CPMVP de CP0 del bloque actual; el mv-i, un candidato de CPMVP de CP1; y el mv2, un candidato de CPMVP de CP2. Además, el mv0, el mvi y el mv2 pueden representarse como vectores de movimiento candidatos de los CP.
Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar vectores de movimiento de los bloques vecinos en un primer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv0 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv0 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv0 disponible. En el presente caso, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B y, entonces, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en un segundo grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mvi el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mvi puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mvi disponible. En el presente caso, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en un tercer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv2 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv2 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv2 disponible. En el presente caso, 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.
Por otro lado, 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 solo están disponibles el mv0 y el mvi para el bloque actual, es decir, cuando solo se deriva el mv0 y el mvi para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar el mv2 para el bloque actual basándose en la Ecuación 6 anterior (S1410). El aparato de codificación/aparato de descodificación puede derivar el mv2 sustituyendo el mv0 y el mvi derivados en la Ecuación 6 anterior.
Cuando solo están disponibles el mv0 y el mv2 para el bloque actual, es decir, cuando solo se deriva el mv0 y el mv2 para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar el mvi para el bloque actual basándose en la Ecuación 7 anterior (S1420). El aparato de codificación/aparato de descodificación puede derivar el mvi sustituyendo el mv0 y el mv2 derivados en la Ecuación 7 anterior.
El aparato de codificación/aparato de descodificación puede derivar el mv0, el mvi y el mv2 derivados como el candidato construido del bloque actual (S1430). Cuando el mv0, el mvi y el mv2 están disponibles, es decir, cuando el mv0, el mvi y el mv2 se derivan basándose en el bloque vecino del bloque actual, el aparato de codificación/aparato de descodificación puede derivar el mv0, el mvi y el mv2 derivados como los candidatos construidos del bloque actual.
Además, cuando solo están disponibles el mv0 y el mvi para el bloque actual, es decir, cuando solo se derivan el mv0 y el mv1 para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar como el candidato construido del bloque actual el mv0, el mvi y el mv2 derivados basándose en la Ecuación 6 anterior.
Además, cuando solo están disponibles el mv0 y el mv2 para el bloque actual, es decir, cuando solo se derivan el mv0 y el mv2 para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar como el candidato construido del bloque actual el mv0 derivado, el mv2 y el mvi derivados basándose en la Ecuación 7 anterior.
Además, por ejemplo, cuando el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín 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 descodificación puede comprobar el mv0, el mv1 y el mv2 para el bloque actual (S1500). Es decir, el aparato de codificación/aparato de descodificación puede determinar si existe un mv0, mv1 o mv2 disponible en los bloques vecinos del bloque actual. En el presente caso, el mv0 puede ser un candidato de CPMVP de CP0 del bloque actual; el mv-i, un candidato de CPMVP de CP1; y el mv2, un candidato de CPMVP de CP2.
Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar vectores de movimiento de los bloques vecinos en un primer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv0 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv0 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv0 disponible. En el presente caso, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B y, entonces, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en un segundo grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mvi el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mvi puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mvi disponible. En el presente caso, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en un tercer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv2 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv2 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv2 disponible. En el presente caso, 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.
Por otro lado, 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 solo el mv0 y el mv1 para el bloque actual están disponibles o cuando el mv0, el mv1 y el mv2 para el bloque actual están disponibles, es decir, cuando solo se derivan el mv0 y el mv1 para el bloque actual o cuando se derivan el mv0, el mv1 y el mv2 para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar el mv0 y el mv1 derivados como el candidato construido del bloque actual (S1510).
Por otro lado, cuando solo están disponibles el mv0 y el mv2 para el bloque actual, es decir, cuando solo se deriva el mv0 y el mv2 para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar el mv1 para el bloque actual basándose en la Ecuación 7 (S1520). El aparato de codificación/aparato de descodificación puede derivar el mv1 sustituyendo el mv0 y el mv2 derivados en la Ecuación 7 anterior.
Después de esto, el aparato de codificación/aparato de descodificación puede derivar el mv0 y el mv1 derivados como el candidato construido del bloque actual (S1510).
Por otro lado, el presente documento propone otro ejemplo de derivación del candidato afín heredado. El ejemplo propuesto puede mejorar el rendimiento de la codificación reduciendo la complejidad computacional al derivar el candidato afín heredado.
Por otro lado, el presente documento propone otro ejemplo de derivación del candidato afín heredado. El ejemplo propuesto puede mejorar el rendimiento de la codificación reduciendo la complejidad computacional al derivar el candidato afín heredado.
La figura 16 representa ilustrativamente una posición de bloque vecino que se explora para derivar el candidato afín heredado.
El aparato de codificación/aparato de descodificación puede derivar los como máximo dos candidatos afines heredados a partir de bloques vecinos del bloque actual. La figura 16 puede representar los bloques vecinos para los candidatos afines heredados. Por ejemplo, los bloques vecinos pueden incluir un bloque vecino A y un bloque vecino B mostrados en la figura 16. El bloque vecino A puede representar el bloque vecino izquierdo A0 descrito anteriormente, y el bloque vecino B puede representar el bloque vecino superior B0 descrito anteriormente.
Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si está disponible, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Es decir, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si satisface una condición específica, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Además, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. Es decir, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. En el presente caso, estar disponible puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual. Es decir, la condición específica puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual. Además, por ejemplo, el orden específico puede ser el siguiente: el bloque vecino A ^ el bloque vecino B. Por otro lado, puede no realizarse un proceso de comprobación de purgado entre dos candidatos afines heredados (es decir, candidatos afines heredados derivados). El proceso de comprobación de purgado puede representar un proceso mediante el que se comprueban candidatos para ver si son iguales entre sí y, si son iguales, se retira el candidato derivado en un orden posterior.
El ejemplo anterior propone un método para derivar el candidato afín heredado comprobando solo dos bloques vecinos (es decir, los bloques vecinos A y B) en lugar de derivar el candidato afín heredado comprobando todos los bloques vecinos convencionales (es decir, los bloques vecinos A, B, C, D y E). En el presente caso, el bloque vecino C puede representar el bloque vecino de esquina superior derecha B1 descrito anteriormente; el bloque vecino D, el bloque vecino de esquina inferior izquierda A1 descrito anteriormente; y el bloque vecino E, el bloque vecino de esquina superior izquierda B2 descrito anteriormente.
Para analizar la correlación espacial entre los bloques vecinos y el bloque actual de acuerdo con la inter predicción afín, puede hacerse referencia a la probabilidad de que la predicción afín se aplique al bloque actual cuando la predicción afín se aplica a los bloques vecinos respectivos. La probabilidad de que la predicción afín se aplique al bloque actual cuando la predicción afín se aplica a los bloques vecinos respectivos puede derivarse como la siguiente tabla.
T l 21
Haciendo referencia a la Tabla 2, puede confirmarse que las correlaciones espaciales de los bloques vecinos A y B de entre los bloques vecinos al bloque actual son altas. Por lo tanto, a través de un ejemplo de derivación del candidato afín heredado usando solo los bloques vecinos A y B cuyas correlaciones espaciales son altas, es posible lograr efectos ventajosos de reducir el tiempo de procesamiento y proporcionar un rendimiento de descodificación alto.
Por otro lado, el proceso de comprobación de purgado puede realizarse para evitar que existan los mismos candidatos en la lista de candidatos. Debido a que el proceso de comprobación de purgado puede retirar la redundancia, puede haber una virtud en términos de eficacia de codificación y, sin embargo, existe el inconveniente de que la complejidad computacional aumenta al realizar el proceso de comprobación de purgado. En particular, debido a que el proceso de comprobación de purgado para el candidato afín debería realizarse en el tipo afín (por ejemplo, el modelo de movimiento afín es un modelo de movimiento afín de 4 o un modelo de movimiento afín de 6), la imagen de referencia (o el índice de imagen de referencia), CP0, CP1 y CP2 de MV, la complejidad computacional es muy alta. Por lo tanto, el presente ejemplo propone un método para no realizar el proceso de comprobación de purgado entre el candidato afín heredado (por ejemplo, A_heredado) derivado basándose en el bloque vecino A y el candidato afín heredado (por ejemplo, B_heredado) derivado basándose en el bloque vecino B. Los bloques vecinos A y B están lejos en cuanto a su distancia y, por lo tanto, su correlación espacial es baja. Por lo tanto, la probabilidad de que el A_heredado y el B_heredado sean iguales es muy baja. Por consiguiente, es apropiado que no se realice el proceso de comprobación de purgado entre los candidatos afines heredados.
Como alternativa, puede proponerse un método para realizar un proceso de comprobación de purgado mínima basándose en lo anterior. Por ejemplo, el aparato de codificación/aparato de descodificación puede realizar el proceso de comprobación de purgado comparando unos MV de CP0 del candidato afín heredado.
Por otro lado, el presente documento propone otro ejemplo de derivación del candidato afín heredado.
La figura 17 representa ilustrativamente una posición de bloque vecino que se explora para derivar el candidato afín heredado.
El aparato de codificación/aparato de descodificación puede derivar los como máximo dos candidatos afines heredados a partir de bloques vecinos del bloque actual. La figura 17 puede representar los bloques vecinos para los candidatos afines heredados. Por ejemplo, los bloques vecinos pueden incluir de un bloque vecino A a un bloque vecino D mostrados en la figura 17. El bloque vecino A puede representar el bloque vecino izquierdo A0 descrito anteriormente; el bloque vecino B, el bloque vecino superior B0 descrito anteriormente; el bloque vecino C, el bloque vecino de esquina superior derecha B1 descrito anteriormente; y el bloque vecino D, el bloque vecino de esquina inferior izquierda A1 descrito anteriormente.
Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si está disponible, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Es decir, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si satisface una condición específica, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Además, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. Es decir, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. En el presente caso, estar disponible puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual. Es decir, la condición específica puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual.
Los bloques vecinos A y D de la figura 17 pueden usarse cuando se deriva un predictor izquierdo de entre el candidato afín heredado, y los bloques vecinos B y C pueden usarse cuando se deriva un predictor superior de entre el candidato afín heredado.
El predictor izquierdo, que es el candidato de movimiento que puede añadirse desde el bloque vecino izquierdo, puede añadirse a un candidato a qué "bloque significativo vecino" que se determina en primer lugar que está disponible en el orden bloque A ^ bloque D o bloque D ^ bloque A se hereda. El predictor superior, que es el candidato de movimiento que puede añadirse desde el bloque vecino superior, puede añadirse a un candidato a qué "bloque significativo vecino" que se determina en primer lugar que está disponible en el orden bloque B ^ bloque C o bloque C ^ bloque B se hereda. Es decir, el número máximo del candidato heredado que puede derivarse a partir de cada uno del predictor izquierdo y el predictor superior es uno.
Cuando el "bloque significativo vecino" se codifica con un modelo de movimiento afín de 4 parámetros, el candidato heredado puede determinarse usando un modelo de movimiento afín de 4 parámetros, y cuando el "bloque significativo vecino" se codifica con un modelo de movimiento afín de 6 parámetros, el candidato heredado puede determinarse usando un modelo de movimiento afín de 6 parámetros.
Cuando el número de los candidatos heredados determinados por el predictor izquierdo y el predictor superior es de dos, el proceso de comprobación de purgado puede realizarse o no realizarse. Aunque es general realizar el proceso de comprobación de purgado y evitar que se añada el mismo candidato a la lista de candidatos, el proceso de comprobación de purgado aumenta la complejidad debido a que el MV de cada CP debería compararse en la predicción de movimiento en la que se usa el modelo afín. Sin embargo, cuando el candidato heredado se configura usando el ejemplo descrito con referencia a la figura 17, la probabilidad de que los candidatos determinados por el predictor izquierdo y el predictor superior sean diferentes entre sí es muy alta debido a que los candidatos están lejos en cuanto a su distancia. Por lo tanto, existe una ventaja de que, incluso sin realizar el proceso de comprobación de purgado, es raro que el rendimiento de codificación disminuya.
Por otro lado, el presente documento propone aún otro ejemplo de derivación del candidato afín heredado.
La figura 18 representa ilustrativamente una posición para derivar el candidato afín heredado.
El aparato de codificación/aparato de descodificación puede derivar los como máximo dos candidatos afines heredados a partir de bloques vecinos del bloque actual. La figura 18 puede representar los bloques vecinos para los candidatos afines heredados de acuerdo con el ejemplo. Por ejemplo, los bloques vecinos pueden incluir de un bloque vecino A a un bloque vecino E mostrados en la figura 18. El bloque vecino A puede representar el bloque vecino izquierdo A0 descrito anteriormente; el bloque vecino B, el bloque vecino superior B0 descrito anteriormente; el bloque vecino C, el bloque vecino de esquina superior derecha B1 descrito anteriormente; el bloque vecino D, el bloque vecino de esquina inferior izquierda A1 descrito anteriormente; y el bloque vecino E, un bloque vecino izquierdo ubicado adyacente a la parte inferior del bloque vecino de esquina superior izquierda B2.
Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si está disponible, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Es decir, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si satisface una condición específica, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Además, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. Es decir, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. En el presente caso, estar disponible puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual. Es decir, la condición específica puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual.
Los bloques vecinos A, D y E de la figura 18 pueden usarse cuando se deriva un predictor izquierdo de entre el candidato afín heredado, y los bloques vecinos B y C pueden usarse cuando se deriva un predictor superior de entre el candidato afín heredado.
El predictor izquierdo, que es el candidato de movimiento que puede añadirse en el bloque vecino izquierdo, puede añadirse a un candidato a qué "bloque significativo vecino" que se determina en primer lugar que está disponible en el orden bloque A ^ bloque E ^ bloque D (o bloque A ^ bloque E ^ bloque D, bloque D ^ bloque A ^ bloque E) se hereda. El predictor superior, que es el candidato de movimiento que puede añadirse en el bloque vecino superior, puede añadirse a un candidato a qué "bloque significativo vecino" que se determina en primer lugar que está disponible en el orden bloque B ^ bloque C o bloque C ^ bloque B se hereda. Es decir, el número máximo del candidato heredado que puede derivarse a partir de cada uno del predictor izquierdo y el predictor superior es uno.
Cuando el "bloque significativo vecino" se codifica con un modelo de movimiento afín de 4 parámetros, el candidato heredado puede determinarse usando un modelo de movimiento afín de 4 parámetros, y cuando el "bloque significativo vecino" se codifica con un modelo de movimiento afín de 6 parámetros, el candidato heredado puede determinarse usando un modelo de movimiento afín de 6 parámetros.
Cuando el número de los candidatos heredados determinados por el predictor izquierdo y el predictor superior es de dos, el proceso de comprobación de purgado puede realizarse o no realizarse. Aunque es general realizar el proceso de comprobación de purgado y evitar que se añada el mismo candidato a la lista de candidatos, el proceso de comprobación de purgado aumenta la complejidad debido a que el MV de cada CP debería compararse en la predicción de movimiento en la que se usa el modelo afín. Sin embargo, cuando el candidato heredado se configura usando el ejemplo descrito con referencia a la figura 18, la probabilidad de que los candidatos determinados por el predictor izquierdo y el predictor superior sean diferentes entre sí es muy alta debido a que los candidatos están lejos en cuanto a su distancia. Por lo tanto, existe una ventaja de que, incluso sin realizar el proceso de comprobación de purgado, es raro que el rendimiento de codificación disminuya.
Por otro lado, puede usarse un método de comprobación de purgado cuya complejidad es baja en lugar de realizar el proceso de comprobación de purgado. Por ejemplo, el proceso de comprobación de purgado puede realizarse con un método para comparar solo un MV de CP0.
La razón por la que se determina que E está en una posición de un bloque vecino que va a explorarse en busca del candidato heredado es como sigue. En un método de reducción de memoria intermedia de líneas que va a describirse más adelante, cuando el bloque de referencia (es decir, el bloque vecino B, el bloque vecino C) ubicado por encima del bloque actual no existe en la misma CTU que el bloque actual, el método de reducción de memoria intermedia de líneas puede no usarse. Por lo tanto, cuando el método de reducción de memoria intermedia de líneas se aplica conjuntamente mientras se genera el candidato heredado, la posición del bloque vecino que se expresa en la figura 18 se usa para mantener el rendimiento de codificación.
Además, el método puede configurar como máximo un candidato heredado y usar este como el candidato de MVP afín. En este momento, el vector de movimiento del bloque vecino que es significativo en primer lugar basándose en un orden de A ^ B ^ C ^ D sin distinción del predictor izquierdo y el predictor superior puede usarse como el candidato heredado.
Por otro lado, el presente documento propone aún otro ejemplo de derivación del candidato afín heredado.
En el presente ejemplo, el candidato heredado puede derivarse usando el bloque vecino mostrado en la figura 18.
Es decir, el aparato de codificación/aparato de descodificación puede derivar los como máximo dos candidatos afines heredados a partir de bloques vecinos del bloque actual.
Además, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si está disponible, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Es decir, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos en un orden específico para ver si satisface una condición específica, y derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en primer lugar que está disponible. Además, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. Es decir, el aparato de codificación/aparato de descodificación puede derivar el candidato afín heredado del bloque actual basándose en el bloque vecino que se confirma en segundo lugar que satisface la condición específica. En el presente caso, estar disponible puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual. Es decir, la condición específica puede ser que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia de un bloque es la misma que una imagen de referencia del bloque actual.
Como se ha descrito anteriormente, los bloques vecinos A, D y E pueden usarse cuando se deriva un predictor izquierdo de entre el candidato afín heredado, y los bloques vecinos B y C pueden usarse cuando se deriva un predictor superior de entre el candidato afín heredado.
El predictor izquierdo, que es el candidato de movimiento que puede añadirse en el bloque vecino izquierdo, puede añadirse a un candidato a qué "bloque significativo vecino" que se determina en primer lugar que está disponible en el orden bloque A ^ bloque E ^ bloque D (o bloque A ^ bloque E ^ bloque D, bloque D ^ bloque A ^ bloque E) se hereda. El predictor superior, que es el candidato de movimiento que puede añadirse en el bloque vecino superior, puede añadirse a un candidato a qué "bloque significativo vecino" que se determina en primer lugar que está disponible en el orden bloque B ^ bloque C o bloque C ^ bloque B se hereda. Es decir, el número máximo del candidato heredado que puede derivarse a partir de cada uno del predictor izquierdo y el predictor superior es uno.
Cuando el "bloque significativo vecino" se codifica con un modelo de movimiento afín de 4 parámetros, el candidato heredado puede determinarse usando un modelo de movimiento afín de 4 parámetros, y cuando el "bloque significativo vecino" se codifica con un modelo de movimiento afín de 6 parámetros, el candidato heredado puede determinarse usando un modelo de movimiento afín de 6 parámetros.
Además, de acuerdo incluso con el presente ejemplo, cuando el número de los candidatos heredados determinados por el predictor izquierdo y el predictor superior es de dos, el proceso de comprobación de purgado puede realizarse o no realizarse. Aunque es general realizar el proceso de comprobación de purgado y evitar que se añada el mismo candidato a la lista de candidatos, el proceso de comprobación de purgado aumenta la complejidad debido a que el MV de cada CP debería compararse en la predicción de movimiento en la que se usa el modelo afín. Sin embargo, cuando el candidato heredado se configura usando el ejemplo descrito con referencia a la figura 18, la probabilidad de que los candidatos determinados por el predictor izquierdo y el predictor superior sean diferentes entre sí es muy alta debido a que los candidatos están lejos en cuanto a su distancia. Por lo tanto, existe una ventaja de que, incluso sin realizar el proceso de comprobación de purgado, es raro que el rendimiento de codificación disminuya.
Por otro lado, puede usarse un método de comprobación de purgado cuya complejidad es baja en lugar de realizar el proceso de comprobación de purgado. Por ejemplo, el proceso de comprobación de purgado puede realizarse determinando si el bloque vecino E se incluye en el mismo bloque de codificación que el bloque vecino A solo cuando el bloque vecino E es un "bloque significativo vecino". La complejidad es baja debido a que este realiza la comprobación de purgado solo una vez. La razón por la que la comprobación de purgado se realiza solo en el bloque vecino E es que la probabilidad de que el bloque de referencia (el bloque vecino B, el bloque vecino C) del predictor superior excepto el bloque vecino E, y el bloque de referencia (el bloque vecino el bloque A, el bloque vecino D) del predictor izquierdo configure el mismo candidato heredado es muy baja debido a que los mismos se ubican lo suficientemente lejos entre sí y debido a que, por el contrario, en el caso del bloque vecino E, existe la probabilidad de que este configure el mismo el candidato heredado cuando se incluye en el mismo bloque que el bloque vecino A.
La razón por la que E se determina como una posición de un bloque vecino que va a explorarse en busca del candidato heredado es como sigue. En un método de reducción de memoria intermedia de líneas que va a describirse más adelante, cuando el bloque de referencia (es decir, el bloque vecino B, el bloque vecino C) ubicado por encima del bloque actual no existe en la misma CTU que el bloque actual, el método de reducción de memoria intermedia de líneas puede no usarse. Por lo tanto, cuando el método de reducción de memoria intermedia de líneas se aplica conjuntamente mientras se genera el candidato heredado, la posición del bloque vecino que se expresa en la figura 18 se usa para mantener el rendimiento de codificación.
Además, el método puede configurar como máximo un candidato heredado y usar este como el candidato de MVP afín. En este momento, el vector de movimiento del bloque vecino que es significativo en primer lugar basándose en un orden de A ^ B ^ C ^ D sin distinción del predictor izquierdo y el predictor superior puede usarse como el candidato heredado.
Por otro lado, de acuerdo con un ejemplo del presente documento, el método de generación de la lista de MVP afines descrito con referencia a las figuras 16 a 18 puede aplicarse a un método para derivar el candidato heredado de la lista de candidatos de fusión basándose en el modelo de movimiento afín. De acuerdo con el presente ejemplo, hay una ventaja en términos de coste de diseño debido a que el mismo proceso puede aplicarse a la generación de listas de MVP afines y a la generación de listas de candidatos de fusión. Un ejemplo de generación de la lista de candidatos de fusión basándose en el modelo de movimiento afín es como sigue, y este proceso puede aplicarse para configurar el candidato heredado cuando se genera otra lista de fusión.
Específicamente, la lista de candidatos de fusión puede configurarse como se indica a continuación.
La figura 19 representa un ejemplo de configuración de la lista de candidatos de fusión del bloque actual.
Haciendo referencia a la figura 19, el aparato de codificación/aparato de descodificación puede añadir el candidato de fusión heredado a la lista de candidatos de fusión (S1900).
Específicamente, el aparato de codificación/aparato de descodificación puede derivar el candidato heredado basándose en los bloques vecinos del bloque actual.
Los bloques vecinos del bloque actual para derivar el candidato heredado son como en la figura 11. Es decir, los bloques vecinos del bloque actual pueden incluir un bloque vecino de esquina inferior izquierda A0 del bloque actual, un bloque vecino izquierdo A1 del bloque actual, un bloque vecino de esquina superior derecha B0 del bloque actual, un bloque vecino superior B1 del bloque actual, y un bloque vecino de esquina superior izquierda B2 del bloque actual.
El candidato heredado puede derivarse basándose en un bloque reconstruido vecino significativo que se ha codificado en el modo afín. Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar los bloques vecinos A0, A1, B0, B1 y B2 secuencialmente, o los bloques vecinos A1, B1 B0, A0 y B2 secuencialmente, y si el bloque vecino se ha codificado en el modo afín (es decir, si el bloque vecino es un bloque vecino que se ha reconstruido significativamente usando el modelo de movimiento afín), puede derivar dos CPMV o tres CPMV para el bloque actual basándose en el modelo de movimiento afín del bloque vecino, y los CPMV pueden derivarse como el candidato heredado del bloque actual. Como un ejemplo, pueden añadirse como máximo cinco candidatos heredados en la lista de candidatos de fusión. Es decir, los como máximo cinco candidatos heredados pueden derivarse basándose en los bloques vecinos.
Cuando se sigue el presente ejemplo, para derivar el candidato heredado, puede usarse no el bloque vecino de la figura 11 sino el bloque vecino de las figuras 16 a 18, y puede aplicarse el ejemplo descrito con referencia a las figuras 16 a 18.
Después de esto, el aparato de codificación/aparato de descodificación puede añadir un candidato construido a la lista de candidatos de fusión (S1910).
Por ejemplo, si el número de candidatos de fusión de la lista de candidatos de fusión es menor que cinco, el candidato construido puede añadirse a la lista de candidatos de fusión. El candidato construido puede representar un candidato de fusión que se genera combinando información de movimiento vecino acerca de cada uno de los CP del bloque actual (es decir, vector de movimiento del bloque vecino e índice de imagen de referencia). La información de movimiento acerca de cada uno de los CP puede derivarse basándose en un bloque vecino espacial o un bloque vecino temporal para el CP correspondiente. La información de movimiento acerca de cada uno de los CP puede representarse como un vector de movimiento candidato para el CP correspondiente.
La figura 20 representa bloques vecinos del bloque actual para derivar un candidato construido de acuerdo con un ejemplo del presente documento.
Haciendo referencia a la figura 20, los bloques vecinos pueden incluir bloques vecinos espaciales y un bloque vecino temporal. Los bloques vecinos espaciales pueden incluir un bloque vecino A0, un bloque vecino A1, un bloque vecino A2, un bloque vecino B0, un bloque vecino B1, un bloque vecino B2 y un bloque vecino B3. Un bloque vecino T mostrado en la figura 20 puede representar el bloque vecino temporal.
En el presente caso, el bloque vecino B2 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 B3 un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; y el bloque vecino A2, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual. Además, el bloque vecino B1 puede representar un bloque vecino ubicado en la parte superior de la posición de muestra superior derecha del bloque actual; y el bloque vecino B0, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual. Además, el bloque vecino A1 puede representar un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino A0, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Además, haciendo referencia a la figura 20, los CP del bloque actual pueden incluir CP0, CP1, CP2 y/o CP3. El CP0 puede representar una posición superior izquierda del bloque actual; el CP1, una posición superior derecha del bloque actual; el CP2, una posición inferior izquierda del bloque actual; y el CP3, una posición inferior derecha del bloque actual. Por ejemplo, si un tamaño del bloque actual es W x H, y una componente x de la posición de muestra superior izquierda del bloque actual es 0 y una componente y del mismo es 0, el CP0 puede representar una posición en las coordenadas (0, 0); el CP1, una posición en las coordenadas (W, 0); el CP2, una posición en las coordenadas (0, H); y el CP3, una posición en las coordenadas (W, H).
Un vector de movimiento para cada uno de los CP anteriores puede derivarse como se indica a continuación.
Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar bloques vecinos en un primer grupo en un primer orden para ver si está disponible, y puede derivar como un vector de movimiento candidato para el CP0 un vector de movimiento del bloque vecino que se confirma en primer lugar que está disponible durante el proceso de comprobación. Es decir, el vector de movimiento candidato para el CP0 puede ser un vector de movimiento del bloque vecino que se confirma en primer lugar que está disponible mientras se comprueban los bloques vecinos en el primer grupo en el primer orden. El hecho de estar disponible puede representar la existencia de un vector de movimiento del bloque vecino. Es decir, el bloque vecino disponible puede ser un bloque que se ha codificado en una inter predicción (es decir, un bloque al que se ha aplicado la inter predicción). En el presente caso, por ejemplo, el primer grupo puede incluir el bloque vecino B2, el bloque vecino B3 y el bloque vecino A2. El primer orden puede ser un orden en el primer grupo desde el bloque vecino B2 al bloque vecino B3 y, entonces, al bloque vecino A2. Como un ejemplo, si el bloque vecino B2 está disponible, el vector de movimiento del bloque vecino B2 puede derivarse como el vector de movimiento candidato para el CP0; si el bloque vecino B2 no está disponible y el bloque vecino B3 está disponible, el vector de movimiento del bloque vecino B3, como el vector de movimiento candidato para el CP0; y si ninguno de los bloques vecinos B2 y B3 está disponible y el bloque vecino A2 está disponible, el vector de movimiento del bloque vecino A2, como el vector de movimiento candidato para el CP0.
Además, por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar bloques vecinos en un segundo grupo en un segundo orden para ver si está disponible, y puede derivar como un vector de movimiento candidato para el CP1 un vector de movimiento del bloque vecino que se confirma en primer lugar que está disponible durante el proceso de comprobación. Es decir, el vector de movimiento candidato para el CP1 puede ser un vector de movimiento del bloque vecino que se confirma en primer lugar que está disponible mientras se comprueban los bloques vecinos en el segundo grupo en el segundo orden. El hecho de estar disponible puede representar la existencia de un vector de movimiento del bloque vecino. Es decir, el bloque vecino disponible puede ser un bloque que se ha codificado en una inter predicción (es decir, un bloque al que se ha aplicado la inter predicción). En el presente caso, el segundo grupo puede incluir el bloque vecino B1 y el bloque vecino B0. El segundo orden puede ser un orden en el segundo grupo desde el bloque vecino B1 al bloque vecino B0. Como un ejemplo, si el bloque vecino B1 está disponible, el vector de movimiento del bloque vecino B1 puede derivarse como el vector de movimiento candidato para el CP1; y si el bloque vecino B1 no está disponible y el bloque vecino B0 está disponible, el vector de movimiento del bloque vecino B0, como el vector de movimiento candidato para el CP1.
Además, por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar bloques vecinos en un tercer grupo a lo largo de un tercer orden para ver si está disponible, y puede derivar como un vector de movimiento candidato para el CP2 un vector de movimiento del bloque vecino que se confirma en primer lugar que está disponible durante el proceso de comprobación. Es decir, el vector de movimiento candidato para el CP2 puede ser un vector de movimiento del bloque vecino que se confirma en primer lugar que está disponible mientras se comprueban los bloques vecinos en el tercer grupo en el tercer orden. El hecho de estar disponible puede representar la existencia de un vector de movimiento del bloque vecino. Es decir, el bloque vecino disponible puede ser un bloque que se ha codificado en una inter predicción (es decir, un bloque al que se ha aplicado la inter predicción). En el presente caso, el tercer grupo puede incluir el bloque vecino A1 y el bloque vecino a 0. El tercer orden puede ser un orden en el tercer grupo desde el bloque vecino A1 al bloque vecino A0. Como un ejemplo, si el bloque vecino A1 está disponible, el vector de movimiento del bloque vecino A1 puede derivarse como el vector de movimiento candidato para el CP2; y si el bloque vecino A1 no está disponible y el bloque vecino A0 está disponible, el vector de movimiento del bloque vecino A0, como el vector de movimiento candidato para el CP2.
Además, por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar el bloque vecino temporal (es decir, el bloque vecino T) para ver si está disponible, y si el bloque vecino temporal (es decir, el bloque vecino T) está disponible, un vector de movimiento del bloque vecino temporal (es decir, el bloque vecino T) puede derivarse como un vector de movimiento candidato para el CP3.
La combinación del vector de movimiento candidato para el CP0, el vector de movimiento candidato para el CP1, el vector de movimiento candidato para el CP2 y/o el vector de movimiento candidato para el CP3 puede derivarse como un candidato construido.
Por ejemplo, como se ha descrito anteriormente, el modelo afín de 6 necesita vectores de movimiento de tres CP. Para el modelo afín de 6, pueden seleccionarse tres CP de entre el CP0, el CP1, el CP2 y el CP3. Por ejemplo, los CP pueden seleccionarse como uno de {CP0, CP1, CP3}, {CP0, CP1, CP2}, {CP1, CP2, CP3} y {CP0, CP2, CP3}. Como un ejemplo, el modelo afín de 6 puede configurarse usando CP0, CP1 y CP2. En este caso, los CP pueden representarse como el {CP0, CP1, CP2}.
Además, por ejemplo, como se ha descrito anteriormente, el modelo afín de 4 necesita vectores de movimiento de dos CP. Para el modelo afín de 4, pueden seleccionarse dos CP de entre el CP0, el CP1, el CP2 y el CP3. Por ejemplo, los CP pueden seleccionarse como uno de {CP0, CP3}, {CP1, CP2}, {CP0, CP1}, {CP1, CP3}, {CP0, CP2} y {CP2, CP3}. Como un ejemplo, el modelo afín de 4 puede constituirse usando CP0 y CP1. En este caso, los CP pueden representarse como el {CP0, CP1}.
El candidato construido, que son combinaciones de vectores de movimiento candidatos, puede añadirse a la lista de candidatos de fusión en el siguiente orden. Es decir, después de que se hayan derivado los vectores de movimiento candidatos para los CP, el candidato construido puede derivarse en el siguiente orden:
{CP0, CP1, CP2}, {CP0, CP1, CP3}, {CP0, CP2, CP3}, {CP1, CP2, CP3}, {CP0, CP1}, {CP0, CP2}, {CP1, CP2}, {CP0, CP3}, {CP1, CP3}, {CP2, CP3}
Es decir, por ejemplo, un candidato construido que incluye un vector de movimiento candidato para el CP0, un vector de movimiento candidato para el CP1 y un vector de movimiento candidato para el CP2, un candidato construido que incluye un vector de movimiento candidato para el CP0, un vector de movimiento candidato para el CP1 y un vector de movimiento candidato para el CP3, un candidato construido que incluye un vector de movimiento candidato para el CP0, un vector de movimiento candidato para el CP2 y un vector de movimiento candidato para el CP3, un candidato construido que incluye un vector de movimiento candidato para el CP1, un vector de movimiento candidato para el CP2 y un vector de movimiento candidato para el CP3, un candidato construido que incluye un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP1, un candidato construido que incluye un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP1, un candidato construido que incluye un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP2, un candidato construido que incluye un vector de movimiento candidato para el CP1 y un vector de movimiento candidato para el CP2, un candidato construido que incluye un vector de movimiento candidato para el CP0 y un vector de movimiento candidato para el CP3, un candidato construido que incluye un vector de movimiento candidato para el CP1 y un vector de movimiento candidato para el CP3, y un candidato construido que incluye un vector de movimiento candidato para el CP2 y un vector de movimiento candidato para el CP3, pueden añadirse a la lista de candidatos de fusión en este orden.
Después de esto, el aparato de codificación/aparato de descodificación puede añadir unos vectores de movimiento cero a la lista de candidatos de fusión (S1920).
Por ejemplo, si el número de candidatos de fusión de la lista de candidatos de fusión es menor que 5, un candidato de fusión que incluye vectores de movimiento cero puede añadirse a la lista de candidatos de fusión hasta que la lista de candidatos de fusión está configurada con el número máximo de candidatos de fusión. El número máximo de los candidatos de fusión puede ser cinco. Además, el vector de movimiento cero puede representar un vector de movimiento cuyo valor de vector es cero.
Por otro lado, el método de exploración para configurar el candidato y la posición de los bloques vecinos usados en el método de generación de la lista de MVP afines descrita con referencia a las figuras 16 a 18 puede usarse para una fusión normal y un MVP normal. En el presente caso, la fusión normal puede significar un modo de fusión que no es el modo de fusión afín y puede usarse en la HEVC o similar, y el MVP normal también puede significar un AMVP que no es el MVP afín y puede usarse en la HEVC. Por ejemplo, aplicar el método descrito con referencia a la figura 16 a la fusión normal y/o al MVP normal significa específicamente explorar el bloque vecino de la posición espacial de la figura 16, y/o configurar el predictor izquierdo y el predictor superior usando el bloque vecino de la figura 16, y/o realizar la comprobación de purgado o actuar con un método de complejidad baja. Cuando este método se aplica a la fusión normal o al MVP normal, puede haber un efecto ventajoso en términos de coste de diseño.
Además, el presente documento propone un método para derivar el candidato construido, que es diferente del ejemplo descrito anteriormente. El ejemplo propuesto puede mejorar el rendimiento de codificación reduciendo la complejidad cuando se compara con el ejemplo descrito anteriormente de derivar 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), puede considerarse el candidato afín construido.
Por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar el mv0, el mv1 y el mv2 para el bloque actual. Es decir, el aparato de codificación/aparato de descodificación puede determinar si existe un mv0, mv1 o mv2 disponible en los bloques vecinos del bloque actual. En el presente caso, el mv0 puede ser un candidato de CPMVP de CP0 del bloque actual; el mv-i, un candidato de CPMVP de CP1; y el mv2, 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 descodificación puede determinar si existe un mvo disponible en el primer grupo, puede determinar si existe un mv1 disponible en el segundo grupo, y puede determinar si existe un mv2 disponible en el tercer grupo.
Específicamente, por ejemplo, el aparato de codificación/aparato de descodificación puede comprobar vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mvo el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mvo puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mvo disponible. En el presente caso, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B y, entonces, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv1 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv1 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv1 disponible. En el presente caso, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en el tercer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv2 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv2 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv2 disponible. En el presente caso, 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 un modelo de movimiento afín de 4, y cuando el mv0 y el mv1 para el bloque actual están disponibles, el aparato de codificación/aparato de descodificación puede derivar el mv0 y el mv1 derivados como el candidato construido del bloque actual. Por otro lado, cuando mv0 y/o mv1 para el bloque actual están/no están disponibles, es decir, cuando al menos uno de mv0 y mv1 no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de descodificación puede no 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 un modelo de movimiento afín de 6, y cuando el mv0, el mv1 y el mv2 para el bloque actual están disponibles, el aparato de codificación/aparato de descodificación puede derivar el mv0, el mv1 y el mv2 derivados como el candidato construido del bloque actual. Por otro lado, cuando mv0, mv1 y/o mv2 para el bloque actual están/no están disponibles, es decir, cuando al menos uno de mv0, mv1 y mv2 no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de descodificación puede no 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 solo cuando todos los vectores de movimiento de los CP para generar un modelo de movimiento afín del bloque actual están disponibles. En el presente caso, 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 solo cuando, entre los vectores de movimiento de los bloques vecinos para los CP respectivos 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 un modelo de movimiento afín de 4, y solo cuando unos MV de CP0 y CP1 del bloque actual (es decir, el mv0 y el mv-i) están disponibles, puede considerarse el candidato construido. Por lo tanto, cuando el modelo de movimiento afín aplicado al bloque actual es el modelo de movimiento afín de 6, y solo cuando los MV de CP0, CP1 y CP2 del bloque actual (es decir, el mv0, el mvi y el mv2) están disponibles, puede considerarse el candidato construido. Por lo tanto, de acuerdo con el ejemplo propuesto, puede que no haya necesidad de la configuración adicional de derivar el vector de movimiento para el CP basándose en la Ecuación 6 o 7. A través de esto, es posible reducir la complejidad computacional para derivar el candidato construido. Además, debido a que el candidato construido se determina solo cuando el candidato de CPMVP que tiene la misma imagen de referencia está disponible, es posible mejorar el rendimiento de codificación global.
Por otro lado, puede no realizarse un proceso de comprobación de purgado entre el candidato afín heredado derivado y el candidato afín construido. El proceso de comprobación de purgado puede representar un proceso mediante el que se comprueban candidatos para ver si son iguales entre sí y, si son iguales, se retira el candidato derivado en un orden posterior.
El ejemplo descrito anteriormente puede representarse como en las figuras 21 y 22.
La figura 21 representa un ejemplo de derivación del candidato construido para un modelo de movimiento afín de 4 aplicado al bloque actual.
Haciendo referencia a la figura 21, el aparato de codificación/aparato de descodificación puede determinar si un mv0 y un mvi para el bloque actual están disponibles (S2100). Es decir, el aparato de codificación/aparato de descodificación puede determinar si existe un mv0 y un mvi disponibles en los bloques vecinos del bloque actual. En el presente caso, el mv0 puede ser un candidato de CPMVP de CP0 del bloque actual, y el mvi puede ser un candidato de CPMVP de CP1.
El aparato de codificación/aparato de descodificación puede determinar si existe un mv0 disponible en el primer grupo, y puede determinar si existe un mvi 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.
Además, el aparato de codificación/aparato de descodificación puede comprobar vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv0 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv0 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv0 disponible. En el presente caso, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B y, entonces, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv1 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv1 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv1 disponible. En el presente caso, 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 mv0 y el mv1 para el bloque actual están disponibles, es decir, cuando se deriva el mv0 y el mv1 para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar como el candidato construido del bloque actual el mv0 y el mv1 derivados (S2110). Por otro lado, cuando mv0 y/o mv1 para el bloque actual están/no están disponibles, es decir, cuando al menos uno de mv0 y mv1 no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de descodificación puede no añadir el candidato construido a la lista de MVP afines del bloque actual.
Por otro lado, puede no realizarse un proceso de comprobación de purgado entre el candidato afín heredado derivado y el candidato afín construido. El proceso de comprobación de purgado puede representar un proceso mediante el que se comprueban candidatos para ver si son iguales entre sí y, si son iguales, se retira el candidato derivado en un orden posterior.
La figura 22 representa un ejemplo de derivación del candidato construido para un modelo de movimiento afín de 6 aplicado al bloque actual.
Haciendo referencia a la figura 22, el aparato de codificación/aparato de descodificación puede determinar si un mv0, un mv1 y un mv2 para el bloque actual están disponibles (S2200). Es decir, el aparato de codificación/aparato de descodificación puede determinar si existe un mv0, mvi o mv2 disponible en los bloques vecinos del bloque actual. En el presente caso, el mv0 puede ser un candidato de CPMVP de<c>P<ü>del bloque actual; el mvi, un candidato de CPMVP de CP1; y el mv2, un candidato de CPMVP de CP2.
El aparato de codificación/aparato de descodificación puede determinar si existe un mvo disponible en el primer grupo, puede determinar si existe un mvi disponible en el segundo grupo, y puede determinar si existe un mv2 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.
Además, el aparato de codificación/aparato de descodificación puede comprobar vectores de movimiento de los bloques vecinos en el primer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv0 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv0 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv0 disponible. En el presente caso, por ejemplo, el orden específico puede ser uno desde el bloque vecino A al bloque vecino B y, entonces, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en el segundo grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv1 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv1 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv1 disponible. En el presente caso, 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 descodificación puede comprobar vectores de movimiento de los bloques vecinos en el tercer grupo en un orden específico para ver si satisface una condición específica. El aparato de codificación/aparato de descodificación puede derivar como el mv2 el vector de movimiento del bloque vecino que se ha confirmado en primer lugar que satisface la condición durante el proceso de comprobación. Es decir, el mv2 puede ser un vector de movimiento que se ha confirmado en primer lugar que satisface la condición específica mientras se comprueban 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, puede que no haya ningún mv2 disponible. En el presente caso, 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 el mv0, el mv1 y el mv2 para el bloque actual están disponibles, es decir, cuando se derivan el mv0, el mv1 y el mv2 para el bloque actual, el aparato de codificación/aparato de descodificación puede derivar como el candidato construido del bloque actual el mv0, el mv1 y el mv2 derivados (S2210). Por otro lado, cuando mv0, mv1 y/o mv2 para el bloque actual están/no están disponibles, es decir, cuando al menos uno de mv0, m v y mv2 no se deriva del bloque vecino del bloque actual, el aparato de codificación/aparato de descodificación puede no añadir el candidato construido a la lista de MVP afines del bloque actual.
Por otro lado, puede no realizarse un proceso de comprobación de purgado entre el candidato afín heredado derivado y el candidato afín construido.
Por otro lado, cuando el número del candidato afín derivado es menor que dos (es decir, cuando el número del candidato afín heredado y/o el candidato afín construido es menor que dos), el candidato de AMVP de HEVC puede añadirse a la lista de MVP afines del bloque actual.
Por ejemplo, el candidato de AMVP de HEVC puede derivarse en el siguiente orden.
Específicamente, cuando el número del candidato afín derivado es menor que dos, y cuando el CPMV0 del candidato afín construido está disponible, el CPMV0 puede usarse como el candidato de MVP afín. Es decir, cuando el número del candidato afín derivado es menor que dos, y cuando el CPMV0 del candidato afín construido está disponible (es decir, cuando el número del candidato afín derivado es menor que dos y se deriva el CPMV0 del candidato afín construido), puede derivarse un primer candidato de MVP afín que incluye CPMV0 del candidato afín construido como CPMV0, CPMV1, CPMV2.
Además, a continuación, cuando el número del candidato afín derivado es menor que dos, y cuando el CPMV1 del candidato afín construido está disponible, el CPMV1 puede usarse como el candidato de MVP afín. Es decir, cuando el número del candidato afín derivado es menor que dos, y cuando el CPMV1 del candidato afín construido está disponible (es decir, cuando el número del candidato afín derivado es menor que dos y se deriva el CPMV1 del candidato afín construido), puede derivarse un segundo candidato de MVP afín que incluye CPMV1 del candidato afín construido como CPMV0, CPMV1, CPMV2.
Además, a continuación, cuando el número del candidato afín derivado es menor que dos, y cuando el CPMV2 del candidato afín construido está disponible, el CPMV2 puede usarse como el candidato de MVP afín. Es decir, cuando el número del candidato afín derivado es menor que dos, y cuando el CPMV2 del candidato afín construido está disponible (es decir, cuando el número del candidato afín derivado es menor que dos y se deriva el CPMV2 del candidato afín construido), puede derivarse un tercer candidato de MVP afín que incluye CPMV2 del candidato afín construido como CPMV0, CPMV1, CPMV2.
Además, a continuación, cuando el número del candidato afín derivado es menor que dos, puede usarse un predictor de vector de movimiento temporal (TMVP) de HEVC como el candidato de MVP afín. El TMVP de HEVC puede derivarse basándose en información de movimiento del bloque vecino temporal del bloque actual. Es decir, cuando el número del candidato afín derivado es menor que dos, puede derivarse un tercer candidato de MVP afín que incluye el vector de movimiento del bloque vecino temporal del bloque actual como CPMV0, CPMV1, CPMV2. El bloque vecino temporal puede representar un bloque coubicado en una imagen coubicada correspondiente al bloque actual.
Además, a continuación, cuando el número del candidato afín derivado es menor que dos, puede usarse un vector de movimiento cero (MV cero) como el candidato de MVP afín. Es decir, cuando el número del candidato afín derivado es menor que dos, puede derivarse un tercer candidato de MVP afín que incluye el vector de movimiento cero como CPMV0, CPMV1, CPMV2. El vector de movimiento cero puede representar un vector de movimiento cuyo valor es cero.
Este puede disminuir la complejidad cuando se compara con el método convencional de derivar un candidato de AMVP de HEVC debido a que las etapas de usar un CPMV del candidato afín construido reutilizan un MV que ya se ha considerado para generar el candidato afín construido.
Por otro lado, el presente documento propone otro ejemplo de derivación del candidato afín heredado.
Para derivar el candidato afín heredado, se requiere información de predicción afín de un bloque vecino y, específicamente, se requiere la información de predicción afín como se indica a continuación.
1) Bandera_Afín que indica si se aplica una codificación basada en predicción afín del bloque vecino
2) Información de movimiento del bloque vecino
Cuando el modelo de movimiento afín de 4 se aplica al bloque vecino, la información de movimiento del bloque vecino puede incluir información de movimiento de L0 e información de movimiento de L1 para CP0, e información de movimiento de L0 e información de movimiento de L1 para CP1. Además, cuando el modelo de movimiento afín de 6 se aplica al bloque vecino, la información de movimiento del bloque vecino puede incluir información de movimiento de L0 e información de movimiento de L1 para CP0, e información de movimiento de L0 e información de movimiento de L1 para CP2. En el presente caso, la información de movimiento de L0 puede representar información de movimiento acerca de L0 (la Lista 0), y la información de movimiento de L1 puede representar información de movimiento acerca de L1 (la Lista 1). La información de movimiento de L0 puede incluir un índice de imagen de referencia de L0 y un vector de movimiento de L0, y la información de movimiento de L1 puede incluir un índice de imagen de referencia de L1 y un vector de movimiento de L1.
Como se ha descrito anteriormente, en el caso de la predicción afín, la cantidad de información que va a almacenarse es grande, lo que, por lo tanto, puede convertirse en una causa principal de costes de hardware crecientes al materializar la misma realmente en el aparato de codificación/aparato de descodificación. En particular, cuando el bloque vecino se ubica en la parte superior del bloque actual y es una frontera de CTU, debería usarse una memoria intermedia de líneas para almacenar información relacionada con predicción afín del bloque vecino y, por lo tanto, el problema de coste puede tener lugar en mayor medida. El problema puede representarse en lo sucesivo en el presente documento como una cuestión de memoria intermedia de líneas. Por lo tanto, el presente documento propone un ejemplo de derivación de un candidato afín heredado, en el que el coste de hardware se minimiza no almacenando la información relacionada con predicción afín en la memoria intermedia de líneas, o reduciendo la misma. El ejemplo propuesto puede mejorar el rendimiento de la codificación reduciendo la complejidad computacional al derivar el candidato afín heredado. Por otro lado, como referencia, en la memoria intermedia de líneas ya se ha almacenado la información de movimiento de un bloque que tiene un tamaño de 4 x 4 , y cuando se almacena la información relacionada con predicción afín, la cantidad de información almacenada aumenta tres veces en comparación con la cantidad de almacenamiento previa.
En el presente ejemplo, en la memoria intermedia de líneas no puede almacenarse adicionalmente ninguna información acerca de la predicción afín, y cuando debería hacerse referencia a información en la memoria intermedia de líneas para generar el candidato afín heredado, puede restringirse la generación del candidato afín heredado.
Las figuras 23a y 23b representan ilustrativamente un ejemplo de derivación del candidato afín heredado.
Haciendo referencia a la figura 23a, cuando el bloque vecino B del bloque actual (es decir, el bloque vecino superior del bloque actual) no existe en la misma CTU (es decir, la CTU actual) que el bloque actual, el bloque vecino B puede no usarse para generar el candidato afín heredado. Por otro lado, incluso aunque no exista un bloque vecino A en la misma CTU que el bloque actual, puede usarse información acerca del bloque vecino A para generar el candidato afín heredado debido a que este no se almacena en la memoria intermedia de líneas. Por lo tanto, en el presente ejemplo, solo cuando el bloque vecino superior del bloque actual se incluye en la misma CTU que el bloque actual, puede usarse para generar el candidato afín heredado. Además, cuando el bloque vecino superior del bloque actual no se incluye en la misma CTU que el bloque actual, el bloque vecino superior puede no usarse para generar el candidato afín heredado.
Haciendo referencia a la figura 23b, el bloque vecino B del bloque actual (es decir, el bloque vecino superior del bloque actual) puede existir en la misma CTU que el bloque actual. En este caso, el aparato de codificación/aparato de descodificación puede generar el candidato afín heredado con referencia al bloque vecino B.
La figura 24 representa esquemáticamente un método de codificación de imágenes por un aparato de codificación de acuerdo con el presente documento. El método divulgado en la figura 24 puede ser realizado por el aparato de codificación divulgado en la figura 2. Específicamente, por ejemplo, S2400 a S2430 de la figura 24 pueden ser realizadas por el predictor del aparato de codificación, y S2440 puede ser realizada por el codificador por entropía del aparato de codificación. Además, aunque no se muestra, el proceso de derivar muestras de predicción para el bloque actual basándose en los CPMV puede ser realizado por el predictor del aparato de codificación; el proceso de derivar la muestra de residuo 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 generar información acerca de un residuo para el bloque actual basándose en la muestra de residuo, por el transformador del aparato de codificación; y el proceso de codificar la información acerca de un residuo, por el codificador por entropía del aparato de codificación.
El aparato de codificación configura una lista de candidatos de predictor de vector de movimiento (MVP) afín para el bloque actual (S2400). El aparato de codificación puede configurar la lista de candidatos de MVP afines que incluye el candidato de MVP afín para el bloque actual. El número máximo de los candidatos de MVP afines de la lista de candidatos de MVP afines puede ser de dos.
Además, como un ejemplo, la lista de candidatos de MVP afines puede incluir un candidato de MVP afín heredado. El aparato de codificación puede comprobar si el candidato de MVP afín heredado del bloque actual está disponible, y cuando el candidato de MVP afín heredado está disponible, puede derivarse el candidato de MVP afín heredado. Por ejemplo, los candidatos de MVP afines heredados pueden derivarse basándose en los bloques vecinos del bloque actual, y el número máximo de los candidatos de MVP afines heredados puede ser de dos. Los bloques vecinos pueden comprobarse en un orden específico para ver si está disponible, y el candidato de MVP afín heredado puede derivarse basándose en un bloque vecino disponible comprobado. Es decir, los bloques vecinos pueden comprobarse en un orden específico para ver si está disponible, y un primer candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en primer lugar que está disponible, y un segundo candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en segundo lugar que está disponible. El hecho de estar disponible puede representar que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia del bloque vecino es la misma que una imagen de referencia del bloque actual. Es decir, el bloque vecino disponible es un bloque vecino que se codifica con el modelo de movimiento afín (es decir, al que se aplica la predicción afín), y cuya imagen de referencia es la misma que una imagen de referencia del bloque actual. Específicamente, 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 vecino que se ha comprobado en primer lugar que está disponible, y puede derivar el primer candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. Además, 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 vecino que se ha comprobado en segundo lugar que está disponible, y puede derivar el segundo candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. El modelo de movimiento afín puede derivarse como la Ecuación 1 o 3 anterior.
Además, en otras palabras, los bloques vecinos pueden comprobarse en un orden específico para ver si satisface una condición específica, y el candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado que satisface la condición específica. Es decir, los bloques vecinos pueden comprobarse en un orden específico para ver si satisface una condición específica, y el primer candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en primer lugar que satisface la condición específica, y el segundo candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en segundo lugar que satisface la condición específica. Específicamente, 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 vecino que se ha comprobado en primer lugar que satisface la condición específica, y puede derivar el primer candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. Además, 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 vecino que se ha comprobado en segundo lugar que satisface la condición específica, y puede derivar el segundo candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. El modelo de movimiento afín puede derivarse como la Ecuación 1 o 3 anterior. Por otro lado, la condición específica puede representar que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia del bloque vecino es la misma que una imagen de referencia del bloque actual. Es decir, el bloque vecino que satisface la condición específica es un bloque vecino que se codifica con el modelo de movimiento afín (es decir, al que se aplica la predicción afín), y cuya imagen de referencia es la misma que una imagen de referencia del bloque actual.
En el presente caso, por ejemplo, los bloques vecinos pueden incluir un bloque vecino izquierdo, un bloque vecino superior, un bloque vecino de esquina superior derecha, un bloque vecino de esquina inferior izquierda y un bloque vecino de esquina superior izquierda del bloque actual. En este caso, el orden específico puede ser un orden desde el bloque vecino izquierdo al bloque vecino de esquina inferior izquierda al bloque vecino superior al bloque vecino de esquina superior derecha y, entonces, al bloque vecino de esquina superior izquierda.
Como alternativa, por ejemplo, los bloques vecinos pueden incluir solo el bloque vecino izquierdo y el bloque vecino superior. En este caso, el orden específico puede ser un orden desde el bloque vecino izquierdo hasta el bloque vecino superior.
Como alternativa, por ejemplo, los bloques vecinos pueden incluir solo el bloque vecino izquierdo, y cuando el bloque vecino superior se incluye en la CTU actual que incluye el bloque actual, los bloques vecinos pueden incluir además el bloque vecino superior. En este caso, el orden específico puede ser un orden desde el bloque vecino izquierdo hasta el bloque vecino superior. Además, cuando el bloque vecino superior no se incluye en la CTU actual, los bloques vecinos pueden no incluir el bloque vecino superior. En este caso, solo puede comprobarse el bloque vecino izquierdo.
Por otro lado, si un tamaño es W x H, y la componente x de la posición de muestra superior izquierda del bloque actual es 0 y la componente y del mismo es 0, el bloque vecino de esquina inferior izquierda puede ser un bloque que incluye una muestra en las coordenadas (-1, H); el bloque vecino izquierdo, un bloque que incluye una muestra en las coordenadas (-1, H -1); el bloque vecino de esquina superior derecha, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino superior, un bloque que incluye una muestra en las coordenadas (W -1 , -1); y el bloque vecino de esquina superior izquierda, un bloque que incluye una muestra en las coordenadas (-1, -1). Es decir, el bloque vecino izquierdo puede ser un bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más abajo, y el bloque vecino superior puede ser un bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la izquierda.
Además, 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. El aparato de codificación puede comprobar si el candidato de MVP afín construido del bloque actual está disponible, y cuando el candidato de MVP afín construido está disponible, puede derivarse el candidato de MVP afín construido. Además, por ejemplo, después de que se haya derivado el candidato de MVP afín heredado, puede derivarse el candidato de m Vp afín construido. Cuando el número del candidato de MVP afín derivado (es decir, el candidato de MVP afín heredado) es menor que dos y el 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 el presente caso, 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, cuando se aplica un modelo de movimiento afín de 4 al bloque actual, los CP del bloque actual pueden incluir CP0 y CP1. Cuando el vector de movimiento 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 el presente caso, 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 en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. Es decir, el vector de movimiento candidato para el CP1 puede ser un vector de movimiento de un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. El hecho de estar disponible puede representar que el bloque vecino existe, y que el bloque vecino se codifica en una inter predicción. En el presente caso, cuando la imagen de referencia del primer bloque en el 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, entonces, al bloque vecino C.
Además, el segundo bloque puede ser un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del segundo bloque en el segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para el 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.
Por otro lado, si un tamaño del bloque actual es W x H, y una componente x de la posición de muestra superior izquierda del bloque actual es 0 y una componente y del mismo es 0, el bloque vecino A 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); y 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 esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la izquierda; el bloque vecino C, el bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más arriba; el bloque vecino D, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la derecha; y el bloque vecino E, el bloque vecino de esquina superior derecha del bloque actual.
Por otro lado, 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, cuando 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 el presente caso, 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 puede ser un vector de movimiento de un segundo 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 en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del primer bloque en el 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, entonces, al bloque vecino C.
Además, el segundo bloque puede ser un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del segundo bloque en el segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para el 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 en el que se ha confirmado en tercer lugar, mientras se comprueban los bloques vecinos en el tercer grupo en un segundo orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del tercer bloque en el 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.
Por otro lado, si un tamaño del bloque actual es W x H, y una componente x de la posición de muestra superior izquierda del bloque actual es 0 y una componente y del mismo es 0, el bloque vecino A 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 esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la izquierda; el bloque vecino C, el bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más arriba; el bloque vecino D, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la derecha; el bloque vecino E, el bloque vecino de esquina superior derecha del bloque actual; el bloque vecino F, el bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más abajo; y el bloque vecino G, el bloque vecino de esquina inferior izquierda del bloque actual.
Por otro lado, cuando al menos uno del vector de movimiento candidato del CP0, el vector de movimiento candidato del CP1 y el vector de movimiento candidato del CP2 no está disponible, el candidato de MVP afín construido puede no estar disponible.
Después de esto, la lista de candidatos de MVP afines puede derivarse basándose en etapas descritas a continuación en un orden particular.
Por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, y el vector de movimiento para el CP0 está disponible, el aparato de codificación puede derivar un primer candidato de MVP afín. En el presente caso, el primer candidato de MVP afín puede ser un candidato de MVP afín que incluye un vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, y el vector de movimiento para el CP1 está disponible, el aparato de codificación puede derivar un segundo candidato de MVP afín. En el presente caso, el segundo candidato de MVP afín puede ser un candidato de MVP afín que incluye un vector de movimiento para el CP1 como vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, y el vector de movimiento para el CP2 está disponible, el aparato de codificación puede derivar un tercer candidato de MVP afín. En el presente caso, el tercer candidato de MVP afín puede ser un candidato de MVP afín que incluye un vector de movimiento para el CP2 como vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, el aparato de codificación puede derivar un cuarto candidato de MVP afín que incluye como vectores de movimiento candidatos para los CP un MVP temporal derivado basándose en el bloque vecino temporal del actual bloque. El bloque vecino temporal puede representar un bloque coubicado en una imagen coubicada correspondiente al bloque actual. El MVP temporal puede derivarse basándose en un vector de movimiento del bloque vecino temporal.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, el aparato de codificación puede derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como vectores de movimiento candidatos para los CP. El vector de movimiento cero puede representar un vector de movimiento cuyo valor es cero.
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 (S2410). El aparato de codificación puede derivar unos CPMV para los CP del bloque actual que tiene un coste de RD óptimo, y puede seleccionar como el candidato de MVP afín para el bloque actual el candidato de MVP afín de entre los candidatos de MVP afines, que es el 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 un CPMVP del CP0, el vector de movimiento candidato para CP1 del candidato de MVP afín puede derivarse como un CPMVP del CP1, y el vector de movimiento candidato para CP2 del candidato de MVP afín puede derivarse como un 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 de entre los candidatos de MVP afines. El índice de candidato de MVP afín puede indicar dicho un candidato de MVP afín de entre los candidatos de MVP afines incluidos en la lista de candidatos de predictor de vector de movimiento (MVP) afín para el bloque actual.
El aparato de codificación deriva los CPMV para los CP del bloque actual (S2420). El aparato de codificación puede derivar los CPMV para los CP respectivos 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 (S2430). 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 CP respectivos.
El aparato de codificación codifica información de predicción de movimiento que incluye información acerca de las CPMVD (S2440). El aparato de codificación puede emitir, en forma de flujo de bits, información de predicción de movimiento que incluye información acerca de 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 acerca de las CPMVD para los CP respectivos, y la información de predicción de movimiento puede incluir información acerca de 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 de entre los candidatos de MVP afines incluidos en la lista de candidatos de predictor de vector de movimiento (MVP) afín para el bloque actual.
Por otro lado, como un ejemplo, el aparato de codificación puede derivar muestras de predicción para el bloque actual basándose en los CPMV, derivar la muestra de residuo para el bloque actual basándose en la muestra de predicción y la muestra original para el bloque actual, generar información acerca de un residuo para el bloque actual basándose en la muestra de residuo y codificar la información acerca del residuo. La información de imagen puede incluir información acerca del residuo. Por otro lado, el flujo de bits puede transmitirse al aparato de descodificación a través de una red o un medio de almacenamiento (digital). En el presente caso, la red puede incluir una red de radiodifusió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 25 representa esquemáticamente un aparato de codificación que realiza un método de codificación de imágenes de acuerdo con el presente documento. El método divulgado en la figura 24 puede ser realizado por el aparato de codificación divulgado en la figura 25. Específicamente, por ejemplo, el predictor de la figura 25 puede realizar de S2400 a S2410 en la figura 24; y el codificador por entropía del aparato de codificación, S2420 en la figura 24. Además, aunque no se muestra, el proceso de derivar muestras de predicción para el bloque actual basándose en los CPMV puede ser realizado por el predictor del aparato de codificación de la figura 25; el proceso de derivar la muestra de residuo 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 25; el proceso de generar información acerca de un residuo para el bloque actual basándose en la muestra de residuo, por el transformador del aparato de codificación de la figura 25; y el proceso de codificar la información acerca de un residuo, por el codificador por entropía del aparato de codificación de la figura 25.
La figura 26 representa esquemáticamente un método de descodificación de imágenes por un aparato de descodificación de acuerdo con el presente documento. El método divulgado en la figura 26 puede ser realizado por el aparato de descodificación divulgado en la figura 3. Específicamente, por ejemplo, S2600 de la figura 26 puede ser realizada por el descodificador por entropía del aparato de descodificación; S2610 a S2650, por el predictor del aparato de descodificación; y S2660, por el sumador del aparato de descodificación. Además, aunque no se muestra, el proceso de obtener información acerca de un residuo del bloque actual a través de un flujo de bits puede ser realizado por el descodificador por entropía del aparato de descodificación, y el proceso de derivar la muestra de residuo para el bloque actual basándose en la información de residuo puede ser realizado por el transformador inverso del aparato de descodificación.
El aparato de descodificación obtiene información de predicción de movimiento para el bloque actual a partir de un flujo de bits (S2600). El aparato de descodificación puede obtener información de imagen que incluye la información de predicción de movimiento a partir del flujo de bits.
Además, por ejemplo, la información de predicción de movimiento puede incluir información acerca de 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 acerca de una CPMVD para los CP respectivos del bloque actual.
Además, por ejemplo, la información de predicción de movimiento puede incluir el índice de candidato de MVP afín para el bloque actual. El índice de candidato de MVP afín puede indicar uno de entre los candidatos de MVP afines incluidos en la lista de candidatos de predictor de vector de movimiento (MVP) afín para el bloque actual.
El aparato de descodificación configura una lista de candidatos de predictor de vector de movimiento (MVP) afín para el bloque actual (S2610). El aparato de descodificación puede configurar una lista de candidatos de MVP afines que incluye el candidato de MVP afín para el bloque actual. El número máximo de los candidatos de MVP afines de la lista de candidatos de MVP afines puede ser de dos.
Además, como un ejemplo, la lista de candidatos de MVP afines puede incluir un candidato de MVP afín heredado. El aparato de descodificación puede comprobar si el candidato de MVP afín heredado del bloque actual está disponible, y cuando el candidato de MVP afín heredado está disponible, puede derivarse el candidato de MVP afín heredado. Por ejemplo, los candidatos de MVP afines heredados pueden derivarse basándose en los bloques vecinos del bloque actual, y el número máximo de los candidatos de m Vp afines heredados puede ser de dos. Los bloques vecinos pueden comprobarse en un orden específico para ver si está disponible, y el candidato de MVP afín heredado puede derivarse basándose en un bloque vecino disponible comprobado. Es decir, los bloques vecinos pueden comprobarse en un orden específico para ver si está disponible, y un primer candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en primer lugar que está disponible, y un segundo candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en segundo lugar que está disponible. El hecho de estar disponible puede representar que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia del bloque vecino es la misma que una imagen de referencia del bloque actual. Es decir, el bloque vecino disponible es un bloque vecino que se codifica con el modelo de movimiento afín (es decir, al que se aplica la predicción afín), y cuya imagen de referencia es la misma que una imagen de referencia del bloque actual. Específicamente, el aparato de descodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque vecino que se ha comprobado en primer lugar que está disponible, y puede derivar el primer candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. Además, el aparato de descodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque vecino que se ha comprobado en segundo lugar que está disponible, y puede derivar el segundo candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. El modelo de movimiento afín puede derivarse como la Ecuación 1 o 3 anterior.
Además, en otras palabras, los bloques vecinos pueden comprobarse en un orden específico para ver si satisface una condición específica, y el candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado que satisface la condición específica. Es decir, los bloques vecinos pueden comprobarse en un orden específico para ver si satisface una condición específica, y el primer candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en primer lugar que satisface la condición específica, y el segundo candidato de MVP afín heredado puede derivarse basándose en el bloque vecino que se ha comprobado en segundo lugar que satisface la condición específica. Específicamente, el aparato de descodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque vecino que se ha comprobado en primer lugar que satisface la condición específica, y puede derivar el primer candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. Además, el aparato de descodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque vecino que se ha comprobado en segundo lugar que satisface la condición específica, y puede derivar el segundo candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. El modelo de movimiento afín puede derivarse como la Ecuación 1 o 3 anterior. Por otro lado, la condición específica puede representar que un bloque se codifica con el modelo de movimiento afín, y que una imagen de referencia del bloque vecino es la misma que una imagen de referencia del bloque actual. Es decir, el bloque vecino que satisface la condición específica es un bloque vecino que se codifica con el modelo de movimiento afín (es decir, al que se aplica la predicción afín), y cuya imagen de referencia es la misma que una imagen de referencia del bloque actual.
En el presente caso, por ejemplo, los bloques vecinos pueden incluir un bloque vecino izquierdo, un bloque vecino superior, un bloque vecino de esquina superior derecha, un bloque vecino de esquina inferior izquierda y un bloque vecino de esquina superior izquierda del bloque actual. En este caso, el orden específico puede ser un orden desde el bloque vecino izquierdo al bloque vecino de esquina inferior izquierda al bloque vecino superior al bloque vecino de esquina superior derecha y, entonces, al bloque vecino de esquina superior izquierda.
Como alternativa, por ejemplo, los bloques vecinos pueden incluir solo el bloque vecino izquierdo y el bloque vecino superior. En este caso, el orden específico puede ser un orden desde el bloque vecino izquierdo hasta el bloque vecino superior.
Como alternativa, por ejemplo, los bloques vecinos pueden incluir solo el bloque vecino izquierdo, y cuando el bloque vecino superior se incluye en la CTU actual que incluye el bloque actual, los bloques vecinos pueden incluir además el bloque vecino superior. En este caso, el orden específico puede ser un orden desde el bloque vecino izquierdo hasta el bloque vecino superior. Además, cuando el bloque vecino superior no se incluye en la CTU actual, los bloques vecinos pueden no incluir el bloque vecino superior. En este caso, solo puede comprobarse el bloque vecino izquierdo.
Por otro lado, si un tamaño es W x H, y la componente x de la posición de muestra superior izquierda del bloque actual es 0 y la componente y del mismo es 0, el bloque vecino de esquina inferior izquierda puede ser un bloque que incluye una muestra en las coordenadas (-1, H); el bloque vecino izquierdo, un bloque que incluye una muestra en las coordenadas (-1, H -1); el bloque vecino de esquina superior derecha, un bloque que incluye una muestra en las coordenadas (W, -1); el bloque vecino superior, un bloque que incluye una muestra en las coordenadas (W -1 , -1); y el bloque vecino de esquina superior izquierda, un bloque que incluye una muestra en las coordenadas (-1, -1). Es decir, el bloque vecino izquierdo puede ser un bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más abajo, y el bloque vecino superior puede ser un bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la izquierda.
Además, 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. El aparato de descodificación puede comprobar si el candidato de MVP afín construido del bloque actual está disponible, y cuando el candidato de MVP afín construido está disponible, puede derivarse el candidato de MVP afín construido. Además, por ejemplo, después de que se haya derivado el candidato de MVP afín heredado, puede derivarse el candidato de<m>V<p>afín construido. Cuando el número del candidato de MVP afín derivado (es decir, el candidato de MVP afín heredado) es menor que dos y el 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 el presente caso, 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, cuando se aplica un modelo de movimiento afín de 4 al bloque actual, los CP del bloque actual pueden incluir CP0 y CP1. Cuando el vector de movimiento 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 el presente caso, 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 en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. Es decir, el vector de movimiento candidato para el CP1 puede ser un vector de movimiento de un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. El hecho de estar disponible puede representar que el bloque vecino existe, y que el bloque vecino se codifica en una inter predicción. En el presente caso, cuando la imagen de referencia del primer bloque en el 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, entonces, al bloque vecino C.
Además, el segundo bloque puede ser un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del segundo bloque en el segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para el 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.
Por otro lado, si un tamaño del bloque actual es W x H, y una componente x de la posición de muestra superior izquierda del bloque actual es 0 y una componente y del mismo es 0, el bloque vecino A 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); y 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 esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la izquierda; el bloque vecino C, el bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más arriba; el bloque vecino D, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la derecha; y el bloque vecino E, el bloque vecino de esquina superior derecha del bloque actual.
Por otro lado, 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, cuando 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 el presente caso, 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 puede ser un vector de movimiento de un segundo 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 en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del primer bloque en el 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, entonces, al bloque vecino C.
Además, el segundo bloque puede ser un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del segundo bloque en el segundo grupo es la misma que la imagen de referencia del bloque actual, un vector de movimiento candidato para el 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 en el que se ha confirmado en tercer lugar, mientras se comprueban los bloques vecinos en el tercer grupo en un segundo orden específico, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual. En el presente caso, cuando la imagen de referencia del tercer bloque en el 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.
Por otro lado, si un tamaño del bloque actual es W x H, y una componente x de la posición de muestra superior izquierda del bloque actual es 0 y una componente y del mismo es 0, el bloque vecino A 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 esquina superior izquierda del bloque actual; el bloque vecino B, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la izquierda; el bloque vecino C, el bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más arriba; el bloque vecino D, el bloque vecino superior de entre los bloques vecinos superiores del bloque actual, que se ubica más a la derecha; el bloque vecino E, el bloque vecino de esquina superior derecha del bloque actual; el bloque vecino F, el bloque vecino izquierdo de entre los bloques vecinos izquierdos del bloque actual, que se ubica más abajo; y el bloque vecino G, el bloque vecino de esquina inferior izquierda del bloque actual.
Por otro lado, cuando al menos uno del vector de movimiento candidato del CP0, el vector de movimiento candidato del CP1 y el vector de movimiento candidato del CP2 no está disponible, el candidato de MVP afín construido puede no estar disponible.
Después de esto, la lista de candidatos de MVP afines puede derivarse basándose en etapas descritas a continuación en un orden particular.
Por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, y el vector de movimiento para el CP0 está disponible, el aparato de descodificación puede derivar un primer candidato de MVP afín. En el presente caso, el primer candidato de MVP afín puede ser un candidato de MVP afín que incluye un vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, y el vector de movimiento para el CP1 está disponible, el aparato de descodificación puede derivar un segundo candidato de MVP afín. En el presente caso, el segundo candidato de MVP afín puede ser un candidato de MVP afín que incluye un vector de movimiento para el CP1 como vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, y el vector de movimiento para el CP2 está disponible, el aparato de descodificación puede derivar un tercer candidato de MVP afín. En el presente caso, el tercer candidato de MVP afín puede ser un candidato de MVP afín que incluye un vector de movimiento para el CP2 como vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, el aparato de descodificación puede derivar un cuarto candidato de MVP afín que incluye como vectores de movimiento candidatos para los CP un MVP temporal derivado basándose en el bloque vecino temporal del actual bloque. El bloque vecino temporal puede representar un bloque coubicado en una imagen coubicada correspondiente al bloque actual. El MVP temporal puede derivarse basándose en un vector de movimiento del bloque vecino temporal.
Además, por ejemplo, cuando el número del candidato de MVP afín derivado es menor que dos, el aparato de descodificación puede derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como vectores de movimiento candidatos para los CP. El vector de movimiento cero puede representar un vector de movimiento cuyo valor es cero.
El aparato de descodificació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 (S2620).
El aparato de descodificación puede seleccionar un candidato de MVP afín específico de 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 unos CPMVP para los CP del bloque actual. Por ejemplo, el aparato de descodificación puede obtener el índice de candidato de MVP afín para el bloque actual a partir del flujo de bits, y puede derivar como unos CPMVP para los CP del bloque actual el candidato de MVP afín de entre los candidatos de MVP afines incluidos en la lista de candidatos de MVP afines, que es indicada por 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 un CPMVP del CP0, el vector de movimiento candidato para CP1 del candidato de MVP afín puede derivarse como un CPMVP del CP1, y el vector de movimiento candidato para CP2 del candidato de MVP afín puede derivarse como un 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 descodificació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 (S2630). La información de predicción de movimiento puede incluir información acerca de una CPMVD para los CP respectivos, y el aparato de descodificación puede derivar la CPMVD para los CP respectivos del bloque actual basándose en información acerca de la CPMVD para los CP respectivos.
El aparato de descodificación deriva vectores de movimiento de punto de control (CPMV) para los CP del bloque actual basándose en los CPMVP y las CPMVD (S2640). El aparato de descodificación puede derivar un CPMV para cada CP basándose en una CPMVD y un CPMVP para los CP respectivos. Por ejemplo, el aparato de descodificación puede derivar el CPMV para el CP añadiendo la CPMVD y el c Pm VP para el CP.
El aparato de descodificación puede derivar las muestras de predicción para el bloque actual basándose en los CPMV (S2650). El aparato de descodificació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 descodificació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 de 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 una matriz de vectores de movimiento.
El aparato de descodificació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 descodificació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 descodificación genera una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas (S2660). El aparato de descodificación puede generar una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas. El aparato de descodificación puede usar una muestra de predicción directamente como una muestra reconstruida de acuerdo con el modo de predicción, o puede generar una muestra reconstruida añadiendo una muestra de residuo a la muestra de predicción. Si existe una muestra de residuo para el bloque actual, el aparato de decodificación puede adquirir información acerca del residuo para el bloque actual a partir del flujo de bits. La información acerca de un residuo puede incluir un coeficiente de transformada en relación con la muestra de residuo. El aparato de descodificación puede derivar la muestra de residuo (o la matriz de muestras de residuo) para el bloque actual basándose en información acerca del residuo. El aparato de descodificación puede generar una muestra reconstruida basándose en la muestra de predicción y la muestra de residuo, y derivar un bloque reconstruido o una imagen reconstruida basándose en la muestra reconstruida. Después de esto, como se ha descrito anteriormente, el aparato de descodificación puede aplicar un procedimiento de filtrado en bucle, tal como un procedimiento de SAO y/o un filtrado de desbloqueo a la imagen reconstruida para mejorar la calidad de vídeo subjetiva/objetiva según sea necesario.
La figura 27 representa esquemáticamente un aparato de descodificación que realiza un método de descodificación de imágenes de acuerdo con el documento. El método divulgado en la figura 26 puede ser realizado por el aparato de descodificación divulgado en la figura 27. Específicamente, por ejemplo, un descodificador por entropía del aparato de descodificación de la figura 27 puede realizar S2600 de la figura 26; un predictor del aparato de descodificación de la figura 27, S2610 a S2650 de la figura 26; y un sumador del aparato de descodificación de la figura 27, S2660 de la figura 26. Además, aunque no se muestra, el proceso de obtener información de imagen que incluye información acerca de un residuo del bloque actual a través de un flujo de bits puede ser realizado por el descodificador por entropía del aparato de descodificación de la figura 27, y el proceso de derivar la muestra de residuo para el bloque actual basándose en la información de residuo puede ser realizado por el transformador inverso del aparato de descodificación de la figura 27.
De acuerdo con el presente documento descrito anteriormente, es posible aumentar la eficiencia de la codificación de imágenes basándose en la predicción de movimiento afín.
Además, de acuerdo con el presente documento, al derivar la lista de candidatos de MVP afines, solo cuando todos los vectores de movimiento candidatos para los CP del candidato de MVP afín construido están disponibles, puede añadirse el candidato de MVP afín construido, a través de lo cual es posible reducir la complejidad del proceso de derivar el candidato de MVP afín construido y el proceso de configurar la lista de candidatos de MVP afines, y para la eficiencia de codificación.
Además, de acuerdo con el presente documento, al derivar la lista de candidatos de MVP afines, el candidato de MVP afín adicional puede derivarse basándose en el vector de movimiento candidato para el CP derivado en el proceso de derivar el candidato de MVP afín construido, a través de lo cual es posible reducir la complejidad del proceso de configurar la lista de candidatos de MVP afines, y mejorar la eficiencia de codificación.
Además, de acuerdo con el presente documento, en el proceso de derivar el candidato de MVP afín heredado, solo cuando el bloque vecino superior se incluye en la CTU actual, el candidato de MVP afín heredado puede derivarse usando el bloque vecino superior, a través de lo cual es posible reducir la cantidad de almacenamiento de la memoria intermedia de líneas para una predicción afín, y minimizar los costes de hardware.
Además, las realizaciones descritas en el presente documento pueden materializarse y realizarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades de función mostradas en cada dibujo pueden materializarse y ejecutarse en un procesador, un microprocesador, un controlador o un chip. En este caso, la información o el algoritmo para materializar (por ejemplo, una información acerca de una instrucción) puede almacenarse en un medio de almacenamiento digital.
Además, el aparato de descodificación y el aparato de codificación a los que se aplica el presente documento pueden incluirse en un transceptor de radiodifusión multimedios, 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 tipo tableta, una grabadora de vídeo digital (DVR) y similares.
Además, el método de procesamiento al que se aplica el presente documento puede producirse en forma de programa ejecutado por un ordenador, y puede almacenarse en un medio de registro legible por ordenador. Los datos multimedios que tienen una estructura de datos de acuerdo con el presente documento también pueden almacenarse en el medio de registro legible por ordenador. El medio de registro 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 registro legible por ordenador puede incluir, por ejemplo, un disco Bluray (BD), un bus serie universal (USB), una ROM, una PROM, una EPROM, una EEPR<o>M, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo de almacenamiento de datos óptico. Además, el medio de registro legible por ordenador también incluye medios materializados en forma de onda portadora (por ejemplo, transmisión a través de Internet). Además, el flujo de bits generado por el método de codificación puede almacenarse en un medio de registro legible por ordenador o transmitirse a través de una red de comunicación cableada o inalámbrica.
Adicionalmente, la realización del presente documento puede materializarse como un producto de programa informático mediante códigos de programa, y los códigos de programa pueden realizarse en un ordenador mediante la realización del presente documento. Los códigos de programa pueden almacenarse en un soporte legible por ordenador.
La figura 28 representa un ejemplo de un sistema de envío por flujo continuo de contenidos al que pueden aplicarse las realizaciones divulgadas en el presente documento.
Haciendo referencia a la figura 28, el sistema de envío por flujo continuo de contenido al que se aplica(n) la(s) realización(es) del presente documento puede incluir, a grandes rasgos, un servidor de codificación, un servidor de envío por flujo continuo, un servidor web, un almacenamiento de medios, un dispositivo de usuario y un dispositivo de entrada multimedios.
El servidor de codificación comprime contenidos introducidos desde dispositivos de entrada multimedios, tales como un teléfono inteligente, una cámara o una videocámara en datos digitales para generar un flujo de bits y transmitir el flujo de bits al servidor de envío por flujo continuo. Como otro ejemplo, cuando los dispositivos de entrada multimedios tales como teléfonos inteligentes, cámaras, videocámaras, etc., generan directamente un flujo de bits, puede omitirse 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 flujos de bits al que se aplica(n) la(s) realización(es) del presente documento, y el servidor de envío por flujo continuo puede almacenar de forma temporal el flujo de bits en el proceso de transmitir o recibir el flujo de bits.
El servidor de envío por flujo continuo transmite los datos multimedios al dispositivo de usuario basándose en la solicitud de un usuario a través del servidor web, y el servidor web sirve como un medio para informar al usuario acerca de un servicio. Cuando el usuario solicita un servicio deseado del servidor web, el servidor web lo entrega a un servidor de envío por flujo continuo, y el servidor de envío por flujo continuo transmite datos multimedios al usuario. En este caso, el sistema de envío por flujo continuo de contenido puede incluir un servidor de control separado. En este caso, el servidor de control sirve para controlar una orden/respuesta entre dispositivos en el sistema de envío por flujo continuo de contenido.
El servidor de envío por flujo continuo puede recibir contenido desde un servidor de codificación y/o almacenamiento de medios. Por ejemplo, cuando el contenido se recibe desde el servidor de codificación, el contenido puede recibirse en tiempo real. En este caso, para proporcionar un servicio de envío por flujo continuo fluido, el servidor de envío de flujo continuo puede almacenar el flujo de bits durante un tiempo predeterminado.
Los ejemplos del dispositivo de usuario pueden incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de radiodifusión digital, un asistente digital personal (PDA), un reproductor multimedios portátil (PMP), navegación, un PC de tipo pizarra, unos PC de tipo tableta, ultraportátiles, dispositivos ponibles (por ejemplo, relojes inteligentes, gafas inteligentes, visualizadores montados en la cabeza), TV digitales, ordenadores de escritorio, señalización digital y similares. Cada servidor en el sistema de envío por flujo continuo de contenido puede hacerse funcionar como un servidor distribuido, en cuyo caso pueden distribuirse datos recibidos desde cada servidor.
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 (9)

REIVINDICACIONES
1. Un método de descodificación de imágenes, por un aparato de descodificación, que comprende:
obtener (S2600) información de predicción de movimiento para un bloque actual a partir de un flujo de bits; configurar (S2610) una lista de candidatos de predictor de vector de movimiento, MVP, afín para el bloque actual; derivar (S2620) 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<m>V<p>afines;
derivar (S2630) diferencias de vector de movimiento de punto de control, CPMVD, para unos CP del bloque actual basándose en la información de predicción de movimiento;
derivar (S2640) vectores de movimiento de punto de control, CPMV, para unos CP del bloque actual basándose en los CPMVP y las CPMVD;
derivar (S2650) muestras de predicción para el bloque actual basándose en los CPMV; y
generar (S2660) una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas,
caracterizado por que
la acción de configurar la lista de candidatos de MVP afines comprende:
derivar un candidato de MVP afín heredado disponible como un candidato de MVP afín en la lista de candidatos de MVP afines comprobando si un candidato de MVP afín heredado está disponible,
en donde la acción de comprobar si el candidato de MVP afín heredado está disponible comprende:
comprobar si un primer candidato de MVP afín heredado está disponible, en donde el primer candidato de MVP afín está disponible basándose en que un primer bloque en un grupo de bloques izquierdo se codifique con un modelo de movimiento afín y que un índice de imagen de referencia del primer bloque sea el mismo que un índice de imagen de referencia del bloque actual; y
comprobar si un segundo candidato de MVP afín heredado está disponible, en donde el segundo candidato de MVP afín está disponible basándose en que un segundo bloque en un grupo de bloques superior se codifique con el modelo de movimiento afín y que un índice de imagen de referencia del segundo bloque sea el mismo que un índice de imagen de referencia del bloque actual,
en donde el grupo de bloques izquierdo incluye un bloque vecino de esquina inferior izquierda del bloque actual, y un primer bloque vecino izquierdo adyacente a un lado superior del bloque vecino de esquina inferior izquierda, y
el grupo de bloques superior incluye un bloque vecino de esquina superior derecha del bloque actual, un primer bloque vecino superior adyacente a un lado izquierdo del bloque vecino de esquina superior derecha, y un bloque vecino de esquina superior izquierda del bloque actual;
derivar un candidato de MVP afín construido disponible como el candidato de MVP afín en la lista de candidatos de MVP afines comprobando si un candidato de MVP afín construido está disponible, basándose en que el número de candidatos de MVP afines heredados disponibles en la lista de candidatos de MVP afines sea menor que 2,
en donde la acción de comprobar si el candidato de MVP afín construido está disponible comprende:
comprobar si un primer vector de movimiento para CP0 del bloque actual está disponible; comprobar si un segundo vector de movimiento para CP1 del bloque actual está disponible; comprobar si un tercer vector de movimiento para CP2 del bloque actual está disponible; y derivar una combinación del primer vector de movimiento, el segundo vector de movimiento y el tercer vector de movimiento como el candidato de MVP afín construido, basándose en que la totalidad del primer vector de movimiento, y el segundo vector de movimiento y el tercer vector de movimiento estén disponibles,
en donde el primer vector de movimiento es un vector de movimiento de un primer bloque que tiene la misma imagen de referencia que la imagen de referencia del bloque actual de entre bloques vecinos en un grupo de bloques superior izquierdo del bloque actual, el segundo vector de movimiento es un vector de movimiento de un primer bloque que tiene la misma imagen de referencia que la imagen de referencia del bloque actual de entre bloques vecinos en un grupo de bloques superior derecho del bloque actual, y el tercer vector de movimiento es un vector de movimiento de un primer bloque que tiene la misma imagen de referencia que la imagen de referencia del bloque actual de entre bloques vecinos en el grupo de bloques izquierdo del bloque actual,
en donde el grupo de bloques superior izquierdo incluye un bloque vecino de esquina superior izquierda del bloque actual, un segundo bloque vecino izquierdo adyacente a un lado inferior del bloque vecino de esquina superior izquierda y un segundo bloque vecino superior adyacente a un lado derecho del bloque vecino de esquina superior izquierda, y el grupo de bloques superior derecho incluye el bloque vecino de esquina superior derecha y el primer bloque vecino superior; y
derivar al menos uno de un primer candidato de MVP afín, un segundo candidato de MVP afín o un tercer candidato de MVP afín como el candidato de MVP afín en la lista de candidatos de MVP afines, basándose en que el número de los candidatos de MVP afines heredados disponibles y los candidatos de MVP afines construidos disponibles sea menor que 2, en donde el primer candidato de MVP afín incluye un vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP basándose en que el primer vector de movimiento esté disponible, en donde el segundo candidato de MVP afín incluye un vector de movimiento para el CP1 como vectores de movimiento candidatos para los CP basándose en que el segundo vector de movimiento esté disponible, en donde el tercer candidato de MVP afín incluye el tercer vector de movimiento como vectores de movimiento candidatos para los CP basándose en que el tercer vector de movimiento esté disponible.
2. El método de descodificación de imágenes de la reivindicación 1, en donde la acción de configurar la lista de candidatos de MVP afines comprende:
derivar un candidato de MVP afín que incluye un MVP temporal como vectores de movimiento candidatos para los CP basándose en que el número de candidatos de MVP afines derivados sea menor que 2 y el MVP temporal derivado basándose en que un bloque vecino temporal del bloque actual esté disponible, y
derivar un candidato de MVP afín que incluye un vector de movimiento cero como vectores de movimiento candidatos para los CP basándose en que el número de candidatos de MVP afines derivados sea menor que 2.
3. El método de descodificación de imágenes de la reivindicación 1, en donde un vector de movimiento candidato para el CP0 está disponible basándose en que una imagen de referencia de un primer bloque en el grupo de bloques superior izquierdo sea la misma que una imagen de referencia del bloque actual,
un vector de movimiento candidato para el CP1 está disponible siendo que una imagen de referencia de un segundo bloque en el grupo de bloques superior derecho sea la misma que una imagen de referencia del bloque actual,
un vector de movimiento candidato para el CP2 está disponible basándose en que una imagen de referencia de un tercer bloque en el grupo de bloques izquierdo sea la misma que una imagen de referencia del bloque actual, y la lista de candidatos de MVP afines incluye el candidato de MVP afín basándose en que el vector de movimiento candidato para el CP0 esté disponible, que el vector de movimiento candidato para el CP1 esté disponible, y que el vector de movimiento candidato para el CP2 esté disponible.
4. El método de descodificación de imágenes de la reivindicación 3, en donde el grupo de bloques superior izquierdo incluye un bloque vecino A, un bloque vecino B y un bloque vecino C,
el grupo de bloques superior derecho incluye un bloque vecino D y un bloque vecino E,
el grupo de bloques izquierdo incluye un bloque vecino F y un bloque vecino G, y
en donde el bloque vecino A es un bloque que incluye una muestra en las coordenadas (-1, -1), el bloque vecino B es un bloque que incluye una muestra en las coordenadas (0, -1), el bloque vecino C es un bloque que incluye una muestra en las coordenadas (-1, 0), el bloque vecino D es un bloque que incluye una muestra en las coordenadas ( W - 1, -1), el bloque vecino E es un bloque que incluye una muestra en las coordenadas (W, -1), el bloque vecino F es un bloque que incluye una muestra en las coordenadas (-1, H -1), y el bloque vecino G es un bloque que incluye una muestra en las coordenadas (-1, H) basándose en que un tamaño del bloque actual sea W x H, y siendo 0 una componente x de una posición de muestra superior izquierda del bloque actual y siendo 0 una componente y de la misma.
5. El método de descodificación de imágenes de la reivindicación 4, en donde el primer bloque es un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el grupo de bloques superior izquierdo en un primer orden predeterminado, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual,
el segundo bloque es un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el grupo de bloques superior derecho en un segundo orden predeterminado, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual, y
el tercer bloque es un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el grupo de bloques izquierdo en un tercer orden predeterminado, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual.
6. El método de descodificación de imágenes de la reivindicación 5, en donde el primer orden predeterminado es un orden desde el bloque vecino A al bloque vecino B y, entonces, al bloque vecino C,
el segundo orden predeterminado es un orden desde el bloque vecino D al bloque vecino E, y
el tercer orden predeterminado es un orden desde el bloque vecino F al bloque vecino G.
7. Un método de codificación de imágenes, por un aparato de codificación, que comprende:
configurar (S2400) una lista de candidatos de predictor de vector de movimiento, MVP, afín para un bloque actual; derivar (S2410) 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;
derivar (S2420) unos CPMV para los CP del bloque actual;
derivar (S2430) diferencias de vector de movimiento de punto de control, CPMVD, para unos CP del bloque actual basándose en los CPMVP y los CPMV; y
codificar (S2440) información de predicción de movimiento que incluye información acerca de las CPMVD, caracterizado por que
la acción de configurar la lista de candidatos de MVP afines comprende:
derivar un candidato de MVP afín heredado disponible como un candidato de MVP afín en la lista de candidatos de MVP afines comprobando si un candidato de MVP afín heredado está disponible,
en donde la acción de comprobar si el candidato de MVP afín heredado está disponible comprende:
comprobar si un primer candidato de MVP afín heredado está disponible, en donde el primer candidato de MVP afín está disponible basándose en que un primer bloque en un grupo de bloques izquierdo se codifique con un modelo de movimiento afín y que un índice de imagen de referencia del primer bloque sea el mismo que un índice de imagen de referencia del bloque actual; y
comprobar si un segundo candidato de MVP afín heredado está disponible, en donde el segundo candidato de MVP afín está disponible basándose en que un segundo bloque en un grupo de bloques superior se codifique con el modelo de movimiento afín y que un índice de imagen de referencia del segundo bloque sea el mismo que un índice de imagen de referencia del bloque actual,
en donde el grupo de bloques izquierdo incluye un bloque vecino de esquina inferior izquierda del bloque actual, y un primer bloque vecino izquierdo adyacente a un lado superior del bloque vecino de esquina inferior izquierda, y
el grupo de bloques superior incluye un bloque vecino de esquina superior derecha del bloque actual, un primer bloque vecino superior adyacente a un lado izquierdo del bloque vecino de esquina superior derecha, y un bloque vecino de esquina superior izquierda del bloque actual;
derivar un candidato de MVP afín construido disponible como el candidato de MVP afín en la lista de candidatos de MVP afines comprobando si un candidato de MVP afín construido está disponible, basándose en que el número de candidatos de MVP afines heredados disponibles en la lista de candidatos de MVP afines sea menor que 2,
en donde la acción de comprobar si el candidato de MVP afín construido está disponible comprende:
comprobar si un primer vector de movimiento para CP0 del bloque actual está disponible; comprobar si un segundo vector de movimiento para CP1 del bloque actual está disponible; comprobar si un tercer vector de movimiento para CP2 del bloque actual está disponible; y derivar una combinación del primer vector de movimiento, el segundo vector de movimiento y el tercer vector de movimiento como el candidato de MVP afín construido, basándose en que la totalidad del primer vector de movimiento, y el segundo vector de movimiento y el tercer vector de movimiento estén disponibles,
en donde el primer vector de movimiento es un vector de movimiento de un primer bloque que tiene la misma imagen de referencia que la imagen de referencia del bloque actual de entre bloques vecinos en un grupo de bloques superior izquierdo del bloque actual, el segundo vector de movimiento es un vector de movimiento de un primer bloque que tiene la misma imagen de referencia que la imagen de referencia del bloque actual de entre bloques vecinos en un grupo de bloques superior derecho del bloque actual, y el tercer vector de movimiento es un vector de movimiento de un primer bloque que tiene la misma imagen de referencia que la imagen de referencia del bloque actual de entre bloques vecinos en el grupo de bloques izquierdo del bloque actual,
en donde el grupo de bloques superior izquierdo incluye un bloque vecino de esquina superior izquierda del bloque actual, un segundo bloque vecino izquierdo adyacente a un lado inferior del bloque vecino de esquina superior izquierda y un segundo bloque vecino superior adyacente a un lado derecho del bloque vecino de esquina superior izquierda, y el grupo de bloques superior derecho incluye el bloque vecino de esquina superior derecha y el primer bloque vecino superior; y
derivar al menos uno de un primer candidato de MVP afín, un segundo candidato de MVP afín o un tercer candidato de MVP afín como el candidato de MVP afín en la lista de candidatos de MVP afines, basándose en que el número de los candidatos de MVP afines heredados disponibles y los candidatos de MVP afines construidos disponibles sea menor que 2, en donde el primer candidato de MVP afín incluye un vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP basándose en que el primer vector de movimiento esté disponible, en donde el segundo candidato de MVP afín incluye un vector de movimiento para el CP1 como vectores de movimiento candidatos para los CP basándose en que el segundo vector de movimiento esté disponible, en donde el tercer candidato de MVP afín incluye el tercer vector de movimiento como vectores de movimiento candidatos para los CP basándose en que el tercer vector de movimiento esté disponible.
8. El método de codificación de imágenes de la reivindicación 7, en donde un vector de movimiento candidato para el CP0 está disponible basándose en que una imagen de referencia de un primer bloque en el grupo de bloques superior izquierdo sea la misma que una imagen de referencia del bloque actual,
un vector de movimiento candidato para el CP1 está disponible basándose en que una imagen de referencia de un segundo bloque en el grupo de bloques superior derecho sea la misma que una imagen de referencia del bloque actual,
un vector de movimiento candidato para el CP2 está disponible basándose en que una imagen de referencia de un tercer bloque en el grupo de bloques izquierdo sea la misma que una imagen de referencia del bloque actual, y la lista de candidatos de MVP afines incluye el candidato de MVP afín basándose en que el vector de movimiento candidato para el CP0 esté disponible, que el vector de movimiento candidato para el CP1 esté disponible y que el vector de movimiento candidato para el CP2 esté disponible.
9. El método de codificación de imágenes de la reivindicación 8, en donde el primer bloque es un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el grupo de bloques superior izquierdo en un primer orden predeterminado, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual,
el segundo bloque es un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el grupo de bloques superior derecho en un segundo orden predeterminado, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual, y
el tercer bloque es un bloque en el que se ha confirmado en primer lugar, mientras se comprueban los bloques vecinos en el grupo de bloques izquierdo en un tercer orden predeterminado, que una imagen de referencia del mismo es la misma que una imagen de referencia del bloque actual.
ES19859588T 2018-09-12 2019-09-11 Método de descodificación y codificación de imágenes por un aparato basándose en una predicción de movimiento en una unidad de subbloque en un sistema de codificación de imágenes Active ES2970207T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862730528P 2018-09-12 2018-09-12
PCT/KR2019/011827 WO2020055161A1 (ko) 2018-09-12 2019-09-11 영상 코딩 시스템에서 서브 블록 단위의 움직임 예측에 기반한 영상 디코딩 방법 및 장치

Publications (1)

Publication Number Publication Date
ES2970207T3 true ES2970207T3 (es) 2024-05-27

Family

ID=69777957

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19859588T Active ES2970207T3 (es) 2018-09-12 2019-09-11 Método de descodificación y codificación de imágenes por un aparato basándose en una predicción de movimiento en una unidad de subbloque en un sistema de codificación de imágenes

Country Status (12)

Country Link
US (5) US10904561B2 (es)
EP (2) EP4262212A3 (es)
JP (3) JP7157152B2 (es)
KR (4) KR102362840B1 (es)
CN (5) CN117560487A (es)
ES (1) ES2970207T3 (es)
FI (1) FI3681161T3 (es)
HR (1) HRP20240145T1 (es)
HU (1) HUE065050T2 (es)
PL (1) PL3681161T3 (es)
SI (1) SI3681161T1 (es)
WO (1) WO2020055161A1 (es)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102408695B1 (ko) 2018-09-10 2022-06-14 엘지전자 주식회사 영상 코딩 시스템에서 어파인 mvp 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
JP7247345B2 (ja) * 2018-12-13 2023-03-28 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド ビデオ復号化方法、ビデオ復号化装置、及びプログラム
CN113170179A (zh) * 2018-12-21 2021-07-23 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
US11394993B2 (en) * 2019-03-13 2022-07-19 Tencent America LLC Method and apparatus for affine inter prediction with small subblocks
CN111989925B (zh) * 2019-03-22 2024-04-26 罗斯德尔动力有限责任公司 基于dmvr和bdof的帧间预测方法及其设备
US11223840B2 (en) * 2019-08-19 2022-01-11 Tencent America LLC Method and apparatus for video coding
JP7367237B2 (ja) * 2020-06-24 2023-10-23 ベイジン ダジア インターネット インフォメーション テクノロジー カンパニー リミテッド ビデオ符号化用の予測依存残差スケーリングのための方法およびデバイス

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN109005407B (zh) * 2015-05-15 2023-09-01 华为技术有限公司 视频图像编码和解码的方法、编码设备和解码设备
EP3334157B1 (en) * 2015-08-04 2020-09-02 LG Electronics Inc. Inter prediction method and device in video coding system
US10575011B2 (en) * 2015-09-24 2020-02-25 Lg Electronics Inc. Inter prediction method and apparatus in image coding system
GB2561507B (en) 2016-01-07 2021-12-22 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
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
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
TWI700922B (zh) * 2018-04-02 2020-08-01 聯發科技股份有限公司 用於視訊編解碼系統中的子塊運動補償的視訊處理方法和裝置

Also Published As

Publication number Publication date
EP3681161A4 (en) 2020-09-23
HRP20240145T1 (hr) 2024-04-12
JP7157152B2 (ja) 2022-10-19
KR102362840B1 (ko) 2022-02-14
PL3681161T3 (pl) 2024-05-06
US20200236391A1 (en) 2020-07-23
JP2022173582A (ja) 2022-11-18
KR20200038541A (ko) 2020-04-13
EP3681161A1 (en) 2020-07-15
CN111247805B (zh) 2023-12-01
CN111247805A (zh) 2020-06-05
CN117560487A (zh) 2024-02-13
US20240121427A1 (en) 2024-04-11
FI3681161T3 (fi) 2024-01-18
JP7404481B2 (ja) 2023-12-25
EP4262212A3 (en) 2023-11-22
KR102467326B1 (ko) 2022-11-16
CN117528112A (zh) 2024-02-06
EP4262212A2 (en) 2023-10-18
US11889106B2 (en) 2024-01-30
US11228783B2 (en) 2022-01-18
US11616975B2 (en) 2023-03-28
JP2024019527A (ja) 2024-02-09
KR20230124766A (ko) 2023-08-25
CN117528113A (zh) 2024-02-06
US20210144399A1 (en) 2021-05-13
KR102568878B1 (ko) 2023-08-21
US20230199214A1 (en) 2023-06-22
US10904561B2 (en) 2021-01-26
EP3681161B1 (en) 2023-11-01
CN117528114A (zh) 2024-02-06
KR20220154259A (ko) 2022-11-21
HUE065050T2 (hu) 2024-04-28
KR20220025164A (ko) 2022-03-03
WO2020055161A1 (ko) 2020-03-19
US20220094971A1 (en) 2022-03-24
JP2021502729A (ja) 2021-01-28
SI3681161T1 (sl) 2024-03-29

Similar Documents

Publication Publication Date Title
ES2970207T3 (es) Método de descodificación y codificación de imágenes por un aparato basándose en una predicción de movimiento en una unidad de subbloque en un sistema de codificación de imágenes
ES2926196T3 (es) Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines
JP7432035B2 (ja) 予測サンプルを生成するための加重値インデックス情報を導出する映像デコーディング方法、及びその装置
KR102622468B1 (ko) 인터 예측 기반 영상 코딩 방법 및 장치
JP2023145702A (ja) 双予測(bi-prediction)が適用される場合、加重平均のための加重値インデックス情報を導出する画像デコード方法及びその装置
JP2023154003A (ja) 双予測(bi-prediction)のための加重値インデックス情報を導出する画像デコード方法及びその装置
US20240121382A1 (en) Video or image coding for inducing weight index information for bi-prediction
JP2024019432A (ja) 決定された予測モードを適用して予測サンプルを生成する映像デコーディング方法及びその装置
KR20210150585A (ko) 비디오/영상 코딩 시스템에서 신택스 시그널링 방법 및 장치
US20220124312A1 (en) Image decoding method for deriving predicted sample by using merge candidate and device therefor
KR20220003117A (ko) 영상 디코딩 방법 및 그 장치
RU2812840C2 (ru) Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания
KR102622467B1 (ko) 움직임 벡터를 이용한 영상 코딩 방법 및 장치