ES2926196T3 - Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines - Google Patents

Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines Download PDF

Info

Publication number
ES2926196T3
ES2926196T3 ES19859025T ES19859025T ES2926196T3 ES 2926196 T3 ES2926196 T3 ES 2926196T3 ES 19859025 T ES19859025 T ES 19859025T ES 19859025 T ES19859025 T ES 19859025T ES 2926196 T3 ES2926196 T3 ES 2926196T3
Authority
ES
Spain
Prior art keywords
block
motion vector
candidate
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
ES19859025T
Other languages
English (en)
Inventor
Jaeho Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Application granted granted Critical
Publication of ES2926196T3 publication Critical patent/ES2926196T3/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/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/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes

Landscapes

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

Abstract

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

Description

DESCRIPCIÓN
Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines
Antecedentes de la divulgación
Campo de la divulgación
La presente divulgación se refiere a una técnica de codificación de vídeo y, más particularmente, a un método de decodificación de vídeo, un método de codificación correspondiente y un flujo de bits generado, almacenado en un medio, basado en la predicción de movimiento afín en un sistema de codificación de vídeo.
Técnica relacionada
La demanda de imágenes de alta resolución y alta calidad, tales como imágenes HD (alta definición) e imágenes UHD (ultraalta definición) ha aumentado en varios campos. Como los datos de imagen tienen alta resolución y alta calidad, la cantidad de información o bits que se transmitirán aumenta en relación con los datos de imagen heredados. Por lo tanto, cuando los datos de imagen se transmiten usando un medio tal como una línea de banda ancha alámbrica/inalámbrica convencional o los datos de imagen se almacenan usando un medio de almacenamiento existente, el coste de la transmisión y el coste de almacenamiento de los mismos aumentan.
Por consiguiente, existe una necesidad de una técnica de compresión de imagen altamente eficiente para transmitir, almacenar y reproducir de forma efectiva información de imágenes de alta resolución y alta calidad.
HAN(QUALCOMM) Y ET AL en "CE4.1.3: Affine motion compensation prediction" publicado como la contribución n.° m43274 de 123. REUNIÓN DE MPEG; LIUBLIANA; (GRUPO DE EXPERTOS EN IMÁGENES EN MOVIMIENTO O ISO/IEC JTC1/SC29/WG11) el 3 de julio de 2018 (03-07-2018), XP030195897, divulga una generación de lista de candidatos de predicción de vector de movimiento para predicción de compensación de movimiento afín en compresión de vídeo.
La invención protegida se define respectivamente en las reivindicaciones independientes adjuntas 1, 6 y 8, definiéndose realizaciones preferidas adicionales en las reivindicaciones dependientes. Se proporciona una divulgación habilitante para la invención protegida con las realizaciones descritas en relación con las Figuras 21 y 23. Los demás aspectos, objetivos o realizaciones de la divulgación se proporcionan con fines ilustrativos y no forman parte de la invención protegida a menos que se divulguen en combinación con todas las características técnicas definidas en una cualquiera de dichas reivindicaciones independientes.
Otro objetivo técnico de la presente divulgación es proporcionar un método de decodificación de vídeo y un aparato que construye una lista de candidatos de MVP afines de un bloque actual derivando candidatos de MVP afines construidos basados en bloques vecinos solo cuando todos los vectores de movimiento candidatos para CP están disponibles y realizar la predicción del bloque actual basándose en la lista de candidatos de MVP afines construida.
Otro objetivo técnico más de la presente divulgación es proporcionar un método de decodificación de vídeo y un aparato que derivan un candidato de MVP afín mediante el uso de un vector de movimiento candidato derivado del proceso para derivar un candidato de MVP 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 decir, el número de candidatos de la lista de candidatos de MVP es menor que el número máximo; y realizar la predicción del bloque actual basándose en la lista de candidatos de MVP afines construida.
De acuerdo con una realización de la presente divulgación, se proporciona un método de decodificación de vídeo realizado por un aparato de decodificación. El método comprende obtener información de predicción de movimiento para un bloque actual a partir de un flujo de bits; construir una lista de candidatos de predictor de vector de movimiento (MVP) afines para el bloque actual; derivar 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 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; derivar vectores de movimiento de punto de control (CPMV) para los CP del bloque actual basándose en los CPMVP y las CPMVD; derivar muestras de predicción para el bloque actual basándose en los CPMV; y generar una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas, en donde la construcción de la lista de candidatos de MVP afines comprende comprobar si está disponible un candidato de MVP afín heredado del bloque actual, en donde se deriva el candidato de MVP afín heredado cuando el candidato MVP afín heredado está disponible; comprobar si un candidato de MVP afín construido del bloque actual está disponible, en donde el candidato de MVP afín construido se deriva cuando el candidato de MVP afín construido está disponible, y el candidato de MVP afín construido incluye un vector de movimiento candidato para CP0 del bloque actual, un vector de movimiento candidato para CP1 del bloque actual y un vector de movimiento candidato para CP2 del bloque actual; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para c P0 está disponible, derivar un primer candidato de MVP afín, en donde el primer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP1 está disponible, derivar un segundo candidato de MVP afín, en donde el segundo candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP1 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP2 está disponible, derivar un tercer candidato de MVP afín, en donde el tercer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP2 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2, derivar un cuarto candidato de MVP afín que incluye un MVP temporal derivado basándose en un bloque vecino temporal del bloque actual como vectores de movimiento candidatos para los CP; y cuando el número de candidatos de m Vp afines derivados es menor que 2, derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como vectores de movimiento candidatos para los CP.
De acuerdo con otra realización de la presente divulgación, se proporciona un aparato de decodificación que realiza la codificación de vídeo. El aparato de decodificación comprende un decodificador por entropía que obtiene información de predicción de movimiento para un bloque actual; un predictor que construye una lista de candidatos de predictor de vector de movimiento (MVP) afines para el bloque actual, derivando 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, derivando 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, derivando vectores de movimiento de punto de control (CPMV) para los CP del bloque actual basándose en las CPMVD, derivando muestras de predicción para el bloque actual basándose en los CPMV; y un sumador que genera una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas, en donde la lista de candidatos de MVP afines se construye basándose en la comprobación de si está disponible un candidato de MVP afín heredado del bloque actual, en donde se deriva el candidato de MVP afín heredado cuando el candidato de MVP afín heredado está disponible; comprobar si un candidato de MVP afín construido del bloque actual está disponible, en donde el candidato de MVP afín construido se deriva cuando el candidato de MVP afín construido está disponible, y el candidato de MVP afín construido incluye un vector de movimiento candidato para CP0 del bloque actual, un vector de movimiento candidato para CP1 del bloque actual y un vector de movimiento candidato para CP2 del bloque actual; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP0 está disponible, derivar un primer candidato de MVP afín, en donde el primer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP1 está disponible, derivar un segundo candidato de MVP afín, en donde el segundo candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP1 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP2 está disponible, derivar un tercer candidato de MVP afín, en donde el tercer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP2 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2, derivar un cuarto candidato de MVP afín que incluye un MVP temporal derivado basándose en un bloque vecino temporal del bloque actual como vectores de movimiento candidatos para los CP; y cuando el número de candidatos de MVP afines derivados es menor que 2, derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como vectores de movimiento candidatos para los CP.
De acuerdo con otra realización más de la presente divulgación, se proporciona un método de codificación de vídeo realizado por un aparato de codificación. El método comprende construir una lista de candidatos de predictor de vector de movimiento (MVP) afines para un bloque actual; derivar 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 los CPMV para los CP del bloque actual; derivar diferencias de vector de movimiento de punto de control (CPMVD) para los CP del bloque actual basándose en los CPMVP y los CPMV; y codificar información de predicción de movimiento que incluye información sobre las CPMVD, en donde la construcción de la lista de candidatos de MVP afines comprende comprobar si está disponible un candidato de MVP afín heredado del bloque actual, en donde se deriva el candidato de MVP afín heredado cuando el candidato MVP afín heredado está disponible; comprobar si un candidato de MVP afín construido del bloque actual está disponible, en donde el candidato de MVP afín construido se deriva cuando el candidato de MVP afín construido está disponible, y el candidato de MVP afín construido incluye un vector de movimiento candidato para CP0 del bloque actual, un vector de movimiento candidato para CP1 del bloque actual y un vector de movimiento candidato para CP2 del bloque actual; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP0 está disponible, derivar un primer candidato de MVP afín, en donde el primer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP1 está disponible, derivar un segundo candidato de MVP afín, en donde el segundo candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP1 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP2 está disponible, derivar un tercer candidato de MVP afín, en donde el tercer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP2 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2, derivar un cuarto candidato de MVP afín que incluye un MVP temporal derivado basándose en un bloque vecino temporal del bloque actual como vectores de movimiento candidatos para los CP; y cuando el número de candidatos de MVP afines derivados es menor que 2, derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como vectores de movimiento candidatos para los CP.
De acuerdo con otra realización más de la presente divulgación, se proporciona un aparato de codificación de vídeo. El aparato de codificación comprende un predictor que construye una lista de candidatos de predictor de vector de movimiento (MVP) afines para un bloque actual, derivando predictores de vector de movimiento de punto de control (CPMVP) para los puntos de control (CP) del bloque actual y derivando los CPMV para los CP del bloque actual; un restador que 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; y un codificador por entropía que codifica información de predicción de movimiento que incluye información sobre las CPMVD, en donde la lista de candidatos de MVP afines se construye basándose en la comprobación de si está disponible un candidato de MVP afín heredado del bloque actual, en donde se deriva el candidato de MVP afín heredado cuando el candidato de MVP afín heredado está disponible; comprobar si un candidato de MVP afín construido del bloque actual está disponible, en donde el candidato de MVP afín construido se deriva cuando el candidato de MVP afín construido está disponible, y el candidato de MVP afín construido incluye un vector de movimiento candidato para CP0 del bloque actual, un vector de movimiento candidato para CP1 del bloque actual y un vector de movimiento candidato para CP2 del bloque actual; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP0 está disponible, derivar un primer candidato de MVP afín, en donde el primer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP0 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP1 está disponible, derivar un segundo candidato de MVP afín, en donde el segundo candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP 1 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2 y el vector de movimiento para CP2 está disponible, derivar un tercer candidato de MVP afín, en donde el tercer candidato de MVP afín es un candidato de MVP afín que incluye el vector de movimiento para el CP2 como vectores de movimiento candidatos para los CP; cuando el número de candidatos de MVP afines derivados es menor que 2, derivar un cuarto candidato de MVP afín que incluye un MVP temporal derivado basándose en un bloque vecino temporal del bloque actual como vectores de movimiento candidatos para los CP; y cuando el número de candidatos de MVP afines derivados es menor que 2, derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como vectores de movimiento candidatos para los CP.
De acuerdo con la presente divulgación, puede mejorarse la eficiencia global de compresión de imagen/vídeo.
De acuerdo con la presente divulgación, puede mejorarse la eficiencia de la codificación de vídeo basándose en la predicción de movimiento afín.
De acuerdo con la presente divulgación, al derivar una lista de candidatos de MVP afines, solo cuando todos los vectores de movimiento candidatos para los CP de un candidato de MVP afín construido están disponibles, se puede añadir el candidato de MVP afín construido, a través de lo cual puede reducirse la complejidad de derivar un candidato de MVP afín construido y la construcción de una lista de candidatos MVP afines y puede mejorarse la eficiencia de codificación.
De acuerdo con las realizaciones de la invención protegida, al derivar una lista de candidatos de MVP afines, se puede derivar un candidato de MVP afín adicional basándose en un vector de movimiento candidato para un CP derivado de un proceso para derivar un candidato de MVP afín construido, a través de lo cual puede reducirse la complejidad de la construcción de una lista de candidatos de MVP afines y puede mejorarse la eficiencia de codificación.
De acuerdo con la presente divulgación, al derivar un candidato de MVP afín heredado, solo cuando se incluye un bloque vecino superior en una CTU actual, el candidato de MVP afín heredado puede derivarse utilizando el bloque vecino superior, a través de lo cual puede reducirse la cantidad de almacenamiento de una memoria intermedia de línea para la predicción afín y puede minimizarse el coste del hardware.
Breve descripción de los dibujos
La Figura 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen al que se puede aplicar la presente divulgación.
La Figura 2 es un diagrama esquemático que ilustra una configuración de un aparato de codificación de vídeo/imagen al que se puede aplicar la o las realizaciones del presente documento.
La Figura 3 es un diagrama esquemático que ilustra una configuración de un aparato de decodificación de vídeo/imagen al que se puede aplicar la o las realizaciones del presente documento.
La Figura 4 ilustra un movimiento expresado a través de un modelo de movimiento afín.
La Figura 5 ilustra el modelo de movimiento afín en el que se utilizan vectores de movimiento para 3 puntos de control.
La Figura 6 ilustra un modelo de movimiento afín en el que se utilizan vectores de movimiento para 2 puntos de control.
La Figura 7 ilustra un método para derivar un vector de movimiento en una base de un subbloque basándose en el modelo de movimiento afín.
La Figura 8 es un diagrama de flujo que ilustra un método de predicción de movimiento afín de acuerdo con una realización de la presente divulgación.
La Figura 9 ilustra un método para derivar un predictor de vector de movimiento en un punto de control de acuerdo con una realización de la presente divulgación.
La Figura 10 ilustra un método para derivar un predictor de vector de movimiento en un punto de control de acuerdo con una realización de la presente divulgación.
La Figura 11 ilustra un ejemplo de predicción afín realizada cuando el bloque vecino A se selecciona como candidato de fusión afín.
La Figura 12 ilustra bloques vecinos para derivar el candidato afín heredado.
La Figura 13 ilustra candidatos espaciales para el candidato afín construido.
La Figura 14 ilustra un ejemplo de construcción de una lista de MVP afines.
La Figura 15 ilustra un ejemplo de derivación del candidato construido.
La Figura 16 ilustra un ejemplo de derivación del candidato construido.
La Figura 17 ilustra posiciones de bloques vecinos explorados para derivar candidatos afines heredados.
La Figura 18 ilustra un ejemplo de derivación del candidato construido cuando se aplica un modelo de movimiento afín de cuatro parámetros al bloque actual.
La Figura 19 ilustra un ejemplo de derivación del candidato construido cuando se aplica un modelo de movimiento afín de seis parámetros al bloque actual.
Las Figuras 20a a 20b ilustran una realización para derivar el candidato afín heredado.
La Figura 21 ilustra un método de codificación de vídeo realizado por un aparato de codificación de acuerdo con la presente divulgación.
La Figura 22 ilustra un aparato de codificación que realiza un método de codificación de vídeo de acuerdo con la presente divulgación.
La Figura 23 ilustra un método de decodificación de vídeo realizado por un aparato de decodificación de acuerdo con la presente divulgación.
La Figura 24 ilustra un aparato de decodificación que realiza un método de decodificación de vídeo de acuerdo con la presente divulgación.
La Figura 25 ilustra una estructura de sistema de envío por flujo continuo de contenido a la que se aplican realizaciones de la presente divulgación.
Descripción de realizaciones de ejemplo
La presente divulgación puede modificarse de diversas formas y en los dibujos se describirán e ilustrarán realizaciones específicas de la misma. Sin embargo, las realizaciones no pretenden limitar la divulgación. Los términos usados en la siguiente descripción se usan para describir solamente realizaciones específicas, pero no pretenden limitar la divulgación. Una expresión de un número singular incluye una expresión del número plural, siempre que se lea claramente de manera diferente. Los términos tales como "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos utilizados en la siguiente descripción y, por lo tanto, debe entenderse que no se excluye la posibilidad de existencia o adición de una o más características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos diferentes.
Por otra parte, los elementos de los dibujos descritos en la divulgación se dibujan independientemente con el propósito de conveniencia para la explicación de diferentes funciones específicas y no significa que los elementos estén incorporados por hardware o software independientes. Por ejemplo, dos o más elementos de los elementos pueden combinarse para formar un único elemento, o un elemento puede dividirse en varios elementos. Las realizaciones en las que los elementos se combinan y/o dividen pertenecen a la divulgación sin apartarse del concepto de la divulgación.
En lo sucesivo en el presente documento, se describirán con detalle realizaciones de la presente divulgación con referencia a los dibujos adjuntos. Además, se utilizan números de referencia similares para indicar elementos similares en todos los dibujos y se omitirán las mismas descripciones sobre los elementos similares.
La Figura 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen al que se puede aplicar la presente divulgación.
Con referencia a la Figura 1, un sistema de codificación de vídeo/imagen 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 un archivo o de 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 de recepción puede incluir un receptor, un aparato de decodificación y un representador. El aparato de codificación puede denominarse aparato de codificación de vídeo/imagen, y el aparato de decodificación puede denominarse aparato de decodificación de vídeo/imagen. El transmisor puede estar incluido en el aparato de codificación. El receptor puede estar incluido en el aparato de decodificación. El representador puede incluir una pantalla, y la pantalla puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede adquirir vídeo/imagen a través de un proceso de captura, síntesis o generación del 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 y similares. El dispositivo de generación de vídeo/imagen puede incluir, por ejemplo, ordenadores, tabletas y teléfonos inteligentes, y puede (electrónicamente) generar vídeo/imágenes. Por ejemplo, se puede generar una imagen/vídeo virtual a través de un ordenador o similar. En este caso, el proceso de captura de vídeo/imagen puede remplazase por un proceso de generación de datos relacionados.
El aparato de codificación puede codificar vídeo/imagen de entrada. El aparato de codificación puede realizar una serie de procedimientos tales como predicción, transformación 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 un flujo de bits.
El transmisor puede transmitir la imagen codificada/información de imagen o la salida de datos en forma de flujo de bits al receptor del dispositivo de recepción 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 difusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de decodificación.
El aparato de decodificación puede decodificar el vídeo/imagen realizando una serie de procedimientos tales como descuantificación, transformada inversa y predicción correspondientes a la operación del aparato de codificación.
El representador puede representar el vídeo/imagen decodificado. El vídeo/imagen representado puede mostrarse a través de la pantalla.
Este documento se refiere a la codificación de vídeo/imagen. Por ejemplo, los métodos/realizaciones divulgados en este documento pueden aplicarse a un método divulgado en la codificación de vídeo versátil (VVC), la norma EVC (codificación de vídeo esencial), la norma AOMedia vídeo 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/imagen de la próxima generación (por ejemplo, H.267 o H.268, etc.).
Este documento presenta diversas realizaciones de codificación de vídeo/imagen, y las realizaciones se pueden realizar en combinación entre sí a menos que se indique lo contrario.
En este documento, el vídeo puede referirse a una serie de imágenes a lo largo del tiempo. Una imagen generalmente se refiere a una unidad que representa una imagen en una zona de tiempo específica, y un corte/pieza es una unidad que constituye una parte de una imagen en codificación. El corte/pieza puede incluir una o más unidades de árbol de codificación (CTU). Una imagen puede consistir en uno o más cortes/piezas. Una imagen puede consistir en uno o más grupos de piezas. Un grupo de piezas puede incluir una o más piezas. Un ladrillo puede representar una región rectangular de filas de CTU dentro de una pieza en una imagen. Una pieza se puede dividir en múltiples bloques, cada uno de los cuales consiste en una o más filas de CTU dentro de la pieza. Una pieza que no se subdivide en múltiples ladrillos también puede denominarse un ladrillo. Una exploración de ladrillos es una ordenación secuencial específica de las CTU que subdividen una imagen en la que se ordenan las CTU consecutivamente en exploración por filas de la CTU en un ladrillo, los ladrillos dentro de una pieza se ordenan consecutivamente en una exploración por filas de los ladrillos de la pieza, y las piezas en una imagen se ordenan consecutivamente en una exploración por filas de las piezas de la imagen. Una pieza es una región rectangular de las CTU dentro de una columna de piezas particular y una fila de piezas particular en una imagen. La columna de piezas 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 la imagen. La fila de piezas es una región rectangular de las CTU que tiene una altura especificada por elementos de sintaxis en el conjunto de parámetros de la imagen y una anchura igual a la anchura de la imagen. Una exploración de piezas es una ordenación secuencial específica de las CTU que subdividen una imagen en la que las CTU se ordenan consecutivamente en una exploración por filas de CTU en una pieza mientras que las piezas en una imagen se ordenan consecutivamente en una exploración por filas de las piezas de la imagen. Un corte incluye un número entero de ladrillos de una imagen que pueden estar contenidos exclusivamente en una sola unidad NAL. Un corte puede consistir en un número de piezas completas o solo una secuencia consecutiva de ladrillos completos de una pieza. En este documento, los grupos de piezas y los cortes se pueden usar de manera intercambiable. Por ejemplo, en este documento, un grupo de piezas/encabezado de grupo de piezas puede llamarse corte/encabezado de corte.
Un píxel o un pel puede significar una unidad más pequeña que constituye una imagen (o imagen). También, puede usarse 'muestra' como un término que corresponde a un píxel. Una muestra puede representar generalmente un píxel o el valor de un píxel, puede representar solo un píxel/valor de píxel de un componente de luma o únicamente un píxel/valor de píxel de un componente de croma.
Una unidad puede representar una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de las regiones específicas de la imagen 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 se puede usar de manera intercambiable con términos como bloque o área en algunos casos. En un caso general, un bloque MxN puede incluir muestras (o matrices de muestras) o un conjunto (o matriz) de coeficientes de transformada de M columnas y N filas.
En este documento, el término "/" y debe interpretarse para indicar "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". Además, "A/B/C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, el término "o" debe interpretarse para indicar "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, el término "o" en este documento debe interpretarse para indicar "adicionalmente o como alternativa".
La Figura 2 es un diagrama esquemático que ilustra una configuración de un aparato de codificación de vídeo/imagen al que se puede aplicar la o las realizaciones del presente documento. De ahora en adelante, el aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Con referencia a la Figura 2, el aparato de codificación 200 incluye un divisor de imágenes 210, un predictor 220, un procesador residual 230 y 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 residual 230 puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador inverso 235. El procesador residual 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 residual 230, el codificador por entropía 240, el sumador 250 y el filtro 260 pueden estar configurados por al menos un componente de hardware (por ejemplo, un conjunto de chips codificador o procesador) de acuerdo con una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes decodificadas (DPB) o puede configurarse mediante 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 de entrada (o una imagen o un cuadro) de entrada al aparato de codificación 200 en uno o más procesadores. Por ejemplo, el procesador puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente de acuerdo con una estructura de árbol ternario de árbol binario de cuatro árboles (QTBTTT) a partir de una unidad de árbol de codificación (CTU) o una unidad de codificación más grande (LCU). Por ejemplo, una unidad de codificación puede dividirse en una pluralidad de unidades de codificación de una profundidad más profunda basándose en una estructura de árbol cuádruple, una estructura de árbol binario y/o una estructura de árbol ternario. En este caso, por ejemplo, se puede aplicar en primer lugar la estructura de árbol cuádruple, y puede aplicarse después la estructura de árbol binario y/o la estructura ternaria. Como alternativa, se puede aplicar en primer lugar la estructura de árbol binario. El procedimiento de codificación de acuerdo con este documento puede realizarse basándose en la unidad de codificación final que ya no se divide más. En este caso, la unidad de codificación más grande puede usarse como la unidad de codificación final basándose en la eficiencia de codificación de acuerdo con las características de la imagen o, si fuera necesario, la unidad de codificación puede dividirse recursivamente en unidades de codificación de profundidad más profunda y una unidad de codificación que tiene un tamaño óptimo se puede utilizar como unidad de codificación final. En este punto, el procedimiento de codificación puede incluir un procedimiento de predicción, transformada y reconstrucción, que se describirá más adelante. Como otro ejemplo, el procesador 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 dividirse por la mitad o dividirse de la unidad de codificación final antes mencionada. La unidad de predicción puede ser una unidad de predicción de muestras, y la unidad de transformada puede ser una unidad para obtener un coeficiente de transformada y/o una unidad para obtener una señal residual a partir del coeficiente de transformada.
La unidad se puede usar de manera intercambiable con términos como bloque o área en algunos casos. En un caso general, un bloque de MxN puede representar un conjunto de muestras o coeficientes de transformada compuestos de M columnas y N filas. Una muestra puede representar generalmente un píxel o el valor de un píxel, puede representar solo un píxel/valor de píxel de un componente de luma o representar únicamente un píxel/valor de píxel de un componente de croma. Una muestra puede usarse como un término correspondiente a una imagen (o foto) para un píxel o un pel.
En el aparato de codificación 200, una señal de predicción (bloque previsto, matriz de muestra de predicción) emitida desde el inter predictor 221 o el intra predictor 222 se resta de una señal de imagen de entrada (bloque original, matriz de muestra original) para generar un bloque residual de señal residual, matriz de muestra residual), y la señal residual generada se transmite al transformador 232. En este caso, como se muestra, una unidad para restar una señal de predicción (bloque previsto, conjunto de muestra de predicción) de la señal de imagen de entrada (bloque original, matriz de muestra original) en el codificador 200 puede denominarse restador 231. El predictor puede realizar una predicción en un bloque a procesar (en lo sucesivo, denominado bloque actual) y generar un bloque previsto que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica intra predicción o inter predicción en una base de CU o bloque actual. Como se describe más adelante en la descripción de cada modo de predicción, el predictor puede generar diversa información relacionada con la predicción, tal como información del modo de predicción, y transmitir la información generada al codificador por entropía 240. La información sobre la predicción puede codificarse en el codificador por entropía 240 y emitirse en forma de un flujo de bits.
El intra predictor 222 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden ubicarse en la vecindad del bloque actual o pueden ubicarse separadas 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 modo no direccional puede incluir, por ejemplo, un modo CC y un modo planar. 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, se pueden usar más o menos modos de predicción direccionales dependiendo de la configuración. El intra predictor 222 puede determinar el modo de predicción aplicado al bloque actual usando un modo de predicción aplicado a un bloque vecino.
El inter predictor 221 puede derivar un bloque previsto para el bloque actual basándose en un bloque de referencia (matriz de muestra de referencia) especificado por un vector de movimiento en una imagen de referencia. En este punto, 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 unidades de bloques, subbloques o muestras basándose en la correlación de la 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 L0, predicción L1, Bi predicción, etc.). En el caso de inter predicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente 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 o diferentes. El bloque vecino temporal puede denominarse bloque de referencia coubicado, una Cu coubicada (colCU), y similares, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen coubicada (colPic). Por ejemplo, el inter predictor 221 puede configurar una lista de candidatos de información de movimiento basada 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, es posible que la señal residual no se transmita. En el caso del modo de 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 que se describen a continuación. Por ejemplo, el predictor no solo puede aplicar la intra predicción o la inter predicción para predecir un bloque, sino que también puede aplicar simultáneamente tanto la intra predicción como la inter predicción. Esto puede denominarse inter e intra predicción combinada (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra bloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta se puede usar para la codificación de imágenes/vídeo de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). El IBC realiza básicamente la predicción en la imagen actual, pero se puede realizar de manera similar a la inter predicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, el IBC puede utilizar al menos una de las técnicas de inter predicción descritas en este documento. El modo paleta puede considerarse como un ejemplo de intra codificación o intra predicción. Cuando se aplica el modo de paleta, se puede señalizar un valor de muestra dentro de una imagen basándose en la información de la tabla de paleta y el índice de paleta.
La señal de predicción generada por el 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 residual. El transformador 232 puede generar coeficientes de transformada aplicando una técnica de transformada a la señal residual. 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 este punto, GBT significa la transformada obtenida de un gráfico cuando la información de relación entre píxeles está representada por el gráfico. La CNT se refiere a la transformada generada basándose en una señal de predicción generada usando todos los píxeles previamente reconstruidos. Además, el proceso de transformación se puede aplicar a bloques de píxeles cuadrados que tienen el mismo tamaño o se puede aplicar a bloques que tienen un tamaño variable en lugar de cuadrados.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitirlos al codificador por entropía 240 y el codificador por entropía 240 puede codificar la señal cuantificada (información sobre los coeficientes de transformada cuantificados) y emitir un flujo de bits. La información sobre los coeficientes de transformada cuantificados puede denominarse información residual. 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 sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en forma de vector unidimensional. Puede generarse información sobre los coeficientes de transformada. 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 distinta de los 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 unidades de NAL (capa de abstracción de red) en forma de flujo de bits. La información de vídeo/imagen puede incluir además información sobre 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) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir además información de restricción general. En este documento, los elementos de información y/o sintaxis transmitidos/señalizados desde el aparato de codificación al aparato de decodificación pueden incluirse en la 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 puede almacenarse en un medio de almacenamiento digital. La red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD y SSD y similares. Un transmisor (no mostrado) que transmite una señal emitida desde el codificador por entropía 240 y/o un medio de almacenamiento (no mostrado) que almacena la señal pueden incluirse como elementos internos/externos del aparato de codificación 200 y, como alternativa, 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, la señal residual (bloque residual o muestras residuales) puede reconstruirse aplicando descuantificación y transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 234 y el transformador inverso 235. El sumador 250 suma la señal residual reconstruida a la señal de predicción emitida desde el inter predictor 221 o el intra predictor 222 para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestra reconstruida). Si no hay residuo para el bloque a procesar, tal como en el caso de que se aplique el modo de salto, el bloque previsto puede usarse como el bloque reconstruido. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para intra predicción de un bloque siguiente a procesar en la imagen actual y puede usarse para inter predicción de una imagen siguiente a través del filtrado como se describe a continuación.
Mientras tanto, el mapeo de luma con escala de croma (LMCS) se puede aplicar durante la codificación y/o reconstrucción de imágenes.
El filtro 260 puede mejorar la calidad de imagen subjetiva/objetiva aplicando 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, una DPB de la memoria 270. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares. El filtro 260 puede generar diversa información relacionada con el filtrado y transmitir la información generada al codificador por entropía 240 como se describe más adelante en la descripción de cada método de filtrado. La información relacionada con el filtrado puede codificarse por el codificador por entropía 240 y emitirse en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 270 puede usarse como imagen de referencia en el inter predictor 221. Cuando se aplica la inter predicción a través del aparato de codificación, se puede evitar el desajuste de predicción entre el aparato de codificación 200 y el aparato de decodificación y puede mejorarse la eficiencia de codificación.
La DPB de la memoria 270 DPB puede almacenar la imagen reconstruida modificada para su uso como imagen de referencia en el inter predictor 221. La memoria 270 puede almacenar la información de movimiento del bloque del que se deriva (o codifica) la información de movimiento de la imagen actual y/o la información de movimiento de los bloques de la imagen que ya se han reconstruidos. La información de movimiento almacenada puede transmitirse al inter predictor 221 y usarse como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y puede transferir las muestras reconstruidas al intra predictor 222.
La Figura 3 es un diagrama esquemático que ilustra una configuración de un aparato de decodificación de vídeo/imagen al que se puede aplicar la o las realizaciones del presente documento.
En referencia a la Figura 3, el aparato de decodificación 300 puede incluir un decodificador por entropía 310, un procesador residual 320, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un inter predictor 332 y un intra predictor 331. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 322. El decodificador por entropía 310, el procesador residual 320, el predictor 330, el sumador 340 y el filtro 350 pueden configurarse mediante un componente de hardware (por ejemplo, un conjunto de chips de decodificador o un procesador) de acuerdo con una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes decodificadas (DPB) o puede configurarse mediante 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 decodificación 300 puede reconstruir una imagen correspondiente a un proceso en el que se procesa la información de vídeo/imagen en el aparato de codificación de la Figura 2. Por ejemplo, el aparato de decodificación 300 puede derivar unidades/bloques basándose en la información relacionada con la partición de bloques obtenida del flujo de bits. El aparato de decodificación 300 puede realizar la decodificación usando un procesador aplicado en el aparato de codificación. Por lo tanto, el procesador de decodificación puede ser una unidad de codificación, por ejemplo, y la unidad de codificación puede dividirse de acuerdo con una estructura de árbol cuádruple, estructura de árbol binario y/o estructura de árbol ternario desde la unidad de árbol de codificación o la unidad de codificación más grande. Una o más unidades de transformada pueden derivarse de la unidad de codificación. La señal de imagen reconstruida decodificada y emitida a través del aparato de decodificación 300 puede reproducirse a través de un aparato de reproducción.
El aparato de decodificación 300 puede recibir una señal emitida del aparato de codificación de la Figura 2 en forma de un flujo de bits, y la señal recibida puede decodificarse a través del decodificador por entropía 310. Por ejemplo, el decodificador por entropía 310 puede analizar el flujo de bits para derivar información (por ejemplo, información de vídeo/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de fotos). La información de vídeo/imagen puede incluir además información sobre 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) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir además información de restricción general. El aparato de decodificación puede decodificar además la imagen basándose en la información del conjunto de parámetros y/o la información de restricción general. La información señalizada/recibida y/o los elementos de sintaxis descritos más adelante en este documento pueden decodificarse mediante el procedimiento de decodificación y obtenerse del flujo de bits. Por ejemplo, el decodificador por entropía 310 decodifica la información en el flujo de bits basándose en un método de codificación tal como la codificación Golomb exponencial, CAVLC o CABAC, y emite elementos de sintaxis requeridos para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para residuos. Más específicamente, el método de decodificación por entropía CABAC puede recibir un binario correspondiente a cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto utilizando una información de elemento de sintaxis objetivo de decodificación, información de decodificación de un bloque objetivo de decodificación o información de un símbolo/binario decodificado en un etapa anterior, y realizar una decodificación aritmética en el binario prediciendo una probabilidad de ocurrencia de un binario de acuerdo con el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento de sintaxis. En este caso, el método de decodificación por entropía de CABAC puede actualizar el modelo de contexto usando la información del símbolo/binario decodificado para un modelo de contexto de un siguiente símbolo/binario después de determinar el modelo de contexto. La información relacionada con la predicción entre la información decodificada por el decodificador por entropía 310 se puede proporcionar al predictor (el inter predictor 332 y el intra predictor 331), y el valor residual en el que se realizó la decodificación por entropía en el decodificador por entropía 310, es decir, los coeficientes de transformada cuantificados y la información de los parámetros relacionados pueden introducirse en el procesador residual 320. El procesador residual 320 puede derivar la señal residual (el bloque residual, las muestras residuales, la matriz de muestras residuales). Además, la información sobre el filtrado entre la información decodificada por el decodificador por entropía 310 puede proporcionarse al filtro 350. Mientras tanto, un receptor (no mostrado) para recibir una señal emitida del aparato de codificación puede configurarse además como un elemento interno/externo del aparato de decodificación 300, o el receptor puede ser un componente del decodificador por entropía 310. Mientras tanto, el aparato de decodificación de acuerdo con este documento puede denominarse aparato de decodificación de vídeo/imagen/foto, y el aparato de decodificación puede clasificarse en un decodificador de información (decodificador de información de vídeo/imagen/foto) y un decodificador de muestra (decodificador de muestra de vídeo/imagen/foto). El decodificador de información puede incluir el decodificador por entropía 310, y el decodificador de muestra 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 descuantificar los coeficientes de transformada cuantificados y emitir los coeficientes de transformada. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en forma de bloque bidimensional. En este caso, la reorganización se puede realizar basándose en el orden de exploración de coeficientes realizado en el aparato de codificación. El descuantificador 321 puede realizar la descuantificación de los coeficientes de transformada cuantificados utilizando un parámetro de cuantificación (por ejemplo, información del tamaño de etapa de cuantificación) y obtener coeficientes de transformada.
El transformador inverso 322 transforma a la inversa los coeficientes de transformada para obtener una señal residual (bloque residual, matriz de muestra residual).
El predictor puede realizar predicción en el bloque actual y puede generar un bloque previsto que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica intra predicción o inter predicción al bloque actual basándose en la información sobre la predicción emitida del decodificador por entropía 310 y puede determinar un modo de intra/inter predicción específico.
El predictor 320 puede generar una señal de predicción basándose en diversos métodos de predicción que se describen a continuación. Por ejemplo, el predictor no solo puede aplicar la intra predicción o la inter predicción para predecir un bloque, sino que también puede aplicar simultáneamente la intra predicción y la inter predicción. Esto puede denominarse inter e intra predicción combinada (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra bloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta se puede usar para la codificación de imágenes/vídeo de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). El IBC realiza básicamente la predicción en la imagen actual, pero se puede realizar de manera similar a la inter predicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, el IBC puede utilizar al menos una de las técnicas de inter predicción descritas en este documento. El modo paleta puede considerarse como un ejemplo de intra codificación o intra predicción. Cuando se aplica el modo de paleta, se puede señalizar un valor de muestra dentro de una imagen basándose en la información de la tabla de paleta y el índice de paleta.
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 del bloque actual o pueden ubicarse separadas 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 un modo de predicción aplicado a un bloque vecino.
El inter predictor 332 puede derivar un bloque previsto para el bloque actual basándose en un bloque de referencia (matriz de muestra de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, 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 unidades de bloques, subbloques o muestras basándose en la correlación de la 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 L0, predicción L1, Bi predicción, etc.). En el caso de inter predicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente en la imagen de referencia. Por ejemplo, el inter predictor 332 puede configurar una lista de candidatos de información de movimiento basada en bloques vecinos y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia basándose en la información de selección de candidatos recibida. La predicción interna se puede realizar basándose en diversos modos de predicción, y la información sobre la predicción puede incluir información que indica un modo de inter predicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestra reconstruida) añadiendo la señal residual obtenida a la señal de predicción (bloque previsto, matriz de muestra prevista) emitida desde el predictor (que incluye el inter predictor 332 y/o el intra predictor 331). Si no hay residuo para el bloque a procesar, tal como cuando se aplica el modo de salto, el bloque previsto puede usarse como el bloque reconstruido.
El sumador 340 puede denominarse reconstructor o un generador de bloques reconstruidos. La señal reconstruida generada puede usarse para la intra predicción de un bloque siguiente a procesar en la imagen actual, puede emitirse a través del filtrado como se describe a continuación, o puede usarse para la inter predicción de una imagen siguiente.
Mientras tanto, el mapeo de luma con escala de croma (LMCS) se puede aplicar en el proceso de decodificación de imágenes.
El filtro 350 puede mejorar la calidad de imagen subjetiva/objetiva aplicando 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 almacenar la imagen reconstruida modificada en la memoria 360, específicamente, una DPB de la memoria 360. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares.
La imagen reconstruida (modificada) almacenada en la DPB de la memoria 360 puede usarse como una imagen de referencia en el inter predictor 332. La memoria 360 puede almacenar la información de movimiento del bloque del que se deriva (o decodifica) la información de movimiento de la imagen actual y/o la información de movimiento de los bloques de la imagen que ya se han reconstruidos. La información de movimiento almacenada puede transmitirse al inter predictor 260 para usarse como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transferir las muestras reconstruidas al intra predictor 331.
En la presente divulgación, las realizaciones descritas en el filtro 260, el inter predictor 221 y el intra predictor 222 del aparato de codificación 200 pueden ser iguales o aplicarse respectivamente para corresponder al filtro 350, al inter predictor 332 y al intra predictor 331 del aparato de decodificación 300. Lo mismo también puede aplicarse al inter predictor 332 y al intra predictor 331.
Mientras tanto, con respecto a la inter predicción, se ha propuesto un método de inter predicción que considera la distorsión de la imagen. Más específicamente, se ha propuesto un modelo de movimiento afín, que deriva eficientemente vectores de movimiento para subbloques o puntos de muestra de un bloque actual y mejora la precisión de la inter predicción independientemente de la deformación debido a la rotación de la imagen, el acercamiento o el alejamiento. En otras palabras, se ha propuesto un modelo de movimiento afín, que deriva vectores de movimiento para subbloques o puntos de muestra de un bloque actual. La predicción que emplea el modelo de movimiento afín puede denominarse inter predicción afín o predicción de movimiento afín.
Por ejemplo, la inter predicción afín que utiliza el modelo de movimiento afín puede expresar eficientemente cuatro movimientos, es decir, cuatro deformaciones, como se describe a continuación.
La Figura 4 ilustra un movimiento expresado a través del modelo de movimiento afín. Haciendo referencia a la Figura 4, un movimiento que puede representarse a través del modelo de movimiento afín puede incluir un movimiento de traslación, un movimiento de escala, un movimiento de rotación y un movimiento de cizalla. Es decir, un movimiento de escala en el que (un porción de) la imagen se escala de acuerdo con el paso del tiempo, un movimiento de rotación en el que (una porción de) la imagen se gira de acuerdo con el paso del tiempo y un movimiento de cizalla en el que (una porción de) la imagen se deforma en paralelogramo de acuerdo con el paso del tiempo, así como el movimiento de traslación en el que una (porción de) la imagen se mueve planamente de acuerdo con el paso del tiempo ilustrado en la Figura 4, puede representarse efectivamente como se ilustra en la Figura 3.
El aparato de codificación/aparato de decodificación puede predecir una forma de distorsión de la imagen basándose en los vectores de movimiento en los puntos de control (CP) del bloque actual a través de la inter predicción afín, el rendimiento de compresión de la imagen puede mejorarse aumentando la precisión de la predicción. Además, dado que se puede derivar un vector de movimiento para al menos un punto de control del bloque actual utilizando un vector de movimiento de un bloque vecino del bloque actual, se puede reducir la carga de una cantidad de datos sobre información adicional y puede mejorarse considerablemente la eficiencia inter predicción.
Como ejemplo de la inter predicción afín, se puede requerir información de movimiento en tres puntos de control, es decir, tres puntos de referencia.
La Figura 5 ilustra el modelo de movimiento afín en el que se utilizan vectores de movimiento para tres puntos de control.
Cuando una posición de muestra superior izquierda en un bloque actual 500 es (0, 0), las posiciones de muestra (0, 0), (w, 0) y (0, h) pueden definirse como los puntos de control, como se muestra en la Figura 5. En lo sucesivo, el punto de control de la posición de la muestra (0, 0) puede representarse como CP0, el punto de control de la posición de la muestra (w, 0) puede representarse como c P1 y el punto de control de la posición de la muestra (0, h) puede representarse como CP2.
Puede derivarse una ecuación para el modelo de movimiento afín utilizando los puntos de control y los vectores de movimiento de los puntos de control correspondientes descritos anteriormente. Una ecuación para el modelo de movimiento afín se puede expresar de la siguiente manera.
[Ecuación 1]
Figure imgf000012_0001
En este punto, w indica la anchura del bloque actual 500, h indica la altura del bloque actual 500, v0x y v0y indican un componente x y un componente y del vector de movimiento de CP0, respectivamente, v-ix y v-iy indican un componente x y un componente y del vector de movimiento de CP1, respectivamente, y v2x y v2y indican un componente x y un componente y del vector de movimiento de CP2, respectivamente. Además, x indica un componente x de una posición de una muestra objetivo en el bloque actual 500, y indica un componente y de la posición de la muestra objetivo en el bloque actual 500, vx indica un componente x de un vector de movimiento de la muestra objetivo en el bloque actual 500, y vy indica un componente y del vector de movimiento de la muestra objetivo en el bloque actual 500.
Dado que se conocen el vector de movimiento de CP0, el vector de movimiento de CP1 y el vector de movimiento de CP2, se puede derivar un vector de movimiento basándose en la posición de la muestra en el bloque actual basándose en la Ecuación 1. Es decir, de acuerdo con el modelo de movimiento afín, los vectores de movimiento v0(vox, voy), v1(vix, v-iy), y v2(v2x, v2y) en los puntos de control se puede escalar basándose en una relación de distancia entre las coordenadas (x, y) de la muestra objetivo y los tres puntos de control para derivar los vectores de movimiento de la muestra objetivo de acuerdo con la posición de la muestra objetivo. Es decir, de acuerdo con el modelo de movimiento afín, se puede derivar un vector de movimiento de cada muestra en el bloque actual basándose en los vectores de movimiento de los puntos de control. Mientras tanto, un conjunto de vectores de movimiento de muestras en el bloque actual derivado de acuerdo con el modelo de movimiento afín puede denominarse campo de vector de movimiento afín (MVF).
Mientras tanto, seis parámetros para la Ecuación 1 pueden representarse mediante a, b, c, d, e y f, como se muestra en la Ecuación 1 a continuación, y una ecuación para el modelo de movimiento afín representado por los seis parámetros puede ser la siguiente.
[Ecuación 2]
Figure imgf000013_0001
En este punto, w indica una anchura del bloque actual 500, h indica la altura del bloque actual 500, vox y voyindican el componente x del vector de movimiento de CP0, los componentes y, vix y viy representan un componente x y un componente y del vector de movimiento de CP1, respectivamente, y v2x y v2y representan el componente x y el componente y del vector de movimiento de CP2, respectivamente. Además, x indica el componente x de la posición de la muestra objetivo en el bloque actual 500, y indica un componente y de la posición de la muestra objetivo en el bloque actual 500, vx indica el componente x de un vector de movimiento de la muestra objetivo en el bloque actual 500, vy indica el componente y del vector de movimiento de la muestra objetivo en el bloque actual 500.
El modelo de movimiento afín o la inter predicción afín que utiliza los seis parámetros puede denominarse modelo de movimiento afín de 6 parámetros o AF6.
Además, como ejemplo de inter predicción afín, puede requerirse información de movimiento en dos puntos de control, es decir, dos puntos de referencia.
La Figura 6 ilustra el modelo de movimiento afín en el que se utilizan vectores de movimiento para dos puntos de control. El modelo de movimiento afín que utiliza dos puntos de control puede representar tres movimientos, que incluyen un movimiento de traslación, un movimiento de escala y un movimiento de rotación. El modelo de movimiento afín que representa los tres movimientos puede denominarse modelo de movimiento afín de similitud o modelo de movimiento afín simplificado.
Cuando una posición de muestra superior izquierda en un bloque actual 600 es (0, 0), las posiciones de muestra (0, 0) y (w, 0) pueden definirse como los puntos de control como se muestra en la Figura 6. En lo sucesivo, el punto de control de la posición de la muestra (0, 0) puede representarse como CP0 y el punto de control de la posición de la muestra (w, 0) puede representarse como CP1.
Puede derivarse una ecuación para el modelo de movimiento afín utilizando los puntos de control y los vectores de movimiento de los puntos de control correspondientes descritos anteriormente. Una ecuación para el modelo de movimiento afín se puede expresar de la siguiente manera.
[Ecuación 3]
Figure imgf000014_0001
En este punto, w indica una anchura del bloque actual 600, vox y voy indican los componentes x e y del vector de movimiento de CP0, respectivamente, y v-ix y v-iy indican los componentes x e y del vector de movimiento de CP1. Además, x indica un componente x de una posición de una muestra objetivo en el bloque actual 600, y indica un componente y de la posición de la muestra objetivo en el bloque actual 600, vx indica un componente x del vector de movimiento de la muestra objetivo en el bloque actual 600, y vy indica un componente y del vector de movimiento de la muestra objetivo en el bloque actual 600.
Mientras tanto, cuatro parámetros de la Ecuación 3 pueden representarse mediante a, b, c y d como en la siguiente ecuación, y una ecuación para el modelo de movimiento afín representado por los cuatro parámetros puede ser como sigue.
[Ecuación 4]
Figure imgf000014_0002
En este punto, w indica una anchura del bloque actual 600, v0x y v0y indican los componentes x e y del vector de movimiento de CP0, respectivamente, y vix y viy indican los componentes x e y del vector de movimiento de CP 1, respectivamente. Además, x indica un componente x de una posición de una muestra objetivo en el bloque actual 600, y indica un componente y de la posición de la muestra objetivo en el bloque actual 600, vx indica un componente x del vector de movimiento de la muestra objetivo en el bloque actual 600 y vy indica un componente y del vector de movimiento de la muestra objetivo en el bloque actual 600. El modelo de movimiento afín que utiliza los dos puntos de control puede representarse mediante cuatro parámetros a, b, c y d, como se muestra en la Ecuación 4 y, por lo tanto, el modelo de movimiento afín que utiliza los cuatro parámetros o la inter predicción afín puede denominarse un modelo de movimiento afín de 4 parámetros o AF4. Es decir, de acuerdo con el modelo de movimiento afín, se puede derivar un vector de movimiento de cada muestra en el bloque actual basándose en los vectores de movimiento de los puntos de control. Mientras tanto, un conjunto de vectores de movimiento de las muestras en el bloque actual derivado de acuerdo con el modelo de movimiento afín puede denominarse campo de vector de movimiento afín (MVF).
Mientras tanto, como se describió anteriormente, un vector de movimiento de una unidad de muestra se puede derivar a través del modelo de movimiento afín y, por lo tanto, puede mejorarse significativamente la precisión de la inter predicción. En este caso, sin embargo, la complejidad en el proceso de compensación de movimiento puede incrementarse significativamente.
En consecuencia, puede limitarse de modo que se derive un vector de movimiento de una unidad de subbloque del bloque actual, en lugar de derivar un vector de movimiento de la unidad de muestra.
La Figura 7 ilustra un método para derivar un vector de movimiento en una base de un subbloque basándose en el modelo de movimiento afín. La Figura 7 ilustra un caso en el que el tamaño del bloque actual es de 16x16 y se deriva un vector de movimiento en unidades de subbloques de 4x4. El subbloque se puede establecer en varios tamaños. Por ejemplo, cuando el subbloque se establece en un tamaño nxn (n es un número entero positivo, por ejemplo, n es 4), se puede derivar un vector de movimiento en unidades de nxn subbloques en el bloque actual basándose en el modelo de movimiento afín y pueden aplicarse diversos métodos para derivar un vector de movimiento que representa cada subbloque.
Por ejemplo, con referencia a la Figura 7, se puede derivar un vector de movimiento de cada subbloque usando la posición de muestra del centro o del lado inferior derecho de cada subbloque como una coordenada representativa.
En este punto, la posición central inferior derecha puede indicar una posición de muestra situada en el lado inferior derecho entre cuatro muestras situadas en el centro del subbloque. Por ejemplo, cuando n es un número impar, una muestra puede situarse en el centro del subbloque y, en este caso, la posición de la muestra central puede usarse para derivar el vector de movimiento del subbloque. Sin embargo, cuando n es un número par, se pueden situar cuatro muestras para que sean adyacentes en el centro del subbloque y, en este caso, se puede usar la posición de muestra inferior derecha para derivar un vector de movimiento. Por ejemplo, con referencia a la Figura 7, las coordenadas representativas de cada subbloque pueden derivarse como (2, 2), (6, 2), (10, 2), ..., (14, 14), y el aparato de codificación/aparato de decodificación puede derivar el vector de movimiento de cada subbloque sustituyendo cada una de las coordenadas representativas de los subbloques en la Ecuación 1 o 3 descritas anteriormente. Los vectores de movimiento de los subbloques en el bloque actual derivados a través del modelo de movimiento afín pueden denominarse MVF afín.
Mientras tanto, como ejemplo, el tamaño del subbloque en el bloque actual se puede derivar basándose en la siguiente ecuación.
[Ecuación 5]
w * MvPre
M clip314,w,
m áx[abs(vlx — v0x),abs(vly — voy))
h * MvPre
N clip314, h,
’ m áx(abs(v2x — v0x),abs(v2y — V0y) )
En este punto, M indica la anchura del subbloque y N indica la altura del subbloque. Además, v.0x y v0y indican un componente x y un componente y de CPMV0 del bloque actual, v-ix y v-iy indican un componente x y un componente y de CPMV1 del bloque actual, w indica una anchura del bloque actual, h indica una altura del bloque actual y MvPre indica una precisión de fracción de vector de movimiento. Por ejemplo, la precisión de la fracción del vector de movimiento se puede establecer en 1/16.
Mientras tanto, en la inter predicción utilizando el modelo de movimiento afín descrito anteriormente, es decir, la predicción de movimiento afín, puede tener un modo de fusión afín AF FUSIÓN y un modo inter afín AF INTER. En este punto, el modo inter afín puede denominarse un modo MVP afín AF MVP.
El modo de fusión afín es similar a un modo de fusión existente en el que no se transmite MVD para el vector de movimiento de los puntos de control. Es decir, de manera similar al modo de salto/fusión existente, el modo de fusión afín puede referirse a un método de codificación/decodificación para realizar predicciones derivando un CPMV para cada uno de dos o tres puntos de control de un bloque vecino del bloque actual.
Por ejemplo, cuando se aplica el modo AF_MRG al bloque actual, los vectores de movimiento de CP0 y CP1 (en concreto, CPMV0 y CPMV1) pueden derivarse de bloques vecinos a los que se ha aplicado el modo afín entre bloques vecinos del bloque actual. En otras palabras, CPMV0 y CPMV1 de los bloques vecinos a los que se ha aplicado el modo afín pueden derivarse como candidatos de fusión o pueden derivarse como CPMV0 y CPMV1 para el bloque actual basándose en los candidatos de fusión. El modelo de movimiento afín se puede derivar basándose en el CPMV0 y el CPMV1 de los bloques vecinos representados por los candidatos de fusión y, basándose en el modelo de movimiento afín, se pueden derivar el CPMV0 y el CPMV1 para el bloque actual.
El modo inter afín puede representar una inter predicción que deriva predictores de vectores de movimiento (MVP) para vectores de movimiento de los puntos de control, vectores de movimiento de los puntos de control basándose en las diferencias de vectores de movimiento (MVD) recibidas y los MVP, y el MVF afín del bloque actual basándose en los vectores de movimiento de los puntos de control; y realiza una predicción basándose en el MVF afín. En este punto, el vector de movimiento del punto de control puede denominarse vector de movimiento del punto de control (CPMV), el MVP del punto de control puede denominarse predictor del vector de movimiento del punto de control (CPMVP) y el MVD del punto de control puede denominarse diferencia de vector de movimiento del punto de control (CPMVD). Más 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 CP0 y CP1 (o CP0, CP1 y CP2), respectivamente, y transmitir o almacenar información en el CPMVP y/o CPMVD que representa una diferencia entre el CPMVP y el CPMV.
En este punto, si se aplica el modo inter afín al bloque actual, el aparato de codificación/decodificación puede construir una lista de candidatos de MVP afines basándose en bloques vecinos del bloque actual, donde el candidato de MVP afín puede denominarse candidato de par 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 representar una combinación de los CPMVP de CP0 y CP1 en el modelo de movimiento afín de cuatro parámetros y una combinación de los CPMVP de CP0, CP1 y CP2 en el modelo de movimiento afín de seis parámetros.
La Figura 8 es un diagrama de flujo que ilustra un método de predicción de movimiento afín de acuerdo con una realización de la presente divulgación.
Haciendo referencia a la Figura 8, el método de predicción de movimiento afín se puede describir en gran parte como sigue. Una vez que se inicia el método de predicción de movimiento afín, en primer lugar, se obtiene un par de CPMV S800. En este punto, si se utiliza un modelo afín de cuatro parámetros, el par de CPMV puede incluir CPMV0 y CPMV1.
Posteriormente, la compensación de movimiento afín se puede realizar basándose en el par CPMV S810, después de lo cual se puede terminar la predicción de movimiento afín.
Además, se pueden definir dos modos de predicción afines para determinar el CPMV0 y el CPMV1. En este punto, los dos modos de predicción afines pueden incluir el modo inter afín y el modo de fusión afín. El modo inter afín puede señalizar información sobre la diferencia de vector de movimiento (MVD) entre dos vectores de movimiento de CPMV0 y CPMV1 para determinar de manera evidente el CPMV0 y el CPMV1. Por otro lado, el modo de fusión afín puede derivar un par de CPMV sin señalizar la información de MVD.
En otras palabras, el modo de fusión afín puede derivar los CPMV de un bloque actual mediante el uso de los CPMV de bloques vecinos codificados en el modo afín, y si la unidad de subbloque determina los vectores de movimiento, el modo de fusión afín puede denominarse modo de fusión de subbloque.
En el modo de fusión afín, el aparato de codificación puede señalizar, al aparato de decodificación, índices de bloques vecinos codificados en el modo afín para derivar los CPMV del bloque actual y puede señalar además los valores de diferencia entre los CPMV de los bloques vecinos y los CPMV del bloque actual. En este punto, el modo de fusión afín puede construir una lista de candidatos de fusión afines basándose en bloques vecinos, donde los índices de los bloques vecinos pueden indicar los bloques vecinos que se utilizarán dentro de la lista de candidatos de fusión afines para derivar los CPMV del bloque actual. La lista de candidatos de fusión afines también puede denominarse lista de candidatos de fusión de subbloques.
El modo inter afín también puede denominarse modo MVP afín. En el modo MVP afín, los CPMV de un bloque actual pueden derivarse basándose en el predictor de vector de movimiento de punto de control (CPMVP) y la diferencia de vector de movimiento de punto de control (CPMVD). En otras palabras, el aparato de codificación puede determinar los CPMVP para los CPMV de un bloque actual, derivar la CPMVD, que es un valor de diferencia entre el CPMV y el CPMVP del bloque actual, y señalizar información sobre el CPMVP e información sobre la CPMVD al aparato de decodificación. En este punto, el modo MVP afín puede construir una lista de candidatos de MVP afines basándose en bloques vecinos, y la información sobre los CPMVP puede indicar bloques vecinos que se utilizarán para derivar los CPMVP para los CPMV del bloque actual a partir de la lista de candidatos de MVP afines. La lista de candidatos de MVP afines también puede denominarse lista de candidatos de predictor de vector de movimiento de punto de control.
Por ejemplo, cuando se aplica el modo inter afín del modelo de movimiento afín de seis parámetros, el bloque actual se puede codificar como se describe a continuación.
La Figura 9 ilustra un método para derivar un predictor de vector de movimiento en un punto de control de acuerdo con una realización de la presente divulgación.
Haciendo referencia a la Figura 9, el vector de movimiento de CP0 del bloque actual puede indicarse por vo, el vector de movimiento de CP1 por vi, el vector de movimiento de un punto de control en la posición de muestra inferior izquierda por V2, y el vector de movimiento de CP2 por V3. En otras palabras, el vo puede representar el CPMVP del CP0, el vi el CPMVP del CP1, y el v2 el CPMVP del CP2.
Un candidato MVP afín puede ser una combinación del candidato de CPMVP del CP0, el candidato de CPMVP del CP1 y el candidato de CPMVP del CP2.
Por ejemplo, el candidato de MVP afín puede obtenerse como sigue.
Más específicamente, se puede determinar un máximo de 12 combinaciones de candidatos de CPMVP como se muestra en la siguiente ecuación.
[Ecuación 6]
Figure imgf000016_0001
En este punto, va representa el vector de movimiento del bloque vecino A, vb el vector de movimiento del bloque vecino B, Ve el vector de movimiento del bloque vecino C, vd el vector de movimiento del bloque vecino D, ve el vector de movimiento del bloque vecino E, vf el vector de movimiento del bloque vecino F, y vg el vector de movimiento del bloque vecino G.
Además, el bloque vecino A puede representar un bloque vecino situado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual, el bloque vecino B puede representar un bloque vecino situado en la parte superior de la posición de muestra superior izquierda del bloque actual, y el bloque vecino C puede representar un bloque vecino situado en el lado izquierdo de la posición de muestra superior izquierda del bloque actual. Además, el bloque vecino D puede representar un bloque vecino situado en la parte superior de una posición de muestra superior derecha del bloque actual, y el bloque vecino E puede representar un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual. Y, el bloque vecino F puede representar un bloque vecino situado en el lado izquierdo de una posición de muestra inferior izquierda del bloque actual, y el bloque vecino G puede representar un bloque vecino situado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
En otras palabras, haciendo referencia a la Ec. 6 anterior, el candidato de CPMVP de CP0 puede incluir el vector de movimiento va del bloque vecino A, el vector de movimiento vb del bloque vecino B y/o el vector de movimiento ve del bloque vecino C; el candidato de CPMVP de CP1 puede incluir el vector de movimiento vd del bloque vecino D y/o el vector de movimiento ve del bloque vecino E; el candidato de CPMVP de CP2 puede incluir el vector de movimiento vf del bloque vecino F y/o el vector de movimiento vg del bloque vecino G.
En otras palabras, el CPMVP V0 de CP0 puede derivarse basándose en al menos un vector de movimiento para los bloques vecinos A, B y C con respecto a la posición de muestra superior izquierda. En el presente documento, el bloque vecino A puede representar un bloque que está situado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual, el bloque vecino B puede representar un bloque que está situado en la parte superior de la posición de muestra superior izquierda del bloque actual, y el bloque vecino C puede representar un bloque que está situado en el lado izquierdo de la posición de muestra superior izquierda del bloque actual.
Basándose en los vectores de movimiento de los bloques vecinos, se pueden derivar un máximo de 12 combinaciones de candidatos CPMVP, que incluyen el candidato de CPMVP del CP0, el candidato de CPMVP del CP1 y el candidato de CPMVP del CP2.
Posteriormente, las combinaciones de candidatos de CPMVP derivadas se organizan en el orden ascendente de DV, y las dos combinaciones de candidatos de CPMVP superiores pueden derivarse como los candidatos de MVP afines.
El DV de una combinación de candidato de CPMVP puede obtenerse mediante la siguiente ecuación.
[Ecuación 7]
DV = \(.vlx — v 0x) * h — ( v 2 y — vO y ) * w | \ ( v l y — vO y ) * h ( v 2 x — vOx~) * w\
Posteriormente, el aparato de codificación puede determinar los CPMV para los candidatos de MVP afines respectivos, comparar el coste de Tasa Distorsión (RD) entre los CPMV y seleccionar el candidato de MVP afín que tiene el coste de RD más pequeño como el candidato de MVP afín óptimo para el bloque actual. El aparato de codificación puede codificar y señalizar el índice y la CPMVD indicando el candidato óptimo.
Además, por ejemplo, si se aplica el modo de fusión afín, el bloque actual puede codificarse como se describe a continuación.
La Figura 10 ilustra un método para derivar un predictor de vector de movimiento en un punto de control de acuerdo con una realización de la presente divulgación.
Basándose en bloques vecinos de un bloque actual mostrado en la Figura 10, se puede construir una lista de candidatos de fusión afines del bloque actual. Los bloques vecinos pueden incluir el bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D y el bloque vecino E. El bloque vecino A puede representar un bloque vecino izquierdo del bloque actual, el bloque vecino B un bloque vecino superior del bloque actual, el bloque vecino C un bloque vecino en la esquina superior derecha del bloque actual, el bloque vecino D un bloque vecino en la esquina inferior izquierda del bloque actual, el bloque vecino E un bloque vecino en la esquina superior izquierda del bloque actual.
Por ejemplo, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino izquierdo puede ser el bloque que incluye una muestra en las coordenadas de (-1, H-1), el bloque vecino superior puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), el bloque vecino de la esquina superior derecha puede ser el bloque que incluye una muestra en las coordenadas de (W, -1), el bloque vecino de la esquina inferior izquierda puede ser el bloque que incluye una muestra en las coordenadas de (-1, H), y el bloque vecino de la esquina superior izquierda puede ser el bloque que incluye un muestra en las coordenadas de (-1, -1).
Más específicamente, por ejemplo, el aparato de codificación puede escanear el bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D y el bloque vecino E del bloque actual en un orden de exploración específico; y determinar el bloque vecino codificado en primer lugar en el modo de predicción afín de acuerdo con el orden de exploración como un bloque candidato del modo de fusión afín, es decir, candidato de fusión afín. En otras palabras, el orden de exploración específico puede realizarse en el orden del bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D y el bloque vecino E.
Posteriormente, el aparato de codificación puede determinar el modelo de movimiento afín del bloque actual utilizando los CPMV del bloque candidato determinado, determinar los CPMV del bloque actual basándose en el modelo de movimiento afín y determinar el MVF afín del bloque actual basándose en los CPMV.
Como ejemplo, si el bloque vecino A se determina como un bloque candidato del bloque actual, la codificación se puede realizar como se describe a continuación.
La Figura 11 ilustra un ejemplo de predicción afín realizada cuando el bloque vecino A se selecciona como candidato de fusión afín.
Haciendo referencia a la Figura 11, el aparato de codificación puede determinar el bloque vecino A del bloque actual como un bloque candidato y derivar un modelo de movimiento afín del bloque actual basándose en los CPMV del bloque vecino, V2 y V3. Posteriormente, el aparato de codificación puede determinar los CPMV del bloque actual, V0 y vi, basándose en el modelo de movimiento afín. El aparato de codificación puede determinar el MVF afín basándose en los CPMV del bloque actual, vo y V1 y realizar el proceso para codificar el bloque actual basándose en el MVF afín.
Mientras tanto, en relación con la inter predicción afín, como un medio para construir una lista de candidatos de MVP afines, se están considerando candidatos afines heredados y candidatos afines construidos.
En este punto, el candidato afín heredado se puede describir como sigue.
Por ejemplo, si un bloque vecino del bloque actual es un bloque afín, y una imagen de referencia del bloque actual es la misma que una imagen de referencia del bloque vecino, se puede determinar un par de MVP afines del bloque actual a partir del modelo de movimiento afín del bloque vecino. En este punto, el bloque afín puede representar un bloque al que se ha aplicado la inter predicción afín. El candidato afín heredado puede representar los CPMVP (por ejemplo, el par de MVP afines) derivados basándose en el modelo de movimiento afín del bloque vecino.
Más específicamente, como un ejemplo, el candidato afín heredado puede derivarse como se describe a continuación.
La Figura 12 ilustra bloques vecinos para derivar el candidato afín heredado.
Haciendo referencia a la Figura 12, los bloques vecinos del bloque actual pueden incluir el bloque A0 vecino a la izquierda del bloque actual, el bloque A1 vecino en la esquina inferior izquierda del bloque actual, el bloque B0 vecino en la parte superior del bloque actual, el bloque B 1 vecino en la esquina superior derecha del bloque actual y el bloque B2 vecino en la esquina superior izquierda del bloque actual.
Por ejemplo, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino izquierdo puede ser el bloque que incluye una muestra en las coordenadas de (-1, H-1), el bloque vecino superior puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), el bloque vecino de la esquina superior derecha puede ser el bloque que incluye una muestra en las coordenadas de (W, -1), el bloque vecino de la esquina inferior izquierda puede ser el bloque que incluye una muestra en las coordenadas de (-1, H), y el bloque vecino de la esquina superior izquierda puede ser el bloque que incluye un muestra en las coordenadas de (-1, -1).
El aparato de codificación/decodificación puede comprobar secuencialmente los bloques vecinos A0, A1, B0, B1 y B2, y si un bloque vecino está codificado de acuerdo con el modelo de movimiento afín y una imagen de referencia del bloque actual es la misma que una imagen de referencia del bloque vecino, se pueden derivar dos CPMV o tres CPMV del bloque actual basándose en el modelo de movimiento afín del bloque vecino. Los CPMV pueden derivarse como un candidato de MVP afín del bloque actual. El candidato de MVP afín puede representar el candidato afín heredado.
Como ejemplo, se pueden derivar hasta dos candidatos afines heredados basándose en los bloques vecinos.
Por ejemplo, el aparato de codificación/decodificación puede derivar un primer candidato de MVP afín del bloque actual basándose en un primer bloque entre bloques vecinos. En este punto, el primer bloque puede codificarse de acuerdo con el modelo de movimiento afín, y una imagen de referencia del primer bloque puede ser la misma que la imagen de referencia del bloque actual. En otras palabras, el primer bloque puede ser un bloque confirmado en primer lugar para satisfacer una condición de comprobación de los bloques vecinos de acuerdo con un orden específico. La condición puede codificarse de acuerdo con un modelo de movimiento afín, y la imagen de referencia del bloque puede ser la misma que la imagen de referencia del bloque actual.
Posteriormente, el aparato de codificación/decodificación puede derivar un segundo candidato de MVP afín basándose en un segundo bloque entre bloques vecinos. En este punto, el segundo bloque puede codificarse de acuerdo con el modelo de movimiento afín, y una imagen de referencia del segundo bloque puede ser la misma que la imagen de referencia del bloque actual. En otras palabras, el segundo bloque puede ser un bloque confirmado en segundo lugar para satisfacer la condición de comprobación de los bloques vecinos de acuerdo con un orden específico. La condición puede codificarse de acuerdo con un modelo de movimiento afín, y la imagen de referencia del bloque puede ser la misma que la imagen de referencia del bloque actual.
Mientras tanto, por ejemplo, cuando el número de candidatos afines heredados disponibles es menor que 2 (es decir, cuando el número de candidatos afines heredados derivados es menor que 2), se puede considerar un candidato afín construido. El candidato afín construido puede obtenerse como sigue.
La Figura 13 ilustra candidatos espaciales para el candidato afín construido.
Como se muestra en la Figura 13, los vectores de movimiento de los bloques vecinos del bloque actual se pueden dividir en tres grupos. Haciendo referencia a la Figura 13, los bloques vecinos pueden incluir el bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D, el bloque vecino E, el bloque vecino F y el bloque vecino G.
El bloque vecino A puede representar un bloque vecino situado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; y el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual. Además, el bloque vecino D puede representar un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual, y el bloque vecino E puede representar un bloque vecino ubicado en la parte superior derecha de la posición de muestra superior derecha del bloque actual. Además, el bloque vecino F puede representar un bloque vecino ubicado a la izquierda de una posición de muestra inferior izquierda del bloque actual; y el bloque vecino G puede representar un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Por ejemplo, los tres grupos pueden incluir Sü, Si , y S2, donde S0, S1, y S2 pueden derivarse como se muestra en la siguiente tabla.
T l 11
Figure imgf000019_0001
En este punto, mvA representa el vector de movimiento del bloque vecino A, mvB el vector de movimiento del bloque vecino B, mvc el vector de movimiento del bloque vecino C, mvD el vector de movimiento del bloque vecino D, mvE el vector de movimiento del bloque vecino E, mvF el vector de movimiento del bloque vecino F, y mvG el vector de movimiento del bloque vecino G. So puede indicar un primer grupo, S1 puede indicar un segundo grupo, y S2 puede indicar un tercer grupo.
El aparato de codificación/decodificación puede derivar mvo de So, mvi de S1, mv2 de S2, y un candidato de MVP afín que incluye mvo, m v- y mv2. El candidato MVP afín puede indicar el candidato afín construido. También, mvo puede ser el candidato de CPMVP del CP0, mv- puede ser el candidato de CPMVP de CP1, y mv2 puede ser el candidato de CPMVP de CP2.
En este punto, la imagen de referencia para mvo puede ser la misma que la imagen de referencia del bloque actual. En otras palabras, mvo puede ser el vector de movimiento confirmado en primer lugar para satisfacer una condición de la comprobación de los vectores de movimiento dentro de So. La condición puede ser tal que una imagen de referencia para un vector de movimiento sea la misma que la imagen de referencia del bloque actual. El orden específico puede ser tal que los vectores de movimiento se comprueben dentro de So en el orden del bloque vecino A, el bloque vecino B y el bloque vecino C. Además, el orden de comprobación se puede realizar de manera diferente a la descrita anteriormente y no se puede limitar al ejemplo anterior.
Además, la imagen de referencia para mv- puede ser la misma que la imagen de referencia del bloque actual. En otras palabras, mv- puede ser el vector de movimiento confirmado en primer lugar para satisfacer una condición de la comprobación de los vectores de movimiento dentro de Si . La condición puede ser tal que una imagen de referencia para un vector de movimiento sea la misma que la imagen de referencia del bloque actual. El orden específico puede ser tal que los vectores de movimiento se comprueben dentro de Si en el orden del bloque vecino el bloque vecino D y el bloque vecino E. Además, el orden de comprobación se puede realizar de manera diferente a la descrita anteriormente y no se puede limitar al ejemplo anterior.
Además, la imagen de referencia para mv2 puede ser la misma que la imagen de referencia del bloque actual. En otras palabras, mv2 puede ser el vector de movimiento confirmado en primer lugar para satisfacer una condición de la comprobación de los vectores de movimiento dentro de S2. La condición puede ser tal que una imagen de referencia para un vector de movimiento sea la misma que la imagen de referencia del bloque actual. El orden específico puede ser tal que los vectores de movimiento se comprueben dentro de S2 en el orden del bloque vecino F y el bloque vecino G. Además, el orden de comprobación se puede realizar de manera diferente a la descrita anteriormente y no se puede limitar al ejemplo anterior.
Mientras tanto, cuando solo mvo y mv1 están disponibles, es decir, cuando se deriva solo mvo y mv-i, mv2 puede derivarse de la siguiente ecuación.
[Ecuación 8]
Figure imgf000020_0001
En este punto, m vj representa el componente x de mv2, mv% representa el componente y de mv2, mv^ representa el componente x de mvo, müg representa el componente y de mvo, mü* representa el componente x de mv-i, y representa el componente y de mv1. Además, w representa la anchura del bloque actual, y h representa la altura del bloque actual.
Mientras tanto, cuando solo se deriva mvo y mv2, mv- puede derivarse de la siguiente ecuación.
[Ecuación 9]
Figure imgf000020_0002
En este punto, m vf representa el componente x de mvi, mv¡f representa el componente y de mvi, representa el componente x de mvo, m v j representa el componente y de mvo, representa el componente x de mv2, y mv% representa el componente y de mv2. Además, w representa la anchura del bloque actual, y h representa la altura del bloque actual.
Además, cuando el número de candidatos afines heredados disponibles y/o el número de candidatos afines construidos es menor que 2, se puede aplicar el proceso AMVP de la norma HEVC existente para la construcción de la lista de MVP afines. En otras palabras, cuando el número de candidatos afines heredados disponibles y/o el número de candidatos afines construidos es menor que 2, se puede realizar el proceso de construcción de candidatos MVP especificado en la norma HEVC existente.
Mientras tanto, los diagramas de flujo de las realizaciones para construir la lista de MVP afines pueden describirse como sigue.
La Figura 14 ilustra un ejemplo de construcción de una lista de MVP afines.
Haciendo referencia a la Figura 14, el aparato de codificación/decodificación puede añadir un candidato heredado a la lista de MVP afines de un bloque actual S14oo. El candidato heredado puede representar el candidato afín heredado descrito anteriormente.
Más específicamente, el aparato de codificación/decodificación puede derivar hasta dos candidatos afines heredados de bloques vecinos del bloque actual S14o5. En este punto, los bloques vecinos pueden incluir el bloque Ao vecino a la izquierda del bloque actual, el bloque A1 vecino en la esquina inferior izquierda del bloque actual, el bloque Bo vecino en la parte superior del bloque actual, el bloque B 1 vecino en la esquina superior derecha del bloque actual y el bloque B2 vecino en la esquina superior izquierda del bloque actual.
Por ejemplo, el aparato de codificación/decodificación puede derivar un primer candidato de MVP afín del bloque actual basándose en un primer bloque entre los bloques vecinos. En este punto, el primer bloque puede codificarse de acuerdo 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. En otras palabras, el primer bloque puede ser el bloque confirmado en primer lugar para satisfacer una condición de comprobación de los bloques vecinos de acuerdo con un orden específico. La condición puede codificarse de acuerdo con un modelo de movimiento afín, y la imagen de referencia del bloque puede
2o
ser la misma que la imagen de referencia del bloque actual.
Posteriormente, el aparato de codificación/decodificación puede derivar un segundo candidato de MVP afín basándose en un segundo bloque entre bloques vecinos. En este punto, el segundo bloque puede codificarse de acuerdo con el modelo de movimiento afín, y una imagen de referencia del segundo bloque puede ser la misma que la imagen de referencia del bloque actual. En otras palabras, el segundo bloque puede ser el bloque que satisface una segunda condición confirmada a partir de la comprobación de los bloques vecinos de acuerdo con un orden específico. La condición puede codificarse de acuerdo con un modelo de movimiento afín, y la imagen de referencia del bloque puede ser la misma que la imagen de referencia del bloque actual.
Mientras tanto, el orden específico puede ser tal que los bloques vecinos se comprueban en el orden del bloque vecino izquierdo A0, el bloque vecino de la esquina inferior izquierda A1, el bloque vecino superior B0, el bloque vecino de la esquina superior derecha B1 y el bloque vecino de la esquina superior izquierda B2. Además, el orden de comprobación se puede realizar de manera diferente a la descrita anteriormente y no se puede limitar al ejemplo anterior.
El aparato de codificación/decodificación puede añadir un candidato construido a la lista de MVP afines del bloque actual S1410. El candidato construido puede representar el candidato afín construido anterior. El candidato construido también puede denominarse candidato de MVP afín construido. Si el número de candidatos heredados disponibles es menor que 2, el aparato de codificación/decodificación puede añadir el candidato construido a la lista de MVP afines del bloque actual. Por ejemplo, el aparato de codificación/decodificación puede derivar un candidato afín construido.
Mientras tanto, el método para derivar un 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 seis parámetros o un modelo de movimiento afín de cuatro parámetros. Más adelante se proporcionarán descripciones detalladas sobre cómo se deriva el candidato construido.
El aparato de codificación/decodificación puede añadir un candidato HEVC AMVP a la lista de MVP afines del bloque actual S1420. Si el número de candidatos heredados disponibles y/o el número de candidatos construidos es menor que 2, el aparato de codificación/decodificación puede añadir un candidato HEVC AMVP a la lista de MVP afines del bloque actual. En otras palabras, cuando el número de candidatos heredados disponibles y/o el número de candidatos construidos es menor que 2, el aparato de codificación/decodificación puede realizar el proceso para construir un candidato MVP como se especifica en la norma HEVC existente.
Mientras tanto, se puede realizar un método para derivar el candidato construido de la siguiente manera.
Por ejemplo, si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín de seis parámetros, el candidato construido puede derivarse como se ilustra en la realización de la Figura 15.
La Figura 15 ilustra un ejemplo de derivación del candidato construido.
Haciendo referencia a la Figura 15, el aparato de codificación/decodificación puede comprobar mvo, mv1, y mv2 para el bloque actual S1500. En otras palabras, el aparato de codificación/decodificación puede determinar si mv0, mv-i, y mv2 están disponibles entre los bloques vecinos del bloque actual. En este punto, mvo puede representar el candidato de CPMVP de CP0 del bloque actual, mv1 puede representar el candidato de CPMVP de CP1 del bloque actual, y mv2 puede representar el candidato de CPMVP de CP2 del bloque actual. También, mvo, mv-i, y mv2 pueden representar vectores de movimiento candidatos para los respectivos CP.
Por ejemplo, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un primer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mvo. En otras palabras, mvo puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del primer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del primer grupo no satisfacen la condición específica, el mvo disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar en el orden del bloque vecino A dentro del primer grupo, el bloque vecino B y el bloque vecino C. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un segundo grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv-i. En otras palabras, mv1 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del segundo grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del segundo grupo no satisfacen la condición específica, el mv1 disponible puede no existir.
En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino D dentro del segundo grupo al bloque vecino E. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un tercer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv2. En otras palabras, mv2 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del tercer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del tercer grupo no satisfacen la condición específica, el mv2 disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino F dentro del tercer grupo al bloque vecino G. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Mientras tanto, el primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Cuando solo están disponibles mvo y mvi para el bloque actual, en concreto, cuando solo se deriva mvo y mvi para el bloque actual, el aparato de codificación/decodificación puede derivar mv2 para el bloque actual basándose en la Ec.
8 por encima de S1510. El aparato de codificación/decodificación puede derivar mv2 insertando los mvo y mvi derivados en la Ec. 8 anterior.
Cuando solo están disponibles mvo y mv2 para el bloque actual, en concreto, cuando solo se deriva mvo y mv2 para el bloque actual, el aparato de codificación/decodificación puede derivar mvi para el bloque actual basándose en la Ec.
9 por encima de S1520. El aparato de codificación/decodificación puede derivar mvi insertando los mvo y mv2 derivados en la Ec. 9 anterior.
El aparato de codificación/decodificación puede proporcionar los mvo, mvi y mv2 derivados como candidatos construidos del bloque actual S1530. Cuando están disponibles mvo, mvi y mv2, es decir, cuando se deriva mvo, mvi y mv2 basándose en los bloques vecinos del bloque actual, el aparato de codificación/decodificación puede proporcionar los mvo, mvi y mv2 derivados como candidatos construidos del bloque actual.
Además, cuando solo están disponibles mvo y mvi para el bloque actual, es decir, cuando solo se deriva mvo y mvi para el bloque actual, el aparato de codificación/decodificación puede proporcionar los mvo, mvi, y mv2 derivados basándose en la Ec. 8 anterior como los candidatos construidos del bloque actual.
Además, cuando solo están disponibles mvo y mv2 para el bloque actual, es decir, cuando solo se deriva mvo y mv2 para el bloque actual, el aparato de codificación/decodificación puede proporcionar los mvo, mv2, y mvi derivados basándose en la Ec. 9 anterior como los candidatos construidos del bloque actual.
Además, por ejemplo, si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín de cuatro parámetros, el candidato construido puede derivarse como se ilustra en la realización de la Figura 15.
La Figura 16 ilustra un ejemplo de derivación del candidato construido.
Haciendo referencia a la Figura 16, el aparato de codificación/decodificación puede comprobar mvo, mvi, y mv2 S16oo. En otras palabras, el aparato de codificación/decodificación puede determinar si mvo, mvi, y mv2 están disponibles entre los bloques vecinos del bloque actual. En este punto, mvo puede representar el candidato de CPMVP de CPo del bloque actual, mvi puede representar el candidato de CPMVP de CPi del bloque actual, y mv2 puede representar el candidato de CPMVP de CP2 del bloque actual.
Por ejemplo, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un primer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mvo. En otras palabras, mvo puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del primer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del primer grupo no satisfacen la condición específica, el mvo disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar en el orden del bloque vecino A dentro del primer grupo, el bloque vecino B y el bloque vecino C. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un segundo grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv-i. En otras palabras, mv1 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del segundo grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del segundo grupo no satisfacen la condición específica, el mv1 disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino D dentro del segundo grupo al bloque vecino E. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, por ejemplo, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un tercer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv2. En otras palabras, mv2 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del tercer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del tercer grupo no satisfacen la condición específica, el mv2 disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino F dentro del tercer grupo al bloque vecino G. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Mientras tanto, el primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
Cuando solo están disponibles mvo y mv- para el bloque actual o cuando están disponibles mvo, mv-, y mv2 para el bloque actual, es decir, cuando solo se deriva mvo y mv- para el bloque actual o cuando se deriva mvo, mvi, y mv2 para el bloque actual, el aparato de codificación/decodificación puede proporcionar los mvo y mv- derivados como candidatos construidos del bloque actual S1610.
Mientras tanto, cuando solo están disponibles mvo y mv2 para el bloque actual, es decir, cuando solo se deriva mvo y mv2 para el bloque actual, el aparato de codificación/decodificación puede derivar mv- para el bloque actual basándose en la Ec. 9 anterior S-62o. El aparato de codificación/decodificación puede derivar mv- insertando los mvo y mv2 derivados en la Ec. 9 anterior.
Posteriormente, el aparato de codificación/decodificación puede proporcionar los mvo y mv- derivados como candidatos construidos del bloque actual S ^ o .
Mientras tanto, se propondrá otra realización para derivar el candidato afín heredado de acuerdo con la presente divulgación. Al derivar un candidato afín heredado, la realización propuesta puede reducir la complejidad computacional, mejorando de esta manera el rendimiento de la codificación.
La Figura -7 ilustra posiciones de bloques vecinos explorados para derivar candidatos afines heredados.
El aparato de codificación/decodificación puede derivar hasta dos candidatos afines heredados de bloques vecinos del bloque actual. La Figura -7 ilustra bloques vecinos para los candidatos afines heredados. Por ejemplo, los bloques vecinos pueden incluir el bloque vecino A y el bloque vecino B mostrados en la Figura -7. El bloque vecino A puede representar el bloque vecino izquierdo Ao, y el bloque vecino B puede representar el bloque vecino superior Bo.
Por ejemplo, el aparato de codificación/decodificación puede comprobar la disponibilidad de los bloques vecinos en un orden específico y puede derivar un candidato afín heredado del bloque actual basándose en un bloque vecino confirmado en primer lugar como disponible. En otras palabras, el aparato de codificación/decodificación puede comprobar los bloques vecinos en un orden específico para ver si los bloques vecinos satisfacen una condición específica y derivar un candidato afín heredado del bloque actual basándose en un bloque vecino confirmado en primer lugar como disponible. Además, el aparato de codificación/decodificación puede derivar un candidato afín heredado del bloque actual basándose en un segundo bloque vecino confirmado para satisfacer la condición específica. En otras palabras, el aparato de codificación/decodificación puede derivar un candidato afín heredado del bloque actual basándose en un segundo bloque vecino confirmado para satisfacer la condición específica. En este punto, la disponibilidad puede significar que un bloque está codificado basándose en el modelo de movimiento afín, y la imagen de referencia del bloque es la misma que la imagen de referencia del bloque actual. En otras palabras, la condición específica puede indicar que un bloque está codificado basándose en el modelo de movimiento afín, y la imagen de referencia del bloque es la misma que la imagen de referencia del bloque actual. Además, por ejemplo, el orden específico se puede realizar desde el bloque vecino A al bloque vecino B. Mientras tanto, no se puede realizar un proceso de comprobación de depuración entre dos candidatos afines heredados (es decir, candidatos afines heredados derivados). El proceso de comprobación de depuración puede representar un proceso que comprueba si los candidatos son idénticos entre sí y elimina el candidato derivado más tarde si se encuentra que son idénticos.
La realización anterior propone un método para comprobar solo dos bloques vecinos (en concreto, el bloque vecino A y el bloque vecino B) y derivar el candidato afín heredado en lugar de comprobar todos los bloques vecinos existentes (es decir, el bloque vecino A, el bloque vecino B, el bloque vecino C, el bloque vecino D y el bloque vecino E) y derivar el candidato afín heredado. En este punto, el bloque vecino C puede representar el bloque vecino B1 de la esquina superior derecha, el bloque vecino D el bloque vecino A1 de la esquina inferior izquierda, y el bloque vecino E el bloque vecino B2 de la esquina superior izquierda.
Cuando se aplica predicción afín a cada bloque vecino para analizar la correlación espacial entre los bloques vecinos y el bloque actual, se puede utilizar una probabilidad de que se aplique predicción afín al bloque actual. Cuando se aplica la predicción afín a cada bloque vecino, la probabilidad de que se aplique la predicción afín al bloque actual se puede derivar como se muestra en la siguiente tabla.
T l 21
Figure imgf000024_0001
Haciendo referencia a la Tabla 2 anterior, se puede encontrar que la correlación espacial con el bloque actual es alta para el bloque vecino A y el bloque vecino B entre los bloques vecinos. Por lo tanto, a través de una realización que deriva el candidato afín heredado usando solo el bloque vecino A y el bloque vecino B que muestran una alta correlación espacial, se puede reducir el tiempo de procesamiento y se puede lograr un alto rendimiento de decodificación.
Mientras tanto, se puede realizar el proceso de comprobación de depuración para evitar que exista el mismo candidato en la lista de candidatos. Dado que el proceso de comprobación de depuración puede eliminar la redundancia, se puede obtener un efecto ventajoso en términos de eficiencia de codificación, pero, al mismo tiempo, la complejidad computacional puede aumentar debido al proceso de comprobación de depuración. En particular, dado que el proceso de comprobación de depuración para candidatos afines debe realizarse teniendo en cuenta el tipo afín (por ejemplo, si el modelo de movimiento afín es un modelo de movimiento afín de cuatro parámetros o un modelo de movimiento afín de seis parámetros), la imagen de referencia (o el índice de la imagen de referencia) y los MV de CP0, CP1 y CP2, la complejidad computacional es bastante alta. Por lo tanto, la presente realización propone un método que no realiza el proceso de comprobación de depuración entre el candidato afín heredado derivado del bloque vecino A (por ejemplo, heredado_A) y el candidato afín heredado derivado del bloque vecino B (por ejemplo, heredado_B). En el caso de los bloques vecinos A y B, están distantes entre sí y, por lo tanto, muestran una baja correlación espacial; por lo tanto, la posibilidad de que heredado_A y heredado_B sean iguales es baja. Por lo tanto, puede ser deseable que el proceso de comprobación de depuración no se realice entre los candidatos afines heredados.
Además, basándose en los motivos anteriores, se puede proponer un método para realizar el proceso de comprobación de depuración lo menos posible. Por ejemplo, el aparato de codificación/decodificación puede realizar el proceso de comprobación de depuración de tal manera que solo se comparen entre sí los MV de CP0 de los candidatos afines heredados.
Además, la presente divulgación propone un método para derivar un candidato construido diferente del obtenido por la realización anterior. En comparación con la realización anterior para derivar un candidato construido, la realización propuesta puede mejorar el rendimiento de la codificación al reducir la complejidad. La realización propuesta puede describirse como sigue. Además, cuando el número de candidatos afines heredados disponibles es menor que 2 (en concreto, cuando el número de candidatos afines heredados derivados es menor que 2), se pueden considerar candidatos afines construidos.
Por ejemplo, el aparato de codificación/decodificación puede comprobar mvo, mv-, y mv2 para el bloque actual. En otras palabras, el aparato de codificación/decodificación puede determinar si mvo, mv-i, y mv2 están disponibles entre los bloques vecinos del bloque actual. En este punto, mvo puede representar el candidato de CPMVP de CP0 del bloque actual, mv1 puede representar el candidato de CPMVP de CP1 del bloque actual, y mv2 puede representar el candidato de CPm Vp de CP2 del bloque actual.
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/decodificación puede determinar la disponibilidad de mvo dentro del primer grupo, determinar la disponibilidad de mv- dentro del segundo grupo, y la disponibilidad de mv2 dentro del tercer grupo.
Más específicamente, por ejemplo, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un primer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mvo. En otras palabras, mvo puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del primer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del primer grupo no satisfacen la condición específica, el mvo disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar en el orden del bloque vecino A dentro del primer grupo, el bloque vecino B y el bloque vecino C. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un segundo grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv-. En otras palabras, mv- puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del segundo grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del segundo grupo no satisfacen la condición específica, el mv- disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino D dentro del segundo grupo al bloque vecino E. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro de un tercer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv2. En otras palabras, mv2 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del tercer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del tercer grupo no satisfacen la condición específica, el mv2 disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino F dentro del tercer grupo al bloque vecino G. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Posteriormente, si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín de 4 parámetros, y mvo y mv- para el bloque actual están disponibles, el aparato de codificación/decodificación puede proporcionar los mvo y mv- derivados como candidatos construidos del bloque actual. Mientras tanto, si mvo y/o mv-para el bloque actual no están disponibles, es decir, si al menos uno de mvo y mv- no se deriva de bloques vecinos del bloque actual, el aparato de codificación/decodificación no puede añadir un candidato construido a la lista de MVP afines del bloque actual.
Además, si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín de 6 parámetros, y mva, mv1, y mv2 para el bloque actual están disponibles, el aparato de codificación/decodificación puede proporcionar los mv0, mv-i, y mv2 derivados como candidatos construidos del bloque actual. Mientras tanto, si mva, mv-iy/o mv2 para el bloque actual no están disponibles, en concreto, si al menos uno de mvo, mv1, y mv2 no se deriva de bloques vecinos del bloque actual, el aparato de codificación/decodificación no puede añadir un candidato construido a la lista de MVP afines del bloque actual.
La realización propuesta describe un método que considera los vectores de movimiento de los CP para generar un modelo de movimiento afín del bloque actual como candidatos construidos solo cuando todos los vectores de movimiento están disponibles. En este punto, la disponibilidad puede significar que la imagen de referencia de un bloque vecino es la misma que la imagen de referencia del bloque actual. En otras palabras, el candidato construido puede derivarse solo cuando existe un vector de movimiento que satisface la condición entre los vectores de movimiento de los bloques vecinos para los respectivos CP del bloque actual. Por lo tanto, si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín de 4 parámetros, el candidato construido puede considerarse solo cuando están disponibles los vectores de movimiento de CP0 y CP1 del bloque actual (es decir, mvo y mvi). Además, si el modelo de movimiento afín aplicado al bloque actual es un modelo de movimiento afín de 6 parámetros, el candidato construido puede considerarse solo cuando están disponibles los vectores de movimiento de CP0, CP1 y CP2 del bloque actual (es decir, mvo, mv-, y mv2). Por lo tanto, de acuerdo con la realización propuesta, la construcción adicional para derivar un vector de movimiento para un CP basándose en la Ec. 8 o 9 puede no ser necesaria. A través de la realización propuesta, se puede reducir la complejidad computacional para derivar el candidato construido. Además, dado que el candidato construido se determina solo cuando está disponible el candidato de CPMVP que tiene la misma imagen de referencia, puede mejorarse el rendimiento de codificación general.
Mientras tanto, no se puede realizar un proceso de comprobación de depuración entre un candidato afín heredado derivado y el candidato afín construido. El proceso de comprobación de depuración puede representar un proceso que comprueba si los candidatos son idénticos entre sí y elimina el candidato derivado más tarde si se encuentra que son idénticos.
La realización descrita anteriormente puede ilustrarse como se muestra en las Figuras 18 y 19.
La Figura 18 ilustra un ejemplo de derivación del candidato construido cuando se aplica un modelo de movimiento afín de cuatro parámetros al bloque actual.
Haciendo referencia a la Figura 18, el aparato de codificación/decodificación puede determinar si mvo y mv1 para el bloque actual están disponibles S1800. En otras palabras, el aparato de codificación/decodificación puede determinar si existen disponibles mv0 y mv1 en los bloques vecinos del bloque actual. En este punto, mv0 puede ser el candidato de CPMVP del CP0 del bloque actual, y mv1 puede ser el candidato de CPMVP de CP1.
El aparato de codificación/decodificación puede determinar si mv0 está disponible en el primer grupo y si mv1 está disponible en el segundo grupo.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro del primer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv0. En otras palabras, mv0 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del primer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del primer grupo no satisfacen la condición específica, puede que no exista el mv0 disponible. En este punto, por ejemplo, el orden específico se puede realizar en el orden del bloque vecino A dentro del primer grupo, el bloque vecino B y el bloque vecino C. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro del segundo grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv-i. En otras palabras, mv1 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del segundo grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del segundo grupo no satisfacen la condición específica, puede que no exista el mv- disponible. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino D dentro del segundo grupo al bloque vecino E. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Si mvo y mv- para el bloque actual están disponibles, en concreto, si se deriva mvo y mv- para el bloque actual, el aparato de codificación/decodificación puede proporcionar los mvo y mvi derivados como candidatos construidos del bloque actual S1810. Mientras tanto, si mvo y/o mv- para el bloque actual no están disponibles, es decir, si al menos uno de mvo y mv- no se deriva de bloques vecinos del bloque actual, el aparato de codificación/decodificación no puede añadir un candidato construido a la lista de MVP afines del bloque actual.
Mientras tanto, no se puede realizar un proceso de comprobación de depuración entre un candidato afín heredado derivado y el candidato afín construido. El proceso de comprobación de depuración puede representar un proceso que comprueba si los candidatos son idénticos entre sí y elimina el candidato derivado más tarde si se encuentra que son idénticos.
La Figura 19 ilustra un ejemplo de derivación del candidato construido cuando se aplica un modelo de movimiento afín de seis parámetros al bloque actual.
Haciendo referencia a la Figura 19, el aparato de codificación/decodificación puede determinar si mvo, mv-, y mv2 para el bloque actual están disponibles S-9oo. En otras palabras, el aparato de codificación/decodificación puede determinar si existen disponibles mvo, mv- y mv2 en los bloques vecinos del bloque actual. En este punto, mvo puede ser el candidato de CPMVP de CPo del bloque actual, mv- el candidato de CPMVP del CP-, y mv2 el candidato de CPMVP del CP2.
El aparato de codificación/decodificación puede determinar si mvo está disponible en el primer grupo, mv- en el segundo grupo y mv2 en el tercer grupo.
Específicamente, los bloques vecinos del bloque actual pueden dividirse en tres grupos, y los bloques vecinos pueden incluir un bloque vecino A, un bloque vecino B, un bloque vecino C, un bloque vecino D, un bloque vecino E, un bloque vecino F, y un bloque vecino G. El primer grupo puede incluir un vector de movimiento del bloque vecino A, un vector de movimiento del bloque vecino B y un vector de movimiento del bloque vecino C; el segundo grupo, un vector de movimiento del bloque vecino D y un vector de movimiento del bloque vecino E; y el tercer grupo, un vector de movimiento del bloque vecino F, y un vector de movimiento del bloque vecino G. El bloque vecino A puede representar un bloque vecino ubicado en la parte superior izquierda de una posición de muestra superior izquierda del bloque actual; el bloque vecino B, un bloque vecino ubicado en la parte superior de la posición de muestra superior izquierda del bloque actual; el bloque vecino C, un bloque vecino ubicado a la izquierda de la posición de muestra superior izquierda del bloque actual; el bloque vecino D, un bloque vecino ubicado en la parte superior de una posición de muestra superior derecha del bloque actual; el bloque vecino E, un bloque vecino situado en la parte superior derecha de la posición de muestra superior derecha del bloque actual; el bloque vecino F, un bloque vecino ubicado a la izquierda de la posición de muestra inferior izquierda del bloque actual; y el bloque vecino G, un bloque vecino ubicado en la parte inferior izquierda de la posición de muestra inferior izquierda del bloque actual.
El aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro del primer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mvo. En otras palabras, mvo puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del primer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del primer grupo no satisfacen la condición específica, el mvo disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar en el orden del bloque vecino A dentro del primer grupo, el bloque vecino B y el bloque vecino C. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro del segundo grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mvi. En otras palabras, mvi puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del segundo grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del segundo grupo no satisfacen la condición específica, el mv1 disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino D dentro del segundo grupo al bloque vecino E. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Además, el aparato de codificación/decodificación puede comprobar si los vectores de movimiento de los bloques vecinos dentro del tercer grupo satisfacen una condición específica de acuerdo con un orden específico. El aparato de codificación/decodificación puede derivar el vector de movimiento de un bloque vecino confirmado en primer lugar para satisfacer la condición durante el proceso de comprobación como mv2. En otras palabras, mv2 puede ser el primer vector de movimiento confirmado para satisfacer la condición específica de la comprobación de vectores de movimiento dentro del tercer grupo de acuerdo con un orden específico. Si los vectores de movimiento de los bloques vecinos dentro del tercer grupo no satisfacen la condición específica, el mv2 disponible puede no existir. En este punto, por ejemplo, el orden específico se puede realizar del bloque vecino F dentro del tercer grupo al bloque vecino G. Además, por ejemplo, la condición específica puede ser tal que la imagen de referencia para un vector de movimiento de un bloque vecino es la misma que la imagen de referencia del bloque actual.
Si mv0, mv-i, y mv2 para el bloque actual están disponibles, en concreto, si se deriva mvo, mv-i, y mv2 para el bloque actual, el aparato de codificación/decodificación puede proporcionar los mvo, mv1, y mv2 derivados como candidatos construidos del bloque actual S1910. Mientras tanto, si mvo, mv-y/o mv2 para el bloque actual no están disponibles, en concreto, si al menos uno de mvo, mv-, y mv2 no se deriva de bloques vecinos del bloque actual, el aparato de codificación/decodificación no puede añadir un candidato construido a la lista de MVP afines del bloque actual.
Mientras tanto, no se puede realizar un proceso de comprobación de depuración entre un candidato afín heredado derivado y el candidato afín construido.
Mientras tanto, cuando el número de candidatos afines derivados es menor que 2 (en concreto, cuando el número de candidatos afines heredados y/o el número de candidatos afines construidos es menor que 2), se puede añadir un candidato HEVC AMVP a la lista de MVP afines del bloque actual.
Por ejemplo, el candidato HEVC AMVP puede derivarse en el siguiente orden.
Más específicamente, cuando el número de candidatos afines derivados es menor que 2, y el CPMV0 del candidato afín construido está disponible, el CPMV0 puede usarse como el candidato de MVP afín. En otras palabras, cuando el número de candidatos afines derivados es menor que 2 y el CPMV0 del candidato afín construido está disponible (en concreto, cuando el número de candidatos afines derivados es menor que 2 y se deriva el CPMV0 del candidato afín construido), el CPMV0 del candidato afín construido puede derivarse como un primer candidato de MVP afín que incluye CPMV0, CPMV1 y CPMV2.
Además, a continuación, cuando el número de candidatos afines derivados es menor que 2 y el CPMV1 del candidato afín construido está disponible, el CPMV1 puede utilizarse como el candidato de MVP afín. En otras palabras, cuando el número de candidatos afines derivados es menor que 2 y el CPMV1 del candidato afín construido está disponible (en concreto, cuando el número de candidatos afines derivados es menor que 2 y se deriva el CPMV1 del candidato afín construido), el CPMV1 del candidato afín construido puede derivarse como un segundo candidato de MVP afín que incluye CPMV0, CPMV1 y CPMV2.
Además, a continuación, cuando el número de candidatos afines derivados es menor que 2 y el CPMV2 del candidato afín construido está disponible, el CPMV2 puede utilizarse como el candidato de MVP afín. En otras palabras, cuando el número de candidatos afines derivados es menor que 2 y el CPMV2 del candidato afín construido está disponible (en concreto, cuando el número de candidatos afines derivados es menor que 2 y se deriva el CPMV2 del candidato afín construido), el CPMV2 del candidato afín construido puede derivarse como un tercer candidato de MVP afín que incluye CPMV0, CPMV1 y CPMV2.
Además, a continuación, cuando el número de candidatos afines derivados es menor que 2, se puede utilizar 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 la información de movimiento de un bloque vecino temporal del bloque actual. En otras palabras, cuando el número de candidatos afines derivados es menor que 2, se puede derivar un vector de movimiento de un bloque vecino temporal del bloque actual como tercer candidato de MVP afín que incluye CPMV0, CPMV1 y CPMV2. El bloque vecino temporal puede indicar un bloque coubicado dentro de una imagen coubicada correspondiente al bloque actual.
Además, a continuación, cuando el número de candidatos afines derivados es menor que 2, se puede utilizar un vector de movimiento cero (MV) como el candidato de MVP afín. En otras palabras, cuando el número de candidatos afines derivados es menor que 2, el vector de movimiento cero puede derivarse como el tercer candidato de MVP afín que incluye CPMV0, CPMV1 y CPMV2. El vector de movimiento cero puede representar un vector de movimiento cuyos elementos son todos ceros.
Las etapas de procesamiento que usan los CPMV de candidatos afines construidos reutilizan los MV ya considerados para la generación de candidatos afines construidos, lo que reduce de esta manera la complejidad del procesamiento en comparación con el método existente para derivar candidatos AMVP de HEVC.
Mientras tanto, la presente divulgación propone otra realización para derivar el candidato afín heredado.
Para derivar el candidato afín heredado, se necesita información de predicción afín de bloques vecinos y, más específicamente, se necesita información de predicción afín de la siguiente manera:
1) Bandera afín (bandera afín) que indica si se ha aplicado codificación basada en predicción afín a los bloques vecinos, y
2) Información de movimiento de los bloques vecinos.
Si se aplica un modelo de movimiento afín de cuatro parámetros a los bloques vecinos, la información de movimiento de los bloques vecinos puede incluir información de movimiento L0 e información de movimiento L1 para CP0 e información de movimiento L0 e información de movimiento L1 para CP1. Además, si se aplica un modelo de movimiento afín de seis parámetros a los bloques vecinos, la información de movimiento de los bloques vecinos puede incluir información de movimiento L0 e información de movimiento L1 para CP0 e información de movimiento L0 e información de movimiento L1 para CP2. En este punto, la información de movimiento L0 puede representar información de movimiento para la Lista 0 (L0), y la información de movimiento L1 puede representar información de movimiento para la Lista 1 (L1). La información de movimiento L0 puede incluir el índice de imagen de referencia L0 y el vector de movimiento L0, y la información de movimiento L1 puede incluir el índice de imagen de referencia L1 y el vector de movimiento L1.
Como se describió anteriormente, en el caso de la predicción afín, se debe almacenar una gran cantidad de información, lo que puede ser la causa principal que aumenta el coste del hardware en la implementación real de un aparato de codificación/decodificación. En particular, si un bloque vecino está ubicado por encima de un bloque actual y pertenece al límite de la CTU, se debe usar una memoria intermedia de línea para almacenar información relacionada con la predicción afín del bloque vecino, lo que puede aumentar aún más el coste de implementación. En lo que sigue, el problema puede denominarse problema de memoria intermedia de línea. A este respecto, la presente divulgación propone una realización para derivar un candidato afín heredado que minimiza el coste del hardware no almacenando o reduciendo la información relacionada con la predicción afín en la memoria intermedia de línea. La realización propuesta puede mejorar el rendimiento de la codificación al reducir la complejidad computacional al derivar el candidato afín heredado. Mientras tanto, debe tenerse en cuenta que la memoria intermedia de línea ya almacena información de movimiento en un bloque de tamaño 4 x 4, y si se almacena adicionalmente la información relacionada con la predicción afín, la cantidad de información almacenada puede aumentar tres veces la cantidad de almacenamiento existente.
En la presente realización, no se puede almacenar información adicional sobre predicción afín en la memoria intermedia de línea, y cuando la información dentro de la memoria intermedia de línea tiene que utilizarse para generar el candidato afín heredado, la generación del candidato afín heredado puede limitarse.
Las Figuras 20a a 20b ilustran una realización para derivar el candidato afín heredado.
Haciendo referencia a la Figura 20a, cuando el bloque vecino B del bloque actual (en concreto, el bloque vecino por encima del bloque actual) no pertenece a la misma CTU que el bloque actual, el bloque vecino B no puede usarse para generar el candidato afín heredado. Mientras tanto, aunque el bloque vecino A tampoco pertenece a la misma CTU que el bloque actual, la información sobre el bloque vecino A no se almacena en la memoria intermedia de línea y, por lo tanto, el bloque vecino A puede usarse para la generación del candidato afín heredado. Por lo tanto, de acuerdo con la presente realización, solo cuando el bloque vecino por encima del bloque actual pertenece a la misma CTU que el bloque actual, el bloque vecino puede usarse para derivar el candidato afín heredado. Además, cuando el bloque vecino por encima del bloque actual no pertenece a la misma CTU que el bloque actual, el bloque vecino superior no puede utilizarse para derivar el candidato afín heredado.
Haciendo referencia a la Figura 20b, el bloque vecino B del bloque actual (en concreto, el bloque vecino por encima del bloque actual) puede pertenecer a la misma CTU que el bloque actual. En este caso, el aparato de codificación/decodificación puede generar el candidato afín heredado haciendo referencia al bloque vecino B.
La Figura 21 ilustra un método de codificación de vídeo realizado por un aparato de codificación de acuerdo con la presente divulgación. El método desvelado en la Figura 21 puede realizarse mediante el aparato de codificación desvelado en la Figura 2. Más específicamente, por ejemplo, pueden realizarse las etapas S2100 a S2120 por el predictor del aparato de codificación, la etapa S2130 por el restador del aparato de codificación y la etapa S2140 por el codificador por entropía del aparato de codificación. Además, aunque no se muestra en la figura, el proceso para derivar muestras de predicción para el bloque actual basándose en los CPMV puede realizarse por el predictor del aparato de codificación, el restador del aparato de codificación puede realizar el proceso para derivar muestras residuales para el bloque actual basándose en las muestras originales y muestras de predicción para el bloque actual, el transformador del aparato de codificación puede realizar el proceso para generar información sobre residuos para el bloque actual basándose en las muestras residuales, y el codificador del aparato de codificación puede realizar el proceso para codificar información sobre los residuos.
El aparato de codificación construye una lista de candidatos de predictor de vector de movimiento (MVP) afines para el bloque actual S2100. El aparato de codificación puede construir una lista de candidatos de MVP afines que incluye candidatos de MVP afines para el bloque actual. El número máximo de candidatos de MVP afines de la lista de candidatos de MVP afines puede ser 2.
Además, como un ejemplo, la lista de candidatos de MVP afines puede incluir candidatos de MVP afines heredados. El aparato de codificación puede comprobar si están disponibles candidatos MVP afines heredados del bloque actual, y si los candidatos MVP afines heredados están disponibles, se puede derivar el candidato MVP afín heredado. Por ejemplo, los candidatos de MVP afines heredados se pueden derivar basándose en los bloques vecinos del bloque actual, y el número máximo de candidatos de MVP afines heredados puede ser 2. La disponibilidad de los bloques vecinos puede comprobarse en un orden específico, y los candidatos de MVP afines heredados pueden derivarse basándose en los bloques vecinos disponibles comprobados. En otras palabras, la disponibilidad de los bloques vecinos puede comprobarse en un orden específico, se puede derivar un primer candidato de MVP afín heredado basándose en el bloque vecino disponible que se comprobó en primer lugar, y se puede derivar un segundo candidato de MVP afín heredado basándose en el bloque vecino disponible comprobado en segundo lugar. La disponibilidad puede significar que un bloque vecino se codifica basándose en el modelo de movimiento afín, y la imagen de referencia del bloque vecino es la misma que la imagen de referencia del bloque actual. En otras palabras, un bloque vecino disponible puede referirse a un bloque vecino codificado de acuerdo con un modelo de movimiento afín (es decir, un bloque vecino al que se aplica predicción afín) y cuya imagen de referencia es la misma que la imagen de referencia del bloque actual. Más 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 disponible comprobado en primer lugar y 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 disponible comprobado en segundo lugar y 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 de la Ec. 1 o la Ec. 3 anterior.
Además, en otras palabras, los bloques vecinos pueden comprobarse en un orden específico para ver si los bloques vecinos satisfacen una condición específica, y los candidatos MVP afines heredados pueden derivarse basándose en los bloques vecinos que satisfacen la condición específica comprobada. En otras palabras, los bloques vecinos pueden comprobarse en un orden específico para ver si los bloques vecinos satisfacen la condición específica, un primer candidato de MVP afín heredado puede derivarse basándose en el bloque vecino comprobado en primer lugar para satisfacer la condición específica, y un segundo candidato de MVP afín heredado se puede derivar basándose en el segundo bloque vecino comprobado para satisfacer la condición específica. Más 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 de los bloques vecinos comprobados en primer lugar para satisfacer la condición específica y derivar el primer candidato de m Vp 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 de los bloques vecinos comprobados en segundo lugar para satisfacer la condición específica y derivar el segundo candidato m Vp afín heredado que incluye los vectores de movimiento como candidatos CPMVP. El modelo de movimiento afín puede derivarse de la Ec. 1 o la Ec. 3 anterior. Mientras tanto, la condición específica puede indicar que el bloque vecino está codificado de acuerdo con el modelo de movimiento afín, y la imagen de referencia del bloque vecino es la misma que la imagen de referencia del bloque actual. En otras palabras, el bloque vecino que satisface la condición específica puede codificarse de acuerdo con un modelo de movimiento afín (en concreto, se aplica predicción afín al bloque vecino), y la imagen de referencia es la misma que la imagen de referencia del bloque actual.
En este punto, por ejemplo, los bloques vecinos pueden incluir el bloque vecino izquierdo, el bloque vecino superior, el bloque vecino de la esquina superior derecha, el bloque vecino de la esquina inferior izquierda y el bloque vecino de la esquina superior izquierda del bloque actual. En este caso, el orden específico puede ser un orden del bloque vecino izquierdo al bloque vecino de la esquina inferior izquierda al bloque vecino superior al bloque vecino de la esquina superior derecha al bloque vecino de la esquina superior izquierda.
O, 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.
O, por ejemplo, los bloques vecinos pueden incluir el bloque vecino izquierdo, y si el bloque vecino superior pertenece a 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, si el bloque vecino superior no pertenece a la CTU actual, los bloques vecinos no pueden incluir el bloque vecino superior. En este caso, solo se puede comprobar el bloque vecino izquierdo.
Mientras tanto, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino de la esquina inferior izquierda puede ser el bloque que incluye una muestra en las coordenadas de (-1, H), el bloque vecino a la izquierda puede ser el bloque que incluye una muestra en las coordenadas de (01, H-1), el bloque vecino en la esquina superior derecha puede ser el bloque que incluye una muestra en las coordenadas de (W, -1), el bloque vecino superior puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), el bloque vecino de la esquina superior izquierda puede ser el bloque que incluye una muestra en el coordenadas de (-1, -1). En otras palabras, el bloque vecino izquierdo puede ser el bloque vecino izquierdo en la posición más baja entre los bloques vecinos izquierdos del bloque actual, y el bloque vecino superior puede ser el bloque vecino superior en la posición más a la izquierda entre los bloques vecinos superiores del bloque actual.
Además, como un ejemplo, si 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 si el candidato de MVP afín construido está disponible, se puede derivar el candidato de MVP afín construido. Además, por ejemplo, después de derivar el candidato de MVP afín heredado, se puede derivar el candidato de MVP afín construido. Si el número de candidatos de MVP afines derivados (en concreto, el número de MVP afines heredados) es menor que 2 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 este punto, el candidato de MVP afín construido puede incluir vectores de movimiento candidatos para los CP. El candidato de MVP afín construido puede estar disponible cuando todos los vectores de movimiento candidatos están disponibles.
Por ejemplo, si se aplica un modelo de movimiento afín de cuatro parámetros al bloque actual, los CP del bloque actual pueden incluir CP0 y CP1. Si el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento candidato para el CP1 está disponible, el candidato de MVP afín construido puede estar disponible y la lista de candidatos de MVP afines puede incluir el candidato de MVP afín construido. En este punto, el CP0 puede representar la posición superior izquierda del bloque actual y el CP1 puede representar la posición superior derecha del bloque actual.
El candidato de MVP afín construido puede incluir el vector de movimiento candidato para CP0 y el vector de movimiento candidato para CP1. El vector de movimiento candidato para CP0 puede ser el vector de movimiento de un primer bloque, y el vector de movimiento candidato para CP1 puede ser el vector de movimiento de un segundo bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En otras palabras, el vector de movimiento candidato para CP1 puede ser el vector de movimiento del bloque cuya imagen de referencia confirmada en primer lugar al comprobar los bloques vecinos dentro del primer grupo de acuerdo con un primer orden es la misma que la imagen de referencia del bloque actual. La disponibilidad puede indicar que el bloque vecino existe, y el bloque vecino está codificado por inter predicción. En este punto, si la imagen de referencia del primer bloque dentro del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Mientras tanto, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino A puede ser el bloque que incluye una muestra en las coordenadas de (-1, -1), el bloque vecino B puede ser el bloque que incluye una muestra en las coordenadas de (0, -1), el bloque vecino C puede ser el bloque que incluye una muestra en las coordenadas de (-1, 0), el bloque vecino D puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), y el bloque vecino E puede ser el bloque que incluye una muestra en las coordenadas de (W, -1). En otras palabras, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual, el bloque vecino B el bloque vecino superior en la posición más a la izquierda entre los bloques vecinos superiores del bloque actual, el bloque vecino C el bloque vecino izquierdo en la posición más alta entre los bloques vecinos a la izquierda del bloque actual, el bloque vecino D el bloque vecino superior en la posición más a la derecha entre los bloques vecinos superiores del bloque actual, y el bloque vecino E el bloque vecino de la esquina superior derecha del bloque actual.
Mientras tanto, si al menos uno del vector de movimiento candidato de CP0 y el vector de movimiento candidato de CP1 no está disponible, el candidato de MVP afín construido puede no estar disponible.
O, por ejemplo, si se aplica un modelo de movimiento afín de seis parámetros al bloque actual, los CP del bloque actual pueden incluir c P0, CP1 y CP2. Si el vector de movimiento candidato para el CP0 está disponible, el vector de movimiento candidato para el c P1 está disponible y el vector de movimiento candidato 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 MVP afín construido. En este punto, el CP0 puede representar la posición superior izquierda del bloque actual, el CP1 puede representar la posición superior derecha del bloque actual y el CP2 puede representar la posición inferior izquierda del bloque actual.
El candidato de MVP afín construido puede incluir 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 puede ser el vector de movimiento de un primer bloque, el vector de movimiento candidato para CP1 puede ser el vector de movimiento de un segundo bloque y el vector de movimiento candidato para CP2 puede ser el vector de movimiento de un tercer bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del primer bloque dentro del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Además, el tercer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el tercer grupo en un tercer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del tercer bloque dentro del tercer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP2 puede estar disponible. Además, por ejemplo, el tercer grupo puede incluir el bloque vecino F y el bloque vecino G, y el tercer orden específico puede ser un orden del bloque vecino F al bloque vecino G.
Mientras tanto, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino A puede ser el bloque que incluye una muestra en las coordenadas de (-1, -1), el bloque vecino B puede ser el bloque que incluye una muestra en las coordenadas de (0, -1), el bloque vecino C puede ser el bloque que incluye una muestra en las coordenadas de (-1, 0), el bloque vecino D puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), el bloque vecino E puede ser el bloque que incluye una muestra en las coordenadas de (W, -1), y el bloque vecino F puede ser el bloque que incluye una muestra en las coordenadas de (-1, H-1), y el bloque vecino G puede ser el bloque que incluye una muestra en las coordenadas de (-1, H). En otras palabras, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual, el bloque vecino B el bloque vecino superior en la posición más a la izquierda entre los bloques vecinos superiores del bloque actual, el bloque vecino C el bloque vecino izquierdo en la posición más alta entre los bloques vecinos a la izquierda del bloque actual, el bloque vecino D el bloque vecino superior en la posición más a la derecha entre los bloques vecinos superiores del bloque actual, el bloque vecino E el bloque vecino en la esquina superior derecha del bloque actual, el bloque vecino F el bloque vecino izquierdo en la posición más baja entre los bloques vecinos izquierdos del bloque actual, y el bloque vecino G el bloque vecino de la esquina inferior izquierda del bloque actual.
Mientras tanto, si al menos uno del vector de movimiento candidato de CP0, el vector de movimiento candidato de CP1 y el vector de movimiento candidato de CP2 no está disponible, el candidato MVP afín construido puede no estar disponible.
Posteriormente, la lista de candidatos de MVP afines se puede derivar basándose en las etapas descritas a continuación.
Por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, y el vector de movimiento para CP0 está disponible, el aparato de codificación puede derivar un primer candidato de MVP afín. En este punto, el primer candidato de MVP afín puede ser el candidato de MVP afín que incluye el vector de movimiento para CP0 como los vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, y el vector de movimiento para CP1 está disponible, el aparato de codificación puede derivar un segundo candidato de MVP afín. En este punto, el segundo candidato de MVP afín puede ser el candidato de MVP afín que incluye el vector de movimiento para CP1 como los vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, y el vector de movimiento para CP2 está disponible, el aparato de codificación puede derivar un tercer candidato de MVP afín. En este punto, el tercer candidato de MVP afín puede ser el candidato de MVP afín que incluye el vector de movimiento para CP2 como los vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, el aparato de codificación puede derivar un cuarto candidato de MVP afín que incluye un MVP temporal derivado basándose en un bloque vecino temporal del bloque actual como los vectores de movimiento candidatos para los CP. El bloque vecino temporal puede referirse al mismo bloque coubicado dentro de la misma imagen coubicada correspondiente al bloque actual. El MVP temporal puede derivarse basándose en el vector de movimiento del bloque vecino temporal.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, el aparato de codificación puede derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como los vectores de movimiento candidatos para los CP. El vector de movimiento cero puede representar un vector de movimiento cuyos elementos son todos ceros.
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 S2110. El aparato de codificación puede derivar los CPMV para los CP del bloque actual que muestran el coste de RD óptimo y puede seleccionar, entre los candidatos de MVP afines, un candidato de MVP afín más similar a los CPMV como el candidato de MVP afín para el bloque actual. El aparato de codificación puede derivar los CPMVP para los CP del bloque actual basándose en el candidato de MVP afín seleccionado entre los candidatos de MVP afines. Más específicamente, si un candidato MVP afín incluye un vector de movimiento candidato para CP0 y un vector de movimiento candidato para CP1, el vector de movimiento candidato para CP0 del candidato MVP afín puede derivarse como CPMVP del CP0, y el vector de movimiento candidato para CP1 del candidato de MVP afín puede derivarse como CPMVP del CP1. Además, si un candidato de MVP afín incluye un vector de movimiento candidato para CP0, un vector de movimiento candidato para CP1 y un vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato de MVP afín puede derivarse como CPMVP del CP0, el vector de movimiento candidato para CP1 del candidato MVP afín puede derivarse como CPMVP del CP1, y el vector de movimiento candidato para CP2 del candidato MVP afín puede derivarse como CPMVP del CP2. Además, si un candidato MVP afín incluye un vector de movimiento candidato para CP0 y un vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato MVP afín puede derivarse como CPMVP del CP0, y el vector de movimiento candidato para CP2 del candidato de MVP afín puede derivarse como CPMVP del CP2.
El aparato de codificación puede codificar un índice de candidato de MVP afín que indica el candidato de MVP afín seleccionado entre los candidatos de MVP afines. El índice de candidato de MVP afín puede indicar el candidato de MVP afín entre los candidatos de MVP afines incluidos en la lista de candidatos del predictor de vector de movimiento (MVP) afines para el bloque actual.
El aparato de codificación deriva los CPMV para los CP del bloque actual S2120. El aparato de codificación puede derivar los CPMV para los respectivos CP del bloque actual.
El aparato de codificación deriva diferencias de vector de movimiento de punto de control (CPMVD) para los CP del bloque actual basándose en los CPMVP y los CPMV S2130. El aparato de codificación puede derivar las CPMVD para los CP del bloque actual basándose en los CPMVP y los CPMV para los respectivos CP.
El aparato de codificación codifica información de predicción de movimiento que incluye información sobre las CPMVD S2140. El aparato de codificación puede emitir la información de predicción de movimiento que incluye la información sobre las CPMVD en forma de un flujo de bits. En otras palabras, el aparato de codificación puede emitir información de imagen que incluye la información de predicción de movimiento en forma de un flujo de bits. El aparato de codificación puede codificar información sobre las CPMVD para los respectivos CP, donde la información de predicción de movimiento puede incluir información sobre las CPMVD.
Además, la predicción de movimiento puede incluir el índice de candidato de MVP afín. El índice de candidato de MVP afín puede indicar el candidato de MVP afín seleccionado entre los candidatos de MVP afines incluidos en la lista de candidatos de predictor de vector de movimiento (MVP) afines para el bloque actual.
Mientras tanto, como un ejemplo, el aparato de codificación puede derivar muestras de predicción para el bloque actual basándose en los CPMV, derivar muestras residuales para el bloque actual basándose en las muestras originales y muestras de predicción para el bloque actual, generar información sobre los residuos para el bloque actual basándose en las muestras residuales, y codificar información sobre los residuos. La información de la imagen puede incluir información sobre los residuos.
Mientras tanto, el flujo de bits puede transmitirse al aparato de decodificación a través de una red o un medio de almacenamiento (digital). En este punto, la red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos tipos de medios de almacenamiento, que incluyen USB, SD, CD, DVD, Bluray, HDD y SSD.
La Figura 22 ilustra un aparato de codificación que realiza un método de codificación de vídeo de acuerdo con la presente divulgación. El método desvelado en la Figura 21 puede realizarse mediante el aparato de codificación desvelado en la Figura 22. Más específicamente, por ejemplo, el predictor del aparato de codificación puede realizar las etapas S2100 a S2130 de la Figura 21, y el codificador por entropía del aparato de codificación de la Figura 22 puede realizar la etapa S2140 de la Figura 21. Además, aunque no se muestra en la figura, un proceso para derivar muestras de predicción para el bloque actual basándose en los CPMV puede realizarse por el predictor del aparato de codificación de la Figura 22, un restador del aparato de codificación de la Figura 22 puede realizar el proceso para derivar muestras residuales para el bloque actual basándose en las muestras originales y las muestras de predicción para el bloque actual, el transformador del aparato de codificación puede realizar un proceso para generar información sobre los residuos para el bloque actual basándose en las muestras residuales, y el codificador por entropía del aparato de codificación de la Figura 22 puede realizar un proceso para codificar información sobre los residuos.
La Figura 23 ilustra un método de decodificación de vídeo realizado por un aparato de decodificación de acuerdo con la presente divulgación. El método desvelado en la Figura 23 puede realizarse mediante el aparato de decodificación desvelado en la Figura 3. Más específicamente, por ejemplo, la etapa S2300 de la Figura 23 puede realizarse por el decodificador por entropía del aparato de decodificación, pueden realizarse las etapas S2310 a S2350 por el predictor del aparato de decodificación y puede realizarse la etapa S2360 por el sumador del aparato de decodificación. Además, aunque no se muestra en la figura, el decodificador por entropía del aparato de decodificación puede realizar un proceso para obtener información sobre los residuos de un bloque actual a través de un flujo de bits, y puede realizarse un proceso para derivar las muestras residuales para el bloque actual basándose en la información residual por el transformador inverso del aparato de decodificación.
El aparato de decodificación obtiene información de predicción de movimiento en un bloque actual de un flujo de bits S2300. El aparato de decodificación puede obtener información de imagen que incluye la información de predicción de movimiento del flujo de bits.
Además, por ejemplo, la información de predicción de movimiento puede incluir información sobre diferencias de vector de Movimiento de punto de control (CPMVD) para puntos de control (CP) del bloque actual. En otras palabras, la información de predicción de movimiento puede incluir información sobre las CPMVD para los respectivos CP del bloque actual.
Además, por ejemplo, la información de predicción de movimiento puede incluir un índice de candidato de predictor de vector de movimiento (MVP) afín para el bloque actual. El índice de candidato de MVP afín puede indicar uno de los candidatos de MVP afines incluidos en la lista de candidatos de MVP afines para el bloque actual.
El aparato de decodificación construye una lista de candidatos de MVP afines para el bloque actual S2310. El aparato de decodificación puede construir una lista de candidatos de MVP afines que incluye candidatos de MVP afines para el bloque actual. El número máximo de candidatos de MVP afines de la lista de candidatos de MVP afines puede ser 2.
Además, como un ejemplo, la lista de candidatos de MVP afines puede incluir candidatos de MVP afines heredados. El aparato de decodificación puede comprobar si están disponibles candidatos MVP afines heredados del bloque actual, y si los candidatos MVP afines heredados están disponibles, se puede derivar el candidato MVP afín heredado. Por ejemplo, los candidatos de MVP afines heredados se pueden derivar basándose en los bloques vecinos del bloque actual, y el número máximo de candidatos de MVP afines heredados puede ser 2. La disponibilidad de los bloques vecinos puede comprobarse en un orden específico, y los candidatos de MVP afines heredados pueden derivarse basándose en los bloques vecinos disponibles comprobados. En otras palabras, la disponibilidad de los bloques vecinos puede comprobarse en un orden específico, se puede derivar un primer candidato de MVP afín heredado basándose en el bloque vecino disponible que se comprobó en primer lugar, y se puede derivar un segundo candidato de MVP afín heredado basándose en el bloque vecino disponible comprobado en segundo lugar. La disponibilidad puede significar que un bloque vecino se codifica basándose en el modelo de movimiento afín, y la imagen de referencia del bloque vecino es la misma que la imagen de referencia del bloque actual. En otras palabras, un bloque vecino disponible puede referirse a un bloque vecino codificado de acuerdo con un modelo de movimiento afín (es decir, un bloque vecino al que se aplica predicción afín) y cuya imagen de referencia es la misma que la imagen de referencia del bloque actual. Más específicamente, el aparato de decodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque vecino disponible comprobado en primer lugar y derivar el primer candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. Además, el aparato de decodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín del bloque vecino disponible comprobado en segundo lugar y 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 de la Ec. 1 o la Ec. 3 anterior.
Además, en otras palabras, los bloques vecinos pueden comprobarse en un orden específico para ver si los bloques vecinos satisfacen una condición específica, y los candidatos MVP afines heredados pueden derivarse basándose en los bloques vecinos que satisfacen la condición específica comprobada. En otras palabras, los bloques vecinos pueden comprobarse en un orden específico para ver si los bloques vecinos satisfacen la condición específica, un primer candidato de MVP afín heredado puede derivarse basándose en el bloque vecino comprobado en primer lugar para satisfacer la condición específica, y un segundo candidato de MVP afín heredado se puede derivar basándose en el segundo bloque vecino comprobado para satisfacer la condición específica. Más específicamente, el aparato de decodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín de los bloques vecinos comprobados en primer lugar para satisfacer la condición específica y derivar el primer candidato de MVP afín heredado que incluye los vectores de movimiento como candidatos de CPMVP. Además, el aparato de decodificación puede derivar vectores de movimiento para los CP del bloque actual basándose en el modelo de movimiento afín de los bloques vecinos comprobados en segundo lugar para satisfacer la condición específica y derivar el segundo candidato m Vp afín heredado que incluye los vectores de movimiento como candidatos CPMVP. El modelo de movimiento afín puede derivarse de la Ec. 1 o la Ec. 3 anterior. Mientras tanto, la condición específica puede indicar que el bloque vecino está codificado de acuerdo con el modelo de movimiento afín, y la imagen de referencia del bloque vecino es la misma que la imagen de referencia del bloque actual. En otras palabras, el bloque vecino que satisface la condición específica puede codificarse de acuerdo con un modelo de movimiento afín (en concreto, se aplica predicción afín al bloque vecino), y la imagen de referencia es la misma que la imagen de referencia del bloque actual.
En este punto, por ejemplo, los bloques vecinos pueden incluir el bloque vecino izquierdo, el bloque vecino superior, el bloque vecino de la esquina superior derecha, el bloque vecino de la esquina inferior izquierda y el bloque vecino de la esquina superior izquierda del bloque actual. En este caso, el orden específico puede ser un orden del bloque vecino izquierdo al bloque vecino de la esquina inferior izquierda al bloque vecino superior al bloque vecino de la esquina superior derecha al bloque vecino de la esquina superior izquierda.
O, 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.
O, por ejemplo, los bloques vecinos pueden incluir el bloque vecino izquierdo, y si el bloque vecino superior pertenece a 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, si el bloque vecino superior no pertenece a la CTU actual, los bloques vecinos no pueden incluir el bloque vecino superior. En este caso, solo se puede comprobar el bloque vecino izquierdo. En otras palabras, si el bloque vecino superior del bloque actual pertenece a la unidad de árbol de codificación (CTU) actual, que incluye el bloque actual, el bloque vecino superior puede usarse para derivar el candidato de MVP afín heredado, y si el bloque vecino superior del bloque actual no pertenece a la CTU actual, el bloque vecino superior no se puede utilizar para derivar el candidato de m Vp afín heredado.
Mientras tanto, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino de la esquina inferior izquierda puede ser el bloque que incluye una muestra en las coordenadas de (-1, H), el bloque vecino a la izquierda puede ser el bloque que incluye una muestra en las coordenadas de (01, H-1), el bloque vecino en la esquina superior derecha puede ser el bloque que incluye una muestra en las coordenadas de (W, -1), el bloque vecino superior puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), el bloque vecino de la esquina superior izquierda puede ser el bloque que incluye una muestra en el coordenadas de (-1, -1). En otras palabras, el bloque vecino izquierdo puede ser el bloque vecino izquierdo en la posición más baja entre los bloques vecinos izquierdos del bloque actual, y el bloque vecino superior puede ser el bloque vecino superior en la posición más a la izquierda entre los bloques vecinos superiores del bloque actual.
Además, como un ejemplo, si 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 decodificación puede comprobar si el candidato de MVP afín construido del bloque actual está disponible, y si el candidato de MVP afín construido está disponible, se puede derivar el candidato de MVP afín construido. Además, por ejemplo, después de derivar el candidato de MVP afín heredado, se puede derivar el candidato de MVP afín construido. Si el número de candidatos de MVP afines derivados (en concreto, el número de MVP afines heredados) es menor que 2 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 este punto, el candidato de MVP afín construido puede incluir vectores de movimiento candidatos para los CP. El candidato de MVP afín construido puede estar disponible cuando todos los vectores de movimiento candidatos están disponibles.
Por ejemplo, si se aplica un modelo de movimiento afín de cuatro parámetros al bloque actual, los CP del bloque actual pueden incluir CP0 y CP1. Si el vector de movimiento candidato para el CP0 está disponible y el vector de movimiento candidato para el CP1 está disponible, el candidato de MVP afín construido puede estar disponible y la lista de candidatos de MVP afines puede incluir el candidato de MVP afín construido. En este punto, el CP0 puede representar la posición superior izquierda del bloque actual y el CP1 puede representar la posición superior derecha del bloque actual.
El candidato de MVP afín construido puede incluir el vector de movimiento candidato para CP0 y el vector de movimiento candidato para CP1. El vector de movimiento candidato para CP0 puede ser el vector de movimiento de un primer bloque, y el vector de movimiento candidato para CP1 puede ser el vector de movimiento de un segundo bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En otras palabras, el vector de movimiento candidato para CP1 puede ser el vector de movimiento del bloque cuya imagen de referencia confirmada en primer lugar al comprobar los bloques vecinos dentro del primer grupo de acuerdo con un primer orden es la misma que la imagen de referencia del bloque actual. La disponibilidad puede indicar que el bloque vecino existe, y el bloque vecino está codificado por inter predicción. En este punto, si la imagen de referencia del primer bloque dentro del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para 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 una orden del bloque vecino A al bloque vecino B, y a continuación al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Mientras tanto, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino A puede ser el bloque que incluye una muestra en las coordenadas de (-1, -1), el bloque vecino B puede ser el bloque que incluye una muestra en las coordenadas de (0, -1), el bloque vecino C puede ser el bloque que incluye una muestra en las coordenadas de (-1, 0), el bloque vecino D puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), y el bloque vecino E puede ser el bloque que incluye una muestra en las coordenadas de (W, -1). En otras palabras, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual, el bloque vecino B el bloque vecino superior en la posición más a la izquierda entre los bloques vecinos superiores del bloque actual, el bloque vecino C el bloque vecino izquierdo en la posición más alta entre los bloques vecinos a la izquierda del bloque actual, el bloque vecino D el bloque vecino superior en la posición más a la derecha entre los bloques vecinos superiores del bloque actual, y el bloque vecino E el bloque vecino de la esquina superior derecha del bloque actual.
Mientras tanto, si al menos uno del vector de movimiento candidato de CP0 y el vector de movimiento candidato de CP1 no está disponible, el candidato de MVP afín construido puede no estar disponible.
O, por ejemplo, si se aplica un modelo de movimiento afín de seis parámetros al bloque actual, los CP del bloque actual pueden incluir CP0, CP1 y CP2. Si el vector de movimiento candidato para el CP0 está disponible, el vector de movimiento candidato para el c P1 está disponible y el vector de movimiento candidato 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 MVP afín construido. En este punto, el CP0 puede representar la posición superior izquierda del bloque actual, el CP1 puede representar la posición superior derecha del bloque actual y el CP2 puede representar la posición inferior izquierda del bloque actual.
El candidato de MVP afín construido puede incluir 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 puede ser el vector de movimiento de un primer bloque, el vector de movimiento candidato para CP1 puede ser el vector de movimiento de un segundo bloque y el vector de movimiento candidato para CP2 puede ser el vector de movimiento de un tercer bloque.
Además, el primer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el primer grupo en un primer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del primer bloque dentro del primer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP0 puede estar disponible. Además, por ejemplo, el primer grupo puede incluir el bloque vecino A, el bloque vecino B y el bloque vecino C, y el primer orden específico puede ser un orden del bloque vecino A al bloque vecino B y, a continuación, al bloque vecino C.
Además, el segundo bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el segundo grupo en un segundo orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del segundo bloque dentro del segundo grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP1 puede estar disponible. Además, por ejemplo, el segundo grupo puede incluir el bloque vecino D y el bloque vecino E, y el segundo orden específico puede ser un orden del bloque vecino D al bloque vecino E.
Además, el tercer bloque puede ser un bloque que se haya confirmado en primer lugar mientras se comprueban los bloques vecinos en el tercer grupo en un tercer orden específico para que una imagen de referencia del mismo sea la misma que una imagen de referencia del bloque actual. En este punto, si la imagen de referencia del tercer bloque dentro del tercer grupo es la misma que la imagen de referencia del bloque actual, el vector de movimiento candidato para CP2 puede estar disponible. Además, por ejemplo, el tercer grupo puede incluir el bloque vecino F y el bloque vecino G, y el tercer orden específico puede ser un orden del bloque vecino F al bloque vecino G.
Mientras tanto, cuando el tamaño del bloque actual es W x H, el componente x de la posición de muestra superior izquierda del bloque actual es 0, y el componente y del mismo es 0, el bloque vecino A puede ser el bloque que incluye una muestra en las coordenadas de (-1, -1), el bloque vecino B puede ser el bloque que incluye una muestra en las coordenadas de (0, -1), el bloque vecino C puede ser el bloque que incluye una muestra en las coordenadas de (-1, 0), el bloque vecino D puede ser el bloque que incluye una muestra en las coordenadas de (W-1, -1), el bloque vecino E puede ser el bloque que incluye una muestra en las coordenadas de (W, -1), y el bloque vecino F puede ser el bloque que incluye una muestra en las coordenadas de (-1, H-1), y el bloque vecino G puede ser el bloque que incluye una muestra en las coordenadas de (-1, H). En otras palabras, el bloque vecino A puede ser el bloque vecino de la esquina superior izquierda del bloque actual, el bloque vecino B el bloque vecino superior en la posición más a la izquierda entre los bloques vecinos superiores del bloque actual, el bloque vecino C el bloque vecino izquierdo en la posición más alta entre los bloques vecinos a la izquierda del bloque actual, el bloque vecino D el bloque vecino superior en la posición más a la derecha entre los bloques vecinos superiores del bloque actual, el bloque vecino E el bloque vecino en la esquina superior derecha del bloque actual, el bloque vecino F el bloque vecino izquierdo en la posición más baja entre los bloques vecinos izquierdos del bloque actual, y el bloque vecino G el bloque vecino de la esquina inferior izquierda del bloque actual.
Mientras tanto, si al menos uno del vector de movimiento candidato de CP0, el vector de movimiento candidato de CP1 y el vector de movimiento candidato de CP2 no está disponible, el candidato MVP afín construido puede no estar disponible.
Mientras tanto, no se puede realizar un proceso de comprobación de depuración entre el candidato de MVP afín heredado y el candidato de MVP afín construido. El proceso de comprobación de depuración puede representar un proceso que comprueba si el candidato de MVP afín construido es el mismo que el candidato de MVP afín heredado, pero no deriva el candidato de MVP afín construido si se encuentra que son idénticos.
Posteriormente, la lista de candidatos de MVP afines se puede derivar basándose en las etapas descritas a continuación.
Por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, y el vector de movimiento para CP0 está disponible, el aparato de decodificación puede derivar un primer candidato de MVP afín. En este punto, el primer candidato de MVP afín puede ser el candidato de MVP afín que incluye el vector de movimiento para CP0 como los vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, y el vector de movimiento para CP1 está disponible, el aparato de decodificación puede derivar un segundo candidato de MVP afín. En este punto, el segundo candidato de MVP afín puede ser el candidato de MVP afín que incluye el vector de movimiento para CP1 como los vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, y el vector de movimiento para CP2 está disponible, el aparato de decodificación puede derivar un tercer candidato de MVP afín. En este punto, el tercer candidato de MVP afín puede ser el candidato de MVP afín que incluye el vector de movimiento para CP2 como los vectores de movimiento candidatos para los CP.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, el aparato de decodificación puede derivar un cuarto candidato de MVP afín que incluye un MVP temporal derivado basándose en un bloque vecino temporal del bloque actual como los vectores de movimiento candidatos para los CP. El bloque vecino temporal puede referirse al mismo bloque coubicado dentro de la misma imagen coubicada correspondiente al bloque actual. El MVP temporal puede derivarse basándose en el vector de movimiento del bloque vecino temporal.
Además, por ejemplo, cuando el número de candidatos de MVP afines derivados es menor que 2, el aparato de decodificación puede derivar un quinto candidato de MVP afín que incluye un vector de movimiento cero como los vectores de movimiento candidatos para los CP. El vector de movimiento cero puede representar un vector de movimiento cuyos elementos son todos ceros.
El aparato de decodificación deriva predictores de vector de movimiento de punto de control (CPMVP) para puntos de control (CP) del bloque actual basándose en la lista de candidatos de MVP afines S2320.
El aparato de decodificación puede seleccionar un candidato de MVP afín específico entre los candidatos de MVP afín incluidos en la lista de candidatos de MVP afines y derivar el candidato de MVP afín seleccionado como los CPMVP para los CP del bloque actual. Por ejemplo, el aparato de decodificación puede obtener el índice de candidato de MVP afín para el bloque actual a partir de un flujo de bits y, entre los candidatos de MVP afines incluidos en la lista de candidatos de MVP afines, derivar el candidato de MVP afín indicado por el índice de candidato de MVP afín como los CPMVP para los CP del bloque actual. Más específicamente, si un candidato MVP afín incluye un vector de movimiento candidato para CP0 y un vector de movimiento candidato para CP1, el vector de movimiento candidato para CP0 del candidato MVP afín puede derivarse como CPMVP del CP0, y el vector de movimiento candidato para CP1 del candidato de MVP afín puede derivarse como CPMVP del CP1. Además, si un candidato de MVP afín incluye un vector de movimiento candidato para CP0, un vector de movimiento candidato para CP1 y un vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato de MVP afín puede derivarse como CPMVP del CP0, el vector de movimiento candidato para CP1 del candidato MVP afín puede derivarse como CPMVP del CP1, y el vector de movimiento candidato para CP2 del candidato MVP afín puede derivarse como CPMVP del CP2. Además, si un candidato MVP afín incluye un vector de movimiento candidato para CP0 y un vector de movimiento candidato para CP2, el vector de movimiento candidato para CP0 del candidato MVP afín puede derivarse como CPMVP del CP0, y el vector de movimiento candidato para CP2 del candidato de MVP afín puede derivarse como CPMVP del CP2.
El aparato de decodificación deriva las diferencias de vector de movimiento de punto de control (CPMVD) para los CP del bloque actual basándose en la información de predicción de movimiento S2330. La información de predicción de movimiento puede incluir información sobre la CPMVD para cada CP, y el aparato de decodificación puede derivar la CPMVD para cada uno de los CP del bloque actual basándose en la información sobre la CPMVD para cada uno de los CP.
El aparato de decodificación deriva vectores de movimiento de punto de control (CPMV) para los CP del bloque actual basándose en los CPMVP y las CPMVD S2340. El aparato de decodificación puede derivar el CPMV para cada uno de los CP basándose en el CPMVP y la CPMVD para cada uno de los CP. Por ejemplo, el aparato de decodificación puede derivar el CPMV para cada c P añadiendo el CPMVP y la CPMVD para el CP.
El aparato de decodificación deriva muestras de predicción para el bloque actual basándose en los CPMV S2350. El aparato de decodificación puede derivar vectores de movimiento del bloque actual en subbloques o unidades de muestra basándose en los CPMV. En otras palabras, el aparato de decodificación puede derivar un vector de movimiento de cada subbloque o cada muestra del bloque actual basándose en los CPMV. Los vectores de movimiento en el subbloque o unidades de muestra se pueden derivar mediante la Ec. 1 o la Ec. 3 anterior. Los vectores de movimiento pueden denominarse campo de vector de movimiento (MVF) afín o matriz de vectores de movimiento.
El aparato de decodificación puede derivar muestras de predicción para el bloque actual basándose en vectores de movimiento en el subbloque o unidades de muestra. El aparato de decodificación puede derivar una región de referencia dentro de una imagen de referencia basándose en el vector de movimiento en subbloques o unidades de muestra y generar muestras de predicción del bloque actual basándose en las muestras reconstruidas dentro de la región de referencia.
El aparato de decodificación genera una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas S2360. El aparato de decodificación puede generar la imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas. De acuerdo con el modo de predicción, el aparato de decodificación puede utilizar directamente las muestras de predicción como muestras reconstruidas o generar muestras reconstruidas añadiendo muestras residuales a las muestras de predicción. En presencia de muestras residuales para el bloque actual, el aparato de decodificación puede obtener información sobre los residuos para el bloque actual del flujo de bits. La información sobre los residuos puede incluir coeficientes de transformada para las muestras residuales. El aparato de decodificación puede derivar las muestras residuales (o matrices de muestras residuales) para el bloque actual basándose en la información residual. El aparato de decodificación puede generar muestras reconstruidas basándose en las muestras de predicción y las muestras residuales y derivar un bloque reconstruido o una imagen reconstruida basándose en las muestras reconstruidas. Posteriormente, el aparato de decodificación puede aplicar el proceso de filtrado en bucle tal como filtrado de desbloqueo y/o proceso SAO a la imagen reconstruida para mejorar la calidad de imagen subjetiva/objetiva dependiendo de las necesidades, como se ha descrito anteriormente.
La Figura 24 ilustra un aparato de decodificación que realiza un método de decodificación de vídeo de acuerdo con la presente divulgación. El método desvelado en la Figura 23 puede realizarse mediante el aparato de decodificación desvelado en la Figura 24. Más específicamente, por ejemplo, el decodificador por entropía del aparato de decodificación de la Figura 24 puede realizar la etapa S2300 de la Figura 23, el predictor del aparato de decodificación de la Figura 24 puede realizar las etapas S2310 a S2350, y el sumador del aparato de decodificación de la Figura 24 puede realizar la etapa S2360 de la Figura 23. Además, aunque no se muestra en la figura, el decodificador por entropía del aparato de decodificación de la Figura 24 puede realizar el proceso para obtener información de imagen sobre los residuos de un bloque actual a través de un flujo de bits, y puede realizarse el proceso para derivar las muestras residuales para el bloque actual basándose en la información residual por el transformador inverso del aparato de decodificación de la Figura 24.
De acuerdo con la presente divulgación, puede mejorarse la eficiencia de la codificación de vídeo basándose en la predicción de movimiento afín.
Además, de acuerdo con la presente divulgación, al derivar la lista de candidatos de MVP afines, solo cuando todos los vectores de movimiento candidatos para los CP de candidatos de MVP afines construidos están disponibles, los candidatos de MVP afines construidos pueden añadirse, a través de lo cual puede reducirse la complejidad del proceso para derivar los candidatos de MVP afines construidos y el proceso para construir una lista de candidatos de MVP afines, y puede mejorarse la eficiencia de codificación.
Además, de acuerdo con la presente divulgación, al derivar la lista de candidatos de MVP afines, se pueden derivar candidatos de MVP afines adicionales basándose en vectores de movimiento candidatos para los Cp derivados a través del proceso para derivar candidatos de MVP afines construidos, a través de lo cual puede reducirse la complejidad del proceso para construir un la lista de candidatos de MVP afines y puede mejorarse la eficiencia de codificación.
Además, de acuerdo con la presente divulgación, al derivar los candidatos de MVP afines heredados, solo cuando se incluye un bloque vecino superior en una CTU actual, el candidato de MVP afín heredado puede derivarse utilizando el bloque vecino superior, a través de lo cual puede reducirse la cantidad de almacenamiento de una memoria intermedia de línea para la predicción afín y puede minimizarse el coste del hardware.
Las realizaciones de acuerdo con la presente divulgación pueden implementarse y realizarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades de funciones ilustradas en cada dibujo pueden implementarse y ejecutarse en un ordenador, un procesador, un microprocesador, un controlador o un chip. En este caso, la información (por ejemplo, información sobre instrucciones) o el algoritmo para la implementación pueden almacenarse en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación a los que se aplican las realizaciones de la presente divulgación pueden incluir un dispositivo de transmisión y recepción de difusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de comunicación de vídeo, un dispositivo de comunicación en tiempo real para comunicación de vídeo, un dispositivo de envío por flujo continuo móvil, un medio de almacenamiento, una videocámara, un dispositivo de provisión de servicio de vídeo bajo demanda (VoD), un dispositivo de vídeo de entrega sobre Internet (o Tt ), un dispositivo de provisión de servicio de transmisión por Internet, un dispositivo de vídeo en 3D, un dispositivo de teléfono de vídeo, un terminal de medios de transporte (por ejemplo, terminal de vehículo, terminal de avión y terminal de barco) 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, los dispositivos de vídeo OTT pueden incluir una consola de juegos, un reproductor de Blu-ray, un televisor con conexión a Internet, un sistema de cine en casa, un teléfono inteligente, un PC de tableta y una grabadora de vídeo digital (DVR).
Además, un método de procesamiento al que se aplican las realizaciones de la presente divulgación se puede producir en forma de un programa ejecutado por un ordenador y se puede almacenar en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos de acuerdo con la presente divulgación también pueden almacenarse en un medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento distribuido en los que se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede incluir, por ejemplo, un disco Bluray (BD), un bus serie universal (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-Ro M, una cinta magnética, un disquete y un dispositivo de almacenamiento de datos óptico. Además, el medio de grabación legible por ordenador incluye un medio implementado en forma de portadora (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado de acuerdo con el método de codificación puede almacenarse en un medio de grabación legible por ordenador o transmitirse a través de una red de comunicación alámbrica o inalámbrica.
Además, la realización de la presente divulgación puede implementarse como un producto de programa informático en forma de código de programa, y el código de programa puede ejecutarse por un ordenador de acuerdo con la realización de la presente divulgación. El código de programa puede almacenarse en un soporte legible por ordenador.
La Figura 25 ilustra una estructura de sistema de envío por flujo continuo de contenido a la que se aplican realizaciones de la presente divulgación.
El sistema de envío por flujo continuo de contenido al que se aplican las realizaciones de la presente divulgación puede incluir en gran medida un servidor de codificación, un servidor de envío por flujo continuo, un servidor web, un almacenamiento de medios, un dispositivo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación comprime contenidos introducidos desde dispositivos de entrada multimedia, 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, si los dispositivos de entrada multimedia tales como un teléfono inteligente, una cámara o una videocámara generan directamente un flujo de bits, se puede omitir el servidor de codificación.
El flujo de bits puede generarse mediante un método de codificación o un método para generar un flujo de bits al que se aplican las realizaciones de la presente divulgación, y el servidor de envío por flujo continuo puede almacenar temporalmente el flujo de bits mientras se transmite o recibe el flujo de bits.
El servidor de transmisión transmite datos multimedia a un dispositivo de usuario basándose en una solicitud del usuario a través de un servidor web, y el servidor web da servicio a la función de informar al usuario sobre qué servicios están disponibles. Si el usuario solicita un servicio deseado del servidor web, el servidor web transmite la solicitud al servidor de envío por flujo continuo, y el servidor de envío por flujo continuo transmite datos multimedia 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 da servicio para controlar comandos/respuestas entre dispositivos dentro del sistema de envío por flujo continuo de contenido.
El servidor de envío por flujo continuo puede recibir contenidos de un servidor de almacenamiento y/o codificación de medios. Por ejemplo, cuando los contenidos se reciben desde el servidor de codificación, los contenidos pueden 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 período de tiempo predeterminado.
Los ejemplos del dispositivo de usuario pueden incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, una terminal de difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), un terminal de navegación, una PC de pizarra, un PC de tableta, un ultrabook, un dispositivo llevable (por ejemplo, un reloj inteligente, gafas inteligentes y una pantalla montada en la cabeza (HMD)), un televisor digital, un ordenador de escritorio y señalización digital. Cada servidor individual dentro del sistema de envío por flujo continuo de contenido puede funcionar como un servidor distribuido, en cuyo caso los datos recibidos de cada servidor pueden procesarse de forma distribuida.

Claims (9)

REIVINDICACIONES
1. Un método de decodificación de imágenes, mediante un aparato de decodificación, que comprende:
obtener (S2300) información de predicción de movimiento para un bloque actual a partir de un flujo de bits; construir (S2310) una lista de candidatos de predictores de vector de movimiento afines, mvp, para el bloque actual; derivar (S2320) 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 (S2330) 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;
derivar (S2340) vectores de movimiento de punto de control, CPMV, para los CP del bloque actual basándose en los CPMVP y las CPMVD;
derivar (S2350) muestras de predicción para el bloque actual basándose en los CPMV; y
generar (S2360) una imagen reconstruida para el bloque actual basándose en las muestras de predicción derivadas,
en donde la construcción (S2310) de la lista de candidatos de mvp afines comprende:
comprobar si un candidato de mvp afín heredado está disponible, en donde el candidato de mvp afín heredado es un candidato de mvp afín que configura vectores de movimiento derivados de un modelo afín de un bloque vecino del bloque actual como vectores de movimiento candidatos para los CP, y el candidato de mvp afín heredado se deriva basándose en que el candidato de mvp afín heredado está disponible, y una condición de disponibilidad del candidato de mvp afín heredado es si una imagen de referencia del bloque vecino y una imagen de referencia del bloque actual son iguales;
comprobar si un candidato de mvp afín construido está disponible, en donde el candidato de mvp afín construido es un candidato de mvp afín que configura un vector de movimiento derivado de un primer bloque vecino en un primer grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP0, un vector de movimiento derivado de un segundo bloque vecino en un segundo grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP1 y un vector de movimiento derivado de un tercer bloque vecino en un tercer grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP2, y el candidato de mvp afín construido se deriva basándose en que el candidato de mvp afín construido esté disponible, y
una condición de disponibilidad del candidato de mvp afín construido es si todos de entre el vector de movimiento derivado del primer bloque vecino, el vector de movimiento derivado del segundo bloque vecino y el vector de movimiento derivado del tercer bloque vecino están disponibles, y
una condición de disponibilidad del vector de movimiento derivado del primer bloque vecino es si una imagen de referencia del primer bloque vecino y la imagen de referencia del bloque actual son iguales, una condición de disponibilidad del vector de movimiento derivado del segundo bloque vecino es si una imagen de referencia del segundo bloque vecino y la imagen de referencia del bloque actual son iguales, una condición de disponibilidad del vector de movimiento derivado del tercer bloque vecino es si una imagen de referencia del tercer bloque vecino y la imagen de referencia del bloque actual son iguales;
caracterizado por que
basándose en el número de candidatos de mvp afines derivados, que incluyen el candidato de mvp afín heredado y el candidato de mvp afín construido que son menores que 2, se deriva un primer candidato de mvp afín, en donde el primer candidato de mvp afín es un candidato de mvp afín que incluye un vector de movimiento específico como vectores de movimiento candidatos para los CP y el vector de movimiento específico es un vector de movimiento disponible entre el vector de movimiento derivado del primer bloque vecino, el vector de movimiento derivado del segundo bloque vecino y el vector de movimiento derivado del tercer bloque vecino.
2. El método de decodificación de imágenes de la reivindicación 1, en donde CP0 representa una posición superior izquierda del bloque actual, CP1 representa una posición superior derecha del bloque actual y CP2 representa una posición inferior izquierda del bloque actual.
3. El método de decodificación de imágenes de la reivindicación 1, en donde el primer grupo de bloques vecinos incluye un bloque vecino A, un bloque vecino B y un bloque vecino C,
el segundo grupo de bloques vecinos incluye un bloque vecino D y un bloque vecino E,
el tercer grupo de bloques vecinos incluye un bloque vecino F y un bloque vecino G, y
cuando un tamaño del bloque actual es WxH, y un componente x y un componente y de una posición de muestra superior izquierda del bloque actual son 0, 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).
4. El método de decodificación de imágenes de la reivindicación 3, en donde el primer bloque vecino es un bloque que ha sido confirmado en primer lugar al comprobar que los bloques vecinos en el primer grupo de bloques vecinos en un primer orden específico tienen la misma imagen de referencia que el bloque actual,
el segundo bloque vecino es un bloque que ha sido confirmado en primer lugar al comprobar que los bloques vecinos en el segundo grupo de bloques vecinos en un segundo orden específico tienen la misma imagen de referencia que el bloque actual, y
el tercer bloque vecino es un bloque que ha sido confirmado en primer lugar al comprobar que los bloques vecinos en el tercer grupo de bloques vecinos en un tercer orden específico tienen la misma imagen de referencia que el bloque actual.
5. El método de decodificación de imágenes de la reivindicación 4, en donde el primer orden específico es un orden del bloque vecino A al bloque vecino B y, a continuación, el bloque vecino C,
el segundo orden específico es un orden del bloque vecino D al bloque vecino E, y
el tercer orden específico es un orden del bloque vecino F al bloque vecino G.
6. Un método de codificación de imágenes, mediante un aparato de codificación, que comprende:
construir (S2100) una lista de candidatos de predictores de vector de movimiento afines, mvp, para un bloque actual;
derivar (S2110) 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 (S2120) vectores de movimiento de punto de control, CPMV, para los CP del bloque actual;
derivar (S2130) diferencias de vector de movimiento de punto de control, CPMVD, para los CP del bloque actual basándose en los CPMVP y los CPMV; y
codificar (S2140) información de predicción de movimiento, que incluye información sobre las CPMVD, en donde la construcción (S2100) de la lista de candidatos de mvp afines comprende:
comprobar si un candidato de mvp afín heredado está disponible, en donde el candidato de mvp afín heredado es un candidato de mvp afín que configura vectores de movimiento derivados de un modelo afín de un bloque vecino del bloque actual como vectores de movimiento candidatos para los CP, y el candidato de mvp afín heredado se deriva basándose en que el candidato de mvp afín heredado está disponible, y una condición de disponibilidad del candidato de mvp afín heredado es si una imagen de referencia del bloque vecino y una imagen de referencia del bloque actual son iguales;
comprobar si un candidato de mvp afín construido está disponible, en donde el candidato de mvp afín construido es un candidato de mvp afín que configura un vector de movimiento derivado de un primer bloque vecino en un primer grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP0, un vector de movimiento derivado de un segundo bloque vecino en un segundo grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP1 y un vector de movimiento derivado de un tercer bloque vecino en un tercer grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP2, y el candidato de mvp afín construido se deriva basándose en que el candidato de mvp afín construido esté disponible, y
una condición de disponibilidad del candidato de mvp afín construido es si todos de entre el vector de movimiento derivado del primer bloque vecino, el vector de movimiento derivado del segundo bloque vecino y el vector de movimiento derivado del tercer bloque vecino están disponibles, y
una condición de disponibilidad del vector de movimiento derivado del primer bloque vecino es si una imagen de referencia del primer bloque vecino y la imagen de referencia del bloque actual son iguales, una condición de disponibilidad del vector de movimiento derivado del segundo bloque vecino es si una imagen de referencia del segundo bloque vecino y la imagen de referencia del bloque actual son iguales, una condición de disponibilidad del vector de movimiento derivado del tercer bloque vecino es si una imagen de referencia del tercer bloque vecino y la imagen de referencia del bloque actual son iguales;
caracterizado por que
basándose en el número de candidatos de mvp afines derivados, que incluyen el candidato de mvp afín heredado y el candidato de mvp afín construido que son menores que 2, se deriva un primer candidato de mvp afín, en donde el primer candidato de mvp afín es un candidato de mvp afín que incluye un vector de movimiento específico como vectores de movimiento candidatos para los CP y el vector de movimiento específico es un vector de movimiento disponible entre el vector de movimiento derivado del primer bloque vecino, el vector de movimiento derivado del segundo bloque vecino y el vector de movimiento derivado del tercer bloque vecino.
7. El método de codificación de imágenes de la reivindicación 6, en donde CP0 representa una posición superior izquierda del bloque actual, CP1 representa una posición superior derecha del bloque actual y CP2 representa una posición inferior izquierda del bloque actual.
8. Un medio de almacenamiento legible por ordenador no transitorio que almacena un flujo de bits generado por un método, comprendiendo el método:
construir (S2100) una lista de candidatos de predictores de vector de movimiento afines, mvp, para un bloque actual;
derivar (S2110) 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 (S2120) vectores de movimiento de punto de control, CPMV, para los CP del bloque actual;
derivar (S2130) diferencias de vector de movimiento de punto de control, CPMVD, para los CP del bloque actual basándose en los CPMVP y los CPMV; y
generar el flujo de bits codificando (S2140) información de predicción de movimiento que incluye información sobre las CPMVD,
en donde la construcción (S2100) de la lista de candidatos de mvp afines comprende:
comprobar si un candidato de mvp afín heredado está disponible, en donde el candidato de mvp afín heredado es un candidato de mvp afín que configura vectores de movimiento derivados de un modelo afín de un bloque vecino del bloque actual como vectores de movimiento candidatos para los CP, y el candidato de mvp afín heredado se deriva basándose en que el candidato de mvp afín heredado está disponible, y una condición de disponibilidad del candidato de mvp afín heredado es si una imagen de referencia del bloque vecino y una imagen de referencia del bloque actual son iguales;
comprobar si un candidato de mvp afín construido está disponible, en donde el candidato de mvp afín construido es un candidato de mvp afín que configura un vector de movimiento derivado de un primer bloque vecino en un primer grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP0, un vector de movimiento derivado de un segundo bloque vecino en un segundo grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP1 y un vector de movimiento derivado de un tercer bloque vecino en un tercer grupo de bloques vecinos del bloque actual como un vector de movimiento candidato para un CP2, y el candidato de mvp afín construido se deriva basándose en que el candidato de mvp afín construido esté disponible, y
una condición de disponibilidad del candidato de mvp afín construido es si todos de entre el vector de movimiento derivado del primer bloque vecino, el vector de movimiento derivado del segundo bloque vecino y el vector de movimiento derivado del tercer bloque vecino están disponibles, y
una condición de disponibilidad del vector de movimiento derivado del primer bloque vecino es si una imagen de referencia del primer bloque vecino y la imagen de referencia del bloque actual son iguales, una condición de disponibilidad del vector de movimiento derivado del segundo bloque vecino es si una imagen de referencia del segundo bloque vecino y la imagen de referencia del bloque actual son iguales, una condición de disponibilidad del vector de movimiento derivado del tercer bloque vecino es si una imagen de referencia del tercer bloque vecino y la imagen de referencia del bloque actual son iguales;
caracterizado por que
basándose en el número de candidatos de mvp afines derivados, que incluyen el candidato de mvp afín heredado y el candidato de mvp afín construido que son menores que 2, se deriva un primer candidato de mvp afín, en donde el primer candidato de mvp afín es un candidato de mvp afín que incluye un vector de movimiento específico como vectores de movimiento candidatos para los CP y el vector de movimiento específico es un vector de movimiento disponible entre el vector de movimiento derivado del primer bloque vecino, el vector de movimiento derivado del segundo bloque vecino y el vector de movimiento derivado del tercer bloque vecino.
9. El método de codificación de imágenes de la reivindicación 6, comprendiendo el método, además:
obtener un flujo de bits de información de imagen que incluye la información de predicción de movimiento codificada; y
transmitir el flujo de bits.
ES19859025T 2018-09-10 2019-09-10 Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines Active ES2926196T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862729407P 2018-09-10 2018-09-10
PCT/KR2019/011733 WO2020055107A1 (ko) 2018-09-10 2019-09-10 영상 코딩 시스템에서 어파인 mvp 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치

