[go: up one dir, main page]

ES3026563T3 - History-based image coding apparatuses - Google Patents

History-based image coding apparatuses Download PDF

Info

Publication number
ES3026563T3
ES3026563T3 ES23207623T ES23207623T ES3026563T3 ES 3026563 T3 ES3026563 T3 ES 3026563T3 ES 23207623 T ES23207623 T ES 23207623T ES 23207623 T ES23207623 T ES 23207623T ES 3026563 T3 ES3026563 T3 ES 3026563T3
Authority
ES
Spain
Prior art keywords
hmvp
ctu
tile
prediction
image
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
ES23207623T
Other languages
English (en)
Inventor
Naeri Park
Seunghwan Kim
Junghak Nam
Jaehyun Lim
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 ES3026563T3 publication Critical patent/ES3026563T3/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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

De acuerdo con una realización divulgada en el presente documento, un búfer de predicción de vector de movimiento basado en historial (HMVP) para el bloque actual se puede derivar sobre la base de un historial, y la información de movimiento del bloque actual se puede derivar sobre la base de candidatos HMVP incluidos en el búfer HMVP y, de este modo, se puede aumentar la eficiencia de predicción entre predicciones. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Aparatos de codificación de imagen basados en historial
Campo técnico
La presente descripción se refiere a codificación de imagen y, más particularmente, a aparatos de codificación de imagen basados en historial.
Antecedentes
Recientemente, la demanda de imagen/vídeo de alta resolución y alta calidad, tal como imagen/vídeo de definición ultra alta (UHD) 4K u 8K, está aumentando en varios campos. A medida que la resolución o calidad de la imagen/vídeo aumenta, se transmite relativamente más cantidad de información o bits que para los datos de imagen/vídeo convencionales. Por lo tanto, si los datos de imagen/vídeo se transmiten a través de un medio tal como una línea de banda ancha cableada/inalámbrica existente o se almacenan en un medio de almacenamiento heredado, los costos de transmisión y almacenamiento aumentan fácilmente.
Además, están creciendo el interés y la demanda de contenidos de realidad virtual (VR) y realidad artificial (AR), y de medios inmersivos como los hologramas; y también está aumentando la difusión de imágenes/vídeos que presentan características de imagen/vídeo diferentes de las de una imagen/vídeo real, como imágenes/vídeos de juegos.
Por lo tanto, se requiere una técnica de compresión de imagen/vídeo altamente eficiente para comprimir y transmitir, almacenar o reproducir de manera efectiva imágenes/vídeos de alta resolución y alta calidad que muestren diversas características como las descritas anteriormente.
La técnica anterior se encuentra en Park (LGE) N et al, JVET-L0158, en Y-W Chen (Kwai) et al, JVET-L0106 y en Zhang (Bytedance) L et al, JVET-K0104.
Compendio
Un objetivo de la presente descripción es dar a conocer un método y un aparato para aumentar la eficiencia de codificación de imagen.
Otro objetivo de la presente descripción es dar a conocer un método y un aparato de inter-predicción eficientes.
Otro objetivo más de la presente descripción es dar a conocer un método y un aparato para derivar un vector de movimiento basado en historial.
Otro objetivo más de la presente descripción es dar a conocer un método y un aparato para derivar eficientemente un candidato de predicción de vectores de movimiento basada en historial (HMVP).
Otro objetivo más de la presente descripción es dar a conocer un método y un aparato para actualizar eficientemente una memoria intermedia de HMVP.
Un objetivo adicional de la presente descripción es proporcionar un método y aparato para inicializar eficientemente una memoria intermedia de HMVP.
La invención se expone en las reivindicaciones independientes. Una realización preferida de la invención se expone en la reivindicación dependiente.
De acuerdo con un primer aspecto, se describe un aparato de decodificación para una decodificación de imagen, comprendiendo el aparato de decodificación: una memoria; y al menos un procesador conectado a la memoria, estando configurado el al menos un procesador para: derivar una memoria intermedia de predicción de vectores de movimiento basada en historial, HMVP, para un bloque actual, en donde la memoria intermedia de HMVP comprende un candidato de HMVP que incluye información de movimiento de un bloque anterior que se decodifica antes del bloque actual; derivar la lista de candidatos de información de movimiento basada en el candidato de HMVP comprendido en la memoria intermedia de HMVP , en donde para derivar la lista de candidatos de información de movimiento, el candidato de HMVP se añade en la lista de candidatos de información de movimiento; derivar la información de movimiento del bloque actual basada en la lista de candidatos de información de movimiento; generar muestras de predicción para el bloque actual basada en la información de movimiento; y generar muestras reconstruidas basadas en las muestras de predicción, en donde una imagen actual incluye más de una tesela, en donde el bloque actual es para una de las unidades de codificación, CU, divididas de una unidad de árbol de codificación, CTU, en donde la memoria intermedia de HMVP se actualiza añadiendo información de movimiento de un bloque anterior directo que se decodifica directamente antes del bloque actual como un nuevo candidato de HMVP, en donde para la imagen actual que consta de 2 filas de teselas y 2 columnas de teselas, la memoria intermedia de HMVP se inicializa en una primera CTU en un orden de procesamiento en cada fila de CTU de cada tesela, en donde, basándose en la memoria intermedia de HMVP que se inicializa, el número de candidatos de HMVP comprendidos en la memoria intermedia de HMVP se establece en cero, en donde el aparato de decodificación está configurado además para: determinar si la CTU es una primera CTU en un orden de procesamiento en una fila de CTU de una tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas, en donde la memoria intermedia de HMVP para el bloque actual se deriva basándose en el resultado de la determinación, y en donde basándose en el resultado de la determinación de que la CTU es la primera CTU en el orden de procesamiento en la fila de CTU de la tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas, la memoria intermedia de HMVP se inicializa para la CTU.
De acuerdo con un segundo aspecto, se describe un aparato de codificación para una codificación de imágenes, comprendiendo el aparato de codificación: una memoria; y al menos un procesador conectado a la memoria, estando configurado el al menos un procesador para: derivar una memoria intermedia de predicción de vectores de movimiento basada en historial, HMVP, para un bloque actual, en donde la memoria intermedia de HMVP comprende un candidato de HMVP que incluye información de movimiento de un bloque anterior que se codifica antes del bloque actual; derivar una lista de candidatos de información de movimiento basada en el candidato de HMVP comprendido en la memoria intermedia de HMVP, en donde para derivar la lista de candidatos de información de movimiento, el candidato de HMVP se añade en la lista de candidatos de información de movimiento; derivar información de movimiento del bloque actual basada en la lista de candidatos de información de movimiento; generar muestras de predicción para el bloque actual basada en la información de movimiento; derivar muestras residuales basadas en las muestras de predicción; y codificar en un flujo de bits información de imagen que comprende información sobre las muestras residuales, en donde más de una tesela está presente en una imagen actual, en donde el bloque actual es para una de las unidades de codificación, CU, dividida de una unidad de árbol de codificación, CTU, en donde la memoria intermedia de HMVP se actualiza añadiendo información de movimiento de un bloque anterior directo que se codifica directamente antes del bloque actual como un nuevo candidato de HMVP, en donde para la imagen actual que consta de 2 filas de teselas y 2 columnas de teselas, la memoria intermedia de HMVP se inicializa en una primera CTU en un orden de procesamiento en cada fila de CTU de cada tesela, en donde, basándose en la memoria intermedia de HMVP que se inicializa, el número de candidatos de HMVP comprendidos en la memoria intermedia de HMVP se establece a cero, en donde el aparato de codificación está configurado además para: determinar si la CTU es una primera CTU en un orden de procesamiento en una fila de CTU de una tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas, en donde la memoria intermedia de HMVP para el bloque actual se deriva basándose en el resultado de la determinación, y en donde basándose en el resultado de la determinación de que la CTU es la primera CTU en el orden de procesamiento en la fila de CTU de la tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas, la memoria intermedia de HMVP se inicializa para la CTU.
Según una realización del presente documento, es posible aumentar la eficiencia general de la compresión de imagen/vídeo.
Según una realización del presente documento, es posible reducir la cantidad de datos transmitidos necesarios para el procesamiento residual mediante la inter-predicción eficiente.
Según una realización del presente documento, es posible gestionar eficientemente la memoria intermedia de HMVP.
Según una realización del presente documento, es posible soportar el procesamiento paralelo a través de la gestión eficiente de la memoria intermedia de HMVP.
Según una realización del presente documento, es posible derivar eficientemente el vector de movimiento para la inter-predicción.
Breve descripción de los dibujos
La figura 1 es un diagrama que muestra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imagen al que se pueden aplicar realizaciones del presente documento.
La figura 2 es un diagrama que explica esquemáticamente una configuración de un aparato de codificación de vídeo/imagen al que se pueden aplicar realizaciones del presente documento.
La figura 3 es un diagrama que explica esquemáticamente una configuración de un aparato de decodificación de vídeo/imagen al que se pueden aplicar realizaciones del presente documento.
La figura 4 es un diagrama que muestra un ejemplo de un método de codificación de vídeo/imagen basado en inter-predicción.
La figura 5 es un diagrama que muestra un ejemplo de un método de decodificación de vídeo/imagen basado en inter-predicción.
La figura 6 es un diagrama que muestra a modo de ejemplo un procedimiento de inter-predicción.
La figura 7 es un diagrama que muestra a modo de ejemplo bloques vecinos espaciales usados para derivar un candidato de información de movimiento en un modo de fusión convencional o AMVP.
La figura 8 es un diagrama que muestra esquemáticamente un ejemplo de un procedimiento de decodificación basado en candidato de HMVP.
La figura 9 es un diagrama que muestra a modo de ejemplo una actualización de una tabla HMVP según una regla FIFO.
La figura 10 es un diagrama que muestra a modo de ejemplo una actualización de una tabla HMVP según una regla FIFO limitada.
La figura 11 es un diagrama que muestra a modo de ejemplo un procesamiento paralelo de frente de onda (WPP), que es una de las técnicas para procesamiento paralelo.
La figura 12 es un diagrama que muestra a modo de ejemplo un problema cuando se aplica un método HMVP general en consideración del procesamiento paralelo.
La figura 13 es un diagrama que muestra a modo de ejemplo un método de inicialización de una memoria intermedia de gestión de historial (memoria intermedia de HMVP) según una realización del presente documento.
La figura 14 es un diagrama que muestra a modo de ejemplo un método de gestión de memoria intermedia de HMVP según una realización.
La figura 15 es un diagrama que muestra a modo de ejemplo un método de gestión de memoria intermedia de HMVP según otra realización.
La figura 16 es un diagrama que muestra a modo de ejemplo un método de inicialización de memoria intermedia de HMVP en una estructura de tesela.
La figura 17 es un diagrama que muestra un ejemplo de un método de inicialización de memoria intermedia de HMVP para una CTU ordenada en primer lugar de una tesela según otra realización.
La figura 18 es un diagrama que muestra un ejemplo de un método de inicialización de la memoria intermedia de gestión de HMVP para una CTU ordenada en primer lugar en una fila de CTU en cada tesela según otra realización más.
La figura 19 es un diagrama que muestra un ejemplo de una estructura en la que existen una tesela y un segmento al mismo tiempo.
La figura 20 es un diagrama que muestra un método para inicializar una memoria intermedia de HMVP para una CTU ordenada en primer lugar en cada tesela.
La figura 21 es un diagrama que muestra un ejemplo de un método para inicializar una memoria intermedia de HMVP para cada segmento en una tesela.
La figura 22 es un diagrama que muestra un ejemplo de inicialización de una memoria intermedia de HMVP para una CTU ordenada en primer lugar de una primera tesela en un grupo de teselas.
La figura 23 es un diagrama que muestra un ejemplo de inicialización de una memoria intermedia de HMVP para una CTU ordenada en primer lugar de cada tesela en un grupo de teselas.
La figura 24 es un diagrama que muestra un ejemplo de inicialización de una memoria intermedia de HMVP para una fila de CTU de cada tesela en un grupo de teselas.
Las figuras 25 y 26 son diagramas que muestran esquemáticamente un ejemplo de un método de codificación de vídeo/imagen y componentes relacionados que incluyen un método de inter-predicción según una o varias realizaciones del presente documento.
Las figuras 27 y 28 son diagramas que muestran esquemáticamente un ejemplo de un método de decodificación de imagen y componentes relacionados que incluyen un método de inter-predicción según una realización del presente documento.
La figura 29 es un diagrama que muestra un ejemplo de un sistema de transmisión en continuo de contenidos al que se pueden aplicar las realizaciones descritas en el presente documento.
Descripción de realizaciones a modo de ejemplo
El método presentado en el presente documento puede modificarse de varias formas, y en los dibujos se describirán e ilustrarán ejemplos específicos de estas. Los términos utilizados en la siguiente descripción se utilizan simplemente para describir una realización específica, pero no pretenden limitar la idea técnica del método presentado en el presente documento. Una expresión de un número singular incluye una expresión de "al menos uno", siempre que se lea claramente de manera diferente. Los términos tales como "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos utilizados en la siguiente descripción y, por lo tanto, debe entenderse que no se excluye la posibilidad de existencia o adición de una o más diferentes características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos.
Mientras tanto, las estructuras respectivas en los dibujos de la presente memoria se proporcionan independientemente entre sí por la comodidad de describir diferentes funciones características, lo que, sin embargo, no indica que cada estructura deba implementarse mediante hardware o software separados. Por ejemplo, cada estructura puede implementarse mediante una combinación de dos o más estructuras, o una estructura puede dividirse en una pluralidad de estructuras. Una realización en la que las estructuras están integradas y/o separadas entre sí debe considerarse perteneciente al alcance de la presente memoria.
El presente documento se refiere a codificación de vídeo/imagen. Por ejemplo, el método/realización dado a conocer en el presente documento se puede aplicar al método dado a conocer en el estándar de codificación de vídeo versátil (WC). Además, los métodos/realizaciones dados a conocer en el presente documento se pueden aplicar a un método dado a conocer en el estándar EVC (codificación de vídeo esencial), el estándar AOMedia Video 1 (AV1), la segunda generación del estándar de codificación de audio y vídeo (AVS2), o el estándar de codificación de vídeo/imagen de próxima generación (por ejemplo, H.267 o H.268, etc.).
El presente documento presenta varias realizaciones de codificación de vídeo/imagen, y las realizaciones pueden realizarse en combinación entre sí a menos que se mencione lo contrario.
En el presente documento, un vídeo puede hacer referencia a una serie de imágenes a lo largo del tiempo. Una imagen generalmente se refiere a la unidad que representa una imagen en un período de tiempo particular, y un segmento/tesela se refiere a la unidad que constituye la imagen en términos de codificación. Un segmento/tesela puede incluir una o más unidades de árbol de codificación (CTU). Una imagen puede constar de uno o más segmentos/teselas. Una imagen puede constar de uno o más grupos de teselas. Un grupo de teselas puede incluir una o más teselas. Un ladrillo puede representar una región rectangular de filas de CTU dentro de una tesela en una imagen. Una tesela puede dividirse en múltiples ladrillos, cada uno de los cuales consta de una o más filas de CTU dentro de la tesela. Una tesela que no está dividida en varios ladrillos también puede denominarse un ladrillo. Un barrido de ladrillos es un orden secuencial específico de CTU que divide una imagen, en el que las CTU se ordenan consecutivamente en un barrido de trama de CTU en un ladrillo, los ladrillos dentro de una tesela se ordenan consecutivamente en un barrido de trama de los ladrillos de la tesela, y las teselas en una imagen se ordenan consecutivamente en un barrido de trama de las teselas de la imagen. Una tesela es una región rectangular de CTU dentro de una columna de teselas particular y una fila de teselas particular en una imagen. La columna de tesela es una región rectangular de CTU que tiene una altura igual a la altura de la imagen y una anchura especificada por elementos de sintaxis en el conjunto de parámetros de imagen. La fila de teselas es una región rectangular de CTU que tiene una altura especificada por elementos de sintaxis en el conjunto de parámetros de imagen y una anchura igual a la anchura de la imagen. Un escaneo de teselas es un orden secuencial específico de CTU que divide una imagen, en el que las CTU se ordenan consecutivamente en un barrido de trama de CTU en una tesela, mientras que las teselas de una imagen se ordenan consecutivamente en un barrido de trama de las teselas de la imagen. Un segmento incluye un número entero de ladrillos de una imagen que pueden estar contenidos exclusivamente en una única unidad NAL. Un segmento puede consistir en varias teselas completas o sólo en una secuencia consecutiva de ladrillos completos de una tesela. En el presente documento, se pueden usar indistintamente un grupo de teselas y un segmento. Por ejemplo, en el presente documento, un grupo de teselas/encabezado de grupo de teselas también puede denominarse segmento/encabezado de segmento.
Un píxel o un pel puede significar la unidad más pequeña que constituye una imagen. Además, "muestra" se puede utilizar como término correspondiente a un píxel. Una muestra puede, en general, representar un píxel o un valor de un píxel, y puede representar solo un píxel/valor de píxel de un componente de luma o solo un píxel/valor de píxel de un componente de croma.
Una unidad puede representar una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de una región específica de la imagen e información relacionada con la región. Una unidad puede incluir un bloque luma y dos bloques croma (por ejemplo, cb, cr). En algunos casos, la unidad puede usarse indistintamente con términos como bloque o área. En un caso general, un bloque MxN puede incluir muestras (o matrices de muestras) o un conjunto (o matriz) de coeficientes de transformada de M columnas y N filas. En el presente documento, los términos "/" y "," deben interpretarse en el sentido de que indican "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Además, "A/B/C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, debe interpretarse que el término "o" indica "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) sólo A, 2) sólo B, y/o 3) tanto A como B. En otras palabras, en el presente documento debe interpretarse que el término "o" indica "adicional o alternativamente".
A continuación, se describirán con más detalle realizaciones del presente documento haciendo referencia a los dibujos adjuntos. En lo que sigue, los mismos componentes en los dibujos utilizan los mismos numerales de referencia y se pueden haber omitido descripciones redundantes de los mismos componentes.
La figura 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen al que se pueden aplicar realizaciones de la presente memoria.
Haciendo referencia a la figura 1, un sistema de codificación de vídeo/imagen puede incluir un primer aparato (dispositivo fuente) y un segundo aparato (dispositivo de recepción). El dispositivo fuente puede transmitir datos o información de vídeo/imagen codificados al dispositivo receptor a través de un medio de almacenamiento digital o una red, en forma de archivo o transmisión en continuo.
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 decodificación y un representador. El aparato de codificación puede denominarse aparato de codificación de vídeo/imagen, y el aparato de decodificación puede denominarse aparato de decodificación de vídeo/imagen. El transmisor puede estar incluido en el aparato de codificación. El receptor puede estar incluido en el aparato de decodificación. El representador puede incluir una pantalla, y la pantalla puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede adquirir vídeo/imagen a través de un proceso de captura, síntesis o generación del vídeo/imagen. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo generador 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 capturados previamente y similares. El dispositivo generador de vídeo/imagen puede incluir, por ejemplo, ordenadores, tabletas y teléfonos inteligentes, y puede generar (electrónicamente) vídeo/imágenes. Por ejemplo, se puede generar un vídeo/imagen virtual a través de un ordenador o similar. En este caso, el proceso de captura de vídeo/imagen puede sustituirse por un proceso de 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 la compresión y la codificación. Los datos codificados (información de vídeo/imagen codificada) pueden entregarse en forma de un flujo de bits.
El transmisor puede transmitir la imagen codificada/información de imagen o salida de datos en forma de un flujo de bits al receptor del dispositivo receptor a través de un medio de almacenamiento digital o una red, en forma de un archivo o de transmisión en continuo. El medio de almacenamiento digital puede incluir varios 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 multimedia a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de difusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de decodificación.
El aparato de decodificación puede decodificar el vídeo/imagen realizando una serie de procedimientos tales como descuantificación, transformada inversa y predicción correspondientes al funcionamiento del aparato de codificación.
El representador puede representar el vídeo/imagen decodificado. El vídeo/imagen representado se puede mostrar a través de la pantalla.
La figura 2 ilustra una estructura de un aparato de codificación de vídeo/imagen al que se pueden aplicar realizaciones de la presente memoria. En lo que sigue, un aparato de codificación de vídeo puede incluir un aparato de codificación de imagen.
Haciendo referencia a la figura 2, el aparato de codificación 200 incluye un fragmentador de imágenes 210, un predictor 220, un procesador residual 230 y un codificador entrópico 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 un generador de bloques reconstruidos. El fragmentador de imágenes 210, el predictor 220, el procesador residual 230, el codificador entrópico 240, el sumador 250 y el filtro 260 pueden configurarse mediante al menos un componente de hardware (por ejemplo, un conjunto de chips o procesador codificador) según una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes decodificadas (DPB) o puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como componente interno/externo.
El fragmentador de imágenes 210 puede dividir una imagen de entrada (o una imagen o un cuadro) introducida al aparato de codificación 200 en uno o más procesadores. Por ejemplo, el procesador puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente según una estructura de árbol cuaternario árbol binario árbol ternario (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 mayor profundidad basándose en una estructura de árbol cuaternario, una estructura de árbol binario y/o una estructura ternaria. En este caso, por ejemplo, se puede aplicar primero la estructura de árbol cuaternario y después se puede aplicar la estructura de árbol binario y/o la estructura ternaria. Alternativamente, se puede aplicar primero la estructura de árbol binario. El procedimiento de codificación según el presente documento se puede realizar basándose en la unidad de codificación final que ya no está dividida. En este caso, la unidad de codificación más grande puede usarse como unidad de codificación final basándose en la eficiencia de codificación según las características de la imagen, o si es necesario, la unidad de codificación puede dividirse recursivamente en unidades de codificación de mayor profundidad y una unidad de codificación que tiene un tamaño óptimo puede utilizarse como unidad de codificación final. Aquí, 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 o segmentarse a partir de la unidad de codificación final antes mencionada. La unidad de predicción puede ser una unidad de predicción de muestra, y la unidad de transformada puede ser una unidad para derivar un coeficiente de transformada y/o una unidad para derivar una señal residual a partir del coeficiente de transformada.
En algunos casos, la unidad puede usarse indistintamente con términos como bloque o área. En un caso general, un bloque MxN puede representar un conjunto de muestras o coeficientes de transformada compuestos por M columnas y N filas. Una muestra puede, en general, representar un píxel o un valor de un píxel, puede representar solo un píxel/valor de píxel de un componente de luma o representar solo un píxel/valor de píxel de un componente de croma. Una muestra se puede utilizar como un término correspondiente a una 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 una señal residual (bloque residual de , 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 un restador 231. El predictor puede realizar una predicción sobre un bloque a procesar (en lo sucesivo, denominado bloque actual) y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica la intra-predicción o la inter predicción por bloque actual o por CU. Como se describe más adelante en la descripción de cada modo de predicción, el predictor puede generar diversa información relacionada con la predicción, tal como información del modo de predicción, y transmitir la información generada al codificador entrópico 240. La información sobre la predicción puede codificarse en el codificador entrópico 240 y entregarse en forma de 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 estar ubicadas en las proximidades del bloque actual o pueden estar ubicadas separadas según 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 DC y un modo planar. El modo direccional puede incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional según el grado de detalle de la dirección de predicción. Sin embargo, esto es simplemente un ejemplo; se pueden usar modos de predicción más o menos direccionales dependiendo de la configuración. El intra-predictor 222 puede determinar el modo de predicción aplicado al bloque actual utilizando un modo de predicción aplicado a un bloque vecino.
El inter-predictor 221 puede derivar un bloque predicho para el bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. Aquí, para reducir la cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento se puede predecir en unidades de bloques, subbloques o muestras basándose en la correlación de la información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de inter-predicción (predicción L0, predicción L1, predicción Bi, 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 colocalizado, una CU colocalizada (colCU), y similares, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen colocalizada (colPic). Por ejemplo, el interpredictor 221 puede configurar una lista de candidatos de información de movimiento basada en bloques vecinos y generar información que indique qué candidato se utiliza para derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La inter-predicción se puede realizar basándose en varios modos de predicción. Por ejemplo, en el caso de un modo de salto y un modo de fusión, el interpredictor 221 puede usar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el modo de salto, a diferencia del modo de fusión, es posible que la señal residual no se transmita. En el caso del modo de predicción del vector de movimiento (MVP), el vector de movimiento del bloque vecino puede usarse como predictor del vector de movimiento y el vector de movimiento del bloque actual puede indicarse señalizando una diferencia del vector de movimiento.
El predictor 220 puede generar una señal de predicción basada en varios métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no sólo aplicar intra-predicción o inter-predicción para predecir un bloque sino que también puede aplicar simultáneamente tanto intra-predicción como inter-predicción. Esto puede denominarse inter e intra-predicción combinada (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra-bloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción o modo de paleta IBC se puede usar para codificación de imagen/vídeo de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). Básicamente, la IBC realiza predicción en la imagen actual, pero puede realizarse de manera similar a la inter-predicción en el sentido de que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede utilizar al menos una de las técnicas de inter predicción descritas en el presente documento. El modo de paleta puede considerarse como un ejemplo de intra-codificación o intra-predicción. Cuando se aplica el modo de paleta, se puede señalizar un valor de muestra dentro de una imagen basándose en información de la tabla de paleta y del índice de paleta.
La señal de predicción generada por el predictor (incluido 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 de una transformada de coseno discreta (DCT), una transformada de seno discreta (DST), una transformada basada en gráficos (GBT) o una transformada condicionalmente no lineal (CNT). Aquí, GBT significa transformada obtenida de un gráfico cuando el gráfico representa la información de relación entre píxeles. La CNT se refiere a la transformada generada en base a una señal de predicción generada utilizando todos los píxeles previamente reconstruidos. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados que tengan el mismo tamaño o puede aplicarse a bloques que tengan un tamaño variable en lugar de cuadrados.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitirlos al codificador entrópico 240 y el codificador entrópico 240 puede codificar la señal cuantificada (información sobre los coeficientes de transformada cuantificados) y generar un flujo de bits. La información sobre los coeficientes de transformada cuantificados puede denominarse información residual. El cuantificador 233 puede reorganizar los coeficientes de transformada cuantificados de tipo bloque en una forma vectorial unidimensional basándose en un orden de exploración de coeficientes y generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en la forma vectorial unidimensional. Se puede generar información sobre coeficientes de transformada. El codificador entrópico 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 entrópico 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 un flujo de bits. La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir además información de restricción general. En el presente documento, la información y/o los elementos de sintaxis transmitidos/señalizados desde el aparato de codificación al aparato de decodificación pueden incluirse en información de vídeo/imagen. La información de vídeo/imagen puede codificarse mediante el procedimiento de codificación descrito anteriormente e incluirse en el flujo de bits. El flujo de bits puede transmitirse a través de una red o puede almacenarse en un medio de almacenamiento digital. La red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir varios medios de almacenamiento tales como USB, SD, Cd , DVD, Blu-ray, HDD, SSD y similares. Un transmisor (no mostrado) que transmite una salida de señal desde el codificador entrópico 240 y/o una unidad de almacenamiento (no mostrada) que almacena la señal puede incluirse como elemento interno/externo del aparato de codificación 200 y, alternativamente, puede incluirse el transmisor en el codificador entrópico 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 salida de la señal de predicción 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 residuos para el bloque a procesar, como en el caso en el que se aplica el modo de salto, el bloque predicho puede usarse como bloque reconstruido. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la intra-predicción de un siguiente bloque a procesar en la imagen actual y se puede usar para la inter predicción de una siguiente imagen mediante filtrado como se describe a continuación.
Mientras tanto, se puede aplicar mapeo de luma con interpolación de croma (LMCS) durante la codificación y/o reconstrucción de imágenes.
El filtro 260 puede mejorar la calidad de la imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 260 puede generar una imagen reconstruida modificada aplicando varios 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, desplazamiento adaptativo de muestra, filtro de bucle adaptativo, filtro bilateral, etc. El filtro 260 puede generar diversa información relacionada con el filtrado y transmitir la información generada al codificador entrópico 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 mediante el codificador entrópico 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 por medio del aparato de codificación, se puede evitar un desajuste de predicción entre el aparato de codificación 200 y el aparato de decodificación se puede mejorar la eficiencia de codificación.
La DPB de la memoria 270 puede almacenar la imagen reconstruida modificada para usar como imagen de referencia en el inter-predictor 221. La memoria 270 puede almacenar la información de movimiento del bloque del que se deriva (o codifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques en la imagen que ya han sido reconstruidos. La información de movimiento almacenada puede transmitirse al inter-predictor 221 y usarse como información de movimiento del bloque vecino espacial o 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 ilustra una estructura de un aparato de decodificación de vídeo/imagen al que se pueden aplicar realizaciones de la presente memoria.
Haciendo referencia a la figura 3, el aparato de decodificación 300 puede incluir un decodificador entrópico 310, un procesador residual 320, un predictor 330, un sumador 340, un filtro 350, 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 decodificador entrópico 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 decodificador o un procesador) según una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes decodificadas (DPB) o puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como un componente interno/externo.
Cuando se introduce un flujo de bits que incluye información de vídeo/imagen, el aparato de decodificación 300 puede reconstruir una imagen correspondiente a un proceso en el que la información de vídeo/imagen se procesa en el aparato de codificación de la figura 2. Por ejemplo, el aparato de decodificación 300 puede derivar unidades /bloques basado en información relacionada con la división de bloques obtenida del flujo de bits. El aparato de decodificación 300 puede realizar decodificación usando un procesador aplicado en el aparato de codificación. Por tanto, el procesador de decodificación puede ser una unidad de codificación, por ejemplo, y la unidad de codificación puede dividirse según una estructura de árbol cuaternario, una estructura de árbol binario y/o una estructura de árbol ternario a partir de la unidad de árbol de codificación o la unidad de codificación más grande. Una o más unidades de transformada pueden derivarse de la unidad de codificación. La señal de imagen reconstruida decodificada y emitida a través del aparato de decodificación 300 puede reproducirse por medio de un aparato de reproducción.
El aparato de decodificación 300 puede recibir una salida de señal del aparato de codificación de la figura 2 en forma de un flujo de bits, y la señal recibida puede decodificarse a través del decodificador entrópico 310. Por ejemplo, el decodificador entrópico 310 puede analizar sintácticamente el flujo de bits para derivar información (por ejemplo, información de vídeo/imagen) necesaria para la reconstrucción de imágenes. La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir también información de restricción general. El aparato de decodificación puede decodificar además una imagen basándose en la información del conjunto de parámetros y/o la información de restricción general. La información señalizada/recibida y/o los elementos de sintaxis descritos más adelante en el presente documento pueden decodificarse mediante el procedimiento de decodificación y obtenerse del flujo de bits. Por ejemplo, el decodificador entrópico 310 decodifica la información en el flujo de bits basándose en un método de codificación tal como codificación exponencial de Golomb, CAVLC o CABAC, y elementos de sintaxis de salida necesarios para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para residuos. Más específicamente, el método de decodificación entrópica CABAC puede recibir un contenedor correspondiente a cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto usando información de un elemento de sintaxis objetivo de decodificación, información de decodificación de un bloque objetivo de decodificación o información de un símbolo/contenedor decodificado en un etapa anterior, y realizar una decodificación aritmética en el contenedor prediciendo una probabilidad de ocurrencia de un contenedor según el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento de sintaxis. En este caso, el método de decodificación entrópica CABAC puede actualizar el modelo de contexto utilizando la información del símbolo/contenedor decodificado para un modelo de contexto de un siguiente símbolo/contenedor después de determinar el modelo de contexto. La información relacionada con la predicción entre la información decodificada por el decodificador entrópico 310 se puede proporcionar al predictor (el interpredictor 332 y el intra-predictor 331), y el valor residual en el que se realizó la decodificación entrópica en el decodificador entrópico 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 derivar la señal residual (el bloque residual, las muestras residuales, la matriz de muestras residuales). Además, se puede proporcionar al filtro 350 información sobre el filtrado entre la información decodificada por el decodificador entrópico 310. Mientras tanto, un receptor (no mostrado) para recibir una salida de señal desde el aparato de codificación se puede configurar además como un elemento interno/externo de el aparato de decodificación 300, o el receptor puede ser un componente del decodificador entrópico 310. Mientras tanto, el aparato de decodificación según el presente documento puede denominarse aparato de decodificación de vídeo/imagen, y el aparato de decodificación puede clasificarse en un decodificador de información (decodificador de información de vídeo/imagen) y un decodificador de muestra (decodificador de muestra de vídeo/imagen). El decodificador de información puede incluir el decodificador entrópico 310, y el decodificador de muestra puede incluir al menos uno del descuantificador 321, el transformador inverso 322, el sumador 340, el filtro 350, la memoria 360, el inter-predictor 332 y el intra-predictor 331.
El descuantificador 321 puede descuantificar los coeficientes de transformada cuantificados y entregar los coeficientes de transformada. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en forma de bloque bidimensional. En este caso, la reordenación se puede realizar basándose en el orden de exploración de coeficientes realizado en el aparato de codificación. El descuantificador 321 puede realizar la descuantificación de los coeficientes de transformada cuantificados utilizando un parámetro de cuantificación (por ejemplo, información del tamaño de la etapa de cuantificación) y obtener coeficientes de transformada.
El transformador inverso 322 transforma inversamente los coeficientes de transformada para obtener una señal residual (bloque residual, matriz de muestras residuales).
El predictor puede realizar una predicción sobre el 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 al bloque actual basándose en la información sobre la salida de predicción del decodificador entrópico 310 y puede determinar un modo de intra/inter-predicción específico.
El predictor 320 puede generar una señal de predicción basada en varios métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no sólo aplicar intra-predicción o inter-predicción para predecir un bloque sino que también puede aplicar simultáneamente intra-predicción e inter-predicción. Esto puede denominarse inter e intra-predicción combinada (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intra-bloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción o modo de paleta IBC se puede utilizar para codificación de imagen/vídeo de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). Básicamente, la IBC realiza predicción en la imagen actual, pero puede realizarse de manera similar a la inter-predicción en el sentido de que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede utilizar al menos una de las técnicas de inter predicción descritas en el presente documento. El modo de paleta puede considerarse como un ejemplo de intra-codificación o intra-predicción. Cuando se aplica el modo de paleta, se puede señalizar un valor de muestra dentro de una imagen basándose en la información de la tabla de paleta y el índice de paleta.
El intra-predictor 331 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden estar ubicadas en las proximidades del bloque actual o pueden estar ubicadas separadas según 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 utilizando un modo de predicción aplicado a un bloque vecino.
El inter-predictor 332 puede derivar un bloque predicho para el bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, para reducir la cantidad de información de movimiento transmitida en el modo de inter-predicción, la información de movimiento se puede predecir en unidades de bloques, subbloques o muestras basándose en la correlación de la información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de inter-predicción (predicción L0, predicción L1, predicción Bi, 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 y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia basándose en la información de selección de candidatos recibida. La inter-predicción se puede realizar basándose en varios modos de predicción, y la información sobre la predicción puede incluir información que indique 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) sumando la señal residual obtenida a la señal de predicción (bloque predicho, matriz de muestras predicha) emitida desde el predictor (incluido el inter-predictor 332 y/o el intra-predictor 331). Si no hay residuos para el bloque a procesar, como cuando se aplica el modo de salto, el bloque predicho puede usarse como 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 siguiente bloque a procesar en la imagen actual, puede generarse mediante filtrado como se describe a continuación, o puede usarse para la inter predicción de una siguiente imagen.
Mientras tanto, se puede aplicar mapeo de luma con interpolación de croma (LMCS) en el proceso de decodificación de imagen.
El filtro 350 puede mejorar la calidad de la imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 350 puede generar una imagen reconstruida modificada aplicando varios 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, desplazamiento adaptativo de muestra, filtro de bucle adaptativo, filtro bilateral, etc.
La imagen reconstruida (modificada) almacenada en la DPB de la memoria 360 se puede usar como imagen de referencia en el inter-predictor 332. La memoria 360 puede almacenar la información de movimiento del bloque del que se deriva (o decodifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques en la imagen que ya han sido reconstruidos. La información de movimiento almacenada puede transmitirse al inter-predictor 260 para ser utilizada como información de movimiento del bloque vecino espacial o información de movimiento del bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transferir las muestras reconstruidas al intra-predictor 331.
En la presente descripción, las realizaciones descritas en el filtro 260, el inter-predictor 221 y el intra-predictor 222 del aparato de codificación 200 pueden ser las mismas o aplicarse respectivamente para corresponder al filtro 350, al inter-predictor 332 y al intra-predictor 331 del aparato de decodificación 300. Lo mismo también puede aplicarse a la unidad 332 y al intra-predictor 331.
Como se ha descrito anteriormente, al realizar la codificación de vídeo, se realiza predicción para aumentar la eficiencia de la compresión. Por lo tanto, se puede generar un bloque predicho que incluye las muestras de predicción para el bloque actual, que es un bloque objetivo de codificación. Aquí, el bloque predicho incluye las muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque predicho se deriva de manera idéntica en el aparato de codificación y el aparato de decodificación, y el aparato de codificación puede señalizar información sobre el residuo (información residual) entre el bloque original y el bloque predicho, en lugar del propio valor de muestra original del bloque original, al aparato de decodificación, aumentando así la eficiencia de codificación de imagen. El aparato de decodificación puede derivar un bloque residual que incluye muestras residuales basándose en la información residual, generar un bloque reconstruido que incluye muestras reconstruidas sumando el bloque residual y el bloque predicho, y generar una imagen reconstruida que incluye los bloques reconstruidos.
La información residual puede generarse mediante procedimientos de transformada y cuantificación. Por ejemplo, el aparato de codificación puede señalizar información residual relacionada (a través de un flujo de bits) al aparato de decodificación derivando el bloque residual entre el bloque original y el bloque predicho, derivando coeficientes de transformada realizando el procedimiento de transformada para las muestras residuales (matriz de muestras residuales) incluidas en el bloque residual, y derivar coeficientes de transformada cuantificados realizando el procedimiento de cuantificación para los coeficientes de transformada. Aquí, la información residual puede incluir información tal como información de valor, información de posición, técnica de transformada, núcleo de transformada y parámetro de cuantificación de los coeficientes de transformada cuantificados. El aparato de decodificación puede realizar procedimientos de descuantificación/transformada inversa basándose en la información residual y derivar las muestras residuales (o bloques residuales). El aparato de decodificación puede generar una imagen reconstruida basándose en el bloque predicho y el bloque residual. El aparato de codificación también puede descuantificar/transformar inversamente los coeficientes de transformada cuantificados como referencia para la inter-predicción de la post-imagen para derivar el bloque residual, y generar la imagen reconstruida basándose en ello.
Si se aplica la inter-predicción, los predictores del aparato de codificación/aparato de decodificación pueden derivar la muestra de predicción realizando la inter-predicción en unidades de bloques. La inter-predicción puede ser una predicción derivada de una manera que depende de elementos de datos (por ejemplo, valores de muestra, información de movimiento o similares) de la o las imágenes distintas de la imagen actual. Si la inter-predicción se aplica al bloque actual, se puede inducir un bloque predicho (matriz de muestras de predicción) para el bloque actual, basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en la imagen de referencia indicada por un índice de imagen de referencia. En este momento, para reducir la cantidad de información de movimiento transmitida en un modo de inter-predicción, la información de movimiento del bloque actual se puede predecir 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 tipo de inter predicción (predicción L0, predicción L1, predicción Bi o similar). Si se aplica la inter-predicción, el bloque vecino puede incluir un bloque vecino espacial existente en la imagen actual y un bloque vecino temporal que sale 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 colocalizado, CU colocalizada (colCU), o similar, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen colocalizada (colPic). Por ejemplo, se puede configurar una lista de candidatos de información de movimiento basándose en los bloques vecinos del bloque actual, y se puede señalizar información de indicador o índice que indique qué candidato se selecciona (utiliza) para derivar el vector de movimiento y/o el índice de imagen de referencia del bloque actual. La inter-predicción se puede realizar basándose en varios modos de predicción y, por ejemplo, en el caso de un modo de salto y un modo de fusión (normal), la información de movimiento del bloque actual puede ser la misma que la información de movimiento de un bloque vecino seleccionado. En el caso del modo de salto, a diferencia del modo de fusión, es posible que la señal residual no se transmita. En el caso de un modo de predicción de vector de movimiento (MVP), el vector de movimiento del bloque vecino seleccionado se puede utilizar como predictor de vector de movimiento, y se puede señalizar una diferencia de vector de movimiento. En este caso, el vector de movimiento del bloque actual se puede derivar usando la suma del predictor del vector de movimiento y la diferencia del vector de movimiento.
Un procedimiento de codificación de vídeo/imagen basado en la inter-predicción puede incluir esquemáticamente, por ejemplo, lo siguiente.
La figura 4 ilustra un ejemplo de un método de codificación de vídeo/imagen basado en inter-predicción.
El aparato de codificación realiza la inter-predicción para el bloque actual (S400). El aparato de codificación puede derivar el modo de inter-predicción y la información de movimiento del bloque actual, y generar muestras de predicción del bloque actual. Aquí, los procedimientos para determinar el modo de inter predicción, derivar la información de movimiento y generar las muestras de predicción se pueden realizar simultáneamente, o se puede realizar cualquier procedimiento antes que los demás procedimientos. Por ejemplo, un inter-predictor del aparato de codificación puede incluir un determinador de modo de predicción, un elemento de derivación de información de movimiento y un elemento de derivación de muestra de predicción, y el determinador de modo de predicción puede determinar el modo de predicción para el bloque actual, el elemento de derivación de información de movimiento puede derivar la información de movimiento del bloque actual, y el elemento de derivación de muestra de predicción puede derivar las muestras de predicción del bloque actual. Por ejemplo, el inter-predictor del aparato de codificación puede buscar un bloque, similar al bloque actual, en una determinada región (región de búsqueda) de las imágenes de referencia mediante estimación de movimiento, y derivar el bloque de referencia cuya diferencia con respecto al bloque actual es mínimo o una determinada referencia o menos. En base a esto, se puede derivar un índice de imagen de referencia que indica la imagen de referencia en la que está ubicado el bloque de referencia, y se puede derivar un vector de movimiento basándose en una diferencia de posición entre el bloque de referencia y el bloque actual. El aparato de codificación puede determinar un modo aplicado al bloque actual entre varios modos de predicción. El aparato de codificación puede comparar los costos de RD para los diversos modos de predicción y determinar un modo de predicción óptimo para el bloque actual.
Por ejemplo, si el modo de salto o el modo de fusión se aplica al bloque actual, el aparato de codificación puede configurar una lista de candidatos de fusión que se describirá más adelante, y derivar el bloque de referencia cuya diferencia con el bloque actual es mínima o una determinada referencia o menos entre los bloques de referencia indicados por los candidatos de fusión incluidos en la lista de candidatos de fusión. En este caso, se puede seleccionar el candidato de fusión asociado con el bloque de referencia derivado, y se puede generar y señalizar al aparato de decodificación información de índice de fusión que indique el candidato de fusión seleccionado. La información de movimiento del bloque actual se puede derivar utilizando la información de movimiento del candidato de fusión seleccionado.
Como otro ejemplo, si se aplica un modo (A)MVP al bloque actual, el aparato de codificación puede configurar una lista de candidatos de (A)MVP que se describirá más adelante, y usar el vector de movimiento del candidato de predictor de vector de movimiento (mvp) seleccionado, entre los candidatos de MVP incluidos en la lista de candidatos de (A)MVP, como mvp del bloque actual. En este caso, por ejemplo, el vector de movimiento que indica el bloque de referencia derivado mediante la estimación de movimiento descrita anteriormente puede usarse como el vector de movimiento del bloque actual, y el candidato de MVP cuyo vector de movimiento cuya diferencia con respecto al vector de movimiento del bloque actual es la más pequeña entre los candidatos de MVP puede ser el candidato de MVP seleccionado. Se puede derivar una diferencia de vector de movimiento (MVD), que es una diferencia obtenida restando el mvp del vector de movimiento del bloque actual. En este caso, la información de la MVD se puede señalizar al aparato de decodificación. Además, si se aplica el modo (A)MVP, el valor del índice de imagen de referencia puede configurarse como información de índice de imagen de referencia y señalizarse por separado al aparato de decodificación.
El aparato de codificación puede derivar muestras residuales basándose en las muestras de predicción (S410). El aparato de codificación puede derivar las muestras residuales comparando las muestras originales del bloque actual con las muestras de predicción.
El aparato de codificación codifica información de imagen que incluye información de predicción e información residual (S420). El aparato de codificación puede generar la información de la imagen codificada en forma de un flujo de bits. La información de predicción puede incluir información sobre información del modo de predicción (por ejemplo, indicador de salto, indicador de fusión, índice de modo o similar) e información de movimiento como información relacionada con el procedimiento de predicción. La información sobre la información de movimiento puede incluir información de selección de candidatos (por ejemplo, índice de fusión, indicador mvp o índice mvp) que es información para derivar el vector de movimiento. Además, la información sobre la información de movimiento puede incluir la información sobre la MVD y/o la información del índice de imagen de referencia descrita anteriormente. Además, la información sobre la información de movimiento puede incluir información que indique si se aplica la predicción L0, la predicción L1 o la predicción bi. La información residual es información sobre las muestras residuales. La información residual puede incluir información sobre coeficientes de transformada cuantificados para las muestras residuales.
El flujo de bits de salida puede almacenarse en un medio de almacenamiento (digital) y entregarse al aparato de decodificación, o también puede entregarse al aparato de decodificación a través de una red.
Mientras tanto, como se ha descrito anteriormente, el aparato de codificación puede generar una imagen reconstruida (incluyendo muestras reconstruidas y bloques reconstruidos) basándose en las muestras de referencia y las muestras residuales. Esto es para obtener, mediante el aparato de codificación, el mismo resultado de predicción que se obtuvo mediante el aparato de decodificación y, por lo tanto, es posible aumentar la eficiencia de la codificación. Por lo tanto, el aparato de codificación puede almacenar la imagen reconstruida (o muestras reconstruidas, bloque reconstruido) en una memoria y utilizarla como imagen de referencia para la inter-predicción. Como se ha descrito anteriormente, se puede aplicar además un procedimiento de filtrado en bucle o similar a la imagen reconstruida.
Un procedimiento de decodificación de vídeo/imagen basado en la inter-predicción puede incluir esquemáticamente, por ejemplo, lo siguiente.
La figura 5 ilustra un ejemplo de un método de decodificación de vídeo/imagen basado en inter-predicción. Haciendo referencia a la figura 5, el aparato de decodificación puede realizar una operación correspondiente a la operación realizada por el aparato de codificación. El aparato de decodificación puede realizar predicción para un bloque actual basándose en la información de predicción recibida y derivar muestras de predicción. Específicamente, el aparato de decodificación puede determinar un modo de predicción para el bloque actual basándose en la información de predicción recibida (S500). El aparato de decodificación puede determinar un modo de inter-predicción aplicado al bloque actual basándose en la información del modo de predicción en la información de predicción.
Por ejemplo, el aparato de decodificación puede determinar si el modo de fusión se aplica al bloque actual o si se determina el modo (A)MVP, basándose en el indicador de fusión. Alternativamente, el aparato de decodificación puede seleccionar uno de varios candidatos de modo de inter-predicción basándose en el índice de modo. Los candidatos del modo de inter-predicción pueden incluir un modo de salto, un modo de fusión y/o un modo (A)MVP, o pueden incluir varios modos de inter-predicción que se describirán más adelante.
El aparato de decodificación deriva información de movimiento del bloque actual basándose en el modo de inter-predicción determinado (S510). Por ejemplo, si el modo de salto o el modo de fusión se aplica al bloque actual, el aparato de decodificación puede configurar una lista de candidatos de fusión que se describirá más adelante y seleccionar un candidato de fusión entre los candidatos de fusión incluidos en la lista de candidatos de fusión. La selección se puede realizar basándose en la información de selección descrita anteriormente (índice de fusión). La información de movimiento del bloque actual se puede derivar utilizando la información de movimiento del candidato de fusión seleccionado. La información de movimiento del candidato de fusión seleccionado se puede utilizar como la información de movimiento del bloque actual. Como otro ejemplo, si el modo (A)MVP se aplica al bloque actual, el aparato de decodificación puede configurar una lista de candidatos de (A)MVP que se describirá más adelante, y usar el vector de movimiento del candidato de predictor de vector de movimiento (mvp) seleccionado, entre los candidatos de MVP incluidos en la lista de candidatos de (A)MVP, como el mvp del bloque actual. La selección se puede realizar basándose en la información de selección descrita anteriormente (indicador mvp o índice mvp). En este caso, la MVD del bloque actual puede derivarse basándose en la información de la MVD, y el vector de movimiento del bloque actual puede derivarse basándose en el mvp y la MVD del bloque actual. Además, se puede derivar un índice de imagen de referencia del bloque actual basándose en la información del índice de imagen de referencia. Una imagen indicada por el índice de imagen de referencia en la lista de imágenes de referencia en el bloque actual puede derivarse como la imagen de referencia a la que se hace referencia para la inter-predicción del bloque actual.
Mientras tanto, como se describe más adelante, la información de movimiento del bloque actual se puede derivar sin configurar la lista de candidatos, y en este caso, la información de movimiento del bloque actual se puede derivar según un procedimiento dado a conocer en un modo de predicción que se describirá más adelante. En este caso, se puede omitir la configuración de la lista de candidatos descrita anteriormente. El aparato de decodificación puede generar muestras de predicción para el bloque actual basándose en la información de movimiento del bloque actual (S520). En este caso, el aparato de decodificación puede derivar la imagen de referencia basándose en el índice de imagen de referencia del bloque actual, y derivar las muestras de predicción del bloque actual utilizando las muestras del bloque de referencia indicadas por el vector de movimiento del bloque actual en la imagen de referencia. En este caso, como se describe más adelante, en algunos casos se puede realizar además un procedimiento de filtrado de muestras de predicción para todas o algunas de las muestras de predicción del bloque actual.
Por ejemplo, un inter-predictor del aparato de decodificación puede incluir un determinador del modo de predicción, un elemento de derivación de información de movimiento y un elemento de derivación de muestra de predicción, y el determinador del modo de predicción puede determinar el modo de predicción para el bloque actual basándose en la información del modo de predicción recibida, el elemento de derivación de información de movimiento puede derivar la información de movimiento (tal como vector de movimiento y/o índice de imagen de referencia) del bloque actual basándose en la información sobre la información de movimiento recibida, y el elemento de derivación de muestra de predicción puede derivar las muestras de predicción del bloque actual.
El aparato de decodificación genera muestras residuales para el bloque actual basándose en la información residual recibida (S530). El aparato de decodificación puede generar muestras reconstruidas para el bloque actual basándose en las muestras de predicción y las muestras residuales, y generar una imagen reconstruida basándose en las mismas (S540). Después de eso, se puede aplicar además un procedimiento de filtrado en bucle o similar a la imagen reconstruida como se ha descrito anteriormente.
La figura 6 ilustra a modo de ejemplo un procedimiento de inter-predicción.
Haciendo referencia a la figura 6, como se ha descrito anteriormente, el procedimiento de inter-predicción puede incluir determinar un modo de inter-predicción, derivar información de movimiento según el modo de predicción determinado y realizar predicción (generar una muestra de predicción) basándose en la información de movimiento derivada. El procedimiento de inter-predicción puede realizarse mediante el aparato de codificación y el aparato de decodificación como se ha descrito anteriormente. El aparato de codificación en este documento puede incluir el aparato de codificación y/o el aparato de decodificación.
Haciendo referencia a la figura 6, el aparato de codificación determina el modo de inter-predicción para el bloque actual (S600). Se pueden usar varios modos de inter-predicción para la predicción del bloque actual en la imagen. Por ejemplo, se pueden usar varios modos, tales como un modo de fusión, un modo de salto, un modo de predicción de vector de movimiento (MVP), un modo afín, un modo de fusión de subbloques y un modo de fusión con MVD (MMVD). Un modo de refinamiento de vector de movimiento lateral del decodificador (DMVR), un modo de resolución de vector de movimiento adaptativo (AMVR), una predicción bi con ponderación de nivel CU (BCW), un flujo óptico bidireccional (BDOF) y similares pueden usarse adicionalmente o en lugar de los modos, como modos contingentes. El modo afín puede denominarse modo de predicción de movimiento afín. El modo MVP puede denominarse modo avanzado de predicción de vectores de movimiento (AMVP). En este documento, algún modo y/o el candidato de información de movimiento derivado de algunos modos también puede incluirse como uno de los candidatos relacionados con información de movimiento en otro modo. Por ejemplo, el candidato de HMVP puede añadirse como candidato de fusión en los modos de fusión/salto, o puede añadirse como candidato de MVP en el modo MVP. Si el candidato de HMVP se utiliza como candidato de información de movimiento en el modo de fusión o el modo de salto, el candidato de HMVP puede denominarse candidato de fusión de HMVP.
La información del 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 decodificación. La información del modo de predicción puede incluirse en un flujo de bits y ser recibida por el aparato de decodificación. La información del modo de predicción puede incluir información de índice que indica uno de una pluralidad de modos candidatos. Alternativamente, la información del modo de predicción también puede indicar el modo de inter predicción mediante señalización jerárquica de información de indicador. En este caso, la información del modo de predicción puede incluir uno o más indicadores. Por ejemplo, la información del modo de predicción puede indicar si aplicar un modo de salto, mediante señalizar un indicador de salto, indicar si aplicar el modo de fusión, mediante señalizar un indicador de fusión si no se aplica el modo de salto, e indicar que el modo MVP se aplica o señalizar además un indicador para clasificación adicional si no se aplica el modo de fusión. El modo afín puede señalizarse como un modo independiente, o puede señalizarse como un modo que depende del modo de fusión, el modo MVP o similares. Por ejemplo, el modo afín puede incluir un modo de fusión afín y un modo MVP afín.
El aparato de codificación deriva información de movimiento para el bloque actual (S610). La información de movimiento puede derivarse basándose en el modo de inter-predicción.
El aparato de codificación puede realizar la inter-predicción utilizando la información de movimiento del bloque actual. El aparato de codificación puede derivar información de movimiento óptima para el bloque actual a través de un procedimiento de estimación de movimiento. Por ejemplo, el aparato de codificación puede buscar un bloque de referencia similar que tenga una alta correlación en unidades de fracciones de píxeles en un rango de búsqueda predeterminado en la imagen de referencia, utilizando el bloque original en la imagen original para el bloque actual, derivando así la información de movimiento. La similitud de bloque se puede derivar en función de la diferencia entre valores de muestra basados en fase. Por ejemplo, la similitud del bloque puede calcularse basándose en el SAD entre el bloque actual (o plantilla del bloque actual) y el bloque de referencia (o plantilla del bloque de referencia). En este caso, la información de movimiento puede derivarse basándose en un bloque de referencia que tenga el SAD más pequeño en la región de búsqueda. La información de movimiento derivada puede señalizarse al aparato de decodificación según diversos métodos basados en el modo de inter-predicción.
El aparato de codificación realiza la inter-predicción basándose en la información de movimiento para el bloque actual (S620). El aparato de codificación puede derivar la o las muestras de predicción para el bloque actual basándose en la información de movimiento. El bloque actual que incluye las muestras de predicción puede denominarse bloque predicho.
Mientras tanto, según el modo de fusión convencional o AMVP en la inter-predicción, se ha utilizado un método para reducir la cantidad de información de movimiento utilizando el vector de movimiento del bloque vecino espacial/temporal del bloque actual como candidato de información de movimiento. Por ejemplo, los bloques vecinos utilizados para derivar candidatos de información de movimiento del bloque actual podrían incluir un bloque vecino de la esquina inferior izquierda, un bloque vecino izquierdo, un bloque vecino de la esquina superior derecha, un bloque vecino superior, y un bloque vecino de la esquina superior izquierda del bloque actual.
La figura 7 ilustra a modo de ejemplo bloques vecinos espaciales usados para derivar un candidato de información de movimiento en el modo de fusión convencional o AMVP.
Básicamente, el bloque vecino espacial se ha limitado a un bloque que contacta directamente con el bloque actual. Esto es para aumentar la implementabilidad del hardware y se debe a que se produce un problema como un aumento en la memoria intermedia de línea para inducir información de un bloque alejado del bloque actual. Sin embargo, el uso de la información de movimiento de un bloque no vecino para derivar el candidato de información de movimiento del bloque actual puede conformar varios candidatos, mejorando así el rendimiento. Se puede utilizar un método de predicción de vectores de movimiento basada en historial (HMVP) para utilizar la información de movimiento de un bloque no vecino sin aumentar la memoria intermedia de línea. En este documento, la HMVP puede representar una predicción de vectores de movimiento basada en historial o un predictor de vector de movimiento basado en historial. Según el presente documento, es posible realizar eficazmente la inter-predicción y soportar procesamiento paralelo, utilizando la HMVP. Por ejemplo, las realizaciones del presente documento proponen varios métodos para gestionar una memoria intermedia de historial para procesamiento de paralelización, y el procesamiento paralelo puede soportarse basándose en los métodos. Sin embargo, soportar el procesamiento paralelo no significa que el procesamiento paralelo se realice necesariamente, y el aparato de codificación puede realizar o no el procesamiento paralelo en consideración del rendimiento del hardware o del tipo de servicio. Por ejemplo, si el aparato de codificación tiene un procesador multinúcleo, el aparato de codificación puede procesar algunos de los segmentos, ladrillos y/o teselas en paralelo. Mientras tanto, incluso cuando el aparato de codificación tiene un procesador de un solo núcleo o tiene un procesador de múltiples núcleos, el aparato de codificación puede realizar un procesamiento secuencial al mismo tiempo que reduce la carga de cálculo y memoria.
El candidato de HMVP según el método HMVP descrito anteriormente puede incluir información de movimiento de un bloque previamente codificado. Por ejemplo, la información de movimiento del bloque previamente codificado según el orden de codificación de bloques en la imagen actual no se ha considerado como la información de movimiento del bloque actual si el bloque previamente codificado no es vecino del bloque actual. Sin embargo, el candidato de HMVP puede considerarse como un candidato de información de movimiento (por ejemplo, candidato de fusión o candidato de MVP) del bloque actual sin considerar si el bloque previamente codificado es vecino del bloque actual. En este caso, se pueden almacenar una pluralidad de candidatos de HMVP en una memoria intermedia. Por ejemplo, si el modo de fusión se aplica al bloque actual, el candidato de HMVP (candidato de fusión HMVP) se puede añadir a la lista de candidatos de fusión. En este caso, el candidato de HMVP puede añadirse después de los candidatos de fusión espacial y del candidato de fusión temporal incluidos en la lista de candidatos de fusión.
Según el método HMVP, la información de movimiento del bloque previamente codificado puede almacenarse en forma de tabla y usarse como el candidato de información de movimiento (por ejemplo, candidato de fusión) del bloque actual. Durante los procedimientos de codificación/decodificación se puede mantener una tabla (o memoria intermedia o lista) que incluye una pluralidad de candidatos de HMVP. La tabla (o memoria intermedia o lista) puede denominarse tabla (o memoria intermedia o lista) HMVP. Según una realización del presente documento, la tabla (o memoria intermedia o lista) puede inicializarse cuando se encuentra un nuevo segmento. Alternativamente, según una realización del presente documento, la tabla (o memoria intermedia o lista) puede inicializarse cuando se encuentra una nueva fila de CTU. Si se inicializa la tabla, el número de candidatos de HMVP incluidos en la tabla se puede ajustar a cero. El tamaño de la tabla (o memoria intermedia o lista) se puede fijar en un valor específico (por ejemplo, 5 o similar). Por ejemplo, si existe un bloque inter-codificado, la información de movimiento asociada se puede añadir a la última entrada de la tabla como un nuevo candidato de HMVP. La tabla (HMVP) puede denominarse memoria intermedia (HMVP) o lista (HMVP).
La figura 8 ilustra esquemáticamente un ejemplo de un procedimiento de decodificación basado en candidato de HMVP. Aquí, el procedimiento de decodificación basado en candidatos de HMVP puede incluir un procedimiento de inter-predicción basado en candidatos de HMVP.
Haciendo referencia a la figura 8, el aparato de decodificación carga la tabla de HMVP que incluye el o los candidatos de HMVP y decodifica el bloque basándose en al menos uno del o de los candidatos de HMVP. Específicamente, por ejemplo, el aparato de decodificación puede derivar la información de movimiento del bloque actual basándose en al menos uno del o de los candidatos de HMVP, y derivar el bloque predicho (incluyendo la muestra de predicción) realizando la inter-predicción para el bloque actual en base a la información de movimiento. Como se ha descrito anteriormente, se puede generar un bloque reconstruido basándose en el bloque predicho. La información de movimiento derivada del bloque actual se puede actualizar en la tabla. En este caso, la información de movimiento se puede añadir a la última entrada de la tabla como nuevo candidato de HMVP. Si el número de candidatos de HMVP incluidos previamente en la tabla es igual al tamaño de la tabla, el candidato que entra primero a la tabla puede eliminarse y la información de movimiento derivada puede añadirse a la última entrada de la tabla como un nuevo candidato de HMVP.
La figura 9 ilustra a modo de ejemplo la actualización de la tabla HMVP según una regla de primero en entrar, primero en salir (FIFO), y la figura 10 ilustra a modo de ejemplo la actualización de la tabla HMVP según una regla FIFO limitada.
Se puede aplicar una regla FIFO a la tabla. Por ejemplo, si el tamaño de una tabla (S) es 16, esto indica que se pueden incluir 16 candidatos de HMVP en la tabla. Si se generan más de 16 candidatos de HMVP a partir de los bloques previamente codificados, se puede aplicar una regla FIFO y, por lo tanto, la tabla puede incluir los hasta 16 candidatos de información de movimiento codificados más recientemente. En este caso, como se muestra en la figura 9, se puede aplicar la regla FIFO para que el candidato de HMVP más antiguo pueda ser eliminado y se pueda añadir un nuevo candidato de HMVP.
Mientras tanto, para mejorar aún más la eficiencia de la codificación, también se puede aplicar una regla FIFO limitada como se muestra en la figura 10. Haciendo referencia a la figura 10, cuando el candidato de HMVP se inserta en la tabla, se puede aplicar primero una verificación de redundancia. Por lo tanto, se puede determinar si el candidato de HMVP que tiene la misma información de movimiento ya existe en la tabla. Si el candidato de HMVP que tiene la misma información de movimiento existe en la tabla, el candidato de HMVP que tiene la misma información de movimiento puede ser eliminado de la tabla, los candidatos de HMVP después del candidato de HMVP eliminado pueden moverse un espacio (es decir, los respectivos Índices - 1), y a continuación se puede insertar un nuevo candidato de HMVP.
Como se ha descrito anteriormente, los candidatos de HMVP se pueden usar en un procedimiento de configuración de lista de candidatos de fusión. En este caso, por ejemplo, todos los candidatos de HMVP insertables desde la última entrada hasta la primera entrada en la tabla pueden insertarse después de los candidatos de fusión espacial y del candidato de fusión temporal. En este caso, se puede aplicar una verificación de poda a los candidatos de HMVP. Se puede señalizar el número máximo de candidatos de fusión permitidos, y si el número total de candidatos de fusión disponibles alcanza el número máximo de candidatos de fusión, se puede finalizar el procedimiento de configuración de la lista de candidatos de fusión. De manera similar, los candidatos de HMVP también pueden usarse en el procedimiento de configuración de la lista de candidatos de (A)MVP. En este caso, los vectores de movimiento de los últimos k candidatos de HMVP en la tabla de HMVP se pueden añadir después de que los candidatos de TMVP configuren la lista de candidatos de MVP. En este caso, por ejemplo, un candidato de HMVP que tenga la misma imagen de referencia que la imagen de referencia objetivo de MVP se puede utilizar para configurar la lista de candidatos de MVP. Aquí, la imagen de referencia objetivo de MVP puede representar la imagen de referencia para la inter-predicción del bloque actual al que se ha aplicado el modo MVP. En este caso, la verificación de poda puede aplicarse a los candidatos de HMVP. La k puede ser, por ejemplo, 4. Sin embargo, esto es un ejemplo y la k puede tener varios valores, como 1,2, 3 y 4.
Mientras tanto, si el número total de candidatos de fusión es igual o mayor que 15, se puede aplicar un método de binarización unario truncado más longitud fija (con 3 bits) para la codificación del índice de fusión, tal como se muestra en la siguiente tabla 1.
Tabla 1
La tabla se basa en la hipótesis de que Nmrg = 15, donde Nmrg se refiere al número total de candidatos de fusión.
Mientras tanto, se puede soportar procesamiento paralelo en la codificación de imagen/vídeo para optimizar la implementación cuando se desarrolla una solución aplicando un códec de vídeo.
La figura 11 ilustra a modo de ejemplo el procesamiento paralelo de frente de onda (WPP), que es una de las técnicas para procesamiento paralelo.
Haciendo referencia a la figura 11, si se aplica el WPP, el procesamiento de paralelización se puede realizar en unidades de filas de CTU. En este caso, al codificar (codificar/decodificar) bloques marcados con X, existe una posición y una dependencia indicadas por la flecha. Por lo tanto, es necesario esperar a que la CTU superior derecha del bloque que se está codificando actualmente esté completamente codificada. Además, si se aplica el WPP, la inicialización de la tabla de probabilidad CABAC (o información de contexto) se puede realizar en unidades de segmentos, y para realizar el procesamiento de paralelización que incluye la codificación/decodificación entrópica, la tabla de probabilidad CABAC (o información de contexto) tiene que inicializarse en unidades de filas de CTU. El WPP puede considerarse como una tecnología propuesta para determinar una posición de inicialización eficiente. Si se aplica el WPP, las filas LCT respectivas pueden denominarse subflujo y el procesamiento paralelo puede soportarse si el aparato de codificación tiene una pluralidad de núcleos de procesamiento. Por ejemplo, en el caso en que se aplica WPP, si tres núcleos de procesamiento procesan la decodificación en paralelo, un primer núcleo de procesamiento puede decodificar un subflujo 0, un segundo núcleo de procesamiento puede decodificar un subflujo 1 y un tercer núcleo de procesamiento puede decodificar un subflujo 2. Si se aplica el WPP, se puede realizar la codificación para un subflujo de enésimo orden (n es un número entero), se puede completar la codificación para una CTU o LCU de segundo orden del subflujo de enésimo orden y a continuación se puede realizar la codificación para un subflujo de orden n+1-ésimo. Por ejemplo, en el caso de la codificación entrópica, si se completa la codificación entrópica para la segunda LCU del subflujo de enésimo orden, la primera LCU del subflujo de orden n+1 se somete a codificación entrópica basándose en la información de contexto para la segunda LCU del subflujo de enésimo orden. En este momento, el número de subflujos en el segmento puede ser igual al número de filas de LCU. Además, el número de subflujos en el segmento puede ser igual al número de puntos de entrada. En este momento, el número de puntos de entrada puede especificarse mediante el número de desplazamientos de puntos de entrada. Por ejemplo, el número de puntos de entrada puede tener un valor mayor en 1 que el número de desplazamientos de puntos de entrada. La información sobre el número de desplazamientos de puntos de entrada y/o la información sobre los valores de los desplazamientos puede incluirse en la información de vídeo/imagen descrita anteriormente y codificarse, y puede señalizarse al aparato de decodificación a través del flujo de bits. Mientras tanto, si el aparato de codificación incluye un núcleo de procesamiento, el procesamiento de codificación se puede realizar en una unidad de subflujo, reduciendo así la carga de memoria y la dependencia de codificación.
El método HMVP descrito anteriormente almacena, como candidato, información de movimiento derivada de un procedimiento de codificación de cada bloque por el tamaño de una memoria intermedia predeterminada (tabla HMVP). En este caso, como se describe en la figura 9 sin ninguna condición adicional, las memorias intermedias pueden llenarse con tantos candidatos como el número de memorias intermedias, o también pueden llenarse con candidatos que no sean redundantes mediante una verificación de redundancia entre el candidato recién añadido y el candidato existente en la memoria intermedia (tabla HMVP) . Por lo tanto, se pueden configurar varios candidatos. Sin embargo, cuando se desarrolla una solución a la que se aplica códec de vídeo, generalmente es imposible saber cuándo se llena la memoria intermedia con los candidatos de HMVP, de modo que es imposible habilitar el procesamiento paralelo incluso si se aplica el WPP o no se aplica el WPP.
La figura 12 ilustra a modo de ejemplo un problema al aplicar un método HMVP general en consideración del procesamiento paralelo.
Haciendo referencia a la figura 12, cuando se realiza paralelización en unidades de cada fila de CTU como en el WPP, puede ocurrir un problema de dependencia de la memoria intermedia de HMVP. Por ejemplo, esto se debe a que la memoria intermedia de HMVP para la CTU ordenada en primer lugar en una fila de CTU de orden N(N>=1)-ésimo puede llenarse sólo cuando se completa la codificación (codificación/decodificación) de un bloque existente en una fila de CTU de orden (N-1 )-ésimo, por ejemplo, un bloque en la última CTU de la fila de CTU de orden (N-1)-ésimo. Es decir, si el procesamiento paralelo se aplica bajo la estructura actual, el aparato de decodificación puede no saber si los candidatos de HMVP actuales almacenados en la memoria intermedia de HMVP coinciden con la memoria intermedia de HMVP utilizada para decodificar el bloque actual (objetivo). Esto se debe a que puede ocurrir una diferencia entre la memoria intermedia de HMVP derivada del punto de tiempo de codificación del bloque actual cuando se aplica el procesamiento secuencial y la memoria intermedia de HMVP derivada del punto de tiempo de codificación del bloque actual cuando se aplica el procesamiento paralelo.
En una realización del presente documento, para resolver el problema anterior, al aplicar la HMVP, se inicializa la memoria intermedia de gestión de historial (memoria intermedia de HMVP) para que se pueda soportar el procesamiento paralelo.
La figura 13 ilustra a modo de ejemplo un método para inicializar una memoria intermedia de gestión de historial (memoria intermedia de HMVP) según una realización del presente documento.
Haciendo referencia a la figura 13, la memoria intermedia de HMVP puede inicializarse para cada CTU ordenada en primer lugar de la fila de CTU. Es decir, cuando se codifica la CTU ordenada en primer lugar de la fila de CTU, la memoria intermedia de HMVP puede inicializarse de modo que el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP sea cero. Al inicializar la memoria intermedia de HMVP para cada fila de CTU como se ha descrito anteriormente, incluso cuando se soporta el procesamiento en paralelo, los candidatos de HMVP derivados del proceso de codificación de las CTU ubicadas en la dirección izquierda del bloque actual se pueden usar sin restricciones. En este caso, por ejemplo, si la CU actual que es el bloque actual está ubicada en la CTU ordenada en primer lugar de la fila de CTU, y la CU actual corresponde a la CU ordenada en primer lugar en la CTU ordenada en primer lugar, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP son cero. Además, por ejemplo, si una CU codificada antes que la CU actual en la fila de CTU se codifica en el modo inter, el candidato de HMVP puede derivarse basándose en la información de movimiento de la CU codificada anteriormente e incluirse en la memoria intermedia de HMVP.
La figura 14 ilustra a modo de ejemplo un método de gestión de memoria intermedia de HMVP según una realización.
Haciendo referencia a la figura 14, la memoria intermedia de HMVP se puede inicializar en unidades de segmentos, y se puede determinar si una CTU objetivo de codificación (CTU actual) es la CTU ordenada en primer lugar en cada fila de CTU incluso con respecto a las CTU en el segmento. En la figura 14, por ejemplo, si (ctu_idx % Num) es cero, se ha descrito que esta se determina como la CTU ordenada en primer lugar. En este momento, Num significa la cantidad de CTU en cada fila de CTU. Como otro ejemplo, en el caso de utilizar el concepto de ladrillo descrito anteriormente, si (ctu_idx_in_brick % BrickWidth) es cero, se puede determinar que esta es la CTU ordenada en primer lugar de la fila de CTU (en el ladrillo correspondiente). Aquí, ctu_idx_in_brick se refiere al índice de la CTU correspondiente del ladrillo, y BrickWidth se refiere a la anchura del ladrillo en unidades de CTU. Es decir, BrickWidth puede referirse al número de columnas CTU en el ladrillo correspondiente. Si la CTU actual es la CTU ordenada en primer lugar de la fila de CTU, se inicializa la memoria intermedia de HMVP (es decir, el número de candidatos en la memoria intermedia de HMVP se ajusta a cero); de lo contrario, la memoria intermedia de HMVP se mantiene. A continuación, se realiza el proceso de predicción (por ejemplo, basado en el modo de fusión o MVP) para cada CU en la CTU correspondiente, y en este momento, el candidato almacenado en la memoria intermedia de HMVP puede incluirse como candidato de información de movimiento (por ejemplo, candidato de fusión o candidato de MVP) en el modo de fusión o el modo MVP. La información de movimiento del bloque objetivo (bloque actual) derivada en el proceso de inter-predicción en base al modo de fusión o el modo MVP se almacena (actualiza) en la memoria intermedia de HMVP como un nuevo candidato de HMVP. En este caso, se puede realizar adicionalmente el proceso de verificación de redundancia descrito anteriormente. El procedimiento descrito anteriormente también puede repetirse para la CU y la CTU.
Como otro ejemplo, cuando se aplica la HMVP, la dependencia de la unidad CTU también puede eliminarse inicializando la memoria intermedia de HMVP para cada CTU.
La figura 15 ilustra a modo de ejemplo un método de gestión de memoria intermedia de HMVP según otra realización.
Haciendo referencia a la figura 15, la inicialización de la memoria intermedia de HMVP se puede realizar para cada CTU sin determinar si la CTU actual es la CTU ordenada en primer lugar en cada fila de CTU. En este caso, dado que la memoria intermedia de HMVP se inicializa en unidades de CTU, la información de movimiento de los bloques existentes en la CTU se almacena en la tabla HMVP. En este caso, el candidato de HMVP se puede derivar basándose en la información de movimiento de los bloques (por ejemplo, CU) en la misma CTU, y la inicialización de la memoria intermedia de HMVP se puede realizar de la siguiente manera sin determinar si la CTU actual es la CTU ordenada en primer lugar en cada fila de CTU.
Como se ha descrito anteriormente, la memoria intermedia de HMVP se puede inicializar en unidades de segmentos y, por lo tanto, es posible usar un vector de movimiento del bloque separado espacialmente del bloque actual. Sin embargo, en este caso, dado que el procesamiento paralelo puede no estar soportado en el segmento, las realizaciones descritas anteriormente han propuesto un método para inicializar la memoria intermedia en unidades de filas de CTU o CTU. Es decir, según realizaciones del presente documento, la memoria intermedia de HMVP puede inicializarse en unidades de segmentos, y puede inicializarse en unidades de filas de CTU en el segmento.
Mientras tanto, al codificar (codificar/decodificar) una imagen, la imagen correspondiente también puede dividirse en unidades de segmentos, y/o la imagen correspondiente también puede dividirse en unidades de teselas. Por ejemplo, la imagen correspondiente puede dividirse en unidades de segmentos teniendo en cuenta la resistencia a errores, o la imagen correspondiente también puede dividirse en unidades de teselas para codificar/decodificar algunas regiones en la imagen correspondiente. Cuando una imagen se divide en varias teselas, en el caso de aplicar la memoria intermedia de gestión de HMVP, la inicialización en unidades de filas de CTU en la imagen correspondiente, es decir, la inicialización de la memoria intermedia de HMVP en la CTU ordenada en primer lugar en cada fila de CTU en la imagen no es adecuada para la estructura de tesela para codificar/decodificar una parte de la imagen.
La figura 16 ilustra a modo de ejemplo un método de inicialización de la memoria intermedia de HMVP en la estructura de teselas.
Como en la figura 16, dado que la memoria intermedia de gestión de HMVP no se inicializa para cada unidad de tesela en el caso de una tesela 1 y una tesela 3, se produce la dependencia (HMVP) de una tesela 0 y una tesela 2. Por lo tanto, cuando existe una tesela, es posible inicializar la memoria intermedia de HMVP mediante el siguiente método.
Por ejemplo, la memoria intermedia de HMVP puede inicializarse en unidades de CTU. Es natural que este método pueda aplicarse sin distinguir la tesela, el segmento y similares.
Como otro ejemplo, la memoria intermedia de HMVP puede inicializarse para la CTU ordenada en primer lugar de cada tesela.
La figura 17 ilustra un ejemplo de un método de inicialización de memoria intermedia de HMVP para una CTU ordenada en primer lugar en una tesela según otra realización.
Haciendo referencia a la figura 17, al codificar la CTU ordenada en primer lugar de cada tesela, se inicializa la memoria intermedia de HMVP. Es decir, se puede inicializar y utilizar una memoria intermedia de HMVP 0 al codificar una tesela 0, y se puede inicializar y utilizar una memoria intermedia de HMVP 1 al codificar una tesela 1.
La memoria intermedia de HMVP se inicializa para la CTU ordenada en primer lugar de la fila de CTU en cada tesela.
La figura 18 ilustra un ejemplo de un método de inicialización de la memoria intermedia de gestión de HMVP para la CTU ordenada en primer lugar en una fila de CTU en cada tesela según la presente invención.
Haciendo referencia a la figura 18, se inicializa una memoria intermedia de HMVP para cada fila de CTU de cada tesela. La memoria intermedia de HMVP se inicializa en la CTU ordenada en primer lugar de la fila de CTU ordenada en primer lugar de una tesela n, la memoria intermedia de HMVP se inicializa en la CTU ordenada en primer lugar de la fila de CTU de ordenada en segundo lugar de la tesela n, y la memoria intermedia de HMVP se inicializa en la CTU ordenada en primer lugar de la fila de CTU ordenada en tercer lugar de la tesela n. Si el aparato de codificación incluye un procesador multinúcleo, el aparato de codificación inicializa y usa una memoria intermedia de HMVP 0 para la fila de CTU ordenada en primer lugar de la tesela n, inicializa y usa una memoria intermedia de HMVP 1 para la fila de CTU ordenada en segundo lugar de la tesela n, e inicializa y usa una memoria intermedia de HMVP 2 para la fila de CTU ordenada en tercer lugar de la tesela n, soportando así el procesamiento paralelo. Mientras tanto, si el aparato de codificación incluye un procesador de un solo núcleo, el aparato de codificación inicializa y reutilizA la memoria intermedia de HMVP en la CTU ordenada en primer lugar en cada fila de CTU en cada tesela según el orden de codificación.
Mientras tanto, según la estructura de división en teselas y la estructura de división en segmentos, la tesela y el segmento pueden existir simultáneamente en una imagen.
La figura 19 ilustra un ejemplo de una estructura en la que una tesela y un segmento existen simultáneamente. La figura 19 ilustra a modo de ejemplo un caso en el que una imagen se divide en cuatro teselas y existen dos segmentos en cada tesela. Como en la figura 19, puede existir un caso en el que tanto el segmento como la tesela existan en una imagen, y es posible inicializar la memoria intermedia de HMVP de la siguiente manera. Por ejemplo, la memoria intermedia de HMVP puede inicializarse en unidades de CTU. Un método de este tipo puede aplicarse sin distinguir si la CTU está situada en la tesela o en el segmento.
Como otro ejemplo, la memoria intermedia de HMVP puede inicializarse para la CTU ordenada en primer lugar en cada tesela.
La figura 20 ilustra un ejemplo de un método para inicializar una memoria intermedia de HMVP para una CTU ordenada en primer lugar en cada tesela.
Haciendo referencia a la figura 20, se puede inicializar una memoria intermedia de HMVP en la CTU ordenada en primer lugar de cada tesela. Incluso si existe una pluralidad de segmentos en una tesela, la memoria intermedia de HMVP puede inicializarse en la CTU ordenada en primer lugar en la tesela.
Como otro ejemplo más, la memoria intermedia de HMVP también puede inicializarse para cada segmento existente en la tesela.
La figura 21 ilustra un ejemplo de un método para inicializar una memoria intermedia de HMVP para cada segmento en una tesela.
Haciendo referencia a la figura 21, se puede inicializar una memoria intermedia de HMVP en la CTU ordenada en primer lugar de cada segmento en la tesela. Por lo tanto, si existe una pluralidad de segmentos en una tesela, la memoria intermedia de HMVP se puede inicializar para cada uno de la pluralidad de segmentos. En este caso, la memoria intermedia de HMVP puede inicializarse al procesar la CTU ordenada en primer lugar de cada segmento.
Mientras tanto, pueden existir varias teselas en una imagen sin un segmento. Alternativamente, también puede existir una pluralidad de teselas en un segmento. En tal caso, la memoria intermedia de HMVP se puede inicializar de la siguiente manera.
Por ejemplo, una memoria intermedia de HMVP se puede inicializar en unidades de cada grupo de teselas. La figura 22 ilustra un ejemplo de inicialización de una memoria intermedia de HMVP para una CTU ordenada en primer lugar de una tesela ordenada en primer lugar en un grupo de teselas.
Haciendo referencia a la figura 22, una imagen se puede dividir en dos grupos de teselas, y cada grupo de teselas (GrupoTeselas0 o GrupoTeselas1) se puede dividir en múltiples teselas. En este caso, la memoria intermedia de HMVP se puede inicializar para la CTU ordenada en primer lugar de la tesela ordenada en primer lugar en un grupo de teselas.
Como otro ejemplo, la memoria intermedia de HMVP se puede inicializar en unidades de teselas en el grupo de teselas.
La figura 23 ilustra un ejemplo de inicialización de una memoria intermedia de HMVP para una CTU ordenada en primer lugar de cada tesela en un grupo de teselas.
Haciendo referencia a la figura 23, una imagen se puede dividir en dos grupos de teselas, y cada grupo de teselas (GrupoTeselas0 o GrupoTeselas1) se puede dividir en múltiples teselas. En este caso, la memoria intermedia de HMVP puede inicializarse para la CTU ordenada en primer lugar de cada tesela en un grupo de teselas.
Como otro ejemplo más, la memoria intermedia de HMVP puede inicializarse para la fila de CTU de cada tesela en el grupo de teselas.
La figura 24 ilustra un ejemplo de inicialización de una memoria intermedia de HMVP para una fila de CTU de cada tesela en un grupo de teselas.
Haciendo referencia a la figura 24, una imagen se puede dividir en dos grupos de teselas, y cada grupo de teselas (GrupoTeselas0 o GrupoTeselas1) se puede dividir en múltiples teselas. En este caso, la memoria intermedia de HMVP se puede inicializar en la CTU ordenada en primer lugar de la fila de CTU de cada tesela en un grupo de teselas.
Alternativamente, incluso en este caso, la memoria intermedia de gestión de HMVP también puede inicializarse en unidades de CTU. Es natural que este método pueda aplicarse sin distinguir la tesela, el segmento, el grupo de teselas y similares.
Las figuras 25 y 26 ilustran esquemáticamente un ejemplo de un método de codificación de vídeo/imagen y componentes relacionados que incluyen un método de inter-predicción según una o varias realizaciones del presente documento. El método dado a conocer en la figura 25 puede realizarse mediante el aparato de codificación dado a conocer en la figura 2. Específicamente, por ejemplo, S2500, S2510, S2520 y S2530 de la figura 25 pueden ser realizados por el predictor 220 del aparato de codificación, S2540 de la figura 25 puede ser realizado por el procesador residual 230 del aparato de codificación, y S2550 de la figura 25 puede ser realizado por el codificador entrópico 240 del aparato de codificación. El método dado a conocer en la figura 25 puede incluir las realizaciones descritas anteriormente en el presente documento.
Haciendo referencia a la figura 25, el aparato de codificación deriva una memoria intermedia de HMVP para un bloque actual (S2500). El aparato de codificación puede realizar los métodos de gestión de memoria intermedia de HMVP descritos anteriormente en las realizaciones del presente documento. Por ejemplo, la memoria intermedia de HMVP puede inicializarse en unidades de segmentos, teselas o grupos de teselas, y/o la memoria intermedia de HMVP puede inicializarse en unidades de filas de CTU. En este caso, la memoria intermedia de HMVP se puede inicializar en unidades de filas de CTU en el segmento, la tesela o el grupo de teselas. Aquí, la tesela puede representar una región rectangular de CTU en la imagen. La tesela se puede especificar en función de una fila de teselas específica y una columna de teselas específica en la imagen. Por ejemplo, pueden existir una o más teselas en la imagen actual. En este caso, la memoria intermedia de HMVP puede inicializarse en la CTU ordenada en primer lugar de la fila de CTU que incluye el bloque actual en la tesela actual. Alternativamente, pueden existir uno o más segmentos en la imagen actual. En este caso, la memoria intermedia de HMVP puede inicializarse en la CTU ordenada en primer lugar de la fila de CTU que incluye el bloque actual en el segmento actual. Alternativamente, pueden existir uno o más grupos de teselas en la imagen actual. En este caso, la memoria intermedia de HMVP se puede inicializar en la CTU ordenada en primer lugar de la fila de CTU que incluye el bloque actual en el grupo de teselas actual.
El aparato de codificación puede determinar si la CTU actual es la CTU ordenada en primer lugar de la fila de CTU. En este caso, la memoria intermedia de HMVP se puede inicializar en la CTU ordenada en primer lugar de la fila de CTU donde se encuentra la CTU actual, incluido el bloque actual. Es decir, la memoria intermedia de HMVP puede inicializarse cuando se procesa la CTU ordenada en primer lugar de la fila de CTU donde se encuentra la CTU actual, incluido el bloque actual. Si se determina que la CTU actual que incluye el bloque actual es la CTU ordenada en primer lugar de la fila de CTU en la tesela actual, la memoria intermedia de HMVP puede incluir un candidato de HMVP derivado en función de la información de movimiento del bloque procesado antes que el bloque actual en la CTU actual, y si se determina que la CTU actual no es la CTU ordenada en primer lugar de la fila de CTU en la tesela actual, la memoria intermedia de HMVP puede incluir un candidato de HMVP derivado en función de la información de movimiento del bloque procesado antes del bloque actual en la fila de CTU en la tesela actual. Además, por ejemplo, si la CU actual que es el bloque actual está ubicada en la CTU ordenada en primer lugar de la fila de CTU en la tesela actual, y la CU actual corresponde a la CU ordenada en primer lugar de la CTU ordenada en primer lugar, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP es cero. Además, por ejemplo, si una CU codificada antes que la CU actual en la fila de CTU en la tesela actual (por ejemplo, una CU codificada antes que la CU actual en la CTU actual y/o una CU en una CTU codificada antes de la CTU actual de la fila de CTU actual) se codifica en un modo inter, se puede derivar un candidato de HMVP basándose en la información de movimiento de la CU codificada anteriormente e incluirse en la memoria intermedia de HMVP.
Si la imagen actual se divide en una pluralidad de teselas, la memoria intermedia de HMVP puede inicializarse en unidades de filas de CTU en cada tesela.
La memoria intermedia de HMVP se puede inicializar en unidades de filas de CTU en la tesela o el segmento. Por ejemplo, si una CTU específica de la fila de CTU no es la CTU ordenada en primer lugar de la fila de CTU en la imagen actual y la CTU específica es la CTU ordenada en primer lugar de la fila de CTU en la tesela actual o en el segmento actual, la memoria intermedia de HMVP se puede inicializar en la CTU específica. Si se inicializa la memoria intermedia de HMVP, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP se puede ajustar a cero.
El aparato de codificación configura una lista de candidatos de información de movimiento basada en la memoria intermedia de HMVP (S2510). La memoria intermedia de HMVP puede incluir un candidato de HMVP, y se puede configurar la lista de candidatos de información de movimiento que incluye el candidato de HMVP. Por ejemplo, si se aplica un modo de fusión al bloque actual, la lista de candidatos de información de movimiento puede ser una lista de candidatos de fusión. Como otro ejemplo, si el modo (A) MVP se aplica al bloque actual, la lista de candidatos de información de movimiento puede ser una lista de candidatos de MVP.
Si el modo de fusión se aplica al bloque actual, el candidato de HMVP se puede añadir a la lista de candidatos de fusión si el número de candidatos de fusión disponibles (por ejemplo, candidatos de fusión espacial y candidatos de fusión temporal) en la lista de candidatos de fusión para el bloque actual es menor que el número máximo predeterminado de candidatos de fusión. En este caso, el candidato de HMVP puede insertarse después de los candidatos espaciales y los candidatos temporales en la lista de candidatos de fusión. Es decir, se puede asignar al candidato de HMVP un valor de índice mayor que los valores de índice asignados a los candidatos espaciales y a los candidatos temporales en la lista de candidatos de fusión. Si el modo (A)MVP se aplica al bloque actual, el candidato de HMVP puede añadirse a la lista de candidatos de MVP si el número de candidatos de MVP disponibles (derivados en base a bloques vecinos espaciales y bloques vecinos temporales) en la lista de candidatos de MVP para el bloque actual es menor que dos.
El aparato de codificación puede derivar la información de movimiento del bloque actual basándose en la lista de candidatos de información de movimiento (S2520).
El aparato de codificación puede derivar la información de movimiento del bloque actual basándose en la lista de candidatos de información de movimiento. Por ejemplo, si el modo de fusión o el modo MVP se aplica al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP se puede utilizar como candidato de fusión o candidato de MVP. Por ejemplo, si el modo de fusión se aplica al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP puede incluirse como candidato de la lista de candidatos de fusión, y el candidato de HMVP entre los candidatos incluidos en la lista de candidatos de fusión se puede indicar en base al índice de fusión. El índice de fusión puede incluirse en la información de imagen/vídeo que se describirá más adelante como información relacionada con la predicción. En este caso, al candidato de HMVP se le puede asignar un índice en la lista de candidatos de fusión con una prioridad menor que los candidatos de fusión espacial y los candidatos de fusión temporal incluidos en la lista de candidatos de fusión. Es decir, al valor de índice asignado al candidato de HMVP se le puede asignar un valor mayor que los valores de índice de los candidatos de fusión espacial y del candidato de fusión temporal. Como otro ejemplo, si el modo MVP se aplica al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP puede incluirse como candidato de la lista de candidatos de fusión, y el candidato de HMVP entre los candidatos incluidos en la lista de candidatos de MVP se puede indicar en función de un indicador MVP (o índice MVP). El indicador MVP (o índice MVP) puede incluirse en la información de imagen/vídeo que se describirá más adelante como información relacionada con la predicción.
El aparato de codificación genera muestras de predicción para el bloque actual basándose en la información de movimiento derivada (S2530). El aparato de codificación puede derivar muestras de predicción utilizando muestras de referencia indicadas por la información de movimiento en una imagen de referencia realizando inter-predicción (compensación de movimiento) basándose en la información de movimiento.
El aparato de codificación genera muestras residuales basándose en las muestras de predicción (S2540). El aparato de codificación puede generar muestras residuales basándose en las muestras originales para el bloque actual y las muestras de predicción para el bloque actual.
El aparato de codificación deriva información sobre las muestras residuales basándose en las muestras residuales y codifica la información de imagen/vídeo incluyendo la información sobre las muestras residuales (S2550). La información sobre las muestras residuales puede denominarse información residual y puede incluir información sobre coeficientes de transformada cuantificados. El aparato de codificación puede derivar los coeficientes de transformada cuantificados realizando procedimientos de transformada/cuantificación para las muestras residuales.
La información de imagen/vídeo codificada puede entregarse en forma de un flujo de bits. El flujo de bits puede transmitirse al aparato de decodificación a través de una red o un medio de almacenamiento. La información de imagen/vídeo puede incluir además información relacionada con la predicción, y la información relacionada con la predicción puede incluir además información sobre diversos modos de predicción (por ejemplo, modo de fusión, modo MVP y similares), información de MVD y similares.
Las figuras 27 y 28 ilustran esquemáticamente un ejemplo de un método de decodificación de imagen y componentes relacionados que incluyen un método de inter-predicción según una realización del presente documento. El método dado a conocer en la figura 27 puede realizarse mediante el aparato de decodificación dado a conocer en la figura 3. Específicamente, por ejemplo, S2700, S2710, S2720 y S2730 de la figura 27 pueden ser realizados por el predictor 330 del aparato de decodificación, y S2740 puede ser realizado por el sumador 340 del aparato de decodificación. El método dado a conocer en la figura 27 puede incluir las realizaciones descritas anteriormente en el presente documento.
Haciendo referencia a la figura 27, el aparato de decodificación deriva una memoria intermedia de HMVP para el bloque actual (S2700). El aparato de decodificación puede realizar los métodos de gestión de memoria intermedia de HMVP descritos anteriormente en las realizaciones del presente documento. Por ejemplo, la memoria intermedia de HMVP puede inicializarse en unidades de segmentos, teselas o grupos de teselas y/o la memoria intermedia de HMVP puede inicializarse en unidades de filas de CTU. En este caso, la memoria intermedia de HMVP se puede inicializar en unidades de filas de CTU en el segmento, la tesela o el grupo de teselas. Aquí, la tesela puede representar una región rectangular de las CTU en la imagen. La tesela se puede especificar en función de una fila de teselas específica y una columna de teselas específica en la imagen. Por ejemplo, pueden existir una o más teselas en la imagen actual. En este caso, la memoria intermedia de HMVP puede inicializarse en la CTU ordenada en primer lugar de la fila de CTU que incluye el bloque actual en la tesela actual. Alternativamente, pueden existir uno o más segmentos en la imagen actual. En este caso, la memoria intermedia de HMVP puede inicializarse en la CTU ordenada en primer lugar de la fila de CTU que incluye el bloque actual en el segmento actual. Alternativamente, pueden existir uno o más grupos de teselas en la imagen actual. En este caso, la memoria intermedia de HMVP se puede inicializar en la CTU ordenada en primer lugar de la fila de CTU que incluye el bloque actual en el grupo de teselas actual.
El aparato de decodificación puede determinar si la CTU actual es la CTU ordenada en primer lugar de la fila de CTU. En este caso, la memoria intermedia de HMVP se puede inicializar en la CTU ordenada en primer lugar de la fila de CTU donde se encuentra la CTU actual, incluido el bloque actual. Es decir, la memoria intermedia de HMVP puede inicializarse cuando se procesa la CTU ordenada en primer lugar de la fila de CTU donde se encuentra la CTU actual, incluido el bloque actual. Si se determina que la CTU actual que incluye el bloque actual es la CTU ordenada en primer lugar de la fila de CTU en la tesela actual, la memoria intermedia de HMVP puede incluir el candidato de HMVP derivado en función de la información de movimiento del bloque procesado antes que el bloque actual en la CTU actual, y si se determina que la CTU actual no es la CTU ordenada en primer lugar de la fila de CTU en la tesela actual, la memoria intermedia de HMVP puede incluir el candidato de HMVP derivado en función de la información de movimiento del bloque procesado antes de el bloque actual en la fila de CTU en la tesela actual. Además, por ejemplo, si la CU actual que es el bloque actual está ubicada en la CTU ordenada en primer lugar de la fila de CTU en la tesela actual, y la CU actual corresponde a la CU ordenada en primer lugar de la CTU ordenada en primer lugar, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP es cero. Además, por ejemplo, si una CU codificada antes que la CU actual en la fila de CTU en la tesela actual (por ejemplo, una CU codificada antes que la CU actual en la CTU actual y/o una CU en una CTU codificada antes que la CTU actual de la fila de CTU actual) se codifica en un modo inter, se puede derivar un candidato de HMVP basándose en la información de movimiento de la CU codificada anteriormente e incluirse en la memoria intermedia de HMVP.
Si la imagen actual se divide en una pluralidad de teselas, la memoria intermedia de HMVP puede inicializarse en unidades de filas de CTU en cada tesela.
La memoria intermedia de HMVP se puede inicializar en unidades de filas de CTU en la tesela o el segmento. Por ejemplo, si una CTU específica de la fila de CTU no es la CTU ordenada en primer lugar de la fila de CTU en la imagen actual y la CTU específica es la CTU ordenada en primer lugar de la fila de CTU en la tesela actual o en el segmento actual, la memoria intermedia de HMVP se puede inicializar en la CTU específica.
Si se inicializa la memoria intermedia de HMVP, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP se puede ajustar a cero.
El aparato de decodificación configura una lista de candidatos de información de movimiento basada en la memoria intermedia de HMVP (S2710). La memoria intermedia de HMVP puede incluir un candidato de HMVP, y se puede configurar la lista de candidatos de información de movimiento que incluye el candidato de HMVP.
Por ejemplo, si se aplica un modo de fusión al bloque actual, la lista de candidatos de información de movimiento puede ser una lista de candidatos de fusión. Como otro ejemplo, si el modo (A)MVP se aplica al bloque actual, la lista de candidatos de información de movimiento puede ser una lista de candidatos de MVP. Si el modo de fusión se aplica al bloque actual, el candidato de HMVP se puede añadir a la lista de candidatos de fusión si el número de candidatos de fusión disponibles (por ejemplo, candidatos de fusión espacial y candidatos de fusión temporal) en la lista de candidatos de fusión para el bloque actual es menor que el número máximo predeterminado de candidatos de fusión. En este caso, el candidato de HMVP puede insertarse después de los candidatos espaciales y los candidatos temporales en la lista de candidatos de fusión. Es decir, al candidato de HMVP se le puede asignar un valor de índice mayor que los valores de índice asignados a los candidatos espaciales y a los candidatos temporales en la lista de candidatos de fusión. Si el modo (A)MVP se aplica al bloque actual, el candidato de HMVP puede añadirse a la lista de candidatos de MVP si el número de candidatos de MVP disponibles (derivados en base a bloques vecinos espaciales y bloques vecinos temporales) en la lista de candidatos de MVP para el bloque actual es menor que dos.
El aparato de decodificación puede derivar información de movimiento del bloque actual basándose en la lista de candidatos de información de movimiento (S2720).
El aparato de decodificación puede derivar la información de movimiento del bloque actual basándose en la lista de candidatos de información de movimiento. Por ejemplo, si se aplica un modo de fusión o un modo MVP al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP puede usarse como candidato de fusión o candidato de MVP. Por ejemplo, si el modo de fusión se aplica al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP puede incluirse como candidato de una lista de candidatos de fusión, y el candidato de HMVP entre los candidatos incluidos en la lista de candidatos de fusión se puede indicar en base al índice de fusión adquirido del flujo de bits. En este caso, al candidato de HMVP se le puede asignar un índice en la lista de candidatos de fusión con una prioridad menor que los candidatos de fusión espacial y los candidatos de fusión temporal incluidos en la lista de candidatos de fusión. Es decir, al valor de índice asignado al candidato de HMVP se le puede asignar un valor mayor que los valores de índice de los candidatos de fusión espacial y del candidato de fusión temporal. Como otro ejemplo, si el modo MVP se aplica al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP puede incluirse como candidato de una lista de candidatos de fusión, y el candidato de HMVP entre los candidatos incluidos en la lista de candidatos de MVP se puede indicar en base a un indicador MVP (o índice MVP) adquirido del flujo de bits.
El aparato de decodificación genera muestras de predicción para el bloque actual basándose en la información de movimiento derivada (S2730). El aparato de decodificación puede derivar muestras de predicción utilizando muestras de referencia indicadas por la información de movimiento en una imagen de referencia realizando inter-predicción (compensación de movimiento) basándose en la información de movimiento. El bloque actual que incluye las muestras de predicción puede denominarse bloque predicho.
El aparato de decodificación genera muestras reconstruidas basándose en las muestras de predicción (S2740). Como se ha descrito anteriormente, se puede generar un bloque/imagen reconstruido basándose en las muestras reconstruidas. Como se ha descrito anteriormente, el aparato de decodificación puede adquirir información residual (incluyendo información sobre coeficientes de transformada cuantificados) del flujo de bits, derivar las muestras residuales a partir de la información residual y generar las muestras reconstruidas basándose en las muestras de predicción y las muestras residuales. Posteriormente, como se ha descrito anteriormente, se puede aplicar un procedimiento de filtrado en bucle tal como filtrado de desbloqueo, SAO y/o procedimiento ALF a la imagen reconstruida para mejorar la calidad de la imagen subjetiva/objetiva según sea necesario.
En la realización descrita anteriormente, los métodos se describen basándose en el diagrama de flujo como una serie de etapas o bloques, pero la realización correspondiente no se limita al orden de las etapas, y una determinada etapa puede ocurrir en un orden diferente al descrito anteriormente, o simultáneamente con la etapa diferente a lo descrito anteriormente. Además, los expertos en la materia entenderán que las etapas mostradas en el diagrama de flujo no son exclusivos y se pueden incluir otras etapas, o se pueden eliminar una o más etapas en los diagramas de flujo, sin afectar el alcance de las realizaciones del presente documento.
El método descrito anteriormente según las realizaciones del presente documento se puede implementar en forma de software, y el aparato de codificación y/o el aparato de decodificación según el presente documento se puede incluir en el aparato para realizar el procesamiento de imágenes de, por ejemplo, un televisor, un ordenador, un teléfono inteligente, un decodificador, un dispositivo de visualización y similares.
Cuando las realizaciones en el presente documento se implementan en software, el método descrito anteriormente se puede implementar como un módulo (proceso, función y similares) para realizar la función descrita anteriormente. El módulo puede almacenarse en una memoria y ejecutarse mediante un procesador. La memoria puede estar situada dentro o fuera del procesador y puede acoplarse al procesador mediante diversos medios bien conocidos. El procesador puede incluir un circuito integrado de aplicación específica (ASIC), otros conjuntos de chips, circuitos lógicos y/o dispositivos de procesamiento de datos. La memoria puede incluir una memoria de sólo lectura (ROM), una memoria de acceso aleatorio (RAM), una memoria flash, una tarjeta de memoria, un medio de almacenamiento y/u otros dispositivos de almacenamiento. Es decir, las realizaciones descritas en el presente documento pueden implementarse y realizarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales mostradas en cada dibujo pueden implementarse y realizarse en un ordenador, un procesador, un microprocesador, un controlador o un chip. En este caso, la información para la implementación (por ejemplo, información sobre instrucciones) o un algoritmo puede almacenarse en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación a los que se aplican una o varias realizaciones del presente documento pueden incluirse en un dispositivo de transmisión y recepción de radiodifusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de videochat, un dispositivo de comunicación en tiempo real tal como comunicación por vídeo, un dispositivo de transmisión en continuo móvil, un medio de almacenamiento, una videocámara, un proveedor de servicios de vídeo a la carta (VoD), un proveedor de vídeo de transmisión libre(OTT, Over the top), un proveedor de servicios de transmisión en continuo por internet, un dispositivo de vídeo 3D, un dispositivo de realidad virtual, un dispositivo de realidad aumentada (AR), un dispositivo de vídeo de videotelefonía, un terminal de medios de transporte (por ejemplo, un terminal de vehículo (incluido un vehículo autónomo ), un terminal de avión, un terminal de barco, o similar), un dispositivo de vídeo médico, o similar, y puede usarse para procesar señales de vídeo o señales de datos. Por ejemplo, el dispositivo de vídeo de transmisión libre (OTT) puede incluir una consola de juegos, un reproductor de Blu-ray, una TV con acceso a internet, un sistema de cine en casa, un teléfono inteligente, un PC de tableta, una grabadora de vídeo digital (DVR) y similares.
Además, el método de procesamiento al que se aplican una o varias realizaciones del presente documento puede producirse en forma de un programa ejecutado por un ordenador y puede almacenarse en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos según la o las realizaciones del presente documento también pueden almacenarse en el medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento distribuidos en lo que se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede incluir, por ejemplo, un disco Blu-ray (BD), un bus serie universal (USB), una ROM, una<p>R<o>M, una EPROM, una E<e>PR<o>M, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo óptico de almacenamiento de datos. Además, el medio de grabación legible por ordenador también incluye medios implementados en forma de onda portadora (por ejemplo, transmisión a través de internet). Además, el flujo de bits generado por el método de codificación puede almacenarse en el medio de grabación legible por ordenador o transmitirse a través de una red de comunicación por cable e inalámbrica. Además, la o las realizaciones del presente documento se pueden implementar como un producto de programa informático mediante un código de programa, y el código de programa se puede realizar en un ordenador mediante la o las realizaciones del presente documento. El código de programa puede almacenarse en un soporte legible por un ordenador.
La figura 29 ilustra un ejemplo de un sistema de transmisión en continuo de contenidos al que se puede aplicar la presente descripción.
Haciendo referencia a la figura 29, el sistema de transmisión en continuo de contenidos al que se aplica la descripción puede incluir en gran medida un servidor de codificación, un servidor de transmisión en continuo, un servidor web, un almacenamiento de medios, un dispositivo de usuario y un dispositivo de entrada multimedia. El servidor de codificación desempeña la función de generar un flujo de bits comprimiendo contenido introducido desde dispositivos de entrada multimedia, tales como un teléfono inteligente, una cámara o una videocámara, en datos digitales y transmitiendo el flujo de bits generado al servidor de transmisión en continuo. Como otro ejemplo, si los dispositivos de entrada multimedia, tales como un teléfono inteligente, una cámara o una videocámara, producen directamente un flujo de bits, se puede omitir el servidor de codificación.
El flujo de bits puede generarse mediante un método de codificación o un método para generar un flujo de bits al que se aplica la presente descripción, y el servidor de transmisión en continuo puede almacenar temporalmente el flujo de bits mientras se transmite o recibe el flujo de bits.
El servidor de transmisión en continuo desempeña la función de transmitir datos multimedia a un dispositivo de usuario en función de una solicitud del usuario a través de un servidor web, y el servidor web desempeña la función de informar al usuario de qué servicios están disponibles. Si el usuario solicita un servicio deseado del servidor web, el servidor web transmite la solicitud al servidor de transmisión en continuo, y el servidor de transmisión en continuo transmite datos multimedia al usuario. En este momento, el sistema de transmisión en continuo de contenidos puede incluir un servidor de control separado y, en este caso, el servidor de control desempeña la función de controlar comandos/respuestas entre dispositivos dentro del sistema de transmisión en continuo de contenidos.
El servidor de transmisión en continuo puede recibir contenidos desde un servidor de codificación y/o almacenamiento de medios. Por ejemplo, si se reciben contenidos desde el servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, para proporcionar un servicio de transmisión en continuo fluido, el servidor de transmisión en continuo puede almacenar el flujo de bits durante un período de tiempo predeterminado.
Los ejemplos del dispositivo de usuario pueden incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), una terminal de navegación, un ordenador tipo pizarra, una tableta, un ultrabook, un dispositivo ponible (por ejemplo , un reloj inteligente o un vidrio inteligente), TV digital, ordenador de escritorio y señalización digital.
Cada servidor individual dentro del sistema de transmisión en continuo de contenidos puede funcionar como un servidor distribuido y, en este caso, los datos recibidos por cada servidor pueden procesarse de manera distribuida.

Claims (3)

REIVINDICACIONES
1. Un aparato de decodificación (300) para una decodificación de imagen, comprendiendo el aparato de decodificación (300):
una memoria (360); y
al menos un procesador (320) conectado a la memoria (360), configurado el al menos un procesador (360) para:
derivar una memoria intermedia de predicción de vectores de movimiento basada en historial, HMVP, para un bloque actual, donde la memoria intermedia de HMVP comprende un candidato de HMVP que incluye información de movimiento de un bloque anterior que se decodifica antes del bloque actual;
derivar una lista de candidatos de información de movimiento basándose en el candidato de HMVP comprendido en la memoria intermedia de HMVP, donde para derivar la lista de candidatos de información de movimiento, el candidato de HMVP se añade a la lista de candidatos de información de movimiento; derivar información de movimiento del bloque actual basándose en la lista de candidatos de información de movimiento;
generar muestras de predicción para el bloque actual basándose en la información de movimiento; y generar muestras reconstruidas basadas en las muestras de predicción,
en el que una imagen actual incluye más de una tesela,
en el que el bloque actual es para una de las unidades de codificación, CU, separada de una unidad de árbol de codificación, CTU,
en el que la memoria intermedia de HMVP se actualiza añadiendo información de movimiento de un bloque anterior directo que se decodifica directamente antes del bloque actual como un nuevo candidato de HMVP, en el que para la imagen actual que consta de 2 filas de teselas y 2 columnas de teselas, la memoria intermedia de HMVP se inicializa en una primera CTU en un orden de procesamiento en cada fila de CTU de cada tesela,
en el que, basándose en la inicialización de la memoria intermedia de HMVP, el número de candidatos de HMVP comprendidos en la memoria intermedia de HMVP se ajusta a cero,
en el que el aparato de decodificación (300) está configurado además para:
determinar si la CTU es una primera CTU en un orden de procesamiento en una fila de CTU de una tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas,
en el que la memoria intermedia de HMVP para el bloque actual se deriva en base al resultado de la determinación, y
en el que, basándose en el resultado de determinar que la CTU es la primera CTU en el orden de procesamiento en la fila de CTU de la tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas, se inicializa la memoria intermedia de HMVP para la CTU.
2. Un aparato de codificación (200) para una codificación de imagen, comprendiendo el aparato de codificación (200):
Una memoria (270); y
al menos un procesador (240) conectado a la memoria (270), configurado el al menos un procesador (240) para:
derivar una memoria intermedia de predicción de vectores de movimiento basada en historial, HMVP, para un bloque actual, en el que la memoria intermedia de HMVP comprende un candidato de HMVP que incluye información de movimiento de un bloque anterior que está codificado antes del bloque actual;
derivar una lista de candidatos de información de movimiento en base a un candidato de HMVP comprendido en la memoria intermedia de HMVP, donde para derivar la lista de candidatos de información de movimiento, el candidato de HMVP se añade a la lista de candidatos de información de movimiento;
derivar información de movimiento del bloque actual basándose en la lista de candidatos de información de movimiento;
generar muestras de predicción para el bloque actual basándose en la información de movimiento; derivar muestras residuales basándose en las muestras de predicción; y
codificar en un flujo de bits información de imagen que comprende información sobre las muestras residuales, en el que más de una tesela está presente en una imagen actual,
en el que el bloque actual es para una de las unidades de codificación, CU, separada de una unidad de árbol de codificación, CTU,
en el que la memoria intermedia de HMVP se actualiza añadiendo información de movimiento de un bloque anterior directo que se codifica directamente antes del bloque actual como un nuevo candidato de HMVP, en el que para la imagen actual que consta de 2 filas de teselas y 2 columnas de teselas, la memoria intermedia de HMVP se inicializa en una primera CTU en un orden de procesamiento en cada fila de CTU de cada tesela,
en el que, basándose en la inicialización de la memoria intermedia de HMVP, el número de candidatos de HMVP comprendidos en la memoria intermedia de HMVP se ajusta a cero,
en el que el aparato de codificación (200) está configurado además para:
determinar si la CTU es una primera CTU en un orden de procesamiento en una fila de CTU de una tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas,
en el que la memoria intermedia de HMVP para el bloque actual se deriva en base al resultado de la determinación, y
en el que, basándose en el resultado de determinar que la CTU es la primera CTU en el orden de procesamiento en la fila de CTU de la tesela actual de la imagen actual que consta de las 2 filas de teselas y las 2 columnas de teselas, la memoria intermedia de HMVP se inicializa para la CTU.
3. Un aparato para transmitir datos para una imagen, en donde los datos comprenden un flujo de bits generado por el aparato de codificación (200) de la reivindicación 2.
ES23207623T 2018-10-04 2019-10-04 History-based image coding apparatuses Active ES3026563T3 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201862740972P 2018-10-04 2018-10-04

Publications (1)

Publication Number Publication Date
ES3026563T3 true ES3026563T3 (en) 2025-06-11

Family

ID=70055909

Family Applications (2)

Application Number Title Priority Date Filing Date
ES23207623T Active ES3026563T3 (en) 2018-10-04 2019-10-04 History-based image coding apparatuses
ES19869170T Active ES2966115T3 (es) 2018-10-04 2019-10-04 Métodos de codificación de imagen basados en historial

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES19869170T Active ES2966115T3 (es) 2018-10-04 2019-10-04 Métodos de codificación de imagen basados en historial

Country Status (16)

Country Link
US (5) US11025945B2 (es)
EP (3) EP3846467B1 (es)
JP (3) JP7342116B2 (es)
KR (3) KR102542000B1 (es)
CN (5) CN112789852B (es)
BR (5) BR122021011268B1 (es)
CA (1) CA3114769A1 (es)
ES (2) ES3026563T3 (es)
FI (1) FI3846467T3 (es)
HR (2) HRP20231695T1 (es)
HU (2) HUE071360T2 (es)
MX (2) MX2021003682A (es)
PL (2) PL4294007T3 (es)
RS (1) RS66780B1 (es)
SI (1) SI3846467T1 (es)
WO (1) WO2020071829A1 (es)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117676163A (zh) * 2018-07-06 2024-03-08 寰发股份有限公司 解码器的视频解码方法及装置
CN112534808A (zh) 2018-08-10 2021-03-19 华为技术有限公司 视频处理方法、视频处理装置、编码器、解码器、介质和计算机程序
RS66779B1 (sr) 2018-08-13 2025-06-30 Lg Electronics Inc Postupak inter predikcije na osnovu vektora pokreta zasnovanog na istoriji, i uređaj za isti
BR122021011268B1 (pt) 2018-10-04 2022-06-14 Lg Electronics Inc Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem e mídias de armazenamento não transitórias legíveis por computador
CN116684586A (zh) 2018-10-05 2023-09-01 Lg电子株式会社 解码设备、编码设备及发送针对图像的数据的设备
CN118042117A (zh) * 2018-12-07 2024-05-14 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法、解码方法和计算机可读取介质
KR102860198B1 (ko) 2018-12-21 2025-09-15 후아웨이 테크놀러지 컴퍼니 리미티드 히스토리 기반 모션 벡터 예측을 사용하는 인코더, 디코더 및 대응 방법
KR102583807B1 (ko) * 2018-12-28 2023-09-26 가부시키가이샤 제이브이씨 켄우드 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
CN118018759A (zh) 2018-12-28 2024-05-10 知识产权之桥一号有限责任公司 动图像编码装置和方法、以及动图像解码装置和方法
CN112042191B (zh) * 2019-01-01 2024-03-19 Lg电子株式会社 以基于历史的运动矢量为基础预测处理视频信号的方法和设备
CN113366844B (zh) 2019-02-02 2023-10-03 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区中的数据存储
CN113383543B (zh) * 2019-02-02 2025-08-29 北京字节跳动网络技术有限公司 使用用于视频编解码中的帧内块复制的额外缓冲区样点的预测
WO2020177659A1 (en) 2019-03-01 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Direction-based prediction for intra block copy in video coding
KR102688366B1 (ko) 2019-03-01 2024-07-24 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 방향 기반 예측
CN117640927A (zh) 2019-03-04 2024-03-01 北京字节跳动网络技术有限公司 视频编解码中的帧内块复制中的实施方式方面
US10979716B2 (en) * 2019-03-15 2021-04-13 Tencent America LLC Methods of accessing affine history-based motion vector predictor buffer
WO2020197083A1 (ko) * 2019-03-22 2020-10-01 엘지전자 주식회사 Dmvr 및 bdof 기반의 인터 예측 방법 및 장치
CN114175645B (zh) 2019-07-06 2024-04-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
KR102635519B1 (ko) 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
EP3981146A4 (en) * 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM COMPLIANCE CONSTRAINTS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
US11223840B2 (en) * 2019-08-19 2022-01-11 Tencent America LLC Method and apparatus for video coding
WO2022031115A1 (ko) * 2020-08-06 2022-02-10 현대자동차주식회사 딥러닝 기반 인터 예측을 이용하는 영상 부호화 및 복호화
US11575941B2 (en) * 2021-03-23 2023-02-07 Tencent America LLC Parallel processing in video coding
US20250080720A1 (en) * 2022-01-04 2025-03-06 Lg Electronics Inc. Image encoding/decoding method and device, and recording medium on which bitstream is stored
CN118474348B (zh) * 2024-04-22 2025-11-04 瑞芯微电子股份有限公司 基于帧间预测的写入和读取方法、帧间预测方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3151564A1 (en) * 2006-03-30 2017-04-05 LG Electronics Inc. Method and apparatus for decoding/encoding a view video signal
US20110274162A1 (en) * 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
WO2013115560A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 공간 서브영역별로 비디오를 부호화하는 방법 및 그 장치, 공간 서브영역별로 비디오를 복호화하는 방법 및 그 장치
KR102132784B1 (ko) * 2012-03-22 2020-07-13 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
RS64003B1 (sr) * 2012-04-13 2023-03-31 Ge Video Compression Llc Kodiranje slike sa niskim kašnjenjem
EP3085083B1 (en) * 2013-12-18 2021-12-15 HFI Innovation Inc. Method and apparatus for palette initialization and management
CN105981383B (zh) * 2014-02-12 2019-05-03 明达半导体股份有限公司 视频处理方法及装置
CN106664414B (zh) * 2014-06-19 2019-07-05 寰发股份有限公司 视频编码中用于单个样本模式的候选生成的方法及装置
MX379020B (es) * 2014-09-30 2025-03-11 Microsoft Technology Licensing Llc Reglas para modos de prediccion intra-imagen cuando se habilita el procesamiento paralelo de onda frontal.
US10523957B2 (en) * 2014-10-08 2019-12-31 Vid Scale, Inc. Optimization using multi-threaded parallel processing framework
KR101903231B1 (ko) 2016-06-22 2018-10-04 전자부품연구원 압전 에너지 하베스팅을 위한 고효율 정류기
EP3791585A1 (en) * 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
CN110662063B (zh) * 2018-06-29 2020-12-15 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读存储介质
US10491902B1 (en) * 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
US10440378B1 (en) * 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
RS66779B1 (sr) * 2018-08-13 2025-06-30 Lg Electronics Inc Postupak inter predikcije na osnovu vektora pokreta zasnovanog na istoriji, i uređaj za isti
US11212550B2 (en) * 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
BR122021011268B1 (pt) 2018-10-04 2022-06-14 Lg Electronics Inc Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem e mídias de armazenamento não transitórias legíveis por computador

Also Published As

Publication number Publication date
HRP20231695T1 (hr) 2024-03-15
EP4561068A3 (en) 2025-07-30
HUE064704T2 (hu) 2024-04-28
KR102708102B1 (ko) 2024-09-20
JP2025089405A (ja) 2025-06-12
RS66780B1 (sr) 2025-06-30
SI3846467T1 (sl) 2024-02-29
CA3114769A1 (en) 2020-04-09
US20230421798A1 (en) 2023-12-28
BR112021006152A2 (pt) 2021-07-06
EP4294007B9 (en) 2025-07-23
EP3846467A4 (en) 2021-10-27
CN117857788A (zh) 2024-04-09
US20220377347A1 (en) 2022-11-24
HRP20250575T1 (hr) 2025-07-04
BR122021011268A2 (pt) 2021-07-20
EP4294007A2 (en) 2023-12-20
WO2020071829A1 (ko) 2020-04-09
BR112021006152B1 (pt) 2022-06-14
EP4294007B1 (en) 2025-04-16
BR122021011274B1 (pt) 2022-06-14
JP2022504173A (ja) 2022-01-13
CN112789852A (zh) 2021-05-11
EP3846467A1 (en) 2021-07-07
MX2021003682A (es) 2021-05-31
KR20240142587A (ko) 2024-09-30
BR122021011306A2 (pt) 2021-07-20
US20200186821A1 (en) 2020-06-11
US11025945B2 (en) 2021-06-01
PL3846467T3 (pl) 2024-04-08
KR20230088839A (ko) 2023-06-20
CN117857785A (zh) 2024-04-09
US20210274207A1 (en) 2021-09-02
CN112789852B (zh) 2024-02-13
US11729414B2 (en) 2023-08-15
EP3846467B1 (en) 2023-11-29
BR122021011306B1 (pt) 2022-06-14
US12137241B2 (en) 2024-11-05
EP4294007A3 (en) 2024-02-21
US20250016357A1 (en) 2025-01-09
BR122021011268B1 (pt) 2022-06-14
KR102542000B1 (ko) 2023-06-13
KR20210042996A (ko) 2021-04-20
MX2024007628A (es) 2024-07-04
US11445209B2 (en) 2022-09-13
BR122021011274A2 (pt) 2021-07-20
EP4294007C0 (en) 2025-04-16
ES2966115T3 (es) 2024-04-18
JP7342116B2 (ja) 2023-09-11
CN117857786A (zh) 2024-04-09
CN117857787A (zh) 2024-04-09
HUE071360T2 (hu) 2025-08-28
PL4294007T3 (pl) 2025-06-16
BR122021011303A2 (pt) 2021-07-20
JP7776684B2 (ja) 2025-11-26
FI3846467T3 (fi) 2023-12-28
JP2023162356A (ja) 2023-11-08
BR122021011303B1 (pt) 2022-06-14
JP7655994B2 (ja) 2025-04-02
EP4561068A2 (en) 2025-05-28

Similar Documents

Publication Publication Date Title
ES3026563T3 (en) History-based image coding apparatuses
ES3025197T3 (en) Inter prediction method based on history-based motion vector, and device therefor
US12289443B2 (en) Intra prediction-based image coding method and apparatus using MPM list
ES2926196T3 (es) Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines
ES2985144T3 (es) Método de codificación/decodificación de imagen y dispositivo para señalizar información de predicción de la componente de crominancia según que el modo de paleta sea aplicable y método para transmitir un tren de bits
ES2993475T3 (en) Video or image coding method and device therefor
ES2982809T3 (es) Codificación de información sobre conjunto de núcleos de transformada
ES3018507T3 (es) Método y dispositivo para procesar información de imagen para la codificación de imágenes/vídeos
ES2987305T3 (es) Procedimiento y dispositivo para señalización sintáctica en sistema de codificación de vídeo/imagen
ES2976723T3 (es) Método y dispositivo de codificación de imagen/vídeo
BR122023023080A2 (pt) Método e dispositivo de codificação de imagem/vídeo