ES2957801T3 - Método y dispositivo de inter predicción basándose en DMVR y BDOF - Google Patents

Método y dispositivo de inter predicción basándose en DMVR y BDOF Download PDF

Info

Publication number
ES2957801T3
ES2957801T3 ES20769451T ES20769451T ES2957801T3 ES 2957801 T3 ES2957801 T3 ES 2957801T3 ES 20769451 T ES20769451 T ES 20769451T ES 20769451 T ES20769451 T ES 20769451T ES 2957801 T3 ES2957801 T3 ES 2957801T3
Authority
ES
Spain
Prior art keywords
bdof
motion vector
image
dmvr
current block
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
ES20769451T
Other languages
English (en)
Inventor
Naeri Park
Junghak Nam
Hyeongmoon Jang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Application granted granted Critical
Publication of ES2957801T3 publication Critical patent/ES2957801T3/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

Un método de decodificación de imágenes según el presente documento se caracteriza porque: se aplica el refinamiento del vector de movimiento del lado del decodificador (DMVR) para derivar vectores de movimiento L0 y L1 refinados sobre la base de los vectores de movimiento L0 y L1 del bloque actual; las muestras de predicción del bloque actual se derivan sobre la base de las muestras de predicción L0 derivadas sobre la base del vector de movimiento L0 refinado y las muestras de predicción L1 derivadas sobre la base del vector de movimiento L1 refinado; y las muestras de recuperación del bloque actual se generan en base a las muestras de predicción, en donde las muestras de predicción L0 se derivan en base a una imagen de referencia L0 y el vector de movimiento L0 refinado, las muestras de predicción L1 se derivan en base a una imagen de referencia L1 y el vector de movimiento L1 refinado, y en el paso para derivar las muestras de predicción, se determina si se aplica un proceso de flujo óptico bidireccional (BDOF) en base a si una primera diferencia POC entre la imagen actual y la La imagen de referencia L0 y una segunda diferencia POC entre la imagen actual y la imagen de referencia L1 son las mismas. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y dispositivo de inter predicción basándose en DMVR y BDOF
Antecedentes de la divulgación
Sector de la técnica
Este documento se refiere a una tecnología de codificación de imágenes y, más específicamente, a un método y a un aparato para realizar una inter predicción basándose en un perfeccionamiento de vector de movimiento de lado de descodificador (DMVR) y en un flujo óptico bidireccional (BDOF).
Estado de la técnica
Las demandas de imágenes y vídeo de alta resolución y alta calidad, tales como imagen y vídeo de ultra alta definición (UHD) de 4K u 8K o más, están aumentando recientemente en diversos campos. A medida que los datos de imagen y de vídeo se vuelven de alta resolución y alta calidad, la cantidad de información o el número de bits que se transmite se aumenta relativamente en comparación con los datos de imagen y de vídeo existentes. En consecuencia, si se transmiten datos de imagen usando un medio, tal como la línea de banda ancha cableada o inalámbrica existente, o se almacenan datos de imagen y vídeo usando el medio de almacenamiento existente, se aumentan los costes de transmisión y los costes de almacenamiento.
Además, recientemente están aumentando el interés y las demandas de medios inmersivos, tales como contenidos de realidad virtual (RV), realidad artificial (RA) o un holograma. Está aumentando la radiodifusión de una imagen y vídeo que tiene características de imagen diferentes de las de las imágenes reales, tales como imágenes de juegos.
En consecuencia, existe la necesidad de una tecnología de compresión de imágenes y vídeo de alta eficiencia con el fin de comprimir y transmitir o de almacenar y reproducir de forma eficaz información de imágenes y vídeo de alta resolución y alta calidad que tienen características tan diversas. El documento: Esenlik (Huawei) S. y col., "Description of Core Experiment 9(CE9): Decoder Side Motion Vector Derivation",n.° m42832, (20-04-2018), 122. Reunión de MPEG; 16-04-2018 - 20-04-2018; San Diego; (Grupo de Expertos en Imágenes en Movimiento o ISO/IEC JTC1/SC29/WG11), URL: http://phenix.int-evry.fr/mpeg/doc_end_user/documents/122_San%20Diego/wg11/m42832-JVET-J1029-v1-JVET-J1029.zip JVET-J1029.doc, (20-04-2018), da detalles del hecho de inferir vectores de movimiento en JPEG. El documento: Hashimoto T. y col.,"Non-CE4: Weightedprediction with BDOF and bi-prediction with CU weights harmonization",n.° JVET-M0067, (13-01-2019), 13. Reunión de JVET; 09-01-2019 - 18-01-2019; Marrakech; (el Equipo de Exploración de Vídeo Conjunto de ISO/IEC JTC1/SC29/WG11 e ITU-T SG.16), URL: http://phenix.int-evry.fr/jvet/doc_end_user/documents/13_Marrakech/wg11JVET-M0067-v3.zip JVET-M0067-v2.docx, (13-01-2019), da detalles de bipredicción en JPEG.
Objetivo de la invención
Este documento proporciona un método y un aparato para aumentar la eficiencia de codificación de imágenes.
Este documento también proporciona un método y un aparato de una inter predicción eficiente.
Este documento también proporciona un método y un aparato para realizar una inter predicción basándose en un perfeccionamiento de vector de movimiento de lado de descodificador (DMVR).
Este documento también proporciona un método y un aparato para realizar una inter predicción basándose en un flujo óptico bidireccional (BDOF).
Este documento también proporciona un método y un aparato para potenciar el rendimiento de predicción proporcionando una condición para determinar si aplicar un DMVR para potenciar la eficiencia de codificación de imágenes y/o una condición para determinar si aplicar un BDOF.
De acuerdo con un aspecto ilustrativo, se proporciona un método de descodificación de imágenes de acuerdo con la reivindicación 1.
De acuerdo con otro aspecto ilustrativo, se proporciona un método de codificación de imágenes de acuerdo con la reivindicación 8. Se proporcionan aspectos adicionales en las reivindicaciones 13 y 14.
De acuerdo con este documento, puede aumentarse la eficiencia de compresión de imágenes/vídeo global.
De acuerdo con este documento, la complejidad de cálculo puede reducirse y la eficiencia de codificación global puede potenciarse a través de una inter predicción eficiente.
De acuerdo con este documento, se proponen diversas condiciones de aplicación al aplicar un DMVR y/o un BDOF para perfeccionar información de movimiento durante un proceso de compensación de movimiento para potenciar la eficiencia en términos de complejidad y rendimiento.
Descripción de las figuras
La figura 1 ilustra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imágenes que es aplicable a realizaciones de este documento.
La figura 2 es un diagrama que explica esquemáticamente la configuración de un aparato de codificación de vídeo/imágenes que es aplicable a realizaciones de este documento.
La figura 3 es un diagrama que explica esquemáticamente la configuración de un aparato de descodificación de vídeo/imágenes que es aplicable a realizaciones de este documento.
La figura 4 es un diagrama que explica una realización de un proceso para realizar un perfeccionamiento de vector de movimiento de lado de descodificador (DMVR) en una bipredicción verdadera.
La figura 5 es un diagrama que explica una realización de un proceso para realizar un perfeccionamiento de vector de movimiento de lado de descodificador (DMVR) usando una suma de diferencias absolutas (SAD).
La figura 6 ilustra un ejemplo que representa un método para realizar un proceso de descodificación a través de la comprobación de las condiciones de aplicación de DMVR y BDOF.
Las figuras 7 y 8 ilustran otro ejemplo que representa un método para realizar un proceso de descodificación a través de la comprobación de las condiciones de aplicación de DMVR y BDOF.
La figura 9 es un diagrama ilustrado para explicar el concepto de BDOF.
La figura 10 es un diagrama de flujo que ilustra esquemáticamente un método de codificación que puede ser realizado por un aparato de codificación de acuerdo con una realización de este documento.
La figura 11 es un diagrama de flujo que ilustra esquemáticamente un método de descodificación que puede ser realizado por un aparato de descodificación de acuerdo con una realización de este documento.
La figura 12 ilustra un ejemplo de un sistema de envío por flujo continuo de contenido al que son aplicables realizaciones divulgadas en este documento.
Descripción detallada de la invención
Este documento puede modificarse de diversas formas y puede tener diversas realizaciones, y realizaciones específicas se ilustrarán en los dibujos y se describirán con detalle. Sin embargo, esto no pretende limitar este documento a las realizaciones específicas. Los términos comúnmente usados en esta memoria descriptiva se usan para describir una realización específica y no se usan para limitar el espíritu técnico de este documento. Una expresión de número singular incluye expresiones de número plural a menos que se exprese evidentemente lo contrario en el contexto. Debería entenderse que, en esta memoria descriptiva, un término tal como "incluir" o "tener" indica la existencia de una característica, un número, una etapa, una operación, un elemento, una parte o una combinación de los mismos descrito en la memoria descriptiva, y que no excluye la existencia o la posibilidad de la adición de otras una o más características, números, etapas, operaciones, elementos, partes o una combinación de los mismos.
Por otro lado, los elementos de los dibujos descritos en este documento se ilustran de forma independiente por conveniencia de la descripción relacionada con diferentes funciones de características. Esto no significa que cada uno de los elementos se implemente como hardware separado o software separado. Por ejemplo, al menos dos de los elementos pueden combinarse para formar un único elemento, o un único elemento puede dividirse en una pluralidad de elementos. En el alcance de los derechos de este documento también se incluye una realización en la que se combinan y/o se separan elementos, a menos que esta se desvíe de la esencia de este documento.
En lo sucesivo en el presente documento, se describen más específicamente realizaciones preferidas de este documento con referencia a los dibujos adjuntos. En lo sucesivo en el presente documento, en los dibujos, se usa el mismo número de referencia en el mismo elemento y puede omitirse una descripción redundante del mismo elemento.
La figura 1 ilustra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imágenes al que pueden aplicarse realizaciones de este documento.
Haciendo referencia a la figura 1, un sistema de codificación de vídeo/imágenes puede incluir un primer dispositivo (dispositivo fuente) y un segundo dispositivo (dispositivo receptor). El dispositivo fuente puede entregar información o datos de vídeo/imagen codificados en forma de 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 receptor puede incluir un receptor, un aparato de descodificación y un representador. El aparato de codificación puede denominarse aparato de codificación de vídeo/imágenes, y el aparato de descodificación puede denominarse aparato de descodificación de vídeo/imágenes. El transmisor puede estar incluido en el aparato de codificación. El receptor puede estar incluido en el aparato de descodificación. El representador puede incluir un visualizador, y el visualizador puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede 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, puede generarse 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, transformada y cuantificación para la eficiencia de compresión y codificación. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de 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 receptor a través de un medio de almacenamiento digital o una red en forma de archivo o envío por flujo continuo. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo de medios a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de radiodifusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de descodificación.
El aparato de descodificación puede descodificar 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 descodificado. El vídeo/imagen representado puede visualizarse a través del visualizador.
Este documento se refiere a la codificación de vídeo/imágenes. Por ejemplo, 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 Video 1 (AV1), la norma de segunda generación de codificación de audio vídeo (AVS2) o la norma de codificación de vídeo/imágenes de la próxima generación (por ejemplo, H.267 o H.268, etc.).
Este documento presenta diversas realizaciones de codificación de vídeo/imágenes, y las realizaciones pueden realizarse en combinación entre sí a menos que se mencione 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 puede dividirse en múltiples ladrillos, cada uno de los cuales consiste en una o más filas de CTU dentro de la pieza. Una pieza que no se divide en múltiples ladrillos también puede denominarse ladrillo. Una exploración de ladrillos es una ordenación secuencial específica de las CTU que dividen 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 dividen 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 única unidad NAL. Un corte puede consistir o bien en un número de piezas completas o bien en solo una secuencia consecutiva de ladrillos completos de una pieza. En este documento, los grupos de piezas y los cortes pueden usarse de forma 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 instantánea (o imagen). Asimismo, puede usarse 'muestra' como un término que corresponde a un píxel. Una muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar solo un píxel/valor de píxel de una componente de luma o solo un píxel/valor de píxel de una componente de croma.
Una unidad puede representar una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de una región específica de la imagen e información relacionada con la región. Una unidad puede incluir un bloque de luma y dos bloques de croma (por ejemplo, cb, cr). La unidad puede usarse de forma intercambiable con términos tales como bloque o área en algunos casos. En un caso general, un bloque M * N 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, debería interpretarse que el término V y “,” indica "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Asimismo, "A, B, C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, debería interpretarse que el término "o" indica "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, debería interpretarse que el término "o" en este documento indica "adicionalmente o como alternativa".
La figura 2 es un diagrama esquemático que ilustra una configuración de un aparato de codificación de vídeo/imágenes al que puede(n) aplicarse la(s) realización(es) del presente documento. En lo sucesivo en el presente documento, el aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Haciendo referencia a la figura 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 configurarse mediante 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 descodificadas (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 (o una instantánea o un fotograma) de entrada introducida en el 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, puede aplicarse en primer lugar la estructura de árbol cuádruple, y puede aplicarse más adelante la estructura de árbol binario y/o la estructura ternaria. Como alternativa, puede aplicarse en primer lugar la estructura de árbol binario. El procedimiento de codificación de acuerdo con 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 puede usarse como unidad de codificación final. En el presente caso, el procedimiento de codificación puede incluir un procedimiento de predicción, transformada y reconstrucción, que se describirá más adelante. 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 mencionada anteriormente. La unidad de predicción puede ser una unidad de predicción de muestras, y la unidad de transformada puede ser una unidad para inferir un coeficiente de transformada y/o una unidad para inferir una señal residual a partir del coeficiente de transformada.
La unidad puede usarse de forma intercambiable con términos tales como bloque o área en algunos casos. En un caso general, un bloque de M * N 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 un valor de un píxel, puede representar solo un píxel/valor de píxel de una componente de luma o solo un píxel/valor de píxel de una componente de croma. Una muestra puede usarse como un término correspondiente a una instantánea (o imagen) para un píxel o un pel.
En el aparato de codificación 200, una señal de predicción (bloque predicho, matriz de muestras de predicción) emitida desde el inter predictor 221 o el intra predictor 222 se resta de una señal de imagen de entrada (bloque original, matriz de muestras original) para generar un bloque residual de señal residual, matriz de muestras residuales), 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 predicho, matriz de muestras de predicción) de la señal de imagen de entrada (bloque original, matriz de muestras original) en el codificador 200 puede denominarse restador 231. El predictor puede realizar una predicción en un bloque a procesar (denominado, en lo sucesivo en el presente documento, bloque actual) y generar un bloque predicho 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 función de la 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 de modo de predicción, y transmitir la información generada al codificador por entropía 240. La información acerca de la predicción puede codificarse en el codificador por entropía 240 y emitirse en forma de 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, pueden usarse más o menos modos de predicción direccionales dependiendo de un ajuste. El intra predictor 222 puede determinar el modo de predicción aplicado al bloque actual usando un modo de predicción aplicado a un bloque vecino.
El inter predictor 221 puede inferir un bloque previsto para el bloque actual basándose en un bloque de referencia (una matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En el presente caso, con el fin de 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 de L0, predicción de L1, bipredicción, etc.). En el caso de inter predicción, el bloque vecino puede incluir un bloque vecino espacial 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 ubicado conjuntamente, una CU ubicada conjuntamente (colCU), y similares, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen ubicada conjuntamente (colPic). Por ejemplo, el inter predictor 221 puede configurar una lista de candidatos de información de movimiento basándose en bloques vecinos y generar información que indica qué candidato se usa para inferir un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La inter predicción puede realizarse basándose en diversos modos de predicción. Por ejemplo, en el caso de un modo de salto y un modo de fusión, el inter predictor 221 puede usar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el modo de salto, a diferencia del modo de fusión, la señal residual puede no transmitirse. 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 combinadas (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra bloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta puede usarse para la codificación de imágenes/vídeo de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). El IBC realiza básicamente la predicción en la imagen actual, pero puede realizarse de forma similar a una inter predicción en el sentido de que se infiere un bloque de referencia en la imagen actual. Es decir, el IBC puede usar al menos una de las técnicas de inter predicción descritas en este documento. El modo de paleta puede considerarse un ejemplo de intra codificación o intra predicción. Cuando se aplica el modo de paleta, puede señalizarse un valor de muestra dentro de una imagen basándose en información acerca 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 el presente caso, la GBT significa una 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 reconstruidos previamente. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados que tienen el mismo tamaño o puede aplicarse a bloques que tienen un tamaño variable en lugar de cuadrados.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitir los mismos al codificador por entropía 240 y el codificador por entropía 240 puede codificar la señal cuantificada (información acerca de los coeficientes de transformada cuantificados) y emitir un flujo de bits. La información acerca de 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 acerca de los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en forma de vector unidimensional. Puede generarse información acerca de 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 acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) 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 descodificació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 radiodifusió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 una unidad de almacenamiento (no mostrada) 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 muestras reconstruida). Si no hay residuo para el bloque a procesar, tal como en un caso en el que se aplica el modo de salto, el bloque predicho 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.
Por otro lado, puede aplicarse una correlación de luma con ajuste a escala de croma (LMCS) 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 la inter predicción se aplica a través del aparato de codificación, puede evitarse el desajuste de predicción entre el aparato de codificación 200 y el aparato de descodificació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 a partir del cual se infiere (o se 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 reconstruido. 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 descodificación de vídeo/imágenes que es aplicable a realizaciones de este documento.
Haciendo referencia a la figura 3, el aparato de descodificación 300 puede incluir un descodificador 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 331 y un intra predictor 332. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 321. El descodificador 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 descodificador o un procesador) de acuerdo con una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes descodificadas (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 descodificació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 descodificación 300 puede inferir unidades/bloques basándose en la información relacionada con la partición de bloques obtenida del flujo de bits. El aparato de descodificación 300 puede realizar la descodificación usando un procesador aplicado en el aparato de codificación. Por lo tanto, el procesador de descodificació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 inferirse a partir de la unidad de codificación. La señal de imagen reconstruida descodificada y emitida a través del aparato de descodificación 300 puede reproducirse a través de un aparato de reproducción.
El aparato de descodificación 300 puede recibir una señal emitida desde el aparato de codificación de la figura 2 en forma de un flujo de bits, y la señal recibida puede descodificarse a través del descodificador por entropía 310. Por ejemplo, el descodificador por entropía 310 puede analizar el flujo de bits para inferir información (por ejemplo, información de vídeo/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de instantáneas). La información de vídeo/imagen puede incluir además información acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) 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 descodificación puede descodificar además la imagen basándose en la información acerca 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 descodificarse pueden descodificar el procedimiento de descodificación y obtenerse del flujo de bits. Por ejemplo, el descodificador por entropía 310 descodifica 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 descodificació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 usando una información de elemento de sintaxis objetivo de descodificación, información de descodificación de un bloque objetivo de descodificación o información de un símbolo/binario descodificado en una fase previa, y realizar una descodificación aritmética en el binario prediciendo una probabilidad de aparición 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 descodificación por entropía de CABAC puede actualizar el modelo de contexto usando la información del símbolo/binario descodificado 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 de entre la información descodificada por el descodificador por entropía 310 puede proporcionarse al predictor (el inter predictor 332 y el intra predictor 331), y el valor residual en el que se realizó la descodificación por entropía en el descodificador por entropía 310, es decir, los coeficientes de transformada cuantificados y la información de parámetros relacionada pueden introducirse en el procesador residual 320. El procesador residual 320 puede inferir la señal residual (el bloque residual, las muestras residuales, la matriz de muestras residuales). Además, información acerca del filtrado de entre información descodificada por el descodificador por entropía 310 puede proporcionarse al filtro 350. Por otro lado, un receptor (no mostrado) para recibir una señal emitida desde el aparato de codificación puede configurarse adicionalmente como un elemento interno/externo del aparato de descodificación 300, o el receptor puede ser un componente del descodificador por entropía 310. Por otro lado, el aparato de descodificación de acuerdo con este documento puede denominarse aparato de descodificación de vídeo/imágenes/instantáneas, y el aparato de descodificación puede clasificarse en un descodificador de información (descodificador de información de vídeo/imágenes/instantáneas) y un descodificador de muestras (descodificador de muestras de vídeo/imágenes/instantáneas). El descodificador de información puede incluir el descodificador por entropía 310, y el descodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador inverso 322, el sumador 340, el filtro 350, la memoria 360, el inter predictor 332 y el intra predictor 331.
El descuantificador 321 puede 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 puede realizarse 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 usando un parámetro de cuantificación (por ejemplo, información de tamaño de etapa de cuantificación) y obtener coeficientes de transformada.
El transformador inverso 322 transforma a la inversa los coeficientes de transformada para obtener una señal residual (bloque residual, matriz de muestras residuales).
El predictor puede realizar predicción en el bloque actual y puede generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica intra predicción o inter predicción al bloque actual basándose en la información acerca de la predicción emitida desde el descodificador por entropía 310 y 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 combinadas (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra bloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta puede usarse para la codificación de imágenes/vídeo de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). El IBC realiza básicamente la predicción en la imagen actual, pero puede realizarse de forma similar a una inter predicción en el sentido de que se infiere un bloque de referencia en la imagen actual. Es decir, el IBC puede usar al menos una de las técnicas de inter predicción descritas en este documento. El modo de paleta puede considerarse un ejemplo de intra codificación o intra predicción. Cuando se aplica el modo de paleta, puede señalizarse un valor de muestra dentro de una imagen basándose en información acerca 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 referenciadas 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 el modo de predicción aplicado al bloque vecino.
El inter predictor 332 puede inferir un bloque previsto para el bloque actual basándose en un bloque de referencia (una matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, con el fin de 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 de L0, predicción de L1, bipredicción, etc.). En el caso de inter predicción, el bloque vecino puede incluir un bloque vecino espacial 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 basándose en bloques vecinos e inferir 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 inter predicción puede realizarse basándose en diversos modos de predicción, y la información acerca de la predicción puede incluir información que indica un modo de inter predicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruida) añadiendo la señal residual obtenida a la señal de predicción (bloque predicho, matriz de muestras predicha) 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 predicho puede usarse como el bloque reconstruido.
El sumador 340 puede denominarse reconstructor o 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.
Por otro lado, puede aplicarse una correlación de luma con ajuste a escala de croma (LMCS) en el proceso de descodificació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 a partir del cual se infiere (o se descodifica) 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 reconstruido. La información de movimiento almacenada puede transmitirse al inter predictor 260 con el fin de utilizarse 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 este documento, 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 descodificación 300. Lo mismo también puede ser de aplicación a la unidad 332 y al intra predictor 331.
Como se ha descrito anteriormente, al realizar una codificación de vídeo, se realiza una predicción para potenciar la eficiencia de compresión. A través de la predicción puede generarse un bloque predicho que incluye muestras de predicción para un bloque actual, es decir, un bloque de codificación objetivo. En este caso, el bloque predicho incluye las muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque predicho se infiere de forma idéntica en el aparato de codificación y en el aparato de descodificación. El aparato de codificación puede potenciar la eficiencia de codificación de imágenes señalizando, al aparato de descodificación, información acerca de un residuo (información residual) entre el bloque original, no un valor de muestra original propiamente dicho del bloque original, y el bloque predicho. El aparato de descodificación puede inferir un bloque residual que incluye muestras residuales basándose en la información residual, puede generar uno reconstruido que incluye muestras reconstruidas sumando el bloque residual y el bloque predicho, y puede generar una imagen reconstruida que incluye los bloques reconstruidos.
La información residual puede generarse a través de un procedimiento de transformada y de cuantificación. Por ejemplo, el aparato de codificación puede inferir el bloque residual entre el bloque original y el bloque predicho, puede inferir coeficientes de transformada realizando un procedimiento de transformada sobre las muestras residuales (una matriz de muestras residuales) incluidas en el bloque residual, puede inferir coeficientes de transformada cuantificados realizando un procedimiento de cuantificación sobre los coeficientes de transformada, y puede señalizar información residual relacionada al aparato de descodificación (a través de un flujo de bits). En este caso, la información residual puede incluir información, tal como información de valor, información de ubicación, esquema de transformada, núcleo de transformada y parámetro de cuantificación de los coeficientes de transformada cuantificados. El aparato de descodificación puede realizar un procedimiento de descuantificación/transformada inversa basándose en la información residual y puede inferir muestras residuales (o bloque residual). El aparato de descodificación puede generar una imagen reconstruida basándose en el bloque predicho y el bloque residual. Además, el aparato de codificación puede inferir un bloque residual descuantificando/transformando inversamente los coeficientes de transformada cuantificados para su referencia a la inter predicción de una imagen posterior, y puede generar una imagen reconstruida.
Por otro lado, como se ha descrito anteriormente, la intra predicción o la inter predicción puede aplicarse cuando se realiza una predicción sobre el bloque actual. En lo sucesivo en el presente documento, se describirá un caso de aplicación de la inter predicción al bloque actual. Por otro lado, como se ha descrito anteriormente, la intra predicción o la inter predicción puede aplicarse cuando se realiza una predicción sobre el bloque actual. En lo sucesivo en el presente documento, se describirá un caso de aplicación de la inter predicción al bloque actual.
El predictor (más específicamente, el inter predictor) del aparato de codificación/descodificación puede inferir muestras de predicción realizando la inter predicción en unidades del bloque. La inter predicción puede representar una predicción inferida mediante un método dependiente de los elementos de datos (por ejemplo, valores de muestra o información de movimiento) de una(s) imagen(es) distinta(s) de la imagen actual. Cuando la inter predicción se aplica al bloque actual, puede inferirse un bloque predicho (una matriz de muestras de predicción) para el bloque actual basándose en un bloque de referencia (una matriz de muestras de referencia) especificado por el vector de movimiento en la imagen de referencia indicada por el índice de imagen de referencia. En este caso, con el fin de reducir una cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento del bloque actual puede predecirse en unidades de un bloque, un subbloque o una muestra basándose en una correlación de la información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir el vector de movimiento y el índice de imagen de referencia. La información de movimiento puede incluir además información de tipo de inter predicción (predicción de L0, predicción de L1, bipredicción, etc.). En el caso de aplicar la inter predicción, el bloque vecino puede incluir un bloque vecino espacial que está presente en la imagen actual y un bloque vecino temporal que está presente en la imagen de referencia. Una imagen de referencia que incluye el bloque de referencia y una imagen de referencia que incluye el bloque vecino temporal pueden ser iguales entre sí o diferentes entre sí. El bloque vecino temporal puede denominarse con un nombre tal como bloque de referencia ubicado conjuntamente, CU ubicada conjuntamente (colCU), etc., y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen ubicada conjuntamente (colPic). Por ejemplo, puede configurarse una lista de candidatos de información de movimiento basándose en los bloques vecinos del bloque actual y puede señalizarse una bandera o información de índice que indica qué candidato se selecciona (se usa) con el fin de inferir el vector de movimiento y/o el índice de imagen de referencia del bloque actual. La inter predicción puede realizarse basándose en diversos modos de predicción y, por ejemplo, en el caso de un modo de salto y un modo de fusión, la información de movimiento del bloque actual puede ser igual que la información de movimiento del bloque vecino seleccionado. En el caso del modo de salto, la señal residual puede no transmitirse a diferencia del modo de fusión. En el caso de un modo de predicción de vector de movimiento (MVP), el vector de movimiento del bloque vecino seleccionado puede usarse como predictor de vector de movimiento y puede señalizarse una diferencia de vector de movimiento. En este caso, el vector de movimiento del bloque actual puede inferirse usando una suma del predictor de vector de movimiento y la diferencia de vector de movimiento.
La información de movimiento puede incluir además información de movimiento de L0 y/o información de movimiento de L1 de acuerdo con el tipo de inter predicción (predicción de L0, predicción de L1, bipredicción, etc.). Un vector de movimiento de dirección de L0 puede denominarse vector de movimiento de L0 o MVL0 y un vector de movimiento de dirección de L1 puede denominarse vector de movimiento de L1 o MVL1. Una predicción basándose en el vector de movimiento de L0 puede denominarse predicción de L0, una predicción basándose en el vector de movimiento de L1 puede denominarse predicción de L1 y una predicción basada tanto en el vector de movimiento de L0 como en el vector de movimiento de L1 puede denominarse bipredicción. En el presente caso, el vector de movimiento de L0 puede indicar un vector de movimiento asociado con una lista de imágenes de referencia L0 y el vector de movimiento de L1 puede indicar un vector de movimiento asociado con una lista de imágenes de referencia L1. La lista de imágenes de referencia L0 puede incluir imágenes anteriores a la imagen actual en un orden de salida y la lista de imágenes de referencia L1 puede incluir imágenes posteriores a la imagen actual en el orden de salida, como las imágenes de referencia. Las imágenes anteriores pueden denominarse imagen directa (de referencia) y las imágenes posteriores pueden denominarse imagen inversa (de referencia). La lista de imágenes de referencia L0 puede incluir además las imágenes posteriores a la imagen actual en el orden de salida como las imágenes de referencia. En este caso, las imágenes anteriores pueden indexarse en primer lugar en la lista de imágenes de referencia L0 y entonces pueden indexarse las imágenes posteriores. La lista de imágenes de referencia L1 puede incluir además las imágenes anteriores a la imagen actual en el orden de salida como las imágenes de referencia. En este caso, las imágenes posteriores pueden indexarse en primer lugar en la lista de imágenes de referencia L1 y entonces pueden indexarse las imágenes anteriores. En el presente caso, el orden de salida puede corresponder a un orden de recuento de orden de imagen (POC).
Además, pueden usarse diversos modos de inter predicción al aplicar la inter predicción al bloque actual. Por ejemplo, pueden usarse diversos modos que incluyen un modo de fusión, un modo de salto, un modo de predicción de vector de movimiento (MVP), un modo afín, un modo de predicción de vector de movimiento histórico (HMVP), y similares. Un modo de perfeccionamiento de vector de movimiento de lado de descodificador (DMVR), un modo de resolución de vector de movimiento adaptativo (AMVR), un flujo óptico bidireccional (BDOF), etc., pueden usarse adicionalmente como un modo auxiliar. El modo afín puede denominarse modo de predicción de movimiento afín. El modo de MVP puede denominarse modo de predicción de vector de movimiento avanzada (AMVP). En este documento, algunos modos y/o candidatos de información de movimiento inferidos mediante algunos modos pueden incluirse en uno de los candidatos relacionados con información de movimiento de otros modos.
La información de modo de predicción que indica el modo de inter predicción del bloque actual puede señalizarse desde el aparato de codificación al aparato de descodificación. En este caso, la información de modo de predicción puede incluirse en el flujo de bits y ser recibida por el aparato de descodificación. La información de modo de predicción puede incluir información de índice que indica uno de múltiples modos candidatos. Como alternativa, el modo de inter predicción puede indicarse a través de una señalización jerárquica de información de bandera. En este caso, la información de modo de predicción puede incluir una o más banderas. Por ejemplo, si aplicar el modo de salto puede indicarse señalizando una bandera de salto, si aplicar el modo de fusión puede indicarse señalizando una bandera de fusión cuando no se aplica el modo de salto, y se indica que se aplica el modo de MVP o puede señalizarse adicionalmente una bandera para una distinción adicional cuando no se aplica el modo de fusión. El modo afín puede señalizarse como un modo independiente o señalizarse como un modo dependiente en el modo de fusión o el modo de MVP. Por ejemplo, el modo afín puede incluir un modo de fusión afín y un modo de MVP afín.
Además, la información de movimiento del bloque actual puede usarse al aplicar la inter predicción al bloque actual. El dispositivo de codificación puede inferir información de movimiento óptima para el bloque actual a través de un procedimiento de estimación de movimiento. Por ejemplo, el dispositivo de codificación puede buscar un bloque de referencia similar que tiene una correlación alta en unidades de un píxel fraccionario dentro de un rango de búsqueda predeterminado en la imagen de referencia usando un bloque original en una imagen original para el bloque actual e inferir la información de movimiento a través del bloque de referencia buscado. La similitud del bloque puede inferirse basándose en una diferencia de valores de muestra basados en fases. Por ejemplo, la similitud del bloque puede calcularse basándose en una suma de diferencias absolutas (SAD) entre el bloque actual (o una plantilla del bloque actual) y el bloque de referencia (o la plantilla del bloque de referencia). En este caso, la información de movimiento puede inferirse basándose en un bloque de referencia que tiene la SAD más pequeña en un área de búsqueda. La información de movimiento inferida puede señalizarse al dispositivo de descodificación de acuerdo con diversos métodos basándose en el modo de inter predicción.
Un bloque predicho para el bloque actual puede inferirse basándose en la información de movimiento inferida de acuerdo con el modo de inter predicción. El bloque predicho puede incluir muestras de predicción (una matriz de muestras de predicción) del bloque actual. Cuando el vector de movimiento (MV) del bloque actual indica una unidad de muestra fraccionaria, puede realizarse un procedimiento de interpolación y las muestras de predicción del bloque actual pueden inferirse basándose en muestras de referencia de la unidad de muestra fraccionaria en la imagen de referencia a través del procedimiento de interpolación. Cuando la inter predicción afín se aplica al bloque actual, las muestras de predicción pueden generarse basándose en un MV de unidad de muestra/subbloque. Cuando se aplica la bipredicción, las muestras de predicción inferidas a través de una suma ponderada o un promedio ponderado de muestras de predicción inferidas basándose en la predicción de L0 (es decir, una predicción que usa una imagen de referencia en la lista de imágenes de referencia L0 y MVL0) y muestras de predicción ( de acuerdo con una fase) inferidas basándose en la predicción de L1 (es decir, una predicción que usa una imagen de referencia en la lista de imágenes de referencia L1 y MVL1) pueden usarse como las muestras de predicción del bloque actual. Cuando se aplica la bipredicción, si la imagen de referencia usada para la predicción de L0 y la imagen de referencia usada para la predicción de L1 se ubican en direcciones temporales diferentes basándose en la imagen actual (es decir, si la predicción corresponde a la bipredicción y a la predicción bidireccional), esto puede denominarse bipredicción verdadera.
Pueden generarse muestras reconstruidas e imágenes reconstruidas basándose en las muestras de predicción inferidas y, posteriormente, puede realizarse el procedimiento tal como filtrado en bucle, etc., como se ha descrito anteriormente.
Por otro lado, debido a que el movimiento del bloque actual se predice basándose en el vector de movimiento del bloque vecino sin una diferencia de vector de movimiento (MVD) en el modo de salto y/o el modo de fusión, el modo de salto y/o el modo de fusión muestran una limitación en una predicción de movimiento. Con el fin de mejorar la limitación del modo de salto y/o el modo de fusión, el vector de movimiento puede perfeccionarse aplicando un modo de perfeccionamiento de vector de movimiento de lado de descodificador (DMVR), un modo de flujo óptico bidireccional (BDOF), etc. Los modos de DMVR y de BDOF pueden usarse cuando la bipredicción verdadera se aplica al bloque actual.
La figura 4 es un diagrama para describir una realización de un proceso para realizar un perfeccionamiento de vector de movimiento de lado de descodificador (DMVR) en una predicción de par verdadera.
El DMVR es un método en el que el descodificador realiza la predicción de movimiento perfeccionando la información de movimiento del bloque vecino. Cuando se aplica el DMVR, el descodificador puede inferir la información de movimiento perfeccionada a través de una comparación de coste basándose en una plantilla generada usando la información de movimiento del bloque vecino en el modo de fusión/salto. En este caso, puede aumentarse la precisión de la predicción de movimiento y puede potenciarse el rendimiento de compresión sin información de señalización adicional.
En este documento, por conveniencia de la descripción, se describe principalmente el aparato de descodificación, pero el DMVR de acuerdo con la realización de este documento puede realizarse en el mismo método incluso en el aparato de codificación.
Haciendo referencia a la figura 4, el aparato de descodificación puede inferir bloques de predicción (es decir, bloques de referencia) identificados por vectores de movimiento (o información de movimiento) iniciales de dirección de lista0 y de lista1 (por ejemplo, MV0 y MV1) y generar una plantilla (o una plantilla bilateral) mediante una suma ponderada (por ejemplo, un promediado) de las muestras de predicción inferidas (la etapa 1). En el presente caso, los vectores de movimiento iniciales (MV0 y MV1) pueden representar vectores de movimiento inferidos usando la información de movimiento del bloque vecino en el modo de fusión/salto.
Además, el aparato de descodificación puede inferir vectores de movimiento (por ejemplo, MV0' y MV1') para minimizar una diferencia entre la plantilla y el área de muestra de la imagen de referencia a través de una operación de puesta en coincidencia de plantilla (la etapa 2). En el presente caso, el área de muestra puede indicar un área vecina de un bloque de predicción inicial en la imagen de referencia y el área de muestra puede denominarse área vecina, área de referencia, área de búsqueda, rango de búsqueda, espacio de búsqueda, etc. La operación de puesta en coincidencia de plantilla puede incluir una operación de cálculo de un valor de medición de coste entre la plantilla y el área de muestra de la imagen de referencia. Por ejemplo, puede usarse la suma de diferencias absolutas (SAD) para la medición de coste. Como un ejemplo, la SAD normalizada puede usarse como una función de coste. En este caso, puede darse un coste de puesta en coincidencia como SAD (T - media(T), 2 * P[x] - 2 * media(P[x])). En el presente caso, T representa la plantilla y P[x] representa el bloque en el área de búsqueda. Además, un vector de movimiento para calcular un coste de plantilla mínimo para cada una de las dos imágenes de referencia puede considerarse como un vector de movimiento actualizado (que reemplaza al vector de movimiento inicial). Como se ilustra en la figura 8, el aparato de descodificación puede generar un resultado de predicción bilateral final (es decir, un bloque de predicción bilateral final) usando los vectores de movimiento actualizados MV0' y MV1'. Como una realización, puede usarse una iteración múltiple para inferir el vector de movimiento actualizado (o nuevo) para adquirir el resultado de predicción bilateral final.
En una realización, el aparato de descodificación puede llamar a un proceso de DMVR con el fin de potenciar la precisión de una predicción de compensación de movimiento inicial (es decir, la predicción de compensación de movimiento a través del modo de fusión/salto convencional). Por ejemplo, el aparato de descodificación puede realizar el proceso de DMVR cuando el modo de predicción del bloque actual es el modo de fusión o el modo de salto y la bipredicción bilateral en la que las imágenes de referencia bilaterales se ubican en direcciones opuestas basándose en la imagen actual en un orden de visualización se aplica al bloque actual.
La figura 5 es un diagrama que explica una realización de un proceso para realizar un perfeccionamiento de vector de movimiento de lado de descodificador (DMVR) usando una suma de diferencias absolutas (SAD).
Como se ha descrito anteriormente, el aparato de descodificación puede medir el coste de puesta en coincidencia usando la SAD al realizar el DMVR. Como una realización, en la figura 5 se describirá un método para perfeccionar el vector de movimiento calculando una suma media de diferencia absoluta (MRSAD) entre las muestras de predicción en dos imágenes de referencia sin generar la plantilla. En otras palabras, el método de la figura 5 muestra una realización de puesta en coincidencia bilateral usando la MRSAD.
Haciendo referencia a la figura 5, el aparato de descodificación puede inferir un píxel adyacente de un píxel (muestra) indicado por el vector de movimiento de dirección de lista0 (L0) MV0 en la imagen de referencia de L0 e inferir un píxel adyacente de un píxel (muestra) indicado por el vector de movimiento de dirección de lista1 (L1) MV1 en la imagen de referencia de L1. Además, el aparato de descodificación puede medir el coste de puesta en coincidencia calculando la MRSAD entre el bloque de predicción de L0 (es decir, el bloque de referencia de L0) identificado por el vector de movimiento que indica el píxel adyacente inferido en la imagen de referencia de L0 y el bloque de predicción de L1 (es decir, el bloque de referencia de L1) identificado por el vector de movimiento que indica el píxel adyacente inferido en la imagen de referencia de L1. En este caso, el aparato de descodificación puede seleccionar un punto de búsqueda (es decir, un área de búsqueda que tiene la SAD mínima entre el bloque de predicción de L0 y el bloque de predicción de L1) que tiene un coste mínimo como un par de vectores de movimiento perfeccionados. En otras palabras, el par de vectores de movimiento perfeccionados puede incluir un vector de movimiento de L0 perfeccionado que indica una posición de píxel (el bloque de predicción de L0) que tiene el coste mínimo en la imagen de referencia de L0 y un vector de movimiento de L1 perfeccionado que indica una posición de píxel (el bloque de predicción de L1) que tiene el coste mínimo en la imagen de referencia de L1.
Como una realización, al calcular el coste de puesta en coincidencia, después de que se haya establecido el área de búsqueda de la imagen de referencia, puede realizarse una predicción unilateral usando un filtro de interpolación DCTIF de 8 derivaciones normal. Además, como un ejemplo, puede usarse una precisión de 16 bits para el cálculo de la MRSAD y pueden no aplicarse operaciones de recorte y/o redondeo antes del cálculo de la MRSAD considerando una memoria intermedia interna.
Cuando se aplica la bipredicción verdadera al bloque actual como se ha descrito anteriormente, puede usarse el BDOF con el fin de perfeccionar una señal de bipredicción. Cuando se aplica la bipredicción al bloque actual, el flujo óptico bidireccional (BDOF) puede usarse para calcular información de movimiento mejorada y generar las muestras de predicción basándose en la información de movimiento calculada. Por ejemplo, el BDOF puede aplicarse a un nivel de 4 x 4 subbloques. En otras palabras, el BDOF puede realizarse en unidades de 4 x 4 subbloques en el bloque actual. Como alternativa, el BDOF puede aplicarse solo a una componente de luma. Como alternativa, el BDOF puede aplicarse solo a una componente de croma y aplicarse a la componente de luma y a la componente de croma.
El modo de BDOF se basa en un concepto de flujo óptico que supone que el movimiento de un objeto es suave, como es indicado por un nombre del modo de BDOF. Un perfeccionamiento de movimiento (<vx>, vy) puede calcularse minimizando un valor de diferencia entre las muestras de predicción de L0 y de L1 para cada uno de los 4 x 4 subbloques. Además, el perfeccionamiento de movimiento puede usarse para ajustar los valores de muestra de bipredicción en 4 x 4 subbloques.
Por otro lado, puede verse que el DMVR y el BDOF como técnicas que realizan la predicción perfeccionando la información de movimiento (en este caso, la bipredicción verdadera representa un caso de realizar la predicción/compensación de movimiento en una imagen de referencia de la otra dirección basándose en la imagen del bloque actual) en el momento de aplicar la bipredicción verdadera es una técnica de perfeccionamiento que tiene un concepto similar en el sentido de que se supone que el movimiento de un objeto en la imagen se hace a una velocidad predeterminada y en una dirección predeterminada. Sin embargo, cuando se realiza la bipredicción verdadera, debido a que una condición para aplicar el DMVR y una condición para aplicar el BDOF son diferentes entre sí, debería realizarse un proceso de comprobación de las condiciones repetidamente múltiples veces para cada técnica. Por lo tanto, este documento propone un método que puede potenciar la eficiencia en términos de rendimiento y complejidad de descodificador potenciando el proceso de comprobación de la condición al determinar el modo de predicción aplicado al bloque actual.
La Tabla 1 a continuación muestra una condición para aplicar el DMVR durante la bipredicción verdadera convencional. Cuando se satisfacen todas las condiciones enumeradas a continuación, puede aplicarse el DMVR.
___________________________________________ [Tabla 11___________________________________________- sps_dmvr_enabled_flag se establece a 1. : Señalización en SPS
- merge_flag[ xCb ][ yCb ] es igual a 1. : Aplicado en caso de FUSIÓN/SALTO
- mmvd_flag[ xCb ][ yCb ] es igual a 0. : Aplicado en caso de no MMVD
- predFlagL0[0][0] = 1 y predFlagL0[1][1] = 1. : Predicción bidireccional
- DiffPicOrderCnt (currPic, RefPicList0 [refldxL0]) - DiffPicOrderCnt (currPic, RefPicList1 [ refIdxL1 ] ) es igual a 0. : BiVerdadera, y las distancias desde la imagen actual y la imagen de referencia bidireccional son iguales entre sí (en lo sucesivo en el presente documento, "distancia de imágenes de referencia" puede representar el significado descrito anteriormente).
- CbHeight es mayor que o igual a8. : En caso de que la longitud (o el tamaño) de bloque sea más grande que el umbral (por ejemplo,8) (en el presente caso, el umbral puede ilustrarse de diversas formas)
- CbHeight * CbWidth es mayor que o igual a 64. : En caso de que el tamaño (o la magnitud) de bloque sea más grande que el umbral (por ejemplo, 64) (en el presente caso, el umbral puede ilustrarse de diversas formas)_______________________________________________________________________________
Haciendo referencia a la Tabla 1, 1) si aplicar el DMVR puede determinarse basándose en información de bandera (por ejemplo, sps_dmvr_enabled_flag) señalizada en una sintaxis de conjunto de parámetros de secuencia (SPS). En el presente caso, la información de bandera (por ejemplo, sps_dmvr_enabled_flag) puede representar si el DMVR basado en bipredicción verdadera está habilitado. Por ejemplo, cuando sps_dmvr_enabled_flag es 1 (es decir, cuando el DMVR basado en bipredicción verdadera está habilitado), puede determinarse que se satisface una condición para si el DMVR está habilitado.
2) Si aplicar el DMVR puede determinarse basándose en información de bandera (por ejemplo, merge_flag) que representa si la inter predicción se realiza usando el modo de fusión/modo de salto. Por ejemplo, cuando merge_flag es 1 (es decir, cuando la inter predicción se realiza usando el modo de fusión/modo de salto), puede determinarse que se satisface una condición para si aplicar el modo de fusión/modo de salto.
3) Si aplicar el DMVR puede determinarse basándose en información de bandera (por ejemplo, mmvd_flag) que representa si la inter predicción se realiza usando el modo de modo de fusión con diferencia de vector de movimiento (MMVD). Por ejemplo, cuando mmvd_flag es 0 (es decir, cuando no se usa el modo de MMVD), puede determinarse que se satisface una condición para si aplicar el modo de MMVD.
4) Si aplicar el DMVR puede determinarse basándose en si se usa la predicción bilateral (bipredicción). En el presente caso, la predicción bilateral puede representar una inter predicción realizada basándose en imágenes de referencia que existen en diferentes direcciones basándose en la imagen actual. Por ejemplo, cuando predFlagL0[0][0] = 1 y predFlagL0[1 ][1 ] = 1, puede determinarse que se aplica la predicción bilateral y puede determinarse que se satisface una condición para si realizar la predicción bilateral.
5) Si aplicar el DMVR puede determinarse basándose en si se realiza la bipredicción verdadera y las distancias entre la imagen actual y las imágenes de referencia bilaterales son iguales entre sí. En otras palabras, puede determinarse si una distancia entre la imagen actual y una imagen de referencia de L0 (es decir, una imagen de referencia en la lista de imágenes de referencia L0) y una distancia entre la imagen actual y una imagen de referencia de L1 (es decir, una imagen de referencia en la lista de imágenes de referencia L1) son iguales entre sí. Por ejemplo, cuando DiffPicOrderCnt(currPic, RefPicList0 [refIdxL0]) - DiffPicOrderCnt(currPic, RefPicList1 [ refIdxL1 ] ) = 0, se determina que se realiza la bipredicción verdadera y que las distancias entre la imagen actual y las imágenes de referencia bilaterales son iguales entre sí para determinar que se satisface una condición para si las distancias de las imágenes de referencia bilaterales son iguales entre sí.
6) Si aplicar el DMVR puede determinarse basándose en si la altura de un bloque actual es más grande que un umbral. Por ejemplo, cuando la altura del bloque actual es igual a o más grande que 8, puede determinarse que se satisface una condición de tamaño (altura) de bloque actual.
7) Si aplicar el DMVR puede determinarse basándose en si el tamaño del bloque actual es más grande que el umbral. Por ejemplo, cuando el tamaño del bloque actual, altura * anchura, es igual a o más grande que 64, puede determinarse que se satisface la condición de tamaño (altura * anchura) de bloque actual.
El aparato de descodificación puede determinar si aplicar el DMVR de acuerdo con si se satisfacen las condiciones 1) a 7) de la Tabla 1 anterior. En otras palabras, cuando se satisfacen las condiciones 1) a 7) de la Tabla 1 anterior, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR y, cuando ni siquiera se satisface una cualquiera de las condiciones de la Tabla 1 anterior, el aparato de descodificación no aplica el DMVR.
La Tabla 2 a continuación muestra una condición para aplicar el BDOF durante la bipredicción verdadera convencional. Cuando se satisfacen todas las condiciones enumeradas a continuación, puede aplicarse el BDOF.
T l 21
Haciendo referencia a la Tabla 2 anterior, 1) si aplicar el BDOF puede determinarse basándose en información de bandera (por ejemplo, sps_bdof_enabled_flag) señalizada en la sintaxis de conjunto de parámetros de secuencia (SPS). En el presente caso, la información de bandera (por ejemplo, sps_dmvr_enabled_flag) puede representar si el BDOF basado en bipredicción verdadera está habilitado. Por ejemplo, cuando sps_bdof_enabled_flag es 1 (es decir, cuando el BDOF basado en bipredicción verdadera está habilitado), puede determinarse que se satisface una condición para si el BDOF está habilitado.
2) Si aplicar el BDOF puede determinarse basándose en si se usa la predicción bilateral. En el presente caso, la predicción bilateral puede representar una inter predicción realizada basándose en imágenes de referencia que existen en diferentes direcciones basándose en la imagen actual. Por ejemplo, cuando tanto predFlagL0 como predFlagL1 son 1, puede determinarse que se aplica la predicción bilateral y puede determinarse que se satisface una condición para si realizar la predicción bilateral.
3) Si aplicar el BDOF puede determinarse basándose en si se realiza la bipredicción verdadera. En otras palabras, puede determinarse si la imagen de referencia de L0 (es decir, la imagen de referencia en la lista de imágenes de referencia L0) y la imagen de referencia de L1 (es decir, la imagen de referencia en la lista de imágenes de referencia L1) se ubican en direcciones temporalmente diferentes basándose en la imagen actual. Por ejemplo, cuando DiffPicOrderCnt(currPic, refPicList0[refIdxL0]) * DiffPicOrderCnt(currPic, refPicList1[refIdxL1]) es más pequeño que 0, se determina que las imágenes de referencia bilaterales se ubican en diferentes direcciones basándose en la imagen actual para determinar que se satisface la condición para si se realiza la bipredicción verdadera.
4) Si aplicar el BDOF puede determinarse basándose en si se usa el modo afín. En el presente caso, si se usa el modo afín puede determinarse infiriendo MotionModelIdc. Por ejemplo, cuando el MotionModelIdc inferido es 0, puede determinarse que no se usa el modo afín y, en este caso, puede determinarse que se satisface una condición para si aplicar el modo afín.
5) Si aplicar el BDOF puede determinarse basándose en información de bandera (por ejemplo, merge_subblock_flag) que representa si la inter predicción se realiza en unidades de los subbloques. Por ejemplo, cuando merge_subblock_flag es 0 (es decir, cuando el modo de fusión no se aplica en unidades de los subbloques), puede determinarse que se satisface una condición para si aplicar el modo de fusión en unidades de los subbloques.
6) Si aplicar el BDOF puede determinarse basándose en si existe GBi. En el presente caso, si existe el GBi puede determinarse basándose en información de índice de GBi (por ejemplo, Gbildx). Por ejemplo, cuando Gbildx es 0 (es decir, cuando Gbildx es un valor por defecto), puede determinarse que se satisface una condición para si existe el GBi.
7) Si aplicar el BDOF puede determinarse basándose en si el bloque actual es un bloque de luma que incluye la componente de luma. Por ejemplo, cuando un índice (por ejemplo, cIdx) indica si el bloque actual es el bloque de luma (es decir, cuando el bloque actual es el bloque de luma), puede determinarse que se satisface una condición para si el bloque actual es el bloque de luma.
El aparato de descodificación puede determinar si aplicar el DMVR de acuerdo con si se satisfacen las condiciones 1) a 7) de la Tabla 2 anterior. En otras palabras, cuando se satisfacen las condiciones 1) a 7) de la Tabla 2 anterior, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF y, cuando ni siquiera se satisface una cualquiera de las condiciones de la Tabla 2 anterior, el aparato de descodificación no aplica el BDOF.
Como se ha descrito anteriormente, algunas de las condiciones de aplicación del DMVR y el BDOF son iguales y otras son similares o diferentes. En el esquema convencional, debido a que la comprobación de condiciones se realiza para cada técnica incluso cuando la condición es la misma, aumenta la complejidad para realizar la bipredicción. Por lo tanto, la presente divulgación propone una condición eficiente para aplicar el DMVR y el BDOF durante la bipredicción.
Cuando se compara el modo de fusión/salto con el modo de AMVP, el modo de fusión/salto tiene una precisión relativamente inferior a la del modo de AMVP y, como resultado, perfeccionar la información de movimiento usando el método de DMVR es eficaz en términos del rendimiento. Sin embargo, el modo de BDOF puede aplicarse incluso en el modo de AMVP además del modo de fusión/salto a diferencia del DMVR y, en este sentido, la complejidad para realizar el BDOF en comparación con el rendimiento puede aumentar cuando se aplica el BDOF en el modo de AMVP. En consecuencia, la realización propone un método para aplicar incluso el BDOF en el modo de fusión/salto de forma similar al DMVR.
En este caso, como una realización propuesta en la presente divulgación, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 3 a continuación.
Tabla 3
Haciendo referencia a la Tabla 3 anterior, si aplicar el BDOF puede determinarse basándose en información de bandera (por ejemplo, merge_flag) que representa si la inter predicción se realiza usando el modo de fusión/modo de salto. Por ejemplo, cuando merge_flag es 1 (es decir, cuando la inter predicción se realiza usando el modo de fusión/modo de salto), puede determinarse que se satisface una condición para si aplicar el modo de fusión/modo de salto. En consecuencia, el BDOF también puede aplicarse en el modo de fusión/salto de forma similar al DMVR.
En otras palabras, en la realización, junto con una condición aplicada en el caso del modo de fusión/salto, si aplicar el BDOF puede determinarse basándose en una condición aplicada cuando el BDOF está habilitado, una condición aplicada en el caso de la predicción bilateral, una condición aplicada cuando se realiza la bipredicción verdadera, una condición aplicada cuando se usa la predicción afín, una condición aplicada cuando no se aplica el modo de fusión basado en subbloques, una condición aplicada cuando el índice de GBi es un valor por defecto y una condición aplicada cuando el bloque actual es el bloque de luma.
En consecuencia, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 3 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 3 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 3 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 3 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Por otro lado, cuando las condiciones enumeradas en la realización son iguales que las condiciones descritas en las Tablas 1 y 2 anteriores, se aplica de forma similar un significado u operación detallada y, como resultado, se omitirá una descripción detallada para cada condición. Además, se omitirán contenidos duplicados incluso en las realizaciones que van a describirse a continuación.
El aparato de codificación/descodificación puede configurarse mediante hardware diverso y la preferencia de la relación de la complejidad con respecto al rendimiento puede ser diferente. Por lo tanto, la realización propone un método que puede perfeccionar la información de movimiento aplicando el DMVR incluso en el modo de AMVP además del modo de fusión/salto.
En este caso, como una realización propuesta en la presente divulgación, la condición de aplicación del DMVR puede incluir condiciones presentadas en la Tabla 4 a continuación.
T l 41
Haciendo referencia a la Tabla 4 anterior, un proceso de determinación de si aplicar el DMVR puede omitirse basándose en la información de bandera (por ejemplo, merge_flag) que representa si la inter predicción se realiza usando el modo de fusión/modo de salto. En este sentido, omitiendo una condición para si aplicar el modo de fusión/modo de salto, el DMVR puede aplicarse incluso en el modo de AMVP además del modo de fusión/modo de salto.
De acuerdo con la Tabla 4 anterior, si aplicar el DMVR puede determinarse basándose en una condición aplicada cuando el DMVR está habilitado, una condición aplicada cuando no se usa el modo de MMVD, una condición aplicada en el caso de la predicción bilateral, una condición aplicada en el caso de la bipredicción verdadera en la que las distancias entre la imagen actual y las imágenes de referencia bilaterales son iguales entre sí, una condición aplicada cuando la altura del bloque actual es igual a o más grande que 8, y una condición aplicada cuando el tamaño (altura * anchura) del bloque actual es igual a o más grande que 64.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 4 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 4 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 4 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 4 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Por otro lado, como una realización de la presente divulgación, tanto el DMVR como el BDOF pueden aplicarse a un modo de fusión normal. En otras palabras, el DMVR y el BDOF pueden aplicarse cuando no se usa el modo de predicción de vector de movimiento temporal avanzada (ATMVP), no se usa el modo afín y no se usa el CPR. En este caso, la condición de aplicación del DMVr puede incluir condiciones presentadas en la Tabla 5 a continuación.
Tabla 5
Haciendo referencia a la Tabla 5 anterior, se determina si se satisfacen la condición aplicada cuando no se usa el modo afín (por ejemplo, cuando MotionModelIdc es 0) y la condición aplicada cuando no se usa el modo de fusión basado en subbloques (por ejemplo, cuando merge_subblock_flag es 0) para aplicar el DMVR solo en el modo de fusión normal.
Además, en la realización, junto con la condición para si se usa el modo afín y la condición para si se usa el modo de fusión basado en subbloques, si aplicar el DMVR puede determinarse basándose en la condición aplicada cuando el DMVR está habilitado, la condición aplicada cuando se usa el modo de fusión/modo de salto, la condición aplicada cuando no se usa el modo de MMVD, la condición aplicada en el caso de la predicción bilateral, la condición aplicada en el caso de la bipredicción verdadera en la que las distancias entre la imagen actual y las imágenes de referencia bilaterales son iguales entre sí, la condición aplicada cuando la altura del bloque actual es igual a o más grande que 8, y la condición aplicada cuando el tamaño (altura * anchura) del bloque actual es igual a o más grande que 64.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 5 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 5 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 5 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
La condición para si aplicar el modo de fusión basado en subbloques (por ejemplo, merge_subblock_flag) de entre las condiciones de aplicación de la Tabla 5 anterior incluye una condición duplicada de entre las condiciones de aplicación de DMVR convencionales. En consecuencia, como una realización de la presente divulgación, puede quitarse una condición duplicada con la condición (por ejemplo, merge_subblock_flag) para si aplicar el modo de fusión basado en subbloques. En este caso, puede quitarse la condición correspondiente como se propone en la Tabla 6 a continuación.
Tabla 6
Haciendo referencia a la Tabla 6 anterior, el modo de fusión basado en subbloques puede aplicarse cuando el tamaño del bloque actual es igual a o más grande que 8 x 8. En consecuencia, debido a que la condición (por ejemplo, merge_subblock_flag = 0) para si aplicar el modo de fusión basado en subbloques incluye una condición relacionada con el tamaño del bloque actual, pueden excluirse condiciones (por ejemplo, CbHeight y CbHeight * CbWidth) relacionadas con el tamaño del bloque actual de entre las condiciones de aplicación del DMVR convencional. Por ejemplo, pueden omitirse la condición para si la altura del bloque actual es igual a o más grande que 8 y la condición para si la altura * la anchura del bloque actual es igual a o más grande que 64, y si aplicar el DMVR puede determinarse usando las condiciones restantes enumeradas en la Tabla 6 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 6 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 6 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 6 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 5 o 6 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Como una realización de la presente divulgación, con el fin de aumentar la precisión del vector de movimiento en una complejidad baja, cuando el tamaño del bloque es pequeño, pueden no aplicarse las técnicas de perfeccionamiento tales como el DMVR y el BDOF. En el esquema convencional, la técnica de perfeccionamiento puede aplicarse cuando el bloque actual es un bloque que es igual a o más grande que 8 x 8 y, en el caso del DMVR de las técnicas de perfeccionamiento, cuando el tamaño del bloque actual es grande, el perfeccionamiento se aplica separando el bloque actual en 16 x 16 unidades y, como resultado, el DMVR puede no aplicarse a un bloque que es más pequeño que 16 x 16. En este caso, la condición de aplicación del DMVR puede incluir condiciones presentadas en la Tabla 7 a continuación.
Tabla 7
Haciendo referencia a la Tabla 7 anterior, el DMVR puede no aplicarse al bloque que es más pequeño que 16 x 16 cambiando las condiciones (por ejemplo, CbHeight y CbWidth) relacionadas con el tamaño del bloque actual. Por ejemplo, puede usarse una condición aplicada cuando la altura del bloque actual (por ejemplo, CbHeight) es igual a o más grande que 16 y una condición aplicada cuando la anchura del bloque actual (por ejemplo, CbWidth) es igual a o más grande que 16. Cuando se satisfacen las condiciones de aplicación relacionadas con el tamaño del bloque actual (es decir, cuando el tamaño del bloque actual es igual a o más grande que 16 x 16, puede aplicarse el DMVR y, cuando no se satisfacen las condiciones de aplicación relacionadas con el tamaño del bloque actual (es decir, cuando el tamaño del bloque actual es más pequeño que 16 x 16), puede no aplicarse el DMVR.
Además, en la realización, junto con las condiciones (por ejemplo, CbHeight y CbWidth) relacionadas con el tamaño del bloque actual, si aplicar el DMVR puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 7 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 7 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 7 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 7 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Como una realización de la presente divulgación, cuando el bloque actual es el bloque que es más pequeño que 16 x 16, el BDOF puede no aplicarse además del DMVR. En este caso, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 8 a continuación.
Tabla 8
Haciendo referencia a la Tabla 8 anterior, el BDOF puede no aplicarse al bloque que es más pequeño que 16 x 16 cambiando las condiciones (por ejemplo, CbHeight y CbWidth) relacionadas con el tamaño del bloque actual. Por ejemplo, puede usarse una condición aplicada cuando la altura del bloque actual (por ejemplo, CbHeight) es igual a o más grande que 16 y una condición aplicada cuando la anchura del bloque actual (por ejemplo, CbWidth) es igual a o más grande que 16. Cuando se satisfacen las condiciones de aplicación relacionadas con el tamaño del bloque actual (es decir, cuando el tamaño del bloque actual es igual a o más grande que 16 x 16, puede aplicarse el BDOF y, cuando no se satisfacen las condiciones de aplicación relacionadas con el tamaño del bloque actual (es decir, cuando el tamaño del bloque actual es más pequeño que 16 x 16), puede no aplicarse el BDOF.
Además, en la realización, junto con las condiciones (por ejemplo, CbHeight y CbWidth) relacionadas con el tamaño del bloque actual, si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 8 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 8 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 8 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 8 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 7 u 8 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Como se ha descrito anteriormente, el DMVR se aplica cuando las distancias entre la imagen actual y las imágenes de referencia bilaterales son iguales entre sí, mientras que el BDOF se aplica continuamente en el caso de la bipredicción verdadera incluso aunque las distancias entre la imagen actual y las imágenes de referencia bilaterales sean diferentes entre sí. En consecuencia, la presente divulgación propone un método que puede aplicar de forma integral la condición relacionada con la distancia de imágenes de referencia bilaterales al DMV<r>y al BDOF con el fin de aumentar la eficiencia de codificación.
Como una realización propuesta en la presente divulgación, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 9 a continuación.
Tabla 9
Haciendo referencia a la Tabla 9 anterior, se cambia una condición relacionada con la distancia de imágenes de referencia de entre las condiciones de aplicación del BDOF (por ejemplo, DiffPicOrderCnt) para aplicar de forma similar la condición correspondiente al DMVR y al BDOF. Por ejemplo, se determina si DiffPicOrderCnt(currPic, RefPicList0 [refIdxL0]) - DiffPicOrderCnt(currPic, RefPicList1 [ refIdxL1 ]) es 0 para determinar si una distancia entre la imagen actual y una imagen de referencia de L0 (es decir, una imagen de referencia en la lista de imágenes de referencia L0) y una distancia entre la imagen actual y una imagen de referencia de L1 (es decir, una imagen de referencia en la lista de imágenes de referencia L1) son iguales entre sí. En otras palabras, el BDOF puede aplicarse solo cuando las distancias entre la imagen actual y las imágenes de referencia bilaterales son iguales entre sí. En este sentido, debido a que se añade una condición en la que se realiza la bipredicción verdadera y las distancias de imágenes de referencia bilaterales son iguales entre sí, el rango de aplicación de BDOF es limitado, evitando de ese modo complejidad de descodificación.
Además, en la realización, junto con las condiciones (por ejemplo, DiffPicOrderCnt) relacionadas con la distancia de imágenes de referencia, si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 9 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 9 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 9 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 9 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Como una realización propuesta en la presente divulgación, la condición de aplicación del DMVR puede incluir condiciones presentadas en la Tabla 10 a continuación.
Tabla 10
Haciendo referencia a la Tabla 10 anterior, se cambia una condición relacionada con la distancia de imágenes de referencia de entre las condiciones de aplicación del DMVR (por ejemplo, DiffPicOrderCnt) para aplicar de forma similar la condición correspondiente al DMVR y al BDOF. Por ejemplo, se determina si DiffPicOrderCnt( currPic, refPicList0[ refIdxL0 ] ) * DiffPicOrderCnt(currPic, refPicList1[ refIdxL1 ]) es más pequeño que 0 para determinar si se realiza una bipredicción verdadera en la que las imágenes de referencia bilaterales se ubican en diferentes direcciones basándose en la imagen actual. En otras palabras, el DMVR puede aplicarse continuamente en el caso de la bipredicción verdadera incluso aunque las distancias entre la imagen actual y las imágenes de referencia bilaterales no sean iguales entre sí. En este sentido, debido a que se aplica la condición para si se realiza la bipredicción verdadera, puede usarse un vector de movimiento inferido considerando la complejidad de descodificación sin ajuste a escala incluso cuando las distancias de imágenes de referencia bilaterales son diferentes.
Además, en la realización, junto con la condición (por ejemplo, DiffPicOrderCnt) relacionada con la distancia de imágenes de referencia, si aplicar el DMVR puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 10 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 10 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 10 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 10 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 9 o 10 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Por otro lado, en cada bloque de referencia, puede tener lugar un caso en el que se realiza una compensación de movimiento mediante una suma ponderada mediante un cambio en la luz. En este caso, debido a que un fenómeno puede determinarse mediante GBi o compensación de iluminación local (LIC), las condiciones de aplicación del DMVR y el BDOF pueden determinarse considerando la condición de GBi o de LIC.
Como una realización de la presente divulgación, se propone un método para determinar si aplicar el DMVR considerando las condiciones de GBi y de LIC. En este caso, la condición de aplicación del DMVR puede incluir condiciones presentadas en la Tabla 11 a continuación.
Tabla 11
Haciendo referencia a la Tabla 11, es posible determinar si aplicar el DMVR añadiendo una condición de GBi (por ejemplo, Gbildx) y una condición de LIC (por ejemplo, LICFlag). En el presente caso, el GBi puede representar una bipredicción generalizada capaz de aplicar diferentes pesos a la predicción de L0 y a la predicción de L1 y, por ejemplo, puede representar la bipredicción generalizada usando el Gbildx. El Gbildx puede existir en el caso de la bipredicción y puede representar un índice de peso de bipredicción. Por ejemplo, el Gbildx puede inferirse de un bloque vecino en el modo de fusión, o señalizarse desde el aparato de codificación al aparato de descodificación a través de un elemento de sintaxis de Gbildx (por ejemplo, gbi_idx) en el modo de MVP. Como un ejemplo, Gbildx puede indicar un peso de w aplicado a la predicción de L1 y, en este caso, puede aplicarse un peso de (1 - w) a la predicción de L0. Como otro ejemplo, Gbildx puede indicar el peso de w aplicado a la predicción de L0 y, en este caso, puede aplicarse el peso de (1 - w) a la predicción de L1.
De acuerdo con la Tabla 11, si el Gbildx es 0 (es decir, si el Gbildx es un valor por defecto), puede determinarse que este satisface la condición de GBi y, si la LICFlag es 0 (es decir, si la LIC existe, puede determinarse que este satisface la condición de LIC.
Además, en la realización, junto con la condición de GBi (por ejemplo, Gbildx) y la condición de LIC (por ejemplo, LICFlag), si aplicar el DMVR puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 11 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 11 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 11 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 11 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Como una realización de la presente divulgación, se propone un método para determinar si aplicar el BDOF considerando las condiciones de GBi y de LIC. En este caso, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 12 a continuación.
T l 121
De acuerdo con la Tabla 12 anterior, si aplicar el BDOF puede determinarse añadiendo una condición de LIC (por ejemplo, LICFlag) junto con la condición de GBi convencional (por ejemplo, Gbildx). Por ejemplo, cuando Gbildx es 0 (es decir, cuando Gbildx es un valor por defecto), se determina que se satisface la condición para si existe GBi y, cuando LICFlag es 0 (es decir, cuando existe LIC), puede determinarse que se satisface una condición para si existe LIC.
En consecuencia, en la realización, junto con la condición de GBi (por ejemplo, Gbildx) y la condición de LIC (por ejemplo, LICFlag), si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 12 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 12 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 12 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 12 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 11 o 12 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Por otro lado, debido a que el DMVR y el BDOF infieren la información de movimiento a través del proceso de perfeccionamiento en el aparato de descodificación, tiene lugar un problema de complejidad de descodificación. En consecuencia, la presente divulgación propone un método que puede reducir la complejidad de descodificación permitiendo que si aplicar el DMVR y el BDOF se determine usando el índice de fusión. En este caso, debido a que tanto el DMVR como el BDOF realizan un perfeccionamiento del vector de movimiento en un rango limitado, puede reducirse un efecto de perfeccionamiento cuando el vector de movimiento no es preciso. En consecuencia, la presente divulgación propone un método que puede aplicar de forma limitativa el DMVR y el BDOF solo cuando un valor que indica el índice de fusión es pequeño considerando la eficiencia del perfeccionamiento.
En el presente caso, el índice de fusión puede ser un elemento de sintaxis señalizado desde el aparato de codificación al aparato de descodificación. Por ejemplo, el aparato de codificación/descodificación puede configurar la lista de candidatos de fusión basándose en los bloques vecinos del bloque actual cuando se aplica el modo de fusión/modo de salto al bloque actual. En este caso, el aparato de codificación puede seleccionar un candidato de fusión óptimo de entre los candidatos de fusión incluidos en la lista de candidatos de fusión basándose en el coste de distorsión de tasa (RD) y en información de índice de fusión de señal que indica el candidato de fusión seleccionado al aparato de descodificación. El aparato de descodificación puede seleccionar el candidato de fusión aplicado al bloque actual basándose en la lista de candidatos de fusión y en la información de índice de fusión.
Como una realización de la presente divulgación, un método para determinar si aplicar el DMVR usando el índice de fusión puede incluir condiciones presentadas en la Tabla 13 a continuación.
Tabla 13
Haciendo referencia a la Tabla 13 anterior, si aplicar el DMVR puede determinarse añadiendo una condición de índice de fusión (por ejemplo, merge_idx). Por ejemplo, cuando el índice de fusión (por ejemplo, merge_idx) es más pequeño que 2, puede determinarse que se satisface la condición de índice de fusión. En el presente caso, un valor (umbral) del índice de fusión puede establecerse a 2, pero este es únicamente un ejemplo y el valor correspondiente puede cambiarse de acuerdo con la eficiencia de codificación.
En consecuencia, en la realización, junto con la condición de índice de fusión (por ejemplo, merge_idx), si aplicar el DMVR puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 13 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 13 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 13 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 13 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Como una realización de la presente divulgación, un método para determinar si aplicar el BDOF usando el índice de fusión puede incluir condiciones presentadas en la Tabla 14 a continuación.
Tabla 14
Haciendo referencia a la Tabla 14 anterior, si aplicar el BDOF puede determinarse añadiendo la condición para si se aplica el modo de fusión/modo de salto (por ejemplo, merge_flag) y la condición de índice de fusión (por ejemplo, merge_idx). Por ejemplo, cuando merge_flag no es 1 (es decir, cuando la inter predicción se realiza usando el modo de fusión/modo de salto) y merge_idex no es igual a o más grande que 2, solo si el valor del índice de fusión es pequeño, puede determinarse que se satisface la condición para aplicar de forma limitativa el BDOF. En otras palabras, cuando merge_flag es 1 (es decir, cuando la inter predicción se realiza usando el modo de fusión/modo de salto) y merge_idex es más pequeño que 2, solo si el valor del índice de fusión es pequeño, puede determinarse que se satisface la condición de índice de fusión y puede aplicarse el BDOF. En el presente caso, el valor (umbral) del índice de fusión puede establecerse a 2, pero este es únicamente un ejemplo y el valor correspondiente puede cambiarse de acuerdo con la eficiencia de codificación.
En otras palabras, en la realización, junto con la condición para si aplicar el modo de fusión/modo de salto (por ejemplo, merge_flag) y la condición de índice de fusión (por ejemplo, merge_idx), si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 14 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 14 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 14 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 14 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 13 o 14 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Por otro lado, en el modo de fusión/salto, la información de movimiento puede perfeccionarse a través del MMVD y, en este caso, debido a que la complejidad de descodificación aumenta, el DMVR no se realiza cuando se aplica el MMVD. Sin embargo, cuando el DMVR se aplica sin considerar el MMVD, el DMVR puede aplicarse sin la condición de MMVD considerando la potenciación de rendimiento. En este caso, de acuerdo con una realización de la presente divulgación, la condición de aplicación del DMVR puede incluir condiciones presentadas en la Tabla 15 a continuación.
T l 11
Haciendo referencia a la Tabla 15 anterior, puede excluirse una condición (por ejemplo, mmvd_flag) para si aplicar el modo de MMVD de entre las condiciones de aplicación del DMVR convencional. En otras palabras, puede omitirse un proceso de determinación de si mmvd_flag es 0 (es decir, si no se usa el modo de MMVD) y si aplicar el DMVR puede determinarse basándose en las condiciones enumeradas en la Tabla 15 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 15 anterior (excluyendo la condición [por ejemplo, mmvd_flag] para si aplicar el modo de MMVD) y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 15 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 15 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Además, al contrario que en la realización de la Tabla 15 descrita anteriormente, cuando la información de movimiento se perfecciona a través del MMVD en el modo de fusión/salto, si realizar el BDOF puede determinarse considerando la complejidad de descodificación. En consecuencia, la presente divulgación propone un método para determinar si aplicar el BDOF considerando la condición de MMVD. En este caso, de acuerdo con una realización de la presente divulgación, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 16 a continuación.
Tabla 16
Haciendo referencia a la Tabla 16 anterior, el BDOF puede no aplicarse cuando la información de movimiento se perfecciona a través del MMVD añadiendo la condición (por ejemplo, mmvd_flag) para si aplicar el modo de MMVD. Por ejemplo, cuando mmvd_flag es 0 (es decir, cuando no se usa el modo de MMVD), puede determinarse que se satisface la condición para si aplicar el modo de MMVD.
En consecuencia, en la realización, junto con la condición (por ejemplo, mmvd_flag) para si aplicar modo de MMVD, si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 16 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 16 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 16 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 16 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 15 o 16 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Por otro lado, en el caso del AMVP, puede aplicarse una técnica de resolución de vector de movimiento adaptativo (AMVR). En este caso, cuando la resolución del vector de movimiento es alta, es decir, cuando se proporciona un redondeo de pels enteros o un redondeo de 4 pels enteros, puede no ser apropiado aplicar la técnica en el caso del BDOF de realizar el perfeccionamiento en el área limitada. En consecuencia, la presente divulgación propone un método que puede determinar realizar el BDOF de acuerdo con la condición de AMVR. En este caso, de acuerdo con una realización de la presente divulgación, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 17 a continuación.
T l 171
Haciendo referencia a la Tabla 17 anterior, si aplicar el BDOF puede determinarse añadiendo una condición de AMVR (por ejemplo, amvr_flag). En el presente caso, amvr_flag puede ser información que representa la solución de una diferencia de vector de movimiento (MVD). Por ejemplo, en un caso en el que amvr_flag es 0, el caso puede indicar que la resolución del MVD se infiere en unidades de 1/4 de muestra (un cuarto de muestra de luma) y, en un caso en el que amvr_flag no es 0, el caso puede indicar que la resolución del MVD se infiere en unidades de muestra de lumas enteras o muestra de cuatro lumas. Como alternativa, puede determinarse un caso inverso al mismo. De acuerdo con una realización, como se presenta en la Tabla 20 anterior, en el caso en el que amvr_flag no es 0, puede establecerse la condición de que se aplique el BDOF. En otras palabras, en el caso en el que amvr_flag es 0, el BDOF puede limitarse a no aplicarse.
En consecuencia, en la realización, junto con la condición de AMVR (por ejemplo, amvr_flag), si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 17 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 17 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 17 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 17 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Por otro lado, cada uno del DMVR y el BDOF puede señalizarse en una sintaxis de conjunto de parámetros de secuencia (SPS). La Tabla 18 a continuación muestra un ejemplo de un elemento de sintaxis que indica si el DMVR señalizado a través de la sintaxis de SPS está habilitado y si el BDOF está habilitado.
T l 1
Haciendo referencia a la Tabla 18 anterior, sps_dmvr_enabled_flag puede señalizarse en la sintaxis de SPS, y puede representarse basándose en el elemento de sintaxis si el DMVR basado en bipredicción verdadera está habilitado. Por ejemplo, en un caso en el que sps_dmvr_enabled_flag es 1, el caso puede indicar que el DMVR basado en bipredicción verdadera está habilitado y, en un caso en el que sps_dmvr_enabled_flag es 0, el caso puede indicar que el DMVR basado en bipredicción verdadera no está habilitado.
Además, sps_bdof_enabled_flag puede señalizarse en la sintaxis de SPS, y puede representarse basándose en el elemento de sintaxis si el BDOF basado en bipredicción verdadera está habilitado. Por ejemplo, en un caso en el que sps_bdof_enabled_flag es 1, el caso puede indicar que el BDOF basado en bipredicción verdadera está habilitado y, en un caso en el que sps_bdof_enabled_flag es 0, el caso puede indicar que el BDOF basado en bipredicción verdadera no está habilitado.
Como se muestra en la Tabla 18, las condiciones de aplicación del DMVR y el BDOF pueden comprobarse usando un elemento de sintaxis (por ejemplo, sps_dmvr_enabled_flag) que representa si el DMVr está habilitado y un elemento de sintaxis (por ejemplo, sps_bdof_enabled_flag) que representa si el BDOF está habilitado.
La figura 6 ilustra un ejemplo que ilustra un método para realizar un proceso de descodificación comprobando condiciones de aplicación de un DMVR y un BDOF.
Como se muestra en la Tabla 18, el método de la figura 6 puede aplicarse cuando se usa un elemento de sintaxis (por ejemplo, sps_dmvr_enabled_flag) que representa si el d Mv R está habilitado y un elemento de sintaxis (por ejemplo, sps_bdof_enabled_flag) que representa si el BDOF está habilitado.
Haciendo referencia a la figura 6, el aparato de descodificación puede inferir información de movimiento (por ejemplo, un vector de movimiento, un índice de imagen de referencia, etc.) para un bloque actual (S600).
El aparato de descodificación puede comprobar una aplicación del DMVR (S610). En este caso, la condición de aplicación del DMVR puede comprobarse basándose en el elemento de sintaxis (por ejemplo, sps_dmvr_enabled_flag) que representa si el DMVR está habilitado. Por ejemplo, cuando el DMVR está habilitado (por ejemplo, cuando sps_dmvr_enabled_flag es 1), puede comprobarse la condición de aplicación del DMVR.
El aparato de descodificación puede determinar si aplicar un proceso de DMVR de acuerdo con si se satisface la condición de aplicación del DMVR (S620).
Cuando se satisfacen todas las condiciones de aplicación del DMVR, el aparato de descodificación puede inferir información de movimiento perfeccionada aplicando el proceso de DMVR (S630). Cuando no se satisface al menos una de las condiciones de aplicación del DMVR, el aparato de descodificación puede no aplicar el proceso de DMVR.
El aparato de descodificación puede inferir muestras de predicción del bloque actual basándose en información de movimiento inferida (no perfeccionada) cuando no se aplica información de movimiento perfeccionada o DMVR inferido cuando se aplica el DMVR (S640).
Además, el aparato de descodificación puede comprobar una condición de aplicación del BDOF (S650). En este caso, la condición de aplicación del DMVR BDOF puede comprobarse basándose en el elemento de sintaxis (por ejemplo, sps_bdof_enabled_flag) que representa si el BDOF está habilitado. Por ejemplo, cuando el DMVR está habilitado (por ejemplo, cuando sps_bdof_enabled_flag es 1), puede comprobarse la condición de aplicación del DMVR.
Cuando se satisfacen todas las condiciones de aplicación del BDOF, el aparato de descodificación puede perfeccionar muestras de predicción aplicando el proceso de BDOF (S670). Cuando no se satisface al menos una de las condiciones de aplicación del BDOF, el aparato de descodificación puede no aplicar el proceso de BDOF.
El aparato de descodificación puede inferir las muestras residuales para el bloque actual (S680) e inferir muestras reconstruidas basándose en las muestras de predicción perfeccionadas inferidas cuando se aplican las muestras residuales y el BDOF o muestras de predicción (no perfeccionadas) inferidas cuando no se aplica el BDOF (S690).
La presente divulgación propone diversas realizaciones que pueden potenciar la eficiencia de codificación y reducir la complejidad armonizando condiciones de aplicación mutuas del DMVR y el BDOF en el momento de aplicar el DMVR y el BDOF como se ha descrito anteriormente. Al comprobar las condiciones de aplicación del DMVR y el BDOF de acuerdo con las realizaciones de la presente divulgación y aplicar las condiciones de aplicación a un proceso de descodificación, pueden comprobarse y aplicarse por separado unas condiciones respectivas, pero las condiciones de aplicación pueden comprobarse a la vez con el fin de potenciar la eficiencia de codificación. En otras palabras, la presente divulgación propone un método que puede integrar y comprobar las condiciones de aplicación del DMVR y el BDOF a la vez.
Como una realización de la presente divulgación, se señaliza información (por ejemplo, ) que indica si aplicar el perfeccionamiento en el aparato de descodificación en la sintaxis de conjunto de parámetros de secuencia (SPS) para realizar un proceso de comprobación de la condición de aplicación del DMVR/BDOF. A continuación, la Tabla 19 muestra un ejemplo de un elemento de sintaxis (por ejemplo, sps_refinement_enabled_flag) que representa si aplicar el perfeccionamiento en el aparato de descodificación señalizado a través de la sintaxis de SPS.
Haciendo referencia a la Tabla 19 anterior, sps_refinement_enabled_flag puede señalizarse en la sintaxis de SPS y puede representar si el perfeccionamiento es aplicable en el aparato de descodificación basándose en el elemento de sintaxis. Por ejemplo, cuando existe sps_refinement_enabled_flag (es decir, cuando sps_refinement_enabled_flag es verdadera), puede determinarse que el perfeccionamiento es aplicable en el aparato de descodificación. En este caso, el aparato de descodificación obtiene el elemento de sintaxis sps_dmvr_enabled_flag que representa si el DMVR está habilitado y el elemento de sintaxis sps_bdof_enabled_flag que representa si el BDOF está habilitado para determinar las condiciones de aplicación del DMVR y el BDOF.
Las figuras 7 y 8 ilustran otro ejemplo que ilustra un método para realizar un proceso de descodificación comprobando condiciones de aplicación de un DMVR y un BDOF.
El método de la figura 7 y el método de la figura 8 pueden aplicarse cuando el elemento de sintaxis (por ejemplo, sps_refinement_enabled_flag) que representa si el perfeccionamiento es aplicable en el aparato de descodificación se usa como se muestra en la Tabla 19 anterior. Además, se omitirá una descripción de contenido duplicado de las figuras 7 y 8 con la figura 6 descrita anteriormente.
Haciendo referencia a la figura 7, puede verse que las condiciones de aplicación se comprueban a la vez en la fase previa sin comprobar las condiciones de aplicación respectivas del DMVR y el BDOF mediante una comparación con el proceso de la figura 6 anterior. Como una realización, en la etapa S710 de la figura 7, el aparato de descodificación puede comprobar una condición de aplicación de perfeccionamiento. En este caso, la condición de aplicación de perfeccionamiento puede comprobarse basándose en sps_refinement_enabled_flag mostrada en la Tabla 19 anterior. Por ejemplo, el aparato de descodificación puede obtener el elemento de sintaxis sps_dmvr_enabled_flag que representa si el DMVR está habilitado y el elemento de sintaxis sps_bdof_enabled_flag que representa si el BDOF está habilitado cuando sps_refinement_enabled_flag es 1, y comprobar las condiciones de aplicación del DMVR y el BDOF basándose en los elementos de sintaxis obtenidos.
Además, haciendo referencia a la figura 8, las condiciones de aplicación se comprueban a la vez en la fase previa sin comprobar las condiciones de aplicación respectivas del DMVR y el BDOF mediante una comparación con el proceso de la figura 6 anterior y puede realizarse un proceso de comprobación simple (la condición de aplicación del BDOF) con respecto a una condición diferente. Como una realización, en la etapa S810 de la figura 8, el aparato de descodificación puede comprobar la condición de aplicación de perfeccionamiento. Posteriormente, en la etapa S850 de la figura 8, el aparato de descodificación puede simplemente comprobar adicionalmente la condición de aplicación del BDOF que tiene una condición diferente de la condición de aplicación de perfeccionamiento.
Por otro lado, cuando la altura o el tamaño (Altura * Anchura) del bloque actual es más pequeño que una longitud específica o un tamaño específico, aumenta una relación de cálculo de multiplicación/suma para la compensación de movimiento. En consecuencia, en una realización de la presente divulgación, la aplicación del BDOF a un bloque que tiene una altura pequeña o un tamaño pequeño puede limitarse como en la condición de aplicación del DMVR con el fin de reducir el caso más desfavorable. En este caso, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 20 a continuación.
Tabla 20
Haciendo referencia a la Tabla 20 anterior, el BDOF puede no aplicarse a un bloque que es más pequeño que un tamaño específico añadiendo las condiciones (por ejemplo, CbHeight y CbWidth) relacionadas con el tamaño del bloque actual. Por ejemplo, puede usarse una condición aplicada cuando la altura del bloque actual (por ejemplo, CbHeight) es igual a o más grande que 8 y una condición aplicada cuando el tamaño del bloque actual (por ejemplo, CbHeight * CbWidth) es igual a o más grande que 64. Cuando se satisfacen las condiciones de aplicación relacionadas con el tamaño del bloque actual (es decir, cuando la altura del bloque actual es igual a o más grande que 8 y la altura * la anchura del bloque actual es igual a o más grande que 64), puede aplicarse el BDOF y, cuando no se satisfacen las condiciones de aplicación relacionadas con el tamaño del bloque actual, puede no aplicarse el BDOF.
Además, en la realización, junto con las condiciones (por ejemplo, CbHeight y CbHeight * CbWidth) relacionadas con el tamaño del bloque actual, si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 20 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 20 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 20 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 20 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Por otro lado, cuando el MMVD se aplica al bloque actual, la información de movimiento puede inferirse basándose en información (por ejemplo, índice de mmvd) acerca del MMVD. En el presente caso, la información acerca del MMVD puede incluir un índice de un MV base, un índice de distancia, un índice de dirección y similares. En particular, el índice de distancia (más específicamente, mmvd_distance_index[xCb][yCb]) puede usarse para representar una distancia desde el MV base y, por ejemplo, los índices de distancia 0 a 7 pueden representarse como {1/4, 1/2, 1, 2, 4, 8, 16, 32}, respectivamente. Al determinar el perfeccionamiento de la información de movimiento en el DMVR y el BDOF, ya se realice el perfeccionamiento considerando un píxel adyacente (una muestra adyacente) y, en este caso, cuando una distancia entre el píxel adyacente y el MV base es lejana, el valor del índice de distancia también aumenta. En un caso de este tipo, es difícil que considerar el píxel adyacente ayude a la potenciación de rendimiento del DMVR y el BDOF. En consecuencia, la presente divulgación propone un método que puede determinar si aplicar el DMVR y el BDOF de acuerdo con el valor del índice de distancia (más específicamente, mmvd_distance_index[xCb][yCb]).
Como una realización de la presente divulgación, si aplicar el DMVR puede determinarse considerando el índice de distancia y, en este caso, la condición de aplicación del DMVR puede incluir condiciones presentadas en la Tabla 21 a continuación.
Tabla 21
Haciendo referencia a la Tabla 21 anterior, se cambia una condición (por ejemplo, mmvd_flag) relacionada con el MMVD de entre las condiciones de aplicación del DMVR para aplicar de forma limitativa el DMVR en el modo de MMVD. Por ejemplo, cuando mmvd_flag es 1 y mmvd_distance_index es más grande que 4, puede determinarse que se satisface una condición de índice de distancia del MMVD. En consecuencia, cuando se aplica el modo de MMVD, si aplicar el DMVR puede determinarse de acuerdo con el valor del índice de distancia (más específicamente, mmvd_distance_index[xCb][yCb]).
En el presente caso, el valor (umbral) de mmvd_distance_index puede establecerse a 4, pero este es únicamente un ejemplo y el valor correspondiente puede cambiarse a diversos valores de acuerdo con el rendimiento y la eficiencia de codificación.
En consecuencia, en la realización, junto con la condición (por ejemplo, mmvd_flag) para si aplicar el MMVD y la condición de índice de distancia (por ejemplo, mmvd_distance_index) del MMVD, si aplicar el DMVR puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 21 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 21 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 21 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 21 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Además, como una realización de la presente divulgación, si aplicar el BDOF puede determinarse considerando el índice de distancia y, en este caso, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 22 a continuación.
T l 221
Haciendo referencia a la Tabla 22 anterior, el BDOF puede aplicarse de forma limitativa en el modo de MMVD añadiendo la condición para si se aplica el modo de fusión/modo de salto (por ejemplo, merge_flag) y condiciones (por ejemplo, mmvd_flag y mmvd_distance_index) relacionadas con el MMVD. Por ejemplo, cuando no existe merge_flag (es decir, cuando merge_flag no es 1) o cuando merge_flag es 1, mmvd_flag es 1, y mmvd_distance_index es más grande que 4, puede determinarse que se satisface la condición de aplicar de forma limitativa el BDOF en el modo de MMVD. En consecuencia, cuando se aplica el modo de MMVD, si aplicar el BDOF puede determinarse de acuerdo con el valor del índice de distancia (por ejemplo, mmvd_distanceJndex[xCb][yCb]).
En el presente caso, el valor (umbral) de mmvd_distance_index puede establecerse a 4, pero este es únicamente un ejemplo y el valor correspondiente puede cambiarse a diversos valores de acuerdo con el rendimiento y la eficiencia de codificación.
En consecuencia, en la realización, junto con la condición para si aplicar el modo de fusión/modo de salto (por ejemplo, merge_flag) y la condición relacionada con el MMVD (por ejemplo, mmvd_flag, mmvd_distance_index), si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 22 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 22 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 22 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 22 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 21 o 22 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Por otro lado, puede aplicarse al bloque actual un modo combinado de intra-inter predicción (CIIP) para realizar simultáneamente la intra predicción y la inter predicción como se ha descrito anteriormente. En el presente caso, un bloque de predicción (inter bloque) en el que se realiza la inter predicción se combina con un método de intra predicción para generar por último valores de muestra de predicción, potenciando de ese modo la precisión de predicción. Sin embargo, debido a que el DMVR y el BDOF son técnicas para perfeccionar el inter bloque, puede no requerirse la aplicación del modo de CIIP en términos del rendimiento en comparación con la complejidad. En consecuencia, la presente divulgación propone un método que puede determinar si aplicar el DMVR y el BDOF considerando la CIIP.
Como una realización de la presente divulgación, si aplicar el DMVR puede determinarse considerando el CIIP y, en este caso, la condición de aplicación del DMVR puede incluir condiciones presentadas en la Tabla 23 a continuación.
Tabla 23
Haciendo referencia a la Tabla 23 anterior, el DMVR puede aplicarse de forma limitativa de acuerdo con si aplicar la CIIP añadiendo una condición para si aplicar el modo de CIIP (por ejemplo, ciip_flag). Por ejemplo, cuando ciip_flag es 0 (es decir, cuando no se aplica el modo de CIIP), el DMVR puede aplicarse determinando que se satisface la condición para si aplicar el modo de CIIP.
En consecuencia, en la realización, junto con la condición (por ejemplo, ciip_flag) para si aplicar modo de CIIP, si aplicar el DMVR puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 23 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 23 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el DMVR. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 23 anterior, el aparato de descodificación puede no aplicar el DMVR. El aparato de codificación también puede aplicar las condiciones de la Tabla 23 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Además, como una realización de la presente divulgación, si aplicar el BDOF puede determinarse considerando el CIIP y, en este caso, la condición de aplicación del BDOF puede incluir condiciones presentadas en la Tabla 24 a continuación.
Tabla 24
Haciendo referencia a la Tabla 24 anterior, el BDOF puede aplicarse de forma limitativa de acuerdo con si aplicar la CIIP añadiendo la condición para si aplicar el modo de CIIP (por ejemplo, ciip_flag). Por ejemplo, cuando ciip_flag es 0 (es decir, cuando no se aplica el modo de CIIP), el BDOF puede aplicarse determinando que se satisface la condición para si aplicar el modo de CIIP.
En consecuencia, en la realización, junto con la condición (por ejemplo, ciip_flag) para si aplicar modo de CIIP, si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 24 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 24 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 24 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 24 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El método para realizar la bipredicción verdadera basándose en las condiciones enumeradas en la Tabla 23 o 24 anterior puede aplicarse independientemente al DMVR y al BDOF o puede aplicarse con la misma condición para el DMVR y el BDOF.
Los métodos enumerados en las Tablas 3 a 24 de acuerdo con la realización de la presente divulgación descrita anteriormente pueden aplicarse en combinación. En otras palabras, si aplicar el DMVR y el BDOF puede determinarse comprobando la condición de aplicación de perfeccionamiento, y pueden aplicarse condiciones mostradas en la Tabla 25 a continuación.
T l 2
continuación
Haciendo referencia a la Tabla 25 anterior, pueden usarse una condición en la predicción bilateral cuando se aplica el DMVR o el BDOF, una condición aplicada en el caso de la bipredicción verdadera en la que las distancias entre la imagen actual y las imágenes de referencia bilaterales son iguales entre sí, una condición aplicada cuando no se usa el modo de MMVD, una condición aplicada cuando no se realiza la predicción afín, una condición aplicada cuando se aplica el modo de fusión basado en subbloques y una condición aplicada cuando el índice de GBi es un valor por defecto. En otras palabras, si aplicar el DMVr o el BDOF puede determinarse de acuerdo con si se satisfacen las condiciones.
Además, puede añadirse una condición para determinar si se aplica el modo de fusión para el DMVR o determinar si el bloque actual es el bloque de luma para el BDOF.
Las condiciones de aplicación enumeradas en la Tabla 25 anterior son ejemplos y es evidente que diversas condiciones enumeradas en las realizaciones mencionadas anteriormente (las realizaciones en las Tablas 3 a 24 anteriores) pueden usarse en combinación.
Por otro lado, en el DMVR, se adopta una función de SAD como una función de coste en lugar de una función de SAD de media eliminada (MRSAD) considerando la complejidad de descodificación. Sin embargo, cuando el índice de GBi no es un valor por defecto (por ejemplo, cuando Gbildx no es 0), dos bloques de referencia pueden tener diferentes factores de ponderación y, como resultado, puede no ser preferible el DMVR usando la SAD. En consecuencia, la condición del DMVR puede fijarse considerando el índice de GBi. De acuerdo con un resultado experimental, se muestra un cambio de tasa de RD de un 0,00 % con un tiempo de ejecución de codificación y descodificación de un 100 % mediante una comparación con el modelo de prueba de VVC (VTM) 4.0.
En el caso de codificación de vídeo versátil (VVC), el proceso de DMVR puede realizarse cuando se satisfacen todas las condiciones enumeradas en la Tabla 26 a continuación.
Tabla 26
En el DMVR actual, puede buscarse un bloque que no se pone en coincidencia mediante una comparación con una SAD de bloques de referencia que van a ponderarse y promediarse más adelante. En la presente divulgación, debido a que dos bloques de referencia pueden tener diferentes pesos, la condición del DMVR puede determinarse considerando un caso de este tipo. De acuerdo con una realización de la presente divulgación, el DMVR puede no realizarse para el bloque en el que el índice de GBi no es un valor por defecto. En este caso, la condición de aplicación del DMVR puede mostrarse en la Tabla 27 a continuación.
Tabla 27
Como se muestra en la Tabla 27 anterior, cuando el valor del índice de GBi (por ejemplo, Gbildx) es 0, puede añadirse una condición de realizar el DMVR. En otras palabras, cuando el valor del índice de GBi (por ejemplo, Gbildx) no es 0, se aplican diferentes pesos a dos bloques de referencia (es decir, un bloque de referencia al que se hace referencia para una predicción de L0 y un bloque de referencia al que se hace referencia para una predicción de L1) y, como resultado, en este caso, el DMVR puede limitarse a no realizarse.
Por otro lado, el BDOF se realiza cuando el bloque actual (es decir, una unidad de codificación actual; una CU actual) satisface una condición de bipredicción verdadera. Cuando se considera que una ecuación de flujo óptico está diseñada para predecir el movimiento de un objeto que se mueve a una velocidad (es decir, una cantidad de movimiento) predeterminada, la condición de bipredicción verdadera actual no es una condición óptima para aplicar el BDOF. En consecuencia, la condición del BDOF puede fijarse considerando la distancia de la imagen de referencia. De acuerdo con un resultado experimental, se muestra un cambio de tasa de RD de un 0,01 % con un tiempo de ejecución de codificación y descodificación de un 100 % mediante una comparación con el modelo de prueba de VVC (VTM) 4.0.
La figura 9 es un diagrama ilustrado para describir un concepto de un BDOF.
Como se ha descrito anteriormente, el BDOF se diseña para potenciar el rendimiento de la compensación de movimiento usando un concepto de flujo óptico. De acuerdo con el BDOF, como se ilustra en la figura 9, puede suponerse que el objeto se mueve a una velocidad predeterminada (movimiento constante) y, mientras el objeto se mueve, no se cambia la luminancia de cada píxel. En el caso de la suposición, la ecuación de flujo óptico puede expresarse como la Ecuación 1 a continuación.
[Ecuación 1]
Como se ha descrito anteriormente, el BDOF se realiza cuando la CU actual satisface la condición de bipredicción verdadera. Sin embargo, la condición de bipredicción verdadera no significa un caso en el que el objeto se mueve a una velocidad predeterminada. En consecuencia, la presente divulgación propone un método que puede aplicar el BDOF cuando el objeto tiene un movimiento predeterminado y puede potenciar el rendimiento de la compensación de movimiento.
De acuerdo con una realización de la presente divulgación, en la Ecuación 1 anterior, como 5t, el BDOF puede aplicarse cuando la distancia desde la imagen de referencia de L0 (la referencia 0 de la figura 9) y la distancia desde la imagen de referencia de L1 (la referencia 1 de la figura 9) basándose en la imagen actual son iguales entre sí. En este caso, la condición de aplicación del BDOF puede cambiarse como se muestra en la Tabla 28 a continuación. ____________________________________________ [Tabla 28]____________________________________________ La variable currPic especifica la imagen actual y la variable bdofFlag se infiere como sigue:
- Si todas las condiciones siguientes son verdaderas, bdofFlag se establece igual a VERDADERO.
■ sps_bdof_enabled_flag es igual a 1.
■ predFlagL0[ xSbIdx ][ ySbIdx ] y predFlagL1 [ xSbIdx ][ ySbIdx ] son ¡ guales a 1.
DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ]) es igual a _________________________________ DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic )____________________
Haciendo referencia a la Tabla 28 anterior, se cambia una condición relacionada con la distancia de imágenes de referencia de entre las condiciones de aplicación del BDOF (por ejemplo, DiffPicOrderCnt) para aplicar el BDOF solo cuando el objeto tiene una velocidad de movimiento predeterminada. Por ejemplo, se determina si DiffPicOrderCnt(currPic, RefPicList[ 0 ][ refIdxL0 ]) y DiffPicOrderCnt(RefPicList[ 1 ][ refIdxL1 ], currPic) son iguales entre sí para determinar si una distancia entre la imagen actual y una imagen de referencia de<l>0 (es decir, una imagen de referencia en la lista de imágenes de referencia L0) y una distancia entre la imagen actual y una imagen de referencia de L1 (es decir, una imagen de referencia en la lista de imágenes de referencia L1) son iguales entre sí. En otras palabras, el BDOF puede aplicarse solo cuando la distancia desde la imagen de referencia de L0 y la distancia desde la imagen de referencia de L1 basándose en la imagen actual son iguales entre sí. En este sentido, se usa una condición en la que las distancias de imágenes de referencia bilaterales son iguales basándose en la imagen actual para determinar si se realiza la bipredicción verdadera y se incluye un objeto que se mueve a una velocidad predeterminada. El BDOF se aplica al bloque que satisface la condición para obtener un resultado de perfeccionamiento de información de movimiento más potenciado.
Además, en la realización, junto con las condiciones (por ejemplo, DiffPicOrderCnt) relacionadas con la distancia de imágenes de referencia, si aplicar el BDOF puede determinarse basándose en las condiciones de aplicación restantes enumeradas en la Tabla 28 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 28 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 28 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 28 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
Por otro lado, la presente divulgación propone un método para determinar si aplicar el BDOF de acuerdo con el tamaño de bloque. La Tabla 29 a continuación muestra un caso en el que un límite de tamaño de bloque de acuerdo con una realización de la presente divulgación se incluye como la condición de aplicación.
Tabla 29
Haciendo referencia a la Tabla 29 anterior, al aplicar el BDOF, cuando la altura del bloque actual (por ejemplo, CbHeight) es igual a o más grande que 8, puede añadirse como la condición un caso en el que el tamaño (por ejemplo, CbHeight * CbWidth) del bloque actual es igual a o más grande que 64.
En consecuencia, en la realización, junto con la condición para si la altura del bloque actual es igual a o más grande que 8 y la condición para si la altura * la anchura del bloque actual es igual a o más grande que 64, si aplicar el BDOF puede determinarse usando las condiciones restantes enumeradas en la Tabla 29 anterior.
En otras palabras, el aparato de descodificación puede determinar si se satisfacen todas las condiciones enumeradas en la Tabla 29 anterior y, cuando se satisfacen todas las condiciones, el aparato de descodificación puede realizar la bipredicción verdadera aplicando el BDOF. Cuando ni siquiera se satisface cualquiera de las condiciones enumeradas en la Tabla 29 anterior, el aparato de descodificación puede no aplicar el BDOF. El aparato de codificación también puede aplicar las condiciones de la Tabla 29 anterior y el aparato de codificación puede realizar la bipredicción verdadera mediante un método correspondiente en el aparato de descodificación.
El proceso de DMVR descrito en la presente divulgación puede implementarse de acuerdo con una especificación mostrada en la Tabla 30 a continuación. La Tabla 30 a continuación muestra un ejemplo de un proceso de perfeccionamiento de vector de movimiento basándose en la SAD como una realización de la presente divulgación.
Tabla 30
continuación
La figura 10 es un diagrama de flujo que ilustra esquemáticamente un método de codificación que puede ser realizado por un aparato de codificación de acuerdo con una realización de esta divulgación.
El método divulgado en la figura 10 puede ser realizado por el aparato de codificación 200 divulgado en la figura 2. Específicamente, las etapas S1000 a S1010 de la figura 10 pueden ser realizadas por el predictor 220 y el inter predictor 221 divulgados en la figura 2, y la etapa S1020 de la figura 10 puede ser realizada por el procesador residual 230 divulgado en la figura 2, y la etapa S1030 de la figura 10 puede ser realizada por el codificador por entropía 240 divulgado en la figura 2. Además, el método divulgado en la figura 10 puede incluir las realizaciones descritas anteriormente en esta divulgación. En consecuencia, se omitirá o se simplificará la explicación detallada del contenido duplicada en las realizaciones descritas anteriormente en la figura 10.
Haciendo referencia a la figura 10, el aparato de codificación puede inferir un vector de movimiento de L0 perfeccionado y un vector de movimiento de L1 perfeccionado aplicando DMVR basándose en un vector de movimiento de L0 y en un vector de movimiento de L1 del bloque actual (S 1000).
Como una realización, cuando se realiza una inter predicción sobre el bloque actual, el aparato de codificación puede inferir información de movimiento (vector de movimiento, índice de imagen de referencia, etc.) del bloque actual. Por ejemplo, el aparato de codificación puede buscar bloques similares al bloque actual dentro de un área (área de búsqueda) predeterminada de imágenes de referencia a través de una estimación de movimiento, y puede inferir un bloque de referencia que tiene una diferencia con respecto al bloque actual, que es mínima o igual o inferior a un nivel predeterminado. Basándose en esto, el aparato de codificación puede inferir un índice de imagen de referencia que indica una imagen de referencia en la que se ubica el bloque de referencia, y puede inferir un vector de movimiento basándose en una diferencia en la ubicación entre el bloque de referencia y el bloque actual.
Además, el aparato de codificación puede determinar un modo de inter predicción que se aplica al bloque actual de entre diversos modos de predicción. El aparato de codificación puede comparar los costes de RD para diversos modos de predicción entre sí y puede determinar un modo de predicción óptimo para el bloque actual.
Por ejemplo, el aparato de codificación puede determinar si aplicar un modo de fusión como modo de predicción óptimo para el bloque actual. En caso de aplicar el modo de fusión al bloque actual, el aparato de codificación puede configurar una lista de candidatos de fusión basándose en bloques vecinos del bloque actual, y puede generar información de índice de fusión. Específicamente, el aparato de codificación puede inferir un bloque de referencia que tiene una diferencia con respecto al bloque actual, que es mínima o igual o inferior a un nivel predeterminado, de entre bloques de referencia (es decir, bloques vecinos) indicados por candidatos de fusión incluidos en la lista de candidatos de fusión. En este caso, puede seleccionarse un candidato de fusión relacionado con el bloque de referencia inferido, y puede generarse información de índice de fusión que indica el candidato de fusión seleccionado, y señalizarse a un aparato de descodificación. La información de movimiento del bloque actual puede inferirse usando información de movimiento del candidato de fusión seleccionado.
En el presente caso, la información de movimiento puede incluir información, tal como un vector de movimiento, un índice de imagen de referencia y similares, y puede incluir información de movimiento de L0 y/o información de movimiento de L1 dependiendo de un tipo de inter predicción (predicción de LO, predicción de L1, bipredicción y similares). Cuando se aplica una bipredicción al bloque actual, la información de movimiento puede incluir un vector de movimiento (un vector de movimiento de LO) en una dirección de L0 y un vector de movimiento (un vector de movimiento de L1) en una dirección de L1. Además, la información de movimiento puede incluir un índice de imagen de referencia de L0 y una imagen de referencia de L0 indicada por el índice de imagen de referencia de L0 en una lista de imágenes de referencia de L0, y un índice de imagen de referencia de L1 y una imagen de referencia de L1 indicada por el índice de imagen de referencia de L1 en una lista de imágenes de referencia de L1.
Es decir, cuando se aplica el modo de fusión, el aparato de codificación puede inferir un vector de movimiento de L0 y un vector de movimiento de L1 de un bloque vecino indicado por información de índice de fusión de entre bloques vecinos del bloque actual, y puede usar los mismos como vectores de movimiento de L0 y de L1 del bloque actual.
El aparato de codificación puede inferir los vectores de movimiento de L0 y de L1 perfeccionados aplicando DMVR a los vectores de movimiento de L0 y de L1 del bloque actual inferidos como se ha descrito anteriormente teniendo en cuenta la eficiencia de codificación, la complejidad, el rendimiento de predicción y similares. En este caso, el aparato de codificación puede determinar si aplicar DMVR al bloque actual usando diversas condiciones de aplicación descritas en las Tablas 1 a 30 anteriores.
Como una realización, el aparato de codificación puede inferir información de bandera de DMVR relacionada con indicar si aplicar, o no, DMVr , y puede determinar si aplicar la DMVR basándose en la información de bandera de DMVR. Por ejemplo, cuando se aplica el modo de fusión al bloque actual, el aparato de codificación puede establecer un valor (por ejemplo, verdadero o 1) de la información de bandera de DMVR para indicar que el DMVR se aplica al bloque actual. Además, de acuerdo con una realización, el aparato de codificación puede inferir la información de bandera de DMVR determinando si se satisfacen condiciones tales como un caso de que se habilite una inter bipredicción basada en DMVR, un caso de que una bipredicción realizada basándose en una imagen de referencia de L0 y en una imagen de referencia de L1 se aplique al bloque actual, un caso de que un modo de modo de fusión con diferencia de vector de movimiento (MMVD) no se aplique al bloque actual, un caso de que un modo de predicción en el que se combinan una inter predicción y una intra predicción no se aplique al bloque actual, un caso de que una primera diferencia de POC entre la imagen actual y la imagen de referencia de L0 y una segunda diferencia de POC entre la imagen actual y la imagen de referencia de L1 sean iguales, un caso de que un valor de información de índice de peso de bipredicción del bloque actual sea igual a 0, un caso de que la altura del bloque actual sea igual a o más grande que 8, un caso de que la anchura del bloque actual sea igual a o más grande que 8, un caso de que la altura x la anchura del bloque actual sea más grande que 8 x 8. Por ejemplo, si se satisfacen todas las condiciones anteriores, el valor de la información de bandera de DMVR puede establecerse a verdadero o 1 y, si no se satisface al menos una de las condiciones anteriores, el valor de la información de bandera de DMVR puede establecerse a falso o 0.
En el presente caso, al inferir la información de bandera de DMVR, las condiciones de aplicación de DMVR enumeradas anteriormente son simplemente ilustrativas, y pueden usarse diversas combinaciones de las condiciones de las Tablas 1 a 30.
Cuando se determina que el DMVR se aplica basándose en la información de bandera de DMVR (por ejemplo, cuando el valor de la información de bandera de DMVR se infiere como verdadero o 1), el aparato de codificación puede aplicar el DMVR a los vectores de movimiento de L0 y de L1 del bloque actual.
En una realización, el aparato de codificación puede inferir una suma de diferencias absolutas (SAD) mínima basándose en muestras de referencia (es decir, muestras de predicción de L0) en la imagen de referencia de L0 inferidas basándose en el vector de movimiento de L0 y en muestras de referencia (es decir, muestras de predicción de L1) en la imagen de referencia de L1 inferidas basándose en el vector de movimiento de L1. Y el aparato de codificación puede inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento de L1 perfeccionado basándose en una posición de muestra correspondiente a la SAD mínima. Es decir, el vector de movimiento de L0 perfeccionado puede ser un vector de movimiento relacionado con indicar la ubicación de muestra correspondiente a la SAD mínima en la imagen de referencia de L0, y el vector de movimiento de L1 perfeccionado puede ser un vector de movimiento relacionado con indicar la ubicación de muestra correspondiente a la SAD mínima en la imagen de referencia de L1. Debido a que el proceso de inferir el vector de movimiento perfeccionado aplicando DMVR se ha descrito con detalle con referencia a las figuras 4 y 5, la explicación del mismo se omitirá en lo sucesivo en el presente documento.
El aparato de codificación puede inferir muestras de predicción para el bloque actual basándose en las muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y en las muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado (S1010).
En el presente caso, las muestras de predicción de L0 se infieren basándose en muestras de referencia indicadas por el vector de movimiento de L0 perfeccionado en la imagen de referencia de L0, y las muestras de predicción de L1 se infieren basándose en las muestras de referencia indicadas por el vector de movimiento de L1 perfeccionado en la imagen de referencia de L1.
Al inferir las muestras de predicción, el aparato de codificación puede aplicar un proceso de BDOF al bloque actual teniendo en cuenta la eficiencia de codificación, la complejidad, el rendimiento de predicción y similares.
Por ejemplo, el aparato de codificación puede determinar si aplicar el proceso de BDOF basándose en si una primera diferencia de POC entre la imagen actual y la imagen de referencia de L0 y una segunda diferencia de POC entre la imagen actual y la imagen de referencia de L1 son iguales. En el presente caso, un recuento de orden de imagen (POC) puede representar un orden emitido desde la DPB. El primer POC puede representar una distancia entre la imagen actual y la imagen de referencia de L0, y puede calcularse usando, por ejemplo, la función DiffPicOrderCnt (currPic, RefPicListO [refldxLO]). El segundo POC puede representar una distancia entre la imagen actual y la imagen de referencia de L1, y puede calcularse usando, por ejemplo, la función DiffPicOrderCnt (currPic, RefPicList1 [refIdxL1]).
En este caso, el aparato de codificación puede determinar si aplicar el BDOF al bloque actual usando las diversas condiciones de aplicación descritas en las Tablas 1 a 30 anteriores.
En una realización, el aparato de codificación puede inferir información de bandera de BDOF relacionada con indicar si aplicar, o no, BDOF, y puede determinar si aplicar el BDOF basándose en la información de bandera de BDOF. Por ejemplo, cuando la primera diferencia de POC y la segunda diferencia de POC son iguales, el aparato de codificación puede establecer un valor (por ejemplo, verdadero o 1) de la información de bandera de BDOF para indicar que el BDOF se aplica al bloque actual. Además, de acuerdo con una realización, el aparato de codificación puede inferir la información de bandera de BDOF determinando si se satisfacen condiciones tales como un caso de que se habilite una inter predicción basada en BDOF, un caso de que una bipredicción realizada basándose en una imagen de referencia de L0 y en una imagen de referencia de L1 se aplique al bloque actual, un caso de que un modo afín no se aplique al bloque actual, un caso de que un modo de fusión basado en subbloques no se aplique al bloque actual, un caso de que un modo de predicción en el que se combinan una inter predicción y una intra predicción no se aplique al bloque actual, un caso de que un valor de información de índice de peso de bipredicción del bloque actual sea igual a 0, un caso de que la altura del bloque actual sea igual a o más grande que 8, un caso de que la anchura del bloque actual sea igual a o más grande que 8, un caso de que la altura x la anchura del bloque actual sea más grande que 8 x 8. Por ejemplo, si se satisfacen todas las condiciones anteriores, el valor de la información de bandera de BDOF puede establecerse a verdadero o 1 y, si no se satisface al menos una de las condiciones anteriores, el valor de la información de bandera de BDOF puede establecerse a falso o 0.
En el presente caso, al inferir la información de bandera de BDOF, las condiciones de aplicación de BDOF enumeradas anteriormente son simplemente ilustrativas, y pueden usarse diversas combinaciones de las condiciones de las Tablas 1 a 30.
Cuando el proceso de BDOF se aplica al bloque actual basándose en el valor de la información de bandera de BDOF (por ejemplo, cuando el valor de la información de bandera de BDOF se infiere como verdadero o 1), el aparato de codificación puede calcular un gradiente para las muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y un gradiente para las muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado. Y el aparato de codificación puede inferir por último las muestras de predicción (perfeccionadas) basándose en el gradiente para las muestras de predicción de L0 y en el gradiente para las muestras de predicción de L1.
El aparato de codificación puede inferir muestras residuales basándose en las muestras de predicción (S1020), y puede codificar información de imagen que incluye información acerca de las muestras residuales (S1030).
Es decir, el aparato de codificación puede inferir las muestras residuales basándose en las muestras originales del bloque actual y en las muestras de predicción del bloque actual. Y el aparato de codificación puede generar la información acerca de las muestras residuales. En el presente caso, la información acerca de las muestras residuales puede incluir información de valor, información de ubicación, técnica de transformada, núcleo de transformada e información de parámetros de cuantificación de coeficientes de transformada cuantificados inferidos realizando una transformada y una cuantificación de las muestras residuales.
El aparato de codificación puede codificar la información acerca de las muestras residuales para emitir la información codificada en forma de un flujo de bits, y puede transmitir la información codificada al aparato de descodificación a través de una red o un medio de almacenamiento.
Además, el aparato de codificación puede codificar información inferida de las etapas S1000 a S1030 descritas anteriormente y emitir la información codificada como un flujo de bits. Por ejemplo, puede incluirse información de bandera de fusión, información de índice de fusión, índice de imagen de referencia de L0, índice de imagen de referencia de L1, etc., en la información de imagen que va a codificarse, y la información de imagen codificada puede señalizarse a un aparato de descodificación.
La figura 11 es un diagrama de flujo que ilustra esquemáticamente un método de descodificación que puede ser realizado por un aparato de descodificación de acuerdo con una realización de este documento.
El método divulgado en la figura 11 puede ser realizado por el aparato de descodificación 300 divulgado en la figura 3. Específicamente, las etapas S 1100 a S1110 de la figura 11 pueden ser realizadas por el predictor 330 y el inter predictor 332 divulgados en la figura 3, y la etapa S1120 de la figura 11 puede ser realizada por el sumador 340 divulgado en la figura 3. Además, el método divulgado en la figura 11 puede incluir las realizaciones descritas anteriormente en este documento. En consecuencia, se omitirá o se simplificará la explicación detallada del contenido duplicada en las realizaciones descritas anteriormente en la figura 11.
Haciendo referencia a la figura 11, el aparato de descodificación puede inferir un vector de movimiento de L0 perfeccionado y un vector de movimiento de L1 perfeccionado aplicando DMVR basándose en un vector de movimiento de L0 y en un vector de movimiento de L1 de un bloque actual (S 1100).
En una realización, el aparato de descodificación puede determinar un modo de predicción para el bloque actual basándose en información de predicción señalizada desde el aparato de codificación. Y el aparato de descodificación puede inferir información de movimiento (vector de movimiento, índice de imagen de referencia, etc.) del bloque actual basándose en el modo de predicción. En el presente caso, el modo de predicción puede incluir un modo de salto, un modo de fusión y un modo de (A)MVP, y similares.
Por ejemplo, cuando se aplica el modo de fusión al bloque actual, el aparato de descodificación puede construir una lista de candidatos de fusión basándose en bloques vecinos del bloque actual y seleccionar un candidato de fusión de entre candidatos de fusión incluidos en la lista de candidatos de fusión. En este caso, un candidato de fusión puede seleccionarse de entre la lista de candidatos de fusión basándose en la información de índice de fusión descrita anteriormente. El aparato de descodificación puede inferir información de movimiento del bloque actual usando información de movimiento del candidato de fusión seleccionado. Es decir, la información de movimiento del candidato de fusión seleccionado por el índice de fusión de entre los candidatos de fusión incluidos en la lista de candidatos de fusión puede usarse como la información de movimiento del bloque actual.
En el presente caso, la información de movimiento puede incluir información, tal como un vector de movimiento, un índice de imagen de referencia y similares, y puede incluir información de movimiento de L0 y/o información de movimiento de L1 dependiendo de un tipo de inter predicción (predicción de LO, predicción de L1, bipredicción y similares). Cuando se aplica una bipredicción al bloque actual, la información de movimiento puede incluir un vector de movimiento (un vector de movimiento de LO) en una dirección de L0 y un vector de movimiento (un vector de movimiento de L1) en una dirección de L1. Además, la información de movimiento puede incluir un índice de imagen de referencia de L0 y una imagen de referencia de L0 indicada por el índice de imagen de referencia de L0 en una lista de imágenes de referencia de L0, y un índice de imagen de referencia de L1 y una imagen de referencia de L1 indicada por el índice de imagen de referencia de L1 en una lista de imágenes de referencia de L1.
Es decir, cuando se aplica el modo de fusión, el aparato de descodificación puede inferir un vector de movimiento de L0 y un vector de movimiento de L1 de un bloque vecino indicado por la información de índice de fusión de entre los bloques vecinos del bloque actual, y puede usar los mismos como los vectores de movimiento de L0 y de L1 del bloque actual.
El aparato de descodificación puede inferir los vectores de movimiento de L0 y de L1 perfeccionados aplicando el DMVR a los vectores de movimiento de L0 y de L1 del bloque actual inferidos como se ha descrito anteriormente. En este caso, el aparato de descodificación puede determinar si aplicar el DMVR al bloque actual usando diversas condiciones de aplicación descritas en las Tablas 1 a 30 anteriores.
En una realización, el aparato de descodificación puede inferir información de bandera de DMVR relacionada con indicar si aplicar, o no, DMVR, y determinar si aplicar la DMVR basándose en la información de bandera de DMVR. Por ejemplo, cuando se aplica el modo de fusión al bloque actual, el aparato de descodificación puede establecer un valor (por ejemplo, verdadero o 1) de la información de bandera de DMVR para indicar que el DMVR se aplica al bloque actual. Además, de acuerdo con una realización, el aparato de descodificación puede inferir la información de bandera de DMVR determinando si se satisfacen condiciones tales como un caso de que se habilite una inter bipredicción basada en DMVR, un caso de que una bipredicción realizada basándose en una imagen de referencia de L0 y en una imagen de referencia de L1 se aplique al bloque actual, un caso de que un modo de modo de fusión con diferencia de vector de movimiento (MMVD) no se aplique al bloque actual, un caso de que un modo de predicción en el que se combinan una inter predicción y una intra predicción no se aplique al bloque actual, un caso de que una primera diferencia de POC entre la imagen actual y la imagen de referencia de L0 y una segunda diferencia de POC entre la imagen actual y la imagen de referencia de L1 sean iguales, un caso de que un valor de información de índice de peso de bipredicción del bloque actual sea igual a 0, un caso de que la altura del bloque actual sea igual a o más grande que 8, un caso de que la anchura del bloque actual sea igual a o más grande que 8, un caso de que la altura x la anchura del bloque actual sea más grande que 8 x 8. Por ejemplo, si se satisfacen todas las condiciones anteriores, el valor de la información de bandera de DMVR puede establecerse a verdadero o 1 y, si no se satisface al menos una de las condiciones anteriores, el valor de la información de bandera de DMVR puede establecerse a falso o 0.
En el presente caso, al inferir la información de bandera de DMVR, las condiciones de aplicación de DMVR enumeradas anteriormente son simplemente ilustrativas, y pueden usarse diversas combinaciones de las condiciones de las Tablas 1 a 30.
Cuando se determina que el DMVR se aplica basándose en la información de bandera de DMVR (por ejemplo, cuando el valor de la información de bandera de DMVR se infiere como verdadero o 1), el aparato de descodificación puede aplicar el DMVR a los vectores de movimiento de L0 y de L1 del bloque actual.
En una realización, el aparato de descodificación puede inferir una suma de diferencias absolutas (SAD) mínima basándose en muestras de referencia (es decir, muestras de predicción de L0) en la imagen de referencia de L0 inferidas basándose en el vector de movimiento de L0 y en muestras de referencia (es decir, muestras de predicción de L1) en la imagen de referencia de L1 inferidas basándose en el vector de movimiento de L1. Y el aparato de descodificación puede inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento de L1 perfeccionado basándose en una posición de muestra correspondiente a la SAD mínima. Es decir, el vector de movimiento de L0 perfeccionado puede ser un vector de movimiento relacionado con indicar la ubicación de muestra correspondiente a la SAD mínima en la imagen de referencia de L0, y el vector de movimiento de L1 perfeccionado puede ser un vector de movimiento relacionado con indicar la ubicación de muestra correspondiente a la SAD mínima en la imagen de referencia de L1. Debido a que el proceso de inferir el vector de movimiento perfeccionado aplicando DMVR se ha descrito con detalle con referencia a las figuras 4 y 5, la explicación del mismo se omitirá en lo sucesivo en el presente documento.
El aparato de descodificación puede inferir muestras de predicción para el bloque actual basándose en las muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y en las muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado (S1110).
En el presente caso, las muestras de predicción de L0 se infieren basándose en muestras de referencia indicadas por el vector de movimiento de L0 perfeccionado en la imagen de referencia de L0, y las muestras de predicción de L1 se infieren basándose en las muestras de referencia indicadas por el vector de movimiento de L1 perfeccionado en la imagen de referencia de L1.
Al inferir las muestras de predicción, el aparato de descodificación puede aplicar un proceso de BDOF al bloque actual para el perfeccionamiento de las muestras de predicción.
Por ejemplo, el aparato de descodificación puede determinar si aplicar el proceso de BDOF basándose en si una primera diferencia de POC entre la imagen actual y la imagen de referencia de L0 y una segunda diferencia de POC entre la imagen actual y la imagen de referencia de L1 son iguales. En el presente caso, un recuento de orden de imagen (POC) puede representar un orden emitido desde la DPB. El primer POC puede representar una distancia entre la imagen actual y la imagen de referencia de L0, y puede calcularse usando, por ejemplo, la función DiffPicOrderCnt (currPic, RefPicListO [refldxLO]). El segundo<p>O<c>puede representar una distancia entre la imagen actual y la imagen de referencia de L1, y puede calcularse usando, por ejemplo, la función DiffPicOrderCnt (currPic, RefPicList1 [refIdxL1]).
En este caso, el aparato de descodificación puede determinar si aplicar el BDOF al bloque actual usando las diversas condiciones de aplicación descritas en las Tablas 1 a 30 anteriores.
En una realización, el aparato de descodificación puede inferir información de bandera de BDOF relacionada con indicar si aplicar, o no, BDOF, y puede determinar si aplicar el BDOF basándose en la información de bandera de BDOF. Por ejemplo, cuando la primera diferencia de POC y la segunda diferencia de POC son iguales, el aparato de descodificación puede establecer un valor (por ejemplo, verdadero o 1) de la información de bandera de BDOF para indicar que el BDOF se aplica al bloque actual. Además, de acuerdo con una realización, el aparato de descodificación puede inferir la información de bandera de BDOF determinando si se satisfacen condiciones tales como un caso de que se habilite una inter predicción basada en BDOF, un caso de que una bipredicción realizada basándose en una imagen de referencia de L0 y en una imagen de referencia de L1 se aplique al bloque actual, un caso de que un modo afín no se aplique al bloque actual, un caso de que un modo de fusión basado en subbloques no se aplique al bloque actual, un caso de que un modo de predicción en el que se combinan una inter predicción y una intra predicción no se aplique al bloque actual, un caso de que un valor de información de índice de peso de bipredicción del bloque actual sea igual a 0, un caso de que la altura del bloque actual sea igual a o más grande que 8, un caso de que la anchura del bloque actual sea igual a o más grande que 8, un caso de que la altura x la anchura del bloque actual sea más grande que 8 x 8. Por ejemplo, si se satisfacen todas las condiciones anteriores, el valor de la información de bandera de BDOF puede establecerse a verdadero o 1 y, si no se satisface al menos una de las condiciones anteriores, el valor de la información de bandera de BDOF puede establecerse a falso o 0.
En el presente caso, al inferir la información de bandera de BDOF, las condiciones de aplicación de BDOF enumeradas anteriormente son simplemente ilustrativas, y pueden usarse diversas combinaciones de las condiciones de las Tablas 1 a 30.
Cuando el proceso de BDOF se aplica al bloque actual basándose en el valor de la información de bandera de BDOF (por ejemplo, cuando el valor de la información de bandera de BDOF se infiere como verdadero o 1), el aparato de descodificación puede calcular un gradiente para las muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y un gradiente para las muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado. Y el aparato de descodificación puede inferir por último las muestras de predicción (perfeccionadas) basándose en el gradiente para las muestras de predicción de L0 y en el gradiente para las muestras de predicción de L1.
El aparato de descodificación puede generar muestras reconstruidas para el bloque actual basándose en las muestras de predicción (S 1120).
En una realización, el aparato de descodificación puede usar directamente las muestras de predicción como las muestras reconstruidas de acuerdo con el modo de predicción, o puede generar las muestras reconstruidas añadiendo las muestras residuales a las muestras de predicción.
Si existe la muestra residual para el bloque actual, el aparato de descodificación puede recibir información acerca del residuo para el bloque actual. La información acerca del residuo puede incluir coeficientes de transformada acerca de las muestras residuales. El aparato de descodificación puede inferir las muestras residuales (o la matriz de muestras residuales) para el bloque actual basándose en la información residual. El aparato de descodificación puede generar las muestras reconstruidas basándose en las muestras de predicción y las muestras residuales, y puede inferir un bloque reconstruido o una imagen reconstruida basándose en las muestras reconstruidas.
En las realizaciones mencionadas anteriormente, aunque los métodos se han descrito basándose en los diagramas de flujo en forma de una serie de etapas o unidades, la divulgación de este documento no se limita al orden de las etapas, y algunas de las etapas pueden realizarse en un orden diferente del de otras etapas o puede realizarse simultáneamente a otras etapas. Además, los expertos en la materia entenderán que las etapas mostradas en el diagrama de flujo anterior no son exclusivas y que las etapas pueden incluir etapas adicionales o que pueden eliminarse una o más etapas en el diagrama de flujo.
El método mencionado anteriormente de acuerdo con este documento puede implementarse en forma de software, y el aparato de codificación y/o el aparato de descodificación de acuerdo con este documento puede incluirse en un aparato para realizar procesamiento de imágenes, por ejemplo, una TV, un ordenador, un teléfono inteligente, un descodificador de salón o un dispositivo de visualización.
En este documento, cuando se implementan realizaciones en forma de software, el método mencionado anteriormente puede implementarse como un módulo (proceso, función, etc.) para realizar la función mencionada anteriormente. El módulo puede almacenarse en la memoria y ser ejecutado por el procesador. La memoria puede colocarse dentro o fuera del procesador y conectarse al procesador mediante diversos medios bien conocidos. El procesador puede incluir circuitos integrados específicos de la aplicación (ASIC), otros conjuntos de chips, circuitos lógicos y/o dispositivos de procesamiento de datos. La memoria puede incluir memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria flash, tarjetas de memoria, medios de almacenamiento y/u otros dispositivos de almacenamiento. Es decir, las realizaciones descritas en este documento pueden implementarse y realizarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales ilustradas en cada dibujo pueden implementarse y realizarse en un ordenador, un procesador, un microprocesador, un controlador o un chip. En este caso, información (por ejemplo, información acerca de instrucciones) o un algoritmo para tal implementación puede almacenarse en un medio de almacenamiento digital.
Además, el aparato de descodificación y el aparato de codificación a los que se aplica este documento pueden incluirse en un dispositivo de transmisión y recepción de radiodifusión multimedios, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara para supervisión, un dispositivo de diálogos de vídeo, un dispositivo de comunicación en tiempo real tal como 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 servicios de vídeo a la carta (VoD), un dispositivo de vídeo de transmisión libre (OTT), un dispositivo de provisión de servicios de envío por flujo continuo de Internet, un dispositivo de vídeo tridimensional (3D), un dispositivo de realidad virtual (RV), un dispositivo de realidad aumentada (RA), un dispositivo de videotelefonía, un terminal de medios de transporte (por ejemplo, un terminal de vehículo [incluyendo de vehículo autónomo], un terminal de aeronave y un terminal de embarcación), y un dispositivo de vídeo médico, y pueden usarse para procesar una señal de vídeo o una señal de datos. Por ejemplo, el dispositivo de vídeo de transmisión libre (OTT) puede incluir una consola de juegos, un reproductor de Bluray, una TV con acceso a Internet, un sistema de cine en casa, un teléfono inteligente, un PC de tipo tableta y una grabadora de vídeo digital (DVR).
Además, el método de procesamiento al que se aplica este documento puede producirse en forma de un programa ejecutado por un ordenador, y puede almacenarse en un medio de registro legible por ordenador. Los datos multimedios que tienen una estructura de datos de acuerdo con este documento también pueden almacenarse en un medio de registro legible por ordenador. El medio de registro legible por ordenador incluye todos los tipos de dispositivos de almacenamiento en los que se almacenan datos legibles por ordenador. El medio de registro legible por ordenador puede incluir un disco Blu-ray (BD), un bus serie universal (USB), una ROM, una PROM, una EPROM, una EEPROM, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo de almacenamiento de datos óptico, por ejemplo. Además, el medio de registro legible por ordenador incluye medios implementados en forma de portadoras (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado usando un método de codificación puede almacenarse en un medio de registro legible por ordenador o puede transmitirse a través de redes de comunicación cableadas e inalámbricas.
Además, una realización de este documento puede implementarse como un producto de programa informático usando código de programa. El código de programa puede ser realizado por un ordenador de acuerdo con una realización de este documento. El código de programa puede almacenarse en un soporte legible por un ordenador.
La figura 12 ilustra un ejemplo de un sistema de envío por flujo continuo de contenido al que pueden aplicarse realizaciones divulgadas en este documento.
Haciendo referencia a la figura 12, el sistema de envío por flujo continuo de contenido al que se aplican las realizaciones del presente documento puede incluir básicamente un servidor de codificación, un servidor de envío por flujo continuo, un servidor web, un almacenamiento de medios, un dispositivo de usuario y un dispositivo de entrada multimedios.
El servidor de codificación comprime contenidos introducidos desde dispositivos de entrada multimedios, tales como un teléfono inteligente, una cámara o una videocámara en datos digitales para generar un flujo de bits y transmitir el flujo de bits al servidor de envío por flujo continuo. Como otro ejemplo, cuando los dispositivos de entrada multimedios tales como teléfonos inteligentes, cámaras, videocámaras, etc., generan directamente un flujo de bits, puede omitirse el servidor de codificación.
El flujo de bits puede generarse mediante un método de codificación o un método de generación de flujos de bits al que se aplica(n) la(s) realización(es) del presente documento, y el servidor de envío por flujo continuo puede almacenar de forma temporal el flujo de bits en el proceso de transmisión o recepción del flujo de bits.
El servidor de envío por flujo continuo transmite los datos multimedios al dispositivo de usuario basándose en la solicitud de un usuario a través del servidor web, y el servidor web sirve como un medio para informar al usuario acerca de un servicio. Cuando el usuario solicita un servicio deseado del servidor web, el servidor web lo entrega a un servidor de envío por flujo continuo, y el servidor de envío por flujo continuo transmite datos multimedios al usuario. En este caso, el sistema de envío por flujo continuo de contenido puede incluir un servidor de control separado. En este caso, el servidor de control sirve para controlar una orden/respuesta entre dispositivos en el sistema de envío por flujo continuo de contenido.
El servidor de envío por flujo continuo puede recibir contenido desde un servidor de codificación y/o almacenamiento de medios. Por ejemplo, cuando el contenido se recibe desde el servidor de codificación, el contenido puede recibirse en tiempo real. En este caso, con el fin de proporcionar un servicio de envío por flujo continuo fluido, el servidor de envío de flujo continuo puede almacenar el flujo de bits durante un tiempo predeterminado.
Los ejemplos del dispositivo de usuario pueden incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de radiodifusión digital, un asistente digital personal (PDA), un reproductor multimedios portátil (PMP), navegación, una pizarra, unos PC de tableta, ultraportátiles, dispositivos ponibles (por ejemplo, relojes inteligentes, gafas inteligentes, visualizadores montados en la cabeza), TV digitales, ordenadores de escritorio, señalización digital y similares.
Cada servidor en el sistema de envío por flujo continuo de contenido puede hacerse funcionar como un servidor distribuido, en cuyo caso pueden distribuirse los datos recibidos desde cada servidor.

Claims (14)

REIVINDICACIONES
1. Un método de descodificación de imágenes realizado por un aparato de descodificación, comprendiendo el método de descodificación de imágenes:
inferir (S1100) un vector de movimiento de L0 perfeccionado y un vector de movimiento de L1 perfeccionado aplicando un perfeccionamiento de vector de movimiento de lado de descodificador, DMVR, basándose en un vector de movimiento de L0 y en un vector de movimiento de L1 de un bloque actual en una imagen actual; inferir (S1110) muestras de predicción para el bloque actual basándose en muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y en muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado; y
generar (S1120) muestras reconstruidas para el bloque actual basándose en las muestras de predicción, en donde las muestras de predicción de L0 se infieren basándose en una imagen de referencia de L0 y en el vector de movimiento de L0 perfeccionado, y las muestras de predicción de L1 se infieren basándose en una imagen de referencia de L1 y en el vector de movimiento de L1 perfeccionado,
en donde el hecho de inferir las muestras de predicción (S1110) comprende inferir información de bandera de flujo óptico bidireccional, BDOF, relacionada con indicar si aplicar BDOF, basándose en una primera condición de aplicación de BDOF que es que la distancia temporal entre la imagen actual y la imagen de referencia de L0 y una distancia entre la imagen actual y la imagen de referencia de L1 sean iguales, y
en donde se requiere la primera condición de aplicación de BDOF para establecer un valor de la información de bandera de BDOf para que sea un valor que representa que el BDOf se aplica al bloque actual.
2. El método de descodificación de imágenes de la reivindicación 1, en donde el hecho de inferir las muestras de predicción comprende aplicar el BDOF al bloque actual basándose en el valor de la información de bandera de BDOF relacionada con aplicar el BDOF al bloque actual,
en donde, en la aplicación del BDOF, las muestras de predicción se infieren basándose en un gradiente para las muestras de predicción de L0 y en un gradiente para las muestras de predicción de L1.
3. El método de descodificación de imágenes de la reivindicación 1, en donde, en el hecho de inferir la información de bandera de BDOF, la información de bandera de BDOF se infiere basándose en una segunda condición de aplicación de BDOF que es que esté habilitada la inter predicción basada en BDOF, una tercera condición de aplicación de BDOF que es que una bipredicción realizada basándose en una imagen de referencia de L0 y en una imagen de referencia de L1 se aplique al bloque actual, una cuarta condición de aplicación de BDOF que es que un modo afín no se aplique al bloque actual, una quinta condición de aplicación de BDOf que es que un modo de fusión basado en subbloques no se aplique al bloque actual, una sexta condición de aplicación de BDOF que es que un valor de información de índice de peso de bipredicción del bloque actual sea igual a 0, o una séptima condición de aplicación de BDOF que es que el bloque actual sea un bloque de luma que incluye una componente de luma, y
en donde se requiere al menos una de la segunda condición de aplicación de BDOF, la tercera condición de aplicación de BDOF, la cuarta condición de aplicación de BDOF, la quinta condición de aplicación de BDOF, la sexta condición de aplicación de BDOF o la séptima condición de aplicación de BDOF para inferir la información de bandera de BDOF.
4. El método de descodificación de imágenes de la reivindicación 1, que comprende determinar si se aplica un modo de fusión al bloque actual; y
obtener información de índice de fusión basándose en un caso de que el modo de fusión se aplique al bloque actual,
en donde el vector de movimiento de L0 y el vector de movimiento de L1 se infieren de un bloque vecino indicado por la información de índice de fusión de entre bloques vecinos del bloque actual.
5. El método de descodificación de imágenes de la reivindicación 4, en donde el hecho de inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento de L1 perfeccionado comprende inferir información de bandera de DMVR relacionada con indicar si aplicar el DMVR,
en donde un valor de la información de bandera de DMVR se establece a un valor que representa que el DMVR se aplica al bloque actual basándose en el caso de que el modo de fusión se aplique al bloque actual.
6. El método de descodificación de imágenes de la reivindicación 5, en donde, en el hecho de inferir la información de bandera de DMVR, la información de bandera de DMVR se infiere basándose en una primera condición de aplicación de DMVR que es que esté habilitada la inter bipredicción basada en DMVR, una segunda condición de aplicación de DMVR que es que una bipredicción realizada basándose en una imagen de referencia de L0 y en una imagen de referencia de L1 se aplique al bloque actual, una tercera condición de aplicación de DMVR que es que un modo de modo de fusión con diferencia de vector de movimiento, MMVD, no se aplique al bloque actual, una cuarta condición de aplicación de DMVR que es que una distancia entre la imagen actual y la imagen de referencia de L0 y una distancia entre la imagen actual y la imagen de referencia de L1 sean iguales, una quinta condición de aplicación de DMVR que es que un valor de información de índice de peso de bipredicción del bloque actual sea igual a 0, una sexta condición de aplicación de DMVR que es que la altura del bloque actual sea igual a o más grande que 8, o una séptima condición de aplicación de DMVR que es que la altura x la anchura del bloque actual sea más grande que 8 x 8, y
en donde se requiere al menos una de la primera condición de aplicación de DMVR, la segunda condición de aplicación de DMVR, la tercera condición de aplicación de DMVR, la cuarta condición de aplicación de DMVR, la quinta condición de aplicación de DMVR, la sexta condición de aplicación de DMVR o la séptima condición de aplicación de DMVR para inferir la información de bandera de DMVR.
7. El método de descodificación de imágenes de la reivindicación 1, en donde el hecho de inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento de L1 perfeccionado comprende:
inferir una suma de diferencias absolutas, SAD, mínima basándose en muestras de referencia en la imagen de referencia de L0 inferidas basándose en el vector de movimiento de L0 y en muestras de referencia en la imagen de referencia de L1 inferidas basándose en el vector de movimiento de L1; e
inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento L 1 perfeccionado basándose en una posición de muestra correspondiente a la SAD mínima.
8. Un método de codificación de imágenes realizado por un aparato de codificación, comprendiendo el método de codificación de imágenes:
inferir (S 1000) un vector de movimiento de L0 perfeccionado y un vector de movimiento de L1 perfeccionado aplicando un perfeccionamiento de vector de movimiento de lado de descodificador, DMVR, basándose en un vector de movimiento de L0 y en un vector de movimiento de L1 de un bloque actual en una imagen actual; inferir (S1010) muestras de predicción para el bloque actual basándose en muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y en muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado;
inferir (S 1020) muestras residuales basándose en las muestras de predicción; y
codificar (S1030) información de imagen que incluye información acerca de las muestras residuales, en donde las muestras de predicción de l0 se infieren basándose en una imagen de referencia de L0 y en el vector de movimiento de L0 perfeccionado, y las muestras de predicción de L1 se infieren basándose en una imagen de referencia de L1 y en el vector de movimiento de L1 perfeccionado,
en donde el hecho de inferir (S1010) las muestras de predicción comprende inferir información de bandera de flujo óptico bidireccional, BDOF, relacionada con indicar si aplicar BDOF, basándose en una primera condición de aplicación de BDOF que es que la distancia temporal entre la imagen actual y la imagen de referencia de L0 y una distancia entre la imagen actual y la imagen de referencia de L1 sean iguales, y
en donde se requiere la primera condición de aplicación de BDOF para establecer un valor de la información de bandera de BDO<f>para que sea un valor que representa que el BDO<f>se aplica al bloque actual.
9. El método de codificación de imágenes de la reivindicación 8, en donde el hecho de inferir las muestras de predicción comprende aplicar el BDOF al bloque actual basándose en el valor de la información de bandera de BDOF relacionada con aplicar el BDOF al bloque actual,
en donde, en la aplicación del BDOF, las muestras de predicción se infieren basándose en un gradiente para las muestras de predicción de L0 y en un gradiente para las muestras de predicción de L1.
10. El método de codificación de imágenes de la reivindicación 8, que comprende determinar si se aplica un modo de fusión al bloque actual; y
generar información de índice de fusión basándose en un caso de que el modo de fusión se aplique al bloque actual,
en donde el vector de movimiento de L0 y el vector de movimiento de L1 se infieren de un bloque vecino indicado por la información de índice de fusión de entre bloques vecinos del bloque actual.
11. El método de codificación de imágenes de la reivindicación 10, en donde el hecho de inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento de L1 perfeccionado comprende inferir información de bandera de DMVR relacionada con indicar si aplicar el DMVR,
en donde un valor de la información de bandera de DMVR se establece a un valor que representa que el DMVR se aplica al bloque actual basándose en el caso de que el modo de fusión se aplique al bloque actual.
12. El método de codificación de imágenes de la reivindicación 8, en donde el hecho de inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento de L1 perfeccionado comprende:
inferir una suma de diferencias absolutas, SAD, mínima basándose en muestras de referencia en la imagen de referencia de L0 inferidas basándose en el vector de movimiento de L0 y en muestras de referencia en la imagen de referencia de L1 inferidas basándose en el vector de movimiento de L1; e
inferir el vector de movimiento de L0 perfeccionado y el vector de movimiento de L1 perfeccionado basándose en una posición de muestra correspondiente a la SAD mínima.
13. Un medio de almacenamiento digital legible por ordenador que almacena un flujo de bits generado por un método, comprendiendo el método:
inferir (S1000) un vector de movimiento de L0 perfeccionado y un vector de movimiento de L1 perfeccionado aplicando un perfeccionamiento de vector de movimiento de lado de descodificador, DMVR, basándose en un vector de movimiento de L0 y en un vector de movimiento de L1 de un bloque actual en una imagen actual; inferir (S1010) muestras de predicción para el bloque actual basándose en muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y en muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado; e
inferir (S1020) muestras residuales basándose en las muestras de predicción; y
codificar (S1030) información de imagen que incluye información acerca de las muestras residuales para generar el flujo de bits,
en donde las muestras de predicción de L0 se infieren basándose en una imagen de referencia de L0 y en el vector de movimiento de L0 perfeccionado, y las muestras de predicción de L1 se infieren basándose en una imagen de referencia de L1 y en el vector de movimiento de L1 perfeccionado,
en donde el hecho de inferir las muestras de predicción (S1010) comprende inferir información de bandera de flujo óptico bidireccional, BDOF, relacionada con indicar si aplicar BDOF, basándose en una primera condición de aplicación de BDOF que es que una distancia entre la imagen actual y la imagen de referencia de L0 y la distancia temporal entre la imagen actual y la imagen de referencia de L1 sean iguales, y
en donde se requiere la primera condición de aplicación de BDOF para establecer un valor de la información de bandera de BDOf para que sea un valor que representa que el BDOf se aplica al bloque actual.
14. Un método para transmitir datos para información de imagen, comprendiendo el método:
obtener un flujo de bits de la información de imagen que incluye información acerca de muestras residuales, en donde el flujo de bits se genera basándose en inferir (S1000) un vector de movimiento de L0 perfeccionado y un vector de movimiento de L1 perfeccionado aplicando un perfeccionamiento de vector de movimiento de lado de descodificador, DMVR, basándose en un vector de movimiento de L0 y en un vector de movimiento de L1 de un bloque actual en una imagen actual, inferir (S1010) muestras de predicción para el bloque actual basándose en muestras de predicción de L0 inferidas basándose en el vector de movimiento de L0 perfeccionado y en muestras de predicción de L1 inferidas basándose en el vector de movimiento de L1 perfeccionado, inferir (S1020) muestras residuales basándose en las muestras de predicción, codificar (S1030) la información de imagen que incluye la información acerca de las muestras residuales; y
transmitir los datos que comprenden el flujo de bits de la información de imagen que incluye la información acerca de las muestras residuales,
en donde las muestras de predicción de L0 se infieren basándose en una imagen de referencia de L0 y en el vector de movimiento de L0 perfeccionado, y las muestras de predicción de L1 se infieren basándose en una imagen de referencia de L1 y en el vector de movimiento de L1 perfeccionado,
en donde el hecho de inferir (S1010) las muestras de predicción comprende inferir información de bandera de flujo óptico bidireccional, BDOF, relacionada con indicar si aplicar BDOF, basándose en una primera condición de aplicación de BDOF que es que la distancia temporal entre la imagen actual y la imagen de referencia de L0 y una distancia entre la imagen actual y la imagen de referencia de L1 sean iguales, y
en donde se requiere la primera condición de aplicación de BDOF para establecer un valor de la información de bandera de BDOf para que sea un valor que representa que el BDOf se aplica al bloque actual.
ES20769451T 2019-03-12 2020-02-11 Método y dispositivo de inter predicción basándose en DMVR y BDOF Active ES2957801T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962817504P 2019-03-12 2019-03-12
PCT/KR2020/001860 WO2020184847A1 (ko) 2019-03-12 2020-02-11 Dmvr 및 bdof 기반의 인터 예측 방법 및 장치

Publications (1)

Publication Number Publication Date
ES2957801T3 true ES2957801T3 (es) 2024-01-25

Family

ID=72427946

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20769451T Active ES2957801T3 (es) 2019-03-12 2020-02-11 Método y dispositivo de inter predicción basándose en DMVR y BDOF

Country Status (10)

Country Link
US (3) US11496743B2 (es)
EP (2) EP4274229A1 (es)
KR (1) KR20210114061A (es)
ES (1) ES2957801T3 (es)
FI (1) FI3941060T3 (es)
HR (1) HRP20231053T1 (es)
HU (1) HUE062990T2 (es)
PL (1) PL3941060T3 (es)
SI (1) SI3941060T1 (es)
WO (1) WO2020184847A1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102332526B1 (ko) * 2016-07-14 2021-11-29 삼성전자주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
CN113545086A (zh) * 2019-03-08 2021-10-22 北京达佳互联信息技术有限公司 用于视频编解码的双向光流和解码器侧运动矢量细化
PL3941060T3 (pl) * 2019-03-12 2023-12-27 Lg Electronics Inc. Sposób i urządzenie inter-predykcji oparte na dmvr i bdof
WO2020262901A1 (ko) * 2019-06-24 2020-12-30 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
CN113613003B (zh) * 2021-08-30 2024-03-22 北京市商汤科技开发有限公司 视频压缩、解压缩方法及装置、电子设备和存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2538284C2 (ru) 2010-04-22 2015-01-10 Медиатэк, Инк. Способ предсказания движения
US10958927B2 (en) * 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
US10375413B2 (en) 2015-09-28 2019-08-06 Qualcomm Incorporated Bi-directional optical flow for video coding
KR20180129860A (ko) * 2016-04-25 2018-12-05 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
CA3025488A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
US11638027B2 (en) * 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
US10931969B2 (en) * 2017-01-04 2021-02-23 Qualcomm Incorporated Motion vector reconstructions for bi-directional optical flow (BIO)
US10595035B2 (en) 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
CN116866586A (zh) * 2017-05-17 2023-10-10 株式会社Kt 对图像解码的方法以及存储压缩视频数据的装置
US10477237B2 (en) 2017-06-28 2019-11-12 Futurewei Technologies, Inc. Decoder side motion vector refinement in video coding
US11310526B2 (en) * 2018-01-26 2022-04-19 Mediatek Inc. Hardware friendly constrained motion vector refinement
US11575933B2 (en) * 2018-04-06 2023-02-07 Vid Scale, Inc. Bi-directional optical flow method with simplified gradient derivation
WO2019234672A1 (en) * 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partial cost calculation
WO2020017840A1 (ko) * 2018-07-16 2020-01-23 엘지전자 주식회사 Dmvr에 기반하여 인터 예측을 수행하는 방법 및 장치
BR112021002857A8 (pt) * 2018-08-17 2023-02-07 Mediatek Inc Métodos e aparelhos de processamento de vídeo com predição bidirecional em sistemas de codificação de vídeo
WO2020084462A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Restrictions on decoder side motion vector derivation based on block size
US11153590B2 (en) * 2019-01-11 2021-10-19 Tencent America LLC Method and apparatus for video coding
CN113491124B (zh) * 2019-02-14 2024-06-25 Lg电子株式会社 基于dmvr的帧间预测方法和设备
CN118200548A (zh) * 2019-02-24 2024-06-14 Lg 电子株式会社 基于dmvr的帧间预测方法和设备
US11166037B2 (en) * 2019-02-27 2021-11-02 Mediatek Inc. Mutual excluding settings for multiple tools
WO2020177702A1 (en) * 2019-03-04 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Two-level signaling of filtering information in video processing
CN113475076B (zh) * 2019-03-11 2024-03-12 阿里巴巴集团控股有限公司 用于对视频数据进行编码的帧间预测方法
PL3941060T3 (pl) * 2019-03-12 2023-12-27 Lg Electronics Inc. Sposób i urządzenie inter-predykcji oparte na dmvr i bdof
EP3745725A4 (en) * 2019-03-22 2020-12-02 LG Electronics Inc. -1- METHOD AND DEVICE FOR INTERPRDICTION BASED ON DMVR AND BDOF
US11140409B2 (en) * 2019-03-22 2021-10-05 Lg Electronics Inc. DMVR and BDOF based inter prediction method and apparatus thereof

Also Published As

Publication number Publication date
EP3941060B1 (en) 2023-08-30
US20220070466A1 (en) 2022-03-03
HRP20231053T1 (hr) 2024-02-02
US11496743B2 (en) 2022-11-08
EP3941060A1 (en) 2022-01-19
EP4274229A1 (en) 2023-11-08
US20240187605A1 (en) 2024-06-06
KR20210114061A (ko) 2021-09-17
US20230045157A1 (en) 2023-02-09
FI3941060T3 (fi) 2023-10-02
WO2020184847A1 (ko) 2020-09-17
HUE062990T2 (hu) 2023-12-28
US11936878B2 (en) 2024-03-19
EP3941060A4 (en) 2022-07-06
SI3941060T1 (sl) 2024-02-29
PL3941060T3 (pl) 2023-12-27

Similar Documents

Publication Publication Date Title
ES2957801T3 (es) Método y dispositivo de inter predicción basándose en DMVR y BDOF
US11252415B2 (en) DMVR-based inter-prediction method and device
US20230262229A1 (en) Dmvr-based inter-prediction method and device
ES2926196T3 (es) Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines
US11876972B2 (en) BDOF-based inter prediction method and device
US11451820B2 (en) DMVR-based inter-prediction method and device
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
US11503301B2 (en) Image coding method and apparatus using motion vector differences
US11523119B2 (en) Method and device for image coding using motion vector differences
US20240121382A1 (en) Video or image coding for inducing weight index information for bi-prediction
US20230217038A1 (en) Inter prediction-based image coding method and apparatus
KR20210155808A (ko) 움직임 벡터 예측 기반 영상/비디오 코딩 방법 및 장치
US11451821B2 (en) Image coding method and apparatus using motion vector
KR102622467B1 (ko) 움직임 벡터를 이용한 영상 코딩 방법 및 장치