Publications (1)

Publication Number Publication Date
ES2926196T3 true ES2926196T3 (es) 2022-10-24

Family

ID=69777162

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19859025T Active ES2926196T3 (es) 2018-09-10 2019-09-10 Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines

Country Status (15)

Country Link
US (4) US10841576B2 (es)
EP (2) EP4084476A1 (es)
JP (3) JP7039698B2 (es)
KR (4) KR102408695B1 (es)
CN (4) CN111448800B (es)
BR (4) BR112021004556A2 (es)
DK (1) DK3700216T3 (es)
ES (1) ES2926196T3 (es)
HU (1) HUE060426T2 (es)
MX (1) MX2021002881A (es)
PL (1) PL3700216T3 (es)
PT (1) PT3700216T (es)
RU (1) RU2768957C1 (es)
SI (1) SI3700216T1 (es)
WO (1) WO2020055107A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019144908A1 (en) * 2018-01-26 2019-08-01 Mediatek Inc. Method and apparatus of affine inter prediction for video coding system
CN110620929B (zh) 2018-06-19 2023-04-18 北京字节跳动网络技术有限公司 没有运动矢量预测截断的选择的运动矢量差精度
JP7141463B2 (ja) * 2018-06-27 2022-09-22 エルジー エレクトロニクス インコーポレイティド インター予測モードに基づいた映像処理方法およびそのための装置
EP4325859A3 (en) 2018-09-19 2024-05-15 Beijing Bytedance Network Technology Co., Ltd. Syntax reuse for affine mode with adaptive motion vector resolution
EP4325849A3 (en) 2018-11-22 2024-04-17 Beijing Bytedance Network Technology Co., Ltd. Coordination method for sub-block based inter prediction
CN113412623A (zh) 2019-01-31 2021-09-17 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
KR20220043109A (ko) 2019-08-13 2022-04-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브 블록 기반 인터 예측의 모션 정밀도
WO2021052505A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Reference picture resampling in video processing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
US20150181232A1 (en) 2012-07-18 2015-06-25 Sony Corporation Image processing device and method
WO2017087751A1 (en) 2015-11-20 2017-05-26 Mediatek Inc. Method and apparatus for global motion compensation in video coding system
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017156705A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Affine prediction for video coding
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
CN117041570A (zh) * 2016-11-29 2023-11-10 韩国电子通信研究院 图像编码/解码方法和用于存储比特流的记录介质
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
US10873744B2 (en) * 2017-01-03 2020-12-22 Lg Electronics Inc. Method and device for processing video signal by means of affine prediction
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
US11889100B2 (en) 2017-11-14 2024-01-30 Qualcomm Incorporated Affine motion vector prediction in video coding
KR102592642B1 (ko) * 2018-07-13 2023-10-23 엘지전자 주식회사 영상 코딩 시스템에서 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
CN116916040A (zh) * 2018-08-06 2023-10-20 Lg电子株式会社 解码装置、编码装置和数据发送装置
WO2020055161A1 (ko) * 2018-09-12 2020-03-19 엘지전자 주식회사 영상 코딩 시스템에서 서브 블록 단위의 움직임 예측에 기반한 영상 디코딩 방법 및 장치

Also Published As

Publication number Publication date
BR122021009779A2 (pt) 2021-07-13
KR20220083857A (ko) 2022-06-20
BR112021004556A2 (pt) 2021-06-08
HUE060426T2 (hu) 2023-02-28
RU2022106958A (ru) 2022-04-12
PT3700216T (pt) 2022-09-01
US11303887B2 (en) 2022-04-12
SI3700216T1 (sl) 2022-11-30
EP3700216A4 (en) 2021-02-03
KR20240015170A (ko) 2024-02-02
US20200275094A1 (en) 2020-08-27
US20230362351A1 (en) 2023-11-09
CN116156188A (zh) 2023-05-23
JP7039698B2 (ja) 2022-03-22
US20210029350A1 (en) 2021-01-28
KR20230042387A (ko) 2023-03-28
CN111448800B (zh) 2023-03-17
JP7436543B2 (ja) 2024-02-21
EP4084476A1 (en) 2022-11-02
JP2024042110A (ja) 2024-03-27
KR102510771B1 (ko) 2023-03-16
EP3700216A1 (en) 2020-08-26
CN116156189A (zh) 2023-05-23
EP3700216B1 (en) 2022-08-03
KR102630797B1 (ko) 2024-01-29
WO2020055107A1 (ko) 2020-03-19
US11997260B2 (en) 2024-05-28
KR20200060508A (ko) 2020-05-29
RU2768957C1 (ru) 2022-03-25
MX2021002881A (es) 2021-06-04
CN111448800A (zh) 2020-07-24
PL3700216T3 (pl) 2022-12-19
US20220182613A1 (en) 2022-06-09
BR122021009784A2 (pt) 2021-07-13
JP2021505013A (ja) 2021-02-15
US10841576B2 (en) 2020-11-17
DK3700216T3 (da) 2022-09-12
CN116193141A (zh) 2023-05-30
KR102408695B1 (ko) 2022-06-14
US11722659B2 (en) 2023-08-08
BR122021009778A2 (pt) 2021-07-13
JP2022082576A (ja) 2022-06-02

Similar Documents

Publication Publication Date Title
ES2926196T3 (es) Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines
ES2966115T3 (es) Métodos de codificación de imagen basados en historial
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
JP2024036477A (ja) 予測サンプルを生成するための加重値インデックス情報を導出する映像デコーディング方法、及びその装置
KR20210158402A (ko) 현재 블록에 대하여 최종적으로 예측 모드를 선택하지 못하는 경우 인터 예측을 수행하는 영상 디코딩 방법 및 그 장치
KR20210153739A (ko) 디폴트 머지 모드에 기반하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치
KR20210152575A (ko) 쌍 예측이 적용되는 경우 가중 평균을 위한 가중치 인덱스 정보를 도출하는 영상 디코딩 방법 및 그 장치
JP2024019432A (ja) 決定された予測モードを適用して予測サンプルを生成する映像デコーディング方法及びその装置
ES2949795T3 (es) Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de MVP afín construido en el sistema de codificación de imágenes
KR20220003117A (ko) 영상 디코딩 방법 및 그 장치
RU2800679C2 (ru) Способ и устройство декодирования изображения на основе предсказания аффинного движения с использованием списка кандидатов аффинного mvp в системе кодирования изображения
KR102622467B1 (ko) 움직임 벡터를 이용한 영상 코딩 방법 및 장치
KR20240005165A (ko) 움직임 벡터 차분들을 이용한 영상 코딩 방법 및 장치